Browse Source

健康体征设计交互与对接、解决用药日期出错

linehang 7 years ago
parent
commit
4d12730e03
5 changed files with 251 additions and 5 deletions
  1. 88 0
      body-record.html
  2. 14 0
      js/body-record-api.js
  3. 144 0
      js/buz/body-record.js
  4. 4 4
      js/buz/prescription-tabs.js
  5. 1 1
      js/util.js

+ 88 - 0
body-record.html

@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <title>体征记录</title>
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link rel="shortcut icon" href="favicon.ico">
    <link href="css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
    <link href="css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
    <link href="css/animate.min.css" rel="stylesheet">
    <link href="css/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
    <link href="css/plugins/toastr/toastr.min.css" rel="stylesheet">
    <link href="js/plugins/artDialog/6.0.5/css/ui-dialog.min.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
    <style>
    	.fs14 {font-size: 14px;}
    	.f-hover {background-color: #12b7f5; color: #fff;}
    	.h-lh-14 {height: 14px; line-height: 14px;}
    	h2, h3 {margin: 0;}
    	span, em {float: left;margin: 0; padding: 0;color: #12b7f5; text-align: center; cursor: pointer;}
    	.tab-record {overflow: hidden; width: 260px; height: 40px; border-radius: 5px; border: 1px solid #12b7f5; margin: 0 auto 20px;}
    	.tab-record  span {width: 129px; height: 38px;border: 0;line-height: 38px;}
    	.lit-wrap { padding-top: 30px;margin: 0 auto;}
    	.bg-con { background-color: #F5F5FA;}
    	.con-record { width: 520px; padding: 20px 0; margin: 0 auto;}
    	.day-record span {width: 88px; height: 28px;margin: 0 20px;border: 1px solid #12b7f5; border-radius: 15px;line-height: 28px;}
    	.times-record {margin: 30px 0 24px;}
    	.is-ok {width: 100px; color: #12B7F5}
    	.is-height {width: 100px; margin: 0 110px; color: #fe5f59;}
    	.is-low {width: 100px; color: #56c673}
    	.canvas-record, #canvas {width: 520px; height: 230px; background-color: #fff;}
    	.data-record {margin-top: 20px;text-align: center; line-height: 40px;}
    </style>
</head>
<body class="white-bg plr10">
    
    <div class="lit-wrap">
    	<h2 class="tab-record fs14 b-flc">
    		<span class="f-hover">血糖记录</span>
    		<span>血压记录</span>
    	</h2>
    	<div class="bg-con">
			<div class="con-record">
				<h3 class="day-record fs14 clearfix">
					<span class="f-hover">7天</span>
					<span>30天</span>
					<span>90天</span>
					<span>半年</span>
				</h3>
				<p class="h-lh-14 times-record fs14 clearfix">
					<em class="is-ok"></em>
					<em class="is-height"></em>
					<em class="is-low"></em>
				</p>
				<div class="canvas-record fs14"><strong class="danwei" style="color: #12B7F5">单位(mmol/L)</strong>
					<canvas id="canvas" width="520" height="230"></canvas>
				</div>
				<p class="h-lh-14 data-record"></p>
			</div>
		</div>
    </div>
    
    <script src="js/jquery.min.js?v=2.1.4"></script>
    <script src="js/bootstrap.min.js?v=3.3.6"></script>
    <script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>
    <script src="js/plugins/layer/layer.min.js"></script>
    <script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
    <script src="js/hplus.min.js?v=4.1.0"></script>
    <script src="js/plugins/pace/pace.min.js"></script>
    <script src="js/plugins/toastr/toastr.min.js"></script>
    <script src="js/plugins/artDialog/6.0.5/js/dialog-plus.min.js"></script>
    <script src="js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
    <script src="js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
    <script src="js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
    <script src="js/es6-promise.js"></script>
    <script src="js/underscore.js"></script>
    <script src="js/util.js"></script>
    <script src="js/template.js"></script>
    <script src="js/api-service.js"></script>
    <script src="js/plugins/chartJs/Chart.min.js" type="text/javascript"></script>
    <script src="js/body-record-api.js"></script>
    <script src="js/buz/body-record.js"></script>
</body>
</html>

+ 14 - 0
js/body-record-api.js

@ -0,0 +1,14 @@
(function() {
	var bodyRecordApis = {
		// 最后一条数据,用来推算时间
		getBodyRecoredLast: function(data) {
			return APIService.httpGet('doctor/health_index/last', data);
		},
		// 获取记录
		getBodyRecordData: function(data) {
			return APIService.httpPost('doctor/health_index/chart', data);
		}
	}
	window.bodyRecordApis = bodyRecordApis;
})(jQuery)

+ 144 - 0
js/buz/body-record.js

@ -0,0 +1,144 @@
(function() {
	var request = getRequest(),
		patient = request.patiCode || '';
	var tabIndex = 0,
		dayIndex = 0;
	$('.tab-record span').click(function() {
		tabIndex = $(this).index();
		dataCanvas.labels = [];
		dataCanvas.datasets[0].data = [];
		dataCanvas.datasets[1].data = [];
		indexHover(this);
		dayIndex = 0;
		var ele = $('.day-record span').get(0)
		indexHover(ele);
		// 切换数据
		getBodyRecord(tabIndex, dayIndex);
	});
	$('.day-record span').click(function() {
		dayIndex = $(this).index();
		indexHover(this);
		// 切换数据
		getBodyRecord(tabIndex, dayIndex);
	});
	function indexHover(ele) {
		$(ele).siblings().removeClass('f-hover');
		$(ele).addClass('f-hover');
	}
	// 时间推算
	function getDateFromCurrentDate(fromDate, dayInterval) {
		var curDate = new Date(Date.parse(fromDate.replace(/-/g, "/")));
		curDate.setDate(curDate.getDate() + dayInterval);
		var year = curDate.getFullYear();
		var month = (curDate.getMonth() + 1) < 10 ? "0" + (curDate.getMonth() + 1) : (curDate.getMonth() + 1);
		var day = curDate.getDate() < 10 ? "0" + curDate.getDate() : curDate.getDate();
		return year + "-" + month + "-" + day + " 00:00:00";
	};
	// 获取最后一条数据
	var dataLast = {patient: patient};
	var lastXT = '',
		lastXY = '';
	bodyRecordApis.getBodyRecoredLast({data: dataLast}).then(function(res){
		if(res.status == 200){
        	lastXT = res.data.xt.recordDate;
        	lastXY = res.data.xy.recordDate;
        	// 初始化执行
			getBodyRecord(tabIndex, dayIndex);
    	}else{
        	toastr && toastr.warning(res.msg);
    	}
	})
	// 绘制折线图初始定义
	var ctx = document.getElementById('canvas').getContext("2d");
	var dataCanvas = {
		labels : [],
		datasets : [
			{
				fillColor : "rgba(220,220,220,0.5)",
				strokeColor : "rgba(220,220,220,1)",
				pointColor : "rgba(220,220,220,1)",
				pointStrokeColor : "#fff",
				data : []
			},
			{
				fillColor : "rgba(151,187,205,0.5)",
				strokeColor : "rgba(151,187,205,1)",
				pointColor : "rgba(151,187,205,1)",
				pointStrokeColor : "rgba(151,187,205,1)",
				data : []
			}
		]
	};
	var defaults = {
		scaleStartValue : 0,
		scaleShowLabels : true,
    	datasetFill : false,         // 是否填充数据集 
    	animation : true,            // 是否执行动画  
    	animationSteps : 60,          // 动画的时间   
    	animationEasing : "easeOutQuart",    // 动画的特效   
    	onAnimationComplete : null    // 动画完成时的执行函数
	}
	var myLineChart = null;
//	new Chart(ctx).Line(dataCanvas, defaults);
	// 获取数据
	function getBodyRecord(tab, day) {
		$('.danwei').html(tab == 0 ? '单位(mmol/L)' : '单位(mmHg)');
		var	dayNum = 0;
		switch(day) {
			case 0:
				dayNum = 7;break;
			case 1:
				dayNum = 30;break;
			case 2:
				dayNum = 90;break;
			case 3:
				dayNum = 365 / 2;break;
		}
		var type = (tab == 0 ? 1 : 2),
			startdate = (tab == 0 ? lastXT : lastXY),
			enddate = getDateFromCurrentDate(startdate, -dayNum),
			gi_type = (tab == 0 ? 1 : 0);// 字段不清楚暂时不处理
		$('.data-record').html(enddate.substr(0, 11) + '至' + startdate.substr(0,11));
		var recordData = {
			type: type,
			begin: enddate,
			end: startdate,
			gi_type: gi_type,
			patient: patient
		}
		// 获取体征记录
		bodyRecordApis.getBodyRecordData({data: recordData}).then(function(res){
			if(res.status == 200){
	        	var list = res.list,
	        		len = list.length;
	        	for(var i = 0; i < len; i++) {
	        		if(len == 1) {
	        			dataCanvas.labels = [enddate.substr(5, 5), list[i].date.substr(5, 5)];
	        			dataCanvas.datasets[0].data = [null, list[i].value1];
	        		} else {
	        			dataCanvas.labels[i] = list[i].date.substr(5, 5);
	        			dataCanvas.datasets[0].data[i] = list[i].value1;
	        		}
	        		if(tabIndex == 1) {
	        			if(len == 1) {
	        				dataCanvas.datasets[1].data = [null, list[i].value2];	
	        			} else {
	        				dataCanvas.datasets[1].data[i] = list[i].value2;
	        			}
	        		} else {
	        			dataCanvas.datasets[1].data[i] = []
	        		}
	        	}
	        	// 绘制图
	        	if(myLineChart) {// 如果构造过,解析
	        		myLineChart.destroy();
	        	}
	        	myLineChart = new Chart(ctx).Line(dataCanvas, defaults);
	    	}else{
	        	toastr && toastr.warning(res.msg);
	    	}
	    })
	}
})(jQuery)

+ 4 - 4
js/buz/prescription-tabs.js

@ -26,9 +26,9 @@ var links = [{
    name: '订单跟踪',
    class: '',
},{
    url: 'about:blank',
    url: 'body-record.html?patiCode='+patiCode,
    name: '体征记录',
    class: 'hidden'
    class: ''
},{
    url: 'jianchajianyan.html?from=tab&patient='+patiCode,
    name: '检查检验',
@ -139,9 +139,9 @@ function updateLinkInfo(){
        name: '订单跟踪',
        class: '',
    },{
        url: 'about:blank',
        url: 'body-record.html?patiCode='+patiCode,
        name: '体征记录',
        class: 'hidden'
        class: ''
    },{
        url: 'jianchajianyan.html?from=tab&patient='+patiCode,
        name: '检查检验',

+ 1 - 1
js/util.js

@ -178,7 +178,7 @@ function getDaysRemaining(item) {
		curTime = new Date().getTime();
	if(minDrugDay && presCreateTime) {
		var preTime = new Date(presCreateTime.replace(/-/g,'/')).getTime()
		var remain = Math.round(minDrugDay - ((curTime - preTime)/(24 * 3600 * 1000)))
		var remain = Math.round(minDrugDay - parseInt(Math.abs(curTime - preTime)/(24 * 3600 * 1000)))
		if(remain < 0) {
			return '<span style="color: #ff3b30;">已用完</span>'
		}