123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/* 1. CP (SMMMP00800_CPGMAIN), 2. 항암프로토콜()
- <function list>
- fGetCurrentPrcpList : CP의 스텝의 진행상태를 참고하여, 처방정보를 조회한다
- fCheckCpPrcp : 그룹처방일 경우, 자코드를 조회하여 추가한다
- fInvalPrcpTret : 미완성처방으로 수동 처리한다
- fBatSaveCpPrtlPrcp : CP의 발행 가능한 처방들에 대해서 일괄저장(및 인증저장)을 한다
- fPrcpDCSave_CP : 항암, CP 미래처방 일괄저장 (MMPHPTCP)
- <호출하는 function list>
- addPrcp
- fPrcpSave
- addPrcpSetValue
- */
- var arErrorCode = new HashArray();
- /* 글로벌 변수 (호출하는 js에서 변수의 출처를 알 수 있도록, "변수명_SMMMO00110"으로 사용)*/
- var prtlFlag_SMMMO00110 = ""; //프로토콜 구분(01:CP, 02:CPG, 10:항암프로토콜,20:임상시험프로토콜)
- var stopSavePrcpYN_SMMMO00110 = "N"; //저장 모듈이 성공하지 못하고, 처방저장오류로 인해 return 된 상태 : Y (fGetCurrentPrcpList()를 통한 CP약속처방 재조회를 막기위함)
- var questionYN_SMMMO00110 = "N"; //실처방 저장 이후, 프로토콜 저장 로직을 수행할 때, "저장하시겠습니까?"라는 메세지가 2번 나오기 때문에, 실처방 저장 완료 후 questionYN의 값을 Y로 설정, 프로토콜 저장때 질문 여부 결정
- var appNo_SMMMO00110 = ""; //프로토콜번호(CPG 적용번호)
- var etclnkspecValue_SMMMO00110 = ""; //항암프로토콜번호 | CP번호
- var prtlprcpstatus_SMMMO00110 = ""; //프로토콜저장상태(보통은 I, 프로토콜처방테이블에 등록된 데이터를 수정, 삭제할 때는 U/D)
- var isstimes_SMMMO00110 = ""; //발행시작회차 | 발행종료회차
- var isssteps_SMMMO00110 = ""; //cp일때 사용하는 발행시작스텝 | 발행종료스텝
- var stepArray_SMMMO00110 = ""; //cp일때 사용하는 스텝 array
- var prcpddArray_SMMMO00110 = "";
- var invalYN_SMMMO00110 = "N";
- var ErrExistYN_SMMMO00110 = "N";
- //var SubmitTF_SMMMO00110 = false; //fPrcpsave()에서의 TXMMP00803/4 저장 성공 여부
- var curSavePrcpFlag_SMMMO00110 = ""; //N:당일, T:미래
- var saveNum_SMMMO00110 = 0; //0:저장전, 1:당일처방저장완료, 2:미래처방저장완료
- /*------fPrcpSave()의 local 변수, 미래처방 저장 후 인식하기 위해 CP에서는 global 변수로 사용-------*/
- var prcpsaveyn_SMMMO00110 = "N";
- var ocrcalcscorcd_SMMMO00110 = ""; //OCR자동출력 수행 여부 (당일+미래저장 후 N->Y)
- var cpSaveKindFlag_SMMMO00110 = ""; //"" "N" "T"
- var cpTmpPrcpSaveYN_SMMMO00110 = "N"; //임시처방을 CP처방으로 대치하는지 여부
- /**
- * @group :
- * @ver
- : 2007.09
- * @by : 전지은
- * @type : function
- * @access : public
- * @desc : CP적용 후, 발행 가능한 처방들에 대해서 일괄저장(및 인증저장)을 한다
- * @param : flag "":입력 / "U":수정
- : prcpflag 처방구분 (2007.09.19 추가됨) ex:0(일반),6(CP),7(항암프로토콜)...
- : prtlFlag_SMMMO00110 (+) 프로토콜처방구분(2007.09.19 추가됨) ex:01,02,10,20
- : rtnpstn (+) return position
- * @return :
- * @---------------------------------------------------
- */
- function fBatSaveCpPrtlPrcp( flag, prcpflag, savePrtlFlag, rtnpstn ){
- var prcpTab = grp_biz.grp_prcp.imp_prcp.div_all.Tab_prcp; // 처방 탭
- var prcpMain = grp_biz.grp_prcp.imp_prcp; // ocs 화면
-
- if( flag == "U" ){
- prcpMain = this;
- }
-
- // 20200401 김현석, 적용일자 세팅, 20200310998
- //var today = utlf_getCurrentDate();
- var today = fGetAppdd();
-
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag"); //model.getValue("/root/patflag/list/prcpgenrflag");
-
- var cpgIoFlag = ds_main_masterinfo_info.getColumn(0, "ioflagcd"); //model.getValue("/root/main/masterinfo/info/ioflagcd");
- var addFlag = "add_After"; //추가처방 저장 시, 당일 및 OCS에서 추가 시 addPrcp호출(X), 환자계획표에서 추가 시 addPrcp호출(O)
- var sCpBatchTime = lf_getHardCDList("Y", 599, 3); //배치 실행 시간 2018.01.25 엄영만
- if(utlf_isNull(sCpBatchTime)) {
- sCpBatchTime = "153000"; // 디폴트 6시 => 153000 으로 변경
- }
-
- //초기값 setting
- prtlFlag_SMMMO00110 = savePrtlFlag;
- questionYN_SMMMO00110 = "N";
- appNo_SMMMO00110 = ds_temp1_getdata.getColumn(0, "cpgappno"); //model.getValue("/root/temp1/getdata/cpgappno");
-
- //ErrExistYN_SMMMO00110 = "N";
- etclnkspecValue_SMMMO00110 = "0" + "|" + appNo_SMMMO00110;
- saveNum_SMMMO00110 = 0;
- cpSaveKindFlag_SMMMO00110 = flag; //cp 저장구분에 따라, '-'를 같이 처리할지 말지...
- var dcNode = null; //DC노드
-
- //적용 직전, 항암프로토콜(안티스) 진행중인지를 체크한다. (2008.09.30) (s)
- ds_send_reqdata.clear(); //model.removeNodeset ( "/root/send/reqdata" );
- // model.makeNode( "/root/send/reqdata" );
- // model.makeNode( "/root/temp1/rsltgetdata" );
-
- dsf_makeValue(ds_send_reqdata, "pid", "string", prcpMain.ds_paminfo.getColumn(0, "pid")); //model.makeValue("/root/send/reqdata/pid", model.getValue("/root/paminfo/list/pid"));
- dsf_makeValue(ds_send_reqdata, "cretno", "string", prcpMain.ds_paminfo.getColumn(0, "cretno")); //model.makeValue("/root/send/reqdata/cretno",model.getValue("/root/paminfo/list/cretno"));
- dsf_makeValue(ds_send_reqdata, "prcpgenrflag", "string", prcpgenrflag); //model.makeValue("/root/send/reqdata/prcpgenrflag",prcpgenrflag);
-
- if(prcpgenrflag == "O") {
- dsf_makeValue(ds_send_reqdata, "orddd", "string", prcpMain.ds_paminfo.getColumn(0, "orddd")); //model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/paminfo/list/orddd"));
- } else {
- dsf_makeValue(ds_send_reqdata, "orddd", "string", prcpMain.ds_paminfo.getColumn(0, "indd")); //model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/paminfo/list/indd"));
- }
-
- dsf_makeValue(ds_send_reqdata, "getanticncryn", "string", "Y"); //model.makeValue("/root/send/reqdata/getanticncryn", "Y"); //항암프로토콜 진행중인지 조회 여부
-
- var oParam = {};
- oParam.id = "TRMMP00807";
- oParam.service = "prcpbaseapp.CpMngt";
- oParam.method = "reqGePattValidity";
- oParam.inds = "req=ds_send_reqdata";
- oParam.outds = "ds_temp1_rsltgetdata=getdata ds_inptdata=inptdata";
- oParam.async = false;
- //oParam.callback = "cf_TRMMP00807";
- tranf_submit(oParam);
- if( !utlf_isNull(ds_temp1_rsltgetdata.getColumn(0, "cpgappno")) ){ // instance1.selectSingleNode("/root/temp1/rsltgetdata/getdata/cpgappno") != null
- if( ds_temp1_rsltgetdata.getColumn(0, "prtlflagcd") == "10" ){ // model.getValue("/root/temp1/rsltgetdata/getdata/prtlflagcd") == "10"
- sysf_messageBox( "항암프로토콜 진행중인 환자이므로 저장", "E001" );
- return false;
- }
- }
- ds_temp1_rsltgetdata.clearData(); //model.removeNodeSet ( "/root/temp1/rsltgetdata/getdata" );
-
- // (e)
- //[저장]버튼 (미완성처방 수정저장 할 경우, 삭제 데이터를 따로 담아간다)
- if( flag == "U" ){
- // var invalprcpObj = frmf_findPopup("SPMMP00200");
- // if( utlf_isNull(invalprcpObj) ) { // CPMAIN 미완성처방
- // invalprcpObj = grp_biz.swt_formatt.incompletion_tab.ivw_invalprcp; // 미완성처방 화면
- // } else { } // 팝업 미완성처방
-
- var invalprcpObj = this;
-
- dsf_createDs("ds_delPrcpList");
- invalprcpObj.ds_main_prcplist.filter("status == 'I' || status == 'U' || status == 'D'"); //instance1.selectNodes("/root/main/prcp/prcplist[status='I' or status='U' or status='D']"); //prcp->prcpsrch 변경 여부..
- ds_delPrcpList.copyData(invalprcpObj.ds_main_prcplist, true);
-
- var delHeader = "dstatus▦prtlprcpno";
- var delData = "";
- var delCnt = 0;
-
- for(var i = 0; i < ds_delPrcpList.rowcount; i++){
- //var node = delPrcpList.item(i);
- var prcpddNode = ds_delPrcpList.getColumn(i, "prcpdd"); //node.selectSingleNode("prcpdd");
- var prtlprcpnoNode = ds_delPrcpList.getColumn(i, "prtlprcpno"); //node.selectSingleNode("prtlprcpno");
- //2008.06.23
- var errtretflagNode = ds_delPrcpList.getColumn(i, "prtlprcpno"); //node.selectSingleNode("errtretflag");
- var valynNode = ds_delPrcpList.getColumn(i, "valyn"); //node.selectSingleNode("valyn");
- var saveStatusNode = ds_delPrcpList.getColumn(i, "status"); //node.selectSingleNode("status");
-
- if( saveStatusNode == "D" ){ //2008.07.04
- var statusText = "22";
- delCnt++;
- }else if( saveStatusNode == "U" ){
- //saveStatusNode = "I"; //model.setValue(saveStatusNode, "I");
- invalprcpObj.ds_main_prcplist.setColumn(i, "status", "I");
- var statusText = "23";
- delCnt++;
- }
-
- //2회 저장부터 prtlprcpnoNode 없어서 오류 발생
- if( !utlf_isNull(prtlprcpnoNode)){
- delData = delData + "▩" + statusText + "▦" + prtlprcpnoNode;
- }
- }
- invalprcpObj.ds_main_prcplist.filter("");
- if( delCnt > 0 ){
- dsf_setCSVToDs("ds_send_delprcplist", delHeader + delData + "▩"); //model.makeValue("/root/send/delprcplist", delHeader + delData + "▩");
- }
- // 확인필요
- invalprcpObj.ds_main_prcplist.filter("status == 'I'");
- dsf_copyDs(ds_main_prcpsrch_prcplist, invalprcpObj.ds_main_prcplist, "replace"); //copyNodeListType( "/root/main/prcpsrch", "/root/main/prcp/prcplist[status='I']", "replace", model, model );
- invalprcpObj.ds_main_prcplist.filter("");
- } else { //[적용]버튼
- var addPrcpNodeList = null;
- if( utlf_isNull(flag) ){
- if( prcpTab.tabindex == 1 ){ // ivw_prcp3.visible == true // 전 처방탭 활성화이면
- dcNode = prcpTab.tp_bfprcp.ds_prcpsrch_prcplist.getCaseCount("chkcol == 'D'"); // ivw_prcp3.instance1.selectSingleNode("/root/prcpsrch/prcplist[chkcol='D']");
- }
- var nodeList = null;
- //CP/CPG별 저장 대상이 다름 처리 (2008.12.06)
- if( cpgIoFlag == "O" ){
- nodeList = ds_main_steppath_info.getCaseCount("stepstat == '10' && prcpdd == '" + today + "' && savestatus == 'I'"); //instance1.selectNodes("/root/main/steppath/info" + "[stepstat = '10' and prcpdd='" + today + "' and savestatus='I']");
- } else {
- if( prcpgenrflag == "O" ){
- nodeList = ds_main_steppath_info.getCaseCount("stepstat == '10' && prcpdd == '" + today + "'"); //instance1.selectNodes("/root/main/steppath/info" + "[stepstat = '10' and prcpdd='" + today + "']");
- }else{
- nodeList = ds_main_steppath_info.getCaseCount("stepstat == '10' && savestatus == 'I'"); //instance1.selectNodes("/root/main/steppath/info" + "[stepstat = '10' and savestatus='I']");
- }
- }
-
- //var DetlNodeList = null;
- if( !utlf_isNull(grp_biz.ivw_detail.url) ) {
- dsf_createDs("ds_DetlNodeList");
- grp_biz.ivw_detail.ds_main_prcplist.filter("status == 'I' || status == 'U' || status == 'D'"); //ivw_detail.instance1.selectNodes("/root/main/prcp/prcplist[status='I' or status='U' or status='D']"); // (OCS에서 추가된) 추가처방
- ds_DetlNodeList.copyData(grp_biz.ivw_detail.ds_main_prcplist, true);
- grp_biz.ivw_detail.ds_main_prcplist.filter("");
- }
- var existPrcpNode = prcpMain.ds_main_prcplist.getCaseCount("status == 'I' || status == 'U' || status == 'D' || status == '-'"); //instance1.selectSingleNode("/root/main/prcp/prcplist[status='I' or status='U' or status='D' or status='-']");
- var existPrcpSrchNode = ds_main_prcpsrch_prcplist.getCaseCount("status == 'I' || status == 'U' || status == 'D'"); //instance1.selectSingleNode("/root/main/prcpsrch/prcplist[status='I' or status='U' or status='D']");
-
-
- // 20200401 김현석, 적용일자 세팅, 20200310998
- //var toDay = parseInt(utlf_getCurrentDate());
- //var nextDay = utlf_getCurrentDate().toDate().getAddDate(1,"D").getDateFormat();
- var toDay = parseInt(fGetAppdd());
- var nextDay = fGetAppdd().toDate().getAddDate(1,"D").getDateFormat();
-
- var initDay = parseInt(ds_init.getColumn(0, "prcpdd")); // model.getValue("/root/init/prcpdd")
- if( grp_biz.btn_detail_tab.tabindex == 0 ){
- //환자계획표 visible : prcp 인스턴스 대상
-
- if( nodeList <= 0 && ds_DetlNodeList.rowcount <= 0 && (dcNode == 0 || dcNode == null) ){
- stopSavePrcpYN_SMMMO00110 = "Y"; //refresh가 안 되도록, 리턴값을 Y
- sysf_messageBox( "저장할", "E013" );
- return false;
- }
-
- grp_biz.ivw_detail.ds_main_prcplist.filter("status != '' && status != 'S'"); //ivw_detail.model.removeNodeset("/root/main/prcp/prcplist[status='' or status='S']");
- dsf_createDs("ds_temp_prcplist");
- ds_temp_prcplist.copyData(grp_biz.ivw_detail.ds_main_prcplist, true);
- grp_biz.ivw_detail.ds_main_prcplist.filter("");
- grp_biz.ivw_detail.ds_main_prcplist.copyData(ds_temp_prcplist);
-
- addFlag = "add_Before";
- } else if ( grp_biz.btn_detail_tab.tabindex == 1 && existPrcpSrchNode == 0 ){ // grp_biz.grp_prcp.imp_prcp.visible == true
- //OCS visible : prcpsrch 인스턴스 대상 (prcpsrch=null이면, 최초저장의 경우임)
- //prcpsrch에 데이터가 없고, prcp에 데이터가 없고, diaginfo에 데이터가 없을 경우, return
- if( (prcpgenrflag != "O" && nodeList <= 0 && existPrcpNode == 0) ||
- (prcpgenrflag == "O" && nodeList <= 0 && existPrcpNode == 0 ) ) {
-
- if( (dcNode == 0 || dcNode == null) && prcpMain.ds_main_diagcdlist.getCaseCount("status != '-' && status != '' && status != 'S'") == 0 ){ // instance1.selectSingleNode("/root/main/diaginfo/diagcdlist[status!='-' and status!='' and status!='S']") == null
- stopSavePrcpYN_SMMMO00110 = "Y";
- sysf_messageBox( "저장할", "E013" );
- return false;
- }
- }
- addFlag = "add_After";
-
- }
- if( nodeList > 0 ){
- //스텝이 가지고 있는 set처방 목록을 조회한다(외래환자는 D0 처방만을 select, D0가 없다면 0건)
- if( frmf_getParameter("SPMMP00200_popupYN") != "Y" && cpTmpPrcpSaveYN_SMMMO00110 != "Y" ){ //약속처방 최초 1회만 조회(2008.10.14), D0처방은 처음부터 존재하므로 또 조회할 필요 없음(2009.02.03)
- fGetCurrentPrcpList("SEL");
- frmf_setParameter("SPMMP00200_popupYN", "Y"); //CP 처방 저장 시, 저장 후 오류있다면 오류팝업 호출(Y이면 팝업호출) (2008.09.30)
- //addPrcpSetValue()에 saveflaginfo 값 설정 부분이 잘못들어가있어 위치 변경.. (2008.12.09)
- //설정 시작 (s)
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "isstimes", "string", isstimes_SMMMO00110); // model.makeValue ( "/root/save/saveflaginfo/isstimes", isstimes_SMMMO00110 ); //발행시작회차, 종료회차
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "isssteps", "string", isssteps_SMMMO00110); // model.makeValue ( "/root/save/saveflaginfo/isssteps", isssteps_SMMMO00110 ); //발행시작스텝, 종료스텝
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "steparray", "string", stepArray_SMMMO00110); // model.makeValue ( "/root/save/saveflaginfo/steparray", stepArray_SMMMO00110 ); //저장하는 스텝 리스트 (|)
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "prcpddarray", "string", prcpddArray_SMMMO00110); // model.makeValue ( "/root/save/saveflaginfo/prcpddarray", prcpddArray_SMMMO00110 ); //저장하는 스텝 처방일 리스트 (|)
- // 설정 끝 (e)
- }
- }
- // ★ 2007.11.14 (만약, 환자계획표 창이 열려있다면, 수정된 노드를 함께 더한다)
- if( grp_biz.btn_detail_tab.tabindex == 0 ){ // grp_biz.ivw_detail.visible == true
- if( ds_DetlNodeList.rowcount > 0 ){
- //init/prcpdd 미래일자로 변경 (ivw_detail의 prcp는 저장 취소가 되어도 삭제되지 않으므로 항상 prcp의 첫번째 prcpdd를 set)
- var org_initprcpdd = ds_init.getColumn(0, "prcpdd"); //model.getValue("/root/init/prcpdd");
- var new_initprcpdd = grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.getColumn(0, "prcpdd"); //ivw_detail.instance1.selectSingleNode("/root/main/prcpsrch/prcplist[1]/prcpdd");
- if( new_initprcpdd != null ){
- if( !utlf_isNull(new_initprcpdd) && org_initprcpdd != new_initprcpdd ){
- prcpMain.ds_init.setColumn(0, "prcpdd", new_initprcpdd); //model.setValue( "/root/init/prcpdd", new_initprcpdd.text );
-
- prcpMain.fPrcpDdCheck();
-
- }
- }
- var delHeader = "dstatus▦prtlprcpno";
- var delData = "";
- var tempFlag = false;
- for(var i = 0; i < ds_DetlNodeList.rowcount; i++){
- //var node = DetlNodeList.item(i);
- var prcpddNode = ds_DetlNodeList.getColumn(i, "prcpdd"); // var prcpddNode = node.selectSingleNode("prcpdd");
- var prtlprcpnoNode = ds_DetlNodeList.getColumn(i, "prtlprcpno"); // var prtlprcpnoNode = node.selectSingleNode("prtlprcpno");
- var statusNode = ds_DetlNodeList.getColumn(i, "status"); // var statusNode = node.selectSingleNode("status");
-
- //새로 추가하는 미래처방은 프로토콜 처방테이블에서 삭제할 대상이 없음
- if( statusNode != "I" ){
- if(statusNode == "D"){
- var statusText = "22"; // row delete(prtlstat 22(삭제)로 update 처리)
-
- }else if(statusNode == "U"){
- //model.setValue(statusNode, "I"); // U -> I (기존 row는 삭제처리)
- if(prcpddNode == today){
- var statusText = "22"; // row status update
- }else{
- var statusText = "23"; // row remove(delete)
- }
- tempFlag = true;
- //model.setValue(statusNode, "I"); // status 값이 "U"이면 모두 "I"로 바꿈
-
- }
- delData = delData + "▩" + statusText + "▦" + prtlprcpnoNode;
- }
- }
-
- // status 값이 "U"이면 모두 "I"로 바꿈
- if( tempFlag == true ) {
- for(var i = 0; i < grp_biz.ivw_detail.ds_main_prcplist.rowcount; i++ ) {
- if( grp_biz.ivw_detail.ds_main_prcplist.getColumn(i, "status") == "U" ) {
- grp_biz.ivw_detail.ds_main_prcplist.setColumn(i, "status", "I");
- }
- }
- }
-
- //case 2. 환자계획표에서 추가/수정한 미래처방을 prcpsrch 에 add
- dsf_setCSVToDs("ds_send_delprcplist", delHeader + delData + "▩"); // model.makeValue("/root/send/delprcplist", delHeader + delData + "▩");
-
- //test(추가처방 저장취소-저장 시 *n건 저장되는 문제로 인한, addPrcp 전 prcp remove 처리)
- //2008.10.31 copy from.prcpsrch-prcpsrch -> prcp-prcp
- // 데이터셋 확인 필요
- grp_biz.ivw_detail.ds_main_prcplist.filter("status == 'I'");
- // 17.05.27, HMH, ds_main_prcplist -> prcpMain.ds_main_prcplist
- prcpMain.ds_main_prcplist.copyData(grp_biz.ivw_detail.ds_main_prcplist, true);
- grp_biz.ivw_detail.ds_main_prcplist.filter("");
- // end after
-
-
- ds_main_prcpsrch_prcplist.filter("status == 'I'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[status='I']");
- for(var i = 0; i < ds_main_prcpsrch_prcplist.rowcount; i++){
- var prtlprcpnoNode = ds_main_prcpsrch_prcplist.getColumn(i, "prtlprcpno"); //node.selectSingleNode("prtlprcpno");
- var prcpnoNode = ds_main_prcpsrch_prcplist.getColumn(i, "prcpno"); //node.selectSingleNode("prcpno");
- var prcphistnoNode = ds_main_prcpsrch_prcplist.getColumn(i, "prcphistno"); //node.selectSingleNode("prcphistno");
- var certprcpnoNode = ds_main_prcpsrch_prcplist.getColumn(i, "certprcpno"); //node.selectSingleNode("certprcpno");
- var prtlstatNode = ds_main_prcpsrch_prcplist.getColumn(i, "prtlstat"); //node.selectSingleNode("prtlstat");
- var timesNode = ds_main_prcpsrch_prcplist.getColumn(i, "times"); //node.selectSingleNode("times");
- var stepnoNode = ds_main_prcpsrch_prcplist.getColumn(i, "stepno"); //node.selectSingleNode("stepno");
- var stepnmNode = ds_main_prcpsrch_prcplist.getColumn(i, "stepnm"); //node.selectSingleNode("stepnm");
-
- if( !utlf_isNull(prtlprcpnoNode) && flag != "U" ) {
- ds_main_prcpsrch_prcplist.setColumn(i, "prtlprcpno", ""); //model.removenode(prtlprcpnoNode);
- } //조건 add(2008.11.28)
-
- if( !utlf_isNull(prcpnoNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "prcpno", ""); }
- if( !utlf_isNull(prcphistnoNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "prcphistno", ""); }
- if( !utlf_isNull(certprcpnoNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "certprcpno", ""); }
- if( !utlf_isNull(prtlstatNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "prtlstat", ""); }
- if( !utlf_isNull(timesNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "times", ""); }
- if( !utlf_isNull(stepnoNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "stepno", ""); }
- if( !utlf_isNull(stepnmNode) ) { ds_main_prcpsrch_prcplist.setColumn(i, "stepnm", ""); }
- }
-
- ds_main_prcpsrch_prcplist.filter("");
- }
- }
- }
- flag = "I";
- }
- // 20190827 김현석, 수술예약번호 세팅
- var operation = sysf_getGlobalVariable("operation");
- var tmpOprsrvno = "";
- if(!utlf_isNull(operation))
- {
- dsf_setCSVToDs ( "ds_tmp_operation", operation);
- tmpOprsrvno = ds_tmp_operation.getColumn(0, "oprsrvno");
- for(var i = 0; i < ds_main_prcpsrch_prcplist.rowcount; i++)
- {
- ds_main_prcpsrch_prcplist.setColumn(i, "oprsrvno", tmpOprsrvno);
- }
- }
-
- trace("\nprcpMain:" + prcpMain.name + ", prcpMain.ds_save_saveflaginfo : " + prcpMain.ds_save_saveflaginfo);
-
- // 처방화면의 데이터셋으로 보임 -> ds_save_saveflaginfo
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "prtlflag", "string", prtlFlag_SMMMO00110 ); //프로토콜구분
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "cpgappno", "string", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "prtlprcpstatus", "string", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
-
- // TF의 saveDiagNode, savePrcpSrchNode, savePrcpNode는 해당노드값이 없더라고 XPATH 경로만의 노드만 있으면 NULL이 아님
- var saveDiagNode = prcpMain.ds_main_diagcdlist.findRowExpr("status != '-' && status != 'S'"); //instance1.selectSingleNode( "/root/main/diaginfo/diagcdlist[status!='-' and status!='S']");
- var savePrcpSrchNode = ds_main_prcpsrch_prcplist.findRowExpr("status == 'I' || status == 'U'"); //instance1.selectSingleNode("/root/main/prcpsrch/prcplist[status='I' or status='U']");
- var delprcplistNode = ds_send_delprcplist; //instance1.selectSingleNode("/root/send/delprcplist");
- var saveinvaliprcplistNode = ds_result_saveinvaliprcplist; //instance1.selectSingleNode("/root/result/saveinvaliprcplist"); 확인 필요
- //var addprcpNode = ds_temp1_addprcp_prcplist; //instance1.selectSingleNode("/root/temp1/addprcp/prcplist"); 확인 필요 데이터셋 껍데기만 만들어 놓음 안쓰는 듯
- //add node
- if( grp_biz.btn_detail_tab.tabindex == 0 ) {
- var savePrcpNode = grp_biz.ivw_detail.ds_main_prcplist.findRowExpr("status == 'I' || ( status == '-' && prcphistcd == 'T')"); // instance1.selectSingleNode("/root/main/prcp/prcplist[status='I' or (status='-' and prcphistcd='T')]");
- } else {
- var savePrcpNode = prcpMain.ds_main_prcplist.findRowExpr("status == 'I' || ( status == '-' && prcphistcd == 'T')"); // instance1.selectSingleNode("/root/main/prcp/prcplist[status='I' or (status='-' and prcphistcd='T')]");
- }
- // temp case 1
- // dsf_createDs("ds_savePrcpNode");
- dsf_createDs("ds_srcDs"); // 15.12.23
- //alert("dcNode : " + dcNode + " savePrcpNode : " + savePrcpNode + " savePrcpSrchNode : " + savePrcpSrchNode + " delprcplistNode.rowcount : " + delprcplistNode.rowcount + " saveinvaliprcplistNode.rowcount : " + saveinvaliprcplistNode.rowcount);
-
- // TF의 savePrcpNode는 selectSingleNode로 노드의 값이 없어도 xpath만 존재하면 null 반환하지 않는다
- // XP에서는 변수에 담을 때 NULL이면 이미 에러가 남
- if( (dcNode == 0 || dcNode == null) && savePrcpNode == -1 && savePrcpSrchNode == -1 && delprcplistNode.rowcount > 0 && saveinvaliprcplistNode.rowcount == 0 ){
-
- // if( dcNode == null && savePrcpNode == null && savePrcpSrchNode == null && delprcplistNode != null && saveinvaliprcplistNode == null ){
- //예외1 : 삭제만 수행한다면, TRMMP00803/TRMMP00804 수행하지 않고, 바로 TXMMP00806만 수행한다 (2008.06.23)
- //인증서를 띄워 인증저장을 해야하지만, 인증 데이터 구조를 만들 수 없음...
- //alert("예외1 ok");
- if( sysf_messageBox ( "", "Q002" ) == 7 ){
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- } else {
- var oParam = {};
- oParam.id = "TXMMP00806";
- oParam.service = "prcpmngtapp.CPPrcpMngt";
- oParam.method = "reqDelPrtlPrcp";
- oParam.inds = "delprcplist=ds_send_delprcplist";
- oParam.async = false;
- oParam.callback = "cf_TXMMP00806";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TXMMP00806") < 0) {
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- } else {
- stopSavePrcpYN_SMMMO00110 = "N";
- return true;
- }
- }
- } else if( dcNode > 0 && savePrcpNode == -1 && savePrcpSrchNode == -1 && delprcplistNode.rowcount == 0 && saveinvaliprcplistNode.rowcount == 0 ){
- //예외2 : DC처방만 저장할 경우, DC처방저장만 수행
- //alert("예외2");
- var prePrcpDD = prcpTab.tp_bfprcp.ds_init.getColumn(0, "bfprcpdd"); //ivw_prcp3.model.getValue("/root/init/bfprcpdd");
- prcpMain.ds_init.setColumn(0, "prcpdd", prePrcpDD); //model.setValue( "/root/init/prcpdd", prePrcpDD );
- ds_srcDs.copyData(prcpMain.ds_main_prcplist);
- prcpMain.fPrcpSave( "0", "0", "ds_srcDs", "N" ); // 확인 필요
-
- if( prcpMain.SubmitTF_SMMMO00110 == false ){
- //당일 처방저장 실패, refresh 안함.
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- }else{
- stopSavePrcpYN_SMMMO00110 = "N";
- return true;
- }
- } else if( (dcNode == 0 || dcNode == null) && savePrcpNode == -1 && savePrcpSrchNode == -1 && delprcplistNode.rowcount == 0 && saveinvaliprcplistNode.rowcount > 0 ){
- //예외3 : 저장 할 처방은 없지만, 미완성 처방만 존재하는 경우
- // alert("예외3");
- if( sysf_messageBox ( "", "Q002" ) == 7 ){
-
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- }else{
- fSetSavrPrcpInfo(); //저장시 필요한 데이터를 임의로 구성함
- var oParam = {};
- oParam.id = "TXMMP00806";
- oParam.service = "prcpmngtapp.CPPrcpMngt";
- oParam.method = "reqDelPrtlPrcp";
- oParam.inds = "delprcplist=ds_send_delprcplist";
- oParam.async = false;
- oParam.callback = "cf_TXMMP00806";
- tranf_submit(oParam);
- }
- }
- if( saveDiagNode != -1 && (dcNode == 0 || dcNode == null) && savePrcpNode == -1 && savePrcpSrchNode == -1 && delprcplistNode.rowcount == 0 && saveinvaliprcplistNode.rowcount == 0 ){
- //예외4 : 저장할 처방데이터는 없고, 진단데이터만 존재할 경우, 진단만 저장(당일처방과 동일한 func 호출). 2008.02.13
- //alert("예외4 ok");
- ds_srcDs.copyData(prcpMain.ds_main_prcplist);
- if( !prcpMain.fPrcpSave( "0", "0", "ds_srcDs", "N" ) ){
- //당일 처방저장 실패, refresh 안함.
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- }else{
- if( prcpMain.SubmitTF_SMMMO00110 == false ){
- //당일 처방저장 실패, refresh 안함.
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- }else{
- stopSavePrcpYN_SMMMO00110 = "N";
- var diagNode = prcpMain.ds_main_diagcdlist.getCaseCount("status == 'I' || status == 'U' || status == 'D'"); //instance1.selectSingleNode( "/root/main/diaginfo/diagcdlist" + "[status = 'I' or status = 'U' or status = 'D']");
- dsf_createDs("ds_diagList");
- prcpMain.ds_main_diagcdlist.filter("status == 'I' || status == 'U' || status == 'D'"); //instance1.selectNodes( "/root/main/diaginfo/diagcdlist" + "[status = 'I' or status = 'U' or status = 'D']");
- ds_diagList.copyData(prcpMain.ds_main_diagcdlist, true);
- if( ds_diagList.rowcount > 0 ){
- for(var i = 0; i < diagList.rowcount; i++){
- //var node = diagList.item(i);
- // 확인 필요
- var statusNode = ds_diagList.getColumn(i, "status"); //node.selectSingleNode("status");
- statusNode = "-"; //model.setValue(statusNode, "-");
- }
- }
- prcpMain.ds_main_diagcdlist.filter("");
- return true;
- }
- }
- }
- // model.removeNodeset("/root/send/srchcond");
- // model.removeNodeset("/root/send/steplist");
- // model.makeNode("/root/send/srchcond");
- // model.makeNode("/root/send/steplist");
- ds_send_srchcond.clearData();
- ds_send_steplist.clearData();
-
- // 인스턴스명 중복을 피하기 위해, reqdata 삭제
- ds_send_savedata.clearData();
- ds_send_reqdata.clearData();
- dsf_deleteColumn(prcpMain.ds_save_saveflaginfo, "cpsaveflag"); //저장 전, cp저장구분 노드 삭제
- //2008.10.07
- if( flag != "U" ){
- //20180417 이돈희 : CP 처방(2일차 이후 부터 첫 시작) 후 당일자 처방시 아래 값이기 때문에 CP 원처방 저장 로직을 타는 현상 발생으로 아래 사항 추가
- // ds_main_steppath_info.getCaseCount("stepstat == '30' && prcpdd == '" + today + "'") < 1
- // 1일차 stepstat = 10, prcpdd 20180417
- // 2일차 stepstat = 30, prcpdd 20180417 ....
- if( ds_main_steppath_info.getCaseCount("stepstat == '30' && prcpdd == '" + today + "'") < 1
- && ds_main_steppath_info.getCaseCount("stepstat == '10' && prcpdd == '" + today + "'") > 0 ){ // instance1.selectSingleNode("/root/main/steppath/info" + "[stepstat = '10' and prcpdd='" + today + "']") != null
- //1. CP 원처방 저장
- //alert("cp 원처방");
-
- var todayPrcpNode = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd == '" + today + "' && status == 'I'"); //instance1.selectSingleNode("/root/main/prcpsrch/prcplist" + "[prcpdd='" + today + "' and status='I']"); //2008.08.30 I 추가
- if(cpTmpPrcpSaveYN_SMMMO00110 == "Y"){ //2009.03.10
- if( todayPrcpNode == 0 ) {
- prcpMain.ds_main_prcplist.filter("status == '-' || status == 'I'");
- ds_main_prcpsrch_prcplist.copyData(prcpMain.ds_main_prcplist, true); //copyNodeListType("/root/main/prcpsrch", "/root/main/prcp/prcplist[status='-' or status='I']", "replace", model, model);
- prcpMain.ds_main_prcplist.filter("");
- }
- var todayPrcpNode = prcpMain.ds_main_prcplist.getCaseCount("status == 'I'"); //instance1.selectSingleNode("/root/main/prcp/prcplist" + "[status='I']");
- }
-
- }else{
- //2. 추가처방 저장 시
- ds_main_prcpsrch_prcplist.clearData(); // 16.05.13
- if( prcpMain.ds_init.getColumn(0, "prcpdd") == today ){
- var todayPrcpNode = prcpMain.ds_main_prcplist.getCaseCount("status == 'I' || staus == '-'"); //instance1.selectSingleNode("/root/main/prcp/prcplist" + "[status='I' or staus='-']"); //2008.08.30 I 추가
- }else{
- var todayPrcpNode = 0;
- }
- }
- } else {
- var todayPrcpNode = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd == '" + today + "' && (status == 'I' || status == '-')"); //instance1.selectSingleNode("/root/main/prcpsrch/prcplist" + "[prcpdd='" + today + "' and (status='I' or status='-')]"); //2008.08.30 I 추가
- }
- //당일------------->
- var appScopMode = ds_main.getColumn(0, "appscopmode"); //model.getValue("/root/main/appscopmode"); //CPG인 경우, CPG스텝/CP스텝 적용 모드를 구분함 (2010.06.26)
- //alert("당일-------------> appScopMode : " + appScopMode); // appScopMode = G CP
- //alert("당일-------------> todayPrcpNode : " + todayPrcpNode);
- if( todayPrcpNode > 0 ){
- /* [미완성1:수술처방(당일)] 처방수술처방은 당일, 미래 상관 없이 무조건 미완성처방으로 저장 */
- dsf_createDs("ds_opNodeList");
- ds_main_prcpsrch_prcplist.filter("status == 'I' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && anstcnfmneedyn != 'N'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[status='I' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and anstcnfmneedyn!='N']");
- ds_opNodeList.copyData(ds_main_prcpsrch_prcplist, true);
- if( ds_opNodeList.rowcount > 0 && (cpgflagcd == "01" || (flag != "U" && cpgflagcd == "02" && appScopMode == "W")) ){
- //var opCSV = getNodeListCSV(opNodeList);
- fInvalPrcpTret(1, flag); //미완성처방(inval)으로 수동으로 변경
- }
- ds_main_prcpsrch_prcplist.filter("");
-
- /* [미완성4:(당일)] 1 or 2 day cp 퇴원예고 없이 진행한 경우*/
- var dschdclrtyn = appf_getPatientInfoDetail("dschdclrtyn");
- if( dschdclrtyn != "Y" ) {
- var dschNodeList = ds_main_prcpsrch_prcplist.getCaseCount("status == 'I' && (prcpkindcd == '60' || prcpkindcd == '70') && prcpdd == '" + today + "'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[status='I' and (prcpkindcd = '60' or prcpkindcd = '70') and prcpdd='" + today + "']");
- if( dschNodeList > 0 && (cpgflagcd == "01" || (flag != "U" && cpgflagcd == "02" && appScopMode == "W")) ){
- fInvalPrcpTret(4, flag); //미완성처방(inval)으로 수동으로 변경
- }
- }
- if( flag != "U" ){
- //20180417 이돈희 : CP 처방(2일차 이후 부터 첫 시작) 후 당일자 처방시 아래 값이기 때문에 CP 원처방 저장 로직을 타는 현상 발생으로 아래 사항 추가
- // ds_main_steppath_info.getCaseCount("stepstat == '30' && prcpdd == '" + today + "'") < 1
- // 1일차 stepstat = 10, prcpdd 20180417
- // 2일차 stepstat = 30, prcpdd 20180417 ....
- if( ds_main_steppath_info.getCaseCount("stepstat == '30' && prcpdd == '" + today + "'") < 1
- && ds_main_steppath_info.getCaseCount("stepstat == '10' && prcpdd == '" + today + "'") > 0
- && utlf_isNull(curSavePrcpFlag_SMMMO00110) ){ //최초 1회만 addPrcp instance1.selectSingleNode("/root/main/steppath/info" + "[stepstat = '10' and prcpdd='" + today + "']") != null
- if( cpTmpPrcpSaveYN_SMMMO00110 != "Y" ){
- curSavePrcpFlag_SMMMO00110 = "N";
- //prcpsrch -> prcp 인스턴스로 복사
- ds_main_prcpsrch_prcplist.filter("status != 'S'");
- ds_tempPrcpsrch.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
-
- dsf_copyDs(prcpMain.ds_tempPrcpsrch, ds_tempPrcpsrch, "replace");
- prcpMain.lf_addPrcp("import", "ds_tempPrcpsrch", "ds_main_prcplist", "Y", "prcpdd", today, grp_biz.swt_formatt.att_tab.grd_formlist, "N", "05");
- //addPrcp("import", "/root/main/prcpsrch/prcplist[status!='S']", "/root/main/prcp", "Y", "prcpdd", today, grd_formlist, "N", "05");
- }
- }
- }
-
- /* addPrcp 이후, prcp 노드리스트가 구성되었다면, 노드리스트를 재정비한다. */
- //2008.10.07
- if( flag != "U" ){
- var prcpSrchNodeList = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd == '" + today + "' && (status == 'I' || status == '-')"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[prcpdd='" + today + "' and (status='I' or status='-')]"); //2008.08.29 추가조건
- }else{
- var prcpSrchNodeList = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd == '" + today + "' && status == 'I'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[prcpdd='" + today + "' and status='I']"); //2008.08.29 추가조건
- }
-
- //prcpMain.fDirecPrcpFlag = true;
-
- var prcpNodeList = prcpMain.ds_main_prcplist;
- var prcpNodeListCnt = prcpNodeList.rowcount; //prcpNodeList.length;
- var groupFlag = "";
- var groupInclprcpno = "0";
- var groupHsctlnkno = "0";
- var groupEtclnkspecNode = "-";
- var groupEtclnkspec = ""; // 15.12.22 추가
- var groupPrcpkindcd = "10";
- var srchRow = 0;
- var valynTxt = "";
-
- // warning 잡기 위해 s
- if( utlf_isNull(prcpNodeList.getColumnInfo("stepno")) ) prcpNodeList.addColumn("stepno", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("stepnm")) ) prcpNodeList.addColumn("stepnm", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("setno")) ) prcpNodeList.addColumn("setno", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("settypecd")) ) prcpNodeList.addColumn("settypecd", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("incpltnresn")) ) prcpNodeList.addColumn("incpltnresn", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("prtlprcpno")) ) prcpNodeList.addColumn("prtlprcpno", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("orddd")) ) prcpNodeList.addColumn("orddd", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("anstcnfmneedyn")) ) prcpNodeList.addColumn("anstcnfmneedyn", "string");
- if( utlf_isNull(prcpNodeList.getColumnInfo("valyn")) ) prcpNodeList.addColumn("valyn", "string");
- // warning 잡기 위해 e
- for(var i = 0; i < prcpNodeListCnt; i++){
- //var node = prcpNodeList.fitem(i);
- var statusNode = prcpNodeList.getColumn(i, "status"); //node.selectSingleNode("status");
- var stepnoNode = prcpNodeList.getColumn(i, "stepno"); //node.selectSingleNode("stepno");
- var stepnmNode = prcpNodeList.getColumn(i, "stepnm"); //node.selectSingleNode("stepnm");
- var setnoNode = prcpNodeList.getColumn(i, "setno"); //node.selectSingleNode("setno");
- var settypecdNode = prcpNodeList.getColumn(i, "settypecd"); //node.selectSingleNode("settypecd");
- var prcpddNode = prcpNodeList.getColumn(i, "prcpdd"); //node.selectSingleNode("prcpdd");
- var incpltnresnNode = prcpNodeList.getColumn(i, "incpltnresn"); //node.selectSingleNode("incpltnresn");
- var prtlprcpnoNode = prcpNodeList.getColumn(i, "prtlprcpno"); //node.selectSingleNode("prtlprcpno");
- var ordddNode = prcpNodeList.getColumn(i, "orddd"); //node.selectSingleNode("orddd");
-
- var groupFlag = prcpNodeList.getColumn(i, "grupsnglflag"); //node.selectSingleNode("grupsnglflag");
- var inclprcpnoNode = prcpNodeList.getColumn(i, "inclprcpno"); //node.selectSingleNode("inclprcpno"); //자코드의 MSET 모코드 연결번호
- var hsctlnknoNode = prcpNodeList.getColumn(i, "hsctlnkno"); //node.selectSingleNode("hsctlnkno"); //자코드의 BMT지시처방 모코드 연결번호
-
- var prcpkindcdNode = prcpNodeList.getColumn(i, "prcpkindcd"); //node.selectSingleNode("prcpkindcd");
- var prcpinptflagNode = prcpNodeList.getColumn(i, "prcpinptflag"); //node.selectSingleNode("prcpinptflag");
- var etclnkspecNode = prcpNodeList.getColumn(i, "etclnkspec"); //node.selectSingleNode("etclnkspec");
- var prcpclscdNode = prcpNodeList.getColumn(i, "prcpclscd"); //node.selectSingleNode("prcpclscd");
- var oprsrvnoNode = prcpNodeList.getColumn(i, "oprsrvno"); //node.selectSingleNode("oprsrvno");
- var anstcnfmneedynNode = prcpNodeList.getColumn(i, "anstcnfmneedyn"); //node.selectSingleNode("anstcnfmneedyn");
- var valynNode = prcpNodeList.getColumn(i, "valyn"); //node.selectSingleNode("valyn");
- if( !utlf_isNull(valynNode) ) var valynTxt = valynNode;
-
- var prcphopeddNode = prcpNodeList.getColumn(i, "prcphopedd"); //node.selectSingleNode("prcphopedd");
- if( !utlf_isNull(prcphopeddNode) ) var prcphopeddTxt = prcphopeddNode;
-
- if( (!utlf_isNull(inclprcpnoNode) || !utlf_isNull(hsctlnknoNode)) && !utlf_isNull(groupFlag) ){
- var ininclprcpnoText = inclprcpnoNode;
- var hsctlnknoText = hsctlnknoNode;
- if( utlf_isNull(ininclprcpnoText) ){
- ininclprcpnoText = "0";
- }
- if( utlf_isNull(hsctlnknoText) ){
- hsctlnknoText = "0";
- }
-
- if( parseInt(ininclprcpnoText) > 0 || parseInt(hsctlnknoText) > 0 ){
- //모코드가 M/J이면서, CP처방이면,
- // BMT지시처방은 hsctlnkno 로 처리
- if( groupFlag == "M" && prcpinptflagNode == "05" ){
- if( prcpclscdNode == "H2" && oprsrvnoNode == "0" && valynTxt != "완성" )break;
- if( dschdclrtyn != "Y" && (prcpkindcdNode == "60" || prcpkindcdNode == "70") )break;
- groupInclprcpno = inclprcpnoNode;
- groupEtclnkspec = etclnkspecNode;
- groupPrcpkindcd = prcpkindcdNode;
- groupHsctlnkno = "0";
-
- } else if( groupFlag == "J" && prcpinptflagNode == "05" ){
- if( prcpclscdNode == "H2" && oprsrvnoNode == "0" && valynTxt != "완성" )break;
- if( dschdclrtyn != "Y" && (prcpkindcdNode == "60" || prcpkindcdNode == "70") )break;
- groupHsctlnkno = hsctlnknoNode;
- groupEtclnkspec = etclnkspecNode;
- groupInclprcpno = "0";
-
- } else if(groupFlag == "S" && groupInclprcpno != "0"){
- //자코드이면, cp처방으로 변환한다.
- if(groupInclprcpno == inclprcpnoNode){
- prcpinptflagNode = "05"; //model.setValue(prcpinptflagNode, "05");
- etclnkspecNode = groupEtclnkspec; //model.setValue(etclnkspecNode, groupEtclnkspec);
- prcpkindcdNode = groupPrcpkindcd; //model.setValue(prcpkindcdNode, groupPrcpkindcd); //처방종류가 사라지므로, 강제 셋팅
- }
- } else if(groupFlag == "S" && groupHsctlnkno != "0"){
- //자코드이면, cp처방으로 변환한다.
- if(groupHsctlnkno == hsctlnknoNode){
- prcpinptflagNode = "05"; //model.setValue(prcpinptflagNode, "05");
- etclnkspecNode = groupEtclnkspec; //model.setValue(etclnkspecNode, groupEtclnkspec);
- }
- }
- }
- }
-
- /* 저장할 prcp 노드리스트를 동일한 노드셋 형테로 만들기 위해, 필요없는 노드들을 삭제한다. */
- if( !utlf_isNull(stepnoNode) ) {
- prcpNodeList.setColumn(i, "stepno", ""); //model.removenode(stepnoNode);
- }
- if( !utlf_isNull(stepnmNode) ) {
- prcpNodeList.setColumn(i, "stepnmNode", ""); //model.removenode(stepnmNode);
- }
- if( !utlf_isNull(anstcnfmneedynNode) ) {
- prcpNodeList.setColumn(i, "anstcnfmneedyn", ""); //model.removenode(anstcnfmneedynNode);
- }
- if( flag != "U" ){
- //다시 삭제 처리 (2008.08.31)
- if( !utlf_isNull(prcpddNode) ){
- prcpNodeList.setColumn(i, "prcpdd", ""); //model.removenode(prcpddNode);
- }
- if( !utlf_isNull(incpltnresnNode) ){
- prcpNodeList.setColumn(i, "incpltnresn", ""); //model.removenode(incpltnresnNode);
- }
- }
- if( !utlf_isNull(ordddNode) ){
- prcpNodeList.setColumn(i, "orddd", ""); //model.removenode(ordddNode);
- }
- if( !utlf_isNull(prtlprcpnoNode) ){
- if(flag != "U") prcpNodeList.setColumn(i, "prtlprcpno", ""); //model.removenode(prtlprcpnoNode); //조건 add(2008.11.28)
- //미완성처방 그리드에서 당일미완성 수정할 경우, cp처방으로 간주되어야 함.
- prcpinptflagNode = "05"; //model.setValue(prcpinptflagNode, "05");
- etclnkspecNode = etclnkspecValue_SMMMO00110; //model.setValue(etclnkspecNode, etclnkspecValue_SMMMO00110);
- }
-
- if( statusNode != "-" && statusNode != "S" ){ //flag == "U" && 2009.03.10 제외
- if( groupFlag == "M" || groupFlag == "J" ){
- var vSrchRow = srchRow;
- groupFlagRow = srchRow;
-
- if( prcpclscdNode == "H2" && oprsrvnoNode == "0" && valynTxt != "완성" )break;
- if( dschdclrtyn != "Y" && (prcpkindcdNode == "60" || prcpkindcdNode == "70") )break;
- if( groupFlag == "M" && inclprcpnoNode != "0" )break;
- if( groupFlag == "J" && hsctlnknoNode != "0" )break;
-
- ds_temp1_addprcp_prcplist.clearData(); // ds_temp1_addprcp_prcplist 확인 필요 model.resetInstanceNode ( "/root/temp1/addprcp" );
- for(var j = prcpNodeListCnt; j > srchRow ; j--){
- var tempPrcp = dsf_getDsCSV(prcpMain.ds_main_prcplist, j);
- prcpMain.fAppendSaveNode( "ds_temp1_addprcp_prcplist", tempPrcp ); //fAppendSaveNode( "/root/temp1/addprcp", "/root/main/prcp/prcplist["+j+"]" );
- prcpMain.ds_main_prcplist.deleteRow(j); //model.removeNodeset("/root/main/prcp/prcplist["+j+"]");
- }
-
- // 확인 필요
- srchRow = fCheckCpPrcp("import", "ds_main_prcplist", "ds_main_prcplist", groupFlagRow, srchRow, "05" ); //fCheckCpPrcp("import", "/root/main/prcp/prcplist", "/root/main/prcp", groupFlagRow, srchRow, "05" );
-
- if( srchRow == 0 ){
- cnt++;
- srchRow = vSrchRow; //복사된 값이 없어 srchrow가 없으면 기존 srchrow로 다시 시작함
- }else{
- groupFlagRow = 0;
- prcpMain.ds_main_prcplist.deleteRow(srchRow); //model.removeNodeset("/root/main/prcp/prcplist[("+srchRow+")]");
-
- //grd_prcplist.refresh();
- //model.recalculate();
-
- --srchRow;
- i = srchRow-1;
-
- var addPrcpNodeList = ds_temp1_addprcp_prcplist; //instance1.selectNodes("/root/temp1/addprcp/prcplist");
- for(var j = addPrcpNodeList.rowcount - 1; j >= 0 ; j--){ // var j = addPrcpNodeList.rowcount; j >= 1 ; j--
- var statusTxt = ds_temp1_addprcp_prcplist.getColumn(j, "status"); //model.getValue("/root/temp1/addprcp/prcplist["+j+"]/status");
- var prcpnmTxt = ds_temp1_addprcp_prcplist.getColumn(j, "prcpcd"); //model.getValue("/root/temp1/addprcp/prcplist["+j+"]/prcpcd");
-
- var tempAddprcp = dsf_getDsCSV(ds_temp1_addprcp_prcplist, j);
- prcpMain.fAppendSaveNode( "ds_main_prcplist", tempAddprcp ); //fAppendSaveNode( "/root/main/prcp", "/root/temp1/addprcp/prcplist["+j+"]" );
- ds_temp1_addprcp_prcplist.deleteRow(j);
- }
- // grd_prcplist.refresh();
- // model.recalculate();
-
- prcpNodeList = prcpMain.ds_main_prcplist; //instance1.selectNodes("/root/main/prcp/prcplist");
- prcpNodeListCnt = prcpNodeList.rowcount; //prcpNodeList.length;
- }
-
- }else{
- groupFlagRow = 0;
- var iPrcpInptFlag = prcpMain.ds_main_prcplist.getColumn(srchRow, "prcpinptflag"); //model.getValue("/root/main/prcp/prcplist[" + srchRow + "]/prcpinptflag");
- prcpMain.lf_addPrcpSetValue("main", "ds_main_prcplist", srchRow, "05"); //addPrcpSetValue( "main", "/root/main/prcp/prcplist" , srchRow, "05");
- //★삭제 미래처방 존재할 경우, status가 I로 return 되기 때문에, 다시 'D"로 셋팅
- if( stsText == "D" ){
- prcpMain.ds_main_prcplist.setColumn(srchRow, "status", "D"); //model.setValue("/root/main/prcp/prcplist[" + srchRow + "]/status", "D");
- }else if( stsText == "-" ){
- prcpMain.ds_main_prcplist.setColumn(srchRow, "status", "-"); //model.setValue("/root/main/prcp/prcplist[" + srchRow + "]/status", "-");
- }
- }
-
- } //end if(flag == "U")
- //s 응급환자 admission, 정규, 외출외박 처방 불가 처리 (2008.12.30)
- if ( prcpkindcdNode == "00" || prcpkindcdNode == "10" || prcpkindcdNode == "50" && prcpgenrflag == "E" ) {
- //messageBox ( "응급환자는 Admission, 정규, 외출외박 처방을 등록하실 수", "I004" );
- prcpkindcdNode = "20"; //model.setValue(prcpkindcdNode, "20"); //추가처방으로 대신 냄.
- frmf_setParameter("CheckPrcpKind01_SMMMO00110", "Y");
- } else if( prcpMain.ds_initsrchprcp_prcpetccnts.getColumn(0, "admiprcpyn") != "Y" && prcpkindcdNode == "00" ){
- //messageBox ( "Admission 처방은 1회만", "I006" );
- prcpkindcdNode = "20"; //model.setValue(prcpkindcdNode, "20"); //추가처방으로 대신 냄.
- frmf_setParameter("CheckPrcpKind02_SMMMO00110", "Y");
- }//e
- //CPG+CP 에서 CP스텝의 prcphopeddNode(처방희망일자)는 해당날짜로 변경해줌 (2010.06.26)
- if( flag != "U" && cpgflagcd == "02" && appScopMode == "W" ){
- //prcpdd or stepno or setno+settypecd
- if(statusNode != "-" && statusNode != "S" && !utlf_isNull(setnoNode) && !utlf_isNUll(settypecdNode) ){ // && settypecdNode.text == "W"
- //model.getValue("/root/main/steppath/info[setno='"+setnoNode.text+"' and settypecd='"+settypecdNode.text+"']/orgprcpdd");
- var idx = ds_main_steppath_info.findRowExpr("setno == '" + setnoNode + "' && settypecd == '" + settypecdNode + "'");
- prcphopeddTxt = ds_main_steppath_info.getColumn(idx, "orgprcpdd");
- }
- }
- //처방 희망일자가 저절로 원복되는 문제 조치 (2010.06.26 JJE)
- prcphopeddNode = prcphopeddTxt; //model.setValue(prcphopeddNode, prcphopeddTxt);
- srchRow++;
- } //end for
-
- //prcpMain.fDirecPrcpFlag = false;
-
- ds_main.setColumn(0, "appscopmode", ""); //model.setValue("/root/main/appscopmode", ""); //최초만 prcphopedd를 default로 설정, 이후에는 변경한 대로 지정되도록 하기위함 (2010.06.26 JJE)
-
- frmf_clearParameter("CheckPrcpKind01_SMMMO00110");
- frmf_clearParameter("CheckPrcpKind02_SMMMO00110");
-
- ds_send_savedata.deleteColumn("master"); //model.removeNodeset("/root/send/savedata/master");
- /* 적용상태(appstat) 및 스텝상태(stepstat) 저장하기 위한 데이터 구성 */
- if( cpgflagcd == "01" && prcpgenrflag == "O"){
- dsf_makeValue(ds_send_srchcond, "srchcond", "string", "C"); //model.makeValue("/root/send/srchcond/srchcond" , "C");
- dsf_makeValue(ds_send_srchcond, "cpgappno", "int", ds_temp1_getdata.getColumn(0, "cpgappno")); //model.makeValue("/root/send/srchcond/cpgappno" , model.getValue("/root/temp1/getdata/cpgappno")); //2008.06.23 풀어줬음
- dsf_makeValue(ds_send_srchcond, "cpgno", "string", ds_main_masterinfo_info.getColumn(0, "cpgno")); //model.makeValue("/root/send/srchcond/cpgno" , model.getValue("/root/main/masterinfo/info/cpgno")); //2008.07.31 추가
- dsf_makeValue(ds_send_srchcond, "cpghistseq", "string", ds_main_masterinfo_info.getColumn(0, "cpghistseq")); //model.makeValue("/root/send/srchcond/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq")); //2008.07.31 추가
- dsf_makeValue(ds_send_srchcond, "cpgflagcd", "string", ds_main_masterinfo_info.getColumn(0, "cpgflagcd")); //model.makeValue("/root/send/srchcond/cpgflagcd" , model.getValue("/root/main/masterinfo/info/cpgflagcd")); //2009.02.16 추가
- if( cpgIoFlag == "O" ){
- //(1). 외래환자이면서 외래CP이면, 처방일이 당일인 스텝만 발행.
- ds_main_steppath_info.filter("prcpdd == '" + today + "' && stepstat == '10'"); //instance1.selectNodes("/root/main/steppath/info" + "[prcpdd='" + today + "' and stepstat='10']");
- dsf_makeValue(ds_send_srchcond, "appstat", "string", "10"); //model.makeValue("/root/send/srchcond/appstat", "10"); //진행중
- }else{
- //(2). 외래환자이면서, D0가 step 이 있다면, D0 스텝의 처방만을 실처방으로 저장하고, cp적용환자리스트에 appstat를 12(입원필요)로 바꾼다
- //외래환자이면서, 입원CP(D0)이면, D0 처방만 발행 가능하므로 D1부터 스텝정보를 저장할 필요가 없음.
- ds_main_steppath_info.filter("times == '0' && stepstat == '10'"); //var nodeList = instance1.selectNodes("/root/main/steppath/info" + "[times='0' and stepstat='10']");
- dsf_makeValue(ds_send_srchcond, "appstat", "string", "12"); //model.makeValue("/root/send/srchcond/appstat", "12"); //입원필요
- }
- ds_send_steplist.copyData(ds_main_steppath_info, true); // var stepCSV = getNodeListCSV(nodeList); // model.makeValue("/root/send/steplist", stepCSV);
- ds_main_steppath_info.filter("");
- }else{
- //(3). 입원 혹은 DSC환자 등의 경우, 하루치 당일 처방만 저장한 경우, 상태값을 바꿔주고, return
- dsf_makeValue(ds_send_srchcond, "srchcond", "string", "C"); //model.makeValue("/root/send/srchcond/srchcond", "C");
- dsf_makeValue(ds_send_srchcond, "cpgappno", "int", ds_temp1_getdata.getColumn(0, "cpgappno")); //model.makeValue("/root/send/srchcond/cpgappno", model.getValue("/root/temp1/getdata/cpgappno")); //2008.06.23 풀어줬음
- dsf_makeValue(ds_send_srchcond, "cpgno", "string", ds_main_masterinfo_info.getColumn(0, "cpgno")); //model.makeValue("/root/send/srchcond/cpgno" , model.getValue("/root/main/masterinfo/info/cpgno")); //2008.07.31 추가
- dsf_makeValue(ds_send_srchcond, "cpghistseq", "string", ds_main_masterinfo_info.getColumn(0, "cpghistseq")); //model.makeValue("/root/send/srchcond/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq")); //2008.07.31 추가
- dsf_makeValue(ds_send_srchcond, "cpgflagcd", "string", ds_main_masterinfo_info.getColumn(0, "cpgflagcd")); //model.makeValue("/root/send/srchcond/cpgflagcd" , model.getValue("/root/main/masterinfo/info/cpgflagcd")); //2009.02.16 추가
-
- if( cpgflagcd == "01" ){ //CP일때의 appstat 변경 기준
- var trgNodeLngth = ds_main_steppath_info.rowcount; //instance1.selectNodes("/root/main/steppath/info").length;
- var lastPrcpDD = ds_main_steppath_info.getColumn(trgNodeLngth-1, "prcpdd"); //model.getValue("/root/main/steppath/info[" + trgNodeLngth + "]/prcpdd");
- var nDate = new Date();
- var nxtDate = nDate.getAddDate(1, "D").getDateFormat();
-
- if( lastPrcpDD == today && ds_main_masterinfo_info.getColumn(0, "fcstinhospdayno") == "1" && parseInt(ds_temp1_getdata.getColumn(0, "appstat")) < 30 ){ // model.getValue("/root/temp1/getdata/appstat")
- //하루짜리 case 추가 (2009.05.25)
- dsf_makeValue(ds_send_srchcond, "appstat", "string", "30"); //model.makeValue("/root/send/srchcond/appstat", "30"); //하루짜리 CP이므로 30
- } else if( (lastPrcpDD == today || (lastPrcpDD == nxtDate && utlf_getCurrentTime() >= sCpBatchTime)) && ds_main_masterinfo_info.getColumn(0, "fcstinhospdayno") != "1" ){ // model.getValue("/root/main/masterinfo/info/fcstinhospdayno")
- //마지막스텝처방발행(30) 으로 보냈으나, 이전 상태 변경 없도록 null 보냄(2009.03.16)
- dsf_makeValue(ds_send_srchcond, "appstat", "string", ""); //model.makeValue("/root/send/srchcond/appstat", "");
- } else {
- //마지막 스텝 처방일 전일 마지막 스텝의 처방이 실처방 발행된 상태에서, 익일 추가처방 저장 시 appstat 30->10으로 바뀌지 않도록 처리 (2008.10.16 JJE)
- if( parseInt(ds_temp1_getdata.getColumn(0, "appstat") ) < 30 ){ // model.getValue("/root/temp1/getdata/appstat")
- dsf_makeValue(ds_send_srchcond, "appstat", "string", "10"); //model.makeValue("/root/send/srchcond/appstat", "10"); //진행중(10) 혹은 마지막스텝처방발행(30)
- }
- }
- }else { //CPG일때의 appstat 변경 기준
- var swimLineNo = ds_main_masterinfo_info.getColumn(0, "swimlineno"); //model.getValue("/root/main/masterinfo/info/swimlineno");
- if( ds_main_masterinfo_info.lookup("swimlineno", swimLineNo, "savestatus") == "I" ){ // model.getValue("/root/main/steppath/info[swimlineno = '" + swimLineNo + "']/savestatus") == "I"
- dsf_makeValue(ds_send_srchcond, "appstat", "string", "30"); //model.makeValue("/root/send/srchcond/appstat", "30"); //진행중(10) 혹은 마지막스텝처방발행(30)
- }else{
- //마지막 스텝 처방일 전일 마지막 스텝의 처방이 실처방 발행된 상태에서, 익일 추가처방 저장 시 appstat 30->10으로 바뀌지 않도록 처리 (2008.10.16 JJE)
- if( parseInt(ds_temp1_getdata.getColumn(0, "appstat")) < 30 ){
- dsf_makeValue(ds_send_srchcond, "appstat", "string", "10"); //model.makeValue("/root/send/srchcond/appstat", "10"); //진행중(10) 혹은 마지막스텝처방발행(30)
- }
- }
- }
- ds_main_steppath_info.filter("stepstat == '10' && (prcpdd == '" + today + "' && savestatus != '-')"); //var nodeList = instance1.selectNodes("/root/main/steppath/info" + "[stepstat='10' and (prcpdd='" + today + "' and savestatus!='-')]"); //2009.06.23 or->and
- ds_send_steplist.copyData(ds_main_steppath_info, true);
- ds_main_steppath_info.filter("");
- sysf_trace("+++++++++++++++++++++++++++++++++++++++++++++++++")
- sysf_trace("cms tt =>>>>>>>>" + ds_send_steplist.saveXML())
-
- //var stepCSV = getNodeListCSV(nodeList);
- //model.makeValue("/root/send/steplist", stepCSV);
-
- }
-
- /* 1. PRCPDD가 오늘 날짜인 처방들은 따로 실처방 저장을 먼저 한다 (처방 로직을 그대로 따른다) */
- prcpMain.SubmitTF_SMMMO00110 = false; //TXMMP00803, TXMMP00804 수행 결과 true 이면 SubmitTF_SMMMO00110 = true
- if( flag != "U" ){
- //20180417 이돈희 : CP 처방(2일차 이후 부터 첫 시작) 후 당일자 처방시 아래 값이기 때문에 CP 원처방 저장 로직을 타는 현상 발생으로
- // ds_main_steppath_info.getCaseCount("stepstat == '30' && prcpdd == '" + today + "'") < 1 추가
- // 1일차 stepstat = 10, prcpdd 20180417
- // 2일차 stepstat = 30, prcpdd 20180417 ....
- if( ds_main_steppath_info.getCaseCount("stepstat == '30' && prcpdd == '" + today + "'") < 1
- && ds_main_steppath_info.getCaseCount("stepstat == '10' && prcpdd == '" + today + "'") > 0 ){
- var prcpSrchNodeList = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd == '" + today + "' && status == 'I' || status == '-'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[prcpdd='" + today + "' and status='I' or status='-']"); //2008.08.29 추가조건
- }else{
- var prcpSrchNodeList = prcpMain.ds_main_prcplist.getCaseCount("status == 'I' || status == '-'"); //instance1.selectSingleNode("/root/main/prcp/prcplist" + "[status='I' or status='-']");
- }
- }else{
- var prcpSrchNodeList = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd == '" + today + "' && status == 'I'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[prcpdd='" + today + "' and status='I']"); //2008.08.29 추가조건
- }
-
- dsf_createDs("ds_saveSrc");
- if(prcpSrchNodeList > 0){
- if( flag != "U" ){
- //ds_saveSrc.copyData(prcpMain.ds_main_prcplist); //"/root/main/prcp/prcplist";
- }else{
- //"/root/main/prcp/prcplist[status='I']";
- prcpMain.ds_main_prcplist.filter("status == 'I'");
- //ds_saveSrc.copyData(prcpMain.ds_main_prcplist, true);
- //prcpMain.ds_main_prcplist.filter("");
- }
- //alert("fPrcpSave 1 prcpMain.SubmitTF_SMMMO00110 : " + prcpMain.SubmitTF_SMMMO00110 );
- prcpMain.dsf_createDs("ds_send_steplist");
- prcpMain.ds_send_steplist.copyData(ds_send_steplist);
-
- //prcpMain.fPrcpSave( "0", "0", "ds_saveSrc" );
- prcpMain.fPrcpSave( "0", "0", "ds_main_prcplist" );
- prcpMain.ds_main_prcplist.filter("");
- if( prcpMain.SubmitTF_SMMMO00110 == false ){
- //당일 처방저장 실패, refresh 안함.
- stopSavePrcpYN_SMMMO00110 = "Y";
- return;
-
- }else{
- //당일처방저장 성공, 미래처방이 존재한다면, 처방저장을 계속 진행
- var diagNode = prcpMain.ds_main_diagcdlist.getCaseCount("status == 'I' || status == 'U' status = 'D'"); //instance1.selectSingleNode( "/root/main/diaginfo/diagcdlist" + "[status = 'I' or status = 'U' or status = 'D']");
- //var diagList = instance1.selectNodes ( "/root/main/diaginfo/diagcdlist" + "[status = 'I' or status = 'U' or status = 'D']");
- dsf_createDs("ds_diagList");
- prcpMain.ds_main_diagcdlist.filter("status == 'I' || status == 'U' || status == 'D'");
- ds_diagList.copyData(prcpMain.ds_main_diagcdlist, true);
-
- if( ds_diagList > 0 ){
- //진단 코드가 있으면, 저장 falg를 '-'로 바꾼다 (제대로 돌아간다면, 이 부분이 필요가 없는지 확인)
- for(var i = ds_diagList.rowcount - 1; i >= 0; i--){ // 인덱스 확인 필요
- //var node = diagList.item(i);
- var statusNode = ds_diagList.getColumn(i, "status"); //node.selectSingleNode("status");
- if(statusNode == "D"){
- prcpMain.ds_main_diagcdlist.deleteRow(i+1); //model.removeNodeset("/root/main/diaginfo/diagcdlist["+(i+1)+"]");
- }else{
- statusNode = "-"; //model.setValue(statusNode, "-");
- }
- }
- //grd_diaglist.refresh();
- }
- prcpMain.ds_main_diagcdlist.filter("");
-
- //alert(diagNode.xml);
- questionYN_SMMMO00110 = "Y";
- stopSavePrcpYN_SMMMO00110 = "N";
- var nodeInvalPrcpList = ds_main_invalprcplist.rowcount; //model.instance1.selectSingleNode("/root/main/invalprcplist/prcplist");
- if(nodeInvalPrcpList > 0){ //2008.09.30
- ErrExistYN_SMMMO00110 = "Y"; //당일 처방 저장 중 미완성처방이 있다면, Y
- }
-
- prcpMain.ds_main_prcplist.filter("status != 'S'");
- for(var i=prcpMain.ds_main_prcplist.rowcount-1; i>=0; i-- ) {
- prcpMain.ds_main_prcplist.deleteRow(i);
- }
- prcpMain.ds_main_prcplist.filter("");
-
- ds_result_saveinvaliprcplist.clearData(); // model.removeNodeset("/root/result/saveinvaliprcplist");
- ds_send_saveinvaliprcplist.clearData(); // model.removeNodeset("/root/send/saveinvaliprcplist");
- ds_result_errprcplist.clearData(); // model.removeNodeset("/root/result/errprcplist");
- ds_result_prcperrlist.clearData(); // model.removeNodeset("/root/result/prcperrlist"); //처방오류(팝업) 데이터 삭제
- ds_send_errprcplist.clearData(); // model.removeNodeset("/root/send/errprcplist");
-
- // 인스턴스명 중복을 피하기 위해, reqdata 삭제(2008.08.28)
- ds_send_reqdata.clearData(); // model.removeNodeset ( "/root/send/reqdata" );
- ds_send_savedata.clearData(); // model.removeNodeset ( "/root/send/savedata" );
-
- // 원위치
- if( cpgIoFlag == "O" || prcpgenrflag == "O" || ds_main_prcpsrch_prcplist.getCaseCount("prcpdd > '" + today + "'") <= 0 ){ // instance1.selectSingleNode("/root/main/prcpsrch/prcplist[prcpdd >'" + today + "']") == null
- ds_main_prcpsrch_prcplist.clearData(); //model.removeNodeset("/root/main/prcpsrch/prcplist");
- return;
- }
- } //처방저장 END if
- }else{
- //예외5: 당일 처방 모두가, 미완성 처방일 경우..
- //alert("예외5, 오늘날짜 처방 중 미완성만 존재함");
- fSetSavrPrcpInfo(); //저장시 필요한 데이터를 임의로 구성함
-
- // TF는 steplist값이 없어도 컬럼정보 넘김, XP는 값이 없으면 컬럼정보도 안넘김
- if( ds_send_steplist.rowcount == 0 ) {
- dsf_copyColInfo(ds_send_steplist, ds_steplist_columninfo);
- ds_send_steplist.addRow();
- ds_send_steplist.setColumn(0, "prcpdd", null);
- }
-
- // 이거 확인 필요 smmmo00100.xjs 카피
- dsf_setFixVal(ds_result_savedrprcplist, "instcd:"+sysf_getUserInfo("dutplceinstcd"));
- var oParam = {};
- oParam.id = "TXMMP00803";
- oParam.service = "prcpmngtapp.CPPrcpMngt";
- oParam.method = "reqExeSavePrtcPrcp";
- oParam.inds = "saveflaginfo=ds_send_cond1 savedrprcplist=ds_result_savedrprcplist saveexecprcplist=ds_result_saveexecprcplist savediaglist=ds_result_savediaglist savepamlist=ds_result_savepamlist "
- + "signprcplist=ds_result_signprcplist signdiaglist=ds_result_signdiaglist savematrprcplist=ds_result_savematrprcplist dschflaginfo=ds_result_dschflaginfo dschpamlist=ds_result_dschpamlist "
- + "dschdrprcplist=ds_result_dschdrprcplist dschexecprcplist=ds_result_dschexecprcplist dschmatrprcplist=ds_result_dschmatrprcplist savePrcpInfo=ds_send_cond14 saveinvaliprcplist=ds_result_saveinvaliprcplist "
- + "req=ds_send_srchcond steplist=ds_send_steplist delprcplist=ds_send_delprcplist dessprcplist=ds_send_dessprcplist pessprcplist=ds_send_pessprcplist";
- oParam.outds = "ds_main_invalprcplist=prcplist";
- oParam.async = false;
- oParam.callback = "cf_TXMMP00803";
- tranf_submit(oParam);
- }
- //당일자 처방이 있을 때, END
- } else{
- stopSavePrcpYN_SMMMO00110 = "N";
- }
- if(stopSavePrcpYN_SMMMO00110 == "Y") return;
-
- if ( prcpMain.SubmitTF_SMMMO00110 == "Y" ){
- saveNum_SMMMO00110 = 1;
- }
- /* ------------------------------------------------------------------------------------------------------------------------------------------------------------- */
-
- //미래------------->
- //(프로토콜 테이블 저장 + 프로토콜처방 인증저장)
- /* [미완성2:수술처방] 처방수술처방은 당일, 미래 상관 없이 무조건 미완성처방으로 저장 */
- ds_main_prcpsrch_prcplist.filter("");
- var opNodeList = ds_main_prcpsrch_prcplist.getCaseCount("status == 'I' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && anstcnfmneedyn != 'N'"); //instance1.selectNodes("/root/main/prcpsrch/prcplist[status='I' and prcpclscd='H2' and oprsrvno='0' and prcpdd>'" + today + "' and anstcnfmneedyn!='N']");
- if( opNodeList > 0 ){
- //var opCSV = getNodeListCSV(opNodeList);
-
- fInvalPrcpTret(2, flag); //미완성처방(inval)으로 수동으로 변경
- }
- if( flag != "U" ){
- ds_main_prcpsrch_prcplist.filter("");
- var dayCntList = ds_main_prcpsrch_prcplist.getCaseCount("prcpdd >'" + today + "'");
- utlf_addLog("dayCntList : " + dayCntList );
- if(dayCntList > 0){
- for(var i = ds_main_prcpsrch_prcplist.rowcount - 1; i >= 0; i--) {
- if( ds_main_prcpsrch_prcplist.getColumn(i, "prcpdd") <= today ) {
- ds_main_prcpsrch_prcplist.deleteRow(i);
- }
- }
-
- curSavePrcpFlag_SMMMO00110 = "T";
- ds_main_prcpsrch_prcplist.filter("prcpdd >'" + today + "'");
- prcpMain.ds_tempPrcpsrch.copyData(ds_main_prcpsrch_prcplist, true);
- ds_tempPrcpsrch.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
- utlf_addLog(ds_main_prcpsrch_prcplist.saveXML());
- utlf_addLog(prcpMain.ds_tempPrcpsrch.saveXML());
-
- prcpMain.lf_addPrcp("import", "ds_tempPrcpsrch", "ds_main_prcplist", "Y", "status", "I", prcpMain.div_all.grd_prcplist, "N", "05");
- }
- }
- //
- // dsf_createDs("ds_nodelist");
- //
- // // TF에서는 CPMAIN 화면의 노드에 수정/추가된 정보를 담았다가 저장함
- // if( grp_biz.btn_detail_tab.tabindex == 0 ) { // 환자계획표탭에서 적용
- // var prcpds = grp_biz.ivw_detail.objects["ds_main_prcpsrch_prcplist"];
- // } else { // ocs탭에서 적용
- // var prcpds = prcpMain.objects["ds_main_prcplist"];
- // }
- var prcpds = prcpMain.objects["ds_main_prcplist"];
- var srchRow = 0; // XP는 0번터 로우 시작
- var groupFlagRow = 0;
- var cnt = 0;
- var valynTxt = "";
-
- if(prcpds.rowcount > 0){
- for(var i = 0; i < prcpds.rowcount; i++){
-
- var prcpClsCd = prcpds.getColumnSet(i, "prcpclscd");
- var prcpKindCd = prcpds.getColumnSet(i, "prcpkindcd");
- var drugmthdspccd = prcpds.getColumnSet(i, "drugmthdspccd");
- var prcpnm = prcpds.getColumnSet(i, "prcpnm");
- var drugmastspec = prcpds.getColumnSet(i, "drugmastspec") + "^";
- var statusNode = prcpds.getColumnSet(i, "status");
- var stsText = statusNode[0].value;
- var etclnkspecNode = prcpds.getColumnSet(i, "etclnkspec");
- var stepnoNode = prcpds.getColumnSet(i, "stepno");
- var stepnmNode = prcpds.getColumnSet(i, "stepnm");
- var prcpddNode = prcpds.getColumnSet(i, "prcpdd");
- var prcphopeddNode = prcpds.getColumnSet(i, "prcphopedd");
- var rsrvddNode = prcpds.getColumnSet(i, "rsrvdd");
- var oprsrvno = prcpds.getColumnSet(i, "oprsrvno");
- var dschdclrtyn = appf_getPatientInfoDetail("dschdclrtyn");
- var valynNode = prcpds.getColumnSet(i, "valyn");
- if( valynNode != null ) valynTxt = valynNode[0].value;
- var anstcnfmneedynNode = prcpds.getColumnSet(i, "anstcnfmneedyn");
- if( anstcnfmneedynNode != null ) {anstcnfmneedynNode[0].value = "";}
-
- if( prcpddNode != null && !utlf_isNull(prcpddNode[0].value) ) {
- utlf_addLog(">>>>>>>>>>>>>>>>>>> prcpddNode[0].value : " + prcpddNode[0].value);
- prcpMain.ds_init.setColumn(0, "prcpdd", prcpddNode[0].value);
-
- if( prcphopeddNode != null ){
- prcphopeddNode[0].value = prcpddNode[0].value;
- }
- }
- var groupFlag = prcpds.getColumnSet(i, "grupsnglflag");
- var inclprcpnoNode = prcpds.getColumnSet(i, "inclprcpno");
- var hsctlnknoNode = prcpds.getColumnSet(i, "hsctlnkno");
- var prcpInptFlag = "05"; //cp처방
- var tempPrcp = ""; // 15.12.28
- if( flag == "U" && stsText != "-" ){
- if( groupFlag[0].value == "M" || groupFlag[0].value == "J" ){
- var vSrchRow = srchRow;
- groupFlagRow = srchRow;
-
- if( prcpClsCd[0].value=="H2" && oprsrvno[0].value=="0" && valynTxt!="완성" )break;
- if( dschdclrtyn != "Y" && (prcpKindCd[0].value == "60" || prcpKindCd[0].value == "70") )break;
- if( groupFlag[0].value == "M" && inclprcpnoNode[0].value != "0" )break;
- if( groupFlag[0].value == "J" && hsctlnknoNode[0].value != "0" )break;
-
- ds_temp1_addprcp_prcplist.clearData();
-
- for(var j = prcpNodeListCnt-1; j > srchRow; j--){
- tempPrcp = dsf_getDsCSV(prcpMain.ds_main_prcplist, j);
- prcpMain.fAppendSaveNode( "ds_temp1_addprcp_prcplist", tempPrcp ); //fAppendSaveNode( "/root/temp1/addprcp", "/root/main/prcp/prcplist["+j+"]" );
- prcpMain.ds_main_prcplist.deleteRow(j); //model.removeNodeset("/root/main/prcp/prcplist["+j+"]");
- }
-
- srchRow = fCheckCpPrcp("import", "prcpMain.ds_main_prcplist", "ds_main_prcplist", groupFlagRow, srchRow, "05" ); // 확인 필요
-
- if( srchRow == 0 ){
- cnt++;
- srchRow = vSrchRow; //복사된 값이 없어 srchrow가 없으면 기존 srchrow로 다시 시작함
- }else{
- groupFlagRow = 0;
- prcpds.deleteRow(srchRow);
-
- --srchRow;
- i = srchRow - 1;
-
- var addPrcpNodeList = ds_temp1_addprcp_prcplist.rowcount -1;
- for(var j = addPrcpNodeList; j >= 0 ; j--){ // j >= 1
- var statusTxt = ds_temp1_addprcp_prcplist.getColumn(j, "status");
- var prcpnmTxt = ds_temp1_addprcp_prcplist.getColumn(j, "prcpcd");
- tempPrcp = dsf_getDsCSV(ds_temp1_addprcp_prcplist, j);
- prcpMain.fAppendSaveNode( "ds_main_prcplist", tempPrcp );
- ds_temp1_addprcp_prcplist.deleteRow(j);
- }
-
- prcpNodeList = prcpMain.ds_main_prcplist; //instance1.selectNodes("/root/main/prcp/prcplist"); //다시..
- prcpNodeListCnt = prcpNodeList.rowcount;
- }
- }else{
- groupFlagRow = 0;
- var iPrcpInptFlag = prcpds.getColumn(srchRow, "prcpinptflag");
- prcpMain.lf_addPrcpSetValue("import", "ds_main_prcplist", srchRow, "05");
- if( stsText == "D" ){
- prcpds.setColumn(srchRow, "status", "D");
- }else if( stsText == "-" ){
- prcpds.setColumn(srchRow, "status", "-");
- }
- }
- } else if( flag != "U" && grp_biz.btn_detail_tab.tabindex == 0 && stsText == "I" ){
- /* after (환자계획표에서 '추가' 시 미리 addprcp 수행되었으므로 addprcpSetValue() 수행안되어도 됨. 2중 호출. but, '수정' 시는 addprcpSetValue가 수행되어야 함. 2008.12.02) */
- //환자계획표에서 추가/수정한 처방 저장하는 경우, addPrcpSetValue() prcppkspec, pampkspec 등 구성을 위해 필요 (2008.10.31 JJE)
- //ds_main_prcplist.copyData(grp_biz.ivw_detail.ds_main_prcpsrch_prcplist); // cp 메인화면의 데이터셋으로 복사
- if(ds_DetlNodeList.rowcount > 0 && curSavePrcpFlag_SMMMO00110 != "T") {
- //dsf_setDefaultVal(ds_main_prcplist, "all"); // 추가
-
- // 허만호 추가 START
- var oOpener = this.getOwnerFrame().form;
- if( oOpener.name == "SMMMP00800" ) {
-
- /* prcpMain.lf_addPrcpSetValue 가 아닌 lf_addPrcpSetValue로 호출하기 위해서 필요한 데이터셋을 CP화면에 생성
- ds_main_prcplist를 환자계획표에 데이터셋을 사용하기 위해 */
- dsf_createDs("ds_initsrch_prcpetccnts");
- dsf_createDs("ds_initsrch_escopedirecprcpcd");
- dsf_createDs("ds_specdrinfo");
- ds_initsrch_escopedirecprcpcd.copyData(grp_biz.grp_prcp.imp_prcp.ds_initsrch_escopedirecprcpcd); // 처방화면 데이터셋
- ds_initsrch_prcpetccnts.copyData(grp_biz.grp_prcp.imp_prcp.ds_initsrch_prcpetccnts); // 처방화면 데이터셋
- ds_specdrinfo.copyData(grp_biz.grp_prcp.imp_prcp.ds_specdrinfo);
- }
- // 허만호 추가 END
- prcpMain.lf_addPrcpSetValue("import", "ds_main_prcplist", srchRow, "05"); //addPrcpSetValue( "import", "/root/main/prcp/prcplist" , srchRow, "05");
- grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.copyData(prcpMain.ds_main_prcplist);
- }
- } //add (after end)
- srchRow++;
- }
- }
- //실제 저장 시작
- prcpMain.fClearSaveInstance();
- prcpMain.SubmitTF_SMMMO00110 = false;
- /* after */
- ds_main_steppath_info.filter("");
- var iPrcpddidx = ds_main_steppath_info.findRowExpr("prcpdd > '"+today+"' && stepstat == '10'"); //instance1.selectSingleNode("/root/main/steppath/info[prcpdd > '"+today+"' and stepstat = '10']/prcpdd");
- var iPrcpddNode = ds_main_steppath_info.getColumn(iPrcpddidx, "prcpdd");
- //alert("prcpMain.visible : " + prcpMain.visible + " iPrcpddNode : " + iPrcpddNode + " flag : " + flag + " prcpdd : " + parseInt(ds_init.getColumn(0, "prcpdd")) + " today : " + parseInt(today) + " casecount : " + prcpMain.ds_main_prcplist.getCaseCount("status == 'I' || status == '-'"));
- if( prcpMain.visible == true && utlf_isNull(iPrcpddNode) && flag != "U" && parseInt(prcpMain.ds_init.getColumn(0, "prcpdd")) > parseInt(today) && prcpMain.ds_main_prcplist.getCaseCount("status == 'I' || status == '-'") > 0 ){ // instance1.selectSingleNode("/root/main/prcp/prcplist[status='I' or status='-']") != null
- trace("미래일자이지만 처방 저장 프로세스를 따라가는 경우...");
-
- //(1) 미래일자이지만 처방 저장 프로세스를 따라가는 경우...!
- prtlFlag_SMMMO00110 = "-";
- prcpMain.fPrcpSave( "0", "0", "ds_main_prcplist" );
- prtlFlag_SMMMO00110 = ds_main_masterinfo_info.getColumn(0, "cpgflagcd"); //model.getValue("/root/main/masterinfo/info/cpgflagcd");
-
- if( prcpMain.SubmitTF_SMMMO00110 == false ){
- //당일 처방저장 실패, refresh 안함.
- stopSavePrcpYN_SMMMO00110 = "Y";
- return;
- }else{
- //당일처방저장 성공, 미래처방이 존재한다면, 처방저장을 계속 진행
- questionYN_SMMMO00110 = "Y";
- stopSavePrcpYN_SMMMO00110 = "N";
-
- // model.removeNodeset("/root/main/prcp/prcplist[status != 'S']"); 확인 필요
- for(var i = 0; i < prcpMain.ds_main_prcplist.rowcount; i++ ) {
- var delRow = prcpMain.ds_main_prcplist.findRowExpr("status != 'S'");
- prcpMain.ds_main_prcplist.deleteRow(delRow);
- }
- ds_result_saveinvaliprcplist.clearData(); // model.removeNodeset("/root/result/saveinvaliprcplist");
- ds_send_saveinvaliprcplist.clearData(); // model.removeNodeset("/root/send/saveinvaliprcplist");
- ds_result_errprcplist.clearData(); // model.removeNodeset("/root/result/errprcplist");
- ds_result_prcperrlist.clearData(); // model.removeNodeset("/root/result/prcperrlist"); //처방오류(팝업) 데이터 삭제
- ds_send_errprcplist.clearData(); // model.removeNodeset("/root/send/errprcplist");
- ds_send_reqdata.clearData(); //model.removeNodeset ( "/root/send/reqdata" );
- ds_send_savedata.clearData(); //model.removeNodeset ( "/root/send/savedata" );
- return;
- } //처방저장 END if
- } else {
- //(2) cp 미래처방 저장
- //alert("fPrcpDCSave_CP s");
-
- trace("fPrcpDCSave_CP ==== " + prcpMain.name);
- if( fPrcpDCSave_CP(prcpflag, rtnpstn, flag) != false ){
- questionYN_SMMMO00110 = "N";
- stopSavePrcpYN_SMMMO00110 = "N";
-
- //JJE 2008.10.09 (s)
- //model.removeNodeset("/root/main/prcpsrch/prcplist[prcpdd >'" + today + "']");
- for(var i = 0; i < grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.rowcount; i++) {
- var delRow = grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.findRowExpr("prcpdd >'" + today + "'");
- grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
-
- if( flag != "U" && !utlf_isNull(grp_biz.ivw_detail.url) ){
- //ivw_detail.model.removeNodeset("/root/main/prcpsrch/prcplist[prcpdd >'" + today + "']");
- for(var i = 0; i < grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.rowcount; i++) {
- var delRow = grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.findRowExpr("prcpdd >'" + today + "'");
- grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- //(e)
- }else{
- //model.removeNodeset("/root/main/prcpsrch/prcplist[prcpdd >'" + today + "']");
- trace("777//////>>")
- for(var i = 0; i < grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.rowcount; i++) {
- var delRow = grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.findRowExpr("prcpdd >'" + today + "'");
- grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
-
- if( flag != "U" && !utlf_isNull(grp_biz.ivw_detail.url) ){
- trace("8888//////>>")
- //ivw_detail.model.removeNodeset("/root/main/prcpsrch/prcplist[prcpdd >'" + today + "']");
- for(var i = 0; i < grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.rowcount; i++) {
- var delRow = grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.findRowExpr("prcpdd >'" + today + "'");
- grp_biz.ivw_detail.ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- return false;
- } //프로토콜처방 저장 end
-
- } //add(after end)
- ds_init.setColumn(0, "prcpdd", today); //model.setValue( "/root/init/prcpdd", today );
-
- }
- /**
- * @group :
- * @ver
- : 2007.09
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 미완성 처방으로 수동 처리한다
- * @param : errflagcd 1:수술(당일), 2:수술(미래), 4:퇴원예고(당일)
- : opCSV 미완성 대상 처방 Nodeset
- : flag
- * @return :
- *
- * [미완성3:퇴원예고처방(미래)] 미래처방 중 퇴원예고처방 존재 시, 미완성처방으로 저장
- * var opNodeList = instance1.selectNodes("/root/main/prcp/prcplist[status!='S' and prcpkindcd = '70' ]");
- * @---------------------------------------------------
- */
- function fInvalPrcpTret(errflagcd, sFlag){
- var appScopMode = ds_main.getColumn(0, "appscopmode"); //model.getValue("/root/main/appscopmode"); //CPG인 경우, CPG스텝/CP스텝 적용 모드를 구분함 (2010.06.26)
- if( cpgflagcd == "02" && appScopMode != "W" ) return; //CPG+CP의 CP처방은 미완성 처리 되도록
-
- // 20200401 김현석, 적용일자 세팅, 20200310998
- //var today = utlf_getCurrentDate();
- var today = fGetAppdd();
-
- var copyYN = "N"; //2008.10.14 (저장취소-저장 반복적으로 수행 시 *n건 발생되어 저장되는 것 막음)
-
- if( ds_patflag.getColumn(0, "prcpgenrflag") == "O" ){ // model.getValue("/root/patflag/list/prcpgenrflag") == "O"
- var pOrdDD = ds_paminfo.getColumn(0, "orddd"); //model.getValue("/root/paminfo/list/orddd");
- }else{
- var pOrdDD = ds_paminfo.getColumn(0, "indd"); //model.getValue("/root/paminfo/list/indd");
- }
-
- if( utlf_isNull(ds_result_errprcplist) ){ // instance1.selectSingleNode("/root/send/errprcplist") == null
- dsf_createDs("ds_result_errprcplist"); //model.makeNode("/root/send/errprcplist");
- }
- if( utlf_isNull(ds_result_saveinvaliprcplist) ){
- dsf_createDs("ds_result_saveinvaliprcplist"); //model.makeNode("/root/result");
- }
-
- //수술처방 존재 시, 수술예약정보 조회
- if ( errflagcd != 4 ){
- dsf_createDs("ds_send_pamdata");
- dsf_makeValue(ds_send_pamdata, "pid", "string", ds_paminfo.getColumn(0, "pid")); // model.makeValue( "/root/send/pamdata/pid" , model.getValue("/root/paminfo/list/pid") );
- dsf_makeValue(ds_send_pamdata, "orddd", "string", pOrdDD); // model.makeValue( "/root/send/pamdata/orddd" , pOrdDD );
-
- var rsrvOpCnt = 0;
-
- if( utlf_isNull(ds_temp1_oplist_info) || ds_temp1_oplist_info.rowcount < 1 ){
- var oParam = {};
- oParam.id = "TRMMP02801";
- oParam.service = "prcpmngtapp.CPPrcpMngt";
- oParam.method = "reqGetOPList";
- oParam.inds = "req=ds_send_pamdata";
- oParam.outds = "ds_temp1_oplist_info=info";
- oParam.async = false;
- //oParam.callback = "cf_TRMMP02801";
- tranf_submit(oParam);
- }
- ds_send_pamdata.clearData(); //model.removeNodeset("/root/send/pamdata");
-
- rsrvOpCnt = ds_temp1_oplist_info.rowcount; //instance1.selectNodes("/root/temp1/oplist/info").length;
- if(rsrvOpCnt >= 1){
- var opNodeList = new Dataset;
- var filterCnt = 0;
- if( errflagcd == 1 ){
- //instance1.selectNodes("/root/main/prcpsrch/prcplist[status='I' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and anstcnfmneedyn!='N']");
- filterCnt = ds_main_prcpsrch_prcplist.getCaseCount("status == 'I' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && anstcnfmneedyn != 'N'");
- }else if( errflagcd == 2 ){
- //var opNodeList = instance1.selectNodes("/root/main/prcpsrch/prcplist[status='I' and prcpclscd='H2' and oprsrvno='0' and prcpdd>'" + today + "' and anstcnfmneedyn!='N']");
- filterCnt = ds_main_prcpsrch_prcplist.getCaseCount("status == 'I' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && anstcnfmneedyn != 'N'");
- }
-
- for( var r = 0; r < rsrvOpCnt; r++ ){
- var rsrvDD = ds_temp1_oplist_info.getColumn(r, "opschedd"); //model.getValue("/root/temp1/oplist/info["+(r+1)+"]/opschedd"); //예정일
- var rsrvNo = ds_temp1_oplist_info.getColumn(r, "oprsrvno"); //model.getValue("/root/temp1/oplist/info["+(r+1)+"]/oprsrvno"); //예약번호
- var opfromtmcd = ds_temp1_oplist_info.getColumn(r, "opfromtmcd"); //model.getValue("/root/main/oplist/info["+(r+1)+"]/opfromtmcd");
- var erYN = "N"; //응급구분
- var nighYN = "N"; //야간구분
- if( ds_temp1_oplist_info.getColumn(r, "opflagcd") == "2" ){ // model.getValue("/root/temp1/oplist/info["+(r+1)+"]/opflagcd") == "2"
- erYN = "Y";
- }
- if( eval(opfromtmcd) > 170000 ) {
- nighYN = "Y";
- }
-
- var sameopscheddCnt = ds_temp1_oplist_info.getCaseCount("opcnfmdd == '" + rsrvDD + "'"); //instance1.selectNodes("/root/temp1/oplist/info[opcnfmdd='"+rsrvDD+"']").length; //opcnfmdd:확정일,opschedd:예정일
- if(sameopscheddCnt == 1){ //동일한 예정일을 갖는 수술예약이 1건일 경우만 처방에 예약번호 셋팅(2건 이상이면, skip)
-
- if( errflagcd == 1 ){
- ds_main_prcpsrch_prcplist.filter("status == 'I' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && anstcnfmneedyn != 'N'");
- }else if( errflagcd == 2 ){
- ds_main_prcpsrch_prcplist.filter("status == 'I' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && anstcnfmneedyn != 'N'");
- }
-
- for(var i = 0; i < ds_main_prcpsrch_prcplist.rowcount; i++){
- if( ds_main_prcpsrch_prcplist.getColumn(i, "prcpdd") == rsrvDD ){ // node.selectSingleNode("prcpdd").text == rsrvDD
- ds_main_prcpsrch_prcplist.setColumn(i, "oprsrvno", rsrvNo); // model.setValue(node.selectSingleNode("oprsrvno") , rsrvNo);
- ds_main_prcpsrch_prcplist.setColumn(i, "erprcpflag", erYN); // model.setValue(node.selectSingleNode("erprcpflag") , erYN);
- ds_main_prcpsrch_prcplist.setColumn(i, "nigtprcpflag", nighYN); // model.setValue(node.selectSingleNode("nigtprcpflag"), nighYN);
- }
- }
- ds_main_prcpsrch_prcplist.filter("");
-
- }
- } //end for
-
- } //end if(rsrvOpCnt >= 1)
- } //end if(errflagcd != 4)
-
- var opNodeList = new Dataset; //var opNodeList = null;
- if( errflagcd == 1 ){
- if( sFlag == "U" ){
- //opNodeList = instance1.selectNodes("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and valyn!='완성' and anstcnfmneedyn!='N']");
- ds_main_prcpsrch_prcplist.filter("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && valyn != '완성' && anstcnfmneedyn != 'N'");
- opNodeList.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
- }else{
- //opNodeList = instance1.selectNodes("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and anstcnfmneedyn!='N']");
- ds_main_prcpsrch_prcplist.filter("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd =='" + today + "' && anstcnfmneedyn != 'N'");
- opNodeList.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
- }
- }else if( errflagcd == 2 ){
- if( sFlag == "U" ){
- //opNodeList = instance1.selectNodes("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd>'" + today + "' and valyn!='완성' and anstcnfmneedyn!='N']");
- ds_main_prcpsrch_prcplist.filter("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && valyn != '완성' && anstcnfmneedyn != 'N'");
- opNodeList.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
- }else{
- //opNodeList = instance1.selectNodes("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd>'" + today + "' and anstcnfmneedyn!='N']");
- ds_main_prcpsrch_prcplist.filter("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && anstcnfmneedyn != 'N'");
- opNodeList.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
- }
- }else if (errflagcd == 4 ){
- //opNodeList = instance1.selectNodes("/root/main/prcpsrch/prcplist[status!='S' and (prcpkindcd = '60' or prcpkindcd = '70') and prcpdd='" + today + "']");
- ds_main_prcpsrch_prcplist.filter("status != 'S' && (prcpkindcd == '60' || prcpkindcd == '70') && prcpdd == '" + today + "'");
- opNodeList.copyData(ds_main_prcpsrch_prcplist, true);
- ds_main_prcpsrch_prcplist.filter("");
- }
- ds_result_saveinvaliprcplist.clearData();
- if(opNodeList.rowcount > 0){
- ds_result_saveinvaliprcplist.copyData(opNodeList);
- }else{
- return;
- }
- for(var i = 0; i < ds_result_saveinvaliprcplist.rowcount; i++){
- ds_result_saveinvaliprcplist.setColumn(i, "stepno", ""); //model.removenode("/root/result/saveinvaliprcplist[" + i + "]/stepno");
- dsf_makeValue(ds_result_saveinvaliprcplist, "orddd", "string", pOrdDD, i); //model.makeValue("/root/result/saveinvaliprcplist[" + i + "]/orddd", pOrdDD);
- if( errflagcd == 1 || errflagcd == 2 ){
- //2008.11.27 --아래 1줄 주석처리
- dsf_makeValue(ds_result_saveinvaliprcplist, "incpltnresn", "string", "수술예약번호가 입력되지 않았습니다.", i); // model.makeValue("/root/result/saveinvaliprcplist[" + i + "]/incpltnresn", "수술예약번호가 입력되지 않았습니다.");
- dsf_makeValue(ds_result_saveinvaliprcplist, "errtretflag", "string", "8", i); // model.makeValue("/root/result/saveinvaliprcplist[" + i + "]/errtretflag", "8");
- ErrExistYN_SMMMO00110 = "Y"; //저장 후 미완성처방 존재유무 파악 -> 미완성팝업 오픈 기준
-
- }else if( errflagcd == 4 ){
-
- dsf_makeValue(ds_result_saveinvaliprcplist, "incpltnresn", "string", "퇴원예고를 하지 않으셨습니다.", i); // model.makeValue("/root/result/saveinvaliprcplist[" + i + "]/incpltnresn", "퇴원예고를 하지 않으셨습니다.");
- dsf_makeValue(ds_result_saveinvaliprcplist, "errtretflag", "string", "10", i); // model.makeValue("/root/result/saveinvaliprcplist[" + i + "]/errtretflag", "10");
- ErrExistYN_SMMMO00110 = "Y"; //저장 후 미완성처방 존재유무 파악 -> 미완성팝업 오픈 기준
- }
-
- // 오라클 null error 로 인한 default값 설정
- dsf_makeValue(ds_result_saveinvaliprcplist, "prcphopedd", "string", ds_result_saveinvaliprcplist.getColumn(i, "prcpdd"), i); //model.makeValue ("/root/result/saveinvaliprcplist[" + i + "]/prcphopedd" , model.getValue("/root/result/saveinvaliprcplist[" + i + "]/prcpdd") );
-
- //CPG+CP 에서 CP스텝의 prcphopeddNode(처방희망일자)는 해당날짜로 변경해줌 (2010.06.26)
- if( cpgflagcd == "02" && appScopMode == "W" ){
- var iSetno = ds_result_saveinvaliprcplist.getColumn(i, "setno"); //model.getValue("/root/result/saveinvaliprcplist[" + i + "]/setno");
- var iSettypecd = ds_result_saveinvaliprcplist.getColumn(i, "settypecd"); //model.getValue("/root/result/saveinvaliprcplist[" + i + "]/settypecd");
- var findRow = ds_main_steppath_info.findRowExpr("setno == '" + iSetno +"' && settypecd == '" + iSettypecd + "'");
- var iOrgprcpdd = ds_main_steppath_info.getColumn(findRow, "orgprcpdd"); //model.getValue("/root/main/steppath/info[setno='"+iSetno+"' and settypecd='"+iSettypecd+"']/orgprcpdd");
- if( !utlf_isNull(iSetno) && !utlf_isNull(iSettypecd) && !utlf_isNull(iOrgprcpdd) ){
- dsf_makeValue(ds_result_saveinvaliprcplist, "prcphopedd", "string", iOrgprcpdd, i); //model.makeValue("/root/result/saveinvaliprcplist[" + i + "]/prcphopedd" , iOrgprcpdd );
- }
- }
-
- dsf_makeValue(ds_result_saveinvaliprcplist, "offictourhealexamflag", "string", "N", i); // model.makeValue ("/root/result/saveinvaliprcplist[" + i + "]/offictourhealexamflag" , "N");
- dsf_makeValue(ds_result_saveinvaliprcplist, "prcpauthflag", "string", "0", i);
- dsf_makeValue(ds_result_saveinvaliprcplist, "prcpsignflag", "string", "2", i);
- dsf_makeValue(ds_result_saveinvaliprcplist, "cvrtbforddd", "string", "00000000", i);
- dsf_makeValue(ds_result_saveinvaliprcplist, "cvrtbfprcpgenrflag", "string", "-", i);
- }
-
- ds_send_errprcplist.copyData(ds_result_saveinvaliprcplist);//에러가 존재하여 미완성처방으로 저장될 데이터
-
- // TXMMP00803,4 에 saveinvaliprcplist 의 하부노드 명은 inval_ 으로 시작하므로, 노드 명을 바꾼다 (2008.02.12)
- // for( var i=0; i<saveInvaliPrcpList.length; i++ ){
- // var node = model.instance1.selectSingleNode( "/root/result/saveinvaliprcplist["+(i+1)+"]" );
- // var childNodeList = node.childNodes;
- // for( var k=0; k<childNodeList.length; k++ ){
- // var iNode = childNodeList.item(k);
- // iNode.nodeName = "inval_" + iNode.nodeName;
- // }
- // }
-
- dsf_copyDs(ds_main_invalprcplist, ds_result_saveinvaliprcplist, "after"); // copyNodeListType("/root/main/invalprcplist", "/root/result/saveinvaliprcplist", "after", model, model);
- dsf_copyDs(ds_send_saveinvaliprcplist, ds_result_saveinvaliprcplist, "after"); // copyNodeListType("/root/send", "/root/result/saveinvaliprcplist", "after", model, model);
- ds_result_saveinvaliprcplist.clearData(); //model.removeNodeset("/root/result/saveinvaliprcplist");
- if( errflagcd == 1 ){
- if( sFlag == "U" ){
- //model.removeNodeset("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and valyn!='완성' and anstcnfmneedyn!='N']");
-
- // var delRow = ds_main_prcpsrch_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && valyn != '완성' && anstcnfmneedyn != 'N'");
- // ds_main_prcpsrch_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_main_prcpsrch_prcplist.enableevent = false;
- ds_main_prcpsrch_prcplist.updatecontrol = false;
- for(var delRow = ds_main_prcpsrch_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_main_prcpsrch_prcplist.getColumn(delRow, "status") != "S" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpdd") == today &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "valyn") != "완성" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "valyn") != "N"
- )
- {
- ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- ds_main_prcpsrch_prcplist.updatecontrol = true;
- ds_main_prcpsrch_prcplist.enableevent = true;
-
- }else{
- //model.removeNodeset("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and anstcnfmneedyn!='N']");
- // var delRow = ds_main_prcpsrch_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && anstcnfmneedyn != 'N'");
- // ds_main_prcpsrch_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_main_prcpsrch_prcplist.enableevent = false;
- ds_main_prcpsrch_prcplist.updatecontrol = false;
- for(var delRow = ds_main_prcpsrch_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_main_prcpsrch_prcplist.getColumn(delRow, "status") != "S" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpdd") == today &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "anstcnfmneedyn") != "N"
- )
- {
- ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- ds_main_prcpsrch_prcplist.updatecontrol = true;
- ds_main_prcpsrch_prcplist.enableevent = true;
-
- }
- //model.removeNodeset("/root/temp1/addprcp/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and anstcnfmneedyn!='N']");
- // var delRow = ds_temp1_addprcp_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && anstcnfmneedyn != 'N'");
- // ds_temp1_addprcp_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_temp1_addprcp_prcplist.enableevent = false;
- ds_temp1_addprcp_prcplist.updatecontrol = false;
- for(var delRow = ds_temp1_addprcp_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_temp1_addprcp_prcplist.getColumn(delRow, "status") != "S" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "prcpdd") == today &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "anstcnfmneedyn") != "N"
- )
- {
- ds_temp1_addprcp_prcplist.deleteRow(delRow);
- }
- }
- ds_temp1_addprcp_prcplist.updatecontrol = true;
- ds_temp1_addprcp_prcplist.enableevent = true;
- }else if( errflagcd == 2 ){
- if( sFlag == "U" ){
- //model.removeNodeset("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd>'" + today + "' and valyn!='완성' and anstcnfmneedyn!='N']");
- // var delRow = ds_main_prcpsrch_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && valyn != '완성' && anstcnfmneedyn != 'N'");
- // ds_main_prcpsrch_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_main_prcpsrch_prcplist.enableevent = false;
- ds_main_prcpsrch_prcplist.updatecontrol = false;
- for(var delRow = ds_main_prcpsrch_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_main_prcpsrch_prcplist.getColumn(delRow, "status") != "S" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpdd") > today &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "valyn") != "완성" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "anstcnfmneedyn") != "N"
- )
- {
- ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- ds_main_prcpsrch_prcplist.updatecontrol = true;
- ds_main_prcpsrch_prcplist.enableevent = true;
- }else{
- //model.removeNodeset("/root/main/prcpsrch/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd>'" + today + "' and anstcnfmneedyn!='N']");
- // var delRow = ds_main_prcpsrch_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd > '" + today + "' && valyn != '완성' && anstcnfmneedyn != 'N'");
- // ds_main_prcpsrch_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_main_prcpsrch_prcplist.enableevent = false;
- ds_main_prcpsrch_prcplist.updatecontrol = false;
- for(var delRow = ds_main_prcpsrch_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_main_prcpsrch_prcplist.getColumn(delRow, "status") != "S" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpdd") > today &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "valyn") != "완성" &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "anstcnfmneedyn") != "N"
- )
- {
- ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- ds_main_prcpsrch_prcplist.updatecontrol = true;
- ds_main_prcpsrch_prcplist.enableevent = true;
- }
- //model.removeNodeset("/root/temp1/addprcp/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "' and anstcnfmneedyn!='N']");
- // var delRow = ds_temp1_addprcp_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "' && anstcnfmneedyn != 'N'");
- // ds_temp1_addprcp_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_temp1_addprcp_prcplist.enableevent = false;
- ds_temp1_addprcp_prcplist.updatecontrol = false;
- for(var delRow = ds_temp1_addprcp_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_temp1_addprcp_prcplist.getColumn(delRow, "status") != "S" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "prcpdd") == today &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "anstcnfmneedyn") != "N"
- )
- {
- ds_temp1_addprcp_prcplist.deleteRow(delRow);
- }
- }
- ds_temp1_addprcp_prcplist.updatecontrol = true;
- ds_temp1_addprcp_prcplist.enableevent = true;
-
- }
- else if( errflagcd == 4 ){
- // model.removeNodeset("/root/main/prcpsrch/prcplist[status!='S' and (prcpkindcd = '60' or prcpkindcd = '70') and prcpdd='" + today + "']");
- // model.removeNodeset("/root/temp1/addprcp/prcplist[status!='S' and prcpclscd='H2' and oprsrvno='0' and prcpdd='" + today + "']");
-
- //var delRow = ds_main_prcpsrch_prcplist.findRowExpr("status != 'S' && (prcpkindcd == '60' || prcpkindcd == '70') && prcpdd == '" + today + "'");
- //ds_main_prcpsrch_prcplist.deleteRow(delRow);
- //delRow = ds_temp1_addprcp_prcplist.findRowExpr("status != 'S' && prcpclscd == 'H2' && oprsrvno == '0' && prcpdd == '" + today + "'");
- //ds_temp1_addprcp_prcplist.deleteRow(delRow);
- // 위 주석 아래와 같이 변경 2016-07-13 추민수
- ds_main_prcpsrch_prcplist.enableevent = false;
- ds_main_prcpsrch_prcplist.updatecontrol = false;
- for(var delRow = ds_main_prcpsrch_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_main_prcpsrch_prcplist.getColumn(delRow, "status") != "S" &&
- (ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpkindcd") == "60" ||
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpkindcd") == "70") &&
- ds_main_prcpsrch_prcplist.getColumn(delRow, "prcpdd") == today
- )
- {
- ds_main_prcpsrch_prcplist.deleteRow(delRow);
- }
- }
- ds_main_prcpsrch_prcplist.updatecontrol = true;
- ds_main_prcpsrch_prcplist.enableevent = true;
-
-
-
- ds_temp1_addprcp_prcplist.enableevent = false;
- ds_temp1_addprcp_prcplist.updatecontrol = false;
- for(var delRow = ds_temp1_addprcp_prcplist.rowcount - 1; delRow >= 0; delRow--)
- {
- if( ds_temp1_addprcp_prcplist.getColumn(delRow, "status") != "S" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "prcpclscd") == "H2" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "oprsrvno") == "0" &&
- ds_temp1_addprcp_prcplist.getColumn(delRow, "prcpdd") == today
- )
- {
- ds_temp1_addprcp_prcplist.deleteRow(delRow);
- }
- }
- ds_temp1_addprcp_prcplist.updatecontrol = true;
- ds_temp1_addprcp_prcplist.enableevent = true;
-
- //sysf_trace("cms2222===== " + ds_result_saveinvaliprcplist.saveXML())
- }
- }
- /**
- * @group :
- * @ver
- : 2008.01
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 그룹처방일 경우, 자코드를 조회하여 추가한다
- * @param :
- * @return : true / false
- * @---------------------------------------------------
- */
- function fCheckCpPrcp( objFlag, strSrc, strDest, sendRow, srchRow, prcpInptFlag, grupSrc, direcSrc ) {
- var ds_src = this.objects[strSrc];
- var ds_dest = this.objects[strDest];
-
- var prcpClsCd = ds_src.getColumn(sendRow, "prcpclscd"); //model.getValue( strSrc + "[" + sendRow + "]/prcpclscd" );
- var prcpKindCd = ds_src.getColumn(sendRow, "prcpkindcd"); //model.getValue( strSrc + "[" + sendRow + "]/prcpkindcd" );
- var drugmthdspccd = ds_src.getColumn(sendRow, "drugmthdspccd"); //model.getValue( strSrc + "[" + sendRow + "]/drugmthdspccd" );
- var prcpnm = ds_src.getColumn(sendRow, "prcpnm"); //model.getValue( strSrc + "[" + sendRow + "]/prcpnm" );
- var drugmastspec = ds_src.getColumn(sendRow, "drugmastspec") + "^"; //model.getValue( strSrc + "[" + sendRow + "]/drugmastspec" ) + "^";
-
- var usge = ds_root.getColumn(0, "usge"); //model.getValue ( "/root/usge" );
- var cpchk = ds_root.getColumn(0, "cp"); //model.getValue ( "/root/cp" );
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag"); //model.getValue ( "/root/patflag/list/prcpgenrflag" );
-
- //추가
- var prcpInptFlag = ds_src.getColumn(sendRow, "prcpinptflag"); //model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag" );
-
- if ( ds_src.getColumn(sendRow, "grupsnglflag") == "M" ) { //그룹코드 M을 찾아낸다. 처방검색일때만 풀린다. model.getValue( strSrc + "[" + sendRow + "]/grupsnglflag" ) == "M"
- var grupCond1 = ds_src.getColumn(sendRow, "prcpcd"); //model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- var grupCond3 = "";
- var grupCond4 = "";
- var inclprcpno = "";
- if ( objFlag == "child" ) {
- grupCond3 = opener.ds_init.getColumn(0, "prcpdd"); //opener.model.getValue ( "/root/init/prcpdd" );
- grupCond4 = opener.ds_paminfo.getColumn(0, "insukind"); //opener.model.getValue ( "/root/paminfo/list/insukind");
-
- if ( usge == "prcp" ) { //처방화면에만 종속처방이 적용된다.
- inclprcpno = eval(ds_init.getColumn(0, "inclprcpno")) + 1; //종속처방번호를 받아온다. //model.getValue ( "/root/init/inclprcpno")
- }
- } else {
- grupCond3 = ds_init.getColumn(0, "prcpdd"); //model.getValue ( "/root/init/prcpdd" );
- grupCond4 = ds_paminfo.getColumn(0, "insukind"); //model.getValue ( "/root/paminfo/list/insukind");
- if ( usge == "prcp" ) {//처방화면에만 종속처방이 적용된다.
- inclprcpno = eval(ds_init.getColumn(0, "inclprcpno")) + 1; //종속처방번호를 받아온다. model.getValue ( "/root/init/inclprcpno")
- }
- }
-
- lf_prcpGroupSrch ( grupCond1, grupCond3, grupCond4 );
- if ( utlf_isNull(grupSrc) ) {
- var ds_grupSrc = new dataset; //"/root/prcpgroup/prcplist";
- ds_grupSrc.copyData(ds_prcpgroup_prcplist);
- }
-
- //var srcNodeList = model.instances(0).selectNodes( grupSrc );
-
- if ( ds_grupSrc.rowcount > 0 ) {
- if ( objFlag == "child" ) {
- //var destNode = model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- //model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_src, sendRow);
-
- /* duplicate 예시
- ds_main_prcplist.insertRow(insRow);
- ds_main_prcplist.copyRow(insRow, ds_prcpdel_prcplist, i);
- model.duplicate ( "/root/main/prcp", "/root/prcpdel/prcplist[" + i + "]", "*[" + insRow + "]" );
- */
-
- if ( !opener.lf_addPrcpSetValue("main", "ds_main_prcplist", srchRow, prcpInptFlag, "N", "05") ) { // !opener.javascript.addPrcpSetValue( "main", "/root/main/prcp/prcplist" , srchRow, prcpInptFlag, "N", "05" )
- return 0;
- }
- } else {
- var destNode = strDest;
- //model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_src, sendRow);
-
- if ( !lf_addPrcpSetValue("main", ds_dest, srchRow, prcpInptFlag, "N", "05") ) { // !addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", "05" )
- return 0;
- }
- }
- srchRow ++;
- if ( usge == "prcp" ) {
- for (var i = 0; i < ds_grupSrc.rowcount; i++) { // var i=1; i<=srcNodeList.length; i++
- if ( objFlag == "child" ) {
- //var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- //model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- opener.ds_dest.insertRow(srchRow);
- opener.ds_dest.copyRow(srchRow, ds_src, i);
-
- if ( !opener.lf_addPrcpSetValue("main", ds_dest, srchRow, prcpInptFlag, "N", "05") ) { // !opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", "05" )
- return 0;
- }
- } else {
- //var destNode = strDest;
- //model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_grupSrc, i); // 확인 필요
-
- if ( !lf_addPrcpSetValue("main", ds_dest, srchRow, prcpInptFlag, "N", "05") ) { // !addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, prcpInptFlag, "N", "05" )
- return 0;
- }
- //자코드의 처방종류에 값이 들어가지 않아, 강제로 셋팅함
- ds_src.setColumn(srchRow, "prcpkindcd", ds_src.getColumn(sendRow, "prcpkindcd")); //model.setValue(strSrc + "[" + srchRow + "]/prcpkindcd", model.getValue( strSrc + "[" + sendRow + "]/prcpkindcd" ));
-
- //cp처방일 경우, prcpinptflag와 cpno를 모코드와 동일한 값으로 셋팅함
- if( ds_src.getColumn(sendRow, "prcpinptflag") == "05" ){ // model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag" ) == "05"
- ds_src.setColumn(srchRow, "prcpinptflag", "05"); // model.setValue(strSrc + "[" + srchRow + "]/prcpinptflag", "05");
- ds_src.setColumn(srchRow, "etclnkspec", ds_src.getColumn(sendRow, "etclnkspec")); // model.setValue(strSrc + "[" + srchRow + "]/etclnkspec", model.getValue( strSrc + "[" + sendRow + "]/etclnkspec" ));
- }
- }
- if ( objFlag == "child" ) {
- srchRow = opener.addPrcpPop(srchRow, usge, prcpClsCd, srchRow); //opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
- srchRow = addPrcpPop(srchRow, usge, prcpClsCd, srchRow); //addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- }
- }
-
- return srchRow;
- }
-
- } else if ( ds_src.getColumn(sendRow, "grupsnglflag") == "J" ) { //그룹지시처방 J을 찾아낸다. model.getValue( strSrc + "[" + sendRow + "]/grupsnglflag" ) == "J"
- //조회조건
- var direcCond1 = ds_src.getColumn(sendRow, "srchcondcnts"); //model.getValue( strSrc + "[" + sendRow + "]/srchcondcnts" );
- var direcCond5 = ds_src.getColumn(sendRow, "prcpcd"); //model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- var direcCond3 = "";
- var direcCond4 = "";
- if ( prcpClsCd == "04" ) {
- hsctflag = "Y";
- }
- if ( objFlag == "child" ) {
- direcCond3 = opener.ds_init.getColumn(0, "prcpdd"); //opener.model.getValue ( "/root/init/prcpdd" );
- direcCond4 = opener.ds_paminfo.getColumn(0, "insukind"); //opener.model.getValue ( "/root/paminfo/list/insukind");
- } else {
- direcCond3 = ds_init.getColumn(0, "prcpdd"); //model.getValue ( "/root/init/prcpdd" );
- direcCond4 = ds_paminfo.getColumn(0, "insukind"); //model.getValue ( "/root/paminfo/list/insukind");
- }
- lf_prcpDirecSrch ( direcCond1, direcCond3, direcCond4, direcCond5 );
- if ( utlf_isNull(direcSrc) ) {
- //direcSrc = "/root/prcpdirec/prcplist";
- var ds_direcSrc = new dataset;
- ds_direcSrc.copyData(ds_prcpdirec_prcplist);
- }
- //var srcNodeList = model.instances(0).selectNodes( direcSrc );
- if ( ds_direcSrc.rowcount > 0 ){ //그룹지시처방 J는 종속하는 수가 코드가 있을 때만 추가.
- if ( objFlag == "child" ) {
- //var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- //model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
- opener.ds_dest.insertRow(srchRow);
- opener.ds_dest.copyRow(srchRow, ds_src, sendRow);
-
- //종속처방번호 Setting ( hsctlnkno )
- var hsctlnkno = eval ( opener.ds_init.getColumn(0, "hsctlnkno") ) + 1; //eval ( opener.model.getValue ( "/root/init/hsctlnkno" )) + 1;
- opener.ds_init.setColumn(0, "hsctlnkno", hsctlnkno); //opener.model.setValue ( "/root/init/hsctlnkno", hsctlnkno );
- if ( !opener.lf_addPrcpSetValue("main", ds_dest, srchRow, "05", "M") ) { // !opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, "05", "M" )
- return 0;
- }
- } else {
- var destNode = strDest;
- var hsctlnkno = eval ( ds_init.getColumn(0, "hsctlnkno") ) + 1; //eval ( model.getValue ( "/root/init/hsctlnkno" )) + 1;
- ds_init.setColumn(0, "hsctlnkno", hsctlnkno); //model.setValue ( "/root/init/hsctlnkno", hsctlnkno );
-
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_src, i);
- //model.duplicate( destNode, strSrc + "[" + sendRow + "]", "*[" + srchRow + "]");
-
- if ( !opener.lf_addPrcpSetValue("main", ds_dest, srchRow, "05", "M") ) { // !addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, "05", "M" )
- return 0;
- }
- }
-
- //CP 약속셋 생성 시에는 자코드가 풀리면 안된다. CP배치를 통해 실처방 저장시 풀린다! (2008.01.22)
- if( opener.ds_root.getColumn(0, "cp") == "S" || ds_root.getColumn(0, "cp") == "S" ){ // opener.model.getValue("/root/cp") == "S" || model.getValue("/root/cp") == "S"
- return;
- }
-
- if ( objFlag == "child" ) {
- srchRow = opener.addPrcpPop (srchRow, usge, prcpClsCd, srchRow ); //opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
-
- srchRow = addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- for ( var k = 0; k < ds_direcSrc.rowcount; k++ ) { // var k=1; k <= srcNodeList.length; k++
- if ( objFlag == "child" ) {
- //var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- //model.duplicate( destNode, direcSrc + "[" + k + "]", "*[" + srchRow + "]");
- opener.ds_dest.insertRow(srchRow);
- opener.ds_dest.copyRow(srchRow, ds_direcSrc, k);
-
- if ( !opener.lf_addPrcpSetValue("main", ds_dest, srchRow, "05", hsctflag) ) { // !opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, "05", hsctflag )
- return 0;
- }
- } else {
- //var destNode = strDest;
- //model.duplicate( destNode, direcSrc + "[" + k + "]", "*[" + srchRow + "]");
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_direcSrc, k);
-
- if ( !lf_addPrcpSetValue("main", ds_dest, srchRow, "05", hsctflag) ) { // !addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, "05", hsctflag )
- return 0;
- }
-
- if( ds_src.getColumn(sendRow, "prcpinptflag") == "05" ){ // model.getValue( strSrc + "[" + sendRow + "]/prcpinptflag" ) == "05"
- ds_src.setColumn(srchRow, "prcpinptflag", "05"); // model.setValue(strSrc + "[" + srchRow + "]/prcpinptflag", "05");
- ds_src.setColumn(srchRow, "etclnkspec", ds_src.getColumn(sendRow, "etclnkspec")); // model.setValue(strSrc + "[" + srchRow + "]/etclnkspec", model.getValue( strSrc + "[" + sendRow + "]/etclnkspec" ));
- }
- }
- if ( objFlag == "child" ) {
- srchRow = opener.addPrcpPop (srchRow, usge, prcpClsCd, srchRow ); //opener.javascript.addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- } else {
- srchRow = addPrcpPop (srchRow, usge, prcpClsCd, srchRow ); //addPrcpPop (srchRow, usge, prcpClsCd, srchRow );
- }
- srchRow ++;
- }
- }
-
- return srchRow;
-
- } else if ( (prcpClsCd == "B2" || prcpClsCd == "B4" || prcpClsCd == "B6") && (lf_getArrayData (drugmastspec, 0, 2, "^", "|" ) == "0" || lf_getArrayData (drugmastspec, 0, 2, "^", "|" ) == "-")){
- //검사대분류유형(testlrgkind) 그룹: 0, 1
- //-일 때는 검체와 상관없는 그룹코드
- var grupCond1 = ds_src.getColumn(sendRow, "prcpcd"); //model.getValue( strSrc + "[" + sendRow + "]/prcpcd" );
- var grupCond3 = "";
- var grupCond4 = "";
- var popflag = "group"
- if ( objFlag == "child" ) {
- popflag = "child";
- grupCond3 = opener.ds_init.getColumn(0, "prcpdd"); // grupCond3 = opener.model.getValue ( "/root/init/prcpdd" );
- grupCond4 = opener.ds_paminfo.getColumn(0, "insukind"); // grupCond4 = opener.model.getValue ( "/root/paminfo/list/insukind");
- } else {
- grupCond3 = ds_init.getColumn(0, "prcpdd"); //model.getValue ( "/root/init/prcpdd" );
- grupCond4 = ds_pamino.getColumn(0, "insukind"); //model.getValue ( "/root/paminfo/list/insukind");
- }
- //구수가코드일 경우
- if ( oldprcpflag == "Y" ) {
- popflag = "oldprcp";
- }
- var drugmthdspccd = ds_src.getColumn(sendRow, "drugmthdspccd"); //model.getValue ( strSrc + "[" + sendRow + "]/drugmthdspccd" );
- var spccd = "";
- var spcnm = "";
-
- if ( drugmthdspccd == "998" || drugmthdspccd == "999" ) {
-
- fGetSpc ( sendRow, popflag );
- if ( drugmthdspccd == "998") {
- if ( frmf_getParameter ("SPMMO03500_rtn_useyn") == "Y" ) {
- spccd = frmf_getParameter ( "SPMMO03500_rtn_spccd" );
- spcnm = frmf_getParameter ( "SPMMO03500_rtn_spcscrnnm" );
- }
- frmf_clearParameter ( "SPMMO03500_rtn_useyn" );
- frmf_clearParameter ( "SPMMO03500_rtn_spccd" );
- frmf_clearParameter ( "SPMMO03500_rtn_spcscrnnm" );
- } else {
- if ( frmf_getParameter ("SPMMO03400_rtn_useyn") == "Y" ) {
- spccd = frmf_getParameter ( "SPMMO03400_rtn_spccd" );
- spcnm = frmf_getParameter ("SPMMO03400_rtn_spcscrnnm" );
- }
- frmf_clearParameter ( "SPMMO03400_rtn_useyn" );
- frmf_clearParameter ( "SPMMO03400_rtn_spccd" );
- frmf_clearParameter ( "SPMMO03400_rtn_spcscrnnm" );
- }
- } else { //팝업이 뜨지 않을 때는 본체의 검체코드로 검색한다.
- spccd = drugmthdspccd;
- spcnm = ds_src.getColumn(sendRow, "drugmthdspccdnm"); //model.getValue ( strSrc + "[" + sendRow + "]/drugmthdspccdnm" );
- }
-
- lf_prcpGroupSrch ( grupCond1, grupCond3, grupCond4, spccd, lf_getArrayData (drugmastspec, 0, 2, "^", "|" ), "getLisPrcpGroupInfo" );
- // 필요없어 보여 주석처리
- // if ( objFlag == "child" ) {
- // var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- // } else {
- // var destNode = strDest;
- // }
- if ( utlf_isNull(grupSrc) ) {
- //grupSrc = "/root/prcpgroup/prcplist";
- var ds_grupSrc = new dataset;
- ds_grupSrc.copyData(ds_prcpgroup_prcplist);
- }
- //var srcNodeList = model.instances(0).selectNodes( grupSrc );
-
- for (var i = 0; i < ds_grupSrc.rowcount; i++) {
- if ( objFlag == "child" ) {
- //var destNode = opener.model.instances(0).selectSingleNode( strDest ) // or opener.root.main.prcp 이런식으로
- //model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- opener.ds_dest.insertRow(srchRow);
- opener.ds_dest.copyRow(srchRow, ds_grupSrc, i);
-
- if ( !opener.lf_addPrcpSetValue("main", ds_dest, srchRow, "05") ) { // !opener.javascript.addPrcpSetValue ( "main", strDest + "/prcplist", srchRow, "05" )
- return 0;
- }
- if (!utlf_isNull(spccd)) {
- opener.ds_main_prcplist.setColumn(srchRow, "drugmthdspccd", spccd); // opener.model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccd", spccd );
- opener.ds_main_prcplist.setColumn(srchRow, "drugmthdspccdnm", spcnm); // opener.model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccdnm", spcnm );
- }
- } else {
- // var destNode = strDest;
- // model.duplicate( destNode, grupSrc +"[" + i + "]", "*[" + srchRow + "]");
- ds_dest.insertRow(srchRow);
- ds_dest.copyRow(srchRow, ds_grupSrc, i);
- if (!lf_addPrcpSetValue ( "main", ds_dest, srchRow, "05" )) {
- return 0;
- }
- if (!utlf_isNull(spccd)) {
- ds_main_prcplist.setColumn(srchRow, "drugmthdspccd", spccd); // model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccd", spccd );
- ds_main_prcplist.setColumn(srchRow, "drugmthdspccdnm", spcnm); // model.setValue ( "/root/main/prcp/prcplist[" + srchRow + "]/drugmthdspccdnm", spcnm );
- }
- }
- srchRow ++;
- }
-
- } else { //그룹코드 M, J 가 아닐 경우
- return 0;
- }
- }
- function cf_TXMMP00803(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) {
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- } else {
- questionYN_SMMMO00110 = "Y";
- stopSavePrcpYN_SMMMO00110 = "N";
- // model.removeNodeset("root/result");
- // model.makeNode("root/result");
- ds_send_delprcplist.clearData(); // model.removeNodeset("root/send/delprcplist");
- ds_send_serrprcplist.clearData(); // model.removeNodeset("root/send/errprcplist");
- ds_send_saveinvaliprcplist.clearData(); // model.removeNodeset("root/send/saveinvaliprcplist");
- //미래처방도 없다면 더이상 저장할 데이터가 없으므로, return
- if( ds_main_prcpsrch_prcplist.getCaseCount("prcpdd >'" + today + "'") == 0 ){ // instance1.selectSingleNode("/root/main/prcpsrch/prcplist[prcpdd >'" + today + "']") == null
- ds_main_prcpsrch_prcplist.clearData(); //model.removeNodeset("/root/main/prcpsrch/prcplist");
- return true;
- }
- }
- }
- function cf_TXMMP00806(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) { }
- }
- /**
- * @group :
- * @ver : 2007.09
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 스텝의 진행상태를 참고하여, 처방정보를 조회한다
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetCurrentPrcpList(mode){
- /* 2007.11.22 추가
- * 일괄발행을 하기 전, 처방 그리드에 미리 추가시켜 놓은 처방이 있을 경우,
- * prcp 의 처방 리스트를 copy해서 따로 담아두었다가
- * 약속셋에서 조회한 리스트( /root/main/prcpsrch )에 합친다.
- * "/root/main/prcp" -> (copy) -> "/root/temp1/addprcp" -> (추가) -> "/root/main/prcpsrch"
- */
- if( utlf_isNull(mode) ){
- mode = "SEL";
- }
-
- // 20200401 김현석, 적용일자 세팅, 20200310998
- //var today = utlf_getCurrentDate();
- var today = fGetAppdd();
-
- var prcpGenrFlag = ds_patflag.getColumn(0, "prcpgenrflag"); //model.getValue("/root/patflag/list/prcpgenrflag");
- var cpgIoFlag = ds_main_masterinfo_info.getColumn(0, "ioflagcd"); //model.getValue("/root/main/masterinfo/info/ioflagcd");
- var nodelist = null;
- dsf_createDs("ds_nodelist1");
-
- if( cpgflagcd == "01" && prcpGenrFlag == "O"){ //1. CP외래환자
- if(cpgIoFlag == "O" ){ // 1-1) 외래CP
- ds_main_steppath_info.filter("prcpdd == '" + today + "'"); //instance1.selectNodes("/root/main/steppath/info" + "[prcpdd='" + today + "']");
- ds_nodelist1.copyData(ds_main_steppath_info, true);
- ds_main_steppath_info.filter(""); // 필터링 해제
- }else{ // 1-2) D0입원CP
- ds_main_steppath_info.filter("times == '0'"); //instance1.selectNodes("/root/main/steppath/info" + "[times='0']");
- ds_nodelist1.copyData(ds_main_steppath_info, true);
- ds_main_steppath_info.filter(""); // 필터링 해제
- if( nodelist <= 0 ){
- ds_main_steppath_info.filter("times == '1'"); //instance1.selectNodes("/root/main/steppath/info" + "[times='1']");
- ds_nodelist1.copyData(ds_main_steppath_info, true);
- ds_main_steppath_info.filter(""); // 필터링 해제
- }
- }
- } else { //2. CP입원환자, CPG입원+외래환자
- var inptStepIdx = ds_main_steppath_info.findRowExpr("stepstat == '10' && decirflag == 'I'"); //instance1.selectSingleNode("/root/main/steppath/info[stepstat = '10' and decirflag = 'I']/stepno");
- var inptStepNode = ds_main_steppath_info.getColumn(inptStepIdx, "stepno");
- ds_nodelist1.clear(); //nodelist = null;
- ds_main_steppath_info.filter("stepstat == '10' && savestatus == 'I'"); //instance1.selectNodes("/root/main/steppath/info" + "[stepstat = '10' and savestatus='I']");
- ds_nodelist1.copyData(ds_main_steppath_info, true);
- ds_main_steppath_info.filter(""); // 필터링 해제
- }
- //anticncrprtlno
- //alert("cms ddd >>> " + etclnkspecValue_SMMMO00110)
- dsf_makeValue(ds_send_reqdata, "cpgno", "string", ds_main_masterinfo_info.getColumn(0, "cpgno")); //model.makeValue ( "/root/send/reqdata/cpgno", model.getValue("/root/main/masterinfo/info/cpgno") );
- dsf_makeValue(ds_send_reqdata, "cpghistseq", "string", ds_main_masterinfo_info.getColumn(0, "cpghistseq")); //model.makeValue ( "/root/send/reqdata/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq") );
- dsf_makeValue(ds_send_reqdata, "cpgappno", "string", ds_temp1_getdata.getColumn(0, "cpgappno")); //model.makeValue ( "/root/send/reqdata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno") );
- dsf_makeValue(ds_send_reqdata, "etclnkspec", "string", etclnkspecValue_SMMMO00110);
- dsf_makeValue(ds_send_reqdata, "cpgflagcd", "string", cpgflagcd); //model.makeValue ( "/root/send/reqdata/cpgflagcd", cpgflagcd ); //@@@선택필수 조회를 위한 파라메터(cpgFlagCd) 추가
-
- //var appScopMode = model.getValue("/root/main/appscopmode"); //CPG인 경우, CPG스텝/CP스텝 적용 모드를 구분함 (2010.06.26)
- var setNoArray = "";
- var timesArray = "";
- var startStepNo = "";
- var endStepNo = "";
- var startTimes = "";
- var endTimes = "";
- var prcpddArray = "";
- isstimes_SMMMO00110 = ""; //발행시작회차 | 발행종료회차
- isssteps_SMMMO00110 = ""; //발행시작스텝 | 발행종료스텝
- stepArray_SMMMO00110 = "";
- prcpddArray_SMMMO00110 = "";
- if( ds_nodelist1.rowcount > 0 ){
- for(var i = 0; i < ds_nodelist1.rowcount; i++){
- //var node = nodelist.item(i);
-
- var val1 = ds_nodelist1.getColumn(i, "setno"); //node.selectSingleNode("setno");
- if( !utlf_isNull(val1) ){
- setNoArray = setNoArray + val1 + ",";
- }
- var val2 = ds_nodelist1.getColumn(i, "times"); //node.selectSingleNode("times");
- var orgVal2 = ds_nodelist1.getColumn(i, "orgtimes"); //node.selectSingleNode("orgtimes");
- if( !utlf_isNull(orgVal2) ){
- timesArray = timesArray + orgVal2 + ",";
- if(i == 0){
- startTimes = orgVal2;
- }
- if(i == (ds_nodelist1.rowcount - 1)){
- endTimes = orgVal2;
- }
- }else if( !utlf_isNull(val2) ){
- timesArray = timesArray + val2 + ",";
- if(i == 0){
- startTimes = val2;
- }
- if(i == (ds_nodelist1.rowcount - 1)){
- endTimes = val2;
- }
- }
- var val3 = ds_nodelist1.getColumn(i, "stepno"); //node.selectSingleNode("stepno");
- if( !utlf_isNull(val3) ){
- stepArray_SMMMO00110 = stepArray_SMMMO00110 + val3 + "|";
- if( i == 0 ) {
- startStepNo = val3;
- }
- if(i == (ds_nodelist1.rowcount - 1)){
- endStepNo = val3;
- }
- }
-
- var stepflagcd = ds_nodelist1.getColumn(i, "stepflagcd"); //node.selectSingleNode("stepflagcd");
- var val4 = ds_nodelist1.getColumn(i, "prcpdd"); //node.selectSingleNode("prcpdd");
- if( !utlf_isNull(val4) ){
- prcpddArray_SMMMO00110 = prcpddArray_SMMMO00110 + val4 + "|";
-
- if( stepflagcd != "D" ){
- prcpddArray = prcpddArray + val4 + ",";
- }
- }
- }
-
- setNoArray = setNoArray.substr(0, setNoArray.length-1);
- timesArray = timesArray.substr(0, timesArray.length-1);
- stepArray_SMMMO00110 = stepArray_SMMMO00110.substr(0, stepArray_SMMMO00110.length-1);
- prcpddArray = prcpddArray.substr(0, prcpddArray.length-1); //D스텝 포함 처방일
- prcpddArray_SMMMO00110 = prcpddArray_SMMMO00110.substr(0, prcpddArray_SMMMO00110.length-1); //D스텝 제외 A스텝들의 처방일
-
- isstimes_SMMMO00110 = startTimes + "|" + endTimes; //시작-종료회차(js공통변수)
- isssteps_SMMMO00110 = startStepNo + "|" + endStepNo; //시작-종료스텝(js공통변수)
- }else{
- mode = "";
- }
- /*------------------------------------------------------------------------------------------------------------------*/
- // DSC or ER 환자일 경우 입원필요 전 처방까지는 ordtype 'D' 이후 처방들은 'I' 가 되므로, 기준 스텝을 함께 보낸다.
- // => isssteps_SMMMO00110 의 예외 사용 : 입원필요스텝 존재 시, 해당 '입원필요날짜'를 | 구분자로 세번째 값으로 보내줌.
- // 미래처방 저장 시 server 단에서는 '입원필요날짜'부터는 처방의 ordtype을 I로 넣어줌 (입원필요날짜 이전:현재 ordtype, 이후:I)
- /*------------------------------------------------------------------------------------------------------------------*/
- if( (prcpGenrFlag == "D" || prcpGenrFlag == "E") && !utlf_isNull(inptStepNode) ){
- var inptDDIdx = ds_main_steppath_info.findRowExpr("stepstat == '10' && stepno == '" + inptStepNode + "'");
- var inptDDNode = ds_main_steppath_info.getColumn(inptDDIdx, "prcpdd"); //instance1.selectSingleNode("/root/main/steppath/info" + "[stepstat = '10' and stepno='" + inptStepNode.text + "']/prcpdd");
- isssteps_SMMMO00110 += "|" + inptDDNode;
- }
-
- dsf_makeValue(ds_send_reqdata, "dayno", "string", timesArray); // model.makeValue ("/root/send/reqdata/dayno", timesArray);
- dsf_makeValue(ds_send_reqdata, "setcond", "string", setNoArray); // model.makeValue ("/root/send/reqdata/setcond", setNoArray);
- dsf_makeValue(ds_send_reqdata, "cpgflagcd", "string", settypecd); // model.makeValue ("/root/send/reqdata/cpgflagcd", settypecd);
- dsf_makeValue(ds_send_reqdata, "prcpddcond", "string", prcpddArray); // model.makeValue ("/root/send/reqdata/prcpddcond", prcpddArray);
- dsf_makeValue(ds_send_reqdata, "stepcond", "string", stepArray_SMMMO00110); // model.makeValue ("/root/send/reqdata/stepcond", stepArray_SMMMO00110); //@@@선택필수 조회를 위한 조건 추가
- sysf_trace(">>>>>>>>>>>>>>>>>>>>>>>>")
- utlf_addLog(ds_send_reqdata.saveXML())
- if( mode == "SEL" ){
- var genrflag = ds_patflag.getColumn(0, "prcpgenrflag"); //model.getValue ( "/root/patflag/list/prcpgenrflag" );
-
- //setno에 포함되는 모든 처방코드(목록)를 조회한다.
- var oParam = {};
- oParam.id = "TRMMP02202";
- oParam.service = "prcpbaseapp.CpMngt";
- oParam.method = "reqGetPrcpSetList";
- oParam.inds = "req=ds_send_reqdata";
- oParam.outds = "ds_main_prcpsrch_prcplist=prcplist ds_main_prcpsrch_essprcplist=essprcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMMP02202";
- tranf_submit(oParam);
- utlf_addLog(ds_main_prcpsrch_prcplist.saveXML())
- }
- stopSavePrcpYN_SMMMO00110 = "Y";
-
- ds_send_reqdata.clearData(); //model.removeNodeset ( "/root/send/reqdata" ); //2008.11.30 추가
- }
- function cf_TRMMP02202(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) {
- return;
- } else {
- //start: CPG인 경우, 처방 저장 범위 중 필수처방이 있다면 별도 table에 정보를 함께 저장
- if( cpgflagcd == "02" ){
- //(1) 선택필수(그룹) 셋 처방을 따로 조회해와서, 팝업으로 발행할 처방 선택은 후 prcpsrch에 합쳐줌 (2010.04.28 JJE)
- if( ds_main_prcpsrch_essprcplist.rowcount > 0 ){ // instance1.selectSingleNode("/root/main/prcpsrch/essprcplist") != null
- frmf_open("SPMMP03900"); //modal("SPMMP03900"); //선택필수 팝업 호출 (return 결과: /root/send/dessprcplist)
- ds_main_prcpsrch_essprcplist.clearData(); //model.removeNodeset("/root/main/prcpsrch/essprcplist"); //선택필수 전체 리스트 삭제
- }
- }
-
- var PrcpList = ds_main_prcpsrch_prcplist; //instance1.selectNodes("/root/main/prcpsrch/prcplist");
- var keyInfo = "";
- var pEssCnt = 0;
- var dEssCnt = 0;
- for(var i = 0; i < PrcpList.rowcount; i++){
- //var node = PrcpList.item(i);
- var etclnkspecNode = PrcpList.getColumn(i, "etclnkspec"); //node.selectSingleNode("etclnkspec");
- var prcpinptflagNode = PrcpList.getColumn(i, "prcpinptflag"); //node.selectSingleNode("prcpinptflag");
- var prcpgenrflagNode = PrcpList.getColumn(i, "prcpgenrflag"); //node.selectSingleNode("prcpgenrflag");
-
- // ★ stepno 의 노드 text 에 값이 null 이라면, setval 안한다!
- prcpinptflagNode = "05"; //model.setValue(prcpinptflagNode, "05");
- prcpgenrflagNode = genrflag; //model.setValue(prcpgenrflagNode, genrflag);
-
- var pEssnprcpynNode = PrcpList.getColumn(i, "essnprcpyn"); //node.selectSingleNode("essnprcpyn");
- var pEsslimnoNode = PrcpList.getColumn(i, "limno"); //node.selectSingleNode("limno");
- var pEsslimhistnoNode = PrcpList.getColumn(i, "limhistno"); //node.selectSingleNode("limhistno");
- var pEssSetnoNode = PrcpList.getColumn(i, "setno"); //node.selectSingleNode("setno");
- var pEssSettypecdNode = PrcpList.getColumn(i, "settypecd"); //node.selectSingleNode("settypecd");
- var pEssSetcdnoNode = PrcpList.getColumn(i, "setcdno"); //node.selectSingleNode("setcdno");
- var pEssPrcpddNode = PrcpList.getColumn(i, "prcpdd"); //node.selectSingleNode("prcpdd");
- var pEssPrcpcdNode = PrcpList.getColumn(i, "prcpcd"); //node.selectSingleNode("prcpcd");
-
- var dSetattrno = PrcpList.getColumn(i, "setattrno"); //node.selectSingleNode("setattrno");
- var dSetattrhistno = PrcpList.getColumn(i, "setattrno"); //node.selectSingleNode("setattrhistno");
-
- if (cpgflagcd == "02" && !utlf_isNull(pEssnprcpynNode) && !utlf_isNull(pEsslimnoNode) && !utlf_isNull(pEsslimhistnoNode) && !utlf_isNull(pEssSetnoNode) && !utlf_isNull(pEssSettypecdNode) && !utlf_isNull(pEssSetcdnoNode) && pEssnprcpynNode == "Y"){
- pEssCnt++; //(2) 스텝필수(단독) 처방
- keyInfo = "0" + "|" + appNo_SMMMO00110 + "^" + "P" + "^" + pEsslimnoNode + "^" + pEsslimhistnoNode + "^" + pEssSetnoNode + "^" + pEssSettypecdNode + "^" + pEssSetcdnoNode;
- } else if (cpgflagcd == "02" && !utlf_isNull(dSetattrno) && !utlf_isNull(dSetattrhistno) && !utlf_isNull(pEssSetnoNode) && !utlf_isNull(pEssSettypecdNode) && !utlf_isNull(pEssSetcdnoNode) ){
- dEssCnt++; //(2) 선택필수(그룹) 처방
- keyInfo = "0" + "|" + appNo_SMMMO00110 + "^" + "D" + "^" + dSetattrno + "^" + dSetattrhistno + "^" + pEssSetnoNode + "^" + pEssSettypecdNode + "^" + pEssSetcdnoNode;
- } else {
- keyInfo = etclnkspecValue_SMMMO00110;
- }
- etclnkspecNode = keyInfo; //model.setValue(etclnkspecNode, keyInfo);
-
- // if(pEssnprcpynNode != null) model.removenode(pEssnprcpynNode);
- // if(pEsslimnoNode != null) model.removenode(pEsslimnoNode);
- // if(pEsslimhistnoNode != null) model.removenode(pEsslimhistnoNode);
- // if(dSetattrno != null) model.removenode(dSetattrno);
- // if(dSetattrhistno != null) model.removenode(dSetattrhistno);
- }
-
- if( pEssCnt > 0 ){
- //model.makeNode("/root/send/pessprcplist");
- dsf_makeValue(ds_send_pessprcplist, "pesscpgappno", "string", appNo_SMMMO00110); //model.makeValue("/root/send/pessprcplist/pesscpgappno" , appNo_SMMMO00110);
- }
- if( dEssCnt > 0 ){
- //model.makeNode("/root/send/dessprcplist");
- dsf_makeValue(ds_send_dessprcplist, "desscpgappno", "string", appNo_SMMMO00110); //model.makeValue("/root/send/dessprcplist/desscpgappno" , appNo_SMMMO00110);
- }
- }
- }
- /**
- * @group :
- * @ver
- : 2007.09
- * @by : 전지은
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : TRMMP00803 을 거치지 않고 바로 저장하는 경우, 저장시 필요한 데이터를 임의로 구성함
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSetSavrPrcpInfo(){
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag"); //model.getValue("/root/patflag/list/prcpgenrflag");
- //저장구분정보(saveFlagInfo)
- //model.removeNodeset("/root/send/cond1");
- dsf_createDs("ds_send_cond1"); //model.makeNode("/root/send/cond1");
- dsf_createDs("ds_save_saveflaginfo");
- dsf_makeValue(ds_save_saveflaginfo, "savedataflag", "string", 2); // model.makeValue ( "/root/save/saveflaginfo/savedataflag", 2 );
- dsf_makeValue(ds_save_saveflaginfo, "saveflag", "string", prcpgenrflag); // model.makeValue ( "/root/save/saveflaginfo/saveflag" , prcpgenrflag );
- dsf_makeValue(ds_save_saveflaginfo, "prcpflag", "string", "0"); // model.makeValue ( "/root/save/saveflaginfo/prcpflag" , "0" );
- dsf_makeValue(ds_save_saveflaginfo, "inptflag", "string", "0"); // model.makeValue ( "/root/save/saveflaginfo/inptflag" , "0" );
- dsf_makeValue(ds_save_saveflaginfo, "deptcd", "string", sysf_getUserInfo("dutplcecd")); // model.makeValue ( "/root/save/saveflaginfo/deptcd" , getUserInfo("dutplcecd"));
- dsf_makeValue(ds_save_saveflaginfo, "deptnm", "string", sysf_getUserInfo("dutplcenm")); // model.makeValue ( "/root/save/saveflaginfo/deptnm" , getUserInfo("dutplcenm"));
- dsf_makeValue(ds_save_saveflaginfo, "userid", "string", sysf_getUserInfo("userid")); // model.makeValue ( "/root/save/saveflaginfo/userid" , getUserInfo("userid"));
- dsf_makeValue(ds_save_saveflaginfo, "usernm", "string", sysf_getUserInfo("usernm")); // model.makeValue ( "/root/save/saveflaginfo/usernm" , getUserInfo("usernm"));
- dsf_makeValue(ds_save_saveflaginfo, "signyn", "string", "Y"); // model.makeValue ( "/root/save/saveflaginfo/signyn" , "Y" );
-
- // 20200401 김현석, 적용일자 세팅, 20200310998
- // dsf_makeValue(ds_save_saveflaginfo, "prcpdd", "string", utlf_getCurrentDate()); // model.makeValue ( "/root/save/saveflaginfo/prcpdd" , getCurrentDate() ); dsf_makeValue(ds_save_saveflaginfo, "divyn", "string", "N"); // model.makeValue ( "/root/save/saveflaginfo/divyn" , "N" );*/
- dsf_makeValue(ds_save_saveflaginfo, "prcpdd", "string", fGetAppdd()); // model.makeValue ( "/root/save/saveflaginfo/prcpdd" , getCurrentDate() ); dsf_makeValue(ds_save_saveflaginfo, "divyn", "string", "N"); // model.makeValue ( "/root/save/saveflaginfo/divyn" , "N" );
-
- dsf_makeValue(ds_save_saveflaginfo, "prtlflag", "string", prtlFlag_SMMMO00110); // model.makeValue ( "/root/save/saveflaginfo/prtlflag" , prtlFlag_SMMMO00110 );
-
- dsf_makeValue(ds_save_saveflaginfo, "prtlprcpstatus", "string", "U"); //model.makeValue ( "/root/save/saveflaginfo/prtlprcpstatus" , "U" );
- dsf_makeValue(ds_save_saveflaginfo, "cpsaveflag", "string", "T"); //model.makeValue ( "/root/save/saveflaginfo/cpsaveflag" , "T" );
-
- //model.instances(0).selectNodes( "/root/save/saveflaginfo" );
- ds_send_cond1.copyData(ds_save_saveflaginfo); //model.setValue ( "/root/send/cond1", getNodeListCSV(saveFlagInfoNodeList));
-
- //saveRgstInfo 데이터 구성
-
- dsf_createDs("ds_send_cond2"); //model.makeNode("/root/send/cond2/savepamlist");
- //ds_send_cond2.addColumn("savepamlist", "string");
-
-
- ds_send_cond2.copyData(ds_paminfo); //model.copyNode( "/root/send/cond2", "/root/paminfo/list" ); //원무정보 저장데이터
-
- var savepamlist = ds_send_cond2; //model.instance1.selectSingleNode( "/root/send/cond2" );
- //var childNodeList = savepamlist.childNodes;
- // for( var k = 0; k < ds_send_cond2.rowcount; k++ ){
- // var iNode = childNodeList.item(k);
- // iNode.nodeName = "pam_" + iNode.nodeName;
- // }
- dsf_makeValue(ds_send_cond2, "pam_ordtype", "string", prcpgenrflag); //model.makeValue ( "/root/send/cond2/pam_ordtype" , prcpgenrflag );
-
- }
- function cf_TXMMO00103(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) {
- //model.removeNodeSet ( "/root/result");
- grp_biz.grp_prcp.imp_prcp.ds_send_cond1.clearData();
- grp_biz.grp_prcp.imp_prcp.ds_send_cond2.clearData();
- grp_biz.grp_prcp.imp_prcp.ds_send_cond3.clearData();
- grp_biz.grp_prcp.imp_prcp.ds_send_cond4.clearData();
- grp_biz.grp_prcp.imp_prcp.ds_send_cond5.clearData();
- grp_biz.grp_prcp.imp_prcp.ds_send_cond14.clearData();
- grp_biz.grp_prcp.imp_prcp.ds_send_cond15.clearData();
- //model.refresh();
- return false;
- }
- }
- function cf_TXMMP00804(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) {
- //model.removeNodeSet ( "/root/result");
- stopSavePrcpYN_SMMMO00110 = "Y";
- if( saveNum_SMMMO00110 == 1 ) sysf_messageBox ("미래처방 저장을 실패했습니다.\n다시 저장", "I008");
- return false;
- } else {
- grp_biz.grp_prcp.imp_prcp.SubmitTF_SMMMO00110 = true;
- }
- }
- function cf_TXMMP00803(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) {
- //model.removeNodeSet ( "/root/result");
- stopSavePrcpYN_SMMMO00110 = "Y";
- if( saveNum_SMMMO00110 == 1 ) sysf_messageBox ("미래처방 저장을 실패했습니다.\n다시 저장", "I008");
- return false;
- } else {
- grp_biz.grp_prcp.imp_prcp.SubmitTF_SMMMO00110 = true;
- }
- }
- function fPrcpDCSave_CP(prcpflag, rtnPstn, saveflag, prcpchkflag ) {
-
- var prcpMain = grp_biz.grp_prcp.imp_prcp;
-
- if( saveflag == "U" ){
- prcpMain = this;
- }
-
- // 17.06.14, hmh s
- var oOpener = this.getOwnerFrame().form;
- var prcpdd = "";
- if( oOpener.name == "SMMMP00800") {
- utlf_addLog(">>> 1 : " + prcpMain.ds_init.getColumn(0, "prcpdd") + " || " + ds_init.getColumn(0, "prcpdd"));
- prcpdd = prcpMain.ds_init.getColumn(0, "prcpdd");
- } else {
- utlf_addLog(">>> 2 : " + prcpMain.ds_init.getColumn(0, "prcpdd") + " || " + ds_init.getColumn(0, "prcpdd"));
- prcpdd = ds_init.getColumn(0, "prcpdd");
- }
- utlf_addLog(">>> 3 prcpdd : " + prcpdd);
-
- var prcpds = prcpMain.objects["ds_main_prcplist"];
-
- // 17.06.14, hmh e
- // 20200401 김현석, 적용일자 세팅, 20200310998
- //var today = utlf_getCurrentDate();
- var today = fGetAppdd();
-
- if( parseInt(prcpdd) > parseInt(today) ){
- frmf_setParameter("SMMMP00800_cpsaveflag", "T");
- }
- if (utlf_isNull(saveflag)) saveflag = "";
- if (utlf_isNull(prcpchkflag)) prcpchkflag = "Y"; //"저장하시겠습니까?" 메세지 or div 여부
- if (utlf_isNull(prcpflag)){
- var cpgflag = ds_main_masterinfo_info.getColumn(0, "cpgflagcd");
- if(cpgflagcd == "01") prcpflag = "6";
- }
- var savekindflag = "0"; //인증저장
- var prcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag");
- prtlFlag_SMMMO00110 = ds_main_masterinfo_info.getColumn(0, "cpgflagcd"); //fPrcpSave() 후 '-'로 바뀌므로 다시 선언
-
- //아래의 용량분할, 보험제한, 제한항생제 체크에 걸려서 fPrcpDCSave_CP()가 재귀호출되는 경우 ocrcalcscorcd 가 비워지는 현상이 발생함->조치(2008.11.07)
- if( !utlf_isNull(ocrcalcscorcd) ){
- ocrcalcscorcd_SMMMO00110 = ocrcalcscorcd;
- }
-
- //당일처방 저장 시 질문을 했다면, 질문 skip
- if( questionYN_SMMMO00110 != "Y" ){
- var msg = sysf_messageBox ( "", "Q002" );
- if( msg == 7 ){
- stopSavePrcpYN_SMMMO00110 = "Y";
- return false;
- }else{
- saveok = "Y";
- }
- }else{
- saveok = "Y";
- }
-
- if(saveok == "Y"){
- //최초저장인 경우 iPrcpddNode > 0
- var iPrcp = "";
- var iPrcpddidx = ds_main_steppath_info.findRowExpr("prcpdd > '"+today+"' && stepstat == '10'");
- var iPrcpddNode = ds_main_steppath_info.getColumn(iPrcpddidx, "prcpdd");
- utlf_addLog("iPrcpddidx : " + iPrcpddidx + " || iPrcpddNode : " + iPrcpddNode);
-
- //처방 저장전 체크 해야 할 것들
- if (savekindflag != 1) { // 처방 저장전 체크 해야 할 것들
- prcpMain.ds_save_saveflaginfo.setColumn(0, "prcpdd", today);
- prcpMain.ds_main_prcplist.enableevent = false; // 17.09.19, 임시저장 후 적용 시 gGridUpdateChk 을 수행하여 저장되지 않는 오류 수정
- if (!prcpMain.fPrcpSaveChkBf(prcpchkflag)) return false; //2009.05.06(추가수정 by mjm)
- prcpMain.ds_main_prcplist.enableevent = true;
- }
- prcpMain.ds_send_cond2.clearData();
-
- //저장구분정보(saveFlagInfo)
- prcpMain.ds_save_saveflaginfo.setColumn(0, "savedataflag", 2); //저장자료구분 0:진단 및 처방, 1:진단, 2:처방, 4:임시저장
- prcpMain.ds_save_saveflaginfo.setColumn(0, "saveflag", prcpgenrflag ); //저장구분 O:외래, I:입원, E:응급, S:건진
- prcpMain.ds_save_saveflaginfo.setColumn(0, "prcpflag", "0"); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
- prcpMain.ds_save_saveflaginfo.setColumn(0, "inptflag", "0"); //입력구분 0:의사, 1:간호사(간호에서 사용), 3:지원부서
- prcpMain.ds_save_saveflaginfo.setColumn(0, "deptcd", sysf_getUserInfo("dutplcecd")); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
- prcpMain.ds_save_saveflaginfo.setColumn(0, "deptnm", sysf_getUserInfo("dutplcenm")); //부서명
- prcpMain.ds_save_saveflaginfo.setColumn(0, "userid", sysf_getUserInfo("userid")); //사용자ID
- prcpMain.ds_save_saveflaginfo.setColumn(0, "usernm", sysf_getUserInfo("usernm")); //사용자명
- prcpMain.ds_save_saveflaginfo.setColumn(0, "signyn", signyn);
- prcpMain.ds_save_saveflaginfo.setColumn(0, "prcpdd", today);
- prcpMain.ds_save_saveflaginfo.setColumn(0, "divyn", prcpchkflag); //용량분할 할건지
-
- if( parseInt(prcpdd) > parseInt(today) ){
- /*after 조건 추가(1줄)*/
- if( !(utlf_isNull(iPrcpddNode) && prcpMain.visible == true && prcpds.getCaseCount("status == 'I' || status == '-'") > 0 ) ){
- trace(" 미래처방조건 추가 >>>>>> ");
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "cpsaveflag", "string", "T"); //미래처방 체크 flag(2008.08.02 추가)
- } //add (after end)
- }
- dsf_makeValue(prcpMain.ds_save_saveflaginfo, "prtlflag", "string", prtlFlag_SMMMO00110);
-
- //저장정보
- prcpMain.ds_send_cond1.copyData(prcpMain.ds_save_saveflaginfo);
- utlf_addLog(prcpMain.ds_send_cond1.saveXML());
- //저장등록정보(saveRgstInfo)
- prcpMain.ds_send_cond2.copyData(ds_paminfo);
-
- //저장처방정보(savePrcpInfo)
- prcpMain.ds_send_cond3.copyData(prcpMain.ds_main_prcplist, true);
-
- utlf_addLog(prcpMain.ds_send_cond3.saveXML());
-
- prcpMain.fAppendSaveNode( "ds_send_cond3", "ds_prcper_prcplist" );
- prcpMain.fAppendSaveNode( "ds_send_cond3", "ds_prcpdc_prcplist" );
-
- //저장 후, send에서 미완성처방을 빼기 위해, rownum을 순차적으로 만들어줌(원본과 결과 비교를 위함)
- for(var i = 0; i < prcpMain.ds_send_cond3.rowcount; i++){
- dsf_makeValue(prcpMain.ds_send_cond3, "rownum", "string", i, i);
- }
-
- if ( prcpchkflag == "drugdc" ) { //약/주사 D/C 요청 중에 반납요청된 것은 D/C 처리한다.( 저장로직에서 사용 )
- prcpMain.ds_send_cond14.copyData(prcpMain.ds_prcpdc_prcplist);
- }
-
- //setValue 후에 prcpdc 에 옮겨 놓은 prcplist를 클리어 한다.
- prcpMain.ds_prcpdc_prcplist.clearData();
-
- //저장진단정보(saveDiagInfo)
- prcpMain.ds_send_cond4.copyData(prcpMain.ds_main_diagcdlist);
-
- //dsf_createDs("ds_send_cond1");
-
- // SMMMO00100.xjs에서 실행 - in, out 데이터셋이 모두 처방 데이터셋임
- var submitRtn = prcpMain.fPrcpDCSave_submit(prcpgenrflag);
- utlf_addLog(" submitRtn : " + submitRtn );
- if( submitRtn == false ){
- return false;
- }
-
- if( rtnPstn == 1 ){
- return false;
- }
- /* CP 미래처방의 유전자 검사 동의서 처리
- 출력은 적용 시 모두 발생하고 실제 데이터는 배치 실행시에 발생한다. 20100514 by LYJ
- ===========================================================================================================================================*/
- //**********************미래처방에 유전자검사 처방이 있을 경우 출력물 모달을 띄운다 **********
- var atadagn = prcpMain.ds_tmp.getColumn(0, "atadagn"); //model.getValue("root/tmp/atadagn");
- if ( !utlf_isNull(atadagn) ) {
- prcpMain.ds_result_savedrprcplist.filter("tempcol13 == 'A' && status == 'I'");
- dsf_createDs("ds_atadPrcpNodes");
- ds_atadPrcpNodes.copyData(prcpMain.ds_result_savedrprcplist, true);
- prcpMain.ds_result_savedrprcplist.filter("");
-
- try {
- dsf_createDs("ds_hidden_geneunitlist"); // 16.02.03
- ds_hidden_atadinfo.clearData(); //model.removeNodeSet("/root/hidden/atadinfo");
- ds_hidden_geneunitlist.clearData(); //model.removeNodeSet("/root/hidden/geneunitlist");
- } catch(e) { }
- //var atadPrcpNodes = instance1.selectNodes("/root/result/savedrprcplist[tempcol13='A' and status='I']");
- //var Nodes = instance1.selectNodes("/root/result/savedrprcplist");
-
- if( ds_atadPrcpNodes.rowcount > 0 ) {
- // 확인필요
- //model.makeValue("/root/hidden/atadinfo", "");
- dsf_createDs("ds_hidden_atadinfo");
- for(var m = 0; m < ds_atadPrcpNodes.rowcount; m++ ){
- //var node = atadPrcpNodes.item(m);
- var atadNode = ds_atadPrcpNodes.getColumn(i, "tempcol14"); //node.selectSingleNode("tempcol14");
- var atadNodeArray = atadNode.split("▦");
-
- dsf_makeValue(prcpMain.ds_init_atadinfo, "instcd", "string", atadNodeArray[0]); // model.makeValue("/root/init/atadinfo/row/instcd", atadNodeArray[0]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "prcpdd", "string", atadNodeArray[1]); // model.makeValue("/root/init/atadinfo/row/prcpdd", atadNodeArray[1]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "prcpno", "string", atadNodeArray[2]); // model.makeValue("/root/init/atadinfo/row/prcpno", atadNodeArray[2]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "pid", "string", atadNodeArray[3]); // model.makeValue("/root/init/atadinfo/row/pid", atadNodeArray[3]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "orddd", "string", atadNodeArray[4]); // model.makeValue("/root/init/atadinfo/row/orddd", atadNodeArray[4]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "cretno", "string", atadNodeArray[5]); // model.makeValue("/root/init/atadinfo/row/cretno", atadNodeArray[5]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "patnm", "string", appf_getPatientInfoDetail("hngnm")); // model.makeValue("/root/init/atadinfo/row/patnm", getPatientInfoDetail("hngnm") );
-
-
- var gender = atadNodeArray[7].substr(6, 1);
- var regYY = parseInt(atadNodeArray[7].substr(0, 2));
-
- if(gender == '3' || gender == '4' || gender == '7' || gender == '8') {
- regYY += 2000;
- } else if(gender == '0' || gender == '9') {
- regYY += 1800;
- } else {
- regYY += 1900;
- }
- dsf_makeValue(prcpMain.ds_init_atadinfo, "rrgstno", "string", regYY + atadNodeArray[7].substr(2, 5)); // model.makeValue("/root/init/atadinfo/row/rrgstno", regYY + atadNodeArray[7].substr(2, 5));
- dsf_makeValue(prcpMain.ds_init_atadinfo, "drnm", "string", sysf_getUserInfo("usernm")); // model.makeValue("/root/init/atadinfo/row/drnm", getUserInfo("usernm") );
-
- gender = atadNodeArray[9].substr(6, 1);
- regYY = parseInt(atadNodeArray[9].substr(0, 2));
-
- if(gender == '3' || gender == '4' || gender == '7' || gender == '8') {
- regYY += 2000;
- } else if(gender == '0' || gender == '9') {
- regYY += 1800;
- } else {
- regYY += 1900;
- }
- dsf_makeValue(prcpMain.ds_init_atadinfo, "drbrthdd", "string", regYY + atadNodeArray[9].substr(2, 4)); // model.makeValue("/root/init/atadinfo/row/drbrthdd", regYY + atadNodeArray[9].substr(2, 4));
- dsf_makeValue(prcpMain.ds_init_atadinfo, "prcpcd", "string", atadNodeArray[10]); // model.makeValue("/root/init/atadinfo/row/prcpcd", atadNodeArray[10]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "prcpnm", "string", atadNodeArray[11]); // model.makeValue("/root/init/atadinfo/row/prcpnm", atadNodeArray[11]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "deptengabbr", "string", atadNodeArray[12]); // model.makeValue("/root/init/atadinfo/row/deptengabbr", atadNodeArray[12]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "roomcd", "string", atadNodeArray[13]); // model.makeValue("/root/init/atadinfo/row/roomcd", atadNodeArray[13]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "prcpgenrflag", "string", atadNodeArray[14]); // model.makeValue("/root/init/atadinfo/row/prcpgenrflag", atadNodeArray[14]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "centcd", "string", ds_paminfo.getColumn(0, "centnm")); // model.makeValue("/root/init/atadinfo/row/centcd", model.getValue("/root/paminfo/list/centnm") );
- dsf_makeValue(prcpMain.ds_init_atadinfo, "ocrtag", "string", atadNodeArray[16]); // model.makeValue("/root/init/atadinfo/row/ocrtag", atadNodeArray[16]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "formcd", "string", atadNodeArray[17]); // model.makeValue("/root/init/atadinfo/row/formcd", atadNodeArray[17]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "formfromdt", "string", atadNodeArray[18]); // model.makeValue("/root/init/atadinfo/row/formfromdt", atadNodeArray[18]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "pagenum", "string", atadNodeArray[19]); // model.makeValue("/root/init/atadinfo/row/pagenum", atadNodeArray[19]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "execprcpuniqno", "string", atadNodeArray[20]); // model.makeValue("/root/init/atadinfo/row/execprcpuniqno", atadNodeArray[20]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "pattelno", "string", atadNodeArray[21]); // model.makeValue("/root/init/atadinfo/row/pattelno", atadNodeArray[21]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "pataddr", "string", atadNodeArray[22]); // model.makeValue("/root/init/atadinfo/row/pataddr", atadNodeArray[22]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "patsex", "string", atadNodeArray[23]); // model.makeValue("/root/init/atadinfo/row/patsex", atadNodeArray[23]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "instnm", "string", atadNodeArray[24]); // model.makeValue("/root/init/atadinfo/row/instnm", atadNodeArray[24]);
- dsf_makeValue(prcpMain.ds_init_atadinfo, "insttelno", "string", atadNodeArray[25]); // model.makeValue("/root/init/atadinfo/row/insttelno", atadNodeArray[25]);
- dsf_copyDs(ds_hidden_atadinfo, prcpMain.ds_init_atadinfo, "after"); //copyNodeType("/root/hidden/atadinfo", "/root/init/atadinfo", "after");
- }
-
- var objArg = new Object();
- objArg.arg_ds_main_prcplist = ds_hidden_atadinfo;
-
- frmf_modal("SPMMO21000", "SPMMO21000", objArg, null, null, null, null, null, null, null, null, null, "M"); // 인체 유래물 동의서
-
- var atadInfoNodes = prcpMain.objects["ds_hidden_geneunitlist"]; // 인체 유래물 동의서 서식 데이터
- //var atadInfoNodes = instance1.selectNodes("/root/hidden/geneunitlist");
-
- if( ds_hidden_geneunitlist.rowcount > 0 ) { }
- else return false;
- }
-
- //**********************유전자 검사 관련 처방의 데이터를 생성하여 bach 실행시에 실제 발생될 데이터를 생성해 mmphptcp에 저장한다 **********
- //var atadInfoNodes = instance1.selectNodes("/root/hidden/geneunitlist");
- if( ds_hidden_geneunitlist.rowcount > 0 ) {
- for (var i = 0; i < ds_hidden_geneunitlist.rowcount; i++) {
- var j = i+1;
- var geneprnttmp = ds_hidden_geneunitlist.getColumn(j, "testresn") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "spcpossnterm") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "stdyresn") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "spcproccd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "spcpossntermcd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "spcuseaprvyn") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "patinfouseyn") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "pid") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "patnm") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "procernm") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "procerbrthdd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "rrgstno") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "rrgstno2") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "drnm") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "drbrthdd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "deptengabbr") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "roomcd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "prcpgenrflag") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "centcd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "ocrtag") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "histcd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "proceryn") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "orddd") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "logurl") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "pagenum") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "execprcpuniqno") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "pattelno") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "pataddr") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "patsex") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "instnm") + "▦" +
- ds_hidden_geneunitlist.getColumn(j, "insttelno");
-
- //var node = atadPrcpNodes.item(i);
- var atadNode = ds_atadPrcpNodes.getColumn(i, "tempcol14"); //node.selectSingleNode("tempcol14");
- var atadNodeArray = atadNode.split("▦");
- for (var z = 0; z < prcpMain.ds_result_savedrprcplist.rowcount; z++) {
- if (prcpMain.ds_result_savedrprcplist.getColumn(z, "prcpcd") == atadNodeArray[10]){ // model.getValue ("/root/result/savedrprcplist[" + z + "]/prcpcd")
- if ( utlf_isNull(prcpMain.ds_result_savedrprcplist.getColumn(z, "geneprnttmp")) ){
- prcpMain.ds_result_savedrprcplist.setColumn(z, "geneprnttmp", geneprnttmp); //model.setValue("/root/result/savedrprcplist[" + z + "]/geneprnttmp" ,geneprnttmp)
- break;
- }
- }
- }
- }
-
- var atadInfoNodeleng = ds_hidden_geneunitlist.getColumn(0, "pid"); // instance1.selectNodes("/root/hidden/geneunitlist/pid");
-
- if( ds_atadPrcpNodes.rowcount > 0 ) {
- for (var j = 0; j < ds_atadPrcpNodes.rowcount ; j++){
- if ( j != 0 ){ // j != 1
- // 확인필요
- ds_hidden_geneunitlist.copyRow(0, ds_hidden_geneunitlist, j); //model.copyNode("/root/hidden/geneunitlist[" +1 + "]", "/root/hidden/geneunitlist[" + j + "]");
- }
-
- //exeReportPreview("RPMMO21001", "XMLSTR" , "/root/hidden/geneunitlist", "" , "true" , "", "", "", "", "", "", "grp_report");
- var objDOM = rptf_createDOM(); // DOM 객체 설정
- rptf_setNodeListToDOM(objDOM, "/root/hidden/geneunitlist", ds_hidden_geneunitlist); // 데이터셋 1
-
- var objParam = new Object();
- objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
- var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
- rptf_exeReportPreview30(["RPMMO21001"],[objParam], option);
-
- var orddrid = ""
- // model.getValue("/root/hidden/atadinfo/row[" + j + "]/prcpgenrflag") == "O" || model.getValue("/root/hidden/atadinfo/row[" + j + "]/prcpgenrflag") == "S"
- if ( ds_hidden_atadinfo.getColumn(j, "prcpgenrflag") == "O" || ds_hidden_atadinfo(j, "prcpgenrflag") == "S" ) {
- orddrid = ds_paminfo.getColumn(0, "orddrid"); //model.getValue("/root/paminfo/list/orddrid")
- } else {
- orddrid = ds_paminfo.getColumn(0, "medispclid"); //model.getValue("/root/paminfo/list/medispclid");
- }
-
- if( ! fSaveOCRIF(ds_hidden_atadinfo.getColumn(j, "ocrtag")
- , ds_hidden_atadinfo.getColumn(j, "pid")
- , ds_hidden_atadinfo.getColumn(j, "orddd")
- , ds_hidden_atadinfo.getColumn(j, "cretno")
- , ds_hidden_atadinfo.getColumn(j, "prcpgenrflag")
- , ds_paminfo.getColumn(0, "orddeptcd")
- , orddrid
- , ds_hidden_atadinfo.getColumn(j, "formcd")
- , ds_hidden_atadinfo.getColumn(j, "formfromdt")
- , "", "", 1) ) {
- sysf_messageBox("유전자검사동의서 IF 저장시 오류발생", "I");
- }
- }
- }
- }
- }
- dsf_makeValue(prcpMain.ds_tmp, "atadagn", "string", "Y"); //model.makeValue("root/tmp/atadagn", "Y");
-
-
- // ===========CP 미래처방의 유전자 검사 동의서 처리 END================================================================================================================================
- if ( prcpMain.ds_result_divinfo.getColumn(0, "divchkflag") == "N" ) {
- if ( prcpMain.ds_result_prcplist.rowcount > 0 ) { // 용량분할, 저함량
- if ( !utlf_isNull(prcpMain.ds_result_prcplist.getColumn(0, "prcpcd")) ){
- var xpt = this.getOwnerFrame().position.x + 100;
- var ypt = this.getOwnerFrame().position.y + 50;
- var mon = sysf_getCurrentMonitorNumber();
- prcpMain.ds_main_prcplist.enableevent = false;
- var objArg = new Object();
- objArg.arg_ds_main_prcplist = prcpMain.ds_result_prcplist;
- frmf_modal("SPADB62400", "SPADB62400", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //modal ( "SPADB62400", mon, xpt, ypt, "SPADB62400", "/root/result", "/root/main/prcp", "", false );
-
- prcpMain.fClearSaveInstance();
- } else {}
-
- fPrcpDCSave_CP(prcpflag , rtnPstn, saveflag, "N");
- prcpMain.ds_main_prcplist.enableevent = true;
- return false;
- }
- } else if ( prcpMain.ds_result_divinfo.getColumn(0, "divchkflag") == "A") {
- //20090420 마정민 수정 항암용량분할은 기존에는 서버에서 불할되어 바로 저장체크로직으로 갔지만 보험제한규정에 걸려서
- //다시저장할때 분할된 내용이 화면이 표시가 되지 않아 용량분할이 되지 않음.
- //항암용량분할도 화면에 표시하게 수정
-
- prcpMain.ds_main_prcplist.clearData();
- prcpMain.ds_main_prcplist.copyData(prcpMain.ds_result_prcplist);
-
- // for ( i = 0; i < prcpMain.ds_result_prcplist.rowcount; i++ ){
- // var addRow = prcpMain.ds_main_prcplist.addRow();
- // prcpMain.ds_main_prcplist.copyRow(addRow, prcpMain.ds_result_prcplist, i);
- // }
- fPrcpDCSave_CP(prcpflag , rtnPstn, saveflag, "N");
- return false;
- }
-
- //실패시, 인스턴스 값을 확인하기 위해서 값을 copy
- dsf_createDs("ds_result_copy");
- dsf_copyDs(ds_result_copy , prcpMain.ds_result_prcplist, "replace");
-
- //CP일 경우, 미완성 처방을 인스턴스로 가지고만 있음(팝업은 저장 후 open)
- if(prcpflag == "6") {
- if( prcpMain.ds_result_savedrprcplist.getCaseCount("status == 'U' || status == 'D'") ){ // instance1.selectSingleNode("/root/result/savedrprcplist[status='U' or status='D']")
- dsf_createDs("ds_DetlNodeList");
- prcpMain.ds_result_savedrprcplist.filter("status == 'U' || status == 'D'");
- ds_DetlNodeList.copyData(prcpMain.ds_result_savedrprcplist, true);
- prcpMain.ds_result_savedrprcplist.filter("");
- // var ds_DetlNodeList = instance1.selectNodes("/root/result/savedrprcplist[status='U' or status='D']");
-
- for(var i = 0; i < ds_DetlNodeList.rowcount; i++){
- //var node = DetlNodeList.item(i);
- var prcpnoNode = ds_DetlNodeList.getColumn(i, "prcpno"); //node.selectSingleNode("prcpno");
- var etcLnkSpecNode = ds_DetlNodeList.getColumn(i, "etclnkspec"); //node.selectSingleNode("etclnkspec");
- var tmpstatNode = ds_DetlNodeList.getColumn(i, "tmpstat"); //node.selectSingleNode("tmpstat");
- var etcLnkSpecText = etcLnkSpecNode;
- }
- }
- }
-
- //오류메세지 팝업 분기
- if( ErrExistYN_SMMMO00110 != "Y" ) ErrExistYN_SMMMO00110 = "N";
-
- if ( prcpMain.ds_result_prcperrlist.rowcount > 0 ) {
- if ( !utlf_isNull(prcpMain.ds_result_prcperrlist.getColumn(0, "prcpcd")) ){
- var flag = "";
- var errorCnt = 0;
- var notErrorCnt = 0;
-
- //처방데이터구성 인스턴스 리턴 후, 처방데이터구성 전 인스턴스에서 오류처방(미완성처방)을 제한다
- if( prcpMain.ds_send_cond3.rowcount > 0 ){
- if( prcpMain.ds_result_prcperrlist.rowcount != prcpMain.ds_send_cond3.rowcount ){
- if(prcpMain.ds_result_savedrprcplist.rowcount > 0){
- for ( var k = 0; k < prcpMain.ds_send_cond3.rowcount; k++ ){
- prcpMain.ds_send_cond3.setColumn(k, "tempcol5", "D"); //model.setValue("/root/send/cond3/prcplist[" + k + "]/tempcol5", "D");
- }
-
- for(var k = 0; k < prcpMain.ds_result_savedrprcplist.rowcount; k++){
- //var node = valPrcpList.item(k);
- var rownumNode = prcpMain.ds_result_savedrprcplist.getColumn(k, "rownum"); //node.selectSingleNode("rownum");
- if( !utlf_isNull(rownumNode) ){
- if( prcpMain.ds_send_cond3.getCaseCount("rownum == '"+rownumNode+"'") > 0 ){
- var idx = prcpMain.ds_send_cond3.findRow("rownum", rownumNode);
- prcpMain.ds_send_cond3.setColumn(idx, "tempcol5", (k + 1));
- }
- }
- }
- }
- for(var j = prcpMain.ds_send_cond3.rowcount-1; j >= 0; j--){
- if( prcpMain.ds_send_cond3.getColumn(j, "tempcol5") == "D" ) {
- prcpMain.ds_send_cond3.deleteRow(j);
- }
- }
- }
- }
- //인스턴스 제거 end
-
- //병용금기, 연령금기 팝업은 미리 띄운다
- for ( var i = 0; i < prcpMain.ds_result_prcperrlist.rowcount; i++ ) {
- flag = prcpMain.ds_result_prcperrlist.getColumn(i, "flag");
- if ( flag == "1" ) {
- errorCnt++;
- }else{
- notErrorCnt++;
- }
- }
-
- if ( errorCnt > 0 ){
- //오류처방 리턴 여부 (CP일 경우, 오류처방이 있어도 제외한 처방데이터를 함께 리턴하므로 오류메세지 팝업은 skip)
- ErrExistYN_SMMMO00110 = "Y";
- }
- /*
- if( notErrorCnt > 0 ){
- //2008-09-28 마정민 수정
- frmf_clearParameter ( "SPMMO16100_rtn1" );
-
- var xpt = this.getOwnerFrame().position.x + 100;
- var ypt = this.getOwnerFrame().position.y + 50;
- var mon = sysf_getCurrentMonitorNumber();
-
- var objArg = new Object();
- objArg.ds_result_prcplist = prcpMain.ds_result_prcplist; // 확인 필요
-
- // SPMMO16100 화면 작성 후 확인 필요
- frmf_modal("SPMMO16100", "SPMMO16100", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); //병용연령금기
-
- if ( frmf_getParameter ( "SPMMO16100_rtn1" ) != "Y" ) { //CP미래처방은 취소 블록킹 처리했으므로 N일 경우 없음...(2009.05.04 JJE)
- for(var i = 0; i < prcpMain.ds_main_prcplist.rowcount; i++) {
- prcpMain.ds_main_prcplist.setColumn(i, "tempcol19", "");
- }
- return false;
- } else {
- if ( frmf_getParameter ( "SPMMO16100_rtn2" ) == "D" ){
- fPrcpDCSave_CP(prcpflag , rtnPstn, saveflag, "N");
- return false;
- }
- }
- }
- */
- }
- }
-
- if( utlf_isNull(iPrcpddNode) ){
- if( prcpMain.ds_result_savedrprcplist.rowcount > 0 ){
- iPrcp = prcpMain.ds_result_savedrprcplist.getColumn(0, "prcpdd");
- }
- }else{
- iPrcp = iPrcpddNode;
- }
-
- if( !utlf_isNull(iPrcp) ){
- prcpMain.ds_save_saveflaginfo.setColumn(0, "prcpdd", iPrcp);
- prcpMain.ds_send_cond1.copyData(prcpMain.ds_save_saveflaginfo);
- }
-
- //미래처방 사전 체크(1회) (s)
- if ( prcpMain.ds_init.getColumn(0, "restantimicyn") == "Y" ) { // 제한항생제처방
- if ( !prcpMain.fAntiBioticsChk() ) {
- prcpMain.fClearSaveInstance();
- return false;
- }
- }
- var qestflagcnt = 0;
- //var limprcplist = model.instances(0).selectNodes( "/root/result/limprcplist" ); // 보험제한처방
- if ( prcpMain.ds_result_limprcplist.rowcount > 0 ) {
- for ( var i = 0; i < prcpMain.ds_result_limprcplist.rowcount; i++ ) {
- if ( prcpMain.ds_result_limprcplist.getColumn(i, "qestflag") != "M" ) {
- qestflagcnt++;
- }
- }
- if ( qestflagcnt == 0 && getRegistryPrcp ( "limprcp|"+utlf_getCurrentDate()) == "Y" ) {
- } else {
- if ( !utlf_isNull(prcpMain.ds_result_limprcplist.getColumn(0, "calcscorcd")) ){
- var xpt = this.getOwnerFrame().position.x + 100; //window.screenleft + 100;
- var ypt = this.getOwnerFrame().position.y + 50; //window.screenTop + 50;
- var mon = sysf_getCurrentMonitorNumber();
-
- var rowid = 0;
- for ( var k = 0; k < prcpMain.ds_result_limprcplist.rowcount; k++ ){
- rowid = eval(prcpMain.ds_result_limprcplist.getColumn(k, "rowid") + 1); // 17.05.24, 2.0은 0부터 시작 1.0은 1부터 시작하는 로우값 때문에 +1 추가
-
- if( utlf_isNull(prcpMain.ds_result_limprcplist.getColumnInfo("displayprcpnm")) ) prcpMain.ds_result_limprcplist.addColumn("displayprcpnm", "string"); // 17.05.24
-
- var displayprcpnm = rowid + ". " + prcpMain.ds_result_limprcplist.getColumn(k, "calcscorcd") + "\n" + "[" + prcpMain.ds_result_limprcplist.getColumn(k, "prcpnm") + "]";
- prcpMain.ds_result_limprcplist.setColumn(k, "displayprcpnm", displayprcpnm);
- }
- var objArg = new Object();
- objArg.arg_ds_result_limprcplist = prcpMain.ds_result_limprcplist;
-
- frmf_modal("SPMMO00900", "SPMMO00900", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M"); // modal ( "SPMMO00900", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false );
-
- prcpMain.ds_result_limprcplist.clearData();
- if ( prcpMain.frmf_getParameter ( "SPMMO00900_rtnyn" ) == "Y" ) {
- prcpMain.frmf_clearParameter ( "SPMMO00900_rtnyn" );
- var savePrcpListLen = prcpMain.ds_main_prcplist.getCaseCount("status != 'S'");
- var saveDiagListLen = prcpMain.ds_main_diagcdlist.getCaseCount("status != 'S' && status != '-'");
- if ( savePrcpListLen > 0 || saveDiagListLen > 0 ) {
- //fPrcpSave( "", "", "", "N" );
- fPrcpDCSave_CP(prcpflag , rtnPstn, saveflag, "N");
- }
- return false;
- } else if ( prcpMain.frmf_getParameter ( "SPMMO00900_rtnyn" ) == "C" ) {
- //msg만 있는 것이라면 그냥 진행함
- } else {
- return false;
- }
- }
- }
- } // 보험제한처방끝
-
- if ( !utlf_isNull( prcpMain.ds_result_savetnmlist.getColumn(0, "pid") ) || !utlf_isNull( prcpMain.ds_result_savecncrlist.getColumn(0, "pid") )) { //병기분류
- var xpt = this.getOwnerFrame().position.x + 300; //window.screenleft + 300;
- var ypt = this.getOwnerFrame().position.y; //window.screenTop;
- var mon = sysf_getCurrentMonitorNumber();
-
- var objArg = new Object();
- objArg.arg_ds_tempresult_savetnmlist = prcpMain.ds_result_savetnmlist;
- objArg.arg_ds_tempresult_savecncrlist = prcpMain.ds_result_savecncrlist; // 확인 필요
-
- //modal ( "SPMMO08400", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/tempresult", "", false );
- frmf_modal("SPMMO08400", "SPMMO08400", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M");
-
- if ( frmf_getParameter ( "SPMMO08400_rtn1" ) != "Y" ){
- return false;
- }
- }
-
- prcpMain.fClearSaveInstance();
-
- if ( savekindflag != 1 && signyn == "Y" ) {
- var signbfcnts = prcpMain.ds_result_signprcplist.getColumn(0, "signbfcnts"); //model.getValue ( "/root/result/signprcplist/signprcp_signbfcnts" );
- var setnode = "ds_result_signprcplist"; //prcpMain.ds_result_signprcplist.getColumn(0, "signaftcnts"); // "/root/result/signprcplist/signprcp_signaftcnts";
- var signid = sysf_getUserInfo ("userid");
- var signopt = false;
- if ( prcpgenrflag != "O" ) {
- signopt = true;
- }
-
- ////인증 구분자 추가
- if( prcpflag == "6" ){
- //CP 일 때, 인증저장 2번 뜨는 것을 막는다
- if( questionYN_SMMMO00110 == "Y" ){
- var signid = sysf_getUserInfo ("userid");
- signopt = false;
- }
- }
- ////인증 구분자 추가 끝
- //처방인증
- var v_stext = prcpMain.lf_saveSign ( signbfcnts, signid, signopt, setnode );
- if ( v_stext != "N" ) {
- if (utlf_isNull( v_stext )) {
- stopSavePrcpYN_SMMMO00110 = "Y";
- //fRemoveSaveNodeList();
- return false;
- }
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_signprcplist" ); //의사처방데이터
- signopt = false; //진단에서 또 안띄우기 위해서 false로 수정
- }
- signbfcnts = prcpMain.ds_result_signdiaglist.getColumn(0, "signbfcnts"); //model.getValue ( "/root/result/signdiaglist/signbfcnts" );
- setnode = prcpMain.ds_result_signdiaglist.getColumn(0, "signaftcnts"); //"/root/result/signdiaglist/signaftcnts";
- //진단인증
- v_stext = prcpMain.lf_saveSign ( signbfcnts, signid, signopt, setnode );
- if ( v_stext != "N") {
- if (utlf_isNull(v_stext)) {
- stopSavePrcpYN_SMMMO00110 = "Y";
- //fRemoveSaveNodeList();
- return false;
- }
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_signprcplist" ); //의사처방데이터
- }
- }
-
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_savedrprcplist" ); //의사처방데이터
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_saveexecprcplist" ); //실시처방 저장데이터
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_savediaglist" ); //진단저장 저장데이터
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_savepamlist" ); //원무정보 저장데이터
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_savematrprcplist" ); //재료처방정보 저장데이터
-
- if ( prcpgenrflag != "O" ) {
- //퇴원후 외래처방 저장 setting
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_dschflaginfo" );
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_dschpamlist" );
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_dschdrprcplist" );
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_dschexecprcplist" );
- prcpMain.fAppendSaveNode( "ds_send_cond2", "ds_result_dschmatrprcplist" );
-
- if(ErrExistYN_SMMMO00110 == "Y"){
- //미완성 처방을 저장하기 위해 send에 append
- fAppendSaveNode ( "ds_send_saveinvaliprcplist", "ds_result_saveinvaliprcplist" );
- ds_result_saveinvaliprcplist.clearData(); //model.removeNodeset("/root/result/saveinvaliprcplist"); //2008.09.03 추가
- }
- }
- //저장(return:오류처방 조회) 전 오류처방 받을 인스턴스 비움.
- ds_main_invalprcplist.clearData(); //model.removeNodeset ("/root/main/invalprcplist/prcplist");
- if( !utlf_isNull(this.objects["ds_main_invalprcplist_prcpetccnts"]) ) ds_main_invalprcplist_prcpetccnts.clearData();
-
- prcpMain.fPrcpDCSave_submit2(prcpflag, prcpgenrflag);
-
-
- return true;
- }
- }
- ]]></Script>
|