1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213 |
- /*function list
- fIvwDetlVwBf: 전처방 상세보기
- fIvwDetlVwOpener: 전처방 상세보기에 따른 opener 축소
- fInitializeConDone: 전처방화면 초기화 ( xforms-model-construct-done )
- fBdClick: iviewer 선택시 opener 의 grid select를 초기화 한다.
- fMouseRghtBtnPopup: 오른쪽 마우스 팝업
- */
- var prcpNode = "/root/main/prcp/prcplist"; //처방 grid instance
- /**
- * @desc : 화면 초기화
- * @
- * @param : flag: save (처방저장후에는 다시 조회하지 않고 저장후 리턴된 값으로 대신 보인다.)
- * @event : void
- * @return :
- * @authur : 마정민 2007. 3. 13
- * @---------------------------------------------------
- */
- function fInitialize( flag ){
-
- model.addlog(" SPEED CHECK START OF SMMO02100 fInitialize()");
-
- grd_bfprcplist.backcoloralternate = "transparent";
- grd_bfprcplist.frozencols = "16";
- cmb_bfprcpdd.value = opener.model.getValue ( "/root/init/prcpdd" );
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
-
- //dc처방 색변경을 위한 수정 시작 by 손주연 2008-06-30
- //전처방화면이 로드되기전 간호반납의뢰창이 먼저 뜰때 오류발생.
- opener.model.makeValue("/root/bfinityn", "Y");
- //dc처방 색변경을 위한 수정 종료 by 손주연 2008-06-30
-
- //by sonjy 20081027 인증 저장 후 초기화 함수 호출시 마우스 오른쪽 메뉴가 지워지는 현상 수정.
- //flag == save일때는 타지 않도록 처리.
- if ( prcpgenrflag != "O" && flag != "save" ) {
- //grd_bfprcplist.colWidth(2) = 50;
- //grd_bfprcplist.colWidth(3) = 242;
- if ( isNull(getParameter("payflagcd")) ) //급비변경 후 메뉴 사라지지 않도록 조건 추가
- model.removenode ( "/root/init/msrght/mouserght[2]");
- }
- if ( opener.model.getValue( "/root/init/detlivw" ) == "m" ) {
- grd_bfprcplist.colWidth(grd_bfprcplist.colRef ( "tempcol6" )) = model.getValue ( "/root/init/tempcol6exwd" );
- grd_bfprcplist.colWidth(grd_bfprcplist.colRef ( "tempcol7" )) = model.getValue ( "/root/init/tempcol7exwd" );
- //grd_bfprcplist.autoResize = true ;
- //grd_bfprcplist.rebuild();
- }
- grd_bfprcplist.visible = true; //컬럼모양이 바뀌는 것을 보여주지 않기 위해 사이즈 조절후 보여준다.
- //init: 전처방 처음 띄울 때 최초 조회는 최신 전처방 가져오기 ( 단 입원, 응급은 입원기간 내 )
-
- if (isNull(prcpgenrflag)){
- return;
- }
- if ( flag == "save" ) {
- //20080819 마정민 수정 저장후에는 한 submit에서 가져오는 걸로 수정
- if ( !isNull(opener.model.getValue ( "/root/savertninfo/prcplist[2]/prcpcd" ))) {
- model.copyNode ( root.prcpsrch, opener.root.savertninfo );
- model.removeNodeset ( "/root/prcpsrch/prcpetccnts" );
- model.removeNodeset ( "/root/prcpsrch/rsrvcvrtprcp" );
- model.removeNodeset ( "/root/prcpsrch/saveestmspclcs" );
- model.removeNodeset ( "/root/prcpsrch/saveserdiagappfrm" );
- model.removeNodeset ( "/root/prcpsrch/savelglydis" );
- model.removeNodeset ( "/root/prcpsrch/saverareobst" );
- model.refresh();
- //temp에 딸려온 데이터를 삭제한다.
- setPrcpColor();
- opener.group2.visible = true;
- opener.model.refresh();
- } else {
- btn_bfprcpsrch.dispatch ( "DOMActivate" );
- }
- } else { //flag != "save"
- fBfPrcpSrch( "init" );
-
- //자가보유처방 조회 (최초 처방창을 열때만 호출한다.) 20100210 by LYJ
- var mainObj = getMainViewer();
- var curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100");
- if(opener.model.getValue("/root/hidden/selfhld/selfopenyn") != "Y") {
- if (curPrcpObj != null){
- curPrcpObj.javascript.fSelfHldPrcpSub();
- }
- }
-
- //kimsj 처방시 미비기록 유무 확인(submit) - (최초 처방창을 열때만 호출.) - SMMMO04100.js에서 message 실행
- if (curPrcpObj != null){
- curPrcpObj.javascript.fChkValidRecInfo();
- }
-
- //var sDutPlceCd = getUserInfo("dutplcecd");
- //if(getUserInfo("userid") == "EMR") { // 테스트
- /*
- if(sDutPlceCd == "4072000000" || sDutPlceCd == "4070700000" ) { // 심사실에서만 분리청구를 위해 사용하는 우측버튼 기능 생성. 2014.03.25 엄영만
- if(isNull(model.getValue("/root/init/msrght/mouserght[func='fFreeCalcs']/func"))) { // 기존에 추가되지 않았을경우만 추가.
- var ndMouseRght = instance1.selectNodes( "/root/init/msrght/mouserght");
-
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 1 +"]/func", ""); // 분리선 추가
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 1 +"]/label", ""); // 분리선 추가
-
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 2 +"]/func", "fFreeCalcs");
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 2 +"]/label", "무산정 처리");
- }
- }
- */
-
- // 칠곡 응급실 원격판독요청(TPLUS 임시사업) 2015.05.12 엄영만
- var sInstCd = getUserInfo("dutplceinstcd")
- var sDutPlceCd = getUserInfo("dutplcecd");
- //if(getUserInfo("userid") == "EMR") { // 테스트
- if(prcpgenrflag != "O" && prcpgenrflag != "S") {
- if(sInstCd == "032" && sDutPlceCd == "2280000000" ) { // 칠곡 응급의학과 로그인 사용자만 우측버튼 기능 생성. 2015.05.12 엄영만
- if(isNull(model.getValue("/root/init/msrght/mouserght[func='fReqPacs']/func"))) { // 기존에 추가되지 않았을경우만 추가.
- var ndMouseRght = instance1.selectNodes( "/root/init/msrght/mouserght");
-
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 1 +"]/func", ""); // 분리선 추가
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 1 +"]/label", ""); // 분리선 추가
-
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 2 +"]/func", "fReqPacs");
- model.makeValue("/root/init/msrght/mouserght["+ndMouseRght.length+ 2 +"]/label", "원격판독요청");
- }
- }
- }
- }
-
-
- // //자가보유처방 조회 (최초 처방창을 열때만 호출한다.) 20100210 by LYJ
- // if (flag != "save" && opener.model.getValue("/root/hidden/selfhld/selfopenyn") != "Y" ){
- // var mainObj = getMainViewer();
- // var curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100");
- // if (curPrcpObj != null){
- // curPrcpObj.javascript.fSelfHldPrcpSub();
- // }
- // }
-
- var prcppkspecArray = model.getValue ( "/root/prcpsrch/prcplist[1]/prcppkspec").split("|");
-
- if ( isNull (prcppkspecArray[0] )) {
- var orddd = opener.model.getValue ( "/root/paminfo/list/orddd" );
- if (prcpgenrflag == "O" ) {
- model.setValue ("/root/init/bfprcpdd" , orddd );
- } else {
- model.setValue ("/root/init/bfprcpdd" , getCurrentDate());
- }
- } else {
- model.setValue ("/root/init/bfprcpdd" , prcppkspecArray[0] );
- // 입원이고 입원전 처방이 전처방에 보일때 날짜를 입원당일로 보여준다.
- if (prcpgenrflag != "O" ) {
- if ( eval ( prcppkspecArray[0]) < opener.model.getValue( "/root/paminfo/list/indd" )) {
- model.setValue ("/root/init/bfprcpdd" , opener.model.getValue( "/root/paminfo/list/indd" ));
- }
- //입원일 때는 follow up 처방 검색을 위해 /root/init/initdd 에 최종 검색일자를 넣어준다.
- //followup 처방이 있을 경우는 initdd와 같은 날짜는 folowup 처방과 같이 보여주기 위해서 이다.
- model.setValue ( "/root/init/initdd", model.getValue ( "/root/init/bfprcpdd" ));
- var followupArray = model.getValue ( "/root/prcpsrch/prcplist[prcpkindcd='70']/prcppkspec" ).split("|");
- if ( !isNull(followupArray)){
- model.setValue ( "/root/init/followup", followupArray[0]);
- }
- }
- }
- model.refresh();
- var addprcpflag = opener.model.getValue("/root/init/addprcpflag"); //시행부서화면 여부
- //전처방 로딩이 완료되면 진료대상자에서 진료기록을 호출하는 로직 추가 (2008.08.28 : 김영학)
- if (addprcpflag !="Y") { // 시행부서 화면일 경우에는 호출하는 로직 수행하지않음
-
- //전회처방 복사
- fCopyBfPrcp(flag);
- if(flag != "save"){
- fGetHosOutPrcpResn(); //원외처방 사후관리 팝업 호출, 최초 1회만 (2010.01.18 JJE)
- }
-
- var mainObj = getMainViewer();
- var srcOrdPatListwnd = mainObj.javascript.getOpenWindow("SMMMO04100");
-
- //마취기록지에서 처방창을 열경우 마취기록지를 initialize 시키지 않는 로직 추가 (평화IS 이은영GJ요청 : 2008.08.28)
- var srcAnstRecwnd = mainObj.javascript.getOpenWindow("SMMMR03700");
- var anstrereload = mainObj.javascript.getParameter("SMMMR03700_refresh");
- if (srcAnstRecwnd != null) {
- var anstrereload = srcAnstRecwnd.javascript.getParameter("SMMMR03700_refresh");
- }
-
- if (anstrereload != "false") {
- var fstopenflag = opener.model.getValue("/root/init/fstopenflag"); //처방화면이 최초 생성 여부
- if (srcOrdPatListwnd != null ) {
- var cpflag= srcOrdPatListwnd.model.getValue("/root/cpflag");
- if(cpflag != "Y"){ //CP가 아닐 경우만, 전처방에서 기록지 변경하는 로직 호출(CP 일 경우는 대상자 리스트 클릭시 동작
- if (fstopenflag !="N") {
- var answcnt = srcOrdPatListwnd.javascript.getParameter("SMMMO04100_ANSWCNT");
- if (answcnt =="004" || isNull(answcnt)) {
- srcOrdPatListwnd.javascript.fChngMainEMRScrn();
- }
- var scrnwnd = getOpenWindow("SPMMB08400");
- if(scrnwnd != null){
- scrnwnd.javascript.fCloseOpenEmrWnd();
- }
- }
- }
- }
- /* CP 초기화 해주는 로직 처방.js로 이동 김영학 ( 2009.03.16)
- //JJE- (추가, srcOrdPatListwnd=null의 Y/N 상관없이 체크해야 함)
- var cpWdwFlag= opener.model.getValue("/root/cp");
- if( fstopenflag == "Y" && cpWdwFlag == "Y" ){ //CP가 open된 첫회만 수행(CP가 열린상태에서 다른환자 선택 시 수행 안함 -> fReconstruct()*2 방지)
- //fOpenPrcpMainWnd();
- opener.javascript.fReconstruct();
- }
- */
- }
-
- } //end if(addprcpflag !="Y")
-
- model.addlog(" SPEED CHECK END OF SMMO02100 fInitialize()");
- }
- /**
- * @desc : 전회처방을 개인설정에 따라 처방 화면으로 복사 한다.
- * @param :
- * @id : fCopyBfPrcp
- * @event : 처방 화면 로딩(리로딩)시 호출
- * @return : void
- * @authur : 엄영만 2011. 11. 16
- * @---------------------------------------------------
- */
- function fCopyBfPrcp(flag) {
- if (flag == "save") { return; }
-
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- if (prcpgenrflag != "O") { return; }
-
- var copybfprcpyn = model.getValue ( "/root/init/copybfprcpyn" );
- if (copybfprcpyn != "N") { return; }
-
- //start : 환경설정(임시처방 존재시 전처방 자동 copy 기능 사용여부 설정)에 따른 전처방 copy 추가 엄영만 2013.02.06
- var copyTempPrcpYnNode = opener.instance1.selectSingleNode("/root/initsrch/envinfo[qestcd='034' and answcnt='002']/answcnt"); //001:사용, 002:사용안함
- var existTempPrcpNode = opener.instance1.selectSingleNode("/root/main/prcp/prcplist[prcphistcd='T']/prcpcd"); //임시저장 처방 정보
- if (existTempPrcpNode != null && copyTempPrcpYnNode != null) {
- return;
- }
-
- //start : 환경설정(전처방 자동 copy 기능 설정)에 따른 전처방 copy 추가 (요청번호:8586, 2009.11.02 JJE)
- var copyPrcpInfoNode = opener.instance1.selectSingleNode("/root/initsrch/envinfo[qestcd='016' and answcnt!='003']/answcnt"); //001:약만COPY, 002:전체COPY, 003:설정안함
- if( !opener.javascript.fIsOnSubmit() && copyPrcpInfoNode != null ){
- model.refresh();
- var orgNodes = instance1.selectNodes("/root/prcpsrch/prcplist");
- var orgNode = null;
- var orgPrcpcdNode = null;
- var orgPrcpclscdNode = null;
- var orgStatusNode = null;
- var orgPrcphistcdNode = null;
- var copyPrcpInfo = copyPrcpInfoNode.text;
- var orgPrcpcd = "";
- var orgPrcpclscd = "";
- var orgPrcphistcd = "";
- var copyCnt = 0;
- if( orgNodes.length > 0 ){
- opener.model.removeNode("/root/migdrugmthd");
-
- //copy해야 하는 처방을 select 한다
- for( var i=0; i<orgNodes.length; i++ ){
- orgNode = orgNodes.item(i);
- orgPrcpcdNode = orgNode.selectSingleNode("prcpcd");
- orgPrcpclscdNode = orgNode.selectSingleNode("prcpclscd");
- orgStatusNode = orgNode.selectSingleNode("status");
- orgPrcphistcdNode = orgNode.selectSingleNode("prcphistcd");
- if(orgPrcpcdNode!=null) orgPrcpcd = orgPrcpcdNode.text;
- if(orgPrcpclscdNode!=null) orgPrcpclscd = orgPrcpclscdNode.text;
- if(orgPrcphistcdNode!=null) orgPrcphistcd = orgPrcphistcdNode.text;
-
- if(orgPrcpcd!="" && orgPrcphistcd == "O" && ((copyPrcpInfo=="001" && (orgPrcpclscd=="A2" || orgPrcpclscd=="A4" || orgPrcpclscd=="A6")) || copyPrcpInfo=="002") ){
- grd_bfprcplist.select((i+1), 1) = true;
- model.setValue(orgStatusNode, "I");
- copyCnt++;
- }
- } //end for()
-
- //select된 처방에 대해 addPrcp()
- //opener의 서브밋 여부를 체크 하여 실행 하도록 수정함.
- if(!opener.javascript.fIsOnSubmit() && copyCnt > 0 ){
- model.setValue ( "/root/init/copybfprcpyn" , "Y");
- opener.javascript.setParameter("SMMMO02100_skipAddPrcpPopYN", "Y");
- addPrcp ( "child", "/root/prcpsrch/prcplist", "/root/main/prcp", "Y", "status", "I", grd_bfprcplist, "N", "01");
- for (i= 0; i < orgNodes.length; i++){
- orgNode = orgNodes.item(i);
- orgStatusNode = orgNode.selectSingleNode("status");
- if (orgStatusNode.nodeValue == "I") {
- model.setValue ( orgStatusNode, "-" );
- }
- }
- opener.window.javascript.fOldDrugMthdPop();
- opener.javascript.clearParameter("SMMMO02100_skipAddPrcpPopYN"); //parameter로 상세팝업 호출 여부 체크를 위함
- }
- }
- } //end if(환경설정에 따른 전처방 copy)
- //end : 환경설정(전처방 자동 copy 기능 설정)에 따른 전처방 copy 추가
- }
- /**
- * @desc : iviewer 선택시 opener 의 grid select를 초기화 한다.
- * @param :
- * @id : body
- * @event : onclick
- * @return : void
- * @authur : 마정민 2007. 3. 26
- * @---------------------------------------------------
- */
- function fBdClick()
- {
- //처방 select 초기화
- grd_prcplist.select(0,0) = true;
-
- //진단 select 초기화
- grd_diaglist.select(0,0) = true;
- }
- /**
- * @desc : 오른쪽 마우스 팝업 처리
- * @param :2007-03-29
- * @id : grd_bfprcplist
- * @event : onmousedown
- * @return : void
- * @authur : 마정민 2007. 3. 29
- * @---------------------------------------------------
- */
- function fMouseRghtBtnPopup() {
- if (event.button == 3) {
- if(grd_bfprcplist.isCell(event.target) && grd_bfprcplist.mouseRow >= grd_bfprcplist.fixedRows){
- app.showPopupMenu(true);
- window.setPopupMenu(true, "/root/init/msrght/mouserght", "label", "func", false);
- }else{
- window.setPopupMenu(false);
- }
- }
- }
- /**
- * @desc : 전처방을 검색한다.
- * @param : flag: 전처방 구분 ( init: 전처방 처음 띄울 때 최초 조회는 최신 전처방 가져오기 ( 단 입원, 응급은 입원기간 내 )
- : prcpgenrflag: 외래입원구분
- * @id :
- * @event :
- * @return : void
- * @authur : 마정민 2007. 5. 5
- * @---------------------------------------------------
- */
- function fBfPrcpSrch( flag ) {
- var cnt = 0;
- var orddd = "";
- var orddrid = "";
- var todd = "";
- var pid = opener.model.getValue ( "/root/paminfo/list/pid" );
- var prcpdd = model.getValue("/root/init/bfprcpdd");
- var bfflag = "bfprcp";
- var rsrvflag = opener.model.getValue ( "/root/paminfo/list/rsrvflag" );
- if ( opener.model.getValue ( "/root/addprcp" ) == "Y" || rsrvflag == "P" ) {
- bfflag = "addprcp";
- }
- if (isNull(flag)) flag ="";
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- if (prcpgenrflag == "O" || prcpgenrflag == "S") {
- orddd = prcpdd;
- orddrid = opener.model.getValue ( "/root/paminfo/list/orddrid" );
- todd = opener.model.getValue ( "/root/paminfo/list/orddd" );
- }
- else {
- orddd = opener.model.getValue ( "/root/paminfo/list/indd" );
- todd = getCurrentDate().toDate().getAddDate(1,"D").getDateFormat();
- }
- orddeptcd = opener.model.getValue ( "/root/paminfo/list/orddeptcd" );
- cretno = opener.model.getValue ( "/root/paminfo/list/cretno" );
- var prcpauthflag = opener.model.getValue ( "/root/init/prcpauthflag" );
- var followup = model.getValue ( "/root/init/followup" );
- //by sonjy 20091120 전처방 조회 개인별 설정 추가
- var bfprcpviewnode = opener.instance1.selectSingleNode("/root/initsrch/envinfo[qestcd='018']/answcnt");
- var bfprcpviewflag = "";
-
- if( bfprcpviewnode != null ) bfprcpviewflag = bfprcpviewnode.text ;
-
- //검색처방일이 followup 날짜와 같다면 followup 처방을 검색한다.
- if ( ( prcpdd == followup && !isNull(prcpdd)) || ( flag == "aft" && !isNull(followup))) {
- //by sonjy 20091120 전처방 조회 개인별 설정 추가
- var rtnval = fBfPrcpSrchCom ( pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true, prcpauthflag, followup, bfprcpviewflag);
- model.setValue ( "/root/send/cond12", "" );
- //followup 검색 초기화
- } else {
- //by sonjy 20091120 전처방 조회 개인별 설정 추가
- var rtnval = fBfPrcpSrchCom ( pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true, prcpauthflag, "", bfprcpviewflag);
- }
-
- if(rtnval == true){
- setPrcpColor();
- opener.group2.visible = true;
- opener.model.refresh();
- }
-
- }
- /**
- * @desc : 오른쪽 마우스 클릭 D/C
- * @ : 신규일 때는 removeNode
- * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
- * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제, D/C 취소
- * @ : 삭제 후 D/C는 불가
- * @param :
- * @id : grd_prcplist
- * @event : 오른쪽 마우스 클릭 삭제
- * @return : void
- * @authur : 마정민 2007. 3. 26
- * @history: vAftClamDcFg 추가 by sonjy vAftClamDcFg가 C이면
- * @---------------------------------------------------
- */
- function fDCRow(vAftClamDcFg) {
-
- //by sonjy 20081022
- if( isNull(vAftClamDcFg) || vAftClamDcFg == null ){
- vAftClamDcFg = "";
- //청구 후 d/c를 일반 d/c와 함께 낼 수 없도록 처리. by sonjy 20081027
- var aftNodeList = model.instance1.selectNodes("/root/prcpsrch/prcplist[tempcol21='C']");
- if( aftNodeList != null ){
- if( aftNodeList.length > 0 ){
- messageBox ( "청구 후 D/C는 일반 D/C와 함께 내리실 수 없습니다.", "E" );
- return;
- }
- }
- }
-
- //덤프된 처방은 d/c 할 수 없도로 처리. cha 20090525
- var cvrtbfprcp = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcphistcd");
- if( cvrtbfprcp == "M"){
- messageBox ( "Dump된 처방은 D/C 할 수 없습니다.", "E" );
- return;
- }
-
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
-
- var pampkspec = "";
- var pamorddd = "";
- var pamcretno = "";
-
- var pamstatus = "";
- var statcdcnts = 0;
- var nurdrugrtn = "";
- var dchosoutcnt = 0;
- var orghosoutcnt = 0;
- var sumhosoutfg = "";
- var addprcp = opener.model.getValue("/root/init/addprcpflag");
- var cretno = "";
-
- //SON1006 첫번째 로우값으로 체크하던 로직을 선택된 row를 체크하는 로직으로 변경. START
- for( var i = 0 ; i < grd_bfprcplist.selectedRows ; i++) {
- pampkspec = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/pampkspec") + "^";
- pamorddd = getArrayData (pampkspec, 0, 1, "^", "|" );
- pamcretno = getArrayData (pampkspec, 0, 2, "^", "|" );
-
- pamstatus = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/tempcol1")
-
- if ( prcpgenrflag == "O" ) {
- orddd = opener.model.getValue ( "/root/paminfo/list/orddd" );
- if (pamorddd != orddd ) {
- messageBox ( "진료일에만 D/C를 내리실 수 있습니다.", "E" );
- return;
- }
- //진료환자와 원무정보가 다른 처방은 D/C할 수 없습니다.
- cretno = opener.model.getValue ( "/root/paminfo/list/cretno" );
- if (pamcretno != cretno ) {
- messageBox ( "진료환자와 원무정보가 다른 처방은 D/C할 수", "I004" );
- return;
- }
- //kimsj 20090828 수납 후 D/C 처방시 메세지
- if (pamstatus >= "230") {
- statcdcnts++;
- }
- //kimsj 20100105 연속처방 D/c 선택시 청구된 내역 존재할 경우 메세지
- if ( pamstatus == "601" ) {
- messageBox ( "연속처방중 청구된 건이 있습니다. \n부분반환을 하시기 바랍니다.", "E" );
- return;
- }
- }
-
- /*
- * 진료에서 반환처방등록시 간호에서 반환요청된 처방이 있는 경우 반환요청된 처방임을 알리고 반환처방발행대신에 반환요청 팝업창이 생성되어 반환저장만 가능하도록
- * 변경요청번호 : 8869
- *by sonjy 20091030 간호투약기록 반환요청 약 check
- */
- if( prcpgenrflag != "O" && prcpgenrflag != "S" && addprcp != "Y" &&
- (model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpclscd") == "A2" ||
- model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpclscd") == "A4" ||
- model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpclscd") == "A6" ) ){
- nurdrugrtn = getArrayData ( model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/tempcol10") + "^", 0, 3, "^", "|" ) ;
- if( nurdrugrtn == "P" ) {
- messageBox ( model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpnm") + "간호에서 반납요청된 처방으로 D/C할 수 없습니다.\n 간호반납 화면에서 확인", "I008" );
- if(opener != null){
- opener.model.setValue("/root/initsrchprcp/prcpetccnts/drugprcprtnyn", "Y");
- opener.javascript.fDrugPrcpDc();
- }
- return ;
- }
- }
- /*
- * 원외처방전에만 해당되며, 반환시 부분반환은 블러킹하고 전체 반환만 가능하도록(변경요청번호:8829) , 단, admin mode제외
- * by sonjy 20091030 부분반환은 블러킹
- */
- if(prcpgenrflag == "O" && ( opener.model.getValue ( "/root/admininfo" ) == "NNNNNNNNNNNNNNNNNNNN" || isNull( opener.model.getValue ("/root/admininfo")) ) &&
- (model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpclscd") == "A2" ||
- model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpclscd") == "A4" ||
- model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/prcpclscd") == "A6") ){
-
- //by sonjy 20091126 현재 환자의 원무정보와 동일 할 경우만 check하도록
- sumhosoutfg = getArrayData ( model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedRow(i) + "]/tempcol10") + "^", 0, 4, "^", "|" ) ;
- if( sumhosoutfg == "Y" && pamcretno == cretno ) dchosoutcnt++;
- }
- }
-
- /*
- * 원외처방전에만 해당되며, 반환시 부분반환은 블러킹하고 전체 반환만 가능하도록(변경요청번호:8829)
- * by sonjy 20091030 부분반환은 블러킹
- */
- if(prcpgenrflag == "O" && dchosoutcnt > 0 && (opener.model.getValue ( "/root/admininfo" ) == "NNNNNNNNNNNNNNNNNNNN" || isNull( opener.model.getValue ("/root/admininfo")) ) ) {
- orghosoutcnt = 0;
- cretno = opener.model.getValue ( "/root/paminfo/list/cretno" ); //현재 환자의 원무정보
- for( var i = 1 ; i <= grd_bfprcplist.rows ; i++) {
- if((model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/prcpclscd") == "A2" ||
- model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/prcpclscd") == "A4" ||
- model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/prcpclscd") == "A6") ){
- pampkspec = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/pampkspec") + "^";
- pamorddd = getArrayData (pampkspec, 0, 1, "^", "|" );
- pamcretno = getArrayData (pampkspec, 0, 2, "^", "|" );
- sumhosoutfg = getArrayData ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol10") + "^", 0, 4, "^", "|" ) ;
- if( sumhosoutfg == "Y" && pamcretno == cretno ) orghosoutcnt++;
- }
- }
-
- if( dchosoutcnt != orghosoutcnt ) {
- messageBox ("원외처방전이 출력되어 부분 반환이 불가 합니다.전체 반환 후 처방", "I008");
- return ;
- }
- }
-
- //kimsj 20090828 수납 후 D/C 처방시 메세지
- if (statcdcnts > 0) {
- if (messageBox ( "수납이 완료된 환자입니다. 처방을 수정하시겠습니까? \n 수정하신 후에는 환자에게 재수납하실 것을 설명해 주시기 바랍니다.", "Q" ) != "6" ) {
- return;
- }
- }
- //SON1006 END
-
- var prcpcslcd = "";
- var contprcpspec = "";
- var prcplen = "";
- var status = "";
- var actorddd = "";
- var actcretno = "";
- var execprcpstatcd = "";
- var prcpdd = "";
- var execprcpno = "";
- var rcptdd = "";
- var keyval = "";
- var prcpno = "";
- var prcphistno = "";
- var clamdd = "";
- var anticncrprtlnochk = 0;
- var nortnchk = 0;
-
- var selectedRows = grd_bfprcplist.selectedRows;
- for ( var i=0; i < selectedRows; i++ ) {
- //제목은 DC 불가
- var tempcol9 = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/tempcol9" );
- if ( tempcol9 == "N" || tempcol9 == "C" ) {
- continue;
- }
- var prcphistcd = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/prcphistcd" );
- if ( prcphistcd == "C" ) {
- continue;
- }
-
- if (model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/anticncrprtlno" ) != "0" ) {
- if (anticncrprtlnochk==0) {
- messageBox ( "항암프로토콜 처방은 항암프로토콜 화면에서 가능합니다.", "E" );
- }
- anticncrprtlnochk++;
- continue;
- }
- //M은 DC 불가, 다선택하면 M도 DC 가능
- var chkcol = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/chkcol" );
- //*************************** **********************************//
- iFind = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/suppdeptspec" ).search( "NORTN" );
- if ( iFind >= 0) {
- //messageBox ( "특수조제실에서 조제완료하였으므로 반환불가합니다. 특수조제실로 문의바랍니다.", "E" );
- //퇴원약 처방 출력후 반환도 추가되어서 메시지를 바꿨다.
- if ( nortnchk == 0 ) {
- messageBox ( "반환불가한 상태입니다. 약국에 문의바랍니다.", "E" );
- }
- nortnchk++;
- continue;
- }
-
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/tempcol4" ) == "incldcchk" ) {
- continue; // 종속처방 처리 됐으면 d/c 처리 할 필요 없음
- }
- if (chkcol!="D") {
- model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/chkcol", "D" );
- model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/tempcol21", vAftClamDcFg) ; //SON20081022 청구 후 D/C
- //종속처방 DC 처리
- var inclprcpno = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/inclprcpno" );
- //종속처방 값이 있으면
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/inclprcpno" ) > 0 ) {
- for ( var j=1; j < grd_bfprcplist.rows; j++ ) {
- if ( inclprcpno == model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/inclprcpno" )) {
-
- var tempcol9 = model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol9" );
- if ( tempcol9 == "N" || tempcol9 == "C" ) {
- continue;
- }
- if ( eval(model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol1" )) >= 400 && isNull(vAftClamDcFg) ){
- //종속처방에서 상태값이 400이상이면 d/c처리에서 뺀다.
- //단, 청구후 d/c가 아닐 경우만...by sonjy 20081027
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/chkcol", "" );
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol21", "" );//SON20081022 청구 후 D/C
- } else {
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/chkcol") == "D" ) {
- //model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/chkcol", "" );
- //model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol4", "incldcchk" );
- } else {
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/chkcol", "D" );
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol21", vAftClamDcFg );//SON20081022 청구 후 D/C
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol4", "incldcchk" );
- }
- }
- }
- }
- }
- } else {
- model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/chkcol", "" );
- model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/tempcol21", "") ; //SON20081022 청구 후 D/C
-
- //dc처방 색 변경 후 d/c를 풀경우 바탕색 재 변경 by 손주연 수정 시작 2008-06-30
- fSetChngBkColor(grd_bfprcplist.selectedrow(i) , "");
- //dc처방 색 변경 후 d/c를 풀경우 바탕색 재 변경 by 손주연 수정 종료
-
- //연속처방 클리어 처리
- prcpcslcd = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/prcpclscd" );
- if ( prcpcslcd == "A6" || prcpcslcd == "F2" ) {
- var contprcpspec = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/contprcpspec" );
- if ( contprcpspec != "-" ) {
- var prcplen = contprcpspec.split("^").length;
- var strContprcpspec = "status|actorddd|actcretno|execprcpstatcd|prcpdd|execprcpno|execprcpuniqno|rcptdd|keyval|prcpno|prcphistno|clamdd";
- for ( var j=1; j < prcplen; j++ ) {
- status = "^-|";
- actorddd = getArrayData ( contprcpspec, j, 1, "^", "|" ) + "|";
- actcretno = getArrayData ( contprcpspec, j, 2, "^", "|" ) + "|";
- execprcpstatcd = getArrayData ( contprcpspec, j, 3, "^", "|" ) + "|";
- prcpdd = getArrayData ( contprcpspec, j, 4, "^", "|" ) + "|";
- execprcpno = getArrayData ( contprcpspec, j, 5, "^", "|" ) + "|";
- execprcpuniqno = getArrayData ( contprcpspec, j, 6, "^", "|" ) + "|";
- rcptdd = getArrayData ( contprcpspec, j, 7, "^", "|" ) + "|";
- keyval = getArrayData ( contprcpspec, j, 8, "^", "|" ) + "|";
- prcpno = getArrayData ( contprcpspec, j, 9, "^", "|" ) + "|";
- prcphistno = getArrayData ( contprcpspec, j, 10, "^", "|" ) + "|";
- clamdd = getArrayData ( contprcpspec, j, 11, "^", "|" );
- strContprcpspec = strContprcpspec + status + actorddd + actcretno + execprcpstatcd + prcpdd + execprcpno + execprcpuniqno + rcptdd + keyval + prcpno + prcphistno + clamdd;
- }
- model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/contprcpspec", strContprcpspec );
- }
- }
- }
- }
- //종속처방 DC풀기 처리
- for ( var i=1; i < grd_bfprcplist.rows; i++ ){
- model.setValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol4", "" );
- //제목은 DC 불가
- var tempcol9 = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol9" );
- if ( tempcol9 == "N" || tempcol9 == "C" ) {
- continue;
- }
- var prcphistcd = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/prcphistcd" );
- if ( prcphistcd == "C" ) {
- continue;
- }
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol1" ) >= 400 && isNull(vAftClamDcFg) ){
- //종속처방에서 상태값이 400이상이면 d/c처리에서 뺀다.
- //단, 청구후 d/c가 아닐 경우만...by sonjy 20081027
- continue;
- } else {
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/chkcol") == "" ) {
- var inclprcpno = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/inclprcpno" );
- if ( inclprcpno > 0 ) { //종속처방 번호가 있는 것중
- var inclprcpno = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/inclprcpno" );
- for ( var j=1; j < grd_bfprcplist.rows; j++ ) {
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/chkcol") == "D" ){ //같은종속처방중 D가 아닌것은 D로 처리
- if ( inclprcpno == model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/inclprcpno" )) {
- if ( eval(model.getValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol1" )) >= 400 && isNull(vAftClamDcFg) ){
- //종속처방에서 상태값이 400이상이면 d/c처리에서 뺀다.
- //단, 청구후 d/c가 아닐 경우만...by sonjy 20081027
- continue;
- } else {
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/chkcol", "" );
- model.setValue ( "/root/prcpsrch/prcplist[" + j + "]/tempcol21", "" ); //SON20081022 청구 후 D/C
- //dc처방 색 변경 후 d/c를 풀경우 바탕색 재 변경 by 손주연 수정 시작 2008-06-30
- fSetChngBkColor(j ,"");
- //dc처방 색 변경 후 d/c를 풀경우 바탕색 재 변경 by 손주연 수정 종료
- }
- }
- }
- }
- }
- }
- }
- }
- grd_bfprcplist.refresh();
- }
- function fAppendDC() {
- var srcNodeList = model.instances(0).selectNodes("/root/prcpsrch/prcplist");
- var destNode = opener.model.instances(0).selectSingleNode("/root/prcpdc");
- var curRow = 0;
- for ( i=0; i < srcNodeList.length; i++ ){
- curRow = i + 1;
- if ( model.getValue( "/root/prcpsrch/prcplist[" + curRow + "]/chkcol" ) == "D" ) {
- model.setValue ( "/root/prcpsrch/prcplist[" + curRow + "]/status", "C" );
- destNode.appendChild(srcNodeList.item(i).cloneNode(true));
- }
- }
- }
- function fContPrcpDC() {
- var prcpcslcd = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/prcpclscd" );
-
- var selectedRows = grd_bfprcplist.selectedRows;
- if ( selectedRows > 1 ) {
- messageBox ( "부분D/C는 멀티 선택", "E001" );
- return;
- }
- //제목은 DC 불가
- var tempcol9 = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/tempcol9" );
- if ( tempcol9 == "N" ) {
- return;
- }
-
-
- //덤프된 처방은 d/c 할 수 없도로 처리. cha 20090525
- var cvrtbfprcp = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/prcphistcd");
- if( cvrtbfprcp == "M"){
- messageBox ( "Dump된 처방은 D/C 할 수 없습니다.", "E" );
- return;
- }
-
- //by sonjy 2008-08-28 mset부분d/c시 하나만 d/c되는 경우 발생. 주사이나 종속처방이 아닌경우만 처리.
- if ( (prcpcslcd == "A6" || prcpcslcd == "F2" ) && (model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/inclprcpno") )=="0"
- ) {
- if ( model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/contprcpspec" ) != "-" ) {
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- setParameter ( "SMMM02100_prcpgenrflag", prcpgenrflag );
- fPrcpModal ( "SPMMO11300", 100, 150 );
- } else {
- model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/chkcol", "D" );
- }
- } else {
- //model.setValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/chkcol", "D" );
- //by sonjy 2008-08-28 mset부분d/c시 하나만 d/c되는 경우 발생.
- messageBox ( "부분D/C는 주사 및 재활 연속처방만 가능합니다.", "I" );
- }
- }
- /**
- * @desc : 환자급여변경
- * @param :
- * @id : grd_prcplist
- * @event : 오른쪽 마우스 클릭 함수
- * @return : void
- * @authur : 마정민 2007. 9. 10
- * @---------------------------------------------------
- */
- function fChngPayflagCd() {
-
- //setParameter ( "bfpayflagcd", model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/payflagcd"));
-
- fPrcpModal ( "SPMMO14000", 100, 150 );
- var payflagcd = "";
- if ( isNull(getParameter ( "payflagcd" ))){
- return;
- } else {
- payflagcd = getParameter ( "payflagcd" );
- }
- var selectedRows = grd_bfprcplist.selectedRows;
- model.removeNodeset ( "/root/prcppaychg/prcppaychglist" );
- var row = 0;
- for (var i=0; i< selectedRows; i++) {
- var orgpayflagcd = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/payflagcd");
- if(isNull(orgpayflagcd)) continue; // 처방 입력 설명행은 체크 하지 않는다. 2013.12.20
-
- if ( payflagcd == orgpayflagcd ) {
- var prcpcd = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/prcpcd");
- var prcpnm = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/prcpnm");
- messageBox ( "[" + prcpcd + ":" + prcpnm + "] " + "처방은 변경된 급비가", "I004" );
- continue;
- }
- row++;
- appendChildPrcp ( "/root/reset/prcppaychglist", "/root/prcppaychg", "main" );
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/ioflag", prcpgenrflag );
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/pid", opener.model.getValue ( "/root/paminfo/list/pid" ));
- var orddd = "";
- if ( prcpgenrflag == "O" ){ //외래일때
- orddd = opener.model.getValue ( "/root/paminfo/list/orddd" );
- } else {
- orddd = opener.model.getValue ( "/root/paminfo/list/indd" );
- }
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/orddd", orddd);
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/cretno", opener.model.getValue ( "/root/paminfo/list/cretno" ));
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/instcd", opener.model.getValue ( "/root/paminfo/list/instcd" ));
- var prcppkspec = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(i) + "]/prcppkspec") + "^";
- var prcpdd = getArrayData ( prcppkspec, 0, 0, "^", "|" );
- var prcpno = getArrayData ( prcppkspec, 0, 1, "^", "|" );
- var prcphistno = getArrayData ( prcppkspec, 0, 2, "^", "|" );
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/prcpdd", prcpdd);
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/prcpno", prcpno);
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/payflagcd", payflagcd);
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/deptcd", getUserInfo("dutplcecd"));
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/userid", getUserInfo ("userid"));
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/prcphistno", prcphistno);
- model.setValue ( "/root/prcppaychg/prcppaychglist[" + row + "]/orgpayflagcd", orgpayflagcd);
- }
-
- var saveInfo = model.instances(0).selectNodes( "/root/prcppaychg/prcppaychglist" );
- if ( saveInfo.length > 0 ) {
- model.setValue ( "/root/send/cond1", getNodeListCSV(saveInfo));
- if (submit( "TXMMO02101", false )){
-
- var errNode = model.instances(0).selectNodes ( "/root/savetemp/prcperrlist[flag='9']" );
- if (errNode != null && errNode.length > 0) {
- var xpt = window.screenleft + 200;
- var ypt = window.screenTop + 100;
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
-
- modal ( "SPMMO21501", mon, xpt, ypt, "prcpdetl", "/root/savetemp", "/root/result", "", false ); //오류팝업
- }
-
- opener.javascript.fInitPaminfo();
- //fInitialize("save"); //오른쪽 마우스 메뉴 삭제 오류 수정 by sonjy 20091030
- if(row > 0){ //급비 변경 후, opener에 savertninfo가 없는 경우 전처방이 제대로 refresh안됨 (2010.03.02 JJE)
- fInitialize();
- model.refresh();
- }
- }
- setParameter ( "payflagcd", "");
- }
- }
- /**
- * @desc : 심사팀에서 분리청구를 위해 무산정 처리할경우 사용 (2014.03.25)
- * @param :
- * @return :
- * @authur : 엄영만 2014.03.25
- * @---------------------------------------------------
- */
- function fFreeCalcs() {
- var selectedRows = grd_bfprcplist.selectedRows;
- if(selectedRows < 1) {
- messageBox("선택된 처방이 없습니다. ", "I" );
- return;
- }
- if(selectedRows > 1) {
- messageBox("한건만 선택 하세요.", "I" );
- return;
- }
-
- var sPrcpHistCd = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/prcphistcd" );
- if(sPrcpHistCd != "O") {
- messageBox ("DC 또는 반환 요청된 처방은 무산정 처리가 불가능 합니다. ", "E" );
- return;
- }
-
- var sPrcpGenrFlag = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/prcpgenrflag" );
- if(sPrcpGenrFlag != "O") {
- messageBox ("외래처방에 대해서만 무산정 처리가 가능 합니다. ", "E" );
- return;
- }
-
- var sPrcpPkSpec = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.row + "]/prcppkspec" );
- setParameter ( "SSPMMO14001_Param", sPrcpPkSpec );
- fPrcpModal ( "SPMMO14001", 100, 150 );
-
- return;
- }
- function setPrcpColor() {
- //grd_bfprcplist.autoResize = true ;
- //grd_bfprcplist.rebuild();
- var srcNodeList = model.instances(0).selectNodes ( "/root/prcpsrch/prcplist" );
- for ( var i=1; i <= srcNodeList.length; i++ ) {
- var colorArray = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol10" ) + "^";
- var backgroundcolor = getArrayData (colorArray, 0, 0, "^", "|" );
- var fontcolor = getArrayData (colorArray, 0, 1, "^", "|" );
- var boldflag = getArrayData (colorArray, 0, 2, "^", "|" );
- if ( !isNull(backgroundcolor)) {
- grd_bfprcplist.rowstyle(i, "data", "background-color") = backgroundcolor;
- } else {
- grd_bfprcplist.rowstyle(i, "data", "background-color") = "#ffffff";
- }
- if ( !isNull(fontcolor)) {
- grd_bfprcplist.rowstyle(i, "data", "color") = fontcolor;
- } else {
- grd_bfprcplist.rowstyle(i, "data", "color") = "#000000";
- }
- if ( !isNull(boldflag)) {
- grd_bfprcplist.rowstyle(i, "data", "font-weight") = boldflag;
- } else {
- grd_bfprcplist.rowstyle(i, "data", "font-weight") = "normal";
- }
- //if ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/prcphistcd" ) == "E" ) {
- // grd_bfprcplist.rowstyle(i, "data", "background-color") = "#ececec";
- //} else if ( !isNull(model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol10" ))) {
- // grd_bfprcplist.rowstyle(i, "data", "background-color") = model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/tempcol10" );
- //} else {
- // grd_bfprcplist.rowstyle(i, "data", "background-color") = "#ffffff";
- //}
- }
- }
- /**
- * @desc : D/C처방 오류처방 색변경
- * @param :
- * @id : grd_bfprcplist
- * @event : D/C처방 오류발생시
- * @return : void
- * @authur : 손주연 2008. 6. 30
- * @---------------------------------------------------
- */
- function fSetErrDCRow(DcErrArray) {
- if( DcErrArray == null || DcErrArray.length < 1) return ;
-
- var lstDC = new Array();
- lstDC = DcErrArray ;
- var bfNode = "/root/prcpsrch/prcplist";
- var DcNode = model.instances(0).selectNodes ( bfNode ) ;
-
- for ( var i = 0 ; i < lstDC.length ; i++){
- for( var j = 1 ; j <= DcNode.length ; j++) {
- if( model.getValue( bfNode + "[" + j + "]/chkcol" ) != "D" ) continue ;
-
- if( model.getValue(bfNode + "[" + j + "]/prcppkspec") == lstDC[i] ){
- fSetChngBkColor( j, "#ff6600" ) ;
- }
- }
- }
- //setPrcpColor();
- grd_bfprcplist.refresh();
- }
- /**
- * @desc : 전처방 배경색 바꾸기
- * @param :
- * @id : grd_bfprcplist
- * @event :
- * @return : void
- * @authur : 손주연 2008. 6. 30
- * @---------------------------------------------------
- */
- function fSetChngBkColor( iRow , chngColor ){
- if( iRow < 0 ) return ;
- var colorArray = model.getValue ( "/root/prcpsrch/prcplist[" + iRow + "]/tempcol10" ) + "^";
- if( isNull(chngColor) ){
- chngColor = getArrayData (colorArray, 0, 0, "^", "|" );
- }
- //var fontcol = getArrayData (colorArray, 0, 1, "^", "|" );
- //var boldflag = getArrayData (colorArray, 0, 2, "^", "|" );
-
- //colorArray = chngColor + "|" + fontcol + "|" + boldflag ;
-
- //model.setValue("/root/prcpsrch/prcplist[" + iRow + "]/tempcol10", colorArray );
-
- grd_bfprcplist.rowstyle(iRow , "data", "background-color") = chngColor;
- }
- /**
- * @desc : 오른쪽 마우스 클릭 청구후 D/C
- * @ : 신규일 때는 removeNode
- * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
- * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제, D/C 취소
- * @ : 삭제 후 D/C는 불가
- * @param :
- * @id : grd_prcplist
- * @event : 오른쪽 마우스 클릭 삭제
- * @return : void
- * @authur :
- * @---------------------------------------------------
- */
- function fAftDCRow() {
- fDCRow("C");
- }
- /**
- * @desc : 메인화면 변경
- * @param :
- * @return :
- * @authur : 오지훈
- * @---------------------------------------------------
- */
- function fChngMainScrn() {
- var mainobj = getMainViewer();
- var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
-
- var addprcpflag = opener.model.getValue("/root/init/addprcpflag"); //시행부서화면 여부
- var fstopenflag = opener.model.getValue("/root/init/fstopenflag"); //처방화면이 최초 생성 여부
- var bfprcpload = opener.model.getValue("/root/init/bfprcpload"); //전처방화면 최초 생성 여부
- var cpflag = opener.model.getValue("/root/cp"); //CP화면여부
-
- var curordpatobj = getOpenWindow("SMMMO04100");
- if(curordpatobj != null){
- var ordrecflag = curordpatobj.model.getValue("/root/main/cond/ordrecflag"); //OCS 체크여부
- var chngflag = curordpatobj.model.getValue("/root/main/cond/chngflag"); //OCS 체크여부
- }
-
- if(mainobj != null){
- var dutplcecd = getUserInfo("dutplcecd"); //사용자부서
- var operation = getGlobalVariable("operation"); //수술정보
-
- var wndid = "SMMMR00100"; //진료기록화면이 default
-
- if(addprcpflag != "Y"){ //시행부서화면이 아닌 경우에만 메인화면 변경 로직 처리
-
- if(fstopenflag !="N" || chngflag == "Y"){ //처방화면이 최초로 열린 경우, 진료대상자의 ocs체크값이 변경된 경우에는 메인화면 변경
-
- if(bfprcpload != "Y"){ //전처방화면이 로딩된 여부,(단순히 tab변경인 경우에는 메인화면 변경 로직을 처리하지 않음
-
- if(cpflag == "Y"){ //CP화면인 경우, CP초기화 후, 메인화면 변경 수행
- var cpendflag = opener.javascript.fReconstruct();
- if(cpendflag == "True"){
- }
- }
-
- //if(cpendflag == "True"){ //CPMain의 fReconstruct()가 완료된 이후 진료기록 변경로직을 수행
-
- if(dutplcecd == "2090000000" || dutplcecd == "2090300000"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
-
- if(operation.length > 0){ //수술환자리스트에서 환자 선택된 경우, 메인화면은 '마취환자기록' loading
- wndid = "SMMMR03700";
-
- }else{
- if(ordrecflag == "Y"){
- wndid = "SMMMB08100";
-
- }
- }
-
- }else{
- if(ordrecflag == "Y"){
- wndid = "SMMMB08100";
-
- }
-
- }
-
- opener.model.setValue("/root/init/bfprcpload" , "Y");
- opener.model.setValue("/root/init/fstopenflag", "N");
- if(curordpatobj != null){
- curordpatobj.model.setValue("/root/main/cond/chngflag", "N"); //OCS 체크여부
- }
-
- if(mainscrnid == wndid){
- if(wndid == "SMMMR03700"){
- mainobj.javascript.fFormInit();
-
- }else{
- mainobj.javascript.fInitRecPamInfo();
-
- }
- }else{
- if(cpflag != "Y"){
- mainobj.javascript.navigate(wndid);
- }
- }
-
- //}
-
- }else{ //전처방화면이 최초 생성된 경우, bfprcpload를 Y로 변경, 추후 tab변경시 메인화면 변경이 되지 않게함
- opener.model.setValue("/root/init/bfprcpload", "Y");
-
- }
-
- }
-
- }
- }
- }
- function fBtnInit(value){
- if (value == "A") {
- btn_bfinit.visible = true;
- btn_bfreinit.visible = false;
- } else if (value == "B") {
- btn_bfinit.visible = false;
- btn_bfreinit.visible = true;
- } else {
- btn_bfinit.visible = false;
- btn_bfreinit.visible = false;
- }
- //body.attribute ( "opacity" ) = "50";
- }
- /**
- * @desc : 원외처방 사후관리 팝업 호출, 최초 1회만 (2010.01.18 JJE)
- * @param :
- * @return :
- * @authur : 전지은, submission은 약제(뱍유미) 제공
- * @---------------------------------------------------
- */
- function fGetHosOutPrcpResn(){
- var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
- var orddd = "";
- if (prcpgenrflag == "O" || prcpgenrflag == "S"){
- orddd = opener.model.getValue ( "/root/paminfo/list/orddd" );
- }else{
- orddd = opener.model.getValue ( "/root/paminfo/list/indd" );
- }
- model.makeNode("/root/send/hosoutprcpresninfo");
- model.makeNode("/root/hosoutprcpresninfo/result");
- model.makeValue("/root/send/hosoutprcpresninfo/pid" , opener.model.getValue ( "/root/paminfo/list/pid" ));
- model.makeValue("/root/send/hosoutprcpresninfo/cretno" , opener.model.getValue ( "/root/paminfo/list/cretno" ));
- model.makeValue("/root/send/hosoutprcpresninfo/orddeptcd", opener.model.getValue ( "/root/paminfo/list/orddeptcd" ));
- model.makeValue("/root/send/hosoutprcpresninfo/orddd" , orddd);
- model.makeValue("/root/send/hosoutprcpresninfo/prcpdd" , model.getValue("/root/init/bfprcpdd"));
-
- if(submit("TRMMO02102", false)){
- var rtnMsg = instance1.selectSingleNode("/root/hosoutprcpresninfo/result/msg");
- if(rtnMsg != null){
- messageBox(rtnMsg.text, "I");
- }
- }
- model.removeNodeSet("/root/send/hosoutprcpresninfo");
- model.removeNodeSet("/root/hosoutprcpresninfo");
- }
- /**
- * @desc : 원격판독요청 (TPLUS 원격판독 임시사업)
- * @param :
- * @return :
- * @authur : 엄영만 2015.05.11
- * @---------------------------------------------------
- */
- function fReqPacs(){
- var selectedRows = grd_bfprcplist.selectedRows;
-
- if(selectedRows < 1) {
- messageBox ("선택된 처방이 없습니다.", "I004" );
- return;
- }
-
- if(selectedRows > 1) {
- messageBox ("하나의 처방만 선택하세요.", "I004" );
- return;
- }
-
- var sRowKey = model.getValue ( "/root/prcpsrch/prcplist[" + grd_bfprcplist.selectedrow(0) + "]/rowkey");
- if(isNull(sRowKey)) {
- messageBox ("선택된 처방이 없습니다.", "I004");
- return;
- }
-
- model.makeNode("/root/send/reqpacs");
- model.makeNode("/root/reqpacs/result");
- model.makeValue("/root/send/reqpacs/rowkey" , sRowKey);
-
- if(submit("TXMMO02102", false)){
- var rtnMsg = instance1.selectSingleNode("/root/reqpacs/result/msg");
- if(rtnMsg != null){
- messageBox(rtnMsg.text, "I");
- }
- }
- model.removeNodeSet("/root/send/reqpacs");
- model.removeNodeSet("/root/reqpacs");
- }
|