Index: ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js =================================================================== diff -u -r25135 -r25908 --- ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js (.../reviewView.js) (revision 25135) +++ ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.js (.../reviewView.js) (revision 25908) @@ -1,3 +1,130 @@ +var materialForReviewViewStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!getMaterialDefinitionByTousseName.do', + method : 'POST' + }), + reader : new Ext.data.JsonReader({ + fields : [ + {name : 'id'}, + {name : 'name'}, + {name : 'count'}, + {name : 'type'}, + {name : 'notice'}, + {name : 'hasNotice'}, + {name : 'washQualityCheckPoint'}, + {name : 'washQualityCheckMethod'}, + {name : 'detachable'}, + {name : 'functionCheck'} + ] + }), + listeners : { + load : function(thiz,records,options){ + var len = records.length; + var materialTotalAmount = 0; + var diposableGoodsTotalAmount = 0; + for(var i = 0 ; i < len ; i++){ + var type = records[i].data.type; + if(type == '一次性物品'){ + diposableGoodsTotalAmount += records[i].data.count; + }else{ + materialTotalAmount += records[i].data.count; + } + } + Ext.getCmp('materialForReviewViewAmount').setText("器械总数:" + materialTotalAmount); + Ext.getCmp('materialForReviewViewDiposableGoodsAmount').setText("一次性物品总数:" + diposableGoodsTotalAmount); + } + } +}); + +function showTousseImgBtns(){ + curSelMaterialName = null; + curSelMaterialId = null; + + Ext.getCmp('btn_washQualityCheckPoint').hide(); + Ext.getCmp('btn_washQualityCheckMethod').hide(); + Ext.getCmp('btn_functionCheck').hide(); + + if(!teachingPicture){ + Ext4.getCmp('btn_packingNote').show(); + Ext4.getCmp('btn_teachingPicture').show(); + } + if(!specificationPicture){ + Ext4.getCmp('btn_specification').show(); + } + if(!teachingVideo){ + Ext4.getCmp('btn_watchVideoBar').show(); + } +} +function loadTousseInfo(td_id,tousseName){ + //将点击或者扫描的器械包导入材料清单 + materialForReviewViewStore.load({params: {tousseName:tousseName,tousseDefinitionId:td_id}}); +} +var materialForReviewViewGrid = new Ext.grid.GridPanel({ + id :'rightMaterial', + store: materialForReviewViewStore, + region: 'east', + margin: '0 0 0 0', + sm: new Ext.grid.CheckboxSelectionModel(), + frame:true, + cm:new Ext.grid.ColumnModel([ + new Ext.grid.CheckboxSelectionModel(), + {header : "id",dataIndex : 'id',hidden : true}, + {header : "材料名称",width : 120,flex: 1,menuDisabled: true,dataIndex : 'name'}, + {header : "数量",width : 50,menuDisabled: true,dataIndex : 'count'}, + {header : "是否可拆",width :100,menuDisabled: true,dataIndex : 'detachable',renderer: function(v , ctx , record){ + if(v == '是'){ + var materialName = record.get('name'); + var materialId = record.get('materialDefinitionId'); + return ""; + }else{ + return v; + } + }} + ]), + tbar:[{ + xtype:'button', + id:"materialForReviewViewAmount" + },'-',{ + xtype:'button', + id:"materialForReviewViewDiposableGoodsAmount" + },'-',{ + xtype:'button', + text : '添加质量监测', + hidden:SSTS_QualityRecord_Create, + id:"addMaterialQualityMonitoring", + handler: function(){ + materialCountRecords = Ext.getCmp("rightMaterial").getSelectionModel().getSelections(); + otherPartAddQM = true; + addQualityMonitoringByResponPart("清洗消毒"); + } + }] + +}); +materialForReviewViewGrid.on('mouseover', function(e) {// 添加mouseover事件 + var index = materialForReviewViewGrid.getView().findRowIndex(e.getTarget());// 根据mouse所在的target可以取到列的位置 + if (index !== false) {// 当取到了正确的列时,(因为如果传入的target列没有取到的时候会返回false) + var record = this.getStore().getAt(index); + tableContent = record.data['htmlContent'];// + var content = " " + + record.data['washQualityCheckMethod'] + +" " + + record.data['washQualityCheckPoint'] + + " " + + record.data['functionCheck'] + + ""; + var tableContent = ("" + + "" + + ""); + tableContent += "" + + content + + "

