Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r28790 -r28856 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 28790) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 28856) @@ -2015,7 +2015,12 @@ } } }); - pendingSterilizationColumnTree.getRootNode().appendChild(node); + if(pendingSterilizationColumnTree.getRootNode().childNode){ + pendingSterilizationColumnTree.getRootNode().appendChild(node); + }else { + pendingSterilizationColumnTree.getRootNode().childNode = []; + pendingSterilizationColumnTree.getRootNode().appendChild(node); + } clickNode.remove();//将当前节点移除 statisticsTousseAndBasket(); } @@ -2814,9 +2819,7 @@ name : "frequency", id : "frequency", allowBlank : false, - readOnly : true, anchor : '100%', - cls:'x-item-disabled' }] },{ @@ -3957,9 +3960,9 @@ handler : save },{ id : 'monitorBtn', - text : '保存', - hidden :true, - handler : saveMonitor + text : '暂存', + hidden :!sstsConfig.enableSterilizationDraftStatus, + handler : save2 },{ text : '取消', id : 'saveAndNewBtn', @@ -4151,7 +4154,17 @@ isNewRecord = reSterilization; - + + if(sstsConfig.enableSterilizationDraftStatus){ + if((id && currentStatus == statusDraft)){ + top.Ext.getCmp('saveBtn').hide(); + top.Ext.getCmp('monitorBtn').show(); + }else if((id && currentStatus !== statusDraft)){ + top.Ext.getCmp('saveBtn').show(); + top.Ext.getCmp('monitorBtn').hide(); + } + } + //如果是编辑并且状态是灭菌完成或者登陆用户不属于供应室也不属于二级供应室 if((id && currentStatus==statusEnd) || (id && currentStatus==statusFailure) || orgUnitCoding == null || orgUnitCoding == ''){ top.Ext.getCmp('saveBtn').setDisabled(true); @@ -4361,6 +4374,133 @@ } } +function save2(){ + if(sstsConfig.enableScanSterilizationMonitoringPackage){ + var biologicalMonitoring = top.Ext.getCmp('biologicalMonitoring').getValue(); + var monitorTousseDisplay = top.Ext.getCmp('monitorTousseDisplay').getValue(); + var foreignTousseAmount = parseInt(top.Ext.getCmp('foreignTousseAmount').getValue()); + var implantAmount = parseInt(top.Ext.getCmp('implantAmount').getValue()); + var frequency = parseInt(top.Ext.getCmp('frequency').getValue()); + if(monitorTousseDisplay !== ''){ + var monitorTousseDisplayArray = monitorTousseDisplay.split(';'); + if(monitorTousseDisplayArray.indexOf('每炉') >=0 && biologicalMonitoring == ''){ + showResult('当前灭菌记录需要扫描监测包条编码,否则不能提交保存。', null); + return; + }else if(monitorTousseDisplayArray.indexOf('每天第一炉') >=0 && frequency == 1 && biologicalMonitoring == ''){ + showResult('当前灭菌记录每天第一炉需要扫描监测包条编码,否则不能提交保存。', null); + return; + }else if(monitorTousseDisplayArray.indexOf('有植入物时') >=0 && implantAmount > 0 && biologicalMonitoring == ''){ + showResult('当前灭菌记录有植入物时需要扫描监测包条编码,否则不能提交保存。', null); + return; + }else if(monitorTousseDisplayArray.indexOf('有外来器械包时') >=0 && foreignTousseAmount > 0 && biologicalMonitoring == ''){ + showResult('当前灭菌记录有外来器械包时需要扫描监测包条编码,否则不能提交保存。', null); + return; + } + } + } + if (!formObj.form.isValid()) { + showResult('请正确填写表单各值', null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + this.enable(); + return false; + } + //重新灭菌 + if(isNewRecord){ + var tempid = top.Ext.getCmp('id').getValue(); + top.Ext.getCmp('recordId').setValue(tempid); + top.Ext.getCmp('id').setValue(0); + top.Ext.getCmp('reSterilization').setValue("true"); + } + + //判断当前灭菌程序是否能灭菌器械包 + var rootNode = sterilizationColumnTree.getRootNode(); + var hasGoods = rootNode.hasChildNodes(); + var canAddTousse = sterilizationCanAddTousse(); + if(false == canAddTousse && hasGoods){ + showResult("当前灭菌程序不能灭菌物品!", null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + return false; + } + + // 验证循环计数器是否已经存在,一个灭菌炉的一个循环次数应是唯一的。 + { + var id = top.Ext.getCmp('id').getValue(); + DWREngine.setAsync(false); + var sign = true; + var sterilizerName = top.Ext.getCmp('sterilizerName').getValue(); + var cycleCounter = top.Ext.getCmp('cycleCounter').getValue(); + var isDefineDeviceInterface = true; + SterilizationRecordTableManager.isDefineDeviceInterface(sterilizerName,function(result){ + isDefineDeviceInterface = result; + }); + if( isDefineDeviceInterface ){ + SterilizationRecordTableManager.isSterilizerCycleCounterExist(id,sterilizerName,cycleCounter, + function(result) { + sign = result; + }); + DWREngine.setAsync(true); + if (sign) { + showResult("灭菌炉的循环次数已存在,保存失败!", null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + return false; + } + }else if(!sstsConfig.showCycleCountWithoutCondition){ + //如果既没有配置灭菌炉接口也没有开启循环次数则清0 + top.Ext.getCmp('cycleCounter').setValue(0); + } + } + + var nexFn = function(){ + var result = getItemTreeData(); + top.Ext.getCmp("sterilizationGoods").setValue(result); + top.Ext.getCmp("delTousseJson").setValue(JSON.stringify(delTousseJson)); + var barcodePostionInfo = getBarcodePositionData(); + top.Ext.getCmp("barcodePositionInfo").setValue(barcodePostionInfo); + Ext.getCmp("formSubmitResult").setValue(0); + formObj.form + .submit( { + url : WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!savesterilizationRecord.do?status='+statusDraft, + method : 'POST', + waitMsg : '正在保存数据,请稍候', + waitTitle : '提交表单', + timeout:90000, + success : function(form, action) { + var result = Ext.decode(action.response.responseText); + if(result && result.message){ + var noticeMode = obj.noticeMode; + if(noticeMode == 2){ + noticeDiffSterilingMessage(top.Ext,result.message); + }else{ + showResult(result.message, null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + } + }else{ + showResult('保存成功', null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + } + grid.dwrReload(); + sterilizationRecordWin.close(); + //表单提交完给隐藏域formSubmitResult设置为1,自动化测试会用到 + Ext.getCmp("formSubmitResult").setValue(1); + }, + failure : function(form, action) { + var result = Ext.decode(action.response.responseText); + if(result && result.message){ + showResult(result.message, null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + } + } + }); + } + + if (!hasGoods){ + top.Ext.MessageBox.confirm("请确认","没有添加灭菌的物品,继续灭菌吗?", + function(button, text) { + if ("yes" == button){ + nexFn(); + }else{ + return false; + } + }); + }else{ + nexFn(); + } +} + function cancel() { saveBarcode = ""; sterilizationRecordWin.close(); Index: ssts-web/src/main/webapp/disinfectsystem/config/hbsxkyy/config.js =================================================================== diff -u -r28520 -r28856 --- ssts-web/src/main/webapp/disinfectsystem/config/hbsxkyy/config.js (.../config.js) (revision 28520) +++ ssts-web/src/main/webapp/disinfectsystem/config/hbsxkyy/config.js (.../config.js) (revision 28856) @@ -148,6 +148,8 @@ loadWashBasketsAfterSaveAndCreateNewRecyclingRecord:true, //启用回收物品列表按入筐状态排序优化 enableSortWaitRecyclingListByIntoBasketStatus:true, + //启用灭菌暂存状态 + enableSterilizationDraftStatus:true, //装配人与审核人是否相同的检查方式,值为1:相同时只进行提示,让用户选择是否继续操作。用户选择【是】,则进行下一步操作;选择【否】,则取消本次操作, 值为2:相同时进行提示,并且不允许进行下一步操作。值为其它或者没有配置:不进行检查和提示。 operatorAndReviewerIsSameCheckMode:2 } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.jsp =================================================================== diff -u -r28784 -r28856 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.jsp (.../sterilizationRecordView.jsp) (revision 28784) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.jsp (.../sterilizationRecordView.jsp) (revision 28856) @@ -36,6 +36,7 @@ var statusBegin = "<%=SterilizationRecord.STERILIZATION_STATUS_BEGIN%>";//灭菌中 var statusFailure = "<%=SterilizationRecord.STERILIZATION_STATUS_FAILURE%>";//灭菌失败 var statusInterrupt = "<%=SterilizationRecord.STERILIZATION_STATUS_INTERRUPT%>";//灭菌中断 + var statusDraft = "<%=SterilizationRecord.STERILIZATION_STATUS_DRAFT%>";//暂存 var sterilizerStatus; var SSTS_Sterilization_Create = true; Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js =================================================================== diff -u -r28359 -r28856 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js (.../sterilizationRecordView.js) (revision 28359) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordView.js (.../sterilizationRecordView.js) (revision 28856) @@ -211,6 +211,44 @@ } }); } +//开始灭菌 +function sterilizationBegin(grid){ + var records = grid.getSelectionModel().getSelections(); + if (records.length == 0) { + showResult("请至少选中一条灭菌记录!", null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + return false; + } + if (records.length > 1) { + showResult("只能选择1条处于暂存状态的灭菌记录!", null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + return false; + } + + top.Ext.MessageBox.confirm("请确认","确定开始灭菌吗?", + function(button, text) { + if ("yes" == button){ + console.log(records) + var id = records[0].data.id; + Ext.Ajax.request({ + url : WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!beginSterilization.do', + params : {id : id}, + success : function(response, options) { + hideMessageBox(false); + var result = Ext.decode(response.responseText); + showResult(result.message, null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + grid.dwrReload(); + }, + failure : function(response, options) { + hideMessageBox(false); + var result = Ext.decode(response.responseText); + if(result && result.message){ + showResult(result.message, null , sstsConfig.messagePauseTimeOnSterilizationRecordPage); + } + } + }); + } + } + ); +} /** * status 传过来的状态:完成灭菌 */ @@ -909,6 +947,15 @@ loadFormData(grid); } }, '-', { + text : '开始灭菌', + hidden : !sstsConfig.enableSterilizationDraftStatus, + iconCls : 'btn_ext_application_save', +// id : 'editTbar' + id : 'beginSterilizationBtn', + handler : function() { + sterilizationBegin(grid); + } + }, '-', { text : '完成灭菌', hidden : SSTS_Sterilization_Update, iconCls : 'btn_ext_application_save', @@ -1121,98 +1168,58 @@ } } }]; - - var addWin; - - var formPanelCf = new Ext.form.FormPanel({ - autoWidth:true, - layout:"form", - frame:true, - labelWidth:260, - labelAlign:"left", - items:[{ - xtype:"label", - height : 20, - text :"请输入打印数量:", - style:'margin-bottom:0px;display: block;' - },{ - xtype : "textfield", - inputType : 'text', - hideLabel : true, - id:"printCount", - anchor : "95%", - height : 20, - regex: /^\+?[1-9]\d*$/, - regexText: '打印数量只能为正整数' - }] - }); - if (!addWin) { - addWin = new Ext.Window({ - title:"打印监测包条码", - modal:true, - width:300, - height:130, - collapsible:false, - resizable:false, - closeAction:'hide', - items : formPanelCf, - buttons : [{ - text : '确定', - handler : function(){ - var txt = Ext.getCmp('printCount').getValue(); - if(txt == null || txt == ''){ - showResult('请输入打印数量'); - }else{ - var str = new RegExp(/^\+?[1-9]\d*$/); - if(str.test(txt)){ - Ext.Ajax.request({ - url : WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!createBiologyMonitorTousseBarcodes.do', - params : { - amount : txt - }, - success : function(response, options) { - var result = Ext.decode(response.responseText); - var barcodes = []; - for(var i=0;i