123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[//변수선언
- 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 = ""; //외래입원구분
- var arErrorCode = new HashArray();
- var e1 = new GridEditEventInfo();
- /**
- * @desc : 처방화면 초기화
- * @param :
- * @id : model1
- * @event : xforms-ready
- * @return : void
- * @---------------------------------------------------
- */
- function fInitializeReady() {
- div_all.grd_prcplist.setFocus();
- div_all.grd_prcplist_onenteredit(grd_prcplist,e1);
- }
- function fPromPrcpSrch(srchflag) {
- var setno = ds_prmsprcpsetdetlset.getColumn(0, "setno");
- var setnm = ds_prmsprcpsetdetlset.getColumn(0, "setnm");
- if(setno == 1){
- sysf_messageBox("최상위 약속처방 폴더에서 검색", "E001");
- return;
- }
- if (utlf_isNull(setnm)) {
- sysf_messageBox("선택된 약속처방폴더가", "I004");
- return;
- }
- if (srchflag == "prcpcd") {
- var prcpnm = lf_getDsValue(ds_main_prcplist, ds_main_prcplist.rowposition, "prcpcd");
- } else {
- var prcpnm = lf_getDsValue(ds_main_prcplist, ds_main_prcplist.rowposition, "prcpnm");
- }
- var isHangul = utlf_isHangul (prcpnm);
- //한글일때는 1글자만 넣어도 검색가능
- if (utlf_isNull(prcpnm)) {
- sysf_messageBox("검색어를", "C001");
- return;
-
- } else if ( isHangul == "E" ){
- //영문,숫자일때는 3글자 넣어야 검색가능
- if ( prcpnm.length < 3 ){
- sysf_messageBox("3글자 이상", "C001");
- return;
- }
- }
- if (prcpnm.charAt ( 0 ) == "/"){
- if ( prcpnm.length == 1 ){
- sysf_messageBox("검색할 수술명을", "C001");
- return;
- }
-
- fPrcpModal ( "SPMMO05100", 180, 80 ); //BY SONJY 2008-09-06 오타 수정.
- } else {
- if ( srchflag == "prcpcd") {
- lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd"), "11", "TRMMB00201", "", "getPrcpCdOldSrchInfo", isHangul );
- } else if ( srchflag == "prcpnm") {
- lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd"), "11", "TRMMB00201", "", "getPrcpNmSrchInfo", isHangul );
- } else {
- lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd"), "11", "TRMMB00201", "", "getPrcpSrchInfo", isHangul );
- }
-
- var srchLength = ds_prcpsrch_prcplist.rowcount;
- var currow = ds_main_prcplist.rowposition;
- if( srchLength > 1) {
- if ( srchLength * grd_row_height < 360 ) {
- div_all.div_srch.grd_prcpsrchlist.position.height = ( srchLength + 1 ) * grd_row_height + 3;
- div_all.div_srch.btn_copy.position.y = ( srchLength + 1 ) * grd_row_height + 8;
- div_all.div_srch.btn_cancel.position.y = ( srchLength + 1 ) * grd_row_height + 8;
- div_all.div_srch.position.height = ( srchLength + 1 ) * grd_row_height + 33;
- } else {
- div_all.div_srch.grd_prcpsrchlist.position.height = 325;
- div_all.div_srch.btn_copy.position.y = 331;
- div_all.div_srch.btn_cancel.position.y = 331;
- div_all.div_srch.position.height = 351;
- }
-
- if ( currow <= 10 ) {
- div_all.div_srch.position.y = 78 + currow * grd_row_height;
- } else if ( currow <= 23 ) {
- div_all.div_srch.position.y = currow * grd_row_height + 29 - div_all.div_srch.position.height;
- } else if ( currow > 23 ){
- div_all.div_srch.position.y = grd_row_height * 23 + 55 - div_all.div_srch.position.height;
- }
-
- div_all.div_srch.visible = true;
- div_all.div_srch.setPrcpSrchListFocus();
- } else if( srchLength == 1) {
- srchRow = lf_addPrcpDetl ( "import" , "ds_prcpsrch_prcplist" , "ds_main_prcplist", 0, currow, "02" );
- if ( srchRow != 0 ) {
- lf_focusMain ( srchRow );
- }
- } else {
- sysf_messageBox ( "검색된 내용이", "I004" );
- div_all.grd_prcplist.showEditor(true);
- }
- }
- }
- function fReqGetPrmsSet() {
- ds_send.clearData();
- ds_send.addRow();
-
- ds_send.setColumn(0, "cond1", ds_prmsprcpsetdetlset.getColumn(0, "setno"));
- ds_send.setColumn(0, "cond2", ds_prmsprcpsetdetlset.getColumn(0, "settypecd"));
-
- var oParam = {};
- oParam.id = "TRMMB00202";
- oParam.service = "prcpbaseapp.PrmsPrcpMngt";
- oParam.method = "reqGetPrmsPrcpDetlSetList";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_main_prcplist=prcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMMB00202";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMB00203") >= 0) {
- dsf_setDefaultVal(ds_main_prcplist, "hosinhosoutflag:-,hosinprcpresncd:00,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,aftcertflag:-,aftcertdrid:-,prcpvalidd:00000000,spynpy1:-,specdrid:-,anticncrdayno:0,druglnkno:0,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
- }
-
- lf_appendChildPrcp ( "ds_reset_prcplist", "ds_main_prcplist", "main" ); //검색라인추가
-
- ds_main_prcplist.rowposition = ds_main_prcplist.rowcount - 1;
- div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "prcpcd"));
- div_all.grd_prcplist.showEditor(true);
-
- //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");
- }
- function cf_TRMMB00202(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
-
- dsf_setDefaultVal(ds_main_prcplist, "hosinhosoutflag:-,hosinprcpresncd:00,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,aftcertflag:-,aftcertdrid:-,prcpvalidd:00000000,spynpy1:-,specdrid:-,anticncrdayno:0,druglnkno:0,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
- }
- function fPrmsPrcpSave() {
- var setno = ds_prmsprcpsetdetlset.getColumn(0,"setno");
- var settypecd = ds_prmsprcpsetdetlset.getColumn(0,"settypecd");
- var setnm = ds_prmsprcpsetdetlset.getColumn(0,"setnm");
-
- var sPrcpcd = "";
- var sStatus = "";
- var sSubjNm = "";
- if(setno == 1){
- alert("최상위 약속처방폴더에는 저장하실 수 없습니다.");
- return;
- }
- if (utlf_isNull(setnm)) {
- alert( "선택된 약속처방폴더가 없습니다.");
- return;
- } else {
- if ( sysf_messageBox(setnm + " 약속처방폴더에 선택하신 처방을", "Q002") == "7" ) {
- return;
- }
- }
- //kimsj 임상연구 - 연구코드와 처방코드, 처방권한 여부 확인(에러체크)
- if ( oOpener.frmf_getScreenID() == "SMMMB08300" ) {
- sSubjNm = oOpener.ds_hidden_subjlist.getColumn(0, "subjno");
- ds_reqdata.clearData();
- ds_reqdata.addRow();
- ds_reqdata.setColumn(0, "subjno", oOpener.ds_main_subjlist.lookup("subjno", sSubjNm, "subjid"));
- var oParam = {};
- oParam.id = "TRMMB08302";
- oParam.service = "prcpbaseapp.PrcpClsMngt";
- oParam.method = "reqGetSubjRgtInfo";
- oParam.inds = "req=ds_reqdata";
- oParam.outds = "ds_druglist=druglist ds_userlist=userlist";
- oParam.async = false;
- oParam.callback = "cf_TRMMB08302";
- tranf_submit(oParam);
-
- if ( utlf_isNull(ds_userlist.lookup("empid", sysf_getUserInfo ("userid"), "empid")) ) {
- sysf_messageBox ( "임상연구의 처방", "E002"); //" 권한이 없습니다."
- return;
- }
-
- for ( var i = 0; i < ds_main_prcplist.rowcount; i++ ) {
- sStatus = ds_main_prcplist.getColumn(i, "status");
- sPrcpcd = ds_main_prcplist.getColumn(i, "prcpcd");
-
- if ( sStatus != "S" && sStatus != "D" && sPrcpcd.substring(0,3) == "XD-" ) {
- if ( utlf_isNull(ds_druglist.lookup("drugcd", sPrcpcd, "drugcd")) ) {
- sysf_messageBox ( "["+sPrcpcd+"] 코드는 해당 임상연구에 부합하는 처방코드가 아닙니다. \n\n삭제 후 다시 저장하시기 바랍니다.", "E");
- return;
- }
- }
- }
- }
- //end kimsj 임상연구
-
- ds_main_prcplist.enableevent = false;
- for ( var i = 0; i < ds_main_prcplist.rowcount; i++ ) {
- var tempcol16 = ds_main_prcplist.getColumn(i, "tempcol16");
- if(!utlf_isNull(tempcol16)) {
- var prcpuseflag = lf_getArrayData (tempcol16, 0, 0, "^", "|");
- if(prcpuseflag == "D" && ds_main_prcplist.getColumn(i, "status") == "U") {
- var prcpnm = ds_main_prcplist.getColumn(i, "prcpnm");
- alert ( prcpnm + "은 수가 또는 검사실 사용종료 되어 수정 할 수 없습니다. 삭제만 가능합니다.");
- ds_main_prcplist.enableevent = true;
- return;
- }
- }
-
- if ( ds_main_prcplist.getColumn(i, "status") == "I" ) {
- ds_main_prcplist.setColumn(i, "prcpkindcd", "20");
- ds_main_prcplist.setColumn(i, "prcppkspec", setno + "|" + settypecd);
- }
-
- var drprcpetc2 = ds_main_prcplist.getColumn(i, "drprcpetc2") ; // 특수주사실 정보가 없으면 저장 시 오류 수정
- if ( utlf_isNull(drprcpetc2) ) {
- ds_main_prcplist.setColumn(i, "drprcpetc2", "-")
- }
- }
-
- dsf_createDs("ds_prcplist_temp");
- ds_prcplist_temp.copyData(ds_main_prcplist);
- ds_prcplist_temp.filter("status != 'S'");
- ds_cond1.copyData(ds_prcplist_temp, true);
- dsf_deleteDs("ds_prcplist_temp");
-
- ds_cond2.clearData();
- ds_cond2.addRow();
- ds_cond2.setColumn(0, "inptflag", "1");
-
- dsf_setDefaultVal(ds_cond1, "hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:N,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,matrallsizespecid:-,rehbprcpcurepartcd:-,tfdtlcd:N,exptmthdfact:-,diagtestconttestcdspec:-,nullcolumncd:-,nullvalexistyn:N,rehbprcpenddd:-,drgacptflag:-");
-
- var oParam = {};
- oParam.id = "TRMMB00203";
- oParam.service = "prcpbaseapp.PrmsPrcpMngt";
- oParam.method = "reqGetPrcpSaveChk";
- oParam.inds = "saveFlagInfo=ds_cond2 savePrcpInfo=ds_cond1";
- oParam.outds = "ds_prcperrlist=prcperrlist";
- oParam.async = false;
- oParam.callback = "cf_TRMMB00203";
- tranf_submit(oParam);
-
- var errCode = arErrorCode.pop("TRMMB00203");
- if(errCode < 0) {
- ds_cond1.clearData();
- ds_cond2.clearData();
-
- ds_main_prcplist.enableevent = true;
- return;
- }
-
- var mon = sysf_getCurrentMonitorNumber();
- var xpt = this.getOwnerFrame().position.x + 100;
- var ypt = this.getOwnerFrame().position.y + 50;
- if ( ds_prcperrlist.rowCount > 0 ) {
- if ( !utlf_isNull(ds_prcperrlist.getColumn(0, "prcpcd"))){
- dsf_createDs("ds_result_prcperrlist_clone");
- ds_result_prcperrlist_clone.copyData(ds_result_prcperrlist);
-
- var objArg = new Object();
- objArg.arg_ds_result_prcperrlist = ds_result_prcperrlist_clone;
- frmf_open("SPMMO00600", "SPMMO00600", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오류팝업
-
- ds_prcperrlist.clearData();
- }
-
- ds_main_prcplist.enableevent = true;
- return;
- }
-
- dsf_setDefaultVal(ds_cond1, "prcpdelivefact:-,hosinhosoutflag:-,hosinprcpresncd:00,clincstdyflag:N,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:N,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,matrallsizespecid:-,rehbprcpcurepartcd:-,tfdtlcd:N,exptmthdfact:-,diagtestconttestcdspec:-,nullcolumncd:-,nullvalexistyn:N,rehbprcpenddd:-,drgacptflag:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
-
- var currow = ds_main_prcplist.rowposition;
-
- var oParam2 = {};
- oParam2.id = "TXMMB00201";
- oParam2.service = "prcpbaseapp.PrmsPrcpMngt";
- oParam2.method = "reqExeSavePrmsPrcpDetlSet";
- oParam2.inds = "savePrmsPrcpInfo=ds_cond1";
- oParam2.outds = "ds_main_prcplist=prcplist";
- oParam2.async = false;
- oParam2.callback = "cf_TXMMB00201";
- tranf_submit(oParam2);
-
- var errCode = arErrorCode.pop("TXMMB00201");
- if(errCode >= 0) {
- dsf_setDefaultVal(ds_main_prcplist, "hosinhosoutflag:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,aftcertflag:-,aftcertdrid:-,prcpvalidd:00000000,spynpy1:-,specdrid:-,anticncrdayno:0,druglnkno:0,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
-
- lf_appendChildPrcp ( "ds_reset_prcplist", "ds_main_prcplist", "main" ); //검색라인추가
- }
-
- ds_cond1.clearData(); //reset (2009.10.28 by JJE)
-
- ds_main_prcplist.enableevent = true;
-
- ds_main_prcplist.selectRow(currow);
- ds_main_prcplist.rowposition = currow;
- div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getCellPos());
- }
- function cf_TRMMB00203(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- function cf_TRMMB08302(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- function cf_TXMMB00201(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /**
- * @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 = ds_prmsprcpsetdetlset.getColumn(0,"setno");
- var settypecd = ds_prmsprcpsetdetlset.getColumn(0,"settypecd");
- var setnm = ds_prmsprcpsetdetlset.getColumn(0,"setnm");
-
- //파일 이름 사용 불가 문자열 처리
- // var specialChars = /[/\~!#$^&*+|:;?"<>']/; // 특수기호 처리 // TF에선 이렇게 해도 되지만 XP에서 이렇게 하면 에러남
- var specialChars = /[\/\~!#$^&*+|:;?"<>']/; // 특수기호 처리 // 이와 같이 '\'을 하나 더 넣어 수정함
- setnm = setnm.split(specialChars).join(" ");
- var sTitle = "약속처방 " + setnm;
-
- ds_send.setColumn(0,"cond1",setno);
- ds_send.setColumn(0,"cond2",settypecd);
- ds_send.setColumn(0,"cond3",sechflag);
- ds_send.setColumn(0,"cond4",settrgtcd);
- ds_send.setColumn(0,"cond5",ioflag);
-
- var oParam = {};
- oParam.id = "TRMMB00202";
- oParam.service = "prcpbaseapp.PrmsPrcpMngt";
- oParam.method = "reqGetPrmsPrcpSetExcelList";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_excel_prcplist=prcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMMB00202";
- tranf_submit(oParam);
-
- dsf_setDefaultVal(ds_excel_prcplist, "hosinhosoutflag:-");
-
- grdf_exportExcel(grid_excel,sTitle,sTitle, true);
-
- }
- /**
- * @desc : 오른쪽 마우스 클릭 삭제
- * @ : 신규일 때는 removeNode
- * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
- * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제 및 D/C 원복
- * @ : D/C 후 삭제는 불가
- * @param :
- * @id : grd_prcplist
- * @event : 오른쪽 마우스 클릭 삭제
- * @return : void
- * @authur : 마정민 2007. 6. 4
- * @---------------------------------------------------
- */
- function fPrmsDeleteRow() {
- var currow = ds_main_prcplist.rowposition;
-
- //타부서의 약속처방을 삭제할 수 없도록 처리. 2008-01-18 오지훈
- var prmsflag = utlf_isNull(oOpener.objects["ds_cond"]) ? "" : oOpener.ds_cond.getColumn(0,"prmsflag");
- if(prmsflag == "T"){
- var orddeptcd = oOpener.ds_cond.getColumn(0,"deptsetcd");
- var orddeptnm = oOpener.cmb_deptset.text;
- if(orddeptcd = sysf_getUserInfo("dutplcecd")){ //
- sysf_messageBox("[" + orddeptnm +"] 약속처방을 삭제", "E001");
- return;
- }
- }
-
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- var cnt=0;
-
- ds_main_prcplist.enableevent = false;
- for (var i = selectedRows.length - 1; i >= 0; i--) {
- var status = ds_main_prcplist.getColumn(selectedRows[i], "status");
-
- if (status == "-") {
- ds_main_prcplist.setColumn(selectedRows[i], "status", "D");
- } else if ( status == "I" ) {
- //신규입력(I)은 removeNode 이다.
- ds_main_prcplist.deleteRow(selectedRows[i]);
- //삭제시 데이터를
- } else if (status == "S") {
- ds_main_prcplist.setColumn(selectedRows[i], "prcpnm", "");
- } else if (status == "D") {
- ds_main_prcplist.setColumn(selectedRows[i], "status", "-");
- } else if (status == "U") {
- ds_main_prcplist.setColumn(selectedRows[i], "status", "D");
- }
- }
-
- ds_main_prcplist.enableevent = true;
-
- div_all.grd_prcplist.setFocus();
- ds_main_prcplist.selectRow(currow);
- ds_main_prcplist.rowposition = currow;
- div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getCellPos());
- }
- /**
- * @desc : fMoveGridRows 그리드 선택행 이동
- * @param : grd_id 그리드 아이디
- * flag 이동방향('UP' or 'DOWN')
- * @return : void
- */
- function fMoveGridRows(btnFlag) {
- var selectedRows = grdf_getSelectedRows(div_all.grd_prcplist);
- var frstRow = 0;
- if( btnFlag == "top" ) frstRow = selectedRows[0];
- else if( btnFlag == "bottom" ) frstRow = selectedRows[selectedRows.length - 1];
- var allRows = ds_main_prcplist.rowcount - 1; //caption, search row
- var addChkRow = 0;
- var cnt = 0;
- var chngYN = 0; //선택된 row인지 체크
- var rowNum = 0;
- var chkNum = 0; //위, 아래 row의 mset여부에 따라 달라지는 +/- row
- var moveCnt = 0;
- var iRow = 0;
- var addNum = 0; //추가해야할 num
- //var pmFlag = 0; //rowNum + - 여부 : 0 or else
- var selInclprcpno = "";
- var chkInclprcpno = "";
-
- var inclprcpnoExistYN = "N";
- var inclprcpnoCVS = "";
- var inclprcpnoItem = "";
-
- var printRow = new Array();
- var printRow2 = new Array();
- var selRows = new Array();
-
- if( selectedRows.length < 1 ) {
- alert("선택한 행이 없습니다.");
- return;
- }
-
- if(btnFlag == "top" && frstRow == 0){
- alert("최상위 행은 위로 이동할 수 없습니다.");
- return;
- }
-
- if(btnFlag == "bottom" && frstRow == ds_main_prcplist.rowcount - 2){
- alert("최하위 행은 아래로 이동할 수 없습니다.");
- return;
- }
-
- ds_main_prcplist.enableevent = false;
-
- dsf_createDs("ds_tmp_moveprcp");
-
- for(var i = selectedRows.length - 1; i >= 0; i--){
- if(ds_main_prcplist.getColumn(selectedRows[i], "inclprcpno") > "0" && ds_main_prcplist.getColumn(selectedRows[i], "prcpsetcd") == "-")
- inclprcpnoCVS = inclprcpnoCVS + ds_main_prcplist.getColumn(selectedRows[i], "inclprcpno") + "|";
- }
- inclprcpnoItem = inclprcpnoCVS.split("|");
-
- //전체 row를 보면서 rowSeq를 설정해 줌 , rowseq순으로 /root/tmp_moveprcp => /root/main/prcp 로 이동
- if( btnFlag == "top" ){
- for( var i = ds_main_prcplist.rowcount - 1; i >= 0; i-- ){
- iRow = i;
- chkNum = 0;
- chngYN = 0;
- addNum = 0;
- //pmFlag = 0;
-
- if( iRow >= 0 ){
- chkInclprcpno = ds_main_prcplist.getColumn(iRow, "inclprcpno");
-
- if( inclprcpnoItem.length - 1 > 0 ){
- for(var k = 0; k < inclprcpnoItem.length - 1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- chngYN = 1;
- }
- }
- }
-
- if( chngYN == 0 && ds_main_prcplist.getSelect(iRow) == true && chkInclprcpno == "0" ) chngYN = 1;
- if( chngYN == 1 ){ //선택된 row이면(선택된모코드의 자코드도 포함)
- addChkRow = iRow - 1;
- selInclprcpno = "";
-
- if( addChkRow >= 0 && addChkRow < ds_main_prcplist.rowcount ){
- for(var j = addChkRow; j >= 0; j--){
- addYN = "N";
- chkInclprcpno = ds_main_prcplist.getColumn(j, "inclprcpno");
-
- if( inclprcpnoItem.length - 1 > 0 ){
- for(var k = 0; k < inclprcpnoItem.length - 1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- //addNum++;
- addYN = "Y";
- }
- }
- }
-
- if( addYN != "Y" && ds_main_prcplist.getSelect(j) == true && chkInclprcpno == "0" ){
- //addNum++;
- addYN = "Y";
- }
-
- if( addYN != "Y" ){
- if( chkInclprcpno != "0" ){ // && chkInclprcpno != inclprcpnoItem[k]
- if( utlf_isNull(selInclprcpno) ) selInclprcpno = ds_main_prcplist.getColumn(j, "inclprcpno");
- if( !utlf_isNull(selInclprcpno) && selInclprcpno == chkInclprcpno && utlf_isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- else{
- if( printRow.length <= 0 ){
- if( utlf_isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- break;
- }
- }
- }
- }
- }
- }
-
- if( chngYN > 0 ){
- rowNum = i - printRow.length;
- moveCnt++;
- selRows[selRows.length] = rowNum;
-
- //임시처방은 순서변경 시 수정모드로 상태를 세팅해줌
- if( ds_main_prcplist.getColumn(i, "status") == "-") ds_main_prcplist.setColumn(i, "status", "U" );
- }else{
- if( printRow.length > 0 ){
- for( var p = 0; p < printRow.length; p++ ){
- if( printRow[p] == i ) addNum = moveCnt;
- }
- }
-
- rowNum = i + addNum;
-
- if( printRow.length == 0 || (printRow.length > 0 && i == printRow[printRow.length-1]) ){
- moveCnt = 0;
- printRow = new Array();
- }
- }
-
- //검색 row는 rowseq 변동 없음
- if( ds_main_prcplist.getColumn(i, "status") == "S" ) rowNum = i;
-
- ds_main_prcplist.addColumn("rowseq", "string");
- ds_main_prcplist.setColumn(i, "rowseq", rowNum);
- printRow2[i-1] = rowNum;
- }
- } else{
- for( var i = 0; i < ds_main_prcplist.rowcount; i++ ){
- iRow = i;
- chkNum = 0;
- chngYN = 0;
- addNum = 0;
- //pmFlag = 0;
-
- if( iRow < ds_main_prcplist.rowcount - 1){
- chkInclprcpno = ds_main_prcplist.getColumn(iRow, "inclprcpno");
-
- if( inclprcpnoItem.length - 1 > 0 ){
- for(var k = 0; k < inclprcpnoItem.length - 1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- chngYN = 1;
- }
- }
- }
-
- if( chngYN == 0 && ds_main_prcplist.getSelect(iRow) == true && chkInclprcpno == "0" ) chngYN = 1;
-
- if( chngYN == 1 ){ //선택된 row이면(선택된모코드의 자코드도 포함)
- addChkRow = iRow + 1;
- selInclprcpno = "";
-
- if( addChkRow >= 0 && addChkRow < ds_main_prcplist.rowcount ){
-
- for(var j = addChkRow; j < allRows; j++){
- addYN = "N";
- chkInclprcpno = ds_main_prcplist.getColumn(j, "inclprcpno");
-
- if( inclprcpnoItem.length - 1 > 0 ){
- for(var k = 0; k < inclprcpnoItem.length - 1; k++){ //copy대상의 mset
- if( chkInclprcpno != "0" && chkInclprcpno == inclprcpnoItem[k] ){
- //addNum++;
- addYN = "Y";
- }
- }
- }
-
- if( addYN != "Y" && ds_main_prcplist.getSelect(j) == true && chkInclprcpno == "0" ){
- //addNum++;
- addYN = "Y";
- }
-
- if( addYN != "Y" ){
- if( chkInclprcpno != "0" ){ // && chkInclprcpno != inclprcpnoItem[k]
- if( utlf_isNull(selInclprcpno) ) selInclprcpno = ds_main_prcplist.getColumn(j, "inclprcpno");
- if( !utlf_isNull(selInclprcpno) && selInclprcpno == chkInclprcpno && utlf_isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- else{
- if( printRow.length <= 0 ){
- if( utlf_isNull(printRow[chkNum]) ) printRow[printRow.length] = j;
- chkNum++;
- }
- break;
- }
- }
- }
- }
- }
- }
-
- if( chngYN > 0 ){
- rowNum = i + printRow.length;
- moveCnt++;
- selRows[selRows.length] = rowNum;
-
- //임시처방은 순서변경 시 수정모드로 상태를 세팅해줌
- if( ds_main_prcplist.getColumn(i, "status") == "-") ds_main_prcplist.setColumn(i, "status", "U" );
- }else{
- if( printRow.length > 0 ){
- for( var p = 0; p < printRow.length; p++ ){
- if( printRow[p] == i ) addNum = moveCnt;
- }
- }
-
- rowNum = i - addNum;
-
- if( printRow.length == 0 || (printRow.length > 0 && i == printRow[printRow.length-1]) ){
- moveCnt = 0;
- printRow = new Array();
- }
- }
-
- //검색 row는 rowseq 변동 없음
- if( ds_main_prcplist.getColumn(i, "status") == "S" ) rowNum = i;
-
- ds_main_prcplist.addColumn("rowseq", "string");
- ds_main_prcplist.setColumn(i, "rowseq", rowNum);
- printRow2[i-1] = rowNum;
- }
- }
-
- //alert( printRow2 );
-
- ds_tmp_moveprcp.copyData(ds_main_prcplist);
-
- //처방 인스턴스로 이동 후 refresh
- ds_main_prcplist.clearData();
-
- for( var i = 0; i < ds_tmp_moveprcp.rowcount; i++ ){
- var findRow = ds_tmp_moveprcp.findRow("rowseq", i);
-
- var row = ds_main_prcplist.addRow();
- ds_main_prcplist.copyRow(row, ds_tmp_moveprcp, findRow);
- }
-
- ds_main_prcplist.deleteColumn("rowseq");
-
- dsf_deleteDs("ds_tmp_moveprcp");
-
- ds_main_prcplist.applyChange();
-
- //이동된 row를 select 처리함
- if( selRows.length > 0 ){
- for(var i = 0; i < selRows.length; i++){
- ds_main_prcplist.selectRow(selRows[i]);
- }
-
- ds_main_prcplist.rowposition = selRows[selRows.length - 1];
- }
-
- ds_main_prcplist.enableevent = true;
- }
- function fAbsnSrch (tempcol16, prcpclscd, drugmastspec) {
- var prcpuseflag = lf_getArrayData (tempcol16, 0, 0, "^", "|" );
-
- var result = "#000000ff"; //기존에 색칠되어 있는 것을 clear 해 준다.
-
- if (prcpuseflag == "D") { // 수가정보에 없는경우
- result = "#ff4848ff";
- } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
- if ( lf_getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) { // 품절여부가 Y 이면 색표시를 해준다.
- result = "#c0c0c0ff";
- }
- }
-
- return result;
- }
- /**
- * @desc : SET폴더 삭제시, 약속처방 데이터 삭제
- * @
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fClrGridData(){
- ds_main_prcplist.clearData();
- }]]></Script>
|