1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036 |
- //변수선언
- var prcpclscd = 2;
- var prcpKindCdCol = 3; //처방종류 index
- var prcpnmCol = 5; //처방명 컬럼 index
- var prcpVolCol = 6; //용량 컬럼 index
- var prcpQtyCol = 8; //수량 컬럼 index
- var prcpTimsCol = 10; //횟수 컬럼 index
- var prcpDayNoCol = 11; //일수 컬럼 index
- var prcpDeliveFactCol = 15; //전달사항 컬럼 index
- var prcpHopeHdCol = 18; //희망일자 컬럼 index
- var ContPrcpDdRow = 6; //지정일 instance row
- var prcpNode = "/root/main/prcp/prcplist";
- var diagNode = "/root/main/diaginfo/diagcdlist";
- var prcpgenrflag = ""; //외래입원구분
- /**
- * @desc : 처방화면 초기화
- * @param :
- * @id : model1
- * @event : xforms-ready
- * @return : void
- * @authur : 마정민 2007. 3. 14
- * @---------------------------------------------------
- */
- function fInitializeReady() {
- model.recalculate();
- model.setfocus( "grd_prcplist" );
- grd_prcplist.dispatch("onentercell");
- }
- function fPromPrcpSrch(srchflag) {
- if(event.keyCode == "13") {
- var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
- var setnm = model.getValue("/root/hidden/prmsprcpsetdetlset/setnm");
- if(setno == 1){
- messageBox("최상위 약속처방 폴더에서 검색", "E001");
- return;
- }
- if ( isNull(setnm)) {
- messageBox("선택된 약속처방폴더가", "I004");
- return;
- }
- if ( srchflag == "prcpcd") {
- var prcpnm = grd_prcplist.valuematrix(grd_prcplist.row, grd_prcplist.colRef("prcpcd"));
- } else {
- var prcpnm = grd_prcplist.valuematrix(grd_prcplist.row, grd_prcplist.colRef("prcpnm"));
- }
- var isHangul = fIsHangul (prcpnm);
- //한글일때는 1글자만 넣어도 검색가능
- if ( isNull(prcpnm)) {
- messageBox("검색어를", "C001");
- return;
-
- } else if ( isHangul == "E" ){
- //영문,숫자일때는 3글자 넣어야 검색가능
- if ( prcpnm.length < 3 ){
- messageBox("3글자 이상", "C001");
- return;
- }
- }
- if (prcpnm.charAt ( 0 ) == "/"){
- if ( prcpnm.length == 1 ){
- messageBox("검색할 수술명을", "C001");
- return;
- }
- var curRow = grd_prcplist.row;
- var srchRow = grd_prcplist.rows -1;
- var xpt = window.screenleft + 180;
- var ypt = window.screenTop + 80;
- //modael ( "SPMMO05100", 1, xpt, ypt );
- modal ( "SPMMO05100", 1, xpt, ypt ); //BY SONJY 2008-09-06 오타 수정.
- } else {
- if ( srchflag == "prcpcd") {
- fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), "11", "TRMMB00201", "", false, "getPrcpCdOldSrchInfo", isHangul );
- } else if ( srchflag == "prcpnm") {
- fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), "11", "TRMMB00201", "", false, "getPrcpNmSrchInfo", isHangul );
- } else {
- fPrcpSrchCom ( prcpnm, model.getValue ( "/root/init/prcpdd" ), "11", "TRMMB00201", "", false, "getPrcpSrchInfo", isHangul );
- }
-
- var srchLength = model.instances(0).selectNodes( "/root/prcpsrch/prcplist" ).length;
- var curRow = grd_prcplist.row;
- var nextRow = grd_prcplist.row + 1;
- if( srchLength > 1) {
- if ( grd_prcplist.row <= 13) {
- import1.attribute ( "top" ) = 71 + ( grd_prcplist.row - 1) * 23;
- } else if ( grd_prcplist.row <= 27) {
- import1.attribute ( "top" ) = (grd_prcplist.row - 1) * 23 - 300;
- } else if ( grd_prcplist.row > 27 ) {
- import1.attribute ( "top" ) = 24 * 23 - 224;
- }
- import1.visible = true;
- model.refresh();
- model.setfocus( "grd_prcpsrchlist" );
- grd_prcpsrchlist.select( 1, 1, 1, 1) = true;
- } else if( srchLength == 1) {
- srchRow = addPrcpDetl ( "import" , "/root/prcpsrch/prcplist" , "/root/main/prcp" , 1 , grd_prcplist.row, "02" );
- if ( srchRow != 0 ) {
- focusMain ( srchRow );
- }
- } else {
- messageBox ( "검색된 내용이", "I004" );
- grd_prcplist.dispatch("onentercell");
- }
- model.refresh();
- model.recalculate();
- }
- }
- }
- function fReqGetPrmsSet() {
- model.setValue ( "/root/send/cond1", model.getValue ( "/root/hidden/prmsprcpsetdetlset/setno"));
- model.setValue ( "/root/send/cond2", model.getValue ( "/root/hidden/prmsprcpsetdetlset/settypecd"));
- //submit("TRMMB00202", false);
- if(submit( "TRMMB00202" )){
- fAbsnSrch ( "/root/main/prcp/prcplist", grd_prcplist );
- }
-
- appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
- model.refresh();
- model.recalculate();
-
- //2008.06.05 appendchild로 grid row추가 후 instance정보가 흐트러짐
- grd_prcplist.row = grd_prcplist.rows - 1;
- grd_prcplist.col = grd_prcplist.colRef("prcpcd");
- btn_editcell.dispatch("DOMActivate");
- }
- /**
- * @desc : 대체약이 있을경우 색처리 및 프로토콜 값 세팅
- * @param : strSrc - source 노드
- : grdObj - DataGrid
- * @return : void
- * @authur : 마정민 2007. 7. 03
- */
- function fAbsnSrch ( strSrc, grdObj ) {
- var srcNodeList = model.instances(0).selectNodes( strSrc );
- var tempcol16 = "";
- var prcpuseflag = "";
- var prcpclscd = "";
-
- for(var i = 1; i <= srcNodeList.length; i++) {
- tempcol16 = model.getValue ( strSrc + "[" + i + "]/tempcol16");
- prcpclscd = model.getValue ( strSrc + "[" + i + "]/prcpclscd");
- prcpuseflag = getArrayData (tempcol16, 0, 0, "^", "|" );
- grdObj.rowstyle(i, "data", "color") = "#000000"; //기존에 색칠되어 있는 것을 clear 해 준다.
-
- if (prcpuseflag == "D") { // 수가정보에 없는경우
- grdObj.rowstyle(i, "data", "color") = "#ff4848";
- } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
- var drugmastspec = model.getValue ( strSrc + "[" + i + "]/drugmastspec") + "^";
- if ( getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) { // 품절여부가 Y 이면 색표시를 해준다.
- grdObj.rowstyle(i, "data", "color") = "#c0c0c0";
- }
- }
- }
- }
- /**
- * @desc : 처방수정.
- * @ : 신규일때는 수정표시 안함.
- * @ : 삭제,D/C 상태일때는 취소후 수정.
- * @param :
- * @id : grd_prcplist
- * @event : xforms-value-changed
- * @return : void
- * @authur : 마정민 2007. 6. 4
- * @---------------------------------------------------
- */
- function fPrcpUpdate() {
- var status = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status" );
- if (status=="-") {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status", "U" );
- model.refresh();
- model.recalculate();
- }
- }
- /**
- * @desc : 오른쪽 마우스 클릭 삭제
- * @ : 신규일 때는 removeNode
- * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
- * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제 및 D/C 원복
- * @ : D/C 후 삭제는 불가
- * @param :
- * @id : grd_prcplist
- * @event : 오른쪽 마우스 클릭 삭제
- * @return : void
- * @authur : 마정민 2007. 6. 4
- * @---------------------------------------------------
- */
- function fPrmsDeleteRow() {
- //타부서의 약속처방을 삭제할 수 없도록 처리. 2008-01-18 오지훈
- var prmsflag = opener.model.getValue("/root/main/cond/prmsflag");
- if(prmsflag == "T"){
- var orddeptcd = opener.model.getValue("/root/main/cond/deptsetcd");
- var orddeptnm = opener.cmb_deptset.label;
- if(orddeptcd = getUserInfo("dutplcecd")){ //
- messageBox("[" + orddeptnm +"] 약속처방을 삭제", "E001");
- return;
- }
- }
- var selectedRows = grd_prcplist.selectedRows;
- var node = instance1.selectSingleNode("/root/main/prcp");
- var cnt=0;
- for (i= selectedRows-1; i >= 0; i--) {
- var status = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/status" );
- if (status=="-") {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i)+ "]/status", "D" );
- } else if ( status =="I" ) {
- //신규입력(I)은 removeNode 이다.
- model.removeNode ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]" );
- //삭제시 데이터를
- } else if (status=="S") {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i) + "]/prcpnm", "" );
- } else if (status=="D") {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i)+ "]/status", "-" );
- } else if (status=="U") {
- model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.selectedrow(i)+ "]/status", "D" );
- }
- }
- model.refresh();
- model.recalculate();
- }
- /**
- * @desc : 처방 오른쪽 마우스 팝업 처리
- * @param :
- * @id : grd_prcplist
- * @event : onmousedown
- * @return : void
- * @authur : 마정민 2007. 6. 4
- * @---------------------------------------------------
- */
- function fMouseRghtBtnPopup() {
- if (event.button == 3) {
- if(grd_prcplist.isCell(event.target) && grd_prcplist.mouseRow >= grd_prcplist.fixedRows){
- app.showPopupMenu(true);
- window.setPopupMenu(true, "/root/init/msrght/mouserght", "label", "func", false);
- } else {
- window.setPopupMenu(false);
- }
- }
- }
- function fPrmsPrcpSave() {
- var setno = model.getValue ("/root/hidden/prmsprcpsetdetlset/setno" );
- var settypecd = model.getValue ("/root/hidden/prmsprcpsetdetlset/settypecd" );
- var setnm = model.getValue( "/root/hidden/prmsprcpsetdetlset/setnm");
- var sPrcpcd = "";
- var sStatus = "";
- var sSubjNm = "";
- if(setno == 1){
- model.alert ( "최상위 약속처방폴더에는 저장하실 수 없습니다.");
- return;
- }
- if ( isNull(setnm)) {
- model.alert ( "선택된 약속처방폴더가 없습니다.");
- return;
- } else {
- if ( messageBox( setnm + " 약속처방폴더에 선택하신 처방을", "Q002") == "7" ) {
- return;
- }
- }
-
- //kimsj 임상연구 - 연구코드와 처방코드, 처방권한 여부 확인(에러체크)
- if ( opener.window.javascript.getScreenID() == "SMMMB08300" ) {
- sSubjNm = opener.model.getValue("/root/hidden/subjinfo/subjlist/subjno");
- model.removeNodeset("/root/tempsubj");
- model.makeValue("/root/tempsubj/reqdata/subjno", opener.model.getValue("/root/main/subjinfo/subjlist[subjno='" + sSubjNm + "']/subjid"));
- submit("TRMMB08302");
-
- if ( isNull(model.getValue("/root/tempsubj/result/userlist[empid='" + getUserInfo ("userid") + "']/empid")) ) {
- messageBox ( "임상연구의 처방", "E002"); //" 권한이 없습니다."
- return;
- }
-
- for ( var i=1; i < grd_prcplist.rows-1; i++ ) {
- sStatus = model.getValue("/root/main/prcp/prcplist[" + i + "]/status");
- sPrcpcd = model.getValue("/root/main/prcp/prcplist[" + i + "]/prcpcd");
- if ( sStatus != "S" && sStatus != "D" && sPrcpcd.substring(0,3) == "XD-" ) {
- if ( isNull(model.getValue("/root/tempsubj/result/druglist[drugcd='" + sPrcpcd + "']/drugcd")) ) {
- messageBox ( "["+sPrcpcd+"] 코드는 해당 임상연구에 부합하는 처방코드가 아닙니다. \n\n삭제 후 다시 저장하시기 바랍니다.", "E");
- return;
- }
- }
- }
- }
- //end kimsj 임상연구
- for ( var i=1; i < grd_prcplist.rows-1; i++ ) {
- var tempcol16 = model.getValue( "/root/main/prcp/prcplist[" + i + "]/tempcol16");
- if(tempcol16 != null) {
- var prcpuseflag = getArrayData (tempcol16, 0, 0, "^", "|" );
- if(prcpuseflag == "D" && model.getValue ( "/root/main/prcp/prcplist[" + i + "]/status" ) == "U" ) {
- var prcpnm = model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpnm" );
- model.alert ( prcpnm + "은 수가 또는 검사실 사용종료 되어 수정 할 수 없습니다. 삭제만 가능합니다.");
- return;
- }
- }
-
- if ( model.getValue ( "/root/main/prcp/prcplist[" + i + "]/status" ) == "I" ) {
- model.setValue("/root/main/prcp/prcplist[" + i + "]/prcpkindcd", "20" );
- model.setValue("/root/main/prcp/prcplist[" + i + "]/prcppkspec", setno + "|" + settypecd);
- }
-
- var drprcpetc2 = model.getValue("/root/main/prcp/prcplist[" + i + "]/drprcpetc2"); // 특수주사실 정보가 없으면 저장 시 오류 수정
- if ( isNull(drprcpetc2) ) {
- model.setValue("/root/main/prcp/prcplist[" + i + "]/drprcpetc2", "-");
- }
- }
- var savePrcpInfo = model.instances(0).selectNodes( "/root/main/prcp/prcplist" );
- //model.setValue ( "/root/send/cond1", getNodeListCSV(savePrcpInfo));
- copyNodeListType ( "/root/send/cond1", "/root/main/prcp/prcplist[status!='S']", "replace", model, model); //sort기능 추가 후 약속셋copy 시 컬럼순서때문 오류 수정 (2009.10.28 by JJE)
- model.setValue ( "/root/send/cond2", "1" );
- if ( !submit ( "TRMMB00203", false )){
- model.removeNodeset("/root/send/cond1/prcplist"); //reset (2009.10.28 by JJE)
- model.resetInstanceNode ( "/root/send" );
- model.refresh();
- return;
- }
- var prcpErrList = model.instances(0).selectNodes( "/root/result/prcperrlist" );
- var xpt = window.screenleft + 100;
- var ypt = window.screenTop + 50;
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- if ( prcpErrList.length > 0 ) {
- if ( !isNull(model.getValue ( "/root/result/prcperrlist[1]/prcpcd"))){
- open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result" ); //오류팝업
- model.removeNodeset("/root/result/prcperrlist");
- }
- return;
- }
- if (submit("TXMMB00201", false)) {
- appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
- fAbsnSrch ( "/root/main/prcp/prcplist", grd_prcplist );
- model.refresh();
- model.recalculate();
- }
-
- model.removeNodeset("/root/send/cond1/prcplist"); //reset (2009.10.28 by JJE)
- }
- /**
- * @desc : 약속처방 복사하기 기능
- * @param :
- * @id : grd_prcplist
- * @event : onmousedown
- * @return : void
- * @authur : 마정민 2007. 6. 12
- * @---------------------------------------------------
- */
- function fCopyRow () {
- var selectedRows = grd_prcplist.selectedRows;
- var cnt=0;
-
- var sStatus = "";
- var sTempcol16 = "";
- var sPrcpuseflag = "";
-
- for (var i=0; i< selectedRows; i++) {
- sStatus = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status");
- sTempcol16 = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/tempcol16");
- if(sTempcol16 != null) {
- sPrcpuseflag = getArrayData (sTempcol16, 0, 0, "^", "|" );
- }
-
- if (sStatus != "S" && sPrcpuseflag != "D"){ //검색, 수가 종료은 드래그 안한다.
- fPrcpBuffer( ++cnt, grd_prcplist.selectedrow(i), "/root/prcpdrag", prcpNode );
- }
- }
- var srcNodeList = model.instances(0).selectNodes("/root/prcpdrag/prcplist");
- for ( i=1 ; i<=srcNodeList.length ; i++ ) {
- model.setValue ( "/root/prcpdrag/prcplist[" + i + "]/status" , "I" );
- }
- }
- /**
- * @desc : 약속처방 붙혀넣기 기능
- * @param :
- * @id : grd_prcplist
- * @event : onmousedown
- * @return : void
- * @authur : 마정민 2007. 6. 12
- * @---------------------------------------------------
- */
- function fPasteRow () {
- var srcNodeList = model.instances(0).selectNodes("/root/prcpdrag/prcplist");
- var destNode = model.instances(0).selectSingleNode("/root/main/prcp");
- var row = grd_prcplist.rows-1;
- for (var i=1; i<srcNodeList.length+1; i++) {
- row = row++;
- model.duplicate( "/root/main/prcp", "/root/prcpdrag/prcplist[" + i + "]", "*[" + row + "]");
- model.setValue ( "/root/main/prcp/prcplist[" + row + "]/status", "I" );
- }
- model.refresh();
- }
- /**
- * @desc : SET폴더 삭제시, 약속처방 데이터 삭제
- * @
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fClrGridData(){
- model.removeNodeset("/root/main/prcp/prcplist");
- model.refresh();
- }
- /**
- * @desc : 믹스번호처리
- * @return : void
- * @authur : 마정민 2007.10.09
- */
- function fMixNoCnt() {
- var selectedRows = grd_prcplist.selectedRows;
- var cnt = 0;
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd == "A6" ) {
- cnt++
- } else {
- grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- }
- }
- if ( cnt <= 1 ) {
- messageBox ( "Mix할 처방이 ", "E014");
- } else {
- var selectedRows = grd_prcplist.selectedRows;
- var prcpmixno = eval(model.getValue ( "/root/init/prcpmixno" )) + 1;
- for (var i=0; i< selectedRows; i++) {
- model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpmixno", prcpmixno );
-
- fSetCpVal(grd_prcplist.selectedrow(i), "U");
- // if ( model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status" ) == "-" ) {
- // model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status", "U" );
- // }
- }
- model.setValue ( "/root/init/prcpmixno", prcpmixno );
- for (var i=1; i < grd_prcplist.rows; i++) {
- var chkPrcpmixno = model.getValue ( prcpNode + "[" + i + "]/prcpmixno" );
- //믹스번호가 있는 것중에
- if ( chkPrcpmixno != "-" && !isNull(chkPrcpmixno)) {
- //삭제를 제외하고 값이 한개 밖에 없으면 mix를 해제해 준다.
- var srcNodeList = model.instances(0).selectNodes ( prcpNode + "[prcpmixno='" + chkPrcpmixno + "']" );
- if ( srcNodeList.length <= 1) {
- model.setValue ( prcpNode + "[" + i + "]/prcpmixno", "-" );
- // if ( model.getValue ( prcpNode + "[" + i + "]/status" ) == "-" ) {
- // model.setValue ( prcpNode + "[" + i + "]/status", "U" );
- // }
- }
- }
- }
- }
- }
- /**
- * @desc : 믹스번호취소처리
- * @return : void
- * @authur : 마정민 2007.10.16
- */
- function fMixNoDel() {
- var selectedRows = grd_prcplist.selectedRows;
- var cnt = 0;
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd == "A6" ) {
- cnt++
- } else {
- grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- }
- }
- var selectedRows = grd_prcplist.selectedRows;
- for (var i=0; i< selectedRows; i++) {
- model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpmixno", "-" );
-
- fSetCpVal(grd_prcplist.selectedrow(i), "U");
- // if ( model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status" ) == "-" ) {
- // model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status", "U" );
- // }
- }
- for (var i=1; i < grd_prcplist.rows; i++) {
- var chkPrcpmixno = model.getValue ( prcpNode + "[" + i + "]/prcpmixno" );
- //믹스번호가 있는 것중에
- if ( chkPrcpmixno != "-" && !isNull(chkPrcpmixno)) {
- //삭제를 제외하고 값이 한개 밖에 없으면 mix를 해제해 준다.
- var srcNodeList = model.instances(0).selectNodes ( prcpNode + "[prcpmixno='" + chkPrcpmixno + "']" );
- if ( srcNodeList.length <= 1) {
- model.setValue ( prcpNode + "[" + i + "]/prcpmixno", "-" );
- // if ( model.getValue ( prcpNode + "[" + i + "]/status" ) == "-" ) {
- // model.setValue ( prcpNode + "[" + i + "]/status", "U" );
- // }
- }
- }
- }
- }
- /**
- * @desc : 처방화면 오른쪽 마우스 클릭 처방 붙혀넣기
- * @return : void
- * @authur : 마정민 2007. 10. 22
- */
- function fPrcpPaste() {
- model.setValue ( "/root/init/cropflag", "N" );
- srcNodeList = model.instances(0).selectNodes("/root/prcpdrag/prcplist");
- var destNode = model.instances(0).selectSingleNode("/root/main/prcp");
- var dropRow = grd_prcplist.row;
- var endRow = grd_prcplist.rows -1;
- if ( dropRow == endRow ) {
- dropRow = dropRow -1;
- }
- for ( var i= 1; i<=srcNodeList.length ; i++){
- row = dropRow + i;
- model.duplicate( "/root/main/prcp", "/root/prcpdrag/prcplist[" + i + "]", "*[" + row + "]");
- fSetCpVal( row, "I");
- }
- model.removeNodeset ( "/root/prcpdrag/prcplist" );
- model.recalculate();
- model.refresh();
- }
- /**
- * @desc : 처방화면 오른쪽 마우스 클릭 처방 잘라내기
- * @return : void
- * @authur : 마정민 2007. 10. 22
- */
- function fPrcpCrop() {
- if ( model.getValue ("/root/init/cropflag") == "Y" ) {
- if (messageBox ( "잘라낸 데이터가 이미 있습니다. 잘라내시겠습니까?", "Q" ) != "6" ) {
- return;
- }
- }
- var selectedRows = grd_prcplist.selectedRows;
- var cnt=0;
-
- var sStatus = "";
- var sTempcol16 = "";
- var sPrcpuseflag = "";
-
- for (var i = selectedRows-1; i >= 0; i--) {
- sStatus = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status");
- sTempcol16 = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/tempcol16");
- if(sTempcol16 != null) {
- sPrcpuseflag = getArrayData (sTempcol16, 0, 0, "^", "|" );
- }
-
- if (sStatus != "S" && sPrcpuseflag != "D"){ //검색, 수가 종료 드래그 안한다.
- fPrcpBuffer( ++cnt, grd_prcplist.selectedrow(i), "/root/prcpdrag", prcpNode );
- if ( model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status" ) == "I" ) {
- model.removenode ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]" );
- } else {
- model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/status", "D" )
- }
- }
- model.setValue ( "/root/init/cropflag", "Y" );
- }
-
- var srcNodeList = model.instances(0).selectNodes("/root/prcpdrag/prcplist");
- for ( i=1 ; i<=srcNodeList.length ; i++ ) {
- model.setValue ( "/root/prcpdrag/prcplist[" + i + "]/status" , "I" );
- }
- model.refresh();
- }
- /**
- * @desc : 처방상세 일괄입력
- * @param :
- * @return : void
- * @authur : 마정민 2007. 6. 30
- */
- function fPrcpDetlCom() {
- var xpt = 510;
- var ypt = 180;
-
- var header = "";
- var useyn = "";
- var value = "";
- var cnt = 0;
- var selectedRows = grd_prcplist.selectedRows;
- var prcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(0) + "]/prcpclscd" );
- var prnscrID = getScreenID(); //LYJ 2010.01.02 PRN처방 팝업 뜨는 조건위해 화면 ID 추가
-
- //fPrcpModal ( "SPMMO 10400", xpt, ypt ); //일괄입력 공통
- if ( prcpclscd == "A2" || prcpclscd == "A4" ) { //약
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != "A2" && selprcpclscd != "A4" ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- setParameter ( "SPMMO12100_prnchk", prnscrID); //LYJ 2010.01.02 PRN처방 팝업 뜨는 조건위해 화면 ID 추가
- fPrcpModal ( "SPMMO12100", xpt, ypt );
- }
- } else if ( prcpclscd == "A6" ) { //주사
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- setParameter ( "SPMMO12200_prnchk", prnscrID); //LYJ 2010.01.02 PRN처방 팝업 뜨는 조건위해 화면 ID 추가
- fPrcpModal ( "SPMMO12200", xpt, ypt );
- }
- } else if ( prcpclscd == "F2" ) { //재활
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO11200", xpt, ypt );
- }
- } else if ( prcpclscd == "C2" || prcpclscd == "C6" || prcpclscd == "E2" ) {
- //방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상, 방사선치료)
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != "C2" && selprcpclscd != "C6" && selprcpclscd != "E2" ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- setParameter ( "SPMMO12300_prcpclscd", prcpclscd );
- fPrcpModal ( "SPMMO12300", xpt, ypt );
- setParameter ( "SPMMO12300_prcpclscd", "" );
- }
- } else if ( prcpclscd == "B2" || prcpclscd == "B6" ) { //진단검사 (검체검사), 핵의학 체내
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != "B2" && selprcpclscd != "B6" ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- setParameter ( "SPMMO12400_prcpclscd", prcpclscd );
- fPrcpModal ( "SPMMO12400", xpt, ypt );
- setParameter ( "SPMMO12400_prcpclscd", "" );
- }
- } else if ( prcpclscd == "H2" ) { //수술, 처치, 치과
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != "H2" && selprcpclscd != "H4" ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO12600", xpt, ypt );
- }
- } else if ( prcpclscd == "K2" ) {
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != "K2" ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO13500", xpt, ypt );
- }
- } else if ( prcpclscd == "03" ) { //식이
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO12700", xpt, ypt );
- }
- } else if ( prcpclscd == "I2" || prcpclscd == "I4" ) { //마취
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != "I2" && selprcpclscd != "I4") {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO12800", xpt, ypt );
- }
- } else if ( prcpclscd == "C4" ) { //angio
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO12900", xpt, ypt );
- }
- } else if ( prcpclscd == "D2" ) { //병리
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO13000", xpt, ypt );
- }
- } else if ( prcpclscd == "M2" ) { //재료
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO13600", xpt, ypt );
- }
- } else if ( prcpclscd == "G2" ) { //RT
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO13700", xpt, ypt );
- }
- } else if ( prcpclscd == "H4" ) { //처치
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO13800", xpt, ypt );
- }
- } else if ( prcpclscd == "B4" ) { //수혈 (혈액수혈)
- for ( var i=selectedRows-1; i >= 0; i-- ){
- //첫번째 SELECT 된 것을 기준으로 다른 것은 SELECT를 해제한다.
- var selprcpclscd = model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/prcpclscd" );
- if ( selprcpclscd != prcpclscd ) {
- //grd_prcplist.select( grd_prcplist.selectedrow(i), 1, grd_prcplist.selectedrow(i), 1) = false;
- cnt++;
- }
- }
- if ( cnt > 0) {
- fPrcpModal ( "SPMMO10400", xpt, ypt );
- } else {
- fPrcpModal ( "SPMMO12500", xpt, ypt );
- }
- }
-
- fBatIpt ( "batipt_rtn1_useyn", "batipt_rtn1" );
- }
- /**
- * @desc : PreWorkUp 처리 오른쪽 마우스 클릭
- * @return : void
- * @authur : 마정민 2007. 4. 30
- */
- function fPreWorkUp () {
- var selectedRows = grd_prcplist.selectedRows;
- for (var i=0; i< selectedRows; i++) {
- if ( model.getValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/trnptbftestflag" ) == "Y" ) {
- model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/trnptbftestflag", "N" )
- } else {
- model.setValue ( prcpNode + "[" + grd_prcplist.selectedrow(i) + "]/trnptbftestflag", "Y" )
- }
- makePrcpNm( prcpNode, grd_prcplist.selectedrow(i) );
-
- fSetCpVal(grd_prcplist.selectedrow(i), "U");
- }
- }
- /**
- * @desc : fMoveGridRows 그리드 선택행 이동
- * @param : grd_id 그리드 아이디
- * flag 이동방향('UP' or 'DOWN')
- * @return : void
- * @authur : 마정민 2007. 4. 30
- */
- function fMoveGridRows(grd_id, flag) {
- var grdObj = document.controls.item(grd_id);
- var row = grdObj.row;
- var fixRow = grdObj.fixedRows;
- var delRow = null;
- var insRow = null;
- var MaxRow = null;
- var MinRow = null;
- var i = null;
- var sStatus = "";
-
- //멀티로 선택된 로우 개수
- var selectedCnt = grdObj.selectedRows;
- if(selectedCnt < 1){
- alert("선택한 행이 없습니다.");
- return;
- }
- var selectedRows = Array(selectedCnt);
- for(i=0; i<selectedCnt; i++) {
- selectedRows[i] = grdObj.selectedRow(i);
- if(i == 0){
- MaxRow = grdObj.selectedRow(i);
- MinRow = grdObj.selectedRow(i);
- } else {
- if (MaxRow < grdObj.selectedRow(i))
- MaxRow = grdObj.selectedRow(i);
-
- if (MinRow > grdObj.selectedRow(i))
- MinRow = grdObj.selectedRow(i);
- }
- }
- if(MinRow < fixRow){
- alert("고정된 행은 선택할 수 없습니다.");
- return;
- }
- switch (flag) {
- case "UP": // 아래에서 위로 올릴때
- if(MinRow == fixRow){
- alert("최상위 행은 위로 이동할 수 없습니다.");
- return;
- }
- grdObj.disabled = true;
- for(i=0; i<selectedCnt; i++){
- grdObj.isSelected(selectedRows[i]) = false; // 선택취소
- insRow = selectedRows[i] - 1;
- delRow = selectedRows[i] + 1;
-
- grdObj.insertRow(insRow, "above", false);
- model.copyNode(grdObj.nodeset + "[" + insRow + "]", grdObj.nodeset + "[" + delRow + "]");
- grdObj.deleteRow(delRow, true);
-
- sStatus = model.getValue ( prcpNode + "[" + insRow + "]/status");
- if( sStatus == "-") {
- model.setValue ( prcpNode + "[" + insRow + "]/status", "U");
- }
- sStatus = model.getValue ( prcpNode + "[" + (insRow+1) + "]/status");
- if( sStatus == "-") {
- model.setValue ( prcpNode + "[" + (insRow+1) + "]/status", "U");
- }
- }
-
- grdObj.refresh()
- grdObj.row = MinRow-1;
- for(i=0; i<selectedCnt; i++) {
- grdObj.AddListSelect(selectedRows[i]-1);
- }
- grdObj.disabled = false;
- break;
- case "DOWN": // 위에서 아래로 내릴때
- if(MaxRow == grdObj.rows - 1){
- alert("최하위 행은 아래로 이동할 수 없습니다.");
- return;
- }
-
- grdObj.disabled = true;
- for(i=selectedCnt-1; i>=0; i--){
- grdObj.isSelected(selectedRows[i]) = false; // 선택취소
- insRow = selectedRows[i] + 1;
- delRow = selectedRows[i];
- grdObj.insertRow(insRow, "below" , false);
- model.copyNode(grdObj.nodeset + "[" + (insRow+1) + "]", grdObj.nodeset + "[" + delRow + "]");
- grdObj.deleteRow(delRow, true);
-
- sStatus = model.getValue ( prcpNode + "[" + insRow + "]/status");
- if( sStatus == "-") {
- model.setValue ( prcpNode + "[" + insRow + "]/status", "U");
- }
- sStatus = model.getValue ( prcpNode + "[" + (insRow-1) + "]/status");
- if( sStatus == "-") {
- model.setValue ( prcpNode + "[" + (insRow-1) + "]/status", "U");
- }
- }
-
- grdObj.refresh();
- grdObj.row = MinRow+1;
- for(i=0; i<selectedCnt; i++) {
- grdObj.AddListSelect(selectedRows[i]+1);
- }
- grdObj.disabled = false;
- break;
- default:
- alert("fMoveGridRows() flag 값은 UP 또는 DOWN만 가능 합니다.");
- return;
- }
-
- fAbsnSrch(prcpNode, grdObj );
- }
- /**
- * @desc : 엑셀저장
- * @
- * @param : sechflag S:싱글(처방리스트에서 호출) T:트리하위까지(트리에서 호출) P:개인 약속셋 전체 D:부서약속셋 전체
- * settrgtcd sechflag 값이 P 또는 D일때 사번 또는 부서코드
- * ioflag sechflag 값이 P 또는 D일때 진료구분 (O:외래, I:입원)
- * @return :
- * @author : 엄영만 (2012.01.30)
- * @---------------------------------------------------
- */
- function fsaveToExcel(sechflag, settrgtcd, ioflag){
- var setno = model.getValue("/root/hidden/prmsprcpsetdetlset/setno");
- var settypecd = model.getValue("/root/hidden/prmsprcpsetdetlset/settypecd");
- var setnm = model.getValue("/root/hidden/prmsprcpsetdetlset/setnm");
-
- //파일 이름 사용 불가 문자열 처리
- var specialChars = /[/\~!#$^&*+|:;?"<>']/; // 특수기호 처리
- setnm = setnm.split(specialChars).join(" ");
- var sTitle = "약속처방 " + setnm;
-
- model.setValue ( "/root/send/cond1", setno);
- model.setValue ( "/root/send/cond2", settypecd);
- model.setValue ( "/root/send/cond3", sechflag);
- model.setValue ( "/root/send/cond4", settrgtcd);
- model.setValue ( "/root/send/cond5", ioflag);
-
- submit("TRMMB00204", false);
- grid_excel.refresh();
-
- var fileName = window.fileDialog("save", ",", false, sTitle, "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
- if (fileName != ""){
- grid_excel.saveExcel(fileName, sTitle, true, true, "", "", true);
- }
- }
|