Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r34523 -r34667 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 34523) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 34667) @@ -66,6 +66,8 @@ var POSITION = "位置"; var confirmLabel = "灭菌情况确认人"; +var sterilizationPurposeStore; + var _biologicalMonitoringTime = 0; //此灭菌炉的生物监测持续时间 if (sstsConfig.hasOwnProperty('isSRFinishConfirmShowUnload') && sstsConfig.isSRFinishConfirmShowUnload) { @@ -189,6 +191,52 @@ return pTousseStr; } +//根据灭菌程序选择默认灭菌目的 +function getSterilizationPurposeFun(sterilizationType) { + SterilizationRecordTableManager.getSterilizationPurpose(sterilizationType, function (responseText) { + var sterilizationPurposeId; + if (responseText != null && responseText.length > 0) { + var result = Ext.decode(responseText); + top.Ext.getCmp('sterilizationPurpose').setValue(result.optionText); + sterilizationPurposeId = result.id; + } + if (sstsConfig.enableSterilizerConsumptiveMaterialConsumptionFunction) { + top.Ext.getCmp('consumptiveMaterialVolumes').setValue(''); + if (sterilizationPurposeId) { + top.Ext.getCmp('sterilizationPurposeId').setValue(sterilizationPurposeId); + loadSterilizationPurposeDisposableGoods(sterilizationPurposeId); + } + } + }); +} + +//删除已添加耗材 +function deleteSterilizationPurpose(detailId, batchBarcode) { + var removeItem; + for (var k = 0; k < sterilizationPurposeStore.getCount(); k++) { + var item = sterilizationPurposeStore.getAt(k); + if (item.data.batchBarcode == batchBarcode) { + removeItem = item; + sterilizationPurposeStore.remove(item); + } + } + if (detailId == '') { + var steriConsumeMaterialStr = top.Ext.getCmp("steriConsumeMaterialArr").getValue(); + var steriConsumeMaterialArr = JSON.parse(steriConsumeMaterialStr); + for (var i = 0; i < steriConsumeMaterialArr.length; i++) { + if (steriConsumeMaterialArr[i].batchBarcode == batchBarcode) { + steriConsumeMaterialArr.splice(i, 1); + } + } + top.Ext.getCmp("steriConsumeMaterialArr").setValue(JSON.stringify(steriConsumeMaterialArr)); + } else { + var deleteDetailIds = top.Ext.getCmp("deleteDetailIds").getValue(); + deleteDetailIds += detailId + ','; + deleteDetailIds = deleteDetailIds.substr(0, deleteDetailIds.length - 1); + top.Ext.getCmp("deleteDetailIds").setValue(deleteDetailIds); + } +} + //获取位置信息 function getBarcodePositionData() { var rootNode = sterilizationColumnTree.getRootNode(); @@ -236,6 +284,39 @@ return positionStr; } +//根据灭菌目的加载耗材 +function loadSterilizationPurposeDisposableGoods(id) { + Ext.Ajax.request({ + url: WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!getDisposableGoodsBySterilizationPurpose.do', + params: { + sterilizationPurposeId: id + }, + success: function (response, options) { + var result = Ext.decode(response.responseText); + if (result.length > 0) { + top.Ext.getCmp('consumptiveMaterialVolumes').setValue(result.join('|')); + } + } + }); +} + +//已添加耗材 +var sterilizationPurposeRecord = new Ext.data.Record.create([{ + name: 'detailId' +}, { + name: 'disposableGoodsBatchId' +}, { + name: 'disposableGoodsId' +}, { + name: 'disposableGoodsName' +}, { + name: 'useAmount' +}, { + name: 'specification' +}, { + name: 'batchBarcode' +}]); + //灭菌物品统计 var tousseItemCountRecord = new Ext.data.Record.create([{ name: 'tousseName' @@ -708,7 +789,7 @@ } sterilizerBioMonitoringIntervalReminder(params) } - if(sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems){ + if (sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems) { pendingSterilizationColumnTree.loader.load(pendingSterilizationColumnTree.root, function () { }); } } else { @@ -725,7 +806,7 @@ pendingSterilizationColumnTree.loader.load(pendingSterilizationColumnTree.root, function () { }); } top.Ext.getCmp('sterilizationPurpose').setValue(''); - + top.Ext.getCmp('sterilizationPurposeId').setValue(''); } } @@ -754,11 +835,7 @@ } }); //选择默认灭菌目的 - SterilizationRecordTableManager.getSterilizationPurpose(sterilizationType, function (result) { - if (result != null && result.length > 0) { - top.Ext.getCmp('sterilizationPurpose').setValue(result); - } - }); + getSterilizationPurposeFun(sterilizationType); } else { if (resultArray[3] == "强制提醒") { top.Ext.MessageBox.alert("请确认", resultArray[2], @@ -781,11 +858,7 @@ } }); //选择默认灭菌目的 - SterilizationRecordTableManager.getSterilizationPurpose(sterilizationType, function (result) { - if (result != null && result.length > 0) { - top.Ext.getCmp('sterilizationPurpose').setValue(result); - } - }); + getSterilizationPurposeFun(sterilizationType); } else { top.Ext.getCmp('sterilizationType').setValue(oldSterilizationType); } @@ -836,11 +909,7 @@ } }); //选择默认灭菌目的 - SterilizationRecordTableManager.getSterilizationPurpose(sterilizationType, function (result) { - if (result != null && result.length > 0) { - top.Ext.getCmp('sterilizationPurpose').setValue(result); - } - }); + getSterilizationPurposeFun(sterilizationType); } else { top.Ext.getCmp('sterilizationType').setValue(oldSterilizationType); } @@ -856,11 +925,7 @@ } }); //选择默认灭菌目的 - SterilizationRecordTableManager.getSterilizationPurpose(sterilizationType, function (result) { - if (result != null && result.length > 0) { - top.Ext.getCmp('sterilizationPurpose').setValue(result); - } - }); + getSterilizationPurposeFun(sterilizationType); } }, @@ -2717,6 +2782,27 @@ }) }); + sterilizationPurposeStore = new Ext.data.Store({ + autoLoad: false, + reader: new Ext.data.JsonReader({ + fields: [{ + name: 'detailId' + }, { + name: 'disposableGoodsBatchId' + }, { + name: 'disposableGoodsId' + }, { + name: 'disposableGoodsName' + }, { + name: 'useAmount' + }, { + name: 'specification' + }, { + name: 'batchBarcode' + }] + }) + }); + var bioreaderStore = new Ext.data.Store({ proxy: new top.Ext.data.HttpProxy({ url: WWWROOT + '/disinfectSystem/sterilization/bioreaderAction!getBioreaderNameAndIdList.do?', @@ -3247,11 +3333,11 @@ beforeload: function (treeLoader, node) { pendingSterilizationColumnTree.getEl().mask("数据重新加载中,请稍等!"); //DLZXYY-3:增加“灭菌炉”和“当天炉次” - if(sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems){ + if (sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems) { treeLoader.baseParams.sterilizerNameTemp = top.Ext.getCmp("sterilizerName").getValue(); treeLoader.baseParams.sterileFrequency = top.Ext.getCmp("frequency").getValue(); } - if(sstsConfig.sterilizationCheckTousseSterilingType){ + if (sstsConfig.sterilizationCheckTousseSterilingType) { treeLoader.baseParams.sterilizerNameTemp = top.Ext.getCmp("sterilizerName").getValue(); } @@ -3471,6 +3557,18 @@ id: 'haveDoneNoticeSterilisation' }, { xtype: 'hidden', + name: 'sterilizationPurposeId', + id: 'sterilizationPurposeId' + }, { + xtype: 'hidden', + name: 'steriConsumeMaterialArr', + id: 'steriConsumeMaterialArr' + }, { + xtype: 'hidden', + name: 'deleteDetailIds', + id: 'deleteDetailIds' + }, { + xtype: 'hidden', name: 'hiddenSterilingMode', id: 'hiddenSterilingMode', value: '全部' @@ -3538,7 +3636,7 @@ } SterilizationRecordTableManager.getMaxFrequency(combo.value, recordId, function (result) { top.Ext.getCmp('frequency').setValue(result); - if(sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems){ + if (sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems) { pendingSterilizationColumnTree.loader.load(pendingSterilizationColumnTree.root, function () { }); } }); @@ -3571,6 +3669,7 @@ } top.Ext.getCmp('sterilizationType').setValue(''); top.Ext.getCmp('sterilizationPurpose').setValue(''); + top.Ext.getCmp('sterilizationPurposeId').setValue(''); oldSterilizationType = ''; Ext.Ajax.request({ url: WWWROOT + '/disinfectSystem/baseData/sterilizerAction!loadSterilizerBySterilizerName.do', @@ -3674,10 +3773,10 @@ id: "frequency", allowBlank: false, anchor: '100%', - listeners:{ - blur:function(){ + listeners: { + blur: function () { var sterilizerName = top.Ext.getCmp('sterilizerName').getValue(); - if(sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems && sterilizerName !== ''){ + if (sstsConfig.enableSterilizersAndFrequencyFilterToSterilizeItems && sterilizerName !== '') { pendingSterilizationColumnTree.loader.load(pendingSterilizationColumnTree.root, function () { }); } } @@ -3750,7 +3849,16 @@ name: "sterilizationPurpose", id: "sterilizationPurpose", allowBlank: false, - anchor: '100%' + anchor: '100%', + listeners: { + select: function (combo, record, index) { + if (sstsConfig.enableSterilizerConsumptiveMaterialConsumptionFunction) { + var id = record.data.id; + top.Ext.getCmp('sterilizationPurposeId').setValue(id); + loadSterilizationPurposeDisposableGoods(id); + } + } + } }] }, { columnWidth: .33, @@ -3802,12 +3910,14 @@ if (e.getKey() == 13) {//回车键 var barcode = top.Ext.getCmp('inputBarcode').getValue(); var recordID = id; + var sterilizationPurposeId = top.Ext.getCmp('sterilizationPurposeId').getValue(); if (barcode != null && barcode.length > 0) { sterilizationColumnTree.getEl().mask("数据重新加载中,请稍等!") Ext.Ajax.request({ url: WWWROOT + '/disinfectSystem/sterilization/sterilizationRecordAction!getBarcodeType.do', params: { - barcode: barcode + barcode: barcode, + sterilizationPurposeId: sterilizationPurposeId || '' }, success: function (response, options) { sterilizationColumnTree.getEl().unmask(); @@ -3880,13 +3990,51 @@ top.Ext.getCmp('inputBarcode').setValue(""); } else { - showMultipleResult(result); - - top.Ext.getCmp('inputBarcode').setValue(""); + var newResult = Ext.decode(result); + if (newResult.success == false) { + showMultipleResult(newResult.message); + return; + } + if (newResult.dataType == 'disposableGoodsBatchStock') { + var barcodeIsTrue = false; + for (var k = 0; k < sterilizationPurposeStore.getCount(); k++) { + var item = sterilizationPurposeStore.getAt(k); + if (item.data.batchBarcode == barcode) { + barcodeIsTrue = true; + continue; + } + } + if (barcodeIsTrue) { + showMultipleResult("批次条码已存在!", null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); + top.Ext.getCmp('inputBarcode').setValue(""); + return; + } + var data = newResult.data; + var recordItem = new sterilizationPurposeRecord({ + disposableGoodsBatchId: data.disposableGoodsBatchId, + disposableGoodsBatchStockId: data.disposableGoodsBatchStockId, + disposableGoodsId: data.disposableGoodsId, + disposableGoodsName: data.disposableGoodsName, + useAmount: 1, + specification: data.specification, + batchBarcode: data.barcode + }); + sterilizationPurposeStore.add(recordItem); + var steriConsumeMaterialArr = []; + steriConsumeMaterialArr.push({ + disposableGoodsBatchId: data.disposableGoodsBatchId, + disposableGoodsBatchStockId: data.disposableGoodsBatchStockId, + disposableGoodsId: data.disposableGoodsId, + disposableGoodsName: data.disposableGoodsName, + amount: 1, + specification: data.specification, + batchBarcode: data.barcode + }) + top.Ext.getCmp("steriConsumeMaterialArr").setValue(JSON.stringify(steriConsumeMaterialArr)); + } } } else { showMultipleResult("请输入正确的条码!", null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); - top.Ext.getCmp('inputBarcode').setValue(""); } }, @@ -4056,7 +4204,63 @@ }, { columnWidth: 1, layout: 'form', + hidden: !sstsConfig.enableSterilizerConsumptiveMaterialConsumptionFunction, items: [{ + xtype: 'textfield', + fieldLabel: "本次耗材消耗", + name: "consumptiveMaterialVolumes", + id: "consumptiveMaterialVolumes", + readOnly: true, + cls: 'fieldReadOnlyNoRemove', + anchor: '100%' + }] + }, { + columnWidth: .15, + layout: 'form', + hidden: !sstsConfig.enableSterilizerConsumptiveMaterialConsumptionFunction, + items: [{ + xtype: 'textfield', + fieldLabel: "已添加耗材", + readOnly: true, + cls: 'fieldReadOnlyNoRemove', + anchor: '100%' + }] + }, { + columnWidth: .85, + layout: 'form', + hidden: !sstsConfig.enableSterilizerConsumptiveMaterialConsumptionFunction, + items: [new top.Ext.grid.GridPanel({ + id: 'consumptiveMaterialGrid', + height: 150, + frame: false, + border: true, + viewConfig: { + forceFit: true + }, + anchor: '98.5%', + store: sterilizationPurposeStore, + cm: new Ext.grid.ColumnModel([ + { header: "名称", width: 100, menuDisabled: true, dataIndex: 'disposableGoodsName' }, + { header: "规格", width: 60, menuDisabled: true, dataIndex: 'cspecificationount' }, + { header: "批次条码", width: 60, menuDisabled: true, dataIndex: 'batchBarcode' }, + { header: "已添加数量", width: 60, menuDisabled: true, dataIndex: 'useAmount' }, + { + header: "操作", width: 40, menuDisabled: true, renderer: function (v, p, record, rowIndex, columnIndex, store) { + var detailId = record.data.detailId || ''; + var batchBarcode = record.data.batchBarcode || ''; + var str = ""; + return str; + } + } + ]), + stripeRows: true, + autoExpandColumn: 'count', + bodyStyle: 'border:1px solid #afd7af;margin-bottom: 10px;' + })] + }, { + columnWidth: 1, + layout: 'form', + items: [{ xtype: 'textarea', fieldLabel: "灭菌程序参数", name: "parameter", @@ -4886,18 +5090,18 @@ text: (sstsConfig.saveButtonNameOfSterilizationFormRecord && id == '') ? sstsConfig.saveButtonNameOfSterilizationFormRecord : '保存', handler: function () { var that = this; - if(sstsConfig.enablePromptUserToConfirmSterilizationProcedureWhenSaving){ + if (sstsConfig.enablePromptUserToConfirmSterilizationProcedureWhenSaving) { var sterilizationType = top.Ext.getCmp('sterilizationType').getRawValue(); if (!formObj.form.isValid()) { showMultipleResult('请正确填写表单各值', null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); return false; } - top.Ext.Msg.confirm("确认",'本次添加的“”为“”,是否确认保存?',function(btn){ - if(btn=='yes'){ + top.Ext.Msg.confirm("确认", '本次添加的“”为“”,是否确认保存?', function (btn) { + if (btn == 'yes') { save(that); } }); - }else { + } else { save(that); } } @@ -4906,18 +5110,18 @@ text: '保存', hidden: true, handler: function () { - if(sstsConfig.enablePromptUserToConfirmSterilizationProcedureWhenSaving){ + if (sstsConfig.enablePromptUserToConfirmSterilizationProcedureWhenSaving) { var sterilizationType = top.Ext.getCmp('sterilizationType').getRawValue(); if (!formObj.form.isValid()) { showMultipleResult('请正确填写表单各值', null, sstsConfig.messagePauseTimeOnSterilizationRecordPage); return false; } - top.Ext.Msg.confirm("确认",'本次添加的“”为“”,是否确认保存?',function(btn){ - if(btn=='yes'){ + top.Ext.Msg.confirm("确认", '本次添加的“”为“”,是否确认保存?', function (btn) { + if (btn == 'yes') { saveMonitorHandle(sterilizationResult); } }); - }else { + } else { saveMonitorHandle(sterilizationResult); } } @@ -5087,6 +5291,18 @@ if (chemistryPackageBarcode !== '') { top.Ext.getCmp('chemistryPackageBarcode').setValue(chemistryPackageBarcode); } + //已添加耗材 + if (sstsConfig.enableSterilizerConsumptiveMaterialConsumptionFunction) { + var steriConsumeMaterialUseRecordArr = action.result.steriConsumeMaterialUseRecordArr || []; + if (steriConsumeMaterialUseRecordArr.length > 0) { + for (var i = 0; i < steriConsumeMaterialUseRecordArr.length; i++) { + sterilizationPurposeStore.add(new sterilizationPurposeRecord(steriConsumeMaterialUseRecordArr[i])) + } + } + var sterilizationPurposeId = action.result.sterilizationPurposeId || ''; + top.Ext.getCmp('sterilizationPurposeId').setValue(sterilizationPurposeId); + loadSterilizationPurposeDisposableGoods(sterilizationPurposeId); + } } if (reSterilization) { //重新灭菌 @@ -5501,6 +5717,7 @@ var barcodePostionInfo = getBarcodePositionData(); top.Ext.getCmp("barcodePositionInfo").setValue(barcodePostionInfo); Ext.getCmp("formSubmitResult").setValue(0); + formObj.form.submit({ url: url, method: 'POST', Index: ssts-web/src/main/webapp/disinfectsystem/consumptiveMaterial/consumptiveMaterialSterilizationPurpose/form.js =================================================================== diff -u -r34649 -r34667 --- ssts-web/src/main/webapp/disinfectsystem/consumptiveMaterial/consumptiveMaterialSterilizationPurpose/form.js (.../form.js) (revision 34649) +++ ssts-web/src/main/webapp/disinfectsystem/consumptiveMaterial/consumptiveMaterialSterilizationPurpose/form.js (.../form.js) (revision 34667) @@ -70,8 +70,8 @@ store: disposableGoodStore, hideHeaders: true, width: 328, - height: 94, - style: 'left: 75px;top: -3px;height: 94px;', + height: 96, + style: 'left: 75px;top: -3px;', viewConfig: { forceFit: true }, Index: ssts-web/src/main/webapp/disinfectsystem/config/gyey/config.js =================================================================== diff -u -r34564 -r34667 --- ssts-web/src/main/webapp/disinfectsystem/config/gyey/config.js (.../config.js) (revision 34564) +++ ssts-web/src/main/webapp/disinfectsystem/config/gyey/config.js (.../config.js) (revision 34667) @@ -127,6 +127,8 @@ enableRinserConsumptiveMaterialConsumptionFunction:true, //启用器械生命周期追溯管理 enableInstrumentLifeCycleTraceabilityManagement:true, + //启用灭菌炉耗材消耗管理功能 + enableSterilizerConsumptiveMaterialConsumptionFunction:true, //消毒供应中心年度工作量统计报表的数据指标配置 dataIndexConfigurationOfYearWorkloadReport:[ { "dataIndexNameForDisplay": "处理器械总件数", "dataIndexSource": "处理器械总件数" },