Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/proxyDisinfectionForm.js =================================================================== diff -u -r32876 -r32987 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/proxyDisinfectionForm.js (.../proxyDisinfectionForm.js) (revision 32876) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/proxyDisinfectionForm.js (.../proxyDisinfectionForm.js) (revision 32987) @@ -359,18 +359,61 @@ } } } + var oldSterilizationMode = ''; + function getNodeStore(){ + var rootNode = top.Ext.getCmp('proxyDisinfectionTree').getRootNode(); + var arr = []; + rootNode.eachChild(function (pNode) { + var mode = pNode.attributes.sterilizationMode; + if (pNode.attributes.type == '器械包') { + if(arr.indexOf(mode) == -1){ + arr.push(mode); + } + } else { + for (var i = 0; i < pNode.childNodes.length; i++) { + var mode = pNode.childNodes[i].attributes.sterilizationMode; + if(arr.indexOf(mode) == -1){ + arr.push(mode); + } + } + } + }) + if(arr.length > 1){ + showResult('该篮筐有多种不同灭菌方式的物品,不能装载物品,请先将筐内灭菌方式不同的物品移除'); + return + }else if(arr.length == 1){ + oldSterilizationMode = arr[0]; + } + } + var isFirstScan = true; //根据条码获取包信息 function loadBasketOrTousseInstance() { + getNodeStore(); var barcode = top.Ext.getCmp('package1').getValue(); var currentDepartCoding = top.Ext.getCmp('currentDepartCoding').getValue(); top.Ext.getCmp('package1').setValue(""); + var params = { + id: top.Ext.getCmp('id').getValue(), + barcode: barcode, + handleDepartCoding: currentDepartCoding + } + //只有代理单没有灭菌方式且第一次扫描时不需要传sterilizationMode + if(isFirstScan && oldSterilizationMode !== ''){ + params.sterilizationMode = oldSterilizationMode; + }else if(!isFirstScan){ + params.sterilizationMode = oldSterilizationMode; + } Ext.Ajax.request({ url: WWWROOT + '/disinfectSystem/proxyDisinfectionAction!loadBasketOrTousseInstance.do', - params: { id: top.Ext.getCmp('id').getValue(), barcode: barcode, handleDepartCoding: currentDepartCoding }, + params: params, success: function (response, options) { var result = Ext.decode(response.responseText); if (result.success) { + if(isFirstScan){ + isFirstScan = false; + } var receiveTousse = result.receiveTousse || false; + var sterilizationMode = result.sterilizationMode || ''; if (receiveTousse == true) { var rootNode = top.Ext.getCmp('proxyDisinfectionTree').getRootNode(); var index = 0; @@ -395,7 +438,7 @@ }); if (!isBox) { setTimeout(function () { - addTousseInstance(result.id, barcode, result.name, result.status, receiveTousse, index); + addTousseInstance(result.id, barcode, result.name, result.status, receiveTousse, index,sterilizationMode); }, 100); } } else { @@ -416,20 +459,20 @@ if (departCodingCmp.getValue() == '') { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); - addTousseInstance(result.id, barcode, result.name, result.status); + addTousseInstance(result.id, barcode, result.name, result.status,false,0,sterilizationMode); } else if (departCodingCmp.getValue() != orgUnitCode) { top.Ext.MessageBox.confirm("请确认", "该器械包属于" + orgUnitName + ",是否将申请科室改为" + orgUnitName + "并清空器械包明细列表?", function (button, text) { if ("yes" == button) { top.Ext.getCmp('departCoding').setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); clearGoodsGrid(); - addTousseInstance(result.id, barcode, result.name, result.status); + addTousseInstance(result.id, barcode, result.name, result.status,false,0,sterilizationMode); } } ); } else { - addTousseInstance(result.id, barcode, result.name, result.status); + addTousseInstance(result.id, barcode, result.name, result.status,false,0,sterilizationMode); } } } else if (result.type == "容器") { @@ -465,20 +508,20 @@ if (departCodingCmp.getValue() == '') { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } else if (departCodingCmp.getValue() != orgUnitCode) { top.Ext.MessageBox.confirm("请确认", "该灭菌筐属于" + orgUnitName + ",是否将申请科室改为" + orgUnitName + "并清空器械包明细列表?", function (button, text) { if ("yes" == button) { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); clearGoodsGrid(); - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } } ); } else { - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } } } else { @@ -498,20 +541,20 @@ if (departCodingCmp.getValue() == '') { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } else if (departCodingCmp.getValue() != orgUnitCode) { top.Ext.MessageBox.confirm("请确认", "该灭菌筐属于" + orgUnitName + ",是否将申请科室改为" + orgUnitName + "并清空器械包明细列表?", function (button, text) { if ("yes" == button) { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); clearGoodsGrid(); - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } } ); } else { - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } } } @@ -532,20 +575,20 @@ if (departCodingCmp.getValue() == '') { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } else if (departCodingCmp.getValue() != orgUnitCode) { top.Ext.MessageBox.confirm("请确认", "该灭菌筐属于" + orgUnitName + ",是否将申请科室改为" + orgUnitName + "并清空器械包明细列表?", function (button, text) { if ("yes" == button) { departCodingCmp.setValue(orgUnitCode); top.Ext.getCmp('depart').setValue(orgUnitName); clearGoodsGrid(); - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } } ); } else { - bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances); + bindTousseToBaseket(result.basketId, barcode, result.containerName, result.instances,sterilizationMode); } } } @@ -751,16 +794,18 @@ for (var j = 0; j < basket.instances.length; j++) { var instance = basket.instances[j]; var hasReceived = instance.hasReceived || ''; + var sterilizationMode = instance.sterilizationMode || ''; instancesBarcodeInBasket += instance.barcode + ';'; - var instanceNode = createNode(false, instance.id, instance.barcode, instance.name, '器械包', instance.status, hasReceived); + var instanceNode = createNode(false, instance.id, instance.barcode, instance.name, '器械包', instance.status, hasReceived,false,sterilizationMode); basketNode.appendChild(instanceNode); } } for (var i = 0; i < action.result.instances.length; i++) { var instance = action.result.instances[i]; if (instancesBarcodeInBasket.indexOf(';' + instance.barcode + ';') < 0) { var hasReceived = instance.hasReceived || ''; - var instanceNode = createNode(false, instance.id, instance.barcode, instance.name, '器械包', instance.status, hasReceived); + var sterilizationMode = instance.sterilizationMode || ''; + var instanceNode = createNode(false, instance.id, instance.barcode, instance.name, '器械包', instance.status, hasReceived,false,sterilizationMode); rootNode.appendChild(instanceNode); } } @@ -794,7 +839,7 @@ return null; } -function createNode(isParentNode, id, barcode, name, type, status, hasReceived, receiveTousse) { +function createNode(isParentNode, id, barcode, name, type, status, hasReceived, receiveTousse,sterilizationMode) { var node; if (isParentNode) { //创建父节点 @@ -826,6 +871,7 @@ node.attributes.operation = ''; node.attributes.status = status; node.attributes.hasReceived = hasReceived; + node.attributes.sterilizationMode = sterilizationMode; node.attributes.receiveTousse = receiveTousse || false; return node; } @@ -854,15 +900,15 @@ return isRepeat; } -function addTousseInstance(id, barcode, name, status, receiveTousse, index) { +function addTousseInstance(id, barcode, name, status, receiveTousse, index,sterilizationMode) { var basketBarcode = top.Ext.getCmp('basketBarcode').getValue(); var rootNode = top.Ext.getCmp('proxyDisinfectionTree').getRootNode(); var z = index || 0; var tousseNode; if (basketBarcode == null || basketBarcode == '') { - tousseNode = createNode(false, id, barcode, name, '器械包', status, false, receiveTousse); + tousseNode = createNode(false, id, barcode, name, '器械包', status, false, receiveTousse,sterilizationMode); } else { - tousseNode = createNode(false, id, barcode, name, '器械包', status, false, receiveTousse); + tousseNode = createNode(false, id, barcode, name, '器械包', status, false, receiveTousse,sterilizationMode); } rootNode.insertBefore(tousseNode, rootNode.item(z)); var count = 0 @@ -928,7 +974,7 @@ /** * 将器械包实例绑定到篮筐。如果篮筐还没有创建节点,则需要创建节点,如果包实例已经有节点了,就将对应的节点与篮筐绑定 */ -function bindTousseToBaseket(reviewedBasketId, basketBarcode, reviewedBasketName, tousses) { +function bindTousseToBaseket(reviewedBasketId, basketBarcode, reviewedBasketName, tousses,sterilizationMode) { if (!basketBarcode || !tousses || tousses.length <= 0) { return; } @@ -949,7 +995,7 @@ for (var i = 0; i < tousses.length; ++i) { var tousseNode = tousses[i].tousseNode; if (!tousseNode) { - tousseNode = createNode(false, tousses[i].id, tousses[i].barcode, tousses[i].name, '器械包', tousses[i].status); + tousseNode = createNode(false, tousses[i].id, tousses[i].barcode, tousses[i].name, '器械包', tousses[i].status,0,false,sterilizationMode); } tousseNodes.push(tousseNode); }