SMMNR00700.js 189 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932
  1. /*
  2. 간호일지I(SMMNR00700.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xGrupInfoPath = "/root/main/srchtoolinfo/grupinfo/gruplist"; // SET 그룹 정보
  7. //var xStmtSetListPath = "/root/main/srchtoolinfo/stmtsetinfo/stmtsetlist"; // SET 진술문 정보
  8. var xHiddenStmtSetInfoPath = "/root/hidden/stmtsetinfo"; //20080621 김홍점 추가 set그룹 hidden
  9. var xHiddenSrchToolInfoPath = "/root/hidden/srchtoolinfo/stmtinfo/stmtlist"; //20080621 김홍점 추가 진술문조회 hidden
  10. var xHiddenNSrchToolInfoPath = "/root/hidden/srchtoolinfo/stmtinfo/nstmtlist"; //20080621 김홍점 추가 진술문조회 hidden
  11. var xNStmtSetListPath = "/root/main/stmtsetinfo/nstmtsetlist"; // 20080621 김홍점 SET 진술문 정보
  12. var xDStmtSetListPath = "/root/main/stmtsetinfo/dstmtsetlist"; // 20080621 김홍점 SET 진술문 정보
  13. var xAStmtSetListPath = "/root/main/stmtsetinfo/astmtsetlist"; // 20080621 김홍점 SET 진술문 정보
  14. var xRStmtSetListPath = "/root/main/stmtsetinfo/rstmtsetlist"; // 20080621 김홍점 SET 진술문 정보
  15. var xStmtInfoPath = "/root/main/srchtoolinfo/stmtinfo/stmtlist"; // 진술문 정보
  16. var xSrchToolCondPath = "/root/main/cond/srchtool"; // 검색도구 조건
  17. var xRecSaveCondPath = "/root/main/cond/recsave"; // 저장도구 조건
  18. var xRecSrchCondPath = "/root/main/cond/recsrch"; // 기록조회 조건
  19. var xNursingRecordListPath = "/root/main/recinfo/nursingrecordinfo/nursingrecordlist"; // 간호기록 내역
  20. var xCareDiagListPath = "/root/main/recinfo/carediaginfo/carediaglist"; // 간호진단내역
  21. var xHiddenCareDiagListPath = "/root/hidden/carediaginfo/carediaglist"; // 삭제를 위한 타인의 간호기록내역 존재 여부
  22. var xPamInfoPath = "/root/main/paminfo/pamlist"; // 환자정보
  23. var xRecUsrSetListPath = "/root/init/recusrinfo/usersetlist"; // 기록자정보
  24. //var xStmtSaveCondPath = "/root/main/cond/stmtsave"; // 진술문 검색도구 에서 저장시 기록일자 조건 20080621 김홍점
  25. var xHiddenGrupInfoPath = "/root/hidden/grupinfo/gruplist"; //20080621 김홍점 추가 set그룹 hidden
  26. var xLrgGrupInfoPath = "/root/main/grupinfo/lrggruplist" ;//20080621 김홍점 추가 set그룹
  27. var xMdlGrupInfoPath = "/root/main/grupinfo/mdlgruplist" ;//20080621 김홍점 추가 set그룹
  28. var xSmlGrupInfoPath = "/root/main/grupinfo/smlgruplist" ;//20080621 김홍점 추가 set그룹
  29. var xSmlGrupInfoPath2 = "/root/main/grupinfo/smlgruplist2" ;//20080621 김홍점 추가 set그룹
  30. var xNSrchNursDiagLrgListPath = "/root/main/srchnursdiaginfo/lrglist"; // 20080621 김홍점 간호진단검색 정보
  31. var xNSrchNursDiagMdlListPath = "/root/main/srchnursdiaginfo/mdllist"; // 20080621 김홍점 간호진단검색 정보
  32. var xNSrchNursDiagSmlListPath = "/root/main/srchnursdiaginfo/smllist"; // 20080621 김홍점 간호진단검색 정보
  33. var xNSrchNursDiagSmlListPath2 = "/root/main/srchnursdiaginfo/smllist2"; // 20080621 김홍점 간호진단검색 정보
  34. var xNSrchNursDiagInfoPath = "/root/main/srchnursdiaginfo/srchdiaglist"; // 20080621 김홍점 간호진단검색 정보
  35. var xSaveSetInfoPath = "/root/hidden/savesetinfo/savesetlist";//20080621 김홍점 추가 set그룹
  36. var xSignPath = "/root/main/signSaveData/saveDataList";//인증저장관련노드
  37. var xSignDiagPath = "/root/main/signSaveData/saveDiagList";//인증저장관련노드 사용안함.
  38. // color 색상표
  39. var style = new Array("#FFFFCC","#FFCCFF","#CCFFFF","#CCFF66","#FF3300","#CC00FF","#99CCCC","#CCCCFF","#00CC99","#FF3366",
  40. "#FFFF99","#FF99FF","#99FFFF","#99CC66","#FF6600","#CC66FF","#66CCCC","#9999CC","#33FFCC","#FF3399",
  41. "#FFFF66","#FF66FF","#66FFFF ","#66CC33","#FF9966","#9900FF","#33CCCC","#666699","#33CC66","#FF6699",
  42. "#FFFF33","#FF33FF","#33FFFF","#33CC00","#FF9933","#9933CC","#00CCCC","#333366","#33CC99","#FF6633",
  43. "#FFFF00","#FF00FF","#00FFFF","#00CC33","#FF9900","#9933FF","#009999","#000099","#66CC99","#CC6633");
  44. var sSrchToolStatus = "";
  45. var sRecFlag = "";
  46. var sRecLnkKey = "";
  47. var sPid = ""; // 환자번호
  48. var sIndd = ""; // 입원일자
  49. var sOrddd = ""; // 진료일자
  50. var sCretNo = ""; // 환자 일자별 일련번호
  51. var sInstcd = ""; // 기관코드
  52. var sIOFlag = ""; // 입원/외래 구분
  53. var sWardCD = "";
  54. var sRoomCD = "";
  55. var sOrdDeptCd = ""; // 진료과코드
  56. var sOrdDrId = ""; // 진료의사ID
  57. var sSrchPopup = ""; // 진단명 클릭으로 검색 구분
  58. var gDiagGrupcd = ""; // 진단내역, 진술문set, 간호진단검색 클릭 진단 그룹Code
  59. var gDiagStmtcd = ""; // 진단내역, 진술문set, 간호진단검색 클릭 진단 진술문Code
  60. var gDiagRecVerNo = "";//20080621 김홍점 추가 진단버젼번호
  61. var gDiagStmtNm = "";//20080621 김홍점 추가 진단명
  62. var gReturnGrupcd = "";//20080621 김홍점 추가
  63. // 응급의료센터 관련 변수_경북대 (2011.02.24 Ahn)
  64. var eORDTYPE = "";
  65. var eINSTCD = "";
  66. var eINDD = "";
  67. var eCRETNO = "";
  68. var eERDEPTCD = "";
  69. var eERFLAG = "";
  70. //---------(20110228) 경북대
  71. var gcurrentpid = "";
  72. var gpidPath = "/root/temp/mypatsettinginfo/settingpatient/settingpatientlist"
  73. //---------(20110228) 경북대
  74. // 경북대 환자 콤보 리스트 경로
  75. var erPatPidPath = "/root/temp/mypatsettinginfo/patientgrup/patientgruplist";
  76. // 경북대 기록지 구분용 (기록 유무 표시) _ 2011.03.10 (ahn)
  77. var eRECFLAG = "erCare"; // 간호일지
  78. var grdNm="";
  79. var signtime = ""; //인증저장 안뜨는 허용시간( EX) 10이면 10분동안
  80. var vsettime = ""; //인증저장시간.
  81. /**
  82. * @group :
  83. * @ver : 2007.04.23
  84. * @by : 이은영
  85. * @---------------------------------------------------
  86. * @type : function
  87. * @access : public
  88. * @desc : 화면 초기화
  89. * @param :
  90. * @return :
  91. * @---------------------------------------------------
  92. */
  93. function fInitialize(pFlag){
  94. if(pFlag == null){
  95. // 간호하드코딩 테이블 조회_20090415(ByJA)
  96. var pCode = "'172', 'T84', 'U31'"; // 조회할 CdGrupID 코드정보
  97. var pDate = getCurrentDate(); //조회기준일자
  98. fGetNursHardCdInfo(pCode, pDate);
  99. /* 중환자실 부서 조회 ( 2011.03.25 Ahn)
  100. * 내환자 저장 시 다음환자 넘어가지 않는 부서 추가 ( 2011.04.18)
  101. * 간호일지, 임상관찰기록 화면 공통코드 신규 생성 ('T30')
  102. */
  103. model.makeValue("/root/send/cdgpid", "T30");
  104. submit("TRMNW04001");
  105. var instUseYN = model.getValue("/root/code/codeinfo/codelist[cdgrupid ='172']/cdid");
  106. signtime = model.getValue("/root/code/codeinfo/codelist[cdgrupid ='T84']/cdid");
  107. if(signtime == "" || signtime == null) {
  108. signtime = 0;
  109. }
  110. if(instUseYN == "Y"){
  111. grid01Cnt = eval(getNodesetCount("/root/hidden/popmenu/nursrec_befcret/menu"));
  112. grid02Cnt = eval(getNodesetCount("/root/hidden/popmenu/nursdiag/menu"));
  113. grid03Cnt = eval(getNodesetCount("/root/hidden/popmenu/endnursdiag/menu"));
  114. model.makeValue("/root/hidden/popmenu/nursrec_befcret/menu["+(grid01Cnt+1)+"]/name", "환자교육내용 기록");
  115. model.makeValue("/root/hidden/popmenu/nursrec_befcret/menu["+(grid01Cnt+1)+"]/func", "fJCIEduRec");
  116. model.makeValue("/root/hidden/popmenu/nursdiag/menu["+(grid02Cnt+1)+"]/name", "Care Plan");
  117. model.makeValue("/root/hidden/popmenu/nursdiag/menu["+(grid02Cnt+1)+"]/func", "fCarePlan");
  118. model.makeValue("/root/hidden/popmenu/endnursdiag/menu["+(grid03Cnt+1)+"]/name", "Care Plan");
  119. model.makeValue("/root/hidden/popmenu/endnursdiag/menu["+(grid03Cnt+1)+"]/func", "fCarePlan");
  120. }
  121. currentdate = getCurrentDate();
  122. currenttime = getCurrentTime();
  123. //병동코드 조회
  124. fGetCareComWardList();
  125. //---------------(20101209) 경북대
  126. //내환자 조회
  127. //fGetSettingPatientList();
  128. //내환자 조회-간호일지용
  129. fGetSettingPatientList_type1(); //--테스트완료 , XRW를 변경하면됨
  130. //---------------(20101209) 경북대
  131. //----------------------------
  132. //응급의료센터 부서코드 추출_ 경북대 (2011.02.24 Ahn)
  133. model.makeValue("/root/send/cdgrupid", "'002'");
  134. model.makeValue("/root/send/srchdd" , getCurrentDate()); // 조회기준일자
  135. if(submit("TRMNW00001", false)){
  136. eERDEPTCD = model.getvalue("/root/code/codeinfo/codelist[cdgrupid='002']/cdid");
  137. }
  138. //간호일지의 set을 펼쳤을 경우 전체 선택박스 기능 요청 20100510 khj
  139. grd_nursingd.fixedcellcheckbox(0, grd_nursingd.colRef("check")) = true;
  140. grd_data.fixedcellcheckbox(0, grd_data.colRef("check") ) = true;
  141. grd_action.fixedcellcheckbox(0, grd_action.colRef("check") ) = true;
  142. grd_result.fixedcellcheckbox(0, grd_result.colRef("check") ) = true;
  143. }
  144. if ( checkOpener() && opener.javascript.getParameter("SMMNR00700_param") == "MMR00100" ){//진료기록에서 간호일지 오픈시
  145. btn_opendiag.dispatch("DOMActivate");
  146. btn_closediag.disabled = "true";
  147. btn_certsaverec.disabled = "true";
  148. btn_freetextsel.disabled = "true";
  149. btn_certsaverec.refresh();
  150. } else{
  151. btn_closediag.dispatch("DOMActivate");
  152. //button7.disabled = true; //추후 삭제(교육중에는 사용 못하도록)
  153. }
  154. // 검색 조건
  155. model.toggle("case_set");
  156. model.setValue(xSrchToolCondPath+"/grupflag","1");
  157. //model.setValue(xSrchToolCondPath+"/freetextdnarflag","1D");
  158. // 저장조건
  159. model.setValue(xRecSaveCondPath+"/recdateflag", "A"); // 자동
  160. //model.setValue(xRecSaveCondPath+"/recdnarflag", "1D"); // dnar 구분
  161. // 기록 조회 조건
  162. if(model.getValue(xRecSrchCondPath+"/todd") == "" && model.getValue(xRecSrchCondPath+"/fromdd") == "") {//조회조건초기화안하도록변경(조회일자)
  163. model.setValue(xRecSrchCondPath+"/todd", getCurrentDate()); // 오늘 일자
  164. //model.setValue(xRecSrchCondPath+"/fromdd", getDateCalc(getCurrentDate(),6)); // 1주일 전
  165. model.setValue(xRecSrchCondPath+"/fromdd", getCurrentDate());//20080715 2008-05-27[차]1.간호일지_SMMNR00700_김영림.xls 요구사항에 의해 당일 조회
  166. }
  167. if(model.getValue(xRecSrchCondPath+"/dnarflag")=="" || model.getValue(xRecSrchCondPath+"/sortseq")=="" || model.getValue(xRecSrchCondPath+"/recusrid")==""){//조회조건초기화안하도록변경(조회옵션)
  168. model.setValue(xRecSrchCondPath+"/dnarflag", "%"); // DNAR 구분
  169. model.setValue(xRecSrchCondPath+"/sortseq", "D"); // A : 오름차순, D : 내림차순
  170. model.setValue(xRecSrchCondPath+"/recusrid", "%");//기록자 조회 전체
  171. }
  172. fChangedRecTime();
  173. model.setValue(xRecSrchCondPath+"/certrecflag", "C"); // S : 전체선택, C : 전체취소
  174. model.setValue(xRecSrchCondPath+"/carediagflag", "A"); // C : 진행중, T : 전체조회 (삭제포함), A : 전체조회 (삭제 제외)
  175. model.removenodeset(xNursingRecordListPath);
  176. model.removenodeset(xCareDiagListPath);
  177. grd_carerecspec.rebuild();
  178. grd_carediagspec.rebuild();
  179. if(model.getValue(xRecSrchCondPath+"/recsrchflag") =="") { //조회조건초기화안하도록변경(구분)
  180. if ( checkOpener() && opener.javascript.getParameter("SMMNR00700_param") == "MMR00100" ){//진료기록에서 간호일지 오픈시
  181. model.setValue(xRecSrchCondPath+"/recsrchflag", "NR^TR^DR"); // NR : 간호일지만, TR : 검사기록, DR : 타기록지연계
  182. } else {
  183. model.setValue(xRecSrchCondPath+"/recsrchflag", "NR^DR"); // NR : 간호일지만, TR : 검사기록, DR : 타기록지연계
  184. fSelectedSrchTool("SET"); // 검색도구 선택
  185. fSettingLrgMdlSml("A",grd_lrg,xLrgGrupInfoPath); // SET 그룹 정보 조회
  186. }
  187. }
  188. /*
  189. - 기록 구분 정보
  190. SMMNR03400_ParamBase : recflag▦dutplaccd▦reclnkkey => 기록구분▦부서코드▦기록연계키
  191. - 기록구분(recflag) :
  192. O : 외래, F : 기능검사, I : 주사실,
  193. D : DSC, S : 전문간호, H : 가정간호,
  194. E : 응급실, A : 마취과, R : 회복실,
  195. L : 투석실
  196. */
  197. if(checkOpener()){
  198. var sParamInfo = opener.javascript.getParameter("SMMNR00700_ParamBase");
  199. sRecFlag = getArrayData(sParamInfo,1,0); // 기록구분
  200. sRecLnkKey = getArrayData(sParamInfo,1,2); // 기록연계키
  201. }
  202. /*
  203. - 기록구분 :
  204. G : 일반 기록
  205. R : 회복실 기록
  206. */
  207. if(sRecFlag == null || sRecFlag == ""){
  208. sRecFlag = "G"; // 일반 기록
  209. }
  210. // 환자정보 조회
  211. var sPamInfo = getGlobalVariable("paminfo");
  212. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  213. if(sPamInfo == ""){
  214. messageBox("환자를 먼저","C002");
  215. fSettingPamInfo(true);
  216. return;
  217. }
  218. sPid = model.getValue(xPamInfoPath+"/pid"); // 환자번호
  219. sCretNo = model.getValue(xPamInfoPath+"/cretno"); // 환자 일자별 일련번호
  220. sInstcd = model.getValue(xPamInfoPath+"/instcd"); // 기관코드
  221. sIOFlag = model.getValue(xPamInfoPath+"/ioflag"); // 입원/외래 구분
  222. sOrdDeptCd = model.getValue(xPamInfoPath+"/orddeptcd"); // 진료과코드
  223. sOrdDrId = model.getValue(xPamInfoPath+"/medispclid"); // 진료의사ID
  224. sWardCD = model.getValue(xPamInfoPath+"/wardcd");
  225. sRoomCD = model.getValue(xPamInfoPath+"/roomcd");
  226. sSectionCD = model.getValue(xPamInfoPath+"/sectioncd");
  227. // 응급실일 경우 (2011.02.24 Ahn)
  228. fGetWardChngInfo("Y", pFlag);
  229. if(pFlag == null || pFlag == "SettingPat"){
  230. fGetCareComRoomList(sWardCD);
  231. fGetCareComPatList(sWardCD, sRoomCD, cmb_zone.value, eRECFLAG); // 환자 조회시 구역코드 추가 (2011.03.03 Ahn)
  232. cmb_wardcd.value = sWardCD;
  233. cmb_roomcd.value = sRoomCD;
  234. cmb_pid.value = sPid;
  235. //ipt_pid.value = sPid;
  236. cmb_mypat.value = sPid;
  237. }else if(pFlag == "SrchPat"){
  238. cmb_mypat.value = sPid;
  239. }
  240. model.setValue("/root/main/patinfo/pid", sPid);
  241. // model.setValue("/root/main/patinfo/patnm", model.getValue(xPamInfoPath+"/hngnm"));
  242. // model.setValue("/root/main/patinfo/gndrage", model.getValue(xPamInfoPath+"/sex") + "/" + model.getValue(xPamInfoPath+"/age") );
  243. if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){
  244. sIndd = model.getValue(xPamInfoPath+"/indd"); // 입원일자
  245. sOrddd = "-"; // 진료일자
  246. }else{
  247. sIndd = "-"; // 입원일자
  248. sOrddd = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
  249. }
  250. fSearchRecInfo(model.getValue(xRecSrchCondPath+"/recsrchflag"));
  251. cmb_recusr.refresh();
  252. }
  253. /**
  254. * @group :
  255. * @ver : 2008.05.13
  256. * @by : 이은영
  257. * @---------------------------------------------------
  258. * @type : function
  259. * @access : public
  260. * @desc : 환자 선택시 상단정보 변경
  261. * @param :
  262. * @return :
  263. * @---------------------------------------------------
  264. */
  265. function fSetParam(pFlag, pIndex){
  266. if(getNodesetCount(xPamInfoPath) > 0){
  267. model.removenodeset(xPamInfoPath);
  268. }
  269. if(pFlag == "SrchPat"){
  270. //응급실 상단추가----------(2011.02.25 Ahn) 경북대
  271. if ( model.getValue("/root/main/cond/wardcd") != eERDEPTCD ) {
  272. // 응급 x
  273. sIOFlag = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/ordtype" );
  274. sPid = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/pid" );
  275. sIndd = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/indd" );
  276. sCretno = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/cretno" );
  277. sInstcd = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/instcd" );
  278. cmb_mypat.value = "";
  279. var param = "I" + "▦" // 응급의료센터 환자 상단정보 올라가지 않는 오류해결_20091022(ByJA)-응급실화면사용안함. // "I" + "▦"// 원본_20091022(ByJA)
  280. + sPid + "▦"
  281. + sIndd + "▦"
  282. + sCretno + "▦"
  283. + sInstcd + "▦"
  284. + "▦" ;
  285. }else{
  286. //응급
  287. eORDTYPE = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/ordtype" );
  288. ePID = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/pid" );
  289. eINDD = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/indd" );
  290. eCRETNO = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/cretno" );
  291. eINSTCD = model.getValue("/root/temp/mypatsettinginfo/patientgrup/patientgruplist["+ pIndex +"]/instcd" );
  292. //var sSrchdd = model.getValue(xPathPatList + "[" + grd_patlist.row + "]/dschdd" );
  293. var param = "E" + "▦"
  294. + ePID + "▦"
  295. + eINDD + "▦"
  296. + eCRETNO + "▦"
  297. + eINSTCD + "▦" ;
  298. //+ sSrchdd + "▦" ;
  299. }
  300. }else if(pFlag == "SettingPat"){
  301. sIOFlag = model.getValue("/root/temp/mypatsettinginfo/settingpatient/settingpatientlist["+ pIndex +"]/ordtype" );
  302. sPid = model.getValue("/root/temp/mypatsettinginfo/settingpatient/settingpatientlist["+ pIndex +"]/pid" );
  303. sIndd = model.getValue("/root/temp/mypatsettinginfo/settingpatient/settingpatientlist["+ pIndex +"]/indd" );
  304. sCretno = model.getValue("/root/temp/mypatsettinginfo/settingpatient/settingpatientlist["+ pIndex +"]/cretno" );
  305. sInstcd = model.getValue("/root/temp/mypatsettinginfo/settingpatient/settingpatientlist["+ pIndex +"]/instcd" );
  306. var param = "I" + "▦" // 응급의료센터 환자 상단정보 올라가지 않는 오류해결_20091022(ByJA)-응급실화면사용안함. // "I" + "▦"// 원본_20091022(ByJA)
  307. + sPid + "▦"
  308. + sIndd + "▦"
  309. + sCretno + "▦"
  310. + sInstcd + "▦"
  311. + "▦" ;
  312. }
  313. setParameter("condparam", param);
  314. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  315. fInitialize(pFlag);
  316. }
  317. /**
  318. * @group :
  319. * @ver : 2007.04.23
  320. * @by : 이은영
  321. * @---------------------------------------------------
  322. * @type : function
  323. * @access : public
  324. * @desc : 검색 도구 선택
  325. * @param :pFlag : SET-set선택, STMT-진술문검색, DIAG-간호진단검색
  326. * @return :
  327. * @---------------------------------------------------
  328. */
  329. function fSelectedSrchTool(pFlag){
  330. //sSrchPopup = ""; // 진단명 클릭으로 검색 구분 2008/06/26 김홍점 사용안함
  331. gDiagGrupcd = ""; // 진단명 클릭 Set Code
  332. gDiagStmtcd = "";
  333. gDiagRecVerNo ="";
  334. gDiagStmtNm = "";
  335. model.removenode("/root/hidden/choisdiag"); //팝업 조회 새성노드 삭제
  336. //var selIndx = swt_srchtool.selectedIndex;
  337. model.setValue(xSrchToolCondPath+"/dnarflag","%");
  338. //setParameter("SPMNR05200_Return", "");
  339. switch(pFlag){
  340. case "SET": // SET
  341. model.toggle("case_lrgmdlsml");
  342. model.removenodeset(xNStmtSetListPath); //표준간호진술문 팝업그룹클리어
  343. model.removenodeset(xDStmtSetListPath);
  344. model.removenodeset(xAStmtSetListPath);
  345. model.removenodeset(xRStmtSetListPath);
  346. grp_dnarset.visible = false;//표준간호진술문 팝업그룹클리어
  347. btn_freetextsel.visible = true;
  348. model.refresh();
  349. //grd_grupstmtinfo.allstyle("data","background-color") = "#FFFFFF"; // 전체 바탕색을 흰색으로 설정.
  350. sSrchToolStatus = "S"; //SET
  351. break;
  352. case "STMT": // 진술문 검색
  353. model.toggle("case_stmtinfo");
  354. model.setValue(xSrchToolCondPath+"/dnarflag","%");
  355. //model.setValue(xSrchToolCondPath+"/freetextdnarflag","1D");
  356. sSrchToolStatus = "J"; // 진술문 검색
  357. model.removenodeset(xStmtInfoPath);
  358. model.removenodeset(xNStmtSetListPath); //표준간호진술문 팝업그룹클리어
  359. model.removenodeset(xDStmtSetListPath);
  360. model.removenodeset(xAStmtSetListPath);
  361. model.removenodeset(xRStmtSetListPath);
  362. grp_dnarset.visible = false;//표준간호진술문 팝업그룹클리어
  363. btn_freetextsel.visible = true;
  364. grd_srchstmtinfo.refresh();
  365. break;
  366. case "DIAG": // 간호진단검색 추가 20080626
  367. model.toggle("case_srchnursdiag");
  368. sSrchToolStatus = "S"; //SET
  369. //fSettingLrgMdlSml("SA",grd_srchlrg,xNSrchNursDiagLrgListPath); // SET 그룹 정보 조회
  370. //model.removenodeset(xNStmtSetListPath); //표준간호진술문 팝업그룹클리어
  371. //model.removenodeset(xDStmtSetListPath);
  372. //model.removenodeset(xAStmtSetListPath);
  373. //model.removenodeset(xRStmtSetListPath);
  374. grp_dnarset.visible = false;//표준간호진술문 팝업그룹클리어
  375. btn_freetextsel.visible = true;
  376. model.refresh();
  377. break;
  378. }
  379. //model.refresh();
  380. }
  381. /**
  382. * @group :
  383. * @ver : 2007.04.23
  384. * @by : 이은영
  385. * @---------------------------------------------------
  386. * @type : function
  387. * @access : public
  388. * @desc : 입력 형태별 진술문장 조회
  389. * @param :pFlag A:화면열릴때 && 기본적으로 조회될경우 (대분류를 조회한다)
  390. pFlag L: 대분류 더블클릭시 조회될경우 (중분류를 조회한다)
  391. pFlag M: 중분류 더블클릭시 조회될경우 (소분류를 조회한다)
  392. pFlag S: 소분류 더블클릭시 조회될경우 (DNAR조회하는 그리드를 show해준다)
  393. // pFlag SL: 간호진단검색 대분류 더블클릭시 조회될경우 (중분류를 조회한다)
  394. // pFlag SM: 간호진단검색 중분류 더블클릭시 조회될경우 (소분류를 조회한다)
  395. // pFlag SS: 간호진단검색 소분류 더블클릭시 조회될경우 (진단 진술문 조회하는 그리드를 show해준다)
  396. pFlag ND: 간호진단검색에서 간호진단을 더불클릭했을때 표준진술문 그룹을 보여준다.
  397. pCntlObj: 그리드명
  398. pGrupFlag : 대분류
  399. * @return :
  400. * @---------------------------------------------------
  401. */
  402. function fSettingLrgMdlSml(pFlag,pCntlObj,pPath,pGrupFlag){
  403. var sSupCd = "";
  404. var sDepth = 0;
  405. var sGrupFlag = pGrupFlag;
  406. model.removenodeset(xHiddenGrupInfoPath);
  407. model.makeNode(xHiddenGrupInfoPath);
  408. if ( pFlag == "A"){
  409. sSupCd = "********";
  410. model.removenodeset(xLrgGrupInfoPath);
  411. model.removenodeset(xMdlGrupInfoPath);
  412. model.removenodeset(xSmlGrupInfoPath);
  413. model.removenodeset(xSmlGrupInfoPath2);
  414. model.removenode("/root/send");
  415. model.makeValue("/root/send/supcd",sSupCd);
  416. model.makeValue("/root/send/grupflag","-");//대분류조회
  417. model.makeValue("/root/send/flag","Y");//가로 그리드 조회임을 구분
  418. if(submit("TRMNR00701")){
  419. if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  420. model.makeNode(xLrgGrupInfoPath);
  421. copyNodesetType(xLrgGrupInfoPath, xHiddenGrupInfoPath, "replace", model, model);
  422. }
  423. }
  424. pCntlObj.refresh();
  425. model.refresh();
  426. }else if( pFlag == "L" && pCntlObj.row > 0){
  427. sSupCd = model.getValue(xLrgGrupInfoPath+"["+ pCntlObj.row +"]/grupcd");
  428. model.removenodeset(xMdlGrupInfoPath);
  429. model.removenodeset(xSmlGrupInfoPath);
  430. model.removenodeset(xSmlGrupInfoPath2);
  431. model.removenode("/root/send");
  432. model.makeValue("/root/send/supcd",sSupCd);
  433. model.makeValue("/root/send/grupflag","-");//대분류조회
  434. model.makeValue("/root/send/flag","Y");
  435. if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  436. grd_sml2.visible = true;
  437. grd_mdl.caption = "부서^grupcd^deptcd^depth^grupflag";
  438. grd_sml.caption = "중분류^grupcd^deptcd^depth^grupflag";
  439. grd_sml2.caption = "소분류^grupcd^deptcd^depth^grupflag";
  440. //model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") ); 20080723 소속부서만 조회되는게 아니라 해당 소속부서를 셀선택 해달라고 요청 김홍점
  441. }else{
  442. grd_sml2.visible = false;
  443. grd_mdl.caption = "중분류^grupcd^deptcd^depth^grupflag";
  444. grd_sml.caption = "소분류^grupcd^deptcd^depth^grupflag";
  445. }
  446. if(submit("TRMNR00701")){
  447. if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  448. model.makeNode(xMdlGrupInfoPath);
  449. copyNodesetType(xMdlGrupInfoPath, xHiddenGrupInfoPath, "replace", model, model);
  450. if(sGrupFlag == 3){ // 부서별은 자기의 부서를 선택
  451. var iRow = grd_mdl.findRow(getUserInfo("dutplcecd"),1,grd_mdl,true,true);
  452. grd_mdl.select(iRow,1) = true;
  453. }
  454. }
  455. }
  456. pCntlObj.refresh();
  457. model.refresh();
  458. }else if( pFlag == "M" && pCntlObj.row > 0){
  459. sSupCd = model.getValue(xMdlGrupInfoPath+"["+ pCntlObj.row +"]/grupcd");
  460. model.removenodeset(xSmlGrupInfoPath);
  461. model.removenodeset(xSmlGrupInfoPath2);
  462. model.removenode("/root/send");
  463. model.makeValue("/root/send/supcd",sSupCd);
  464. model.makeValue("/root/send/grupflag","-");//대분류조회
  465. model.makeValue("/root/send/flag","Y");
  466. if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  467. //model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
  468. }
  469. if(submit("TRMNR00701")){
  470. if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  471. model.makeNode(xSmlGrupInfoPath);
  472. copyNodesetType(xSmlGrupInfoPath, xHiddenGrupInfoPath, "replace", model, model);
  473. }
  474. }
  475. pCntlObj.refresh();
  476. model.refresh();
  477. }else if( pFlag == "S" && pCntlObj.row > 0){
  478. sSupCd = model.getValue(xSmlGrupInfoPath+"["+ pCntlObj.row +"]/grupcd");
  479. if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  480. model.removenodeset(xSmlGrupInfoPath2);
  481. model.removenode("/root/send");
  482. model.makeValue("/root/send/supcd",sSupCd);
  483. model.makeValue("/root/send/grupflag","-");//대분류조회
  484. model.makeValue("/root/send/flag","Y");
  485. //model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
  486. if(submit("TRMNR00701")){
  487. if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  488. model.makeNode(xSmlGrupInfoPath2);
  489. copyNodesetType(xSmlGrupInfoPath2, xHiddenGrupInfoPath, "replace", model, model);
  490. }
  491. }
  492. }else{
  493. gReturnGrupcd = sSupCd;
  494. model.setValue("/root/main/cond/srchtool/dnarflag","");
  495. fSearchSrchTool("StmtSet", pCntlObj.row, sSupCd );
  496. }
  497. pCntlObj.refresh();
  498. model.refresh();
  499. //20110629_KNUH_Start
  500. grd_nursingd.valueMatrix(1, grd_nursingd.colRef("check")) = "true";
  501. grd_nursingd.row = 1;
  502. grd_nursingd.col = grd_nursingd.colRef("check");
  503. fClickedGridRow(grd_nursingd, "/root/main/stmtsetinfo/nstmtsetlist", grd_nursingd.row, grd_nursingd.col);
  504. //20110629_KNUH_End
  505. //grd_nursingd.valueMatrix(1, grd_nursingd.colRef("check")) = "true";
  506. }else if( pFlag == "S2" && pCntlObj.row > 0){
  507. sSupCd = model.getValue(xSmlGrupInfoPath2+"["+ pCntlObj.row +"]/grupcd");
  508. gReturnGrupcd = sSupCd;
  509. model.setValue("/root/main/cond/srchtool/dnarflag","");
  510. fSearchSrchTool("StmtSet",pCntlObj.row, sSupCd );
  511. grd_nursingd.valueMatrix(1, grd_nursingd.colRef("check")) = "true";
  512. grd_nursingd.row = 1;
  513. grd_nursingd.col = grd_nursingd.colRef("check");
  514. fClickedGridRow(grd_nursingd, "/root/main/stmtsetinfo/nstmtsetlist", grd_nursingd.row, grd_nursingd.col);
  515. // }else if ( pFlag == "SA"){
  516. // sSupCd = "********";
  517. // model.removenodeset(xNSrchNursDiagLrgListPath);
  518. // model.removenodeset(xNSrchNursDiagMdlListPath);
  519. // model.removenodeset(xNSrchNursDiagSmlListPath);
  520. // model.removenodeset(xNSrchNursDiagSmlListPath2);
  521. // model.removenodeset(xNSrchNursDiagInfoPath);
  522. //
  523. // model.removenode("/root/send");
  524. // model.makeValue("/root/send/supcd",sSupCd);
  525. // model.makeValue("/root/send/flag","Y");//가로 그리드 조회임을 구분
  526. //
  527. // if(submit("TRMNR00701")){
  528. // if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  529. // model.makeNode(xNSrchNursDiagLrgListPath);
  530. // copyNodesetType(xNSrchNursDiagLrgListPath, xHiddenGrupInfoPath, "replace", model, model);
  531. // }
  532. // }
  533. //
  534. // pCntlObj.refresh();
  535. // model.refresh();
  536. // }else if( pFlag == "SL" && pCntlObj.row > 0){
  537. //
  538. // sSupCd = model.getValue(xNSrchNursDiagLrgListPath+"["+ pCntlObj.row +"]/grupcd");
  539. // model.removenodeset(xNSrchNursDiagMdlListPath);
  540. // model.removenodeset(xNSrchNursDiagSmlListPath);
  541. // model.removenodeset(xNSrchNursDiagSmlListPath2);
  542. // model.removenodeset(xNSrchNursDiagInfoPath);
  543. //
  544. // model.removenode("/root/send");
  545. // model.makeValue("/root/send/supcd",sSupCd);
  546. // model.makeValue("/root/send/flag","Y");
  547. // if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  548. // grd_srchsml2.visible = true;
  549. // model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
  550. // }else{
  551. // grd_srchsml2.visible = false;
  552. // }
  553. //
  554. // if(submit("TRMNR00701")){
  555. // if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  556. // model.makeNode(xNSrchNursDiagMdlListPath);
  557. // copyNodesetType(xNSrchNursDiagMdlListPath, xHiddenGrupInfoPath, "replace", model, model);
  558. // }
  559. // }
  560. //
  561. // pCntlObj.refresh();
  562. // model.refresh();
  563. // }else if( pFlag == "SM" && pCntlObj.row > 0){
  564. // sSupCd = model.getValue(xNSrchNursDiagMdlListPath+"["+ pCntlObj.row +"]/grupcd");
  565. // model.removenodeset(xNSrchNursDiagSmlListPath);
  566. // model.removenodeset(xNSrchNursDiagSmlListPath2);
  567. // model.removenodeset(xNSrchNursDiagInfoPath);
  568. //
  569. // model.removenode("/root/send");
  570. // model.makeValue("/root/send/supcd",sSupCd);
  571. // model.makeValue("/root/send/flag","Y");
  572. // if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  573. // model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
  574. // }
  575. //
  576. // if(submit("TRMNR00701")){
  577. // if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  578. // model.makeNode(xNSrchNursDiagSmlListPath);
  579. // copyNodesetType(xNSrchNursDiagSmlListPath, xHiddenGrupInfoPath, "replace", model, model);
  580. // }
  581. // }
  582. //
  583. // pCntlObj.refresh();
  584. // model.refresh();
  585. // }else if( pFlag == "SS" && pCntlObj.row > 0){
  586. // sSupCd = model.getValue(xNSrchNursDiagSmlListPath+"["+ pCntlObj.row +"]/grupcd");
  587. // if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  588. //
  589. // model.removenodeset(xNSrchNursDiagSmlListPath2);
  590. // model.removenodeset(xNSrchNursDiagInfoPath);
  591. //
  592. // gReturnGrupcd = sSupCd;
  593. //
  594. // model.removenode("/root/send");
  595. // model.makeValue("/root/send/supcd",sSupCd);
  596. // model.makeValue("/root/send/flag","Y");
  597. //
  598. // model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
  599. // if(submit("TRMNR00701")){
  600. // if (getNodesetCount(xHiddenGrupInfoPath) > 0){
  601. // model.makeNode(xNSrchNursDiagSmlListPath2);
  602. // copyNodesetType(xNSrchNursDiagSmlListPath2, xHiddenGrupInfoPath, "replace", model, model);
  603. // }
  604. // }
  605. //
  606. // pCntlObj.refresh();
  607. // model.refresh();
  608. // }else{
  609. //
  610. // model.removenodeset(xNSrchNursDiagInfoPath);
  611. //
  612. // gReturnGrupcd = sSupCd;
  613. // model.setValue("/root/main/cond/srchtool/dnarflag","");
  614. //
  615. // //fSearchSrchTool("StmtSet", pCntlObj.row, sSupCd );
  616. // model.makeValue("/root/send/grupcd", gReturnGrupcd);
  617. // model.makeValue("/root/send/dnarflag","%");//전체
  618. // //model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));20080624 김홍점
  619. //
  620. // if(submit("TRMNR00702", false)){
  621. // if( getNodesetCount(xHiddenStmtSetInfoPath+"/nstmtsetlist") > 0 ){
  622. // model.makeNode(xNSrchNursDiagInfoPath);
  623. // copyNodesetType(xNSrchNursDiagInfoPath, xHiddenStmtSetInfoPath+"/nstmtsetlist", "replace", model, model);
  624. // grd_srchdiag.refresh();
  625. // }
  626. // }
  627. // }
  628. //
  629. //
  630. // }else if( pFlag == "SS2" && pCntlObj.row > 0){
  631. // sSupCd = model.getValue(xNSrchNursDiagSmlListPath2+"["+ pCntlObj.row +"]/grupcd");
  632. // gReturnGrupcd = sSupCd;
  633. //
  634. // model.setValue("/root/main/cond/srchtool/dnarflag","");
  635. // //fSearchSrchTool("StmtSet",pCntlObj.row, sSupCd );
  636. // model.makeValue("/root/send/grupcd", gReturnGrupcd);
  637. // model.makeValue("/root/send/dnarflag","%");//전체
  638. // //model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));20080624 김홍점
  639. // if(submit("TRMNR00702", false)){
  640. // if( getNodesetCount(xHiddenStmtSetInfoPath+"/nstmtsetlist") > 0 ){
  641. // model.makeNode(xNSrchNursDiagInfoPath);
  642. // copyNodesetType(xNSrchNursDiagInfoPath, xHiddenStmtSetInfoPath+"/nstmtsetlist", "replace", model, model);
  643. // grd_srchdiag.refresh();
  644. // }
  645. // }
  646. }else if( pFlag == "ND" && pCntlObj.row > 0){//간호진단
  647. sSupCd = model.getValue(pPath + "["+ pCntlObj.row +"]/grupcd");
  648. gReturnGrupcd = sSupCd;
  649. var sStmtCd = model.getValue(pPath+"["+ pCntlObj.row +"]/stmtcd");
  650. model.setValue("/root/main/cond/srchtool/dnarflag","");
  651. fSearchSrchTool("SrchDiagStmt",pCntlObj.row, gReturnGrupcd,sStmtCd);
  652. }
  653. }
  654. /**
  655. * @group :
  656. * @ver : 2007.04.23
  657. * @by : 이은영
  658. * @---------------------------------------------------
  659. * @type : function
  660. * @access : public
  661. * @desc : 입력 형태별 진술문장 조회
  662. * @param :
  663. * @return :
  664. * @---------------------------------------------------
  665. */
  666. function fSearchSrchTool(pFlag,pRow,pGrupCd,pStmtCd,pRecVerNo){
  667. var sGrupFlag = "";
  668. var sDepth = 0;
  669. switch(pFlag){
  670. case "SetGrupInit" : // SET 그룹 정보 조회
  671. //sSrchPopup = "";
  672. gDiagGrupcd = "";
  673. gDiagStmtcd = "";
  674. gDiagRecVerNo ="";
  675. gDiagStmtNm = "";
  676. model.removenodeset(xGrupInfoPath);
  677. grd_grupinfo.Rebuild();
  678. sGrupFlag = model.getValue(xSrchToolCondPath+"/grupflag");
  679. model.removenode("/root/send");
  680. model.makeValue("/root/send/grupflag",sGrupFlag);
  681. if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  682. }
  683. if(submit("TRMNR00701", false)){
  684. model.refresh();
  685. var sRowCnt = grd_grupinfo.rows-grd_grupinfo.fixedRows;
  686. for(var i=1; i<=sRowCnt; i++){
  687. sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
  688. grd_grupinfo.outlinelevel(i)=sDepth;
  689. }
  690. grd_grupinfo.OutlineCol=1; //연결선이 표현되는 컬럼
  691. grd_grupinfo.OutlineBar=4; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  692. grd_grupinfo.TreeColor="gray";
  693. // 자식 접기
  694. for(var i=1; i<=sRowCnt; i++){
  695. sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
  696. if((eval(sGrupFlag)==3 && sDepth>2) || (eval(sGrupFlag) != 3 && sDepth>1)){
  697. grd_grupinfo.iscollapsed(i)=true; //자식 트리 접기
  698. }
  699. }
  700. }
  701. break;
  702. case "SetGrup" : // SET 그룹 정보 조회
  703. //sSrchPopup = "";
  704. gDiagGrupcd = "";
  705. gDiagStmtcd = "";
  706. gDiagRecVerNo ="";
  707. gDiagStmtNm = "";
  708. model.removenodeset(xGrupInfoPath);
  709. grd_grupinfo.Rebuild();
  710. sGrupFlag = model.getValue(xSrchToolCondPath+"/grupflag");
  711. model.removenode("/root/send");
  712. model.makeValue("/root/send/grupflag",sGrupFlag);
  713. if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
  714. }
  715. if(submit("TRMNR00701", false)){
  716. grd_grupinfo.refresh();
  717. var sRowCnt = grd_grupinfo.rows-grd_grupinfo.fixedRows;
  718. for(var i=1; i<=sRowCnt; i++){
  719. sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
  720. grd_grupinfo.outlinelevel(i)=sDepth;
  721. }
  722. grd_grupinfo.OutlineCol=1; //연결선이 표현되는 컬럼
  723. grd_grupinfo.OutlineBar=4; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  724. grd_grupinfo.TreeColor="gray";
  725. // 자식 접기
  726. for(var i=1; i<=sRowCnt; i++){
  727. sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
  728. if((eval(sGrupFlag)==3 && sDepth>2) || (eval(sGrupFlag) != 3 && sDepth>1)){
  729. grd_grupinfo.iscollapsed(i)=true; //자식 트리 접기
  730. }
  731. }
  732. }
  733. break;
  734. case "StmtSet": // SET 진술문 정보 조회
  735. var sGrupCd = pGrupCd;
  736. var sGrupRow = pRow;
  737. sSrchToolStatus = "S";
  738. grp_dnarset.visible = true;
  739. btn_freetextsel.visible = false;
  740. model.removenode("/root/send");
  741. //set 조회,간호진단내역 클릭시 분류 체계 조회
  742. if( !isNull(sGrupCd) ){
  743. gDiagGrupcd = pGrupCd;
  744. //gDiagRecVerNo = pRecVerNo;
  745. model.makeValue("/root/send/grupcd", sGrupCd);
  746. model.makeValue("/root/send/dnarflag","%");//전체
  747. //model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));20080624 김홍점
  748. if(submit("TRMNR00702", false)){
  749. fSettingStmtSet();
  750. if ( !isNull(pStmtCd) && grd_nursingd.rows - grd_nursingd.fixedRows > 0 ){
  751. grd_nursingd.select( grd_nursingd.findRow(pStmtCd,1,grd_nursingd.colRef("stmtcd"),true,true), 11) = true;
  752. fClickedGridRow(grd_nursingd, "/root/main/stmtsetinfo/nstmtsetlist",
  753. grd_nursingd.findRow(pStmtCd,1,grd_nursingd.colRef("stmtcd"),true,true),
  754. grd_nursingd.colRef("stmtcnts") );
  755. }
  756. }
  757. //set DAR 라디오버튼 선택시 분류 체계 조회 20080624 김홍점
  758. }else if (isNull(pGrupCd)){
  759. model.makeValue("/root/send/grupcd", gReturnGrupcd);
  760. model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));
  761. if(submit("TRMNR00702", false)){
  762. fSettingStmtSet();
  763. }
  764. // if(sSrchPopup =="N"){
  765. // if(submit("TRMNR00706", false)){//20080624 김홍점
  766. // grd_grupstmtinfo.refresh();
  767. // fSettingStmtStyle("newsetinfo");
  768. // grd_carediagspec.resizeCells();
  769. // }
  770. // }else{
  771. // if(submit("TRMNR00702", false)){
  772. // fSettingStmtSet();
  773. // }
  774. // }
  775. }
  776. break;
  777. //20080624 김홍점
  778. // var sGrupRow = grd_grupinfo.row;
  779. // var sDepth = 0; // 기준 레벨
  780. // var iDepth = 0; // 각 row 별 레벨
  781. // var sBoolStatus = "";
  782. // var sRowCnt = 0; // 전체 row 개수
  783. // sGrupFlag = eval(model.getValue(xSrchToolCondPath+"/grupflag"));
  784. // sDepth = eval(model.getValue(xNStmtSetListPath+"["+sGrupRow+"]/depth"));
  785. //
  786. // if((sGrupFlag==3 && sDepth < 4) || (sGrupFlag != 3 && sDepth < 3)){
  787. // // 자식 접기
  788. // sDepth = eval(model.getValue(xGrupInfoPath+"["+sGrupRow+"]/depth"));
  789. // sRowCnt = grd_grupinfo.rows - grd_grupinfo.fixedrows;
  790. // if(grd_grupinfo.iscollapsed(sGrupRow) == true){
  791. // sBoolStatus = false;
  792. // }else{
  793. // sBoolStatus = true;
  794. // }
  795. //
  796. // for(var i=sGrupRow; i<=sRowCnt; i++){
  797. // iDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
  798. // if(i==sGrupRow){
  799. // grd_grupinfo.iscollapsed(i) = sBoolStatus;
  800. // }else if(i != sGrupRow && sDepth < iDepth){
  801. // grd_grupinfo.iscollapsed(i) = sBoolStatus;
  802. // }else{
  803. // break;
  804. // }
  805. // }
  806. // return;
  807. // }
  808. // model.removenodeset(xStmtSetListPath);
  809. // grd_grupstmtinfo.rebuild();
  810. // model.toggle("case_grupstmt");
  811. // model.removenode("/root/send");
  812. //
  813. // //set 조회후 분류 체계 조회
  814. // if( model.getValue(xGrupInfoPath+"["+sGrupRow+"]/grupcd") != "" && sSrchPopup == "" ){
  815. // model.makeValue("/root/send/grupcd", model.getValue(xGrupInfoPath+"["+sGrupRow+"]/grupcd"));
  816. // model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));
  817. // if(submit("TRMNR00702", false)){
  818. // grd_grupstmtinfo.refresh();
  819. // fSettingStmtStyle("setinfo");
  820. // grd_grupstmtinfo.resizeCells();
  821. // }
  822. // //진단 Popup조회 후 분류 체계 조회
  823. // }else{
  824. // model.makeValue("/root/send/nursdiagstmtcd", model.getValue("/root/hidden/choisdiag/stmtcd"));
  825. // model.makeValue("/root/send/grupcd", gDiagGrupcd);
  826. // model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));
  827. //
  828. // if(sSrchPopup =="N"){
  829. // if(submit("TRMNR00706", false)){
  830. // grd_grupstmtinfo.refresh();
  831. // fSettingStmtStyle("setinfo");
  832. // grd_carediagspec.resizeCells();
  833. // }
  834. // }else{
  835. // if(submit("TRMNR00702", false)){
  836. // grd_grupstmtinfo.refresh();
  837. // fSettingStmtStyle("setinfo");
  838. // grd_grupstmtinfo.resizeCells();
  839. // }
  840. // }
  841. // }
  842. // break;
  843. case "Stmt": // 진술문 검색 조회
  844. sSrchToolStatus = "J";
  845. model.removenode("/root/send");
  846. if(model.getValue(xSrchToolCondPath+"/srchnm") == "" || model.getValue(xSrchToolCondPath+"/srchnm").length < 2){
  847. messageBox("검색어를 두단어 이상","C001");
  848. model.setFocus("ipt_srchnm");
  849. return;
  850. }
  851. model.removenodeset(xStmtInfoPath);
  852. grd_srchstmtinfo.rebuild();
  853. model.makeValue("/root/send/originflag", model.getValue(xSrchToolCondPath+"/originflag"));
  854. model.makeValue("/root/send/dnarflag", model.getValue(xSrchToolCondPath+"/dnarflag"));
  855. model.makeValue("/root/send/srchnm", model.getValue(xSrchToolCondPath+"/srchnm"));
  856. if(submit("TRMNR00703", false)){
  857. if( getNodesetCount(xHiddenSrchToolInfoPath) > 0 ){
  858. model.makeNode(xStmtInfoPath);
  859. copyNodesetType(xStmtInfoPath, xHiddenSrchToolInfoPath, "replace", model, model);
  860. grd_srchstmtinfo.resizeCells();
  861. grd_srchstmtinfo.refresh();
  862. }
  863. grd_srchstmtinfo.colSort(grd_srchstmtinfo.colRef("dnarflag")) = "asc";
  864. grd_srchstmtinfo.sort(1, grd_srchstmtinfo.colRef("dnarflag"), grd_srchstmtinfo.rows-1, grd_srchstmtinfo.cols-1) = "usersort";
  865. grd_srchstmtinfo.gridToInstance();
  866. fSettingStmtStyle("stmtinfo"); // 속성이 있는 경우 진술문 폰트 색상을 변경한다.
  867. grd_srchstmtinfo.resizeCells();
  868. }
  869. break;
  870. case "SrchDiagStmt": // 간호진단 검색
  871. sStmtCd = pStmtCd;
  872. gDiagGrupcd = pGrupCd;
  873. gDiagStmtcd = pStmtCd;
  874. sSrchToolStatus = "S";
  875. if ( isNull(sStmtCd) ){//조회버튼클릭시
  876. model.removenode("/root/send");
  877. if(model.getValue(xSrchToolCondPath+"/srchnursdiag") == "" || model.getValue(xSrchToolCondPath+"/srchnursdiag").length < 2){
  878. messageBox("검색어를 두단어 이상","C001");
  879. model.setFocus("ipt_srchnursdiag");
  880. return;
  881. }
  882. model.removenodeset(xNSrchNursDiagInfoPath);
  883. //model.makeValue("/root/send/originflag", model.getValue(xSrchToolCondPath+"/originflag"));
  884. model.makeValue("/root/send/dnarflag", "2N");
  885. model.makeValue("/root/send/srchnm", model.getValue(xSrchToolCondPath+"/srchnursdiag"));
  886. if(submit("TRMNR00703", false)){
  887. if( getNodesetCount(xHiddenNSrchToolInfoPath) > 0 ){
  888. model.makeNode(xNSrchNursDiagInfoPath);
  889. copyNodesetType(xNSrchNursDiagInfoPath, xHiddenNSrchToolInfoPath, "replace", model, model);
  890. }
  891. //fSettingStmtStyle("stmtinfo"); // 속성이 있는 경우 진술문 폰트 색상을 변경한다.
  892. }
  893. grd_srchdiag.resizeCells();
  894. grd_srchdiag.refresh();
  895. } else {//간호진단 클릭시
  896. grp_dnarset.visible = true;
  897. btn_freetextsel.visible = false;
  898. model.removenode("/root/send");
  899. model.makeValue("/root/send/grupcd", pGrupCd);
  900. model.makeValue("/root/send/dnarflag","%");//전체
  901. model.makeValue("/root/send/stmtcd", sStmtCd);
  902. model.makeValue("/root/send/nursdiagstmtcd", sStmtCd);
  903. if(submit("TRMNR00702", false)){
  904. fSettingStmtSet("ND");//간호진단검색탭에서 선택해서 표준진술문 팝업그룹띄울때
  905. if ( !isNull(sStmtCd) && grd_nursingd.rows - grd_nursingd.fixedRows > 0 ){
  906. grd_nursingd.select( grd_nursingd.findRow(pStmtCd,1,grd_nursingd.colRef("stmtcd"),true,true), 11) = true;
  907. fClickedGridRow(grd_nursingd, "/root/main/stmtsetinfo/nstmtsetlist",
  908. grd_nursingd.findRow(pStmtCd,1,grd_nursingd.colRef("stmtcd"),true,true),
  909. grd_nursingd.colRef("stmtcnts") );
  910. }
  911. }
  912. }
  913. break;
  914. case "NursDiag": // 진술문 분류 관리 조회
  915. //sSrchPopup = "";
  916. gDiagGrupcd = "";
  917. gDiagStmtcd = "";
  918. // var iRow = grd_carediagspec.row;
  919. // if(iRow < 1) return;
  920. //
  921. // //추가사항: 선택 진단 정보 임시 저장
  922. // model.removenodeset("/root/hidden/choisdiag");
  923. // model.makeValue("/root/hidden/choisdiag/stmtcnts", model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts"));
  924. // model.makeValue("/root/hidden/choisdiag/stmtcd", model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd"));
  925. //
  926. // setParameter("SPMNR05200_Return", "");
  927. // setParameter("SPMNR05200_Param", model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd"));
  928. // modal("SPMNR05200");
  929. // gDiagGrupcd = getParameter("SPMNR05200_Return");
  930. //
  931. //
  932. // model.removenodeset(xStmtSetListPath);
  933. // grd_grupstmtinfo.rebuild();
  934. // swt_srchtool.selectedIndex = 0;
  935. // model.toggle("case_grupstmt");
  936. // if(btn_set.selected == false) btn_set.selected = true;
  937. //
  938. // model.removenode("/root/send");
  939. // model.makeValue("/root/send/nursdiagstmtcd", model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd"));
  940. // model.makeValue("/root/send/grupcd", gDiagGrupcd);
  941. // model.makeValue("/root/send/dnarflag", "%");
  942. //
  943. // if(gDiagGrupcd ==""){
  944. // sSrchToolStatus = "N"; // 표준 진술문 분류 관리
  945. // sSrchPopup = "N"; // 조회경로
  946. // if(submit("TRMNR00706", false)){
  947. // grd_grupstmtinfo.refresh();
  948. // fSettingStmtStyle("setinfo");
  949. // grd_carediagspec.resizeCells();
  950. // }
  951. // }else{
  952. // sSrchToolStatus = "S"; // 진술문 분류 관리
  953. // sSrchPopup = "S"; // 조회경로
  954. // if(submit("TRMNR00702", false)){
  955. // grd_grupstmtinfo.refresh();
  956. // fSettingStmtStyle("setinfo");
  957. // grd_grupstmtinfo.resizeCells();
  958. //
  959. // fSettingSltColor(model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd"));
  960. // fSettingGridBackColor();
  961. // }
  962. // }
  963. // break;
  964. }
  965. }
  966. function fSettingStmtSet(pFlag){//pFlag : ND일경우 간호진단 검색 탭에서 카피한다.
  967. model.removenodeset(xNStmtSetListPath);
  968. model.removenodeset(xDStmtSetListPath);
  969. model.removenodeset(xAStmtSetListPath);
  970. model.removenodeset(xRStmtSetListPath);
  971. model.refresh();
  972. if (getNodesetCount(xHiddenStmtSetInfoPath) > 0){
  973. if( getNodesetCount(xHiddenStmtSetInfoPath+"/nstmtsetlist") > 0 ){
  974. model.makeNode(xNStmtSetListPath);
  975. copyNodesetType(xNStmtSetListPath, xHiddenStmtSetInfoPath+"/nstmtsetlist", "replace", model, model);
  976. grd_nursingd.resizeCells();
  977. grd_nursingd.refresh();
  978. }
  979. // if( pFlag == "ND" ){
  980. // model.makeNode(xNStmtSetListPath);
  981. // copyNodesetType(xNStmtSetListPath, xNSrchNursDiagInfoPath+"["+ grd_srchdiag.selectedRow(0)+"]", "replace", model, model);
  982. // grd_nursingd.refresh();
  983. //
  984. // } else {
  985. // if( getNodesetCount(xHiddenStmtSetInfoPath+"/nstmtsetlist") > 0 ){
  986. // model.makeNode(xNStmtSetListPath);
  987. // copyNodesetType(xNStmtSetListPath, xHiddenStmtSetInfoPath+"/nstmtsetlist", "replace", model, model);
  988. // grd_nursingd.resizeCells();
  989. // grd_nursingd.refresh();
  990. // }
  991. //
  992. // }
  993. if( getNodesetCount(xHiddenStmtSetInfoPath+"/dstmtsetlist") > 0 ){
  994. model.makeNode(xDStmtSetListPath);
  995. copyNodesetType(xDStmtSetListPath, xHiddenStmtSetInfoPath+"/dstmtsetlist", "replace", model, model);
  996. grd_data.resizeCells();
  997. grd_data.refresh();
  998. }
  999. if( getNodesetCount(xHiddenStmtSetInfoPath+"/astmtsetlist") > 0 ){
  1000. model.makeNode(xAStmtSetListPath);
  1001. copyNodesetType(xAStmtSetListPath, xHiddenStmtSetInfoPath+"/astmtsetlist", "replace", model, model);
  1002. grd_action.resizeCells();
  1003. grd_action.refresh();
  1004. }
  1005. if( getNodesetCount(xHiddenStmtSetInfoPath+"/rstmtsetlist") > 0 ){
  1006. model.makeNode(xRStmtSetListPath);
  1007. copyNodesetType(xRStmtSetListPath, xHiddenStmtSetInfoPath+"/rstmtsetlist", "replace", model, model);
  1008. grd_result.resizeCells();
  1009. grd_result.refresh();
  1010. }
  1011. grd_nursingd.fixedcellischeck(0, grd_nursingd.colRef("check")) = false;
  1012. grd_data.fixedcellischeck(0, grd_data.colRef("check")) = false;
  1013. grd_action.fixedcellischeck(0, grd_action.colRef("check")) = false;
  1014. grd_result.fixedcellischeck(0, grd_result.colRef("check")) = false;
  1015. fSettingStmtStyle("newsetinfo");
  1016. }
  1017. //model.refresh();
  1018. }
  1019. function fSettingSltColor(pStmtCd){
  1020. for(var i = grd_grupstmtinfo.fixedRows ; i < grd_grupstmtinfo.rows - grd_grupstmtinfo.fixedRows ; i ++){
  1021. if(model.getValue(xStmtSetListPath+"["+i+"]/stmtcd") == pStmtCd && model.getValue(xStmtSetListPath+"["+i+"]/dnarflag") == "2N" ){
  1022. model.setValue(xStmtSetListPath+"["+i+"]/check", "true");
  1023. grd_grupstmtinfo.row = i;
  1024. }
  1025. }
  1026. }
  1027. /**
  1028. * @group :
  1029. * @ver : 2007.04.19
  1030. * @by : 이은영
  1031. * @---------------------------------------------------
  1032. * @type : function
  1033. * @access : public
  1034. * @desc : 진술문 폰트 color 설정 - 속성이 있는 경우 진술문 폰트 색상을 변경한다.
  1035. * @param : pFlag ( setinfo : set, stmtinfo : 진술문 검색 nr:간호진단및 간호기록조회)
  1036. * @return :
  1037. * @---------------------------------------------------
  1038. */
  1039. function fSettingStmtStyle(pFlag){
  1040. switch(pFlag){
  1041. case "newsetinfo" : // set DAR별로 속성이 존재하는것은 폰트색변경20080623 김홍점
  1042. var iTgStmtRow = 0;
  1043. grd_data.allstyle("data","color") = "#000000";
  1044. var sStmtCDList = instance1.selectNodes(xDStmtSetListPath+"[attrcnt > 0]/stmtcd");
  1045. for(var idx=0; idx < sStmtCDList.length; idx++){
  1046. iTgStmtRow = grd_data.findRow(sStmtCDList.item(idx).value ,1,grd_data.colRef("stmtcd"),true,true);
  1047. if(iTgStmtRow < 0){
  1048. // 셋에 속성이 없을 경우 pass
  1049. } else {
  1050. grd_data.cellstyle("color",iTgStmtRow,grd_data.colRef("stmtcnts")) = "#6600ff";
  1051. }
  1052. }
  1053. grd_action.allstyle("data","color") = "#000000";
  1054. sStmtCDList = instance1.selectNodes(xAStmtSetListPath+"[attrcnt > 0]/stmtcd");
  1055. for(var idx=0; idx < sStmtCDList.length; idx++){
  1056. iTgStmtRow = grd_action.findRow(sStmtCDList.item(idx).value ,1,grd_action.colRef("stmtcd"),true,true);
  1057. if(iTgStmtRow < 0){
  1058. // 셋에 속성이 없을 경우 pass
  1059. } else {
  1060. grd_action.cellstyle("color",iTgStmtRow,grd_action.colRef("stmtcnts")) = "#6600ff";
  1061. }
  1062. }
  1063. grd_result.allstyle("data","color") = "#000000";
  1064. sStmtCDList = instance1.selectNodes(xRStmtSetListPath+"[attrcnt > 0]/stmtcd");
  1065. for(var idx=0; idx < sStmtCDList.length; idx++){
  1066. iTgStmtRow = grd_result.findRow(sStmtCDList.item(idx).value ,1,grd_result.colRef("stmtcd"),true,true);
  1067. if(iTgStmtRow < 0){
  1068. // 셋에 속성이 없을 경우 pass
  1069. } else {
  1070. grd_result.cellstyle("color",iTgStmtRow,grd_result.colRef("stmtcnts")) = "#6600ff";
  1071. }
  1072. }
  1073. model.refresh();
  1074. break;
  1075. case "setinfo" : // set 삭제예정
  1076. grd_grupstmtinfo.mergecells = "bycol";
  1077. grd_grupstmtinfo.mergecol(2) = false;
  1078. grd_grupstmtinfo.mergecol(3) = false;
  1079. grd_grupstmtinfo.allstyle("data","color") = "#000000";
  1080. for(var iRow=grd_grupstmtinfo.fixedrows; iRow<=grd_grupstmtinfo.rows-grd_grupstmtinfo.fixedrows; iRow++){
  1081. if(eval(model.getValue(xStmtSetListPath+"["+iRow+"]/attrcnt"))>0){
  1082. grd_grupstmtinfo.cellstyle("color",iRow,3) = "#6600ff"; // 녹색
  1083. }
  1084. }
  1085. model.refresh();
  1086. break;
  1087. case "stmtinfo": // 진술문 검색
  1088. grd_srchstmtinfo.mergecells = "bycol";
  1089. grd_srchstmtinfo.mergecol(2) = false;
  1090. grd_srchstmtinfo.mergecol(3) = false;
  1091. grd_srchstmtinfo.allstyle("data","color") = "#000000";
  1092. for(var iRow=grd_srchstmtinfo.fixedrows; iRow<=grd_srchstmtinfo.rows-grd_srchstmtinfo.fixedrows; iRow++){
  1093. if(eval(model.getValue(xStmtInfoPath+"["+iRow+"]/attrcnt"))>0){
  1094. grd_srchstmtinfo.cellstyle("color",iRow,3) = "#6600ff"; // 녹색
  1095. }
  1096. }
  1097. model.refresh();
  1098. break;
  1099. case "nr":
  1100. grd_carerecspec.mergecells = "byrestriccol";
  1101. // grd_carerecspec.mergecol(2)=false;
  1102. // grd_carerecspec.mergecol(3)=false;
  1103. // grd_carerecspec.mergecol(4)=false; dnar
  1104. grd_carerecspec.mergecol(5)=false;
  1105. grd_carerecspec.mergecol(6)=false;
  1106. grd_carerecspec.mergecol(7)=false;
  1107. var sSignno = "";
  1108. var sInterpRecYN = "";
  1109. var sImagePath = "../../../emr/commonweb/images";
  1110. var sRecDT = "";
  1111. var sRecTM = "";
  1112. var sDNARFlag = "";
  1113. var sCareRecNo = "";
  1114. var sRecVerNo = "";
  1115. var sDiagStmtNm = "";
  1116. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1117. if(iRow == 1){
  1118. sRecDD = model.getValue(xNursingRecordListPath+"["+iRow+"]/recdd_vw");
  1119. sRecTM = model.getValue(xNursingRecordListPath+"["+iRow+"]/rectm_vw");
  1120. sDNAR = model.getValue(xNursingRecordListPath+"["+iRow+"]/dnar");
  1121. }else{
  1122. }
  1123. sCareRecNo = model.getValue(xNursingRecordListPath+"["+iRow+"]/carerecno");
  1124. sRecVerNo = model.getValue(xNursingRecordListPath+"["+iRow+"]/recverno");
  1125. sDiagStmtNm = model.getValue(xNursingRecordListPath+"["+iRow+"]/diagstmtnm");
  1126. if( !isNull(sCareRecNo) ){
  1127. grd_carerecspec.rowstyle(iRow,"data","background-color") = "#FFFFFF";
  1128. }else{
  1129. grd_carerecspec.rowstyle(iRow,"data","background-color") = "#ffff88";
  1130. }
  1131. //getArrayData(pData, pRow, pCol, pRowSep, pColSep){
  1132. if ( !isNull(sRecVerNo) ){
  1133. model.setValue(xNursingRecordListPath+"["+iRow+"]/diagstmtnm",getArrayData(sDiagStmtNm,0,1,'|','^') );
  1134. model.makeValue(xNursingRecordListPath+"["+iRow+"]/diagcarerecno", getArrayData(sDiagStmtNm,0,0,'|','^') );
  1135. }
  1136. if( model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") == "T"
  1137. && model.getValue(xNursingRecordListPath+"["+iRow+"]/recflag") != "W" ) {
  1138. grd_carerecspec.cellstyle("font-weight", iRow, grd_carerecspec.colRef("stmtspec") ) ="bold";
  1139. }else{
  1140. grd_carerecspec.cellstyle("font-weight", iRow, grd_carerecspec.colRef("stmtspec") ) ="";
  1141. }
  1142. }
  1143. model.refresh();
  1144. grd_carerecspec.resizeCells();
  1145. break;
  1146. }
  1147. }
  1148. /**
  1149. * @group :
  1150. * @ver : 2007.04.19
  1151. * @by : 이은영
  1152. * @---------------------------------------------------
  1153. * @type : function
  1154. * @access : public
  1155. * @desc : 인증 기록 설정
  1156. * @param : pFlag ( S : 전체선택, C : 선택취소 R:행선택)
  1157. * @return :
  1158. * @---------------------------------------------------
  1159. */
  1160. function fSettingCertImg(pFlag){
  1161. var sInterpRecYN = ""; // 기록삽입여부
  1162. var sCertSelYN = ""; // 인증선택여부
  1163. var sSignno = "";
  1164. var sImagePath = "../../../emr/commonweb/images";
  1165. switch(pFlag){
  1166. case "S" : // 전체선택
  1167. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1168. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1169. continue;
  1170. }
  1171. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1172. sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1173. sSignno = model.getValue(xNursingRecordListPath+"["+iRow+"]/signno");
  1174. if( isNull(sSignno) && sCertSelYN == "N"){
  1175. if(sInterpRecYN == "N"){
  1176. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_LockRequest.gif";
  1177. }else{
  1178. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_LockRequest_add.gif";
  1179. }
  1180. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","Y");
  1181. }
  1182. }
  1183. break;
  1184. case "C" : // 전체취소
  1185. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  1186. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1187. continue;
  1188. }
  1189. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1190. sSignno = model.getValue(xNursingRecordListPath+"["+iRow+"]/signno");
  1191. sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1192. if(isNull(sSignno) && sCertSelYN == "Y"){
  1193. if(sInterpRecYN == "N"){
  1194. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_unLock.gif";
  1195. }else{
  1196. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_unLock_add.gif";
  1197. }
  1198. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","N");
  1199. }
  1200. }
  1201. break;
  1202. case "R" : // row별로 선택시
  1203. var iRow = grd_carerecspec.row;
  1204. var iCol = grd_carerecspec.col;
  1205. if(iCol != grd_carerecspec.colRef("signno")) return;
  1206. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  1207. messageBox("다른 사람의 기록은 인증처리","E001");
  1208. return;
  1209. }
  1210. sInterpRecYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/interprecyn");
  1211. sSignno = model.getValue(xNursingRecordListPath+"["+iRow+"]/signno");
  1212. sCertSelYN = model.getValue(xNursingRecordListPath+"["+iRow+"]/certselyn");
  1213. if(isNull(sSignno) && sCertSelYN == "Y"){
  1214. if(sInterpRecYN == "N"){
  1215. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_unLock.gif";
  1216. }else{
  1217. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_unLock_add.gif";
  1218. }
  1219. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","N");
  1220. } else if(isNull(sSignno) && sCertSelYN == "N"){
  1221. if(sInterpRecYN == "N"){
  1222. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_LockRequest.gif";
  1223. }else{
  1224. grd_carerecspec.cellstyle("background-image",iRow,grd_carerecspec.colRef("signno"))=sImagePath+"/btn_LockRequest_add.gif";
  1225. }
  1226. model.setValue(xNursingRecordListPath+"["+iRow+"]/certselyn","Y");
  1227. }
  1228. break;
  1229. }
  1230. grd_carerecspec.rebuild();
  1231. }
  1232. /**
  1233. * @group :
  1234. * @ver : 2008.06.23
  1235. * @by : 김홍점
  1236. * @---------------------------------------------------
  1237. * @type : function
  1238. * @access : public
  1239. * @desc : 선택된 진술문 별로 표준간호과정 등록된 진술문에 바탕색을 변경
  1240. * @param :
  1241. * @return :
  1242. * @---------------------------------------------------
  1243. */
  1244. function fSettingGridBackColorNew(pRow){
  1245. var iRow = pRow;//grd_nursingd.selectedRow;
  1246. var sDNARFlag = model.getValue(xNStmtSetListPath+"["+iRow+"]/dnarflag");
  1247. var sCheck = model.getValue(xNStmtSetListPath+"["+iRow+"]/check");
  1248. var iTgStmtRow = 0;
  1249. var sLnkStmt = model.getValue(xNStmtSetListPath+"["+iRow+"]/lnkstmt");
  1250. if(sLnkStmt == "") return;
  1251. var sStmtCD = sLnkStmt.split(",");
  1252. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  1253. iTgStmtRow = grd_data.findRow(sStmtCD[iStmt],1,grd_data.colRef("stmtcd"),true,true);
  1254. if(iTgStmtRow < 0){
  1255. // 셋에 묶인 진단이 없을 경우 pass
  1256. } else {
  1257. chkcnt = model.getValue(xDStmtSetListPath + "["+iTgStmtRow+"]/cnt");
  1258. if(sCheck == "true"){
  1259. chkcnt ++;
  1260. }else{
  1261. chkcnt --;
  1262. }
  1263. model.setValue(xDStmtSetListPath+"["+iTgStmtRow+"]/cnt", chkcnt);
  1264. //if(model.getValue(xDStmtSetListPath+"["+iTgStmtRow+"]/cnt") > 0 ){
  1265. // grd_data.rowstyle(iTgStmtRow,"data","background-color") = "#efd3e7";
  1266. //}else {
  1267. // grd_data.rowstyle(iTgStmtRow,"data","background-color") = "#FFFFFF";
  1268. //}
  1269. }
  1270. }
  1271. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  1272. iTgStmtRow = grd_action.findRow(sStmtCD[iStmt],1,grd_action.colRef("stmtcd"),true,true);
  1273. if(iTgStmtRow < 0){
  1274. // 셋에 묶인 진단이 없을 경우 pass
  1275. } else {
  1276. chkcnt = model.getValue(xAStmtSetListPath + "["+iTgStmtRow+"]/cnt");
  1277. if(sCheck == "true"){
  1278. chkcnt ++;
  1279. }else{
  1280. chkcnt --;
  1281. }
  1282. model.setValue(xAStmtSetListPath+"["+iTgStmtRow+"]/cnt", chkcnt);
  1283. //if(model.getValue(xAStmtSetListPath+"["+iTgStmtRow+"]/cnt") > 0 ){
  1284. // grd_action.rowstyle(iTgStmtRow,"data","background-color") = "#efd3e7";
  1285. //} else {
  1286. // grd_action.rowstyle(iTgStmtRow,"data","background-color") = "#FFFFFF";
  1287. //}
  1288. }
  1289. }
  1290. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  1291. iTgStmtRow = grd_result.findRow(sStmtCD[iStmt],1,grd_result.colRef("stmtcd"),true,true);
  1292. if(iTgStmtRow < 0){
  1293. // 셋에 묶인 진단이 없을 경우 pass
  1294. } else {
  1295. chkcnt = model.getValue(xRStmtSetListPath + "["+iTgStmtRow+"]/cnt");
  1296. if(sCheck == "true"){
  1297. chkcnt ++;
  1298. }else{
  1299. chkcnt --;
  1300. }
  1301. model.setValue(xRStmtSetListPath+"["+iTgStmtRow+"]/cnt", chkcnt);
  1302. //if(model.getValue(xRStmtSetListPath+"["+iTgStmtRow+"]/cnt") > 0 ){
  1303. // grd_result.rowstyle(iTgStmtRow,"data","background-color") = "#efd3e7";
  1304. //} else {
  1305. // grd_result.rowstyle(iTgStmtRow,"data","background-color") = "#FFFFFF";
  1306. //}
  1307. }
  1308. }
  1309. }
  1310. /**
  1311. * @group :
  1312. * @ver : 2007.04.23
  1313. * @by : 이은영
  1314. * @---------------------------------------------------
  1315. * @type : function
  1316. * @access : public
  1317. * @desc : 선택된 진술문 별로 표준간호과정 등록된 진술문에 바탕색을 변경
  1318. * @param :
  1319. * @return :
  1320. * @---------------------------------------------------
  1321. */
  1322. function fSettingGridBackColor(){
  1323. var iRow = grd_grupstmtinfo.row;
  1324. var sDNARFlag = model.getValue(xStmtSetListPath+"["+iRow+"]/dnarflag");
  1325. var sCheck = model.getValue(xStmtSetListPath+"["+iRow+"]/check");
  1326. var iTgStmtRow = 0;
  1327. var sLnkStmt = model.getValue(xStmtSetListPath+"["+iRow+"]/lnkstmt");
  1328. if(sLnkStmt == "") return;
  1329. var sStmtCD = sLnkStmt.split(",");
  1330. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  1331. iTgStmtRow = grd_grupstmtinfo.findRow(sStmtCD[iStmt],1,4,true,true);
  1332. if(iTgStmtRow < 0){
  1333. // 셋에 묶인 진단이 없을 경우 pass
  1334. } else {
  1335. chkcnt = model.getValue("/root/main/srchtoolinfo/stmtsetinfo/stmtsetlist["+iTgStmtRow+"]/cnt");
  1336. if(sCheck == "true"){
  1337. chkcnt ++;
  1338. }else{
  1339. chkcnt --;
  1340. }
  1341. model.setValue("/root/main/srchtoolinfo/stmtsetinfo/stmtsetlist["+iTgStmtRow+"]/cnt", chkcnt);
  1342. // // 이은영 개발 로직(수정이유: 진단 두개 선택 후 취소시 다른 진단에 대한 분류 표시색도 사라짐)
  1343. // if(sCheck == "true"){
  1344. // grd_grupstmtinfo.rowstyle(iTgStmtRow,"data","background-color") = "#efd3e7";
  1345. // chkcnt ++;
  1346. // }else{
  1347. // if(grd_grupstmtinfo.rowstyle(iTgStmtRow,"data","background-color") == "#efd3e7"){
  1348. // grd_grupstmtinfo.rowstyle(iTgStmtRow,"data","background-color") = "#FFFFFF";
  1349. // chkcnt --;
  1350. // }
  1351. // }
  1352. if(model.getValue("/root/main/srchtoolinfo/stmtsetinfo/stmtsetlist["+iTgStmtRow+"]/cnt") > 0 ){
  1353. grd_grupstmtinfo.rowstyle(iTgStmtRow,"data","background-color") = "#efd3e7";
  1354. } else {
  1355. grd_grupstmtinfo.rowstyle(iTgStmtRow,"data","background-color") = "#FFFFFF";
  1356. }
  1357. }
  1358. }
  1359. }
  1360. /**
  1361. * @group :
  1362. * @ver : 2007.09.14
  1363. * @by : 양천덕
  1364. * @---------------------------------------------------
  1365. * @type : function
  1366. * @access : public
  1367. * @desc : 진술문 코드별 진단 코드 생성
  1368. * @param : pFlag : 진술문코드
  1369. * @return :
  1370. * @---------------------------------------------------
  1371. */
  1372. function fCreatDiag(pFlag){
  1373. var pSetDiagCd ="";
  1374. for(var iRow=1; iRow<=getNodesetCount(xSaveSetInfoPath); iRow++){
  1375. if( model.getValue(xSaveSetInfoPath+"["+iRow+"]/dnarflag") == "2N"
  1376. && model.getValue(xSaveSetInfoPath+"["+iRow+"]/check")== "true" ){
  1377. var sLnkStmt = model.getValue(xSaveSetInfoPath+"["+iRow+"]/lnkstmt");
  1378. var sStmtCD = sLnkStmt.split(",");
  1379. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  1380. if(pFlag == sStmtCD[iStmt]){
  1381. pSetDiagCd += model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcd")+"▦" ;
  1382. }
  1383. }
  1384. }
  1385. }
  1386. return pSetDiagCd;
  1387. }
  1388. /**
  1389. * @group :
  1390. * @ver : 2007.04.24
  1391. * @by : 이은영
  1392. * @---------------------------------------------------
  1393. * @type : function
  1394. * @access : public
  1395. * @desc : Free Text 간호진단 선택이 없을경우 블러킹
  1396. * @param : pFlag - J : 진술문검색탭에서 선택을 했을 경우의 진단선택여부 체크 else 간호진단
  1397. * @return :
  1398. * @---------------------------------------------------
  1399. */
  1400. function fFreeTextValueChg(pFlag){
  1401. var sTodt = model.getValue(xCareDiagListPath+"["+ grd_carediagspec.row +"]/todt"); // 종료일자
  1402. if ( isNull(pFlag) ){
  1403. var sDNARFlag = model.getValue("/root/main/cond/srchtool/freetextdnarflag"); //DNAR 구분
  1404. if( isNull(sDNARFlag) ){
  1405. messageBox(" 입력하시고자 하는 Free Text의 SNDAR을 ","C002");
  1406. return false;
  1407. }
  1408. //alert(gDiagGrupcd+"============="+gDiagStmtcd);
  1409. if( isNull(gDiagStmtcd) && sDNARFlag != "S" && sDNARFlag != "2N"
  1410. || (!isNull(sTodt) && sDNARFlag != "S" && sDNARFlag != "2N" ) ){
  1411. messageBox("Free Text의 간호진단 선택이 없거나 종료된 진단입니다.. 포함시킬 간호진단을 ","C002");
  1412. return false;
  1413. }
  1414. } else if (pFlag == "J") {
  1415. if( isNull(gDiagStmtcd) || !isNull(sTodt) ){
  1416. if ( messageBox("선택한 간호진단 내역이 없거나 종료된 진단입니다. 간호진단 없이 진술문을 ","Q008") == "6" ){//추가하시겠습니까
  1417. gDiagGrupcd = ""; // 진단내역, 진술문set, 간호진단검색 클릭 진단 그룹Code
  1418. gDiagStmtcd = ""; // 진단내역, 진술문set, 간호진단검색 클릭 진단 진술문Code
  1419. gDiagRecVerNo = "";//20080621 김홍점 추가 진단버젼번호
  1420. gDiagStmtNm = "";//20080621 김홍점 추가 진단명
  1421. return true;
  1422. }else {
  1423. return false;
  1424. }
  1425. }
  1426. }
  1427. return true;
  1428. }
  1429. /**
  1430. * @group :
  1431. * @ver : 2007.04.24
  1432. * @by : 이은영
  1433. * @---------------------------------------------------
  1434. * @type : function
  1435. * @access : public
  1436. * @desc : 기록 저장
  1437. * @param : Free Text 기록 선택 부분
  1438. * @return :
  1439. * @---------------------------------------------------
  1440. */
  1441. function fSaveTextStmtInfo(){
  1442. var sSelYN = "N";
  1443. var sAttrinfo1 = "";
  1444. var sArrtCnt = 0;
  1445. var sStmtInfoHeader = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦"
  1446. + "pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦orddd▦diagstmtcd▩"; // 저장 정보
  1447. var sStmtInfo = ""; // 저장 정보
  1448. var sAttrInptParamInfo = ""; // 속성창 입력 정보
  1449. var sAttrInptYN = "N";
  1450. var sSaveData = "";
  1451. // var sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  1452. // var sRecDate = "";
  1453. var sDNARFlag = model.getValue("/root/main/cond/srchtool/freetextdnarflag"); //DNAR 구분
  1454. var sStmtDiagCd = model.getValue(xCareDiagListPath+"["+ grd_carediagspec.row +"]/stmtcd"); // 진단코드
  1455. var sStmtCnts = "";
  1456. var sLnkStmt = ""; // 링크된 진술문
  1457. var sGrupCD = model.getValue(xCareDiagListPath+"["+ grd_carediagspec.row +"]/origincd"); // 그룹코드
  1458. var sTodt = model.getValue(xCareDiagListPath+"["+ grd_carediagspec.row +"]/todt"); // 종료일자
  1459. var sStmtDiagInfo = "";
  1460. // if(sRecDateFlag == "U"){
  1461. // sRecDate = model.getValue(xRecSaveCondPath+"/recdd")+model.getValue(xRecSaveCondPath+"/rectm");
  1462. // if(isValidDateTime(sRecDate,"YYYYMMDDhhmm")== false){
  1463. // messageBox("기록 시간이 유효하지","E007");
  1464. // return;
  1465. // }
  1466. // }
  1467. if(sPid == ""){
  1468. messageBox("환자를 먼저","C002");
  1469. return;
  1470. }
  1471. if(isNull(model.getValue("/root/main/cond/srchtool/freetextsrchcnts")) ){
  1472. messageBox("저장할 데이터가","I004");
  1473. return;
  1474. }
  1475. if ( !fFreeTextValueChg()) return;
  1476. // if( gDiagGrupcd == ""
  1477. // && gDiagStmtcd == ""
  1478. // && sDNARFlag != "S"
  1479. // && sDNARFlag != "2N"
  1480. // || (!isNull(sTodt)
  1481. // && sDNARFlag != "S"
  1482. // && sDNARFlag != "2N" ) ){
  1483. // messageBox("간호진단 선택이 없거나 종료된 진단입니다.. 포함시킬 간호진단을 ","C002");
  1484. // return;
  1485. // }
  1486. // stmtcd 는 app에서 carerecno를 입력
  1487. // sStmtInfo += model.getValue("/root/main/cond/srchtool/freetextsrchcnts")+"▦"
  1488. // + "▦"
  1489. // + "I▦"
  1490. // + (sDNARFlag == "S" ? "" : sGrupCD )+"▦"
  1491. // + "--------"+"▦"
  1492. // + model.getValue("/root/main/cond/srchtool/freetextdnarflag")+"▦"
  1493. // + "F▦"
  1494. // + sRecDateFlag+"▦"
  1495. // + sRecDate+"00"+"▦"
  1496. // + sPid+"▦"
  1497. // + sIndd+"▦"
  1498. // + sCretNo+"▦"
  1499. // + sInstcd+"▦"
  1500. // + sIOFlag+"▦"
  1501. // + sOrdDeptCd+"▦"
  1502. // + sRecFlag+"▦"
  1503. // + sRecLnkKey+"▦"
  1504. // + sOrddd+"▦"
  1505. // + (sDNARFlag == "S" ? "" : sStmtDiagCd )+"▩";
  1506. //
  1507. // sSaveData = sStmtInfo;
  1508. grd_carerecspec.addRow(false);
  1509. var sSetRow = grd_carerecspec.rows - grd_carerecspec.fixedRows;
  1510. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/stmtspec", model.getValue("/root/main/cond/srchtool/freetextsrchcnts"));
  1511. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/attrinfo", "");
  1512. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/status", "I");
  1513. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/stmtcd", "--------");
  1514. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/dnarflag", sDNARFlag);
  1515. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recoriginflag", "F");
  1516. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recdtflag", "A");
  1517. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recdt", "");
  1518. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/pid", sPid);
  1519. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/indd", sIndd);
  1520. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/cretno", sCretNo);
  1521. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/instcd", sInstcd);
  1522. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/ioflag", sIOFlag);
  1523. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/orddeptcd", sOrdDeptCd);
  1524. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recflag", sRecFlag);
  1525. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/reclnkkey", sRecLnkKey);
  1526. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/orddd", sOrddd);
  1527. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/certselyn", "Y");
  1528. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/dnar", sDNARFlag );
  1529. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtcd", (sDNARFlag == "S" || sDNARFlag == "2N" ? "" : gDiagStmtcd) );
  1530. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtnm", (sDNARFlag == "2N"? model.getValue("/root/main/cond/srchtool/freetextsrchcnts") : "") );
  1531. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/origincd", (sDNARFlag == "S" || sDNARFlag == "2N" ? "" : gDiagGrupcd));//freetext 일경우 그룹이 존재하지 않음.
  1532. // if( isNull(gDiagStmtcd) && sDNARFlag != "S" && sDNARFlag != "2N"){
  1533. //
  1534. // model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recverno", gDiagRecVerNo );
  1535. // model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtnm",gDiagStmtNm);
  1536. //
  1537. // }
  1538. if( !isNull(gDiagStmtcd) && sDNARFlag != "S" && sDNARFlag != "2N"){
  1539. gDiagRecVerNo = model.getValue(xCareDiagListPath+"[stmtcd='"+gDiagStmtcd+"' and origincd='"+gDiagGrupcd+"' and todt ='']/recverno");
  1540. if( isNull(gDiagRecVerNo) ){
  1541. gDiagStmtNm = model.getValue(xNStmtSetListPath+"[stmtcd='"+gDiagStmtcd+"']/stmtcnts");
  1542. }else{
  1543. gDiagStmtNm = model.getValue(xCareDiagListPath+"[stmtcd='"+gDiagStmtcd+"']/stmtcnts");
  1544. }
  1545. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recverno", gDiagRecVerNo );
  1546. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtnm",gDiagStmtNm);
  1547. }
  1548. //model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/fstrgstrnm", getUserName()); //기록자이름까지보이면 저장되지않은것을 구분하기 힘듬.
  1549. grd_carerecspec.rowstyle(sSetRow,"data","background-color") = "#ffff88";
  1550. model.setValue("/root/main/cond/srchtool/freetextsrchcnts", "");
  1551. model.setValue("/root/main/cond/srchtool/freetextdnarflag", "");
  1552. ta_freetext.refresh();
  1553. rdo_freetextdnarflag.refresh();
  1554. //var iRow = grd_carerecspec.rows-grd_carerecspec.fixedRows;
  1555. grd_carerecspec.bottomRow = sSetRow;
  1556. grd_carerecspec.select(sSetRow,1) = true;
  1557. grd_carerecspec.rebuild();
  1558. grd_carerecspec.resizeCells();
  1559. fDeSelectRow(grd_carediagspec);
  1560. // model.setValue(xRecSrchCondPath+"/recusrid","%");
  1561. // model.makeValue("/root/send/saveData", sStmtInfoHeader+sSaveData);
  1562. // var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  1563. // var sSrchData = sPid+"▦"
  1564. // +sIndd+"▦"
  1565. // +sOrddd+"▦"
  1566. // +sCretNo+"▦"
  1567. // +sIOFlag+"▦"
  1568. // +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  1569. // +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  1570. // +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  1571. // +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  1572. // +sRecFlag+"▦"
  1573. // +sRecLnkKey+"▦"
  1574. // +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  1575. // +model.getValue(xRecSrchCondPath+"/recsrchflag")+"▦"
  1576. // +model.getValue(xRecSrchCondPath+"/recusrid")+"▩";
  1577. // model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  1578. //
  1579. // if(submit("TXMNR00701")){
  1580. //
  1581. // model.removenodeset(xCareDiagListPath);
  1582. // model.removenodeset(xNursingRecordListPath);
  1583. //
  1584. //
  1585. // // 환자 간호기록 내역
  1586. // if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  1587. // model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  1588. //
  1589. // model.makeNode(xNursingRecordListPath);
  1590. // copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  1591. // grd_carerecspec.rebuild();
  1592. // //grd_carerecspec.resizeCells();
  1593. // fSettingStmtStyle("nr");
  1594. // model.recalculate();
  1595. //
  1596. // }
  1597. //
  1598. // // 환자 간호진단 내역
  1599. // if(getNodesetCount("/root/hidden/recinfo/carediaglist")>0 ){
  1600. //
  1601. // model.makeNode(xCareDiagListPath);
  1602. // copyNodeset(xCareDiagListPath,"/root/hidden/recinfo/carediaglist");
  1603. // grd_carediagspec.rebuild();
  1604. // grd_carediagspec.resizeCells();
  1605. // }
  1606. //
  1607. // //기록자 콤보세팅
  1608. // if(getNodesetCount("/root/hidden/recinfo/usersetlist")>0 ){
  1609. // model.removenodeset(xRecUsrSetListPath);
  1610. // model.makeNode(xRecUsrSetListPath);
  1611. // copyNodeset(xRecUsrSetListPath,"/root/hidden/recinfo/usersetlist");
  1612. // cmb_recusr.refresh();
  1613. // }
  1614. //
  1615. // model.setValue("/root/main/cond/srchtool/freetextsrchcnts", "");
  1616. // textarea4.refresh();
  1617. //
  1618. //
  1619. // if( model.getValue("/root/main/cond/recsrch/sortseq") == "A"){
  1620. // //grd_carerecspec.topRow = grd_carerecspec.rows;
  1621. // var iRow = grd_carerecspec.rows-grd_carerecspec.fixedRows;
  1622. // grd_carerecspec.bottomRow = iRow;
  1623. //
  1624. // grd_carerecspec.select(iRow,1) = true;
  1625. // }
  1626. //
  1627. // if(sRecDate == ""){
  1628. // sRecDate = getCurrentDate() + getCurrentTime(); // 현재시간
  1629. // }
  1630. //
  1631. //// var iRecDDRow = grd_carerecspec.findRow(sRecDate.substr(0,8),1,17,false,true);
  1632. //// var iRecTMRow = grd_carerecspec.findRow(sRecDate.substr(8,4),iRecDDRow,18,false,true);
  1633. //// grd_carerecspec.bottomRow = grd_carerecspec.rows;
  1634. // }
  1635. }
  1636. /**
  1637. * @group :
  1638. * @ver : 2007.06.15
  1639. * @by : 이은영
  1640. * @---------------------------------------------------
  1641. * @type : function
  1642. * @access : public
  1643. * @desc : 통합기록용인증로직
  1644. * @param :
  1645. * @return :
  1646. * @---------------------------------------------------
  1647. */
  1648. function fViewSign(){
  1649. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
  1650. var signRecDD = "";
  1651. var sSignDataRowCnt = "";
  1652. model.removenodeset("/root/send/signdata");
  1653. for( var idx = 1 ; idx <= getNodesetCount("/root/hidden/recinfo/recddlist"); idx++ ){
  1654. signRecDD = model.getValue("/root/hidden/recinfo/recddlist["+ idx +"]/recdd");
  1655. model.removenodeset(xSignPath);
  1656. model.makeNode(xSignPath);
  1657. if(getNodesetCount("/root/hidden/recinfo/totnursingrecordlist[recdd='"+ signRecDD +"']")>0 ){
  1658. copyNodeset(xSignPath,"/root/hidden/recinfo/totnursingrecordlist[recdd='"+ signRecDD +"']");
  1659. if(Sign.signprocess() == true){
  1660. sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  1661. // 전자인증 관련 환자 인적 정보를 보내줌.
  1662. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "i");
  1663. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid ); //등록번호
  1664. if( sIOFlag =="O" ){
  1665. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOrddd); //입원일자(입원,응급)/진료일자(외래)
  1666. }else{
  1667. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd); //입원일자(입원,응급)/진료일자(외래)
  1668. }
  1669. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", ""); //서명번호
  1670. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
  1671. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD); // 실제 기록이 이루어진 기록일자
  1672. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000"); //실제 기록이 이루어진 기록시간
  1673. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recsaveflag","Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1674. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1675. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag ); //외래/입원구분(코드정의서 M0010 참조)
  1676. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  1677. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddeptcd", sOrdDeptCd); //진료부서코드
  1678. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddrid", sOrdDrId ); //진료의사ID
  1679. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1680. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1681. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", Sign.signedInfos[1]);
  1682. // 공인인증 처리후 데이터
  1683. // model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  1684. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/screenid", getScreenID());
  1685. }
  1686. // else{
  1687. // return;
  1688. // }
  1689. } else{
  1690. sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  1691. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "d"); //삭제 상태
  1692. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid );//등록번호
  1693. if( sIOFlag =="O" ){
  1694. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOrddd);//입원일자(입원,응급)/진료일자(외래)
  1695. }else{
  1696. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd);//입원일자(입원,응급)/진료일자(외래)
  1697. }
  1698. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", "");//서명번호
  1699. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
  1700. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  1701. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1702. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag );//외래/입원구분(코드정의서 M0010 참조)
  1703. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", "삭제");
  1704. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD);// 실제 기록이 이루어진 기록일자
  1705. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000");// 실제 기록이 이루어진 기록일자
  1706. }
  1707. }
  1708. if ( getNodesetCount("/root/send/signdata") < 1 ){
  1709. return;
  1710. }
  1711. submit("TXMNR00904");
  1712. // if(submit("TXMNR00904")){
  1713. // messageBox("인증저장 ","I002");
  1714. // }
  1715. }
  1716. /**
  1717. * @group :
  1718. * @ver : 2007.06.15
  1719. * @by : 이은영
  1720. * @---------------------------------------------------
  1721. * @type : function
  1722. * @access : public
  1723. * @desc : 인증로직
  1724. * @param :
  1725. * @return :
  1726. * @---------------------------------------------------
  1727. */
  1728. function fSign(){
  1729. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
  1730. if( vsettime == "") {
  1731. Sign.certchkflag = "Y";
  1732. //alert("인증저장");
  1733. } else {
  1734. var res2 = getTimeInterval(vsettime, getCurrentTime(), 'hhmmss');
  1735. if(res2 > signtime* 60 || res2 < 0) {
  1736. Sign.certchkflag = "Y";
  1737. //alert("인증저장");
  1738. } else {
  1739. Sign.certchkflag = "N";
  1740. }
  1741. }
  1742. if(Sign.signprocess() == true){
  1743. // 전자인증 관련 환자 인적 정보를 보내줌.
  1744. vsettime = getCurrentTime();
  1745. model.makeValue("/root/send/signdata/pid", sPid ); //등록번호
  1746. if( sIOFlag =="O" ){
  1747. model.makeValue("/root/send/signdata/orddd", sOrddd); //입원일자(입원,응급)/진료일자(외래)
  1748. }else{
  1749. model.makeValue("/root/send/signdata/orddd", sIndd); //입원일자(입원,응급)/진료일자(외래)
  1750. }
  1751. model.makeValue("/root/send/signdata/signno", ""); //서명번호
  1752. model.makeValue("/root/send/signdata/cretno", sCretNo); //생성번호
  1753. model.makeValue("/root/send/signdata/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자
  1754. model.makeValue("/root/send/signdata/rectm", getCurrentTime()); //실제 기록이 이루어진 기록시간
  1755. model.makeValue("/root/send/signdata/recsaveflag", "Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1756. model.makeValue("/root/send/signdata/signflag", "02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  1757. model.makeValue("/root/send/signdata/signgenrflag", sIOFlag ); //외래/입원구분(코드정의서 M0010 참조)
  1758. model.makeValue("/root/send/signdata/formcd", "0000002432" ); //각 기록지별 서식코드
  1759. model.makeValue("/root/send/signdata/orddeptcd", sOrdDeptCd); //진료부서코드
  1760. model.makeValue("/root/send/signdata/orddrid", sOrdDrId ); //진료의사ID
  1761. model.makeValue("/root/send/signdata/dispyn", "N"); //기록뷰어에는 조회안되도록
  1762. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1763. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1764. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
  1765. // 공인인증 처리후 데이터
  1766. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  1767. }else{
  1768. return false;
  1769. }
  1770. model.makeValue("/root/send/signdata/screenid", getScreenID());
  1771. return true;
  1772. }
  1773. /**
  1774. * @group :
  1775. * @ver : 2007.06.15
  1776. * @by : 이은영
  1777. * @---------------------------------------------------
  1778. * @type : function
  1779. * @access : public
  1780. * @desc : 인증데이터 생성함수
  1781. * @param :
  1782. * @return :
  1783. * @---------------------------------------------------
  1784. */
  1785. function fMake_SignData(){
  1786. Sign.addnode("/root/main/signSaveData");
  1787. }
  1788. /**
  1789. * @group :
  1790. * @ver : 2007.04.24
  1791. * @by : 이은영
  1792. * @---------------------------------------------------
  1793. * @type : function
  1794. * @access : public
  1795. * @desc : 기록 저장
  1796. * @param : pFlag : TempSave : 임시저장, CertSave : 인증저장
  1797. * @return :
  1798. * @---------------------------------------------------
  1799. */
  1800. function fSaveStmtInfo(pFlag){
  1801. //debugger;
  1802. //var sSelYN = "N";
  1803. //var sAttrinfo1 = "";
  1804. //var sArrtCnt = 0;
  1805. var sStmtInfoHeader = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦"
  1806. +"pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦orddd▦certselyn▦diagstmtcd▦dnarnm▦usernm▦deptflagnm▦certflag▩"; // 저장 정보deptflagnm:간호진단명
  1807. //var sStmtInfo = ""; // 저장 정보
  1808. var sAttrInptParamInfo = ""; // 속성창 입력 정보
  1809. var sAttrInptYN = "N";
  1810. var sSaveData = "";
  1811. sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  1812. var sRecDate = "";
  1813. var sDNARFlag = ""; //DNAR 구분
  1814. var sDiagStmtCd = ""; // 진단진술문장 코드
  1815. var sDNARNm = "";//DNAR
  1816. var iSignRow = 0;//인증로우수
  1817. //var sLnkStmt = ""; // 링크된 진술문
  1818. //var sGrupCD = ""; // 그룹코드
  1819. //var sStmtDiagInfo = "";
  1820. if(sPid == ""){
  1821. messageBox("환자를 먼저","C002");
  1822. return;
  1823. }
  1824. model.removeNode("/root/main/signSaveData");
  1825. //model.makeNode(xSignDiagPath); ////20080828 진단정보를 따로 만들필요없다고 확인
  1826. model.makeNode(xSignPath);
  1827. for(var iStmtRow = 1 ; iStmtRow <= getNodesetCount(xNursingRecordListPath); iStmtRow++ ){
  1828. if( model.getValue(xNursingRecordListPath+"["+iStmtRow+"]/status") == "I" ){
  1829. sDNARFlag = "";
  1830. sDNARNm = "";
  1831. iSignRow++;
  1832. sDiagStmtCd = model.getValue(xNursingRecordListPath+"["+iStmtRow+"]/diagstmtcd");
  1833. if ( !isNull(sDiagStmtCd)){
  1834. sDNARFlag = model.getValue(xNursingRecordListPath+"["+iStmtRow+"]/dnar");
  1835. sDNARNm = model.getValue("/root/init/dnarflagnurs/itemset[itemcd = '"+sDNARFlag+"']/itemnm");
  1836. }
  1837. if( model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/recdtflag") == "U"){
  1838. sRecDate = model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/recdt");
  1839. } else {
  1840. sRecDate = getCurrentDate() + getCurrentTime();
  1841. }
  1842. sSaveData += model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/stmtspec") +"▦"
  1843. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/attrinfo") +"▦"
  1844. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/status") +"▦"
  1845. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/origincd") +"▦"
  1846. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/stmtcd") +"▦"
  1847. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/dnarflag") +"▦"
  1848. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/recoriginflag")+"▦"
  1849. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/recdtflag") +"▦"
  1850. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/recdt") +"▦"
  1851. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/pid") +"▦"
  1852. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/indd") +"▦"
  1853. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/cretno") +"▦"
  1854. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/instcd") +"▦"
  1855. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/ioflag") +"▦"
  1856. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/orddeptcd") +"▦"
  1857. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/recflag") +"▦"
  1858. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/reclnkkey") +"▦"
  1859. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/orddd") +"▦"
  1860. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/certselyn") +"▦"
  1861. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/diagstmtcd") +"▦"
  1862. + sDNARNm +"▦"
  1863. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/fstrgstrnm") +"▦"
  1864. + model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/diagstmtnm") +"▦"
  1865. + pFlag + "▩";
  1866. //model.removeNode("/root/main/signSaveData");
  1867. //model.makeNode("/root/main/signSaveData");
  1868. //setCSVToNode("/root/main/signSaveData", sSaveHeader+sSaveData, "saveDataList");
  1869. model.makeValue(xSignPath+"[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/stmtspec"));
  1870. model.makeValue(xSignPath+"[" + iSignRow + "]/status", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/status"));
  1871. model.makeValue(xSignPath+"[" + iSignRow + "]/recdt", sRecDate);
  1872. model.makeValue(xSignPath+"[" + iSignRow + "]/usernm", getUserName());
  1873. model.makeValue(xSignPath+"[" + iSignRow + "]/deptflagnm", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/diagstmtnm"));
  1874. model.makeValue(xSignPath+"[" + iSignRow + "]/dnarnm", sDNARNm);
  1875. //20080828 진단정보를 따로 만들필요없다고 확인 김홍점
  1876. // if( model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/dnarflag") == "2N"){
  1877. //
  1878. // model.makeValue(xSignDiagPath+"[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/stmtspec"));
  1879. // model.makeValue(xSignDiagPath+"[" + iSignRow + "]/status", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/status"));
  1880. // model.makeValue(xSignDiagPath+"[" + iSignRow + "]/recdt", sRecDate);
  1881. // model.makeValue(xSignDiagPath+"[" + iSignRow + "]/todt", "");
  1882. // model.makeValue(xSignDiagPath+"[" + iSignRow + "]/usernm", getUserName());
  1883. //
  1884. //
  1885. // } else {
  1886. //
  1887. // model.makeValue(xSignPath+"[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/stmtspec"));
  1888. // model.makeValue(xSignPath+"[" + iSignRow + "]/status", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/status"));
  1889. // model.makeValue(xSignPath+"[" + iSignRow + "]/recdt", sRecDate);
  1890. // model.makeValue(xSignPath+"[" + iSignRow + "]/usernm", getUserName());
  1891. // model.makeValue(xSignPath+"[" + iSignRow + "]/deptflagnm", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/diagstmtnm"));
  1892. // model.makeValue(xSignPath+"[" + iSignRow + "]/dnarnm", sDNARNm);
  1893. // }
  1894. }
  1895. }
  1896. if(sSaveData == ""){
  1897. messageBox("저장할 데이터가","I004");
  1898. return;
  1899. }
  1900. //sSaveData = sSaveData.substr(0, sSaveData.length -1);
  1901. model.setValue(xRecSrchCondPath+"/recusrid","%");
  1902. model.makeValue("/root/send/saveData", sStmtInfoHeader+sSaveData);
  1903. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▦certflag▩";
  1904. var sSrchData = sPid+"▦"
  1905. + sIndd+"▦"
  1906. + sOrddd+"▦"
  1907. + sCretNo+"▦"
  1908. + sIOFlag+"▦"
  1909. + model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  1910. + model.getValue(xRecSrchCondPath+"/todd")+"▦"
  1911. + model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  1912. + model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  1913. + sRecFlag+"▦"
  1914. + sRecLnkKey+"▦"
  1915. + model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  1916. + model.getValue(xRecSrchCondPath+"/recsrchflag")+"▦"
  1917. + model.getValue(xRecSrchCondPath+"/recusrid")+
  1918. + pFlag+"▩";
  1919. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  1920. //인증저장
  1921. var msg = messageBox( '[ ' + cmb_pid.label + ' ] 님의 간호일지 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  1922. if(Number(msg) == 6){//예
  1923. // 20120904 KJS
  1924. if (!fSign()) return;
  1925. activateMyWindow();
  1926. if(submit("TXMNR00701")){
  1927. model.removenodeset(xNursingRecordListPath);
  1928. model.removenodeset(xCareDiagListPath);
  1929. // 환자 간호기록 내역
  1930. if( getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  1931. model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= "") {
  1932. model.makeNode(xNursingRecordListPath);
  1933. copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  1934. grd_carerecspec.rebuild();
  1935. fSettingStmtStyle("nr");
  1936. model.recalculate();
  1937. //grd_carerecspec.resizeCells();
  1938. }
  1939. // 환자 간호진단 내역
  1940. if(getNodesetCount("/root/hidden/recinfo/carediaglist")>0 ){
  1941. model.makeNode(xCareDiagListPath);
  1942. copyNodeset(xCareDiagListPath,"/root/hidden/recinfo/carediaglist");
  1943. grd_carediagspec.rebuild();
  1944. grd_carediagspec.resizeCells();
  1945. }
  1946. //기록자 콤보세팅
  1947. if(getNodesetCount("/root/hidden/recinfo/usersetlist")>0 ){
  1948. model.removenodeset(xRecUsrSetListPath);
  1949. model.makeNode(xRecUsrSetListPath);
  1950. copyNodeset(xRecUsrSetListPath,"/root/hidden/recinfo/usersetlist");
  1951. cmb_recusr.refresh();
  1952. }
  1953. fViewSign();
  1954. // 조회조건
  1955. // 속성 입력 진술문 뽑아내기..
  1956. switch(sSrchToolStatus){
  1957. case "S": // SET
  1958. model.removenodeset(xNStmtSetListPath);
  1959. model.removenodeset(xDStmtSetListPath);
  1960. model.removenodeset(xAStmtSetListPath);
  1961. model.removenodeset(xRStmtSetListPath);
  1962. grp_dnarset.visible = false;
  1963. btn_freetextsel.visible = true;
  1964. grp_dnarset.refresh();
  1965. break;
  1966. case "J": // 진술문 검색
  1967. for(var iRow=grd_srchstmtinfo.fixedrows; iRow<=grd_srchstmtinfo.rows-grd_srchstmtinfo.fixedrows; iRow++){
  1968. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  1969. model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  1970. }
  1971. }
  1972. grd_srchstmtinfo.rebuild();
  1973. break;
  1974. }
  1975. if(sRecDate == ""){
  1976. sRecDate = getCurrentDate() + getCurrentTime(); // 현재시간
  1977. }
  1978. //model.setValue(xRecSrchCondPath+"/recsrchflag","NR");
  1979. grp_sea.refresh();
  1980. if( model.getValue("/root/main/cond/recsrch/sortseq") == "A"){
  1981. //grd_carerecspec.topRow = grd_carerecspec.rows;
  1982. var iRow = grd_carerecspec.rows-grd_carerecspec.fixedRows;
  1983. grd_carerecspec.bottomRow = iRow;
  1984. grd_carerecspec.select(iRow,1) = true;
  1985. }
  1986. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  1987. if(eERFLAG == "Y"){
  1988. fgetSelectPid(cmb_erpat);
  1989. } else {
  1990. //-------(20110228) 경북대
  1991. //alert("0");
  1992. fgetSelectPid(cmb_mypat);
  1993. //alert("1");
  1994. //-------(20110228) 경북대
  1995. }
  1996. } else {
  1997. return;
  1998. }
  1999. //20110629_KNUH_Start nexyn추가 및 처리
  2000. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  2001. if(nextyn == "Y") {
  2002. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  2003. if(eERFLAG == "Y"){
  2004. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  2005. fNextSelectErPat(cmb_erpat);
  2006. cmb_erpat.refresh();
  2007. } else{
  2008. //-------(20110228) 경북대
  2009. //alert("3");
  2010. //내환자 조회-간호일지용
  2011. //debugger;
  2012. if (gcurrentpid != "") {
  2013. fGetSettingPatientList_type1(); //--테스트완료 , XRW를 변경하면됨
  2014. //alert("4");
  2015. var posi = fgetSelectPidNext();
  2016. //alert("5/"+ posi);
  2017. fsetSelectPidNext(cmb_mypat,posi);
  2018. //alert("6");
  2019. cmb_mypat.refresh();
  2020. }
  2021. }
  2022. } else {
  2023. if(eERFLAG == "Y"){
  2024. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  2025. fNextSelectErPat(cmb_erpat);
  2026. cmb_erpat.refresh();
  2027. } else {
  2028. if (gcurrentpid != "") {
  2029. fGetSettingPatientList_type1(); //--테스트완료 , XRW를 변경하면됨
  2030. //var posi = fgetSelectPidNext();
  2031. //fsetSelectPidNext(cmb_mypat, posi);
  2032. //cmb_mypat.refresh();
  2033. cmb_mypat.dispatch("xforms-value-changed");
  2034. }
  2035. }
  2036. }
  2037. //-------(20110228) 경북대
  2038. //var iRecDDRow = grd_carerecspec.findRow(sRecDate.substr(0,8),1,17,false,true);
  2039. //var iRecTMRow = grd_carerecspec.findRow(sRecDate.substr(8,4),iRecDDRow,18,false,true);
  2040. //grd_carerecspec.bottomRow = grd_carerecspec.rows;
  2041. }
  2042. }
  2043. /* -----(20110228) 경북대 ------------------------ */
  2044. // 현재 위치 인지하기
  2045. function fgetSelectPid(sobj){
  2046. //현재위치찾기
  2047. //alert("sobj.value:" + sobj.value);
  2048. if (sobj.value != "") {
  2049. gcurrentpid = sobj.value;
  2050. } else {
  2051. gcurrentpid = "";
  2052. }
  2053. //alert("gcurrentpid:" + gcurrentpid);
  2054. }
  2055. // 이전 저장위치이전 다음으로 조회시키기
  2056. function fgetSelectPidNext(){
  2057. //var sPath = "/root/temp/mypatsettinginfo/settingpatient/settingpatientlist"
  2058. var tempPid = "";
  2059. var sposition = 0;
  2060. //alert("gcurrentpid:" + gcurrentpid + "/" + getNodesetCount(gpidPath));
  2061. if ( gcurrentpid != "") {
  2062. for(i = 1; i <= getNodesetCount(gpidPath); i++ ) {
  2063. tempPid = model.getValue(gpidPath + "["+ i +"]/pid");
  2064. //alert(gcurrentpid + "/" + tempPid);
  2065. //gcurrentpid 전역변수
  2066. if (gcurrentpid == tempPid) {
  2067. sposition = i;
  2068. break;
  2069. //i = getNodesetCount(gpidPath) + 1;
  2070. }
  2071. }
  2072. }
  2073. return sposition;
  2074. }
  2075. // 재설정하기
  2076. function fsetSelectPidNext(sobj,sposition){
  2077. // 중환자실 환자인 경우 저장 후 현재 환자 재선택 (2011.03.25 Ahn)
  2078. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  2079. if(fIsICUPatient(sWardCD)){
  2080. sobj.select(parseInt(sposition)-1);
  2081. }else{
  2082. if ( getNodesetCount(gpidPath) >= sposition ) {
  2083. if(nextyn == "Y") {
  2084. sobj.select(sposition);
  2085. } else {
  2086. sobj.select(sposition-1);
  2087. }
  2088. //alert("1");
  2089. } else {
  2090. //콤보믄 0부터시작
  2091. //instance는 1부터시작
  2092. sobj.select(0);
  2093. //alert("2");
  2094. }
  2095. }
  2096. }
  2097. /* -----(20110228) 경북대 ------------------------ */
  2098. /**
  2099. * @group :
  2100. * @ver : 2007.04.24
  2101. * @by : 이은영
  2102. * @---------------------------------------------------
  2103. * @type : function
  2104. * @access : public
  2105. * @desc : 선택진술문 이동
  2106. * @param : pFlag:SET 진술문 셋에서 선택한경우
  2107. * @return :
  2108. * @---------------------------------------------------
  2109. */
  2110. function fSelectStmtInfo(pFlag){
  2111. var sSelYN = "N";
  2112. var sAttrinfo1 = "";
  2113. var sArrtCnt = 0;
  2114. var sStmtInfoHeader = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦"
  2115. +"pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦orddd▦certselyn▦diagstmtcd▦diagstmtnm▦recverno▩"; // 저장 정보
  2116. var sStmtInfo = ""; // 저장 정보
  2117. var sAttrInptParamInfo = ""; // 속성창 입력 정보
  2118. var sAttrInptYN = "N";
  2119. var sSelectData = "";
  2120. //var sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  2121. //var sRecDate = "";
  2122. var sDNARFlag = ""; //DNAR 구분
  2123. var sStmtCd = ""; // 진술문장 코드
  2124. var sStmtCnts = "";
  2125. var sLnkStmt = ""; // 링크된 진술문
  2126. var sGrupCD = ""; // 그룹코드
  2127. var sStmtDiagInfo = "";
  2128. var sStmtList = "";
  2129. var careRow = grd_carediagspec.row;
  2130. var sSetRow = 0;
  2131. if(sPid == ""){
  2132. messageBox("환자를 먼저","C002");
  2133. return;
  2134. }
  2135. if( !isNull(model.getValue("/root/main/cond/srchtool/freetextsrchcnts")) ){
  2136. if ( !fFreeTextValueChg()) return;
  2137. } else if ( pFlag !="SET" ) {
  2138. if ( !fFreeTextValueChg("J")) return;
  2139. }
  2140. model.removenode("/root/send");
  2141. //진술문 클리어
  2142. grp_dnarset.visible = false;
  2143. btn_freetextsel.visible = true;
  2144. // 속성 입력 진술문 뽑아내기..
  2145. switch(sSrchToolStatus){
  2146. case "S": // SET
  2147. model.removeNodeset(xSaveSetInfoPath);
  2148. model.makeNode(xSaveSetInfoPath);
  2149. copyNodesetType(xSaveSetInfoPath, xNStmtSetListPath, "replace", model, model);
  2150. copyNodesetType(xSaveSetInfoPath, xDStmtSetListPath, "after", model, model);
  2151. copyNodesetType(xSaveSetInfoPath, xAStmtSetListPath, "after", model, model);
  2152. copyNodesetType(xSaveSetInfoPath, xRStmtSetListPath, "after", model, model);
  2153. for(var iRow=1; iRow<=getNodesetCount(xSaveSetInfoPath); iRow++){
  2154. sDNARFlag = model.getValue(xSaveSetInfoPath+"["+iRow+"]/dnarflag");
  2155. if(model.getValue(xSaveSetInfoPath+"["+iRow+"]/check") == "true"){
  2156. sStmtCd = model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcd");
  2157. sGrupCD = gReturnGrupcd;
  2158. if(fExistStmtCd(sStmtCd, sStmtInfo,sGrupCD) == "N"){
  2159. cnt = model.getValue(xSaveSetInfoPath+"["+iRow+"]/cnt");
  2160. if(eval(model.getValue(xSaveSetInfoPath+"["+iRow+"]/attrcnt")) > 0){
  2161. sAttrInptYN = "Y";
  2162. sAttrInptParamInfo += model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcd")+"▦"
  2163. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcnts")+"▦"
  2164. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/attrinfo1")+"▦"
  2165. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/attrinfo2")+"▦"
  2166. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/attressnyn")+"▦"
  2167. + sDNARFlag+"▩";
  2168. }
  2169. sSelYN = "Y";
  2170. if(cnt < 1 || cnt == "" ){
  2171. //속성이 존재하는 진술문장
  2172. sStmtInfo += model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcnts")+"▦" //stmtcnts
  2173. + "▦" // attrinfo
  2174. + "I▦"
  2175. + sGrupCD+"▦"
  2176. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcd")+"▦"
  2177. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/dnarflag")+"▦"
  2178. + sSrchToolStatus+"▦"
  2179. + "A▦"
  2180. + "▦"
  2181. + sPid+"▦"
  2182. + sIndd+"▦"
  2183. + sCretNo+"▦"
  2184. + sInstcd+"▦"
  2185. + sIOFlag+"▦"
  2186. + sOrdDeptCd+"▦"
  2187. + sRecFlag+"▦"
  2188. + sRecLnkKey+"▦"
  2189. + sOrddd+"▦"
  2190. + "Y▦";
  2191. if(sDNARFlag == "2N" ){
  2192. sStmtInfo += sStmtCd + "▩";
  2193. gDiagStmtNm = model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcnts");
  2194. } else {
  2195. sStmtInfo += "▩";
  2196. }
  2197. } else{
  2198. //분류별 진단 코드 생성(추가이유 : 현재 분류별 진단코드를 생성하기 위함)
  2199. var sChkStmtCd = fCreatDiag(sStmtCd);
  2200. var sDiagStmtCd = sChkStmtCd.split("▦");
  2201. for(i = 0; i < cnt ; i++){
  2202. sStmtInfo += model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcnts")+"▦" //stmtcnts
  2203. + "▦" // attrinfo
  2204. + "I▦"
  2205. + sGrupCD+"▦"
  2206. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/stmtcd")+"▦"
  2207. + model.getValue(xSaveSetInfoPath+"["+iRow+"]/dnarflag")+"▦"
  2208. + sSrchToolStatus+"▦"
  2209. + "A▦"
  2210. + "▦"
  2211. + sPid+"▦"
  2212. + sIndd+"▦"
  2213. + sCretNo+"▦"
  2214. + sInstcd+"▦"
  2215. + sIOFlag+"▦"
  2216. + sOrdDeptCd+"▦"
  2217. + sRecFlag+"▦"
  2218. + sRecLnkKey+"▦"
  2219. + sOrddd+"▦"
  2220. + "Y▦"
  2221. + sDiagStmtCd[i]+"▩";
  2222. }
  2223. }
  2224. }
  2225. }
  2226. }
  2227. break;
  2228. case "J": // 진술문 검색
  2229. //if(sRecDateFlag == "U"){
  2230. // sRecDate = model.getValue(xRecSaveCondPath+"/recdd")+model.getValue(xRecSaveCondPath+"/rectm");
  2231. // if(isValidDateTime(sRecDate,"YYYYMMDDhhnn")== false){
  2232. // messageBox("기록 시간이 유효하지","E007");
  2233. // return;
  2234. // }
  2235. //}
  2236. for(var iRow=grd_srchstmtinfo.fixedrows; iRow<=grd_srchstmtinfo.rows-grd_srchstmtinfo.fixedrows; iRow++){
  2237. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  2238. sStmtCd = model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcd");
  2239. sGrupCD = gDiagGrupcd;
  2240. //if(fExistStmtCd(sStmtCd, sStmtInfo,sGrupCD) == "N"){
  2241. if(eval(model.getValue(xStmtInfoPath+"["+iRow+"]/attrcnt")) > 0){
  2242. sAttrInptYN = "Y";
  2243. sAttrInptParamInfo += model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcd")+"▦"
  2244. + model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcnts")+"▦"
  2245. + model.getValue(xStmtInfoPath+"["+iRow+"]/attrinfo1")+"▦"
  2246. + model.getValue(xStmtInfoPath+"["+iRow+"]/attrinfo2")+"▦"
  2247. + model.getValue(xStmtInfoPath+"["+iRow+"]/attressnyn")+"▦"
  2248. + model.getValue(xStmtInfoPath+"["+iRow+"]/dnarflag")+"▩";
  2249. }
  2250. sSelYN = "Y";
  2251. sStmtInfo += model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcnts")+"▦"
  2252. + "▦"
  2253. + "I▦"
  2254. + sGrupCD+"▦"
  2255. + model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcd")+"▦"
  2256. + model.getValue(xStmtInfoPath+"["+iRow+"]/dnarflag")+"▦"
  2257. + sSrchToolStatus+"▦"
  2258. + "A▦"
  2259. + "▦"
  2260. + sPid+"▦"
  2261. + sIndd+"▦"
  2262. + sCretNo+"▦"
  2263. + sInstcd+"▦"
  2264. + sIOFlag+"▦"
  2265. + sOrdDeptCd+"▦"
  2266. + sRecFlag+"▦"
  2267. + sRecLnkKey+"▦"
  2268. + sOrddd+"▦"
  2269. + "Y▦"
  2270. + gDiagStmtcd+"▩";
  2271. }
  2272. // }
  2273. }
  2274. break;
  2275. }
  2276. // 진술문 선택 여부 체크
  2277. if( sSelYN == "N" && isNull(model.getValue("/root/main/cond/srchtool/freetextsrchcnts")) ){
  2278. messageBox("선택된 진술문이","I004");
  2279. return;
  2280. }
  2281. var sStmtList=""; //진술문 리스트
  2282. var sAttrInptList=""; // 속성 입력 진술문 리스트
  2283. var sTmpStmt = ""; // 진술문 정보
  2284. var sTmpAttrInpt = ""; // 속성 입력 진술문 정보
  2285. var iAttrInptRow=0; // 속성 입력 진술문 시작위치
  2286. // 저장 데이터 만들기..
  2287. if(sAttrInptYN == "Y"){ // 속성 입력 진술문 선택 여부
  2288. setParameter("SMMNR014_Param",sAttrInptParamInfo);
  2289. modal("SMMNR01400");
  2290. var sReturnInfo = getParameter("SMMNR014_Return"); // 속성 입력된 진술문 정보
  2291. sStmtList = sStmtInfo.split("▩");
  2292. if(sReturnInfo == "" || sReturnInfo == null){ // 속성 입력하지 않은 경우
  2293. sAttrInptList = sAttrInptParamInfo.split("▩");
  2294. for(var iStmtRow=0;iStmtRow< sStmtList.length-1; iStmtRow++){
  2295. sTmpStmt = sStmtList[iStmtRow].split("▦");
  2296. sTmpAttrInpt = sAttrInptList[iAttrInptRow].split("▦");
  2297. if(getArrayData(sStmtInfo,iStmtRow,4) == getArrayData(sAttrInptParamInfo,iAttrInptRow,0)){ // 속성이 존재하는 진술문
  2298. iAttrInptRow++;
  2299. }else{ // 속성이 없는 진술문
  2300. sSelectData +=sStmtList[iStmtRow]+"▩";
  2301. }
  2302. }
  2303. } else { // 속성 입력한 경우
  2304. sAttrInptList = sReturnInfo.split("▩");
  2305. for(var iStmtRow=0;iStmtRow< sStmtList.length-1; iStmtRow++){
  2306. var sSaveFirData = "";
  2307. sTmpStmt = sStmtList[iStmtRow].split("▦");
  2308. for(var iAttrInptRow = 1 ; iAttrInptRow < sAttrInptList.length -1 ; iAttrInptRow ++){
  2309. sTmpAttrInpt = sAttrInptList[iAttrInptRow].split("▦");
  2310. if(getArrayData(sStmtInfo,iStmtRow,4) == getArrayData(sReturnInfo,iAttrInptRow,0)){ // 속성이 존재하는 진술문
  2311. var iAttrInptChk = getArrayData(sReturnInfo,iAttrInptRow,2);
  2312. var iAttrInptChkAfter = iAttrInptChk.split("⊙");
  2313. var ChkValue = 0;
  2314. var iAttrInptChkValue = "";
  2315. for(var i =0 ; i < iAttrInptChkAfter.length ; i++){
  2316. if(iAttrInptChkAfter[i] != ""){
  2317. iAttrInptChkValue += iAttrInptChkAfter[i]+"⊙";
  2318. }
  2319. }
  2320. if(iAttrInptChkValue == ""){
  2321. sSaveFirData += getArrayData(sReturnInfo,iAttrInptRow,1).replace(": ", "") +"▦▦";
  2322. }else{
  2323. sSaveFirData += getArrayData(sReturnInfo,iAttrInptRow,1)+"▦"
  2324. + iAttrInptChkValue+"▦";
  2325. //+ getArrayData(sReturnInfo,iAttrInptRow,2)+"▦";
  2326. }
  2327. }
  2328. }
  2329. //진술문 문장 특수 기호 삭제
  2330. sSaveFirData = sSaveFirData.replace(", ▦", "▦");
  2331. sSaveFirData = sSaveFirData.replace(": ▦", "▦");
  2332. if(sSaveFirData == ""){
  2333. sSelectData +=sStmtList[iStmtRow]+"▩";
  2334. }else{
  2335. sSelectData += sSaveFirData;
  2336. sSelectData += getArrayData(sStmtInfo,iStmtRow,2)+"▦"
  2337. + getArrayData(sStmtInfo,iStmtRow,3)+"▦"
  2338. + getArrayData(sStmtInfo,iStmtRow,4)+"▦"
  2339. + getArrayData(sStmtInfo,iStmtRow,5)+"▦"
  2340. + getArrayData(sStmtInfo,iStmtRow,6)+"▦"
  2341. + getArrayData(sStmtInfo,iStmtRow,7)+"▦"
  2342. + getArrayData(sStmtInfo,iStmtRow,8)+"▦"
  2343. + getArrayData(sStmtInfo,iStmtRow,9)+"▦"
  2344. + getArrayData(sStmtInfo,iStmtRow,10)+"▦"
  2345. + getArrayData(sStmtInfo,iStmtRow,11)+"▦"
  2346. + getArrayData(sStmtInfo,iStmtRow,12)+"▦"
  2347. + getArrayData(sStmtInfo,iStmtRow,13)+"▦"
  2348. + getArrayData(sStmtInfo,iStmtRow,14)+"▦"
  2349. + getArrayData(sStmtInfo,iStmtRow,15)+"▦"
  2350. + getArrayData(sStmtInfo,iStmtRow,16)+"▦"
  2351. + getArrayData(sStmtInfo,iStmtRow,17)+"▦"
  2352. + getArrayData(sStmtInfo,iStmtRow,18)+"▦"
  2353. + getArrayData(sStmtInfo,iStmtRow,19)+"▩";
  2354. }
  2355. }
  2356. }
  2357. } else{ // 속성이 없는 진술문만 있는 경우
  2358. sSelectData = sStmtInfo;
  2359. }
  2360. if( sSelectData == "" && isNull(model.getValue("/root/main/cond/srchtool/freetextsrchcnts")) ){
  2361. messageBox("선택 데이터가","I004");
  2362. return;
  2363. }
  2364. sStmtList = sSelectData.split("▩");
  2365. var sExistStmtCd = "";
  2366. for(var iStmtRow = 0 ; iStmtRow< sStmtList.length-1; iStmtRow++ ){
  2367. grd_carerecspec.addRow(false);
  2368. sSetRow = grd_carerecspec.rows - grd_carerecspec.fixedRows;
  2369. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/stmtspec", getArrayData(sSelectData,iStmtRow,0));
  2370. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/attrinfo", getArrayData(sSelectData,iStmtRow,1));
  2371. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/status", getArrayData(sSelectData,iStmtRow,2));
  2372. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/origincd", getArrayData(sSelectData,iStmtRow,3));
  2373. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/stmtcd", getArrayData(sSelectData,iStmtRow,4));
  2374. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/dnarflag", getArrayData(sSelectData,iStmtRow,5));
  2375. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recoriginflag", getArrayData(sSelectData,iStmtRow,6));
  2376. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recdtflag", getArrayData(sSelectData,iStmtRow,7));
  2377. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recdt", getArrayData(sSelectData,iStmtRow,8));
  2378. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/pid", getArrayData(sSelectData,iStmtRow,9));
  2379. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/indd", getArrayData(sSelectData,iStmtRow,10));
  2380. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/cretno", getArrayData(sSelectData,iStmtRow,11));
  2381. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/instcd", getArrayData(sSelectData,iStmtRow,12));
  2382. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/ioflag", getArrayData(sSelectData,iStmtRow,13));
  2383. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/orddeptcd", getArrayData(sSelectData,iStmtRow,14));
  2384. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recflag", getArrayData(sSelectData,iStmtRow,15));
  2385. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/reclnkkey", getArrayData(sSelectData,iStmtRow,16));
  2386. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/orddd", getArrayData(sSelectData,iStmtRow,17));
  2387. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/certselyn", getArrayData(sSelectData,iStmtRow,18));
  2388. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtcd", getArrayData(sSelectData,iStmtRow,19));
  2389. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/dnar", getArrayData(sSelectData,iStmtRow,5) );
  2390. if( getArrayData(sSelectData,iStmtRow,19) != "" ){
  2391. gDiagRecVerNo = model.getValue(xCareDiagListPath+"[stmtcd='"+getArrayData(sSelectData,iStmtRow,19)+"' and origincd='"+getArrayData(sSelectData,iStmtRow,3)+"' and todt ='']/recverno");
  2392. //alert(getArrayData(sSelectData,iStmtRow,19)+"---------"+getArrayData(sSelectData,iStmtRow,3));
  2393. if( isNull(gDiagRecVerNo) ){
  2394. gDiagStmtNm = model.getValue(xNStmtSetListPath+"[stmtcd='"+getArrayData(sSelectData,iStmtRow,19)+"']/stmtcnts");
  2395. } else{
  2396. gDiagStmtNm = model.getValue(xCareDiagListPath+"[stmtcd='"+getArrayData(sSelectData,iStmtRow,19)+"']/stmtcnts");
  2397. }
  2398. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recverno", gDiagRecVerNo );
  2399. model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtnm",gDiagStmtNm);
  2400. }
  2401. //else if ( fFreeTextValueChg("J") ){//진술문검색탭에서 진술문을 선택한경우 간호진단내역 선택한게 존재하면 진단정보를 함께 set한다.
  2402. // gDiagRecVerNo = model.getValue(xCareDiagListPath+"[stmtcd='"+model.getValue(xCareDiagListPath+"["+careRow+"]/stmtcd")+"' and origincd='"+model.getValue(xCareDiagListPath+"["+careRow+"]/origincd")+"' and todt ='']/recverno");
  2403. // gDiagStmtNm = model.getValue(xCareDiagListPath+"["+careRow+"]/stmtcnts");
  2404. // model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtcd",gDiagStmtcd);
  2405. // model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/diagstmtnm",gDiagStmtNm);
  2406. // model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/recverno",gDiagRecVerNo);
  2407. // model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/origincd", gDiagGrupcd);
  2408. //}
  2409. //model.makeValue(xNursingRecordListPath+"["+sSetRow+"]/fstrgstrnm", getUserName());
  2410. grd_carerecspec.rowstyle(sSetRow,"data","background-color") = "#ffff88";
  2411. //grd_carerecspec.rowstyle(sSetRow,"data","background-color") = "#FFFFFF";
  2412. for(var iRow=grd_srchstmtinfo.fixedrows; iRow<=grd_srchstmtinfo.rows-grd_srchstmtinfo.fixedrows; iRow++){
  2413. model.setValue(xStmtInfoPath+"["+iRow+"]/check", "false");
  2414. }
  2415. }
  2416. var iRow = grd_carerecspec.rows - grd_carerecspec.fixedRows;
  2417. grd_carerecspec.bottomRow = iRow;
  2418. grd_carerecspec.select(iRow,1) = true;
  2419. grd_carerecspec.mergecells = "byrestriccol";
  2420. //grd_carerecspec.mergecol(2)=false;
  2421. //grd_carerecspec.mergecol(3)=false;
  2422. //grd_carerecspec.mergecol(4)=false; dnar
  2423. grd_carerecspec.mergecol(5)=false;
  2424. grd_carerecspec.mergecol(6)=false;
  2425. grd_carerecspec.mergecol(7)=false;
  2426. grd_carerecspec.rebuild();
  2427. grd_carerecspec.resizeCells();
  2428. if( !isNull(model.getValue("/root/main/cond/srchtool/freetextsrchcnts")) ){
  2429. fSaveTextStmtInfo();
  2430. }
  2431. model.removenodeset(xNStmtSetListPath);
  2432. model.removenodeset(xDStmtSetListPath);
  2433. model.removenodeset(xAStmtSetListPath);
  2434. model.removenodeset(xRStmtSetListPath);
  2435. fDeSelectRow(grd_carediagspec);
  2436. }
  2437. /**
  2438. * @group :
  2439. * @ver : 2007.04.24
  2440. * @by : 이은영
  2441. * @---------------------------------------------------
  2442. * @type : function
  2443. * @access : public
  2444. * @desc : 그리드 클릭시 선택컬럼 값 변경
  2445. * @param :
  2446. * @return :
  2447. * @---------------------------------------------------
  2448. */
  2449. function fClickedGridRow(pObj, pListPath, pRow, pCol){
  2450. var iRow = 0;
  2451. var iCol = 0;
  2452. if(pObj != null){//20080623김홍점 추가 로직
  2453. iRow = pRow;
  2454. iCol = pCol;
  2455. if(iRow < 1 || iRow > pObj.rows) return;
  2456. if(iCol != pObj.colRef("check")) {
  2457. if(model.getValue(pListPath+"["+iRow+"]/check") == "true"){
  2458. model.setValue(pListPath+"["+iRow+"]/check","false");
  2459. }else{
  2460. model.setValue(pListPath+"["+iRow+"]/check","true");
  2461. if( pObj == grd_nursingd ){
  2462. gDiagStmtcd = model.getValue(pListPath+"["+iRow+"]/stmtcd");
  2463. gDiagStmtNm = model.getValue(pListPath+"["+iRow+"]/stmtcnts");
  2464. }
  2465. }
  2466. } else {
  2467. if(model.getValue(pListPath+"["+iRow+"]/check") == "true"){
  2468. if( pObj == grd_nursingd ){
  2469. gDiagStmtcd = model.getValue(pListPath+"["+iRow+"]/stmtcd");
  2470. gDiagStmtNm = model.getValue(pListPath+"["+iRow+"]/stmtcnts");
  2471. }
  2472. }
  2473. }
  2474. if( pObj == grd_nursingd ){
  2475. fSettingGridBackColorNew(pRow);
  2476. }
  2477. }else{
  2478. switch(sSrchToolStatus){
  2479. //case "S": // SET
  2480. // case "N": // 표준 간호과정 SET
  2481. // iRow = grd_grupstmtinfo.row;
  2482. // iCol = grd_grupstmtinfo.col;
  2483. // if(iCol == 2) return;
  2484. // if(iRow < 1) return;
  2485. // if(model.getValue(xStmtSetListPath+"["+iRow+"]/check") == "true"){
  2486. // model.setValue(xStmtSetListPath+"["+iRow+"]/check","false");
  2487. // }else{
  2488. // model.setValue(xStmtSetListPath+"["+iRow+"]/check","true");
  2489. // }
  2490. // fSettingGridBackColor();
  2491. // grd_grupstmtinfo.rebuild();
  2492. // break;
  2493. case "J": // 진술문 검색
  2494. iRow = grd_srchstmtinfo.row;
  2495. iCol = grd_srchstmtinfo.col;
  2496. if(iCol == 2) return;
  2497. if(iRow < 1) return;
  2498. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  2499. model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  2500. }else{
  2501. model.setValue(xStmtInfoPath+"["+iRow+"]/check", "true");
  2502. }
  2503. grd_srchstmtinfo.rebuild();
  2504. // grd_srchstmtinfo.row = iRow;
  2505. break;
  2506. }
  2507. }
  2508. }
  2509. /**
  2510. * @group :
  2511. * @ver : 2007.04.24
  2512. * @by : 이은영
  2513. * @---------------------------------------------------
  2514. * @type : function
  2515. * @access : public
  2516. * @desc : 진술문 검색시에 더블 클릭시 현재 선택된 컬럼만 check 표시 후에 저장
  2517. * @param :
  2518. * @return :
  2519. * @---------------------------------------------------
  2520. */
  2521. function fDblClickedGridRow(){
  2522. var sRowCnt = grd_srchstmtinfo.rows - grd_srchstmtinfo.fixedrows;
  2523. var iSelectedRow = grd_srchstmtinfo.row;
  2524. if(iSelectedRow < 1) return;
  2525. for(var iRow = grd_srchstmtinfo.fixedrows; iRow <= sRowCnt; iRow++){
  2526. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  2527. model.setValue(xStmtInfoPath+"["+iRow+"]/check", "false");
  2528. }
  2529. }
  2530. model.setValue(xStmtInfoPath+"["+iSelectedRow+"]/check", "true");
  2531. grd_srchstmtinfo.rebuild();
  2532. fSaveStmtInfo("TempSave");
  2533. model.setValue(xStmtInfoPath+"["+iSelectedRow+"]/check", "false");
  2534. grd_srchstmtinfo.rebuild();
  2535. }
  2536. /**
  2537. * @group :
  2538. * @ver : 2007.04.24
  2539. * @by : 이은영
  2540. * @---------------------------------------------------
  2541. * @type : function
  2542. * @access : public
  2543. * @desc : 기록 저장 시간 변경
  2544. * @param :
  2545. * @return :
  2546. * @---------------------------------------------------
  2547. */
  2548. function fChangedRecTime(){
  2549. sRecDateFlag = "";
  2550. sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag");
  2551. if(sRecDateFlag == "A"){ // 자동
  2552. model.setValue(xRecSaveCondPath+"/recdd","");
  2553. model.setValue(xRecSaveCondPath+"/rectm","");
  2554. ipt_recdd.disabled = true;
  2555. ipt_rectm.disabled = true;
  2556. btn_recdt.disabled = true;
  2557. ipt_recdd.refresh();
  2558. ipt_rectm.refresh();
  2559. }else{ // 사용자 지정
  2560. model.setValue(xRecSaveCondPath+"/recdd",getCurrentDate());
  2561. model.setValue(xRecSaveCondPath+"/rectm",getCurrentTime().substr(0,4));
  2562. ipt_recdd.disabled = false;
  2563. ipt_rectm.disabled = false;
  2564. btn_recdt.disabled = false;
  2565. ipt_recdd.refresh();
  2566. ipt_rectm.refresh();
  2567. model.setFocus("ipt_recdd");
  2568. }
  2569. }
  2570. /**
  2571. * @group :
  2572. * @ver : 2007.04.24
  2573. * @by : 이은영
  2574. * @---------------------------------------------------
  2575. * @type : function
  2576. * @access : public
  2577. * @desc : 기록 저장 시간 적용
  2578. * @param :
  2579. * @return :
  2580. * @---------------------------------------------------
  2581. */
  2582. function fRecDTAppend(){
  2583. sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag"); // (A : 자동, U : 지정)
  2584. var sRecDate = model.getValue(xRecSaveCondPath+"/recdd");
  2585. var sRecTime = model.getValue(xRecSaveCondPath+"/rectm");
  2586. var appendCnt = 0;
  2587. if(isValidDateTime(sRecDate+sRecTime,"YYYYMMDDhhmm")== false){
  2588. messageBox("기록 시간이 유효하지","E007");
  2589. return;
  2590. }
  2591. var iSelectedRows = grd_carerecspec.selectedRows;
  2592. var iAppendRow = 0;
  2593. for ( var idx = 0 ; idx < iSelectedRows ; idx++){
  2594. iAppendRow = grd_carerecspec.selectedRow(idx);
  2595. if( !isNull(model.getValue(xNursingRecordListPath+"["+iAppendRow+"]/status")
  2596. && sRecDateFlag == "U" )
  2597. && model.getValue(xNursingRecordListPath+"["+iAppendRow+"]/status") == "I" ){
  2598. model.setValue(xNursingRecordListPath+"["+iAppendRow+"]/recdtflag", "U" );
  2599. model.makeValue(xNursingRecordListPath+"["+iAppendRow+"]/recdd_vw", sRecDate );
  2600. model.makeValue(xNursingRecordListPath+"["+iAppendRow+"]/rectm_vw", sRecTime);
  2601. model.makeValue(xNursingRecordListPath+"["+iAppendRow+"]/recdt", sRecDate+sRecTime+"00");
  2602. appendCnt++;
  2603. }
  2604. }
  2605. if ( appendCnt < 1 ){
  2606. messageBox("시간 적용할 진술문이 선택되지 않았습니다. ","I007");
  2607. return;
  2608. }
  2609. grd_carerecspec.refresh();
  2610. model.setValue(xRecSaveCondPath+"/recdateflag", "A");
  2611. rdo_recdateflag.dispatch("xforms-value-changed");
  2612. rdo_recdateflag.refresh();
  2613. }
  2614. /**
  2615. * @group :
  2616. * @ver : 2007.04.24
  2617. * @by : 이은영
  2618. * @---------------------------------------------------
  2619. * @type : function
  2620. * @access : public
  2621. * @desc : 진단delay클릭
  2622. * @param :
  2623. * @return :
  2624. * @---------------------------------------------------
  2625. */
  2626. function fDelayClick(pObj, pListPath){
  2627. if ( pObj != grd_carediagspec ) return;
  2628. if ( pObj == grd_carediagspec ){
  2629. gDiagRecVerNo = model.getValue(pListPath + "["+ pObj.row +"]/recverno");
  2630. gDiagStmtNm = model.getValue(pListPath + "["+ pObj.row +"]/stmtcnts");
  2631. gDiagGrupcd = model.getValue(pListPath + "["+ pObj.row +"]/origincd");
  2632. gDiagStmtcd = model.getValue(pListPath + "["+ pObj.row +"]/stmtcd");
  2633. } else {
  2634. // gDiagGrupcd = model.getValue(pListPath + "["+ pObj.row +"]/grupcd");//간호진단조회탭에서 클릭한것만으로 저장할수는 없다.등록되지 않은 진단일수도있으므로
  2635. }
  2636. }
  2637. /**
  2638. * @group :
  2639. * @ver : 2007.04.24
  2640. * @by : 이은영
  2641. * @---------------------------------------------------
  2642. * @type : function
  2643. * @access : public
  2644. * @desc : 진단delay클릭 deselect
  2645. * @param :
  2646. * @return :
  2647. * @---------------------------------------------------
  2648. */
  2649. function fDeSelectRow(pObj){
  2650. for( idx = 0 ; idx < pObj.selectedRows ; idx++){
  2651. pObj.isSelected(pObj.selectedRow(idx)) = false;
  2652. }
  2653. // for( idx = 0 ; idx < pObj.selectedRows ; idx++){
  2654. // pObj.isSelected(pObj.selectedRow(idx)) = false;
  2655. //
  2656. // }
  2657. gDiagGrupcd = ""; // 진단내역, 진술문set, 간호진단검색 클릭 진단 그룹Code
  2658. gDiagStmtcd = ""; // 진단내역, 진술문set, 간호진단검색 클릭 진단 진술문Code
  2659. gDiagRecVerNo = "";//20080621 김홍점 추가 진단버젼번호
  2660. gDiagStmtNm = "";//20080621 김홍점 추가 진단명
  2661. pObj.refresh();
  2662. }
  2663. /**
  2664. * @group :
  2665. * @ver : 2007.04.30
  2666. * @by : 이은영
  2667. * @---------------------------------------------------
  2668. * @type : function
  2669. * @access : public
  2670. * @desc : 진술문 존재 여부 체크
  2671. * @param :
  2672. * @return :
  2673. * @---------------------------------------------------
  2674. */
  2675. function fExistStmtCd(pStmtCD, pStmtlist, pGrupCD){
  2676. var sStmtList = pStmtlist.split("▩");
  2677. var sStmtInfo;
  2678. var sRecDD ="";
  2679. var sRecTM = "";
  2680. sRecDD= model.getValue(xRecSaveCondPath+"/recdd");
  2681. sRecTM= model.getValue(xRecSaveCondPath+"/rectm");
  2682. var iRtnMsg = 0;
  2683. var sStmtCnts = "";
  2684. if(sSrchToolStatus == "S" || sSrchToolStatus == "N"){
  2685. sStmtCnts = model.getValue(xSaveSetInfoPath+"[stmtcd='"+pStmtCD+"']/stmtcnts");
  2686. }else{
  2687. sStmtCnts = model.getValue(xStmtInfoPath+"[stmtcd='"+pStmtCD+"']/stmtcnts");
  2688. }
  2689. if(sRecDD == ""){
  2690. sRecDD = getCurrentDate();
  2691. }
  2692. if(sRecTM == ""){
  2693. sRecTM = getCurrentTime().substr(0,4);
  2694. }
  2695. //간호진단내역의 진단코드의 그룹코드와 set조회에서 선택한 진단의 그룹코드가 같을때만...
  2696. //선택한 간호진술문이 간호진단과는 연결되어 있지 않을경우는 그냥 저장. 간호진단과 연결된경우 메시지박스
  2697. var nodeList = instance1.selectNodes(xCareDiagListPath + "[stmtcd = '"+ pStmtCD +"' and grupcd4='"+pGrupCD+"'and todt ='']/recverno");
  2698. var nodeList1 = instance1.selectNodes(xCareDiagListPath + "[stmtcd = '"+ pStmtCD +"' and grupcd4='"+pGrupCD+"'and todt ='']/stmtcnts");
  2699. var stmtcdList = instance1.selectNodes(xSaveSetInfoPath + "[check='true' and dnarflag != '2N']/stmtcd");
  2700. //진단진술문이 넘어왔을경우 해당진단에 속한 DAR진술문들이 선택되어져 있는지 체크한다.
  2701. var lnkstmtList = instance1.selectNodes(xSaveSetInfoPath + "[check='true' and dnarflag = '2N' and stmtcd = "+ pStmtCD +"]/lnkstmt");
  2702. var searchYN = "N";
  2703. if(nodeList != null && nodeList.length > 0 ){
  2704. if( lnkstmtList != null && lnkstmtList.length > 0
  2705. && stmtcdList != null && stmtcdList.length > 0 ){
  2706. searchYN = fSearchString(lnkstmtList, stmtcdList);
  2707. }
  2708. if ( searchYN != "Y" ) return "Y";// 진단만 선택되어진 경우
  2709. iRtnMsg = messageBox("동일 간호과정 Set 분류에서 선택된 동일 진단이 존재합니다. 기록될 번호는\" "+nodeList.item(0).value+"\"","I009");
  2710. gDiagRecVerNo = nodeList.item(0).value;
  2711. gDiagStmtNm = nodeList1.item(0).value;
  2712. return "Y";
  2713. }
  2714. // var sChkStmtCd = fCreatDiag(pStmtCD);
  2715. // if(nodeList != null && nodeList.length > 0 && isSearchString(sChkStmtCd,pStmtCD)== true ){
  2716. // iRtnMsg = messageBox("동일 간호과정 Set 분류에서 선택된 동일 진단이 존재합니다. 기록될 번호는\" "+pStmtCD+"\"","I009");
  2717. // return "Y";
  2718. // }
  2719. if(model.getValue(xNursingRecordListPath+"[recdd='"+sRecDD+"' and rectm='"+sRecTM+"' and stmtcd='"+pStmtCD+"']/stmtcd") != ""){
  2720. iRtnMsg = messageBox("동일 시간 때에 \""+sStmtCnts+"\" 문장이 존재합니다. 등록을","Q003");
  2721. if(iRtnMsg != "6"){
  2722. return "Y";
  2723. }
  2724. }
  2725. for(var i=0; i<sStmtList.length; i++){//동일한 진단이 선택되어진게 있으면 중복적으로 추가하지 않는다.
  2726. if( (pGrupCD == "" && getArrayData(pStmtlist,i,4)== pStmtCD)
  2727. || (model.getValue(xNursingRecordListPath+"[stmtcd='"+pStmtCD+"' and origincd='"+pGrupCD+"' and dnarflag='2N']/status") == "I")
  2728. ){
  2729. return "Y";
  2730. }
  2731. }
  2732. return "N";
  2733. }
  2734. /**
  2735. * @group :
  2736. * @ver : 2007.05.14
  2737. * @by : 이은영
  2738. * @---------------------------------------------------
  2739. * @type : function
  2740. * @access : public
  2741. * @desc : stmtcd가 체크된게 진단진술문 연결된것이 존재하는지 체크
  2742. * @param : lnkstmtList(진단과 연결된 진술문코드들), stmtcdList(선택한 진술문 코드)
  2743. * @return :
  2744. * @---------------------------------------------------
  2745. */
  2746. function fSearchString(lnkstmtList, stmtcdList){
  2747. var dnarFlag = "";
  2748. var lnkStmt = "";
  2749. var stmtCd = "";
  2750. for( var jdx = 0 ; jdx < lnkstmtList.length ; jdx++ ){
  2751. lnkStmt = lnkstmtList.item(jdx).value ;
  2752. for ( var idx = 0 ; idx < stmtcdList.length ; idx++){
  2753. stmtCd = stmtcdList.item(idx).value ;
  2754. if ( isSearchString(lnkStmt, stmtCd) ){
  2755. return "Y" ;
  2756. }
  2757. }
  2758. }
  2759. return "N";
  2760. }
  2761. /**
  2762. * @group :
  2763. * @ver : 2007.05.14
  2764. * @by : 이은영
  2765. * @---------------------------------------------------
  2766. * @type : function
  2767. * @access : public
  2768. * @desc : 기록정보를 조회
  2769. * @param : pFlag
  2770. * @return :
  2771. * @---------------------------------------------------
  2772. */
  2773. function fSearchRecInfo(pFlag){
  2774. if(sPid == ""){
  2775. messageBox("환자를 먼저","C002");
  2776. return;
  2777. }
  2778. if(pFlag ==""){
  2779. return;
  2780. }
  2781. var deptcd = cmb_wardcd.value;
  2782. var userdept = getUserInfo("dutplcecd");
  2783. var spiritdept = model.getValue("/root/code/codeinfo/codelist[cdgrupid ='U31']/cdid");
  2784. var jobkindcd = getUserInfo("jobkindcd");
  2785. if(jobkindcd != "0330") {
  2786. if(deptcd == spiritdept) {
  2787. if(userdept != spiritdept) {
  2788. messageBox("환자 개인정보 보호를 위해 해당병동 사용자외엔 조회를 제한합니다", "E");
  2789. return;
  2790. }
  2791. }
  2792. }
  2793. //기록해야할 진술문들이 존재할경우 저장할려면 이후 진행을 blocking
  2794. //return false; //이후 진행 안함.
  2795. if( !fExistAddDNAR() ){
  2796. return;
  2797. }
  2798. if(pFlag == "carediag" ){
  2799. var sSrchHeader = "pid▦indd▦orddd▦cretno▦fromdd▦todd▦carediagflag▩";
  2800. var sSrchData = sPid+"▦"
  2801. +sIndd+"▦"
  2802. +sOrddd+"▦"
  2803. +sCretNo+"▦"
  2804. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2805. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2806. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▩";
  2807. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2808. if(submit("TRMNR00705")){
  2809. grd_carediagspec.resizeCells();
  2810. }
  2811. } else {
  2812. //20110629_KNUH_Start 과거이력조회 관련부분 추가.
  2813. var sSrchHeader;
  2814. var sSrchData;
  2815. var pastyn = model.getValue(xRecSrchCondPath+"/pastyn");
  2816. var sRecverno;
  2817. var sAllyn = model.getValue(ipt_allyn.attribute("ref"));
  2818. if(pastyn == "Y") {
  2819. sRecverno = grd_carediagspec.valueMatrix(grd_carediagspec.row, grd_carediagspec.colRef("recverno"));
  2820. sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▦recverno▦allyn▩";
  2821. sSrchData = sPid+"▦"
  2822. +sIndd+"▦"
  2823. +sOrddd+"▦"
  2824. +sCretNo+"▦"
  2825. +sIOFlag+"▦"
  2826. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2827. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2828. +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  2829. +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  2830. +sRecFlag+"▦"
  2831. +sRecLnkKey+"▦"
  2832. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  2833. +pFlag+"▦"
  2834. +model.getValue(xRecSrchCondPath+"/recusrid")+"▦"
  2835. +sRecverno + "▦"
  2836. +sAllyn + "▩";
  2837. } else {
  2838. sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  2839. sSrchData = sPid+"▦"
  2840. +sIndd+"▦"
  2841. +sOrddd+"▦"
  2842. +sCretNo+"▦"
  2843. +sIOFlag+"▦"
  2844. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2845. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2846. +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  2847. +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  2848. +sRecFlag+"▦"
  2849. +sRecLnkKey+"▦"
  2850. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  2851. +pFlag+"▦"
  2852. +model.getValue(xRecSrchCondPath+"/recusrid")+"▩";
  2853. }
  2854. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2855. if(submit("TRMNR00704")){
  2856. fSettingPamInfo("false", "R");
  2857. model.removenodeset(xNursingRecordListPath);
  2858. model.removenodeset(xCareDiagListPath);
  2859. model.refresh();
  2860. if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  2861. model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  2862. model.makeNode(xNursingRecordListPath);
  2863. copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  2864. grd_carerecspec.rebuild();
  2865. //grd_carerecspec.resizeCells();
  2866. fSettingStmtStyle("nr");
  2867. model.recalculate();
  2868. if( model.getValue(xRecSrchCondPath+"/sortseq") == "A"
  2869. && grd_carerecspec.findRow(getCurrentDate(),1,grd_carerecspec.colRef("recdd_vw"),true,true) > 0 ){
  2870. //grd_carerecspec.topRow = grd_carerecspec.rows;
  2871. var iRow= grd_carerecspec.rows/2;
  2872. grd_carerecspec.bottomRow = iRow;
  2873. grd_carerecspec.select(iRow,1) = true;
  2874. }else{
  2875. var iRow= grd_carerecspec.fixedRows;
  2876. grd_carerecspec.topRow = iRow;
  2877. grd_carerecspec.select(iRow,1) = true;
  2878. }
  2879. }
  2880. if(getNodesetCount("/root/hidden/recinfo/carediaglist")>0 ){
  2881. model.removenodeset(xCareDiagListPath);
  2882. model.makeNode(xCareDiagListPath);
  2883. copyNodeset(xCareDiagListPath,"/root/hidden/recinfo/carediaglist");
  2884. grd_carediagspec.rebuild();
  2885. grd_carediagspec.resizeCells();
  2886. }
  2887. if(getNodesetCount("/root/hidden/recinfo/usersetlist")>0 ){
  2888. model.removenodeset(xRecUsrSetListPath);
  2889. model.makeNode(xRecUsrSetListPath);
  2890. copyNodeset(xRecUsrSetListPath,"/root/hidden/recinfo/usersetlist");
  2891. cmb_recusr.refresh();
  2892. }
  2893. }
  2894. }
  2895. // switch(pFlag){
  2896. // case "NR" :
  2897. // var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▩";
  2898. // var sSrchData = sPid+"▦"
  2899. // +sIndd+"▦"
  2900. // +sOrddd+"▦"
  2901. // +sCretNo+"▦"
  2902. // +sIOFlag+"▦"
  2903. // +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2904. // +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2905. // +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  2906. // +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  2907. // +sRecFlag+"▦"
  2908. // +sRecLnkKey+"▦"
  2909. // +model.getValue(xRecSrchCondPath+"/carediagflag")+"▩";
  2910. // model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2911. // if(submit("TRMNR00704")){
  2912. // fSettingPamInfo("false", "R");
  2913. // if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  2914. // model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  2915. // model.removenodeset(xNursingRecordListPath);
  2916. // model.makeNode(xNursingRecordListPath);
  2917. // copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  2918. // grd_carerecspec.rebuild();
  2919. // fSettingStmtStyle("nr");
  2920. // model.recalculate();
  2921. // grd_carerecspec.resizeCells();
  2922. //
  2923. // }
  2924. // if(getNodesetCount("/root/hidden/recinfo/carediaglist")>0 &&
  2925. // model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd") != ""){
  2926. // model.removenodeset(xCareDiagListPath);
  2927. // model.makeNode(xCareDiagListPath);
  2928. // copyNodeset(xCareDiagListPath,"/root/hidden/recinfo/carediaglist");
  2929. // grd_carediagspec.rebuild();
  2930. // grd_carediagspec.resizeCells();
  2931. // }
  2932. //
  2933. // }
  2934. // break;
  2935. // case "carediag" :
  2936. // var sSrchHeader = "pid▦fromdd▦todd▦carediagflag▩";
  2937. // var sSrchData = sPid+"▦"
  2938. // +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2939. // +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2940. // +model.getValue(xRecSrchCondPath+"/carediagflag")+"▩";
  2941. // model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2942. // if(submit("TRMNR00705")){
  2943. // grd_carediagspec.resizeCells();
  2944. // }
  2945. // break;
  2946. // case "DR" :
  2947. // var sSrchHeader = "pid▦fromdd▦todd▦dnarflag▦sortseq▩";
  2948. // var sSrchData = sPid+"▦"
  2949. // +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2950. // +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2951. // +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  2952. // +model.getValue(xRecSrchCondPath+"/sortseq")+"▩"
  2953. // if(submit("TRMNR00707")){
  2954. // fSettingPamInfo("true", "R");
  2955. // fSettingStmtStyle("nr");
  2956. // model.recalculate();
  2957. // }
  2958. // break;
  2959. // case "TR" :
  2960. // var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▩";
  2961. // var sSrchData = sPid+"▦"
  2962. // +sIndd+"▦"
  2963. // +sOrddd+"▦"
  2964. // +sCretNo+"▦"
  2965. // +sIOFlag+"▦"
  2966. // +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  2967. // +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  2968. // +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  2969. // +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  2970. // +sRecFlag+"▦"
  2971. // +sRecLnkKey+"▦"
  2972. // +model.getValue(xRecSrchCondPath+"/carediagflag")+"▩";
  2973. // model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  2974. // if(submit("TRMNR00708")){
  2975. // fSettingPamInfo("ture", "R");
  2976. // if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  2977. // model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  2978. // model.removenodeset(xNursingRecordListPath);
  2979. // model.makeNode(xNursingRecordListPath);
  2980. // copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  2981. // grd_carerecspec.rebuild();
  2982. // fSettingStmtStyle("nr");
  2983. // model.recalculate();
  2984. // grd_carerecspec.resizeCells();
  2985. // }
  2986. // }
  2987. // break;
  2988. // }
  2989. fChngGridBackColor();
  2990. }
  2991. /**
  2992. * @group :
  2993. * @ver : 2007.05.14
  2994. * @by : 이은영
  2995. * @---------------------------------------------------
  2996. * @type : function
  2997. * @access : public
  2998. * @desc : 그리드 팝업메뉴 SETTING
  2999. * @param : pFlag
  3000. * @return :
  3001. * @---------------------------------------------------
  3002. */
  3003. function fSettingPopUpMenu(pFlag, grdName){
  3004. switch(pFlag){
  3005. case "NR" :
  3006. if(event.button == 3){
  3007. if(grd_carerecspec.isCell(event.target) && grd_carerecspec.mouseRow >= grd_carerecspec.fixedrows){
  3008. var iRow = grd_carerecspec.mouseRow;
  3009. if( !isNull(model.getValue(xNursingRecordListPath+"["+iRow+"]/carerecno"))
  3010. &&( model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") == "T"
  3011. //|| model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") == "A" 검사기록 삭제 요청사항 김영림itc 20081109 김홍점
  3012. ) ){//T: type 2 기록 ,A: Ast 검사기록, 저장하기위한 데이타
  3013. return;
  3014. }
  3015. if( isNull(model.getValue(xNursingRecordListPath+"["+iRow+"]/signno")) ){
  3016. if( !isNull(model.getValue(xNursingRecordListPath+"["+iRow+"]/status"))
  3017. && model.getValue(xNursingRecordListPath+"["+iRow+"]/status")=="I"){
  3018. window.setPopupMenu(true, "/root/hidden/popmenu/nursrec_new/menu", "name", "func", false);
  3019. }
  3020. }else {
  3021. if (model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") == "A") {//검사기록 삭제 요청사항 김영림itc 20081109 김홍점
  3022. window.setPopupMenu(true, "/root/hidden/popmenu/ast_del/menu", "name", "func", false);
  3023. } else if (model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") != "A") {
  3024. window.setPopupMenu(true, "/root/hidden/popmenu/nursrec_befcret/menu", "name", "func", false);
  3025. } }
  3026. }else{
  3027. window.setPopupMenu(false);
  3028. }
  3029. }
  3030. break;
  3031. case "ND" :
  3032. if(event.button == 3){
  3033. if(grd_carediagspec.isCell(event.target) && grd_carediagspec.mouseRow >= grd_carediagspec.fixedrows){
  3034. if( !isNull(model.getValue(xCareDiagListPath + "["+ grd_carediagspec.mouseRow +"]/todt")) ){
  3035. window.setPopupMenu(true, "/root/hidden/popmenu/endnursdiag/menu", "name", "func", false);
  3036. } else{
  3037. window.setPopupMenu(true, "/root/hidden/popmenu/nursdiag/menu", "name", "func", false);
  3038. }
  3039. }else{
  3040. window.setPopupMenu(false);
  3041. }
  3042. }
  3043. break;
  3044. case "ST" :
  3045. grdNm = document.controls(grdName);
  3046. if(event.button == 3){
  3047. if(grdNm.isCell(event.target) && grdNm.mouseRow >= grdNm.fixedrows){
  3048. window.setPopupMenu(true, "/root/hidden/popmenu/stmtmenu/menu", "name", "func", false);
  3049. "/root/hidden/popmenu/stmtmenu/menu"
  3050. }else{
  3051. window.setPopupMenu(false);
  3052. }
  3053. }
  3054. break;
  3055. }
  3056. }
  3057. /**
  3058. * @group :
  3059. * @ver : 2007.05.14
  3060. * @by : 이은영
  3061. * @---------------------------------------------------
  3062. * @type : function
  3063. * @access : public
  3064. * @desc : 기록저장된 데이타중 기록일시 일괄 수정
  3065. * @param : status : T time 수정
  3066. * @return :
  3067. * @---------------------------------------------------
  3068. */
  3069. function fStmtListRecdt(){
  3070. if(sPid == ""){
  3071. messageBox("환자를 먼저","C002");
  3072. return;
  3073. }
  3074. //기록해야할 진술문들이 존재할경우 저장할려면 이후 진행을 blocking
  3075. //return false; //이후 진행 안함.
  3076. if( !fExistAddDNAR() ){
  3077. return;
  3078. }
  3079. modal("SMMNR01300");
  3080. var sRtnMsg = getParameter("SMMNR01300_Return");
  3081. if(sRtnMsg == "") return;
  3082. var sTmpInfo = sRtnMsg.split("▩");
  3083. var sRecDTInfo = sTmpInfo[1].split("▦");
  3084. var sSaveHeader = "status▦recdt▦prerecdd▦"
  3085. +"pid▦indd▦cretno▦instcd▦ioflag▦orddd▦carerecno▩"; // 저장 정보
  3086. var sSaveData = "";
  3087. var sStmtCDList = "";
  3088. var sDNARFlagList = "";
  3089. var sCareRecNoList = "";
  3090. var iSignRow = 0;
  3091. var sDNARFlag = "";
  3092. var sDNARNm = "";
  3093. var sNotSave ="";
  3094. var selectRows = grd_carerecspec.selectedRows;
  3095. model.removeNode("/root/main/signSaveData");
  3096. model.makeNode(xSignPath);
  3097. for( var iRow = 0; iRow < selectRows ; iRow++ ){
  3098. // if(grd_carerecspec.isSelected(iRow) == true){
  3099. if(model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrid") != getUserId()){
  3100. sNotSave += "["+model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec")+"]\n";
  3101. continue;
  3102. }else if ( model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag") != 'A'
  3103. && model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag") != 'T'){
  3104. sSaveData += "T▦"
  3105. + sRecDTInfo[1] +"▦"
  3106. + model.getValue(xNursingRecordListPath+"["+ grd_carerecspec.selectedRow(iRow) +"]/recdd") +"▦"
  3107. + sPid +"▦"
  3108. + sIndd +"▦"
  3109. + sCretNo +"▦"
  3110. + sInstcd +"▦"
  3111. + sIOFlag +"▦"
  3112. + sOrddd +"▦"
  3113. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/carerecno") +"▩";
  3114. sDNARFlag = "";
  3115. sDNARNm = "";
  3116. iSignRow++;
  3117. sDiagStmtCd = model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtcd");
  3118. if ( !isNull(sDiagStmtCd)){
  3119. sDNARFlag = model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/dnar");
  3120. sDNARNm = model.getValue("/root/init/dnarflagnurs/itemset[itemcd = '"+sDNARFlag+"']/itemnm");
  3121. }
  3122. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec"));
  3123. model.makeValue(xSignPath + "[" + iSignRow + "]/status", "U");
  3124. model.makeValue(xSignPath + "[" + iSignRow + "]/origincd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/origincd"));
  3125. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtcd"));
  3126. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/dnarflag"));
  3127. model.makeValue(xSignPath + "[" + iSignRow + "]/recoriginflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag"));
  3128. model.makeValue(xSignPath + "[" + iSignRow + "]/recdtflag", sRecDTInfo[0]);
  3129. model.makeValue(xSignPath + "[" + iSignRow + "]/recdt", sRecDTInfo[1]);
  3130. model.makeValue(xSignPath + "[" + iSignRow + "]/pid", sPid);
  3131. model.makeValue(xSignPath + "[" + iSignRow + "]/indd", sIndd);
  3132. model.makeValue(xSignPath + "[" + iSignRow + "]/cretno", sCretNo);
  3133. model.makeValue(xSignPath + "[" + iSignRow + "]/instcd", sInstcd);
  3134. model.makeValue(xSignPath + "[" + iSignRow + "]/ioflag", sIOFlag);
  3135. model.makeValue(xSignPath + "[" + iSignRow + "]/orddeptcd", sOrdDeptCd);
  3136. model.makeValue(xSignPath + "[" + iSignRow + "]/recflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recflag"));
  3137. model.makeValue(xSignPath + "[" + iSignRow + "]/reclnkkey", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/reclnkkey"));
  3138. model.makeValue(xSignPath + "[" + iSignRow + "]/diagstmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtcd"));
  3139. model.makeValue(xSignPath + "[" + iSignRow + "]/orddd", sOrddd);
  3140. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarnm", sDNARNm);
  3141. model.makeValue(xSignPath + "[" + iSignRow + "]/usernm", getUserName());
  3142. model.makeValue(xSignPath + "[" + iSignRow + "]/deptflagnm", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtnm"));
  3143. }
  3144. // }
  3145. }
  3146. model.removenode("/root/send");
  3147. model.setValue(xRecSrchCondPath+"/recusrid","%");
  3148. model.makeValue("/root/send/saveData",sSaveHeader+sSaveData);
  3149. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  3150. var sSrchData = sPid+"▦"
  3151. +sIndd+"▦"
  3152. +sOrddd+"▦"
  3153. +sCretNo+"▦"
  3154. +sIOFlag+"▦"
  3155. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3156. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3157. +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  3158. +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  3159. +sRecFlag+"▦"
  3160. +sRecLnkKey+"▦"
  3161. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3162. +model.getValue(xRecSrchCondPath+"/recsrchflag")+"▦"
  3163. +model.getValue(xRecSrchCondPath+"/recusrid")+"▩";
  3164. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  3165. //인증저장
  3166. var msg = messageBox('[ ' + cmb_pid.label + ' ] 님의 간호일지 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  3167. if(Number(msg) == 6 && sSaveData !=""){//예
  3168. if (!fSign()) return;
  3169. activateMyWindow();
  3170. if(submit("TXMNR00701")){
  3171. model.removenodeset(xNursingRecordListPath);
  3172. model.removenodeset(xCareDiagListPath);
  3173. if ( sNotSave != ""){
  3174. messageBox("다른 사람이 기록한 "+sNotSave+" 수정","E001");
  3175. }
  3176. if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  3177. model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  3178. model.makeNode(xNursingRecordListPath);
  3179. copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  3180. grd_carerecspec.rebuild();
  3181. //grd_carerecspec.resizeCells();
  3182. fSettingStmtStyle("nr");
  3183. model.recalculate();
  3184. }
  3185. if(getNodesetCount("/root/hidden/recinfo/carediaglist")>0 ){
  3186. model.makeNode(xCareDiagListPath);
  3187. copyNodeset(xCareDiagListPath,"/root/hidden/recinfo/carediaglist");
  3188. grd_carediagspec.rebuild();
  3189. grd_carediagspec.resizeCells();
  3190. }
  3191. if(getNodesetCount("/root/hidden/recinfo/usersetlist")>0 ){
  3192. model.removenodeset(xRecUsrSetListPath);
  3193. model.makeNode(xRecUsrSetListPath);
  3194. copyNodeset(xRecUsrSetListPath,"/root/hidden/recinfo/usersetlist");
  3195. cmb_recusr.refresh();
  3196. }
  3197. fViewSign();
  3198. if( model.getValue("/root/main/cond/recsrch/sortseq") == "A"){
  3199. //grd_carerecspec.topRow = grd_carerecspec.rows;
  3200. var iRow = grd_carerecspec.rows-grd_carerecspec.fixedRows;
  3201. grd_carerecspec.bottomRow = iRow;
  3202. grd_carerecspec.select(iRow,1) = true;
  3203. }
  3204. }
  3205. }else {
  3206. if ( sNotSave != ""){
  3207. messageBox("다른 사람이 기록한 "+sNotSave+" 수정","E001");
  3208. }
  3209. return;
  3210. }
  3211. }
  3212. /**
  3213. * @group :
  3214. * @ver : 2007.05.14
  3215. * @by : 이은영
  3216. * @---------------------------------------------------
  3217. * @type : function
  3218. * @access : public
  3219. * @desc : Copy & Paste
  3220. * @param :
  3221. * @return :
  3222. * @---------------------------------------------------
  3223. */
  3224. function fCopyAndPaste(){
  3225. if(sPid == ""){
  3226. messageBox("환자를 먼저","C002");
  3227. return;
  3228. }
  3229. //기록해야할 진술문들이 존재할경우 저장할려면 이후 진행을 blocking
  3230. //return false; //이후 진행 안함.
  3231. if( !fExistAddDNAR() ){
  3232. return;
  3233. }
  3234. modal("SMMNR01300");
  3235. var sRtnMsg = getParameter("SMMNR01300_Return");
  3236. if(sRtnMsg == "") return;
  3237. var sTmpInfo = sRtnMsg.split("▩");
  3238. var sRecDTInfo = sTmpInfo[1].split("▦");
  3239. var sSaveHeader = "stmtcdlist▦dnarflaglist▦carerecnolist▦recdtflag▦recdt▦pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦orddd▩"; // 저장 정보
  3240. var sSaveData = "";
  3241. var sStmtCDList = "";
  3242. var sDNARFlagList = "";
  3243. var sCareRecNoList = "";
  3244. var iSignRow = 0;
  3245. var sDNARFlag = "";
  3246. var sDNARNm = "";
  3247. var total = 0;
  3248. model.removeNode("/root/main/signSaveData");
  3249. model.makeNode(xSignPath);
  3250. for(var iRow=grd_carerecspec.fixedrows; iRow<=grd_carerecspec.rows-grd_carerecspec.fixedrows; iRow++){
  3251. if(grd_carerecspec.isSelected(iRow) == true
  3252. && model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") != 'A'
  3253. && model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag") != 'T'
  3254. ){
  3255. // 종료된 진술문을 Copy & Paste할 시에는 제어되도록 수정.
  3256. for( j=1; j<=getNodesetCount("/root/main/recinfo/carediaginfo/carediaglist"); j++ ){
  3257. var cnt = iRow;
  3258. if( model.getValue("/root/main/recinfo/carediaginfo/carediaglist["+j+"]/todt") != ""
  3259. && (model.getValue("/root/main/recinfo/carediaginfo/carediaglist["+j+"]/recverno") == model.getValue(xNursingRecordListPath+"["+iRow+"]/recverno") )
  3260. && (model.getValue("/root/main/recinfo/carediaginfo/carediaglist["+j+"]/diagstmtnm") == model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtcnts")) ){
  3261. cnt++;
  3262. break;
  3263. }
  3264. }
  3265. if( cnt != iRow ){
  3266. total++;
  3267. continue;
  3268. }
  3269. //////////////////////////////////////////////////////////////////////////
  3270. sStmtCDList += model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtcd")+",";
  3271. sDNARFlagList += model.getValue(xNursingRecordListPath+"["+iRow+"]/dnarflag")+",";
  3272. sCareRecNoList += model.getValue(xNursingRecordListPath+"["+iRow+"]/carerecno")+",";
  3273. sDNARFlag = "";
  3274. sDNARNm = "";
  3275. iSignRow++;
  3276. sDiagStmtCd = model.getValue(xNursingRecordListPath+"["+iRow+"]/diagstmtcd");
  3277. if ( !isNull(sDiagStmtCd)){
  3278. sDNARFlag = model.getValue(xNursingRecordListPath+"["+iRow+"]/dnar");
  3279. sDNARNm = model.getValue("/root/init/dnarflagnurs/itemset[itemcd = '"+sDNARFlag+"']/itemnm");
  3280. }
  3281. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtspec"));
  3282. model.makeValue(xSignPath + "[" + iSignRow + "]/status", "I");
  3283. model.makeValue(xSignPath + "[" + iSignRow + "]/origincd", model.getValue(xNursingRecordListPath+"["+iRow+"]/origincd"));
  3284. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtcd", model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtcd"));
  3285. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarflag", model.getValue(xNursingRecordListPath+"["+iRow+"]/dnarflag"));
  3286. model.makeValue(xSignPath + "[" + iSignRow + "]/recoriginflag", model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag"));
  3287. model.makeValue(xSignPath + "[" + iSignRow + "]/recdtflag", sRecDTInfo[0]);
  3288. model.makeValue(xSignPath + "[" + iSignRow + "]/recdt", sRecDTInfo[1]);
  3289. model.makeValue(xSignPath + "[" + iSignRow + "]/pid", sPid);
  3290. model.makeValue(xSignPath + "[" + iSignRow + "]/indd", sIndd);
  3291. model.makeValue(xSignPath + "[" + iSignRow + "]/cretno", sCretNo);
  3292. model.makeValue(xSignPath + "[" + iSignRow + "]/instcd", sInstcd);
  3293. model.makeValue(xSignPath + "[" + iSignRow + "]/ioflag", sIOFlag);
  3294. model.makeValue(xSignPath + "[" + iSignRow + "]/orddeptcd", sOrdDeptCd);
  3295. model.makeValue(xSignPath + "[" + iSignRow + "]/recflag", model.getValue(xNursingRecordListPath+"["+iRow+"]/recflag"));
  3296. model.makeValue(xSignPath + "[" + iSignRow + "]/reclnkkey", model.getValue(xNursingRecordListPath+"["+iRow+"]/reclnkkey"));
  3297. model.makeValue(xSignPath + "[" + iSignRow + "]/diagstmtcd", model.getValue(xNursingRecordListPath+"["+iRow+"]/diagstmtcd"));
  3298. model.makeValue(xSignPath + "[" + iSignRow + "]/orddd", sOrddd);
  3299. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarnm", sDNARNm);
  3300. model.makeValue(xSignPath + "[" + iSignRow + "]/usernm", getUserName());
  3301. model.makeValue(xSignPath + "[" + iSignRow + "]/deptflagnm", model.getValue(xNursingRecordListPath+"["+iRow+"]/diagstmtnm"));
  3302. }
  3303. }
  3304. // 종료된 진술문을 Copy & Paste할 시에는 제어되도록 수정
  3305. if ( total == grd_carerecspec.selectedRows ){
  3306. messageBox("종료된 진술문은 copy할 수 없습니다.","E");
  3307. return;
  3308. }else if ( total > 0 ){
  3309. messageBox("종료된 진술문을 제외한 진술문만 copy되었습니다.","I");
  3310. }
  3311. model.removenode("/root/send");
  3312. sSaveData += sStmtCDList+"▦"
  3313. +sDNARFlagList+"▦"
  3314. +sCareRecNoList+"▦"
  3315. +sRecDTInfo[0]+"▦"
  3316. +sRecDTInfo[1]+"▦"
  3317. +sPid+"▦"
  3318. +sIndd+"▦"
  3319. +sCretNo+"▦"
  3320. +sInstcd+"▦"
  3321. +sIOFlag+"▦"
  3322. +sOrdDeptCd+"▦"
  3323. +sRecFlag+"▦"
  3324. +sRecLnkKey+"▦"
  3325. +sOrddd+"▩";
  3326. model.setValue(xRecSrchCondPath+"/recusrid","%");
  3327. model.makeValue("/root/send/saveData",sSaveHeader+sSaveData);
  3328. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  3329. var sSrchData = sPid+"▦"
  3330. +sIndd+"▦"
  3331. +sOrddd+"▦"
  3332. +sCretNo+"▦"
  3333. +sIOFlag+"▦"
  3334. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3335. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3336. +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  3337. +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  3338. +sRecFlag+"▦"
  3339. +sRecLnkKey+"▦"
  3340. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3341. +model.getValue(xRecSrchCondPath+"/recsrchflag")+"▦"
  3342. +model.getValue(xRecSrchCondPath+"/recusrid")+"▩";
  3343. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  3344. //인증저장
  3345. var msg = messageBox('[ ' + cmb_pid.label + ' ] 님의 간호일지 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  3346. if(Number(msg) == 6 && sSaveData !="" ){//예
  3347. if (!fSign()) return;
  3348. activateMyWindow();
  3349. if(submit("TXMNR00702")){
  3350. model.removenodeset(xNursingRecordListPath);
  3351. model.removenodeset(xCareDiagListPath);
  3352. if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  3353. model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  3354. model.makeNode(xNursingRecordListPath);
  3355. copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  3356. grd_carerecspec.rebuild();
  3357. //grd_carerecspec.resizeCells();
  3358. fSettingStmtStyle("nr");
  3359. model.recalculate();
  3360. }
  3361. if(getNodesetCount("/root/hidden/recinfo/carediaglist")>0 ){
  3362. model.makeNode(xCareDiagListPath);
  3363. copyNodeset(xCareDiagListPath,"/root/hidden/recinfo/carediaglist");
  3364. grd_carediagspec.rebuild();
  3365. grd_carediagspec.resizeCells();
  3366. }
  3367. if(getNodesetCount("/root/hidden/recinfo/usersetlist")>0 ){
  3368. model.removenodeset(xRecUsrSetListPath);
  3369. model.makeNode(xRecUsrSetListPath);
  3370. copyNodeset(xRecUsrSetListPath,"/root/hidden/recinfo/usersetlist");
  3371. cmb_recusr.refresh();
  3372. }
  3373. fViewSign();
  3374. if( model.getValue("/root/main/cond/recsrch/sortseq") == "A"){
  3375. //grd_carerecspec.topRow = grd_carerecspec.rows;
  3376. var iRow = grd_carerecspec.rows-grd_carerecspec.fixedRows;
  3377. grd_carerecspec.bottomRow = iRow;
  3378. grd_carerecspec.select(iRow,1) = true;
  3379. }
  3380. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  3381. if(eERFLAG == "Y"){
  3382. fgetSelectPid(cmb_erpat);
  3383. }else{
  3384. //-------(20110228) 경북대
  3385. //alert("0");
  3386. fgetSelectPid(cmb_mypat);
  3387. //alert("1");
  3388. //-------(20110228) 경북대
  3389. }
  3390. }
  3391. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  3392. if(nextyn == "Y") {
  3393. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  3394. if(eERFLAG == "Y"){
  3395. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  3396. fNextSelectErPat(cmb_erpat);
  3397. cmb_erpat.refresh();
  3398. }else{
  3399. //-------(20110228) 경북대
  3400. //alert("3");
  3401. //내환자 조회-간호일지용
  3402. //debugger;
  3403. if (gcurrentpid != "") {
  3404. fGetSettingPatientList_type1(); //--테스트완료 , XRW를 변경하면됨
  3405. //alert("4");
  3406. var posi = fgetSelectPidNext();
  3407. //alert("5/"+ posi);
  3408. fsetSelectPidNext(cmb_mypat,posi);
  3409. //alert("6");
  3410. cmb_mypat.refresh();
  3411. }
  3412. }
  3413. } else {
  3414. if(eERFLAG == "Y"){
  3415. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  3416. fNextSelectErPat(cmb_erpat);
  3417. cmb_erpat.refresh();
  3418. } else {
  3419. if (gcurrentpid != "") {
  3420. fGetSettingPatientList_type1(); //--테스트완료 , XRW를 변경하면됨
  3421. var posi = fgetSelectPidNext();
  3422. fsetSelectPidNext(cmb_mypat, posi);
  3423. cmb_mypat.refresh();
  3424. }
  3425. }
  3426. }
  3427. }else {
  3428. return;
  3429. }
  3430. }
  3431. /**
  3432. * @group :
  3433. * @ver : 2007.05.15
  3434. * @by : 이은영
  3435. * @---------------------------------------------------
  3436. * @type : function
  3437. * @access : public
  3438. * @desc : 간호기록 수정
  3439. * @param :
  3440. * @return :
  3441. * @---------------------------------------------------
  3442. */
  3443. function fUpdtNursingRecord(){
  3444. var iRow = grd_carerecspec.row;
  3445. if(iRow < 1) return;
  3446. //기록해야할 진술문들이 존재할경우 저장할려면 이후 진행을 blocking
  3447. //return false; //이후 진행 안함.
  3448. if( !fExistAddDNAR() ){
  3449. return;
  3450. }
  3451. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrid") != getUserId()){
  3452. messageBox("다른 사람의 기록은 수정","E001");
  3453. return;
  3454. }
  3455. if(model.getValue(xNursingRecordListPath+"["+iRow+"]/dnarflag") == "2N"){
  3456. messageBox( "간호진단은 수정","E001");
  3457. return;
  3458. }
  3459. //기록 수정시에 인증서 유효시간 반영
  3460. if( vsettime == "") {
  3461. certchkflag = "Y";
  3462. } else {
  3463. var res2 = getTimeInterval(vsettime, getCurrentTime(), 'hhmmss');
  3464. if(res2 > signtime* 60 || res2 < 0) {
  3465. certchkflag = "Y";
  3466. } else {
  3467. certchkflag = "N";
  3468. }
  3469. }
  3470. var sParam_Header = "recdd▦rectm▦dnarflag▦stmtspec▦fstrgstrnm▦signno▦recverno▦stmtcd▦origincd▦recoriginflag▦carerecno▦dnarnm▦deptflagnm▦certchkflag▩";
  3471. var sParam_Data = model.getValue(xNursingRecordListPath+"["+iRow+"]/recdd")+"▦"
  3472. + model.getValue(xNursingRecordListPath+"["+iRow+"]/rectm")+"▦"
  3473. + model.getValue(xNursingRecordListPath+"["+iRow+"]/dnarflag")+"▦"
  3474. + model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtspec")+"▦"
  3475. + model.getValue(xNursingRecordListPath+"["+iRow+"]/fstrgstrnm")+"▦"
  3476. + model.getValue(xNursingRecordListPath+"["+iRow+"]/signno")+"▦"
  3477. + model.getValue(xNursingRecordListPath+"["+iRow+"]/recverno")+"▦"
  3478. + model.getValue(xNursingRecordListPath+"["+iRow+"]/stmtcd")+"▦"
  3479. + model.getValue(xNursingRecordListPath+"["+iRow+"]/origincd")+"▦"
  3480. + model.getValue(xNursingRecordListPath+"["+iRow+"]/recoriginflag")+"▦"
  3481. + model.getValue(xNursingRecordListPath+"["+iRow+"]/carerecno")+"▦"
  3482. + grd_carerecspec.labelMatrix(grd_carerecspec.selectedRow(iRow),grd_carerecspec.colRef("dnar"))+"▦"
  3483. + model.getValue(xNursingRecordListPath+"["+iRow+"]/diagstmtnm")+"▦"
  3484. + certchkflag+"▩";
  3485. setParameter("SMMNR02800_Param",sParam_Header+sParam_Data);
  3486. modal("SMMNR02800");
  3487. if(getParameter("SMMNR02800_ReturnFlag") == "Y"){
  3488. vsettime = getParameter("SMMNR02800_vsettime");
  3489. model.setValue(xRecSrchCondPath+"/recusrid", "%");//기록자 조회 전체
  3490. fSearchRecInfo(model.getValue(xRecSrchCondPath+"/recsrchflag"));
  3491. }
  3492. grd_carerecspec.bottomRow = iRow;
  3493. grd_carerecspec.select(iRow,1) = true;
  3494. }
  3495. /**
  3496. * @group :
  3497. * @ver : 2007.05.15
  3498. * @by : 이은영
  3499. * @---------------------------------------------------
  3500. * @type : function
  3501. * @access : public
  3502. * @desc : 선택진술문 삭제
  3503. * @param :
  3504. * @return :
  3505. * @---------------------------------------------------
  3506. */
  3507. function fDelNewNursingRecord(){
  3508. deleteSelectedRows(grd_carerecspec,"false");
  3509. grd_carerecspec.refresh();
  3510. }
  3511. /**
  3512. * @group :
  3513. * @ver : 2007.05.15
  3514. * @by : 이은영
  3515. * @---------------------------------------------------
  3516. * @type : function
  3517. * @access : public
  3518. * @desc : 간호기록 삭제
  3519. * @param :
  3520. * @return :
  3521. * @---------------------------------------------------
  3522. */
  3523. function fDelNursingRecord(){
  3524. //var iRow = grd_carerecspec.row;
  3525. var selectRows = grd_carerecspec.selectedRows;
  3526. var sNotSave = "";
  3527. var sSaveData="";
  3528. var iSignRow=0;
  3529. var sDNARFlag = "";
  3530. var sDNARNm = "";
  3531. if(selectRows < 1) return;
  3532. if(sPid == ""){
  3533. messageBox("환자를 먼저","C002");
  3534. return;
  3535. }
  3536. //기록해야할 진술문들이 존재할경우 저장할려면 이후 진행을 blocking
  3537. //return false; //이후 진행 안함.
  3538. if( !fExistAddDNAR() ){
  3539. return;
  3540. }
  3541. // 저장데이터
  3542. var sSaveHeader = "status▦carerecno▦pid▦indd▦orddd▦cretno▦instcd▦recdt▦signno▩";
  3543. // var sSaveData = "D▦"
  3544. // + model.getValue(xNursingRecordListPath+"["+iRow+"]/carerecno")+"▦"
  3545. // + sPid+"▦"
  3546. // + sIndd +"▦"
  3547. // + sOrddd +"▦"
  3548. // + sCretNo +"▦"
  3549. // + sInstcd +"▦"
  3550. // + sRecdt +"▦"
  3551. // + model.getValue(xNursingRecordListPath+"["+iRow+"]/signno")+"▩";
  3552. model.removeNode("/root/main/signSaveData");
  3553. for( var iRow = 0; iRow < selectRows ; iRow++ ){
  3554. if(model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrid") != getUserId()){
  3555. sNotSave += "["+model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec")+"]\n";
  3556. continue;
  3557. // }else if ( model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag") != 'A' 검사기록 삭제 요청사항 김영림itc 20081109 김홍점
  3558. // && model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag") != 'T'){
  3559. }else if ( model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag") != 'T'){
  3560. sRecDate = model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recdd")
  3561. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/rectm")+"00";
  3562. sSaveData += "D▦"
  3563. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/carerecno")+"▦"
  3564. + sPid+"▦"
  3565. + sIndd +"▦"
  3566. + sOrddd +"▦"
  3567. + sCretNo +"▦"
  3568. + sInstcd +"▦"
  3569. + sRecDate +"▦"
  3570. + model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/signno")+"▩";
  3571. sDNARFlag = "";
  3572. sDNARNm = "";
  3573. iSignRow++;
  3574. sDiagStmtCd = model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtcd");
  3575. if ( !isNull(sDiagStmtCd)){
  3576. sDNARFlag = model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/dnar");
  3577. sDNARNm = model.getValue("/root/init/dnarflagnurs/itemset[itemcd = '"+sDNARFlag+"']/itemnm");
  3578. }
  3579. if( model.getValue(xNursingRecordListPath+"["+ iRow +"]/recdtflag") == "U"){
  3580. sRecDate = model.getValue(xNursingRecordListPath+"["+ iRow +"]/recdt");
  3581. } else {
  3582. sRecDate = getCurrentDate() + getCurrentTime();
  3583. }
  3584. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtspec", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtspec"));
  3585. model.makeValue(xSignPath + "[" + iSignRow + "]/status", "D");
  3586. model.makeValue(xSignPath + "[" + iSignRow + "]/origincd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/origincd"));
  3587. model.makeValue(xSignPath + "[" + iSignRow + "]/stmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/stmtcd"));
  3588. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/dnarflag"));
  3589. model.makeValue(xSignPath + "[" + iSignRow + "]/recoriginflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recoriginflag"));
  3590. model.makeValue(xSignPath + "[" + iSignRow + "]/recdt", sRecDate);
  3591. model.makeValue(xSignPath + "[" + iSignRow + "]/pid", sPid);
  3592. model.makeValue(xSignPath + "[" + iSignRow + "]/indd", sIndd);
  3593. model.makeValue(xSignPath + "[" + iSignRow + "]/cretno", sCretNo);
  3594. model.makeValue(xSignPath + "[" + iSignRow + "]/instcd", sInstcd);
  3595. model.makeValue(xSignPath + "[" + iSignRow + "]/ioflag", sIOFlag);
  3596. model.makeValue(xSignPath + "[" + iSignRow + "]/orddeptcd", sOrdDeptCd);
  3597. model.makeValue(xSignPath + "[" + iSignRow + "]/recflag", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/recflag"));
  3598. model.makeValue(xSignPath + "[" + iSignRow + "]/reclnkkey", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/reclnkkey"));
  3599. model.makeValue(xSignPath + "[" + iSignRow + "]/diagstmtcd", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtcd"));
  3600. model.makeValue(xSignPath + "[" + iSignRow + "]/orddd", sOrddd);
  3601. model.makeValue(xSignPath + "[" + iSignRow + "]/dnarnm", sDNARNm);
  3602. model.makeValue(xSignPath + "[" + iSignRow + "]/usernm", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/fstrgstrnm"));
  3603. model.makeValue(xSignPath + "[" + iSignRow + "]/deptflagnm", model.getValue(xNursingRecordListPath+"["+grd_carerecspec.selectedRow(iRow)+"]/diagstmtnm"));
  3604. }
  3605. }
  3606. // 조회 데이터
  3607. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  3608. var sSrchData = sPid+"▦"
  3609. +sIndd+"▦"
  3610. +sOrddd+"▦"
  3611. +sCretNo+"▦"
  3612. +sIOFlag+"▦"
  3613. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3614. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3615. +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  3616. +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  3617. +sRecFlag+"▦"
  3618. +sRecLnkKey+"▦"
  3619. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3620. +model.getValue(xRecSrchCondPath+"/recsrchflag")+"▦"
  3621. +model.getValue(xRecSrchCondPath+"/recusrid")+"▩";
  3622. model.removenode("/root/send");
  3623. model.makeValue("/root/send/saveData", sSaveHeader+sSaveData);
  3624. model.makeValue("/root/send/srchinfo", sSrchHeader+sSrchData);
  3625. //인증저장
  3626. var msg = messageBox('[ ' + cmb_pid.label + ' ] 님의 간호일지 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  3627. if(Number(msg) == 6 && sSaveData != ""){//예
  3628. if (!fSign()) return;
  3629. activateMyWindow();
  3630. if(submit("TXMNR00703")){
  3631. //deleteSelectedRows(grd_carerecspec,"false");
  3632. model.removenodeset(xNursingRecordListPath);
  3633. if ( sNotSave != ""){
  3634. messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  3635. }
  3636. // 환자 간호기록 내역
  3637. if(getNodesetCount("/root/hidden/recinfo/nursingrecordlist")>0 &&
  3638. model.getValue("/root/hidden/recinfo/nursingrecordlist/stmtcd")!= ""){
  3639. model.makeNode(xNursingRecordListPath);
  3640. copyNodeset(xNursingRecordListPath,"/root/hidden/recinfo/nursingrecordlist");
  3641. grd_carerecspec.rebuild();
  3642. fSettingStmtStyle("nr");
  3643. model.recalculate();
  3644. //grd_carerecspec.resizeCells();
  3645. }
  3646. fViewSign();
  3647. // grd_carerecspec.rebuild();
  3648. // //grd_carerecspec.resizeCells();
  3649. // fSettingStmtStyle("nr");
  3650. // model.recalculate();
  3651. //
  3652. if( model.getValue("/root/main/cond/recsrch/sortseq") == "A"){
  3653. //grd_carerecspec.topRow = grd_carerecspec.rows;
  3654. var iRow = grd_carerecspec.rows-grd_carerecspec.fixedRows;
  3655. grd_carerecspec.bottomRow = iRow;
  3656. grd_carerecspec.select(iRow,1) = true;
  3657. }
  3658. }
  3659. }else {
  3660. if ( sNotSave != ""){
  3661. messageBox("다른 사람이 기록한 "+sNotSave+" 삭제","E001");
  3662. }
  3663. return;
  3664. }
  3665. fChngGridBackColor();
  3666. }
  3667. /**
  3668. * @group :
  3669. * @ver : 2010.04.26
  3670. * @by : khj
  3671. * @---------------------------------------------------
  3672. * @type : function
  3673. * @access : public
  3674. * @desc : 간호진단 삭제 가능여부 체크
  3675. * @param :
  3676. * @return :
  3677. * @---------------------------------------------------
  3678. */
  3679. function fDelCheck(){
  3680. var iRow = grd_carediagspec.row;
  3681. var sRecInfo ="";
  3682. if( model.getValue(xCareDiagListPath+"["+iRow+"]/fstrgstrid") != getUserId() ){
  3683. messageBox("다른 사람이 기록한 간호진단이나 진술문이 존재하여 간호진단을 삭제할 수 ","I004");//없습니다.
  3684. return false;
  3685. }
  3686. var sSrchHeader = "pid▦indd▦orddd▦cretno▦fromdd▦todd▦carediagflag▦carerecno▩";
  3687. var sSrchData = sPid+"▦"
  3688. +sIndd+"▦"
  3689. +sOrddd+"▦"
  3690. +sCretNo+"▦"
  3691. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3692. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3693. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3694. +model.getValue(xCareDiagListPath+"["+iRow+"]/carerecno")+"▩";
  3695. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  3696. if(submit("TRMNR00709")){
  3697. if ( getNodesetCount(xHiddenCareDiagListPath) < 1 || model.getValue(xHiddenCareDiagListPath + "/anotherstmtexistsyn") == "Y" ){
  3698. messageBox("다른 사람이 기록한 간호진단이나 진술문이 존재하여 간호진단을 삭제할 수 ","I004");//없습니다.
  3699. return false;
  3700. }else if (getNodesetCount(xHiddenCareDiagListPath) > 0
  3701. && model.getValue(xHiddenCareDiagListPath + "/anotherstmtexistsyn") == "N"
  3702. && model.getValue(xHiddenCareDiagListPath + "/stmtexistsyn") == "Y" ){
  3703. // 내가 기록한 간호진단이고 나만 기록한 진술문이 존재시 나의진술문 삭제 팝업
  3704. // 팝업에서는 모든 진술문 삭제시 진단 삭제여부 확인, 일부진술문만 삭제시 진단 삭제못하도록 막음.
  3705. sRecInfo += model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd")+"^"
  3706. + model.getValue(xCareDiagListPath+"["+iRow+"]/origincd")+"^"
  3707. + model.getValue(xCareDiagListPath+"["+iRow+"]/recverno")+"^"
  3708. + model.getValue(xCareDiagListPath+"["+iRow+"]/recverno") + " " + model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts")+"|" ;
  3709. var sPamInfo = sPid +"^"
  3710. + sIndd +"^"
  3711. + sCretNo +"^"
  3712. + "I^"
  3713. + sOrdDeptCd + "^"
  3714. + sOrdDrId + "^";
  3715. setParameter("SPMNR00710_diaginfo", sRecInfo);
  3716. setParameter("SPMNR00710_paminfo", sPamInfo);
  3717. modal("SPMNR00710");
  3718. if( getParameter("SPMNR00710_rtn_delyn") == "Y" ){
  3719. setParameter("SPMNR00710_rtn_delyn","");
  3720. setParameter("certrecyn","Y");
  3721. return true;
  3722. } else {
  3723. btn_srchrecinfo.dispatch("DOMActivate");
  3724. return false;
  3725. }
  3726. }else{
  3727. var sRtnMsg = messageBox( " 간호 진단 [" + model.getValue(xCareDiagListPath+"["+iRow+"]/recverno") + " "
  3728. + model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts")
  3729. + "] 은 \n\n 진술문이 등록되어있지 않은 간호진단입니다. \n\n","Q001");
  3730. if(sRtnMsg == 6){
  3731. setParameter("certrecyn","Y");
  3732. return true;
  3733. }else {
  3734. return false;
  3735. }
  3736. }
  3737. } else {
  3738. return false;
  3739. }
  3740. return false;
  3741. }
  3742. /**
  3743. * @group :
  3744. * @ver : 2010.04.26
  3745. * @by : khj
  3746. * @---------------------------------------------------
  3747. * @type : function
  3748. * @access : public
  3749. * @desc : 간호진단 삭제
  3750. * @param :
  3751. * @return :
  3752. * @---------------------------------------------------
  3753. */
  3754. function fDelNursDiag(){
  3755. var iRow = grd_carediagspec.row;
  3756. if(sPid == ""){
  3757. messageBox("환자를 먼저","C002");
  3758. return;
  3759. }
  3760. if ( !fDelCheck() ){
  3761. return;
  3762. }
  3763. var sSaveHeader = "saveflag▦stmtcd▦origincd▦fromdt▦todt▦pid▦carerecno▦instcd▦pretodt▦indd▦orddd▦cretno▦recdt▩";
  3764. var sSaveData = "Del▦"
  3765. + model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd") +"▦"
  3766. + model.getValue(xCareDiagListPath+"["+iRow+"]/origincd") +"▦"
  3767. + model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt")+"▦"
  3768. + getCurrentDate()+ getCurrentTime() +"▦"
  3769. + sPid +"▦"
  3770. + model.getValue(xCareDiagListPath+"["+iRow+"]/carerecno") +"▦"
  3771. + sInstcd +"▦"
  3772. + model.getValue(xCareDiagListPath+"["+iRow+"]/pretodt") +"▦"
  3773. + sIndd+"▦"
  3774. + sOrddd+"▦"
  3775. + sCretNo+"▦"
  3776. + model.getValue(xCareDiagListPath+"["+iRow+"]/recdt")+"▩";
  3777. model.removenode("/root/send");
  3778. model.makeValue("/root/send/savedata",sSaveHeader+sSaveData);
  3779. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  3780. var sSrchData = sPid+"▦"
  3781. +sIndd+"▦"
  3782. +sOrddd+"▦"
  3783. +sCretNo+"▦"
  3784. +sIOFlag+"▦"
  3785. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3786. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3787. +model.getValue(xRecSrchCondPath+"/dnarflag")+"▦"
  3788. +model.getValue(xRecSrchCondPath+"/sortseq")+"▦"
  3789. +sRecFlag+"▦"
  3790. +sRecLnkKey+"▦"
  3791. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3792. +model.getValue(xRecSrchCondPath+"/recsrchflag")+"▦"
  3793. +model.getValue(xRecSrchCondPath+"/recusrid")+"▩";
  3794. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  3795. model.removeNode("/root/main/signSaveData");
  3796. model.makeNode(xSignPath);
  3797. model.makeValue(xSignPath+"/stmtspec", model.getValue(xCareDiagListPath+"["+iRow+"]/recverno")+' '+model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts"));
  3798. model.makeValue(xSignPath+"/status", 'D');
  3799. model.makeValue(xSignPath+"/recdt", model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt"));
  3800. model.makeValue(xSignPath+"/usernm", getUserName());
  3801. model.makeValue(xSignPath+"/deptflagnm", model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts"));
  3802. model.makeValue(xSignPath+"/dnarnm", 'N');
  3803. var certrecyn = getParameter("certrecyn");
  3804. setParameter("certrecyn","");
  3805. var msg = 0;
  3806. if ( certrecyn != "Y" ){
  3807. msg = messageBox('간호 진단 ['
  3808. +model.getValue(xCareDiagListPath+"["+iRow+"]/recverno")+' '
  3809. +model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts")+'] 삭제 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  3810. } else {
  3811. msg = 6;//진술문이 모두 삭제되어 인증저장여부를 이미 물어봄.
  3812. }
  3813. if(Number(msg) == 6){//예
  3814. if (!fSign()) return;
  3815. if(submit("TXMNR00706")){
  3816. grd_carediagspec.resizeCells();
  3817. fViewSign();
  3818. btn_srchrecinfo.dispatch("DOMActivate");
  3819. }
  3820. }else {
  3821. return;
  3822. }
  3823. }
  3824. /**
  3825. * @group :
  3826. * @ver : 2007.05.15
  3827. * @by : 이은영
  3828. * @---------------------------------------------------
  3829. * @type : function
  3830. * @access : public
  3831. * @desc : 간호진단 종료
  3832. * @param :
  3833. * @return :
  3834. * @---------------------------------------------------
  3835. */
  3836. function fEndNursDiag(){
  3837. var iRow = grd_carediagspec.row;
  3838. if(model.getValue(xCareDiagListPath+"["+iRow+"]/todt") != ""){
  3839. messageBox("이미 종료된 진단","E008");
  3840. return;
  3841. }
  3842. if(sPid == ""){
  3843. messageBox("환자를 먼저","C002");
  3844. return;
  3845. }
  3846. var sSaveHeader = "saveflag▦stmtcd▦origincd▦fromdt▦todt▦pid▦carerecno▦instcd▦pretodt▩";
  3847. var sSaveData = "End▦"
  3848. + model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd") +"▦"
  3849. + model.getValue(xCareDiagListPath+"["+iRow+"]/origincd") +"▦"
  3850. + model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt")+"▦"
  3851. + getCurrentDate()+ getCurrentTime() +"▦"
  3852. + sPid +"▦"
  3853. + model.getValue(xCareDiagListPath+"["+iRow+"]/carerecno") +"▦"
  3854. + sInstcd +"▦"
  3855. + model.getValue(xCareDiagListPath+"["+iRow+"]/pretodt") +"▩";
  3856. // model.removeNode("/root/main/signSaveData");
  3857. // model.makeNode(xSignDiagPath);
  3858. // model.makeValue(xSignDiagPath+"/stmtspec", model.getValue(xCareDiagListPath+"["+ iRow +"]/stmtcnts"));
  3859. // model.makeValue(xSignDiagPath+"/status", "진단종료");
  3860. // model.makeValue(xSignDiagPath+"/recdt", model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt"));
  3861. // model.makeValue(xSignDiagPath+"/todt", getCurrentDate()+ getCurrentTime());
  3862. // model.makeValue(xSignDiagPath+"/usernm", model.getValue(xCareDiagListPath+"["+ iRow +"]/fstrgstrnm"));
  3863. model.removenode("/root/send");
  3864. model.makeValue("/root/send/savedata",sSaveHeader+sSaveData);
  3865. var sSrchHeader = "pid▦indd▦orddd▦cretno▦fromdd▦todd▦carediagflag▦instcd▩";
  3866. var sSrchData = sPid+"▦"
  3867. +sIndd+"▦"
  3868. +sOrddd+"▦"
  3869. +sCretNo+"▦"
  3870. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3871. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3872. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3873. +sInstcd+"▩";
  3874. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  3875. if(submit("TXMNR00704")){
  3876. grd_carediagspec.resizeCells();
  3877. fChngGridBackColor();
  3878. }
  3879. //인증저장
  3880. // var msg = messageBox('간호일지 진단 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  3881. //
  3882. // if(Number(msg) == 6){//예
  3883. //
  3884. // if (!fSign()) return;
  3885. //
  3886. // if(submit("TXMNR00704")){
  3887. // grd_carediagspec.resizeCells();
  3888. // }
  3889. //
  3890. // }else {
  3891. // return;
  3892. // }
  3893. }
  3894. /**
  3895. * @group :
  3896. * @ver : 2007.05.15
  3897. * @by : 이은영
  3898. * @---------------------------------------------------
  3899. * @type : function
  3900. * @access : public
  3901. * @desc : 간호진단 종료 취소not use
  3902. * @param :
  3903. * @return :
  3904. * @---------------------------------------------------
  3905. */
  3906. function fCnclNursDiag(){
  3907. var iRow = grd_carediagspec.row;
  3908. if(model.getValue(xCareDiagListPath+"["+iRow+"]/todt") == ""){
  3909. messageBox("현재 종료되지 않은 진단","E008");
  3910. return;
  3911. }
  3912. if(sPid == ""){
  3913. messageBox("환자를 먼저","C002");
  3914. return;
  3915. }
  3916. var sSaveHeader = "saveflag▦stmtcd▦origincd▦fromdt▦todt▦pid▦carerecno▦instcd▦pretodt▩";
  3917. var sSaveData = "U▦"
  3918. + model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd") +"▦"
  3919. + model.getValue(xCareDiagListPath+"["+iRow+"]/origincd") +"▦"
  3920. + model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt") +"▦"
  3921. + "99991231235959▦"
  3922. + sPid +"▦"
  3923. + model.getValue(xCareDiagListPath+"["+iRow+"]/carerecno") +"▦"
  3924. + sInstcd +"▦"
  3925. + model.getValue(xCareDiagListPath+"["+iRow+"]/pretodt") +"▩";
  3926. // model.removeNode("/root/main/signSaveData");
  3927. // model.makeNode(xSignDiagPath);
  3928. // model.makeValue(xSignDiagPath+"/stmtspec", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/stmtspec"));
  3929. // model.makeValue(xSignDiagPath+"/status", "진단종료취소");
  3930. // model.makeValue(xSignDiagPath+"/recdt", model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt"));
  3931. // model.makeValue(xSignDiagPath+"/todt", "99991231235959");
  3932. // model.makeValue(xSignDiagPath+"/usernm", model.getValue(xNursingRecordListPath+"["+ iStmtRow +"]/fstrgstrnm"));
  3933. model.removenode("/root/send");
  3934. model.makeValue("/root/send/savedata",sSaveHeader+sSaveData);
  3935. var sSrchHeader = "pid▦indd▦orddd▦cretno▦fromdd▦todd▦carediagflag▦instcd▩";
  3936. var sSrchData = sPid+"▦"
  3937. +sIndd+"▦"
  3938. +sOrddd+"▦"
  3939. +sCretNo+"▦"
  3940. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  3941. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  3942. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  3943. +sInstcd+"▩";
  3944. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  3945. if(submit("TXMNR00704")){
  3946. grd_carediagspec.resizeCells();
  3947. }
  3948. // //인증저장
  3949. // var msg = messageBox('간호일지 진단 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  3950. //
  3951. // if(Number(msg) == 6){//예
  3952. //
  3953. // if (!fSign()) return;
  3954. //
  3955. // if(submit("TXMNR00704")){
  3956. // grd_carediagspec.resizeCells();
  3957. // }
  3958. //
  3959. // }else {
  3960. // return;
  3961. // }
  3962. }
  3963. /**
  3964. * @group :
  3965. * @ver : 2007.05.15
  3966. * @by : 이은영
  3967. * @---------------------------------------------------
  3968. * @type : function
  3969. * @access : public
  3970. * @desc : 간호진단 수정
  3971. * @param : khj add pFlag : END - 진단종료시간 수정인경우.. 그외는 진단시간 수정
  3972. * @return :
  3973. * @---------------------------------------------------
  3974. */
  3975. function fUpdtNursDiag(pFlag){
  3976. var iRow = grd_carediagspec.row;
  3977. var sStmtCnts = model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcnts");
  3978. var sFromDT = model.getValue(xCareDiagListPath+"["+iRow+"]/fromdt");
  3979. var sToDT = model.getValue(xCareDiagListPath+"["+iRow+"]/todt");
  3980. var sParamHeader = "stmtcnts▦fromdt▦todt▦flag▩";
  3981. var sParamData = sStmtCnts+"▦"+sFromDT+"▦"+sToDT+"▦"+pFlag+"▩";
  3982. if(sPid == ""){
  3983. messageBox("환자를 먼저","C002");
  3984. return;
  3985. }
  3986. setParameter("SMMNR03300_Param",sParamHeader+sParamData);
  3987. modal("SMMNR03300");
  3988. var sRtnMsg = getParameter("SMMNR03300_Return");
  3989. if(sRtnMsg == "") return;
  3990. var sFromDT = getArrayData(sRtnMsg,1,0);
  3991. var sToDT = getArrayData(sRtnMsg,1,1);
  3992. if(sToDT == "") sToDT = "99991231235959";
  3993. var sSaveHeader = "saveflag▦stmtcd▦origincd▦fromdt▦todt▦pid▦carerecno▦instcd▦pretodt▩";
  3994. var sSaveData = "U▦"
  3995. + model.getValue(xCareDiagListPath+"["+iRow+"]/stmtcd") +"▦"
  3996. + model.getValue(xCareDiagListPath+"["+iRow+"]/origincd") +"▦"
  3997. + sFromDT +"▦"
  3998. + sToDT +"▦"
  3999. + sPid +"▦"
  4000. + model.getValue(xCareDiagListPath+"["+iRow+"]/carerecno") +"▦"
  4001. + sInstcd +"▦"
  4002. + model.getValue(xCareDiagListPath+"["+iRow+"]/pretodt") +"▩";
  4003. // model.removeNode("/root/main/signSaveData");
  4004. // model.makeNode(xSignDiagPath);
  4005. // model.makeValue(xSignDiagPath+"/stmtspec", sStmtCnts);
  4006. // model.makeValue(xSignDiagPath+"/status", "진단수정");
  4007. // model.makeValue(xSignDiagPath+"/recdt", getArrayData(sRtnMsg,1,0));//진단수정일자
  4008. // model.makeValue(xSignDiagPath+"/todt", getArrayData(sRtnMsg,1,1));//종료일자 없으면 ""로 넘김.
  4009. // model.makeValue(xSignDiagPath+"/usernm", model.getValue(xCareDiagListPath+"["+ iRow +"]/fstrgstrnm"));
  4010. model.removenode("/root/send");
  4011. model.makeValue("/root/send/savedata",sSaveHeader+sSaveData);
  4012. var sSrchHeader = "pid▦indd▦orddd▦cretno▦fromdd▦todd▦carediagflag▦instcd▩";
  4013. var sSrchData = sPid+"▦"
  4014. +sIndd+"▦"
  4015. +sOrddd+"▦"
  4016. +sCretNo+"▦"
  4017. +model.getValue(xRecSrchCondPath+"/fromdd")+"▦"
  4018. +model.getValue(xRecSrchCondPath+"/todd")+"▦"
  4019. +model.getValue(xRecSrchCondPath+"/carediagflag")+"▦"
  4020. +sInstcd+"▩";
  4021. model.makeValue("/root/send/srchinfo",sSrchHeader+sSrchData );
  4022. if(submit("TXMNR00704")){
  4023. grd_carediagspec.resizeCells();
  4024. fChngGridBackColor();
  4025. }
  4026. setParameter("SMMNR03300_Param","");
  4027. setParameter("SMMNR03300_Return","");
  4028. // //인증저장
  4029. // var msg = messageBox('간호일지 진단 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
  4030. //
  4031. // if(Number(msg) == 6){//예
  4032. //
  4033. // if (!fSign()) return;
  4034. //
  4035. // }else {
  4036. // return;
  4037. // }
  4038. }
  4039. /**
  4040. * @group :
  4041. * @ver : 2010.04.23
  4042. * @by : khj
  4043. * @---------------------------------------------------
  4044. * @type : function
  4045. * @access : public
  4046. * @desc : 간호진단종료 시간 수정
  4047. * @param :
  4048. * @return :
  4049. * @---------------------------------------------------
  4050. */
  4051. function fEndDtUpdtNursDiag(){
  4052. fUpdtNursDiag("END");
  4053. }
  4054. /**
  4055. * @group :
  4056. * @ver : 2007.05.15
  4057. * @by : 이은영
  4058. * @---------------------------------------------------
  4059. * @type : function
  4060. * @access : public
  4061. * @desc : 환자정보를 불러오지 못했을 경우 Setting
  4062. * @param :
  4063. * @return :
  4064. * @---------------------------------------------------
  4065. */
  4066. function fSettingPamInfo(pStatus, pFlag){
  4067. btn_savestmt.disabled = pStatus; //선택버튼
  4068. btn_certsaverec.disabled = pStatus; //인증저장버튼
  4069. rdo_recdateflag.disabled = pStatus; // 기록시간설정
  4070. // if(pFlag != "R"){
  4071. rdo_recflag.disabled = pStatus; // 기록선택
  4072. btn_srchrecinfo.disabled = pStatus; // 기록조회버튼
  4073. rdo_carediagflag.disabled = pStatus; // 진단 조회설정
  4074. // }
  4075. }
  4076. /**
  4077. * @group :
  4078. * @ver : 2007.05.15
  4079. * @by : 이은영
  4080. * @---------------------------------------------------
  4081. * @type : function
  4082. * @access : public
  4083. * @desc : 저장하기 않은 간호기록 내역 존재여부
  4084. * @param :
  4085. * @return :
  4086. * @---------------------------------------------------
  4087. */
  4088. function fExistAddDNAR(){
  4089. var nodeList = instance1.selectNodes("/root/main/recinfo/nursingrecordinfo/nursingrecordlist[status = 'I']");
  4090. if ( nodeList != null && nodeList.length > 0 ){
  4091. var returnMsg = messageBox("저장하지 않은 간호기록 내역이 있습니다. ", "Q002");// 저장하시겠습니까?
  4092. if ( returnMsg == 6 ) {
  4093. return false; //이후 진행 안함.
  4094. } else {
  4095. return true; //이후진행
  4096. }
  4097. }
  4098. return true; //이후진행
  4099. }
  4100. /**
  4101. * @group :
  4102. * @ver : 2009.12.15
  4103. * @by : khj
  4104. * @---------------------------------------------------
  4105. * @type : function
  4106. * @access : public
  4107. * @desc : JCI관련 환자교육내용 기록 내용 파라미터 전달 SPMRJ00200
  4108. * @param :
  4109. * @return :
  4110. * @---------------------------------------------------
  4111. */
  4112. function fJCIEduRec(){
  4113. var iSelectedRows = grd_carerecspec.selectedRows;
  4114. var iAppendRow = 0;
  4115. var sEduCnts = "";
  4116. var sFstRgstRid = "";
  4117. for ( var idx = 0 ; idx < iSelectedRows ; idx++){
  4118. iAppendRow = grd_carerecspec.selectedRow(idx);
  4119. sFstRgstRid = model.getValue(xNursingRecordListPath + "["+ iAppendRow +"]/fstrgstrid"); //(iAppendRow, grd_carerecspec.colRef("fstrgstrid"));
  4120. if ( sFstRgstRid == getUserId() ){
  4121. sEduCnts += grd_carerecspec.labelMatrix(iAppendRow, grd_carerecspec.colRef("stmtspec"))+"\n" //grd_carerecspec.labelMatrix(iAppendRow, grd_carerecspec.colRef("dnar"))
  4122. }
  4123. }
  4124. if ( isNull(sEduCnts) ){
  4125. messageBox(getUserName()+"님이 기록하신 진술문이 존재하지 않습니다.","I007");//확인하십시오
  4126. return;
  4127. }
  4128. setParameter("SPMRJ00200_pid", sPid);
  4129. setParameter("SPMRJ00200_orddd", sIndd);
  4130. setParameter("SPMRJ00200_cretno", sCretNo);
  4131. setParameter("SPMRJ00200_educd", "");
  4132. setParameter("SPMRJ00200_educnts", sEduCnts);
  4133. modal("SPMRJ00200");
  4134. }
  4135. /**
  4136. * @group :
  4137. * @ver : 2009.12.15
  4138. * @by : khj
  4139. * @---------------------------------------------------
  4140. * @type : function
  4141. * @access : public
  4142. * @desc : care plan 파라미터 전달 SPMRJ00500
  4143. * @param :
  4144. * @return :
  4145. * @---------------------------------------------------
  4146. */
  4147. function fCarePlan(){
  4148. var iSelectedRows = grd_carediagspec.selectedRows;
  4149. var iAppendRow = 0;
  4150. var sPlanDiag = "";
  4151. for ( var idx = 0 ; idx < iSelectedRows ; idx++){
  4152. iAppendRow = grd_carediagspec.selectedRow(idx);
  4153. sPlanDiag += model.getValue(xCareDiagListPath+"["+iAppendRow+"]/stmtcd")+"^"
  4154. + model.getValue(xCareDiagListPath+"["+iAppendRow+"]/origincd")+"^"
  4155. + model.getValue(xCareDiagListPath+"["+iAppendRow+"]/recverno")+"|" ;
  4156. //grd_carerecspec.labelMatrix(iAppendRow, grd_carerecspec.colRef("dnar"))
  4157. }
  4158. var sPamInfo = sPid +"^"
  4159. + sIndd +"^"
  4160. + sCretNo +"^"
  4161. + "I^";
  4162. setParameter("SPMRJ00500_diaginfo", sPlanDiag);
  4163. setParameter("SPMRJ00500_paminfo", sPamInfo);
  4164. modal("SPMRJ00500");
  4165. fDeSelectRow(grd_carediagspec);
  4166. }
  4167. /**
  4168. * @group :
  4169. * @ver : 2011.02.24
  4170. * @by : 안도영
  4171. * @---------------------------------------------------
  4172. * @type : function
  4173. * @access : public
  4174. * @desc : 구역정보 조회 및 내환자정보 숨기기 (응급실인 경우)
  4175. * : '응급실 간호일지만' 구분 체크박스 추가
  4176. * @param :
  4177. * @param :
  4178. * @return :
  4179. * @---------------------------------------------------
  4180. */
  4181. function fGetWardChngInfo(initFlag, pFlag){
  4182. if(initFlag=="Y") {
  4183. var sWardCD = model.getValue(xPamInfoPath+"/wardcd");
  4184. }
  4185. else{
  4186. var sWardCD = model.getValue("/root/main/cond/wardcd");
  4187. }
  4188. if ( sWardCD == eERDEPTCD) {
  4189. eERFLAG = "Y";
  4190. }else{
  4191. eERFLAG = "";
  4192. }
  4193. //model.removeNodeset("/root/send/reqdata");
  4194. //model.makeNode("/root/send/reqdata");
  4195. //model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  4196. //submit("TRMNW00101");
  4197. //model.setValue("/root/main/cond/settingrnid", "");
  4198. //for(i=1; i <= getNodesetCount("/root/init/settingrn"); i++ ) {
  4199. // if (model.getValue("/root/main/cond/userid") == model.getValue("/root/init/settingrn["+ i +"]/settingrnid")) {
  4200. // model.setValue("/root/main/cond/settingrnid", model.getValue("/root/main/cond/userid"));
  4201. // }
  4202. //}
  4203. //응급실인 경우 구역정보 추가조회
  4204. if(eERFLAG == "Y"){ // 응급실
  4205. fGetZoneList();
  4206. cmb_zone.visible = "true";
  4207. cap_wardcd.attribute("text") = "구역:";
  4208. cmb_roomcd.visible = "false";
  4209. cap_mypat.visible = "false";
  4210. cmb_mypat.visible = "false";
  4211. cap_patnm_pid.attribute("left") = 671; // (기존위치 + 20)
  4212. cmb_pid.visible = "false"
  4213. ipt_pid.visible = "false";
  4214. cmb_erpat.visible = "true";
  4215. if(pFlag != "SrchPat"){ // 환자를 직접 선택한 경우엔 구역정보 보존
  4216. if(initFlag=="Y"){ // 처음 상단 정보로 화면 열릴 때
  4217. model.setValue("/root/main/cond/zonecd", (model.getValue(xPamInfoPath+"/sectioncd") == "") ? "-" : model.getValue(xPamInfoPath+"/sectioncd"));
  4218. }else{
  4219. model.setValue("/root/main/cond/zonecd", "-"); // 'All'로 default
  4220. }
  4221. }
  4222. // 구분 조건 응급실 default (2011.02.28 Ahn)
  4223. model.setValue(xRecSrchCondPath+"/recsrchflag", "DR^ER"); // DR : 타기록지연계, ER : 응급실 간호일지만
  4224. }else{
  4225. cmb_zone.visible = "false";
  4226. cap_wardcd.attribute("text") = "병실:"
  4227. cmb_roomcd.visible = "true";
  4228. cap_mypat.visible = "true";
  4229. cmb_mypat.visible = "true";
  4230. cap_patnm_pid.attribute("left") = 651;
  4231. cmb_pid.visible = "true"
  4232. ipt_pid.visible = "true";
  4233. cmb_erpat.visible = "false";
  4234. model.setValue("/root/main/cond/zonecd", "");
  4235. // 구분 조건 병동 default
  4236. model.setValue(xRecSrchCondPath+"/recsrchflag", "NR^DR"); // DR : 타기록지연계, ER : 응급실 간호일지만
  4237. }
  4238. cmb_zone.refresh();
  4239. cap_wardcd.refresh();
  4240. cmb_roomcd.refresh();
  4241. cap_mypat.refresh();
  4242. cmb_mypat.refresh();
  4243. }
  4244. /**
  4245. * @group :
  4246. * @ver : 2011.03.08
  4247. * @by : 안도영
  4248. * @---------------------------------------------------
  4249. * @type : function
  4250. * @access : public
  4251. * @desc : 현재 선택/저장한 환자의 combo 재선택 (응급실인 경우)
  4252. * @param :
  4253. * @param :
  4254. * @return :
  4255. * @---------------------------------------------------
  4256. */
  4257. function fNextSelectErPat(sobj){
  4258. var tempPid = "";
  4259. var sPosition = 0;
  4260. if ( gcurrentpid != "") {
  4261. for(i = 1; i <= getNodesetCount(erPatPidPath); i++ ) {
  4262. tempPid = model.getValue(erPatPidPath + "["+ i +"]/pid");
  4263. if (gcurrentpid == tempPid) {
  4264. sPosition = i;
  4265. break;
  4266. }
  4267. }
  4268. }
  4269. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  4270. if(nextyn == "Y") {
  4271. if(sPosition == getNodesetCount(erPatPidPath)){
  4272. sobj.select(0); // 마지막 환자인 경우 처음 환자로 재 선택
  4273. }else{
  4274. sobj.select(sPosition);
  4275. }
  4276. } else {
  4277. sobj.select(sPosition-1);
  4278. }
  4279. }
  4280. /**
  4281. * @author : dhkim
  4282. * @create : 20080827
  4283. * @desc : 해당환자가 중환자실 환자인가?
  4284. * @return : boolean (true/false)
  4285. */
  4286. function fIsICUPatient(wardcd){
  4287. var ret = false;//icu 환자인지 여부 디폴트
  4288. /*
  4289. for(var i = 0; i < icuArr.length ; i++){
  4290. if(wardcd == icuArr[i]){
  4291. ret = true;
  4292. return true;
  4293. }
  4294. }
  4295. */
  4296. //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
  4297. for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
  4298. if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")
  4299. && model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/clsflag") == '4'){
  4300. ret = true;
  4301. return true;
  4302. }
  4303. }
  4304. return ret;
  4305. }
  4306. function fShowRelaCause(){
  4307. var relacause = grdNm.valueMatrix(grdNm.row, grdNm.colRef("relacause"));
  4308. model.setValue(tar_causeinfo.attribute("ref"), relacause);
  4309. tar_causeinfo.refresh();
  4310. group2.attribute("left") = event.ScreenX-window.screenleft-10;
  4311. group2.attribute("top") = event.ScreenY-window.screenTop-50;
  4312. group2.visible = true;
  4313. }
  4314. function fChngGridBackColor() {
  4315. //20110725_KNUH_Start 진단색상변경
  4316. var todd, stat;
  4317. for(var i = grd_carediagspec.fixedRows; i < grd_carediagspec.rows; i++) {
  4318. todd = grd_carediagspec.valueMatrix(i, grd_carediagspec.colRef("todt"));
  4319. stat = grd_carediagspec.valueMatrix(i, grd_carediagspec.colRef("status"));
  4320. if(todd == "" || todd == null) {
  4321. grd_carediagspec.cellstyle("background-color", i, 1, i, grd_carediagspec.cols-1) = "#FFFFFF";
  4322. } else {
  4323. grd_carediagspec.cellstyle("background-color", i, 1, i, grd_carediagspec.cols-1) = "#E3E3E3";
  4324. if (stat == "삭제") {
  4325. grd_carediagspec.cellstyle("text-decoration", i, 1, i, grd_carediagspec.cols-1) = "line-through";
  4326. }
  4327. }
  4328. }
  4329. }