yezehua %!s(int64=7) %!d(string=hai) anos
pai
achega
c049e00622

+ 174 - 48
js/buz/prescription-adjustment.js

@ -4,9 +4,9 @@ $(function(){
	    isLeader = isTeamLeader(),
	    prescriptionCode = request.code;
    
    var medicineFreqData = []
    var usageDict = []
    
    var medicineFreqData = [];
    var usageDict = [];
    var isChangeDiagnosis = 0; //判断是否改变疾病类型
    var $main = $('#main');
    
    template.helper('toJson',function(o) {
@ -24,11 +24,15 @@ $(function(){
	    	}
	    }),
	    prescriptionDetailApis.getRateList({data:{}}),
	    prescriptionDetailApis.getUsageDict({data:{}})
	    prescriptionDetailApis.getUsageDict({data:{}}),
	    prescriptionDetailApis.getReasonByType({data: {type:1}})
    ]).then(function(responses) {
    	$main.html(template('detailTmpl',responses[0].data))
    	var prescriptionInfo = responses[0].data;
    	var reasonTypes = responses[3].data;
    	$main.html(template('detailTmpl', $.extend({},prescriptionInfo, {reasonTypes:reasonTypes})))
    	medicineFreqData = responses[1].data
    	usageDict = responses[2].data
    	
		bindEvents()
		initDiagnosisSuggestInput()
		initDrugNameSuggestInput()
@ -52,9 +56,12 @@ $(function(){
    	})
    	
    	$('#adjustReason').on('click','li',function() {
    		$('#disagreeReason').val($.trim($(this).text()))
    		$(this).siblings().removeClass('active');
    		$(this).addClass('active')
    		if($(this).hasClass('active')) {
    			$(this).removeClass('active')
    		} else {
    			$(this).addClass('active')
    		}
    		setAdjustReason()
    	})
    	
    	$('#drugs').on('click','.icon-shanchu',function() {
@ -67,11 +74,17 @@ $(function(){
    		} else {
    			$input.val(0)
    		}
    		countMediSum($(this).closest('.ibox-content'))
    		var $box = $(this).closest('.ibox-content')
	        countMediSum($box)
    	}).on('click','.icon-xinzeng',function() {
    		var $input = $(this).closest('li').find('input').eq(0);
    		var amount = parseInt($input.val()||'0')
    		$input.val(amount + 1)
    		var $box = $(this).closest('.ibox-content')
	        countMediSum($box)
    	}).on('blur', 'input.j-medi-single, input.j-selDate',function() {
    		var $box = $(this).closest('.ibox-content')
	        countMediSum($box)
    	})
    	
    	$('.diagnosis-wrap').on('click',function() {
@ -98,7 +111,8 @@ $(function(){
	    			var name = $('#diagnosisInput').val()
	    			var code = $('#diagnosisInput').attr('data-code')
	    			if(name && code) {
	    				var html = template('diagnosisTmpl', {name: name})
	    				isChangeDiagnosis = 1;
	    				var html = template('diagnosisTmpl', {data:{name: name,code:code}})
	    				$('#diagnosis').append(html)
	    			}
	    			$('#diagnosisInput').val('')
@ -111,9 +125,100 @@ $(function(){
    	
    	$('#diagnosis').on('click', '.fa-close' ,function() {
    		$(this).closest('li').remove()
    		isChangeDiagnosis = 1;
    	})
    }
    	$('#backBtn').on('click',function() {
    		history.go(-1);
    	})
    	$('#confirmBtn').click(function(){
			var $sum = $(".j-sumMedicine");
			if($sum.length > 0){
				for(var i=0;i<$sum.length;i++){
					if(! $sum.eq(i).attr('data-num')){
						showErrorMsg('请完善药品信息')
						return 
					}
				}
			}else{
	
				return 
			}
	
			var msgArr = [],
				$box = $('#drugs .ibox-content');
			for(var i=0;i<$box.length;i++){
				var data = {};
				var saveData = JSON.parse($box.eq(i).attr('data-json'));
				data.prescriptionCode = prescriptionCode;
				data.drugCode = saveData.drugCode;
				data.drugName = $box.eq(i).find('.j-drugName').val().replace(/\(/,'(').replace(/\)/,')');
				data.drugRate = $box.eq(i).find('.j-selFreq').attr('data-code');
				data.drugRateName = $box.eq(i).find('.j-selFreq').val();
	   		    data.drugFormat=saveData.drugFormat.replace(/\(/,'(').replace(/\)/,')'); 
	   		    data.subjectClass = $box.eq(i).attr('data-class');
	   		    data.isRefrigerate = $box.eq(i).attr('data-storage')==2?1:0;
		 		data.physicAmount = "";
		 		data.physicAmountUnit = saveData.physicAmountUnit;
		 		data.physicAmountUnitName = saveData.physicAmountUnitName;
		 		data.physicDose = $box.eq(i).find('.j-medi-single').val().trim();
		 		data.physicDoseUnit = $box.eq(i).find('.j-dose-unit').attr('data-unit');
		 		data.physicDoseUnitName = $box.eq(i).find('.j-dose-unit').text(); 
		 		data.drugNumUnit = $box.eq(i).find('.j-sumMedicine').attr('data-unit');//取当次用量单位
		 		data.drugNumUnitName = $box.eq(i).find('.j-sumMedicine').attr('data-name'); 
		 		data.drugUsage= $box.eq(i).find('.j-method').attr('data-code');
		 		data.usageName= $box.eq(i).find('.j-method').val();
		 		data.num= $box.eq(i).find(".j-sumMedicine").attr('data-num');//取总量
		 		data.dayCount=$box.eq(i).find('.j-selDate').val();
		     	msgArr.push(data);   
			}
			//调整CODE
			var reasonCode= _.map($('#adjustReason li.active'),function(el) {
    				return $(el).attr('data-code')
    			}).join(',')
			var params= {
				code:prescriptionCode,
				infos:JSON.stringify(msgArr),
				reason:$('#adjustReasonTextarea').val().trim()?$('#adjustReasonTextarea').val().trim():'-',
				reasonCode:reasonCode,
				diagnosis:(function(){
					// TODO
					var diagnosis = [];
					if(isChangeDiagnosis) {
						diagnosis = _.map($('#diagnosis li'),function(el) {
							var data = JSON.parse($(el).attr('data-json'))
							return {
								code: data.code,
								name: data.name
							}
						})
						return JSON.stringify(diagnosis)
					}
					return ""
				})()
			}
			
			prescriptionDetailApis.updatePresInfo({
				data: params
			}).then(function(res) {
				if(res.status == 200){
					showSuccessMsg("保存成功")
					location.reload(true)
				} else {
					showErroeMsg("保存失败")
				}
			})
			
		})
    }
	function setAdjustReason() {
		var reasons = _.map($('#adjustReason li.active'),function(el) {
			return $.trim($(el).text())
		});
		if(reasons && reasons.length) {
			$('#adjustReasonTextarea').val(reasons.join(','))
			$('#adjustReasonTextarea').focus()
		}
	}
	function initDiagnosisSuggestInput() {
		$('#diagnosisInput').bsSuggest({
	      url: APIService.server+'doctor/prescriptionInfo/getIcd10Info?nameKey=',
@ -153,9 +258,11 @@ $(function(){
				$freq = $box.find(".j-selFreq"),
				$date = $box.find(".j-selDate");
			var json = v.json;	
			$box.attr('data-json',JSON.stringify(json))
			$single.val(json.physicDose)
			$single.attr('data-code', json.physicDoseUnit)
			$doseUnit.text(json.physicDoseUnitName)
			$doseUnit.attr('data-unit', json.physicDoseUnit)
			$freq.val(json.drugRateName||"")
			$freq.attr('data-code', json.drugRate)
			$date.val(json.dayCount||"")
@ -172,6 +279,8 @@ $(function(){
	      ignorecase: true
	    }).on('onSetSelectValue', function (e, v) {
	        $(this).attr('data-code', v.id)
	        var $box = $(this).closest('.ibox-content')
	        countMediSum($box)
	    })
	}
	
@ -188,7 +297,8 @@ $(function(){
	      effectiveFields: ['day'],
	      ignorecase: true
	    }).on('onSetSelectValue', function (e, v) {
	        
	        var $box = $(this).closest('.ibox-content')
	        countMediSum($box)
	    })
	}
	
@ -207,45 +317,61 @@ $(function(){
	
	//计算药品总量
	function countMediSum($box){
		var $single = $box.find(".j-medi-single").val().trim(),
			$freq = $box.find(".j-selFreq").attr('data-code').trim(),
			$date = $box.find(".j-selDate").val().trim(),
			$info = JSON.parse($ul.attr('data-info'));
		if($name && $single && $freq && $date){
			toFreqRate($freq,function(rate){
				var num = $single*rate*$date
				var sum="";
				if($info.pakeSpec){
					//新增药品
					sum = Math.ceil(num/$info.minDose)
					showResultSum(sum);
				}else{
					var drugNumUnit = $info.drugNumUnit,
						physicDoseUnit = $info.physicDoseUnit;			
					//请求药品信息
					var drugCode = $info.drugCode;
					toMediMsg(drugCode,function(msg){
						$ul.find(".j-medi-name").attr('data-storage',msg.storageConditions);//冷藏
						$ul.find(".j-medi-name").attr('data-class',msg.subjectClass);
						if(drugNumUnit == physicDoseUnit){
							sum = num
						}else{
							if(drugNumUnit == msg.pack_unit){
								sum = Math.ceil(num/msg.packSpec)
							}else{
								sum = Math.ceil(num/msg.minDose)
		var single = $box.find(".j-medi-single").val(),
			freq = $box.find(".j-selFreq").attr('data-code'),
			date = $box.find(".j-selDate").val(),
			$sum = $box.find('.j-sumMedicine'),
			$info = JSON.parse($box.attr('data-json'));
		if(!single || !freq || !date) {
			return ;
		} else {
			single = single.trim();
			freq = freq.trim();
			date = date.trim();
		}
		if(single && freq && date){
			prescriptionDetailApis.drugToRate({data:{code: freq}}).then(function(res){
				if(res.status == 200){
					var rate = res.data.rate
					var num = single*rate*date
					var sum="";
					if($info.pakeSpec){
						//新增药品
						sum = Math.ceil(num/$info.minDose)
						$sum.text(sum+$info.drugNumUnitName)
						$sum.attr('data-num',sum)
						$sum.attr('data-name',$info.drugNumUnitName);
						$sum.attr('data-unit',$info.drugNumUnit);
					}else{
						var drugNumUnit = $info.drugNumUnit,
							physicDoseUnit = $info.physicDoseUnit;			
						//请求药品信息
						var drugCode = $info.drugCode;
						
						prescriptionDetailApis.getPhysicInfo({data:{code: drugCode}}).then(function(res){
							if(res.status == 200){
								var msg = res.data[0]
								$box.attr('data-storage',msg.storageConditions);//冷藏
								$box.attr('data-class',msg.subjectClass);
								if(drugNumUnit == physicDoseUnit){
									sum = num
								}else{
									if(drugNumUnit == msg.pack_unit){
										sum = Math.ceil(num/msg.packSpec)
									}else{
										sum = Math.ceil(num/msg.minDose)
									}
								}
								$sum.text(sum+$info.drugNumUnitName)
								$sum.attr('data-num',sum)
								$sum.attr('data-name',$info.drugNumUnitName);
								$sum.attr('data-unit',$info.drugNumUnit);
							}
						}
						showResultSum(sum);
					})
						})
					}
				}		
			})
		}
		function showResultSum(sum){
			$ul.find(".j-sumMedicine").html(sum+$info.drugNumUnitName);
			$ul.find(".j-sumMedicine").attr('data-num',sum);
			$ul.find(".j-sumMedicine").attr('data-name',$info.drugNumUnitName);
			$ul.find(".j-sumMedicine").attr('data-unit',$info.drugNumUnit);
		}
	}	
	
})

+ 1 - 1
js/buz/prescription-detail.js

@ -163,7 +163,7 @@ $(function(){
	    			data: {
	    				code: prescriptionCode, // 续方CODE
	    				state: 2, // 1同意,2不同意
	    				reason: reason, // 不同意原因
	    				reason: reason || "-", // 不同意原因
    					reasonCode: reasonType // 不同意原因CODE
	    			}
	    		}).then(function(res) {

+ 8 - 2
js/prescription-detail-api.js

@ -24,7 +24,7 @@
        }
        ,
        // 获取频率换算
        drugToRate:function(data) {
        drugToRate: function(data) {
        	return APIService.httpGet('doctor/prescriptionInfo/drugToRate', data);
        },
        //获取药品信息
@ -38,7 +38,13 @@
        //获取药品用法
        getUsageDict:function(data) {
        	return APIService.httpGet('doctor/prescriptionInfo/getUsageDict', data);
        }
        },
        getReasonByType:function(data) {
        	return APIService.httpGet('doctor/prescriptionInfo/getReasonByType', data);
        },
        updatePresInfo:function(data) {
    		return APIService.httpPost('doctor/prescriptionInfo/updatePresInfo', data);
    	}
    };
    window.prescriptionDetailApis = prescriptionDetailApis;

+ 18 - 23
prescription-adjustment.html

@ -101,7 +101,7 @@
		            <div class="clearfix c-display-ib c-vam">
		            	<ul id="diagnosis" class="fl">
		            		{{each diagnosis as d i}}
			            	<li class="fl bc-12b7f5 c-fff ptb5 plr10 c-b-r5" data-json="{{d | toJson}}">
			            	<li class="fl bc-12b7f5 c-fff ptb5 plr10 c-b-r5 ml10" data-json="{{d | toJson}}">
			            		{{d.name}}
			            		<i class="fa fa-close"></i>
			            	</li>
@ -133,8 +133,8 @@
	            <p class="c-333 c-f16 mb5">RP</p>
	        </div>
	        {{each prescriptionInfo as p i}}
	        <div class="ibox-content ">
	        	<div class="pb10 plr15 mtb10 bc-f5f5fa pr" data-json="{{p | toJson}}">
	        <div class="ibox-content " data-json="{{p | toJson}}">
	        	<div class="pb10 plr15 mtb10 bc-f5f5fa pr" >
		        	<ul class="clearfix">
		        		<li class="fl pt10">药品: 
		        			<div class="c-w200 c-vam c-display-ib">
@ -189,7 +189,9 @@
		                    </div>
		        		
		        		</li>
		        		<li class="fl ml10 pt7">总量:{{p.num}}{{p.drugNumUnitName}}</li>
		        		<li class="fl ml10 pt7">总量:
		        			<span class="j-sumMedicine" data-name="{{p.drugNumUnitName}}" data-num="{{p.num}}" data-unit="{{p.drugNumUnit}}">{{p.num}}{{p.drugNumUnitName}}</span>
		        		</li>
		        	</ul>
		        	<i class="icon-shanchu"></i>
	        	</div>
@ -209,33 +211,26 @@
	        </div>
	        <div class="ibox-content">
	            <ul id="adjustReason" class="clearfix">
	            	<li class="fl c-b-c12b7f5 c-border c-12b7f5 ptb5 plr20 c-b-r20 mt10">
	            		原处方药品库存不足
	            	</li>
	            	<li class="fl c-b-c12b7f5 c-border c-12b7f5 c-fff ptb5 plr20 c-b-r20 ml10 mt10">
	            		居民体征有变化,调整用药
	            	</li>
	            	<li class="fl c-b-c12b7f5 c-border c-12b7f5 c-fff ptb5 plr20 c-b-r20 ml10 mt10">
	            		居民要求变更处方药品
	            	</li>
	            	<li class="fl c-b-c12b7f5 c-border c-12b7f5 c-fff ptb5 plr20 c-b-r20 ml10 mt10">
	            		其它
	            	</li>
	            	{{each reasonTypes as r i}}
	            	<li data-code="{{r.code}}" class="fl c-b-c12b7f5 c-border c-12b7f5 ptb5 plr20 c-b-r20 ml10 mt10">
	            		{{r.value}}
	            	</li>	
	            	{{/each}}
	            </ul>
	        </div>
	        <div class="plr10 pr">
	        	<textarea id="disagreeReason" class="c-wp100 mt10 c-h100 ptb10 plr10" calcWorld="200"></textarea>
				<span class="c-999 wordCount">0/200</span>
	        	<textarea id="adjustReasonTextarea" class="c-wp100 mt10 c-h100 ptb10 plr10" calcWorld="200">{{prescriptionAdjust.reason}}</textarea>
				<span class="c-999 wordCount">{{(prescriptionAdjust.reason && prescriptionAdjust.reason.length)||0}}/200</span>
	        </div>
	        <div class="c-tac mb15 mt15">
				<button type="button" class="btn btn-w-m btn-success mlr20">确认</button>
				<button type="button" class="btn btn-w-m btn-danger mlr20">返回</button>
				<button id="confirmBtn" type="button" class="btn btn-w-m btn-success mlr20">确认</button>
				<button id="backBtn" type="button" class="btn btn-w-m btn-danger mlr20">返回</button>
			</div>
	    </div>
    </script>
    <script id="diagnosisTmpl" type="text/html">
    	<li class="fl bc-12b7f5 c-fff ptb5 plr10 c-b-r5 ml10">
			{{name}}
    	<li class="fl bc-12b7f5 c-fff ptb5 plr10 c-b-r5 ml10" data-json="{{data | toJson}}">
			{{data.name}}
			<i class="fa fa-close"></i>
		</li>
    </script>
@ -295,7 +290,7 @@
		                    </div>
	                    </div>
	        		</li>
	        		<li class="fl ml10">总量:<input readonly="readonly" type="text" class="form-control c-w140 c-display-ib"></li>
	        		<li class="fl ml10 pt7">总量:<span class="j-sumMedicine"></span></li>
	        	</ul>
	        	<i class="icon-shanchu"></i>
        	</div>