清洗质量检查方法

清洗质量检查关注点

功能检查


"; + record.set("htmlContent",tableContent); + var rowEl = Ext4.fly(e.getTarget());// 把target转换成Ext.Element对象 + rowEl.set({'data-qtip' : tableContent,'data-qwidth':350,'data-qtitle':' 质量、功能检查:'},false); + + } +}); + var grid; var reviewedPanel; var tousseInstanceRecord; @@ -400,6 +527,11 @@ } sterilingTypeCanAddToReview = false; } + //导入材料清单需要用到tousseDefinitionId,tousseDefinitionName + if(records[i].data['tousseDefinition.name'] && records[i].data['tousseDefinition.id']){ + records[i].data.tousseDefinitionId = records[i].data['tousseDefinition.id']; + records[i].data.tousseDefinitionName = records[i].data['tousseDefinition.name'] + } }); DWREngine.setAsync(true); if(sterilingTypeCanAddToReview == false){ @@ -613,6 +745,7 @@ var logItems = []; for ( var i = 0;i' + v + ''; }else{ return '' + '否' + ''; } } }, - {header : "灭菌开始日期",width : 80,dataIndex : 'sterileStartDate',sortable:false}, + {header : "灭菌日期",width : 80,dataIndex : 'sterileStartDate',sortable:false}, {header : "装配人",width : 50,dataIndex : 'operator',sortable:false}, {header : "装配时间",width : 105,dataIndex : 'operationTime', renderer : myDateFormatByMinute,sortable:false}, {header : "灭菌程序",width : 60,dataIndex : 'sterilingType',sortable:false}, @@ -1360,6 +1494,20 @@ } }); + //点击待审核任务列表的行并将其信息引入材料清单 + grid.on('rowclick',function(e){ + if(sstsConfig.showTousseMaterialsInPackingReview && sstsConfig.showTousseMaterialsInPackingReview == true){ + var index = grid.store.indexOf(grid.getSelectionModel().getSelected());// 根据mouse所在的target可以取到列的位置 + if (index !== false) {// 当取到了正确的列时,(因为如果传入的target列没有取到的时候会返回false) + var record = this.getStore().getAt(index); + var tousseDefinitionId = record.get("tousseDefinition.id"); + var tousseDefinitionName = record.get("tousseDefinition.name"); + var tousseDefinitionName = record.get("tousseDefinition.tousseType"); + loadTousseInfo(tousseDefinitionId,tousseDefinitionName); + } + } + }); + var store = new Ext.data.SimpleStore({ fields: [ {name: 'id',type: 'long'}, @@ -1381,20 +1529,20 @@ border : false, bodyBorder : false, columns: [ - {id:'tousseName',header: "器械包名称", width: 180, menuDisabled: true, dataIndex: 'tousseDefinitionName'}, - {id:'barcode',header: "条码",width: 60, menuDisabled: true, dataIndex: 'barcode'}, + {id:'tousseName',header: "器械包名称", width: 120, menuDisabled: true, dataIndex: 'tousseDefinitionName'}, + {id:'barcode',header: "条码",width: 120, menuDisabled: true, dataIndex: 'barcode'}, + {id : 'deleteItem',header : '删除',width : 30,menuDisabled : true, + renderer : function(v, p, record) { + var str = ""; + return str; + }, + dataIndex : 'button' + }, {header : "包装类型",width : 80,dataIndex : 'packageType',sortable:false}, - {header : "灭菌开始日期",width : 80,dataIndex : 'sterileStartDate',sortable:false}, - {header : "灭菌程序",width : 80,dataIndex : 'sterilingMethod',hidden:false}, - {header : "灭菌方式",width : 80,dataIndex : 'sterilingMode',hidden:false}, - {id:'operationRemark',header : "虚拟篮筐",width : 80,dataIndex : 'virtualBasketSeqNum',hidden:true}, - {id : 'deleteItem',header : '删除',width : 60,menuDisabled : true, - renderer : function(v, p, record) { - var str = ""; - return str; - }, - dataIndex : 'button' - } + {header : "灭菌日期",width : 60,dataIndex : 'sterileStartDate',sortable:false}, + {header : "灭菌程序",width : 60,dataIndex : 'sterilingMethod',hidden:false}, + {header : "灭菌方式",width : 60,dataIndex : 'sterilingMode',hidden:false}, + {id:'operationRemark',header : "虚拟篮筐",width : 80,dataIndex : 'virtualBasketSeqNum',hidden:true} //{header : "炉号",width : 120,dataIndex : 'sterilizer',hidden:false}, //{header : "炉次",width : 50,dataIndex : 'frequency',hidden:false} ], @@ -1439,26 +1587,7 @@ var basketBarcode = Ext.getCmp("basketBarcode").getValue(); reviewTousse(basketName,basketBarcode); } - },'-',{ - text : '打印分组类型:' - }, - { - xtype : 'combo', - id : 'printGroupType', - name : 'printGroupType', - editable:false, - valueField : 'value', - displayField : 'value', - store : new Ext.data.SimpleStore( { - fields : [ 'value'], - data : [['默认'],['按科室分组'],['科室包名']] - }), - value : taskGroupObj.printGroupType, - forceSelection : true, - mode : 'local', - triggerAction : 'all', - anchor : '100%' - }] + }] }); tbar.render(forReviewGrid.tbar); } @@ -1551,6 +1680,7 @@ var tousseInstance = new tousseInstanceRecord({ id: obj.tousseId, + tousseDefinitionId : obj.tousseDefinitionId, tousseDefinitionName: obj.tousseName, barcode: obj.barcode, packageType: obj.packageType, @@ -1563,6 +1693,10 @@ clearScanText(); onScannedTousseAmountChanged();// 待审核包数量数量变化处理 speaker.speak(obj.tousseName); + if(sstsConfig.showTousseMaterialsInPackingReview && sstsConfig.showTousseMaterialsInPackingReview == true){ + //如果启用材料清单,则将扫描的条码的信息导入材料清单 + loadTousseInfo(obj.tousseDefinitionId,obj.tousseName); + } } else if(returnType == "multiTousseInstancesSuccess"){//扫描的是虚拟篮框(单个或首尾)或首尾器械包(返回结果为单个器械包,暂保留) var tousseInstanceArray = obj.tousseInstances; if(tousseInstanceArray && tousseInstanceArray.length > 0){ @@ -1791,9 +1925,28 @@ },{ xtype:'textfield', readOnly :true, + width : 50, id:'alreadyScanAmount', cls:'fieldReadOnlyNoRemove', value:0 + },{ + text : '打印分组类型:' + },{ + xtype : 'combo', + id : 'printGroupType', + name : 'printGroupType', + editable:false, + valueField : 'value', + displayField : 'value', + store : new Ext.data.SimpleStore( { + fields : [ 'value'], + data : [['默认'],['按科室分组'],['科室包名']] + }), + value : taskGroupObj.printGroupType, + forceSelection : true, + mode : 'local', + triggerAction : 'all', + anchor : '100%' }] }); var reviewTableContent; @@ -1819,6 +1972,19 @@ 'data-qtip' : reviewTableContent,'data-qwidth':450,'data-qtitle':' 器械包信息:'},false); } }); + //审核确认列表点击行,将其信息引入材料清单 + forReviewGrid.on('rowclick',function(e){ + if(sstsConfig.showTousseMaterialsInPackingReview && sstsConfig.showTousseMaterialsInPackingReview == true){ + //如果启用材料清单,则将点击的行的条码的信息导入材料清单 + var index = forReviewGrid.store.indexOf(forReviewGrid.getSelectionModel().getSelected());// 根据mouse所在的target可以取到列的位置 + if (index !== false) {// 当取到了正确的列时,(因为如果传入的target列没有取到的时候会返回false) + var record = this.getStore().getAt(index); + var tousseDefinitionId = record.get("tousseDefinitionId"); + var tousseDefinitionName = record.get("tousseDefinitionName"); + loadTousseInfo(tousseDefinitionId,tousseDefinitionName); + } + } + }); function clearBarcodeAndBasketName(){ Ext.getCmp('barcode').setValue(''); Ext.getCmp('basketName').setValue(''); @@ -1980,40 +2146,47 @@ } }, items:[{ - id : 'reviewGridTab', - layout : 'fit', - title: '审核任务', -// autoHeight : true, - items:[new Ext.Panel({ - layout : 'border', - items : [ { - region : 'west', - title : '审核确认列表', - margins : '0 0 0 0', - items : forReviewGrid, - layout:'fit', - width : '50%' - }, { - region : 'center', - margins : '0 0 0 0', - width : '50%', - layout:'fit', - items : grid - } ] - })] - },{ - id : 'reviewedChartTab', - layout : 'fit', - title: '审核统计', - autoHeight : true, - items:[reviewedChartPanel] - },{ - id : 'reviewedBasketTab', - layout : 'fit', - title: '入筐器械包', - autoHeight : true - } - ] + id : 'reviewGridTab', + layout : 'fit', + title: '审核任务', +// autoHeight : true, + items:[new Ext.Panel({ + layout : 'border', + items : [ { + region : 'west', + title : '审核确认列表', + margins : '0 0 0 0', + items : forReviewGrid, + layout:'fit', + width : ((sstsConfig.showTousseMaterialsInPackingReview == true) ? ('40%') : ('50%')) + }, { + region : 'center', + margins : '0 0 0 0', + width : ((sstsConfig.showTousseMaterialsInPackingReview == true) ? ('40%') : ('50%')), + layout :'fit', + items : grid + }, { + region : 'east', + title : '材料清单', + margins : '0 0 0 0', + width : '20%', + layout :'fit', + hidden : ( (sstsConfig.showTousseMaterialsInPackingReview == true)? false : true ), + items : materialForReviewViewGrid + } ] + })] + },{ + id : 'reviewedChartTab', + layout : 'fit', + title: '审核统计', + autoHeight : true, + items:[reviewedChartPanel] + },{ + id : 'reviewedBasketTab', + layout : 'fit', + title: '入筐器械包', + autoHeight : true + } ] }); new Ext.Viewport( Index: ssts-web/src/main/webapp/disinfectsystem/config/szszlyy/config.js =================================================================== diff -u -r25825 -r25908 --- ssts-web/src/main/webapp/disinfectsystem/config/szszlyy/config.js (.../config.js) (revision 25825) +++ ssts-web/src/main/webapp/disinfectsystem/config/szszlyy/config.js (.../config.js) (revision 25908) @@ -147,5 +147,7 @@ //增加图谱功能 toussePicturesShow:true, //是否限制灭菌日期为今天(不含)以后的包不能灭菌 - donotAllowSterilingDateOfTousseAfterTodayAddToSterilizationRecord:true + donotAllowSterilingDateOfTousseAfterTodayAddToSterilizationRecord:true, + //审核打包,是否启用材料清单(true: 启用 ,false :不启用) + showTousseMaterialsInPackingReview : true } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.jsp =================================================================== diff -u -r25135 -r25908 --- ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.jsp (.../reviewView.jsp) (revision 25135) +++ ssts-web/src/main/webapp/disinfectsystem/packing/reviewView.jsp (.../reviewView.jsp) (revision 25908) @@ -5,6 +5,11 @@ <%@ page import="com.forgon.disinfectsystem.entity.basedatamanager.container.Container" %> <%@page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> <%@page import="com.forgon.disinfectsystem.entity.departmentGroupOption.DepartmentGroupOption"%> +<%@page import="com.forgon.disinfectsystem.entity.qualitymonitoringmanager.qualitymonitoringconfig.QualityMonitoringDefinition" %> +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition" %> +<%@page import="com.forgon.disinfectsystem.common.Constants"%> +<%@page import="com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinition"%> +<%@page import="com.forgon.disinfectsystem.entity.packing.PackingTask"%> <%@ include file="/common/taglibs.jsp"%> @@ -40,8 +45,15 @@ + + @@ -53,16 +65,26 @@ - + @@ -83,6 +105,7 @@ + <%@ include file="/disinfectsystem/print/print.jsp"%>