SMMMP00800_CPGMAIN.xrw 260 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>M-GPS</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <masterinfo>
  11. <info>
  12. <cpgnm/>
  13. <cpgorddeptcd/>
  14. <cpaprvno/>
  15. <swimlineno/>
  16. <fcstinhospdayno/>
  17. <appdd/>
  18. <todd/>
  19. <lastupdtdt/>
  20. <cpgmemo/>
  21. <cpgno/>
  22. <cpghistseq/>
  23. <cpgflagcd/>
  24. <reqrid/>
  25. <rgstrid/>
  26. <cpglasthistyn/>
  27. <fstrgstrid/>
  28. <fstrgstdt/>
  29. <lastupdtrid/>
  30. <instcd/>
  31. <cpgflagcd/>
  32. <cpkind/>
  33. <reqrnm/>
  34. <rgstrnm/>
  35. <cretdd/>
  36. <reqrlist/>
  37. <cpdiaginfo/>
  38. <opinfo/>
  39. <ccinfo/>
  40. </info>
  41. </masterinfo>
  42. <formsrchcond>
  43. <fromdd/>
  44. <todd/>
  45. </formsrchcond>
  46. <formlist/>
  47. <attfileinfo/>
  48. <indexinfo/>
  49. <steplist/>
  50. <decisionlist/>
  51. <stepinfo>
  52. <info>
  53. <stepno/>
  54. <times/>
  55. <stepmemo/>
  56. <stepnm/>
  57. <stepflagcd/>
  58. <setno/>
  59. <daynm/>
  60. </info>
  61. </stepinfo>
  62. <sortedsteplist/>
  63. <steppath/>
  64. <prcpsrch/>
  65. <invalprcplist/>
  66. <delprcpinfo/>
  67. <srcprcp>
  68. <prcplist/>
  69. </srcprcp>
  70. <destprcp>
  71. <prcplist/>
  72. </destprcp>
  73. <saveinval/>
  74. <mntrinfo/>
  75. <mntrdetlinfo/>
  76. <inqrinfo/>
  77. <limtminfo/>
  78. <appscoplist/>
  79. <appscopmode/>
  80. </main>
  81. <temp1>
  82. <lastrowcnt/>
  83. <getdata/>
  84. <trmqp_rslt>
  85. </trmqp_rslt>
  86. <mstatus/>
  87. <copynodeset>
  88. <masterinfo>
  89. <info/>
  90. </masterinfo>
  91. </copynodeset>
  92. <userpopupinfo>
  93. <param/>
  94. <flag/>
  95. <searchitem/>
  96. </userpopupinfo>
  97. <daylist>
  98. <day>
  99. <id/>
  100. <nm/>
  101. </day>
  102. </daylist>
  103. <addprcp/>
  104. <closeyn>N</closeyn>
  105. <refresh_obj>
  106. <change_outline/>
  107. <change_ocs/>
  108. <change_gps/>
  109. <refreshyn>N</refreshyn>
  110. </refresh_obj>
  111. <exe>
  112. <bizabbr>com</bizabbr>
  113. <modulenm>prcpmngtmgr</modulenm>
  114. <prgmid>PrcpMngtBatch</prgmid>
  115. <prgmnm>CP프로토콜배치_입원</prgmnm>
  116. <useyn>Y</useyn>
  117. <fstrgstrid>COM</fstrgstrid>
  118. <fstrgstdt>20070712154645164</fstrgstdt>
  119. <lastupdtrid>EMR</lastupdtrid>
  120. <lastupdtdt/>
  121. <paramcnts/>
  122. </exe>
  123. <dummy/>
  124. <authyn>Y</authyn>
  125. <tmpprcplist/>
  126. <oplist/>
  127. </temp1>
  128. <cp>Y</cp>
  129. <cpsaveflag/>
  130. </root>
  131. </instance>
  132. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  133. <submission id="TRZSD00109" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  134. <submission id="TRMMP02202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/prcpsrch"/>
  135. <submission id="TRMQP00602" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp1/getdata" resultref="/root/temp1/trmqp_rslt"/>
  136. <submission id="TRMQP00605" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp1/attachfile"/>
  137. <submission id="TRMQP04001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/inqrinfo"/>
  138. <submission id="TRMMP00801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/formlist"/>
  139. <!-- 사용안함(s) -->
  140. <submission id="TRMMP00802" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp1/getdata" resultref="/root/main/sortedsteplist"/>
  141. <!-- 사용안함(e) -->
  142. <submission id="TRMMP00803" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp1/getdata" resultref="/root/main/steppath"/>
  143. <submission id="TRMMP00804" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/invalprcplist"/>
  144. <submission id="TRMMP00805" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/result"/>
  145. <submission id="TRMMP00806" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/result"/>
  146. <submission id="TRMMP00807" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/temp1/rsltgetdata"/>
  147. <submission id="TRMMP00809" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/result/prcplist" resultref="/root/result"/>
  148. <submission id="TRMMP00810" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/mntrdetlinfo"/>
  149. <!-- <submission id="TRMMP00810" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/batch"/> -->
  150. <submission id="TXMMP00801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata"/>
  151. <submission id="TXMMP00802" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/main/steppath"/>
  152. <submission id="TXMMP00803" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/invalprcplist"/>
  153. <submission id="TXMMP00804" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/invalprcplist"/>
  154. <submission id="TXMMP00805" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata"/>
  155. <submission id="TXMMP00806" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/delprcplist"/>
  156. <submission id="TXMMP00807" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp1/exe" resultref="/root/temp1/dummy"/>
  157. <submission id="TXMMP00808" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/empty"/>
  158. <submission id="TXMMP00809" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp1/getdata" resultref="/root/main/steppath"/>
  159. <submission id="TXMMP00810" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata"/>
  160. <submission id="TXMMP00811" mediatype="application/x-www-form-urlencoded" method="post"/>
  161. <submission id="TXMMP00812" mediatype="application/x-www-form-urlencoded" method="post"/>
  162. <submission id="TRMMP02801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/pamdata" resultref="/root/temp1/oplist"/>
  163. <submission id="TRMMO00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/result"/>
  164. <submission id="TRMMO00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/result"/>
  165. <submission id="TRMMO00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/diaginfo"/>
  166. <submission id="TRMMO04108" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/infecpatlist"/>
  167. <submission id="TRMMO00122" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/savertninfo"/>
  168. <!-- CPG 평가 정보(상단 평가명) 조회, CPG종료 시 필요 -->
  169. <submission id="TRMMP03501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/valudata" resultref="/root/main/valuinfo"/>
  170. <script type="javascript" ev:event="xforms-model-construct-done">
  171. <![CDATA[
  172. //초기화시 makeValue 해주는 노드는 지워준다
  173. model.removenode("/root/temp1/getdata/getformyn");
  174. model.removenode("/root/temp1/getdata/appyn");
  175. model.setValue("/root/init/fstopenflag", "Y"); //20080905 임시!!
  176. //진료대상자리스트에 값을 setting한다
  177. var prcpWindow = getOpenWindow("SMMMO04100");
  178. if( prcpWindow != null ){
  179. prcpWindow.model.setValue("/root/cpflag", "Y");
  180. }
  181. ]]>
  182. </script>
  183. </model>
  184. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  185. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  186. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  187. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  188. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  189. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  190. <script type="javascript" src="../../../com/signweb/js/ZES001.js"/>
  191. <script type="javascript" src="../../../emr/cpgweb/js/MMPCommon.js"/>
  192. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  193. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO00100.js"/>
  194. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO00110.js"/>
  195. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO04100.js"/>
  196. <script type="javascript" src="../../../emr/commonweb/js/EMRCommon.js"/>
  197. <script type="javascript" src="../../../emr/formmngtweb/js/MRF03800.js"/>
  198. <script type="javascript">
  199. <![CDATA[
  200. //var appNo = ""; js에 있음
  201. var loadFormTab = ""; //D:환자계획표,O:outline
  202. var appendIndxBool = new Boolean(false);
  203. var saveIndxlist = "";
  204. var saveIndxHeader = "";
  205. var preSelectedTab = "btn_outline_tab";
  206. var OpenerKind = "GPS"; //outline, 환자계획표를 생성기와 같이 쓰므로, iviewer에서 구분하기위한 변수
  207. var rgstno = "";
  208. var rgstno2 = "";
  209. var cpgFlagNm = "";
  210. var appStat = "";
  211. var cpgflagcd = ""; //프로토콜구분(01:CP,02:CPG)
  212. var settypecd = ""; //프로토콜구분(W:CP,G:CPG)
  213. var cpgno = "";
  214. var cpghistseq = "";
  215. var swimlineno = "";
  216. var changedYN = "N";
  217. var fcstinhospdayno = ""; //재원일수 ( CPG에서 적용 분기 시 필요)
  218. var fcstinhospdayYN = "Y"; //재원일수 (존재) 여부
  219. var closeYN = "N";
  220. var changeStatusYN = "N";
  221. var pamExistYN = "";
  222. var dschAppYN ="N"; // 2008.08.02 pymi 퇴원예고 메시지 적용여부
  223. var invalPrcpYN = "N";
  224. var resetAppScopYN = "N";
  225. var iPid = "";
  226. var iCretno = "";
  227. var iHngnm = "";
  228. var iSex = "";
  229. var iAge = "";
  230. var iInsukind = "";
  231. var iSuppkind = "";
  232. var iIoflag = "";
  233. var iPrcpgenrflag = "";
  234. var iOrddd = "";
  235. var iOrddeptcd = "";
  236. var appstepstatflag = "";
  237. var iAuthflag = "";
  238. var iOrddeptnm = "";
  239. var iRoomcd = "";
  240. /**
  241. * @group :
  242. * @ver : 2007.08
  243. * @by : 전지은
  244. * @---------------------------------------------------
  245. * @type : function
  246. * @access : public
  247. * @desc : 환자대상자리스트에서 다른 환자를 선택할 때, 화면을 reset한다
  248. * @param :
  249. * @return :
  250. * @---------------------------------------------------
  251. */
  252. function fReconstruct(){
  253. //MGPS 띄워진 상태에서, 진료대상자에서 환자 선택 시, OCR 초기화 (2008.09.05 JJE)
  254. if( model.getValue("/root/temp1/refresh_obj/refreshyn") == "Y" ){
  255. model.setValue("/root/init/bfprcpload" , "N"); //전처방을 초기화한다.
  256. fInitializeConDone();
  257. fInitializeReady();
  258. model.setValue("/root/init/fstopenflag", "N");
  259. if (ivw_prcp3.src == "SMMMO02100_전회처방.xrw") {
  260. ivw_prcp3.window.javascript.fInitialize(); //전처방 재조회
  261. }
  262. }
  263. model.setValue("/root/temp1/refresh_obj/refreshyn", "N"); //최초조회가 아닌경우, refresh 여부 "Y"
  264. //초기화시 makeValue 해주는 노드는 지워준다
  265. model.removenode("/root/temp1/getdata/getformyn");
  266. model.removenode("/root/temp1/getdata/appyn");
  267. prtlFlag_SMMMO00110 = "-"; //일반 or 임상시험 일 때에는 "", cp에서 저장하는 처방 저장을 위해 "-"로 다시 셋팅
  268. appNo_SMMMO00110 = ""; //적용번호
  269. appstepstatflag = ""; //서식호출여부 변수 초기화
  270. clearParameter("SPMMP00200_popupYN"); //적용시 미완성처방 있을때 오류팝업 띄울지 여부 (Y이면 팝업 호출)
  271. if( instance1.selectSingleNode("/root/paminfo/list/pid") == null ){ //환자정보가 없다면, 바로 return (닫음) (2008.10.06)
  272. return;
  273. }
  274. //권한에 따른, 버튼 설정 (처방창에서는 111, CP검색창에서는 110, 대상자리스트에서는 110 각기 다르므로 권한설정에 어려움이 있어 직종으로 판단함)
  275. var jobKindCd = getUserInfo("jobkindcd"); //직종코드(0330:의사, 0332:치과의사)
  276. var userid = getUserInfo("userid");
  277. setSpclScrnAuth("X", false);
  278. //하드코드 테이블에 의사직종코를 참조하여 접속자의 직종코드와 비교를 통해 권한 체크 (2010.07.16 JJE)
  279. var trgtcd = model.getValue ( "/root/initsrch/drjobkindcd[trgtcd='" + jobKindCd + "']/trgtcd" );
  280. //테스터를 위한 권한 쓰기권한 강제설정 (2009.02.27)
  281. if( userid.substr(0,3) == "DEV" || userid.substr(0,3) == "EMR" ) trgtcd = userid;
  282. //if( !(checkAuth("X") && (jobKindCd == "0330" || jobKindCd == "0332")) ){
  283. if( !(checkAuth("X") && !isNull(trgtcd)) ){
  284. setSpclScrnAuth("R", false);
  285. model.makeValue("/root/temp1/getdata/authflag", "S"); //사용하지는 않음...
  286. model.makeValue("/root/temp/getdata/authflag", "S");
  287. model.setValue("/root/temp1/authyn", "N");
  288. btn_drop.visible = false;
  289. btn_allInfoSave.visible = false;
  290. btn_tempsave.disabled = true;
  291. }else{
  292. setSpclScrnAuth("X", false);
  293. model.makeValue("/root/temp1/getdata/authflag", "U"); //M-GPS의 Write 권한은 User(진료의)
  294. model.makeValue("/root/temp/getdata/authflag", "U");
  295. model.setValue("/root/temp1/authyn", "Y");
  296. btn_drop.visible = true;
  297. btn_allInfoSave.visible = true;
  298. btn_drop.disabled = false;
  299. btn_allInfoSave.disabled = false;
  300. btn_tempsave.disabled = false;
  301. }
  302. //나머지 부분은 xforms-ready 이벤트로 옮김...
  303. if( !isNull(getGlobalVariable("paminfo")) ){
  304. pamExistYN = "Y";
  305. }else{
  306. pamExistYN = "N";
  307. }
  308. if( pamExistYN == "Y" ){
  309. model.makeNode("/root/init/P0322list/P0322/cdnm");
  310. model.makeNode("/root/init/P0322list/P0322/cdid");
  311. model.makeNode("/root/init/orddeptlist/dept/depthngnm");
  312. model.makeNode("/root/init/orddeptlist/dept/deptcd");
  313. model.makeNode("/root/init/M0505");
  314. model.makeNode("/root/init/M0506");
  315. model.makeNode("/root/init/M0507");
  316. model.makeNode("/root/init/M0508");
  317. model.makeNode("/root/init/M0509");
  318. model.makeNode("/root/init/M0510");
  319. model.makeNode("/root/init/M0511");
  320. model.makeNode("/root/init/M0512");
  321. model.makeNode("/root/init/M0513");
  322. model.makeNode("/root/init/M0514");
  323. model.makeNode("/root/init/M0515");
  324. model.makeNode("/root/init/M0516");
  325. model.makeNode("/root/init/M0518");
  326. model.makeNode("/root/init/P0313");
  327. zbcfGetCodeList(new Array("M0505", "M0506", "M0507", "M0508", "M0509", "M0510", "M0511", "M0512", "M0513", "M0514", "M0515", "M0516", "M0518", "P0313")
  328. , new Array("/root/init/M0505", "/root/init/M0506", "/root/init/M0507", "/root/init/M0508", "/root/init/M0509", "/root/init/M0510", "/root/init/M0511", "/root/init/M0512", "/root/init/M0513", "/root/init/M0514", "/root/init/M0515", "/root/init/M0516", "/root/init/M0518", "/root/init/P0313"));
  329. //debugger;
  330. fSizeControl(); //창 위치 및 사이즈 조정(위치이동)
  331. fCpSetting();
  332. //cp 마스터 정보 및 스텝 정보를 셋팅 (steppath 조회 후 수행되어야 함) -> ivw_outline의 초기화
  333. fInitialize();
  334. //스텝경로와 미완성처방 리스트를 조회
  335. fGetStepPathList();
  336. //cp명 및 재원일수를 출력한다
  337. var titleTxt = document.title + " " + iHngnm + " (" + iPid + ")" + " ["+ cpgFlagNm +"명 : " + model.getValue("/root/main/masterinfo/info/cpgnm");
  338. if( cpgflagcd == "01" ) titleTxt = titleTxt + " 재원일수 : " + model.getValue("/root/main/masterinfo/info/fcstinhospdayno") + "일";
  339. titleTxt = titleTxt + "]";
  340. document.title = titleTxt;
  341. fGetFormList("F"); //서식목록을 조회한다.(first)
  342. //상단 서식/첨부파일, 미완성처방 영역 분기 처리 (2008.12.02)
  343. fSetupSupScrn();
  344. //SMMMO00100 초기화 때, skip 후, 지금 처리 (2008.07.07)
  345. fDrugPrcpDc(); // 간호반납 처방
  346. fConfirmTellPrcp(); // 미확인 간호 구두 처방
  347. fTempPrcp();
  348. fSaveRsrvPrcpCvrt();
  349. //처방창 닫음
  350. fClosePrcpWindow();
  351. //인증저장 버튼 보이지 않도록 처리
  352. btn_prcpsave.visible = false;
  353. btn_tempsave.attribute("left") = "1140px";
  354. btn_undo.attribute("left") = "1073px";
  355. // 가셔야할 곳 + 인증저장 숨김 외래예약 + 인증저장 숨김
  356. line5.attribute("y1") = "143px";
  357. line5.attribute("y2") = "143px";
  358. btn_prcpsave2.visible = false;
  359. bool_patgolistprtyn.visible = false;
  360. cap_patgolistprtyn.visible = false;
  361. btn_prtpattogo.visible = false;
  362. //처방이동 버튼 위치 이동
  363. button24.attribute("left") = 937 + 79;
  364. button26.attribute("left") = 965 + 79;
  365. //2008.09.04 순서 변경
  366. //start: 화면 호출 시, 의사별 개인설정에 의한 기본탭 달리 지정되도록 함 (2010.07.01 JJE)
  367. var defaultTab = "";
  368. var qestcd = "";
  369. if( cpgflagcd == "01" ) {
  370. qestcd = "027";
  371. } else if( cpgflagcd == "02" ) {
  372. qestcd = "028";
  373. }
  374. var defaultTabNode = instance1.selectSingleNode("/root/initsrch/envinfo[qestcd='"+qestcd+"']/answcnt"); //001:환자계획표, 002:OCS, 003:Outline
  375. if( defaultTabNode != null ){
  376. defaultTab = defaultTabNode.text;
  377. }else{
  378. if( cpgflagcd == "01" ) defaultTab = "001";
  379. else if( cpgflagcd == "02" ) defaultTab = "003";
  380. }
  381. //(1-1) 기존에 창이 열려 있는 경우는, 환경설정과 무관하게 지정된 탭 그대로 둠.
  382. if( btn_detail_tab.selected == true ){
  383. defaultTab = "001";
  384. } else if ( btn_outline_tab.selected == true ){
  385. defaultTab = "003";
  386. } else if ( btn_action_tab.selected == true ){
  387. defaultTab = "002";
  388. } else { //(1-2) 창이 처음 열리는 경우에는, 환경설정의 답에 의해 기본 탭 지정해줌, 창별 visibility 속성 설정
  389. if( defaultTab == "001" ){ //환자계획표
  390. ivw_prcp2.visible = false;
  391. ivw_prcp3.visible = false;
  392. imp_prcp.visible = false;
  393. btn_detail_tab.selected = true;
  394. ivw_detail.visible = true;
  395. ivw_outline.visible = false;
  396. }else if( defaultTab == "003" ){ //outline
  397. ivw_prcp2.visible = false;
  398. ivw_prcp3.visible = false;
  399. imp_prcp.visible = false;
  400. btn_outline_tab.selected = true;
  401. ivw_outline.visible = true;
  402. ivw_detail.visible = false;
  403. }else{ //002:OCS
  404. btn_action_tab.selected = true;
  405. ivw_outline.visible = false;
  406. ivw_detail.visible = false;
  407. imp_prcp.visible = true;
  408. }
  409. }
  410. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  411. //(2-1) 환경설정 정보에 의해 초기 탭 달리 지정/조회
  412. if( defaultTabNode != null ){
  413. if( defaultTab == "001" || (defaultTab == "002" && cpgflagcd == "01") ){
  414. loadFormTab = "D";
  415. if( ivw_detail.src != "../../../emr/cpgweb/xrw/SPMMP02200_DetailView.xrw" ){
  416. ivw_detail.src = "../../../emr/cpgweb/xrw/SPMMP02200_DetailView.xrw";
  417. }else{
  418. ivw_detail.window.javascript.fInitialize(); //@맨 마지막에 기록지 로딩
  419. }
  420. if( ivw_outline.src == "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw" ) {
  421. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  422. }
  423. } else if ( defaultTab == "003" || (defaultTab == "002" && cpgflagcd == "02") ){
  424. loadFormTab = "O";
  425. if( ivw_outline.src != "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw" ){
  426. ivw_outline.src = "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw";
  427. }else{
  428. fInitializeOutline(); //@맨 마지막에 기록지 로딩
  429. }
  430. }
  431. }else{ //(2-2) 환경설정 정보가 없으면, CP-환자계획표, CPG-outline으로 지정/조회
  432. if( cpgflagcd == "01" ){ //(1) CP이면, 환자계획표(default)
  433. loadFormTab = "D";
  434. if( ivw_detail.src != "../../../emr/cpgweb/xrw/SPMMP02200_DetailView.xrw" ){
  435. ivw_detail.src = "../../../emr/cpgweb/xrw/SPMMP02200_DetailView.xrw";
  436. }else{
  437. ivw_detail.window.javascript.fInitialize(); //@맨 마지막에 기록지 로딩
  438. }
  439. if( ivw_outline.src == "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw" ) {
  440. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  441. }
  442. ivw_prcp2.visible = false;
  443. ivw_prcp3.visible = false;
  444. imp_prcp.visible = false;
  445. btn_detail_tab.selected = true;
  446. ivw_detail.visible = true;
  447. ivw_outline.visible = false;
  448. }else{ //(2) CPG이면, outline(default)
  449. loadFormTab = "O";
  450. if( ivw_outline.src != "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw" ){
  451. ivw_outline.src = "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw";
  452. }else{
  453. fInitializeOutline(); //@맨 마지막에 기록지 로딩
  454. }
  455. ivw_prcp2.visible = false;
  456. ivw_prcp3.visible = false;
  457. imp_prcp.visible = false;
  458. btn_outline_tab.selected = true;
  459. ivw_outline.visible = true;
  460. ivw_detail.visible = false;
  461. }
  462. }
  463. //미완성처방이 존재하면 미완성처방 탭이 선택되어 조회 후 영역 넒어져야 함 (미완성 iviewer 초기화) (2008.11.08 JJE)
  464. if( invalPrcpYN == "Y" ){
  465. model.toggle("incompletion_tab");
  466. btn_saveincomplprcp.selected = true;
  467. fGetErrPrcpList();
  468. fCase2ViewMode();
  469. }else{
  470. if( btn_formatt.selected != true ){
  471. model.toggle("att_tab");
  472. ivw_invalprcp.src= "";
  473. btn_formatt.selected = true;
  474. btn_savecomplprcp.visible = false;
  475. fNomalViewMode();
  476. }
  477. model.removeNodeset( "/root/send/reqdata" );
  478. }
  479. //감염관리 환자 여부를 확인
  480. //var rgstno = model.getValue("/root/paminfo/list/brthdd");
  481. //var rgstno2 = getPatientInfo("regstno");
  482. //fReqInFecPatList(rgstno, rgstno2)
  483. }
  484. }
  485. /**
  486. * @group :
  487. * @ver : 2007.08
  488. * @by : 전지은
  489. * @---------------------------------------------------
  490. * @type : function
  491. * @access : public
  492. * @desc : 환자대상자리스트에서 다른 환자를 선택할 때, 화면을 reset한다
  493. * @param :
  494. * @return :
  495. * @---------------------------------------------------
  496. */
  497. function fCloseGPS(){
  498. window.close();
  499. }
  500. /**
  501. * @group :
  502. * @ver : 2007.10
  503. * @by : 전지은
  504. * @---------------------------------------------------
  505. * @type : function
  506. * @access : public
  507. * @desc : 처방창 및 본 창을 닫는다
  508. * @param :
  509. * @return :
  510. * @---------------------------------------------------
  511. */
  512. function fCpSetting(){
  513. //처방 초기화 시 환자 session 정보 받으므로 중복 작업임, pid==nill일때만 처리하도록 수정 (2008.09.29)
  514. var pamInfoCvs = getGlobalVariable("paminfo");
  515. if( !isNull(pamInfoCvs) && instance1.selectSingleNode("/root/paminfo/list/pid") == null ){ //cvs가 null이 아닌 경우에만 처리함.
  516. model.removeNodeSet ( "/root/paminfo/list" ); //상단화면 정보 초기화
  517. setCSVToNode ( "/root/paminfo", pamInfoCvs );
  518. var patFlagCvs = getGlobalVariable("patflag");
  519. if(patFlagCvs.length != 0 ){ //cvs가 null이 아닌 경우에만 처리함.
  520. model.removeNodeSet ( "/root/patflag/list" ); //상단화면 정보 초기화
  521. setCSVToNode ( "/root/patflag", patFlagCvs );
  522. }else{
  523. return false;
  524. }
  525. }
  526. // 전역 변수로 사용
  527. iAuthflag = model.getValue("/root/temp/getdata/authflag");
  528. iPid = model.getValue("/root/paminfo/list/pid");
  529. iCretno = model.getValue("/root/paminfo/list/cretno");
  530. iHngnm = model.getValue("/root/paminfo/list/hngnm");
  531. iSex = model.getValue("/root/paminfo/list/sex");
  532. iAge = model.getValue("/root/paminfo/list/age");
  533. iInsukind = model.getValue("/root/paminfo/list/insukind");
  534. iSuppkind = model.getValue("/root/paminfo/list/suppkind");
  535. iIoflag = model.getValue("/root/paminfo/list/ioflag"); //입원/외래구분
  536. iOrddeptcd = model.getValue("/root/paminfo/list/orddeptcd");
  537. iPrcpgenrflag = model.getValue("/root/patflag/list/prcpgenrflag");
  538. if(iPrcpgenrflag == "O"){
  539. iOrddd = model.getValue("/root/paminfo/list/orddd");
  540. }else{
  541. iOrddd = model.getValue("/root/paminfo/list/indd");
  542. }
  543. iOrddeptnm = model.getValue("/root/paminfo/list/orddeptnm");
  544. iRoomcd = model.getValue("/root/paminfo/list/roomcd");
  545. var appstepstat = instance1.selectSingleNode("/root/temp1/getdata/appstepstatflag");
  546. if( appstepstat != null && appstepstat.text == "i"){
  547. model.makeValue("/root/temp1/getdata/appdd", getCurrentDate());
  548. return true; //선택(신규)
  549. }else{ //기존 진행중인 CP
  550. //cp가 drop되지 않고, 진행중이거나 정상종료 상태이면서, 퇴원 이전 상태이면 유효한 CP.
  551. //퇴원한 상태이거나 drop한 경우 무효 CP
  552. model.removeNodeSet ( "/root/send/reqdata" );
  553. model.makeNode( "/root/send/reqdata" );
  554. model.makeNode( "/root/temp1/rsltgetdata" );
  555. model.makeValue("/root/send/reqdata/pid", iPid);
  556. model.makeValue("/root/send/reqdata/cretno",iCretno);
  557. model.makeValue("/root/send/reqdata/orddd", iOrddd);
  558. model.makeValue("/root/send/reqdata/prcpgenrflag",iIoflag);
  559. if( submit("TRMMP00807", false) ){ //CP가 유효한지를 조회한다 (최초 선택 시(appstat=0), 조회된 데이터 없음!)
  560. //CP검색창을 통해서 Open 되지 않았을 경우(적용 후 곧바로 Open이 아닐 때), appstepstatflag 노드가 존재하지 않기 때문에, road 초기에 빈노드를 생성해준다
  561. if( instance1.selectSingleNode("/root/temp1/rsltgetdata/getdata/cpgappno") != null ){
  562. model.copyNode("/root/temp1/getdata", "/root/temp1/rsltgetdata/getdata"); //동일화
  563. model.makeValue("/root/temp1/rsltgetdata/getdata/appstepstatflag", "");
  564. model.makeValue("/root/temp1/getdata/appstepstatflag", "");
  565. model.removeNodeSet ( "/root/temp1/rsltgetdata/getdata" );
  566. return true;
  567. }else{
  568. //CP 아닌 환자
  569. return false;
  570. }
  571. }else{
  572. return false;
  573. }
  574. }
  575. }
  576. /**
  577. * @group :
  578. * @ver : 2007.10
  579. * @by : 전지은
  580. * @---------------------------------------------------
  581. * @type : function
  582. * @access : public
  583. * @desc : 처방창 및 본 창을 닫는다
  584. * @param :
  585. * @return :
  586. * @---------------------------------------------------
  587. */
  588. function fClosePrcpWindow(){
  589. //위치 바꿔야 한다... appNo_SMMMO00110 값받기 전에 수행되므로 실핼안함
  590. appNo_SMMMO00110 = model.getValue("/root/temp1/getdata/cpgappno");
  591. if( !isNull(appNo_SMMMO00110) ){
  592. fsetCpInfo(); //상단 CP여부 변경
  593. /*
  594. if( appStat != "00" ){
  595. //상단에 cp여부를 Y로 셋팅(외래일때에는 셋팅이 되지 않아서, 다시 셋팅)
  596. setPatientInfo("cp", model.getValue("/root/paminfo/list/pid") + "|" + "Y"); //상단 cp Y로 셋팅
  597. //진료대상자리스트에 값을 setting한다
  598. var prcpWindow = getOpenWindow("SMMMO04100");
  599. if( prcpWindow != null ){
  600. prcpWindow.model.setValue("/root/cpflag", "Y");
  601. }
  602. }
  603. */
  604. //처방창 닫기
  605. var prcpWindow = getOpenWindow("SMMMO00100");
  606. if( prcpWindow != null ){
  607. prcpWindow.javascript.fClose_SMMMO00100();
  608. }
  609. //CP검색창 닫기
  610. var srchWindow = getOpenWindow("SPMMP01200");
  611. if( srchWindow != null ){
  612. srchWindow.javascript.fCpSrchWndClose();
  613. }
  614. //CPG대상자알림창 닫기
  615. var srchWindow = getOpenWindow("SPMMP03200");
  616. if( srchWindow != null ){
  617. srchWindow.javascript.fCpSrchWndClose();
  618. }
  619. }
  620. }
  621. /**
  622. * @group :
  623. * @ver : 2007.10
  624. * @by : 전지은
  625. * @---------------------------------------------------
  626. * @type : function
  627. * @access : public
  628. * @desc : 처방창 및 본 창을 닫는다
  629. * @param :
  630. * @return :
  631. * @---------------------------------------------------
  632. */
  633. function fOpenPrcpWindow(){
  634. var mainObj = getMainViewer();
  635. appStat = model.getValue("/root/temp1/getdata/appstat");
  636. // 2008.07.18 pymi (51 상태값 추가)
  637. if( appStat == "50" || appStat == "41" || appStat == "51"){
  638. setPatientInfo("cp", model.getValue("/root/paminfo/list/pid") + "|" + "N"); //main view cp여부 불 끄기
  639. //진료대상자리스트에 값을 setting한다
  640. var prcpWindow = mainObj.javascript.getOpenWindow("SMMMO04100");
  641. if( prcpWindow != null ){
  642. prcpWindow.model.setValue("/root/cpflag", "N");
  643. }
  644. if( cpgflagcd == "02" ){ //CPG 종료 시, 평가명이 없으면 상단 평가 아이콘 설정 변경 (2010.06.03)
  645. var valunmNode = instance1.selectSingleNode("/root/main/valuinfo/valulist/valunm");
  646. if(valunmNode == null){
  647. setPatientInfo("valuation", model.getValue("/root/paminfo/list/pid") + "|" + "N"); //main view 평가여부 불 끄기
  648. }
  649. }
  650. fPrcpCallPatList(); //진료대상자리스트 재조회
  651. //mainObj.window.javascript.open("SMMMO00100"); //처방창 open
  652. if( prcpWindow != null ){
  653. prcpWindow.window.javascript.fOpenPrcpMainWnd();
  654. }
  655. window.close(); //cp창 닫기
  656. }
  657. }
  658. /**
  659. * @group :
  660. * @ver : 2007.08
  661. * @by : 전지은
  662. * @---------------------------------------------------
  663. * @type : function
  664. * @access : public
  665. * @desc : drop, 평가 메세지 출력
  666. * @param :
  667. * @return :
  668. * @---------------------------------------------------
  669. */
  670. function fMssg(){
  671. if( !checkAuth("X") ){
  672. return true; //조회모드일 경우, Drop 유도, CP진행여부 Msg 필요 없음
  673. }
  674. var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  675. var indd = model.getValue( "/root/paminfo/list/indd" );
  676. var D0stepNode = instance1.selectSingleNode("/root/main/steppath/info" + "[times = '0' and stepstat='10']/stepno");
  677. var prcpddNode = instance1.selectSingleNode("/root/main/steppath/info" + "[times = '0']/prcpdd");
  678. var ioflag = model.getValue("/root/main/masterinfo/info/ioflagcd"); //pymi 2008.08.07
  679. /*
  680. //진료대상자리스트에서 체크하도록 변경(2008.08.07 JJE) => 삭제할 것
  681. if(prcpgenrflag != "O" && D0stepNode != null ){
  682. if( indd == prcpddNode.text ){
  683. btn_allInfoSave.disabled = true;
  684. btn_drop.disabled = false;
  685. fDropApp("D0처방일과 D1처방일이 동일합니다. \n현재 CP를 Drop하고 새로운 D1 CP를 적용하십시오. \nDrop을");
  686. return true;
  687. }
  688. }
  689. */
  690. /*
  691. //선택 상태이면서 당일 CP 임시처방 존재 시, 임시처방 저장 여부 물어봄. 2008.10.23(JJE)
  692. if( appStat == "00" && model.getValue ( "/root/initsrchprcp/prcpetccnts/temprsrvprcpyn" ) != "N" ){
  693. if( instance1.selectSingleNode("/root/main/prcp/prcplist[prcphistcd='T' and etclnkspec='0|" + appNo_SMMMO00110 + "']") != null ){
  694. if( messageBox ( "선택하신 "+cpgFlagNm+"의 당일 처방이 임시처방으로 존재합니다.\n임시처방을 "+cpgFlagNm+" 처방으로 대치하여 저장하시려먼 '예',\n다른 "+cpgFlagNm+"를 선택하시려면 '아니오'\n\n임시처방을 당일 "+cpgFlagNm+" 처방으로 대치하여", "Q002" ) == 6 ){
  695. cpTmpPrcpSaveYN_SMMMO00110 = "Y";
  696. btn_allInfoSave.dispatch("DOMActivate");
  697. }else{
  698. //cpTmpPrcpSaveYN_SMMMO00110 = "N";
  699. fCnclApp();
  700. }
  701. return;
  702. }
  703. }
  704. */
  705. if( cpgflagcd == "01" ){
  706. //CP check =>
  707. //D0 CP일 경우, D0처방을 OCS에 미리 setting한다. (2008.11.28)
  708. if( appStat == "00" ){
  709. if( prcpgenrflag != "O" ){
  710. model.setValue ("/root/init/prcpkindcd", "20");
  711. model.setValue("/root/init/prcpdd", getCurrentDate()); //2009.03.14
  712. }
  713. if( ioflag != "O" && D0stepNode != null ){
  714. var setcond = instance1.selectSingleNode("/root/main/steppath/info" + "[times = '0']/setno");
  715. var etcLnkSpec = "0" + "|" + appNo_SMMMO00110;
  716. model.makeValue ( "/root/send/reqdata/cpgno", model.getValue("/root/main/masterinfo/info/cpgno") );
  717. model.makeValue ( "/root/send/reqdata/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq") );
  718. model.makeValue ( "/root/send/reqdata/cpgappno", appNo_SMMMO00110 );
  719. model.makeValue ("/root/send/reqdata/dayno", "0");
  720. model.makeValue ("/root/send/reqdata/setcond", setcond.text);
  721. model.makeValue ("/root/send/reqdata/cpgflagcd", settypecd);
  722. model.makeValue ("/root/send/reqdata/etclnkspec", etcLnkSpec); //submit 수행 시 조회된 etcLnkSpec가 addPrcpSetValue() 수행으로 다시 reset되므로 etcLnkSpec는 보내고/받을 필요가 없음.
  723. model.makeValue ("/root/send/reqdata/prcpgenrflag", model.getValue("/root/patflag/list/prcpgenrflag"));
  724. model.makeValue ("/root/send/reqdata/prcpddcond", getCurrentDate()); //2009.03.10 추가
  725. if( submit("TRMMP02202", false ) ){
  726. cpTmpPrcpSaveYN_SMMMO00110 = "Y";
  727. copyNodesetType("/root/main/prcp", "/root/main/prcpsrch", "replace", model, model);
  728. model.removeNodeset ( "/root/main/prcpsrch/prcplist" );
  729. var prcpNodeList = instance1.selectNodes("/root/main/prcp/prcplist");
  730. var prcpNodeListCnt = prcpNodeList.length;
  731. var srchRow = 0;
  732. for(var i=0; i<prcpNodeListCnt; i++){
  733. srchRow++;
  734. addPrcpSetValue( "main", "/root/main/prcp/prcplist" , srchRow, cpgflagcd);
  735. model.setValue("/root/main/prcp/prcplist[" + srchRow + "]/etclnkspec", etcLnkSpec);
  736. }
  737. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  738. grd_prcplist.refresh();
  739. model.recalculate();
  740. }
  741. model.removeNodeset ( "/root/send/reqdata" );
  742. }
  743. }
  744. else if( appStat == "12" && prcpgenrflag != "O" && ioflag != "O"){ // ioflag != "O" 조건 추가 pymi 2008.08.07 (외래 -dsc cp 일 경우는 발생하지 않도록)
  745. var appstat = model.getValue("/root/init/rsltgetdata/getdata/appstat");
  746. var cpgnm = model.getValue("/root/main/masterinfo/info/cpgnm");
  747. var hngnm = model.getValue("/root/paminfo/list/hngnm");
  748. //외래(D0) 진행 후, 입원전환 즉시일 경우, 바로 CP Main Open
  749. //var rtnval = messageBox("[" + hngnm + "]환자의 [" + cpgnm + "] CP를", "Q003");
  750. var rtnval = messageBox("[" + hngnm + "]환자의 [" + cpgnm + "] CP를 \n\n계속 진행", "S004");
  751. // 2008.07.18 pymi 취소(51) 일때 appstat update
  752. if(rtnval == 2){ //취소
  753. model.removeNodeset("/root/send/savedata");
  754. model.makeValue("/root/send/savedata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  755. model.makeValue("/root/send/savedata/appstat", "51");
  756. model.makeValue("/root/send/savedata/prcpgenrflag", "O");
  757. if(submit("TXMMP00808")) {
  758. model.setValue("/root/temp1/getdata/appstat", "51");
  759. fOpenPrcpWindow();
  760. }
  761. return true;
  762. }
  763. else if(rtnval == 6){
  764. //상태 update? Y" N"
  765. model.setValue("/root/temp1/getdata/appstat", "10");
  766. appStat = model.getValue("/root/temp1/getdata/appstat");
  767. //바로 적용 처리한다 (2008.09.29 JJE)
  768. btn_allInfoSave.dispatch("DOMActivate");
  769. return;
  770. }else{
  771. //dop 창 띄움
  772. //btn_drop.dispatch("DOMActivate"); //질문 없이 Drop창 띄우도록 수정(2008.07.31 JJE)
  773. fDropApp("");
  774. return true;
  775. }
  776. }
  777. }
  778. else{
  779. //CPG check =>
  780. //CPG는 무조건 당일/추가처방으로 세팅..
  781. model.setValue ("/root/init/prcpkindcd", "20");
  782. model.setValue("/root/init/prcpdd", getCurrentDate());
  783. var mntrList = instance1.selectNodes("/root/main/mntrinfo/mntrlist");
  784. var limtList = instance1.selectNodes("/root/main/limtminfo/limheaderinfo[alertstatcd='I' or alertstatcd='T']"); //E는 완전히 끝난상태, W는 알람횟수가 더 남았을때 팝업 확인, I/T는 알람횟수가 더 남았을때 미확인(I:잔여 알람횟수 존재, T:마지막 알람)
  785. var mntrNode = null;
  786. var limNode = null;
  787. var mntrData = "";
  788. var mAlertstatcd = null;
  789. var mCpgmntrflag = null;
  790. var mSlipnm = null;
  791. var mGuidedocucnts = null;
  792. var mAlertoffyn = null;
  793. var mSlipno = null;
  794. var mAlertGrde = null;
  795. var limtData = "";
  796. var lAlertstatcd = "";
  797. var lLimno = null;
  798. var lLimhistno = null;
  799. var lAlertoffyn = null;
  800. var lAlertGrde = null;
  801. var lTitle = null;
  802. var lStepno = null;
  803. var lStepnm = null;
  804. //모니터링 알람 (팝업)
  805. if( mntrList.length > 0 ){
  806. for( var i=0; i<mntrList.length; i++ ){
  807. mntrNode = mntrList.item(i);
  808. mAlertstatcd = mntrNode.selectSingleNode("alertstatcd");
  809. mCpgmntrflag = mntrNode.selectSingleNode("cpgmntrflag");
  810. mSlipnm = mntrNode.selectSingleNode("slipnm");
  811. mGuidedocucnts = mntrNode.selectSingleNode("guidedocucnts");
  812. mAlertoffyn = mntrNode.selectSingleNode("alertoffyn");
  813. mSlipno = mntrNode.selectSingleNode("slipno");
  814. mAlertGrde = mntrNode.selectSingleNode("alertgrde");
  815. if(mAlertstatcd == null || mAlertGrde == null ) continue;
  816. // pid ▦ cretno ▦ orddd ▦ ordtype ▦ slipno ▦ cpgappno ▦ alertstatcd ▦ cpgmntrflag ▦ slipnm ▦ guidedocucnts ▦ alertoffyn
  817. if( (mAlertstatcd.text == "W") && mAlertGrde.text != "C01" ){
  818. mntrData = iPid + "▦" + iCretno + "▦" + iPrcpgenrflag + "▦" + iOrddd + "▦" + mSlipno.text + "▦" + appNo_SMMMO00110 + "▦" + mAlertstatcd.text + "▦" + mCpgmntrflag.text + "▦" + mSlipnm.text + "▦" + mGuidedocucnts.text + "▦" + mAlertoffyn.text;
  819. setParameter( "alertdata_SMMMP00800", mntrData );
  820. modal("SPMMP03200", "", "", "", "SPMMP03200");
  821. if( !isNull(getParameter("alertstatcd_TRMMP03200")) ){
  822. model.setValue(mAlertstatcd, getParameter("alertstatcd_TRMMP03200"));
  823. }
  824. if( !isNull(getParameter("alertoffyn_TRMMP03200")) ){
  825. model.setValue(mAlertoffyn, getParameter("alertoffyn_TRMMP03200"));
  826. }
  827. clearParameter("alertdata_SMMMP00800");
  828. clearParameter("alertstatcd_TRMMP03200");
  829. clearParameter("alertoffyn_TRMMP03200");
  830. }
  831. }
  832. grd_monitoringlist.refresh();
  833. }
  834. //제한시간 알람 (팝업)
  835. if( limtList.length > 0 ){
  836. for( var i=0; i<limtList.length; i++ ){
  837. limNode = limtList.item(i);
  838. lAlertstatcd = limNode.selectSingleNode("alertstatcd");
  839. lLimno = limNode.selectSingleNode("limno");
  840. lLimhistno = limNode.selectSingleNode("limhistno");
  841. lAlertoffyn = limNode.selectSingleNode("alertoffyn");
  842. lAlertGrde = limNode.selectSingleNode("alertgrde");
  843. lTitle = limNode.selectSingleNode("title");
  844. lStepno = limNode.selectSingleNode("stepno");
  845. lStepnm = limNode.selectSingleNode("stepnm");
  846. if(lAlertstatcd == null || lAlertGrde == null ) continue;
  847. // pid ▦ cretno ▦ orddd ▦ ordtype ▦ limno ▦ limhistno ▦ cpgappno ▦ alertstatcd ▦ title ▦ alertoffyn ▦ stepno ▦ stepnm
  848. if( lAlertstatcd.text == "T" || lAlertstatcd.text == "I" ){
  849. limtData = limtData + iPid + "▦" + iCretno + "▦" + iPrcpgenrflag + "▦" + iOrddd + "▦" + lLimno.text + "▦" + lLimhistno.text + "▦" + appNo_SMMMO00110 + "▦" + lAlertstatcd.text + "▦" + lTitle.text + "▦" + lAlertoffyn.text + "▦" + lStepno.text + "▦" + lStepnm.text + "▩";
  850. }
  851. }
  852. if( !isNull(limtData) ){
  853. setParameter( "alertdata_SMMMP00800", limtData );
  854. modal("SPMMP03300", "", "", "", "SPMMP03300");
  855. }
  856. clearParameter("alertdata_SMMMP00800");
  857. }
  858. //결정하지 않은 Decision Step 존재 시, 알람 (2009.04.08)
  859. var deciStepNodes = instance1.selectNodes("/root/main/steppath/info" + "[stepflagcd = 'D' and answstepno='0']");
  860. var deciStepNoNode = null;
  861. var deciStepNmNode = null;
  862. var preStepsStatNode = null;
  863. if( deciStepNodes.length > 0 ){
  864. for( var i=0; i<deciStepNodes.length; i++ ){
  865. var node = deciStepNodes.item(i);
  866. deciStepNoNode = node.selectSingleNode("stepno");
  867. deciStepNmNode = node.selectSingleNode("stepnm");
  868. preStepsStatNode = instance1.selectSingleNode("/root/main/steppath/info" + "[lnkstepno = '" + deciStepNoNode.text + "' and stepflagcd = 'A' and stepstat='30']");
  869. if( preStepsStatNode != null ){
  870. //message 출력
  871. if( deciStepNmNode == null ) var deciStepNm = "";
  872. else deciStepNm = deciStepNmNode.text;
  873. messageBox( "Decision Step [" + deciStepNm + "] 이 미결정 상태입니다.\n\nDecision Step을 우클릭하여 결정 메뉴를 선택한 후 연결된 Step들 중 하나를 선택", "I008"); //선택하십시오!
  874. //이전 스텝의 검사결과 보여달라는 요청 있었지만 요청서가 없어 보류 상태임..
  875. }
  876. }
  877. }
  878. }
  879. //공통 message
  880. if( appStat == "50" ){
  881. messageBox ( "이미 Drop된 "+cpgFlagNm, "E008" );
  882. btn_allInfoSave.disabled = true;
  883. btn_drop.disabled = true;
  884. //btn_val.disabled = true;
  885. return true;
  886. }else if( appStat == "41" ){
  887. messageBox ( "이미 취소된 "+cpgFlagNm, "E008" );
  888. btn_allInfoSave.disabled = true;
  889. btn_drop.disabled = true;
  890. //btn_val.disabled = true;
  891. return;
  892. }
  893. /*
  894. else if( appStat == "40" ){
  895. messageBox ( "이미 평가 완료된 "+cpgFlagNm, "E008" );
  896. //fOpenMsgBox( "이미 평가 완료된 " + cpgFlagNm + "입니다." , "E" );
  897. btn_allInfoSave.disabled = true;
  898. btn_drop.disabled = true;
  899. //btn_val.disabled = true;
  900. return true;
  901. }else if( appStat == "30" ){
  902. //마지막 스텝까지 실처방 저장이 끝났으면, 평가 팝업을 띄운다.
  903. btn_val.dispatch("DOMActivate");
  904. btn_val.disabled = false;
  905. }*/
  906. // 퇴원예고 2008.06.27 pymi(s)
  907. if(dschAppYN != "Y") {
  908. if( (model.getValue("/root/temp1/getdata/appstat") != "00" && instance1.selectSingleNode("/root/main/steppath/info[stepstat >= '20']") != null )
  909. || (model.getValue("/root/main/masterinfo/info/ioflagcd") == "O" && instance1.selectSingleNode("/root/main/steppath/info[decirflag == 'C']") != null) ){ // 외래- DSC cp 2008.08.08
  910. var curDate = getCurrentDate();
  911. var nxtDate = new Date().getAddDate(1, "D").getDateFormat();
  912. var stepLth = instance1.selectNodes("/root/main/steppath/info").length;
  913. var cstepPt = "";
  914. var dshPrcpdd = "";
  915. var dschRet = "";
  916. for( var i = 1; i <= stepLth; i++) {
  917. if( curDate == model.getValue("/root/main/steppath/info[" + i + "]/prcpdd") ) {
  918. cstepPt = i;
  919. break;
  920. }
  921. }
  922. if( !isNull(cstepPt) ) {
  923. for(var i = cstepPt ; i <= stepLth ; i++) {
  924. if( model.getValue("/root/main/steppath/info["+ i +"]/decirflag") == "D"
  925. || (model.getValue("/root/main/steppath/info["+ i +"]/decirflag") == "C" && model.getValue("/root/main/steppath/info["+ i +"]/stepstat") == "30") ) { // 외래- DSC cp 2008.08.08
  926. dshPrcpdd = model.getValue("/root/main/steppath/info["+ i +"]/prcpdd");
  927. }
  928. if( (curDate == dshPrcpdd) || (nxtDate == dshPrcpdd) ) {
  929. if( model.getValue("/root/paminfo/list/dschdclrtyn") == "N" ) {
  930. //dschRet = messageBox( dshPrcpdd.substr(0, 4) + "년 " + dshPrcpdd.substr(4, 2) + "월 " + dshPrcpdd.substr(6, 2) + "일 " + "퇴원예정환자입니다. 퇴원예고를", "Q009");
  931. if( curDate == dshPrcpdd ) {
  932. if( iPrcpgenrflag != "E" ){
  933. dschRet = messageBox( "당일 퇴원예정환자입니다. \n\n입퇴원요약기록 작성 후 퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  934. }else{
  935. dschRet = messageBox( "당일 퇴원예정환자입니다. \n\n퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  936. }
  937. } else if( nxtDate == dshPrcpdd ) {
  938. if( iPrcpgenrflag != "E" ){
  939. dschRet = messageBox( "내일 퇴원예정환자입니다. \n\n입퇴원요약기록 작성 후 퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  940. }else{
  941. dschRet = messageBox( "내일 퇴원예정환자입니다. \n\n퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  942. }
  943. }
  944. break;
  945. }
  946. }
  947. }
  948. if( dschRet == "6") {
  949. //첫번째 처방일 + 재원일
  950. var fstdd = model.getValue("/root/main/steppath/info[1]/prcpdd");
  951. fstdd = new Date(eval(fstdd.substr(0, 4)), eval(fstdd.substr(4, 2)) -1, eval(fstdd.substr(6, 2)));
  952. var hddd = parseInt(model.getValue("/root/main/masterinfo/info/fcstinhospdayno"));
  953. var hd = fstdd.getAddDate(hddd-1);
  954. //퇴원예고 window open
  955. setParameter("SMMMP00800_dclrdd", dshPrcpdd);
  956. modal("SPMMO00400");
  957. if( getParameter("SPMMO00400_rtn_useyn") == "Y") {
  958. // 상단정보를 그대로 받아오므로 강제 설정해야 함 2008.08.01
  959. fSetupDschInfo(); //상단정보 재설정
  960. model.setValue("/root/paminfo/list/dschdclrtyn", "Y");
  961. model.setValue("/root/paminfo/list/dschdclrdt", getParameter("SPMMO00400_dclrdd"));
  962. // (퇴원예고일 != 퇴원예정일(dshPrcpdd)) cp drop
  963. if( getParameter("SPMMO00400_dclrdd") != dshPrcpdd ) { //if( getParameter("SPMMO00400_dclrdd") != hd.getDateFormat()) {
  964. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  965. setParameter("cpgno", model.getValue("/root/main/masterinfo/info/cpgno"));
  966. setParameter("cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq"));
  967. modal("SPMMP02300");
  968. fOpenPrcpWindow();
  969. }
  970. //퇴원예고일이 익일이고 18:00 이후이면 실처방 발행하도록
  971. if( getParameter("SPMMO00400_dclrdd") == nxtDate ){ // && (getCurrentTime() > "180000")
  972. btn_cpbatch.dispatch("DOMActivate");
  973. // (퇴원예고일 == 재원일) cp 평가
  974. if( getParameter("SPMMO00400_dclrdd") == dshPrcpdd ) { //if( getParameter("SPMMO00400_dclrdd") == hd.getDateFormat()) {
  975. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  976. modal("SPMMP02500");
  977. }
  978. //}
  979. }
  980. //퇴원예고일이 당일이면 실처방
  981. if( getParameter("SPMMO00400_dclrdd") == curDate) {
  982. btn_cpbatch.dispatch("DOMActivate");
  983. // (퇴원예고일 == 재원일) cp 평가
  984. if( cpgflagcd == "01" && getParameter("SPMMO00400_dclrdd") == dshPrcpdd) {
  985. if( ioflag == "I" ) {
  986. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  987. modal("SPMMP02500");
  988. } else if( ioflag == "O" ) { // 외래- dsc cp 2008.08.08 pymi
  989. if( instance1.selectNodes("/root/main/steppath/info[prcpdd = '"+ getParameter("SPMMO00400_dclrdd") +"' and startendflag = 'E']").length > 0 ) {
  990. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  991. modal("SPMMP02500");
  992. }
  993. }
  994. }
  995. //}
  996. }
  997. clearParameter("SPMMO00400_rtn_useyn");
  998. return true;
  999. } else if( getParameter("SPMMO00400_rtn_useyn") == "N") { //실패
  1000. clearParameter("SPMMO00400_rtn_useyn");
  1001. } else{ //퇴원예고 창을 그냥 close 했을때
  1002. // 계속 진행
  1003. clearParameter("SPMMO00400_rtn_useyn");
  1004. dschAppYN = "Y";
  1005. }
  1006. return true;
  1007. }
  1008. else if( dschRet == "7") {
  1009. //퇴원예고 지연 2008.08.01 '60', '70' 제외하고 처방발행
  1010. dschAppYN = "Y";
  1011. }
  1012. else if( dschRet == "2" ) {
  1013. //Drop
  1014. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  1015. setParameter("cpgno", model.getValue("/root/main/masterinfo/info/cpgno"));
  1016. setParameter("cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq"));
  1017. modal("SPMMP02300");
  1018. fOpenPrcpWindow();
  1019. return true;
  1020. }
  1021. }
  1022. }
  1023. }
  1024. return true;
  1025. // 2008.06.27 pymi(e)
  1026. }
  1027. /**
  1028. * @group :
  1029. * @ver : 2007.08
  1030. * @by : 전지은
  1031. * @---------------------------------------------------
  1032. * @type : function
  1033. * @access : public
  1034. * @desc : Outline View 화면의 사이즈를 조정한다.
  1035. * @param :
  1036. * @return :
  1037. * @---------------------------------------------------
  1038. */
  1039. function fSizeControl(){
  1040. var mon = getCurrentMonitorNumber();
  1041. //뷰어 영역
  1042. ivw_outline.attribute("width") = "1208px";
  1043. ivw_outline.attribute("height") = "766px";
  1044. group2.attribute("width") = 1206;
  1045. //import한 처방 영역
  1046. grd_diaglist.attribute("width") = 523 -2;
  1047. ivw_prcp.visible = false;
  1048. roundrect1.attribute("width") = 1207-2;
  1049. btn_undo.attribute("left") = 1006 -1;
  1050. btn_tempsave.attribute("left") = 1074 -1;
  1051. btn_prcpsave.attribute("left") = 1141 -1;
  1052. //처방이동 버튼 위치 이동
  1053. button24.attribute("left") = 937 + 79-1;
  1054. button26.attribute("left") = 965 + 79-1;
  1055. line4.attribute("x2") = 1198 -2;
  1056. line5.attribute("x2") = 1207 -2;
  1057. ivw_prcp.attribute("height") = 0;
  1058. ivw_prcp2.attribute("top") = 142;
  1059. ivw_prcp2.attribute("height") = 623;
  1060. ivw_prcp3.attribute("top") = 142;
  1061. ivw_prcp3.attribute("height") = 623;
  1062. grd_prcplist.attribute("top") = 148;
  1063. grd_prcplist.attribute("height") = 617;
  1064. grd_prcplist.attribute("width") = 822;
  1065. }
  1066. /**
  1067. * @group :
  1068. * @ver : 2008.12.01
  1069. * @by : 전지은
  1070. * @---------------------------------------------------
  1071. * @type : function
  1072. * @access : public
  1073. * @desc : CP/CPG별 상위화면 설정 변경
  1074. * @param :
  1075. * @return : true, false
  1076. * @---------------------------------------------------
  1077. */
  1078. function fSetupSupScrn(){
  1079. if( cpgflagcd == "01" ){
  1080. btn_formatt.attribute("text") = "서식/첨부파일";
  1081. cap_attfile.attribute("text") = "첨부파일";
  1082. cap_attfile.attribute("height") = "75px";
  1083. brn_download.visible = true;
  1084. grd_inqr.visible = false;
  1085. grd_attfile.rowHidden(0) = true;
  1086. grd_attfile.visible = true;
  1087. btn_monitoring.visible = false;
  1088. btn_initcpgprcp.visible = false;
  1089. cap_appscop.visible = false;
  1090. cap_appscoplist.visible = false;
  1091. btn_essprcpinfo.visible = false;
  1092. btn_upviewmode.attribute("left") = "198px";
  1093. btn_downviewmode.attribute("left") = "227px";
  1094. grd_formlist.colHidden(grd_formlist.colRef("times")) = false;
  1095. grd_formlist.colHidden(grd_formlist.colRef("stepnm")) = true;
  1096. }else{
  1097. btn_formatt.attribute("text") = "서식/문진팝업";
  1098. cap_attfile.attribute("text") = "문진목록";
  1099. cap_attfile.attribute("height") = "75px";
  1100. brn_download.visible = false;
  1101. grd_inqr.visible = true;
  1102. grd_attfile.visible = false;
  1103. btn_monitoring.visible = true;
  1104. btn_initcpgprcp.visible = true;
  1105. cap_appscop.visible = true;
  1106. cap_appscoplist.visible = true;
  1107. btn_essprcpinfo.visible = true;
  1108. btn_upviewmode.attribute("left") = "273px";
  1109. btn_downviewmode.attribute("left") = "302px";
  1110. grd_formlist.colHidden(grd_formlist.colRef("times")) = true;
  1111. grd_formlist.colHidden(grd_formlist.colRef("stepnm")) = false;
  1112. }
  1113. }
  1114. /**
  1115. * @group :
  1116. * @ver : 2007.09
  1117. * @by : 전지은
  1118. * @---------------------------------------------------
  1119. * @type : function
  1120. * @access : public
  1121. * @desc : 환자가 CP적용환자면, 초기값을 설정하고, 그렇지 않으면 stop
  1122. * @param :
  1123. * @return : true, false
  1124. * @---------------------------------------------------
  1125. */
  1126. function fGePatValidity(){
  1127. if( fInitializePamInfo() == true ){
  1128. var patFlagCvs = getGlobalVariable("patflag");
  1129. if(patFlagCvs.length != 0 ){ //cvs가 null이 아닌 경우에만 처리함.
  1130. //model.removeNodeSet ( "/root/patflag/list" ); //상단화면 정보 초기화
  1131. //setCSVToNode ( "/root/patflag", patFlagCvs );
  1132. var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  1133. }
  1134. var operationFlagCvs = getGlobalVariable("operation");
  1135. if(operationFlagCvs.length != 0 ){ //cvs가 null이 아닌 경우에만 처리함.
  1136. model.removeNodeSet ( "/root/operation/list" ); //상단화면 정보 초기화
  1137. setCSVToNode ( "/root/operation", operationFlagCvs );
  1138. }
  1139. if ( prcpgenrflag == "O" ){ //외래일때
  1140. model.setValue ( "/root/init/hosinprcpresncd", model.getValue ( "/root/paminfo/list/hosoutexptresncd" ));
  1141. model.setValue ( "/root/init/prcpkindcd", "20" ); //처방종류(추가)
  1142. model.setValue ( "/root/init/prcpdd", model.getValue ( "/root/paminfo/list/orddd" ));
  1143. } else { //입원, 응급일때
  1144. model.makeValue ( "/root/init/hosinprcpresncd", "00");
  1145. model.makeValue ( "/root/init/prcpdd", getCurrentDate());
  1146. //##
  1147. if ( model.getValue( "/root/paminfo/list/indd" ) == getCurrentDate()) {
  1148. model.setValue ( "/root/init/prcpkindcd", "00" );
  1149. } else if ( eval (getCurrentTime().substr (0,2)) <= 4 ) { //처방종류: 4시전이면 정규
  1150. model.setValue ( "/root/init/prcpkindcd", "10" );
  1151. } else if ( eval (getCurrentTime().substr (0,2)) >= 21 ) { //9시 이후면 정규, 날짜는 다음날짜
  1152. model.setValue ( "/root/init/prcpkindcd", "10" );
  1153. var nextDay = getCurrentDate().toDate().getAddDate(1,"D").getDateFormat(); //다음날을 찾는다.
  1154. model.setValue ( "/root/init/prcpdd", nextDay );
  1155. } else { //추가처방
  1156. model.makeValue ( "/root/init/prcpkindcd", "20" );
  1157. }
  1158. //if ( prcpgenrflag == "E" ) {}
  1159. rgstno = model.getValue("/root/paminfo/list/rrgstno1");
  1160. rgstno2 = getPatientInfo("regstno");
  1161. }
  1162. }
  1163. }
  1164. /**
  1165. * @group :
  1166. * @ver : 2007.08
  1167. * @by : 전지은
  1168. * @---------------------------------------------------
  1169. * @type : function
  1170. * @access : public
  1171. * @desc : 부서코드 셋팅
  1172. * @param :
  1173. * @return :
  1174. * @---------------------------------------------------
  1175. */
  1176. function fGetCodeList() {
  1177. var instcd = getUserInfo("dutplceinstcd");
  1178. var standard_yn = "orduseyn";
  1179. var ord_deptflag = 'D';
  1180. var rslt_ref = "/root/init/orddeptlist";
  1181. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, "depthngnm", "asc");
  1182. //mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서코드 콤보
  1183. }
  1184. /**
  1185. * @group :
  1186. * @ver : 2007.07
  1187. * @by : 전지은
  1188. * @---------------------------------------------------
  1189. * @type : function
  1190. * @access : public
  1191. * @desc : 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  1192. * @param :
  1193. * @return :
  1194. * @---------------------------------------------------
  1195. */
  1196. function fInitialize() {
  1197. //검색창에 의해 화면이 로딩되었다면, CPG 정보를 조회한다.
  1198. var saveflag = model.getValue("/root/temp1/getdata/saveasflag");
  1199. var node = instance1.selectSingleNode("/root/temp1/getdata");
  1200. var nodeList = node.childNodes;
  1201. if(nodeList.length > 0){
  1202. var initCpgAppNo = model.getValue("/root/temp1/getdata/cpgappno");
  1203. model.makeValue("/root/temp1/getdata/getformyn", "Y");
  1204. model.makeValue("/root/temp1/getdata/appyn", "Y");
  1205. if( isNull(initCpgAppNo) || initCpgAppNo == "0" ){
  1206. model.makeValue("/root/temp1/getdata/histjoinyn", "N");
  1207. }else{
  1208. model.makeValue("/root/temp1/getdata/histjoinyn", "Y");
  1209. }
  1210. if( submit("TRMQP00602", false) == true ){ //master 조회
  1211. //master copy
  1212. model.copyNode("/root/main/masterinfo/info", "/root/temp1/trmqp_rslt/masterinfo");
  1213. //step 정보를 셋팅한다.
  1214. nodeList = instance1.selectNodes("/root/temp1/trmqp_rslt/steplist");
  1215. if(nodeList.length > 0){
  1216. model.removeNodeset("/root/main/steplist/info");
  1217. model.removeNodeset("/root/main/decisionlist/info");
  1218. //action step
  1219. var stepCSV = getNodeListCSV(nodeList);
  1220. setCSVToNode("/root/main/steplist", stepCSV, "info");
  1221. //decision step
  1222. nodeList = instance1.selectNodes("/root/temp1/trmqp_rslt/decisionlist");
  1223. if(nodeList.length > 0){
  1224. var dcsCSV = getNodeListCSV(nodeList);
  1225. setCSVToNode("/root/main/decisionlist", dcsCSV, "info");
  1226. }
  1227. //ivw_outline 초기화 -> 분리
  1228. }
  1229. //전역변s수 셋팅..
  1230. cpgno = model.getValue("/root/main/masterinfo/info/cpgno");
  1231. cpghistseq = model.getValue("/root/main/masterinfo/info/cpghistseq");
  1232. cpgflagcd = model.getValue("/root/main/masterinfo/info/cpgflagcd");
  1233. swimlineno = model.getValue("/root/main/masterinfo/info/swimlineno");
  1234. if(cpgflagcd == "01"){
  1235. cpgFlagNm = "CP";
  1236. settypecd = "W";
  1237. //속성 copy
  1238. copyNodeListType("/root/main/attfileinfo", "/root/temp1/trmqp_rslt/attach", "replace", model, model);
  1239. }else if(cpgflagcd == "02"){
  1240. cpgFlagNm = "CPG";
  1241. settypecd = "G";
  1242. //속성 copy
  1243. var mntrNodes = instance1.selectNodes("/root/temp1/trmqp_rslt/mntrlist[cpgmntrflag = 'M']");
  1244. var slipNo = "";
  1245. var alertCnts = "";
  1246. model.removeNodeset("/root/main/mntrinfo/mntrlist");
  1247. model.removeNodeset("/root/main/mntrdetlinfo/mntrdetllist");
  1248. model.removeNodeset("/root/main/inqrinfo/inqrheader");
  1249. model.removeNodeset("/root/main/limtminfo/limheaderinfo");
  1250. if( mntrNodes.length > 0 ){
  1251. for(var m=0; m<mntrNodes.length; m++){
  1252. var node = mntrNodes.item(m);
  1253. if( node.selectSingleNode("slipno").text != slipNo ){
  1254. var mSlipNo = node.selectSingleNode("slipno");
  1255. var mAlertCnts = node.selectSingleNode("alertcnts");
  1256. copyNodeListType("/root/main/mntrinfo" , "/root/temp1/trmqp_rslt/mntrlist[slipno='"+mSlipNo.text+"' and alertcnts='"+mAlertCnts.text+"']", "after", model, model);
  1257. }else{
  1258. model.setValue(mAlertCnts, mAlertCnts.text + "\n" + node.selectSingleNode("alertcnts").text);
  1259. }
  1260. slipNo = mSlipNo.text;
  1261. alertCnts = mAlertCnts.text;
  1262. }
  1263. }
  1264. copyNodeListType("/root/main/inqrinfo" , "/root/temp1/trmqp_rslt/inqrheader", "replace", model, model);
  1265. copyNodeListType("/root/main/limtminfo" , "/root/temp1/trmqp_rslt/limheaderinfo", "replace", model, model);
  1266. grd_monitoringlist.refresh(); //적용 모니터링 정보를 저장하기 위해, 인스턴스에 반영한다.
  1267. grd_monitoringinfo.refresh();
  1268. grd_inqr.refresh();
  1269. }
  1270. fcstinhospdayno = model.getValue("/root/main/masterinfo/info/fcstinhospdayno");
  1271. if( isNull(fcstinhospdayno) ) fcstinhospdayYN = "N";
  1272. }
  1273. }
  1274. }
  1275. /**
  1276. * @group :
  1277. * @ver : 2008.12
  1278. * @by : 전지은
  1279. * @---------------------------------------------------
  1280. * @type : function
  1281. * @access : public
  1282. * @desc : 화면 로딩 시 기록지 자동 로딩
  1283. * @param :
  1284. * @return :
  1285. * @---------------------------------------------------
  1286. */
  1287. function fInitLoadingForm_opener(){
  1288. //-------------------------------서식(main) 호출(2008.12.10)---------------------------//
  1289. //if( OpenerKind == "GPS" && cpgflag == "02" ){ //CPG의 경우 outline이 default로 열리므로 로딩 끝날때 기록지 호출해야 함 (2008.12.10)
  1290. //전처방 로딩이 완료되면 진료대상자에서 진료기록을 호출하는 로직
  1291. var mainObj = getMainViewer();
  1292. var srcOrdPatListwnd = mainObj.javascript.getOpenWindow("SMMMO04100");
  1293. //마취기록지에서 처방창을 열경우 마취기록지를 initialize 시키지 않는 로직
  1294. var srcAnstRecwnd = mainObj.javascript.getOpenWindow("SMMMR03700");
  1295. var anstrereload = mainObj.javascript.getParameter("SMMMR03700_refresh");
  1296. if (srcAnstRecwnd != null) {
  1297. var anstrereload = srcAnstRecwnd.javascript.getParameter("SMMMR03700_refresh");
  1298. }
  1299. //최초 적용 시, 처방창에서 이미 기록지 호출이 되었으므로, 재호출 안함 -> opener.window.javascript.appstepstatflag != "i" 조건 추가 (2008.09.29)
  1300. if ( anstrereload != "false" && srcOrdPatListwnd != null && appstepstatflag != "i" ) {
  1301. var fstopenflag = model.getValue("/root/temp1/refresh_obj/refreshyn"); //처방화면이 최초 생성 여부
  1302. //alert( "Refresy_YN = " + fstopenflag );
  1303. if( fstopenflag == "N") {
  1304. model.setValue("/root/init/fstopenflag", "Y"); //잠시, 값 치환
  1305. srcOrdPatListwnd.javascript.fChngMainEMRScrn();
  1306. var scrnwnd = getOpenWindow("SPMMB08400");
  1307. if(scrnwnd != null){
  1308. scrnwnd.javascript.fCloseOpenEmrWnd();
  1309. }
  1310. }
  1311. }
  1312. model.setValue("/root/temp1/refresh_obj/refreshyn", "Y"); //최초조회가 아닌경우, refresh 여부 "Y"
  1313. model.setValue("/root/init/fstopenflag", "N"); //처방최초 open여부를 재설정, 진료기록을 열기위해
  1314. //}
  1315. }
  1316. /**
  1317. * @group :
  1318. * @ver : 2007.09
  1319. * @by : 전지은
  1320. * @---------------------------------------------------
  1321. * @type : function
  1322. * @access : public
  1323. * @desc : outline 정보 초기화
  1324. * @param :
  1325. * @return :
  1326. * @---------------------------------------------------
  1327. */
  1328. function fInitializeOutline(){
  1329. fCreateOutLineView();
  1330. ivw_outline.model.makeNode("/root/main/steplist");
  1331. copyNodesetType("/root/main/steplist", "/root/main/steplist", "after", ivw_outline.model, model);
  1332. copyNodesetType("/root/main/decisionlist", "/root/main/decisionlist", "after", ivw_outline.model, model);
  1333. ivw_outline. model.removenode("/root/main/steplist[1]"); //빈 노드를 삭제한다.
  1334. ivw_outline. model.removenode("/root/main/decisionlist[1]"); //빈 노드를 삭제한다.
  1335. var stepCnt = instance1.selectNodes("/root/main/steplist/info").length;
  1336. var agr1 = stepCnt; //그려야 할 컨트롤 갯수
  1337. var agr2 = (parseInt(model.getValue("/root/main/masterinfo/info/swimlineno")) * 3) + 1; //아웃라인을 구성하는 라인 컨트롤 갯수
  1338. ivw_outline.window.javascript.initGlobalVariant(agr1, agr2);
  1339. ivw_outline.window.javascript.fAdjustLine("allEx", "392", "16");
  1340. //ivw_outline.window.javascript.fCreateControl( "Y" ); //afterFormLoad = "Y"
  1341. //fInitLoadingForm(); //CPG의 서식 로딩하는 지점..
  1342. }
  1343. /**
  1344. * @group :
  1345. * @ver : 2007.09
  1346. * @by : 전지은
  1347. * @---------------------------------------------------
  1348. * @type : function
  1349. * @access : public
  1350. * @desc : 환자의 세션 정보를 setting
  1351. * @param :
  1352. * @return : true, false
  1353. * @---------------------------------------------------
  1354. */
  1355. function fInitializePamInfo(){
  1356. var pamInfoCvs = getGlobalVariable("paminfo");
  1357. if(isNull(pamInfoCvs)){ //cvs가 null이 아닌 경우에만 처리함.
  1358. messageBox("환자를", "C002");
  1359. window.close();
  1360. }else{
  1361. if( getPatientInfo("cp") != "Y" ){
  1362. messageBox("CP/CPG 적용 환자가 아니므로 조회", "E001");
  1363. window.close();
  1364. }
  1365. }
  1366. }
  1367. /**
  1368. * @group :
  1369. * @ver : 2007.07
  1370. * @by : 전지은
  1371. * @---------------------------------------------------
  1372. * @type : function
  1373. * @access : public
  1374. * @desc : 스텝경로 정보를 조회한다.
  1375. * @param :
  1376. * @return :
  1377. * @---------------------------------------------------
  1378. */
  1379. function fGetStepPathList(){
  1380. //if( !isNull(model.getValue("/root/temp1/getdata/cpgappno")) ){
  1381. //if( submit("TRMMP00802") == true ){ //정렬을 다시 해서 가지고 온다.
  1382. //steppath 저장 or 조회
  1383. if( instance1.selectSingleNode("/root/temp1/getdata/appstepstatflag") != null ){
  1384. if( model.getValue("/root/temp1/getdata/appstepstatflag") == "i" ){
  1385. appstepstatflag = "i"; //서식 로딩을 막기 위한 처리( 최초 적용의 경우 처방창에서 먼저 호출해주었으므로 재호출 막음)
  1386. fSaveAppStepStus(); //cp적용(최초)일 경우, 적용cp스텝상태관리 테이블에 저장이 필요.
  1387. //fPrcpCallPatList(); //진료대상자리스트의 cp여부를 Y로 한다.
  1388. model.setValue("/root/temp1/getdata/appstepstatflag", ""); //다른 cp환자를 선택할 경우를 위해 값 초기화
  1389. }
  1390. else{ //if( model.getValue("/root/temp1/getdata/appstepstatflag") == "" ){
  1391. //적용 시 or 적용 후... 스텝별 처방일자가 잘못 셋팅되는 경우가 있어 appstepstatflag "u"->"" 로 변경 (2010.03.09 JJE)
  1392. model.setValue("/root/temp1/getdata/appstepstatflag", ""); //처음, 로딩시, 수진정보 및 처방기준일이 달라졌는지 체크 후, update할 수 있도록, flag를 보낸다.
  1393. model.makeValue("/root/temp1/getdata/orddd" , iOrddd);
  1394. model.makeValue("/root/temp1/getdata/prcpgenrflag", iPrcpgenrflag);
  1395. model.makeValue("/root/temp1/getdata/cretno" , iCretno);
  1396. model.makeValue("/root/temp1/getdata/checkyn", "Y"); //step path만 조회하고, MMPHSSTT(prcpdd,수진정보) update 로직 Skip하는 flag
  1397. //미완성처방 존재 유무 조회를 위해, 환자내원정보 추가 (2008.11.08)
  1398. model.makeValue("/root/temp1/getdata/pid" , iPid);
  1399. model.makeValue("/root/temp1/getdata/srchcond", "1"); //조회조건 1:로딩 및 재조회, 2:적용 후 재조회, 3:퇴원예고시 문진조회 (20090.5.19 JJE)
  1400. submit("TRMMP00803", false); //steppath 조회
  1401. //초기 적용 시, appstat=0 이므로, 이전에 수행한 TRMMP00807 에서는 cpgappno(appstat) 0건 조회, 여기(TRMMP00803)에서 상태값을 받아옴.
  1402. if( instance1.selectSingleNode("/root/main/steppath/appinfo/appstat") != null ){
  1403. model.makeValue( "/root/temp1/getdata/appstat", model.getValue("/root/main/steppath/appinfo/appstat") );
  1404. invalPrcpYN = model.getValue("/root/main/steppath/appinfo/invalprcpyn"); //2008.11.08
  1405. model.removeNodeset("/root/main/steppath/appinfo");
  1406. }
  1407. fResetStepFlag(); //cpg는 s/e 지점을 진행상태에 따라 재정의한다. (2009.02.17)
  1408. model.copyNode("/root/main/sortedsteplist", "/root/main/steppath");
  1409. /*
  1410. //'저장할 처방이 존재하지 않습니다" 후 재조회 시, reqVO인 getdata중 값이 null로 넘겨지므로,
  1411. model.removenode("/root/temp1/getdata/orddd");
  1412. model.removenode("/root/temp1/getdata/prcpgenrflag");
  1413. model.removenode("/root/temp1/getdata/cretno");
  1414. */
  1415. }
  1416. }
  1417. //CP 적용상태는 10(진행중) 이지만, step1의 적용상태가 10(초기) 상태이면, 아직 최초 처방발행이 안된 CP 이므로, appStat 의 값을 00(적용초기) 상태로 바꿔준다
  1418. //외래에서 입원 전환시, D0 CP 발행 안한 상태에서
  1419. appStat = model.getValue("/root/temp1/getdata/appstat");
  1420. appNo_SMMMO00110 = model.getValue("/root/temp1/getdata/cpgappno");
  1421. var node = instance1.selectSingleNode("/root/main/steppath/info");
  1422. if( node != null ){
  1423. /*
  1424. //중간타기 CP 개발로 인해 삭제
  1425. if( cpgflagcd == "01" && model.getValue("/root/temp1/getdata/appstat") == "10" && model.getValue("/root/main/steppath/info[1]/stepstat") == "10" ){
  1426. model.setValue("/root/temp1/getdata/appstat", "00");
  1427. appStat = model.getValue("/root/temp1/getdata/appstat");
  1428. }
  1429. */
  1430. //퇴원예정일 파라메터로 설정해줌 (퇴원예고 버튼 클릭 시, 파라메터 값 참조함)
  1431. var dshPrcpNode = instance1.selectSingleNode("/root/main/steppath/info[decirflag = 'D']/prcpdd");
  1432. if( dshPrcpNode != null && !isNull(model.getValue(dshPrcpNode)) ) {
  1433. setParameter("SMMMP00800_dclrdd", dshPrcpNode.text);
  1434. }
  1435. }
  1436. //취소/Drop버튼
  1437. //appStat = model.getValue("/root/temp1/getdata/appstat");
  1438. if( cpgflagcd == "02" ){
  1439. btn_drop.attribute("class") = "btn4_letter2";
  1440. btn_drop.attribute("left") = "1034px";
  1441. btn_drop.attribute("text") = "종료";
  1442. btn_drop.refresh();
  1443. }
  1444. else if( cpgflagcd == "01" && appStat != "00" ){
  1445. btn_drop.attribute("class") = "btn4_letter3";
  1446. btn_drop.attribute("left") = "1022px";
  1447. btn_drop.attribute("text") = "Drop";
  1448. btn_drop.refresh();
  1449. }
  1450. //}
  1451. //}
  1452. }
  1453. /**
  1454. * @group :
  1455. * @ver : 2007.07
  1456. * @by : 전지은
  1457. * @---------------------------------------------------
  1458. * @type : function
  1459. * @access : public
  1460. * @desc : 스텝정보를 저장한다.
  1461. * @param : stepCSV, deciCSV
  1462. * @return :
  1463. * @---------------------------------------------------
  1464. */
  1465. function fSaveAppStepStus(){
  1466. //스텝 영역의 정보들을 구성한다.
  1467. model.removeNodeset("/root/send/savedata");
  1468. model.makeNode("/root/send/savedata");
  1469. model.copyNode("/root/send/savedata", "/root/temp1/getdata");
  1470. //model.makeValue("/root/send/savedata/prtlflagcd", model.getValue("/root/main/masterinfo/info/cpgflagcd"));
  1471. model.makeValue("/root/send/savedata/decistepyn", "");
  1472. model.makeValue("/root/send/savedata/m", "i");
  1473. model.makeValue("/root/send/savedata/cpgflagcd", model.getValue("/root/send/savedata/prtlflagcd"));
  1474. model.makeValue("/root/send/savedata/orddeptcd", model.getValue("/root/paminfo/list/orddeptcd")); //iOrddeptcd
  1475. var initCpgAppNo = model.getValue("/root/temp1/getdata/cpgappno");
  1476. if( isNull(initCpgAppNo) || initCpgAppNo == "0" ){
  1477. model.makeValue("/root/temp1/getdata/histjoinyn", "N");
  1478. }else{
  1479. model.makeValue("/root/temp1/getdata/histjoinyn", "Y");
  1480. }
  1481. //prcpdd 컬럼이 추가, 함께 저장한다.
  1482. /*
  1483. var appdd = model.getValue("/root/temp1/getdata/appdd");
  1484. var nodeList = instance1.selectNodes("/root/main/sortedsteplist/info" + "[times != '']");
  1485. var prcpdd = "";
  1486. var dd = "";
  1487. var iPrcpdd = new Date();
  1488. var iDD = new Date();
  1489. var D0CpYN = "N";
  1490. //prcpdd 를 setting 해서 mmphsstt 에 저장한다 => 컴퓨터 시스템 시간이 사용될 수 있으므로, 서버시간을 사용하도록 수정할 것
  1491. for(var i= 0; i<nodeList.length; i++){
  1492. var node = nodeList.item(i);
  1493. var times = node.selectSingleNode("times");
  1494. var timesTxt = "";
  1495. if(times.text == "0"){
  1496. //timesTxt = "1";
  1497. D0CpYN = "Y";
  1498. }
  1499. timesTxt = times.text;
  1500. prcpdd = node.selectSingleNode("prcpdd");
  1501. iPrcpdd = appdd.toDate();
  1502. if(D0CpYN == "Y"){
  1503. iDD = iPrcpdd.getAddDate((parseInt(timesTxt)), "D");
  1504. }else{
  1505. iDD = iPrcpdd.getAddDate((parseInt(timesTxt)-1), "D");
  1506. }
  1507. dd = iDD.getDateFormat();
  1508. model.setValue( prcpdd, dd );
  1509. }
  1510. var nodeList = instance1.selectNodes("/root/main/sortedsteplist/info");
  1511. var stepCSV = getNodeListCSV(nodeList);
  1512. model.makeValue("/root/send/savedata/steplist", stepCSV); // : MMPDSINF (stepno▦stepflagcd▦stepmemo▦lnkstepno▦times▦startendflag▦swimlineno▦refseq▦decirflag▦setno▦settypecd▦prcpdd▩m▩)
  1513. */
  1514. //CPG인 경우, 모니터링 데이터 함께 가져간다 => 2010.05.11 삭제, app에서 조회해서 insert하도록 변경
  1515. /*if( cpgflagcd == "02" ){
  1516. model.makeValue("/root/send/savedata/mntrlist", grd_monitoringlist.getUpdateDataAll("i"));
  1517. }*/
  1518. if( submit("TXMMP00802", false) ){
  1519. if( instance1.selectSingleNode("/root/main/steppath/appinfo/cpgappno") != null ){
  1520. model.makeValue( "/root/temp1/getdata/cpgappno", model.getValue("/root/main/steppath/appinfo/cpgappno") );
  1521. model.makeValue( "/root/temp1/getdata/appstat", model.getValue("/root/main/steppath/appinfo/appstat") );
  1522. model.removeNodeset("/root/main/steppath/appinfo");
  1523. }
  1524. fGetAppScopList();
  1525. }
  1526. model.copyNode("/root/main/sortedsteplist", "/root/main/steppath");
  1527. model.removeNodeset("/root/send/savedata");
  1528. }
  1529. /**
  1530. * @group :
  1531. * @ver : 2007.11
  1532. * @by : 전지은
  1533. * @---------------------------------------------------
  1534. * @type : function
  1535. * @access : public
  1536. * @desc : 진료대상자리스트를 다시 조회한다
  1537. * @param : stepCSV, deciCSV
  1538. * @return :
  1539. * @---------------------------------------------------
  1540. */
  1541. function fPrcpCallPatList(){
  1542. //진료대상자리스트의 cp여부를 Y로 한다.
  1543. var mainObj = getMainViewer();
  1544. var ordPatObj = mainObj.javascript.getOpenWindow("SMMMO04100"); //현재 활성화된 진료대상자 화면 객체
  1545. if(ordPatObj != null){
  1546. ordPatObj.javascript.fPrcpCallPatList();
  1547. }
  1548. var ordMiniPatObj = mainObj.javascript.getOpenWindow("SPMMO04200");
  1549. if(ordMiniPatObj != null){ //두 객체값이 다른 경우 새로운 진료대상자 화면을 open함
  1550. ordMiniPatObj.javascript.fChkGetData();
  1551. }
  1552. }
  1553. /**
  1554. * @group :
  1555. * @ver : 2007.08
  1556. * @by : 전지은
  1557. * @---------------------------------------------------
  1558. * @type : function
  1559. * @access : public
  1560. * @desc : 그리드의 ROW 데이터 삭제
  1561. * @param : grdName, grdPath
  1562. * @return :
  1563. * @---------------------------------------------------
  1564. */
  1565. function fRowDelete( grdName, grdPath ){
  1566. if( grdPath == null ) {
  1567. grdPath == "";
  1568. }
  1569. if(grdName.row < 1){
  1570. return;
  1571. }
  1572. var status = grdName.rowStatus(grdName.row);
  1573. if(status == 1){
  1574. grdName.deleteRow(grdName.row, true);
  1575. }else{
  1576. grdName.rowStatus(grdName.row)= 4;
  1577. }
  1578. }
  1579. /**
  1580. * @group :
  1581. * @ver : 2007.08
  1582. * @by : 전지은
  1583. * @---------------------------------------------------
  1584. * @type : function
  1585. * @access : public
  1586. * @desc : FPT 서버에 저장한 파일을 다운로드 한다.
  1587. * @param : idx
  1588. * @return :
  1589. * @---------------------------------------------------
  1590. */
  1591. function fDownLoadFile( idx ){
  1592. model.makeNode("/root/temp1/attachfile/filedata");
  1593. var filepath = model.getValue("/root/main/attfileinfo/attach["+idx+"]/file");
  1594. var filenm = model.getValue("/root/main/attfileinfo/attach["+idx+"]/attfilenm");
  1595. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  1596. if (localfile != "") {
  1597. model.download(getActionURL("TRMQP00605")+"&filepath="+filepath,localfile);
  1598. var rtn = messageBox("파일을", "Q004");
  1599. if( rtn == 6 ) {
  1600. window.exec(localfile);
  1601. }
  1602. }
  1603. }
  1604. /**
  1605. * @group :
  1606. * @ver : 2007.08
  1607. * @by : 전지은
  1608. * @---------------------------------------------------
  1609. * @type : function
  1610. * @access : public
  1611. * @desc : 아웃라인뷰어에 스윔라인 구조를 생성한다.
  1612. * @param :
  1613. * @return :
  1614. * @---------------------------------------------------
  1615. */
  1616. function fCreateOutLineView(){
  1617. var lineNo = model.getValue("/root/main/masterinfo/info/swimlineno");
  1618. //아웃라인을 셋팅한다.
  1619. if(ivw_outline.model.getValue("/root/main/outlineinfo/info/swimlineno") != "" || ivw_outline.model.getValue("/root/main/outlineinfo/info/swimlineno") != 0){
  1620. ivw_outline.window.javascript.fOutlineCntlInit();
  1621. }
  1622. ivw_outline.model.setValue("/root/main/outlineinfo/info/swimlineno", lineNo);
  1623. ivw_outline.model.setValue("/root/main/outlineinfo/info/cpgflagcd", model.getValue("/root/main/masterinfo/info/cpgflagcd"));
  1624. ivw_outline.model.setValue("/root/main/outlineinfo/info/cpgorddeptcd", model.getValue("/root/main/masterinfo/info/cpgorddeptcd"));
  1625. ivw_outline.model.setValue("/root/main/outlineinfo/info/cpgno", model.getValue("/root/main/masterinfo/info/cpgno"));
  1626. ivw_outline.model.setValue("/root/main/outlineinfo/info/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq"));
  1627. ivw_outline.window.javascript.fInitialize();
  1628. }
  1629. /**
  1630. * @group :
  1631. * @ver : 2007.08
  1632. * @by : 전지은
  1633. * @---------------------------------------------------
  1634. * @type : function
  1635. * @access : public
  1636. * @desc : 예상재원일수를 범위로 하는 콤보 리스트를 구성한다.
  1637. * @param :
  1638. * @return :
  1639. * @---------------------------------------------------
  1640. */
  1641. function fSettingDayComboList(){
  1642. var dayno = model.getValue("/root/main/masterinfo/info/fcstinhospdayno");
  1643. model.removeNodeset("/root/temp1/daylist");
  1644. model.makeNode("/root/temp1/daylist");
  1645. model.makeValue("/root/temp1/daylist/day[1]/id", "");
  1646. model.makeValue("/root/temp1/daylist/day[1]/nm", "");
  1647. for(var i=0; i<= parseInt(dayno); i++){
  1648. model.makeValue("/root/temp1/daylist/day[" + (i+2) + "]/id", i);
  1649. model.makeValue("/root/temp1/daylist/day[" + (i+2) + "]/nm", i);
  1650. }
  1651. ipt_times.refresh();
  1652. }
  1653. /**
  1654. * @group :
  1655. * @ver : 2007.08
  1656. * @by : 전지은
  1657. * @---------------------------------------------------
  1658. * @type : function
  1659. * @access : public
  1660. * @desc : 서식코드를 조회한다
  1661. * @param :
  1662. * @return :
  1663. * @---------------------------------------------------
  1664. */
  1665. function fGetFormList(flag, no){
  1666. var prcpgenrflag = model.getValue("/root/patflag/list/prcpgenrflag");
  1667. var req_pid = model.getValue ( "/root/paminfo/list/pid" );
  1668. model.removeNodeset("/root/send/reqdata");
  1669. model.makeNode("/root/send/reqdata");
  1670. model.makeValue("/root/send/reqdata/cpgno", model.getValue("/root/main/masterinfo/info/cpgno"));
  1671. model.makeValue("/root/send/reqdata/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq"));
  1672. model.makeValue("/root/send/reqdata/flag", flag);
  1673. model.makeValue("/root/send/reqdata/no", no);
  1674. model.makeValue("/root/send/reqdata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  1675. model.makeValue("/root/send/reqdata/pid", iPid);
  1676. model.makeValue("/root/send/reqdata/cretno", iCretno);
  1677. model.makeValue("/root/send/reqdata/ordtype", iPrcpgenrflag);
  1678. model.makeValue("/root/send/reqdata/orddd", iOrddd);
  1679. //서식 조회 시작-종료일
  1680. var stepCnt = instance1.selectNodes("/root/main/steppath/info").length;
  1681. var frddNode = instance1.selectSingleNode("/root/main/steppath/info[startendflag='S']/prcpdd");
  1682. var toddNode = instance1.selectSingleNode("/root/main/steppath/info[startendflag='E']/prcpdd");
  1683. if( cpgflagcd=="01" && frddNode != null && toddNode != null ){
  1684. var frdd = frddNode.text;
  1685. var todd = toddNode.text;
  1686. }else{
  1687. if (cpgflagcd=="01" ){
  1688. var frdd = model.getValue("/root/main/steppath/info["+ 1 +"]/prcpdd");
  1689. var todd = model.getValue("/root/main/steppath/info["+ stepCnt +"]/prcpdd");
  1690. }else{
  1691. var frdd = model.getValue("/root/temp1/getdata/appdd"); //서식 목록 조회 기간을 CPG 선택일자부터로 수정 2010.05.04 KHJ
  1692. var todd = getCurrentDate();
  1693. }
  1694. }
  1695. model.makeValue("/root/main/formsrchcond/fromdd", frdd);
  1696. model.makeValue("/root/main/formsrchcond/todd" , todd);
  1697. model.makeValue("/root/send/reqdata/fromdd", frdd);
  1698. model.makeValue("/root/send/reqdata/todd" , todd);
  1699. //CP서식 리스트 및 서식 자동호출 우선순위 조회
  1700. var formcd = "";
  1701. var formrecseq = "";
  1702. var formrecdd = "";
  1703. if( submit("TRMMP00801") ){
  1704. var prityinfoNode = instance1.selectSingleNode("/root/main/formlist/prityinfo");
  1705. if( flag != "R" && prityinfoNode != null ){ //F:초기화시setting, O:진료기록open, R:서식목록재조회(저장상태refresh)
  1706. //CP 서식 우선순위에 따른, 1순위 서식
  1707. formcd = model.getValue("/root/main/formlist/prityinfo[1]/formcd");
  1708. formrecseq = model.getValue("/root/main/formlist/prityinfo[1]/formrecseq");
  1709. formrecdd = model.getValue("/root/main/formlist/prityinfo[1]/prcpdd");
  1710. setGlobalVariable("linked_cpformcd", formcd, "emr");
  1711. setGlobalVariable("linked_cpformrecseq", formrecseq, "emr");
  1712. if (cpgflagcd=="01" ) setGlobalVariable("linked_cpformrecdd", formrecdd, "emr");
  1713. else setGlobalVariable("linked_cpformrecdd", getCurrentDate(), "emr");
  1714. }
  1715. //서식로더에서 필료한 파라메터 설정 (2010.05.26 JJE)
  1716. //alert("setParam..disppatinfo");
  1717. //if( flag != "O" ) setParameter("disppatinfo", iPid + "▦" + iHngnm + "▦" + iSex+"/"+iAge + "▦" + iOrddeptnm + "▦" + iRoomcd );
  1718. }
  1719. if( flag == "O" ){
  1720. //기록main이 열려있지 않을 경우, 기록main open
  1721. //if( formcd=="" && formrecseq=="" )
  1722. //messageBox("진료기록 메인 화면을 여는 중입니다. \n조회할 서식을 다시 한번", "C002");
  1723. fOpenRecMainWnd();
  1724. }
  1725. }
  1726. /**
  1727. * @group :
  1728. * @ver : 2007.08
  1729. * @by : 전지은
  1730. * @---------------------------------------------------
  1731. * @type : function
  1732. * @access : public
  1733. * @desc : 서식코드를 조회한다
  1734. * @param :
  1735. * @return :
  1736. * @---------------------------------------------------
  1737. */
  1738. function fsetFormGlobalVariable(){
  1739. //공통서식 우선순위
  1740. //1. 미작성 기본서식 < 작성된 CP 프로토콜 서식
  1741. //2. 작성된 기본서식 > 미작성 CP 프로토콜 서식
  1742. //동일일, CP 프로토콜 서식 다수 존재시 : 초진/재진/경과/응급 - 수술 - 입퇴원
  1743. var curDD = getCurrentDate();
  1744. var formNodeList = instance1.selectNodes("/root/main/formlist/info[prcpdd='"+curDD+"' and formprogflag='PROG']");
  1745. if( formNodeList.length > 0 ){
  1746. for(var i=0; i<formNodeList.length; i++){
  1747. var node = formNodeList.item(i);
  1748. }
  1749. }
  1750. }
  1751. /**
  1752. * @group :
  1753. * @ver : 2007.09
  1754. * @by : 전지은
  1755. * @---------------------------------------------------
  1756. * @type : function
  1757. * @access : public
  1758. * @desc : 결정스텝을 선택하면 cpg적용환자 테이블 및 이력테이블에 insert 한다.
  1759. * @param :
  1760. * @return :
  1761. * @---------------------------------------------------
  1762. */
  1763. function fInsCPGAppPatInfo(flag, setpno, lnkstepno, swimlineno){
  1764. var start = instance1.selectSingleNode("/root/main/steppath/info[startendflag='S']/stepno");
  1765. var end = instance1.selectSingleNode("/root/main/steppath/info[startendflag='E']/stepno");
  1766. var startNo = "";
  1767. var endNo = "";
  1768. if(start!=null) startNo = start.text;
  1769. if(end!=null ) endNo = end.text;
  1770. //스텝 영역의 정보들을 구성한다.
  1771. model.removeNodeset("/root/send/savedata");
  1772. model.makeNode("/root/send/savedata");
  1773. model.makeValue("/root/send/savedata/appstepstatflag", "u"); //i: 최초 신규 insert, u10:decision스텝결정 시 update, u20:프로토콜 처방 혹은 실처방 저장 이후(사용안함-,java(basemgr)삭제할것)...
  1774. model.makeValue("/root/send/savedata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  1775. var header = "stepno▦stepflagcd▦stepmemo▦lnkstepno▦times▦startendflag▦swimlineno▦refseq▦setno▦settypecd▦m▩";
  1776. var data = "";
  1777. if( flag == "D" ){
  1778. model.makeValue("/root/send/savedata/master/changestartend", "D"); //Decision
  1779. data = setpno + "▦D▦▦" + lnkstepno + "▦▦▦" + swimlineno + "▦▦▦▦▩"; //현재 decision스탭의 대답 스텝 설정.
  1780. }else if( flag == "A" ){
  1781. model.makeValue("/root/send/savedata/master/changestartend", "A"); //Auto Decision
  1782. data = setpno + "▦A▦▦▦▦▦" + swimlineno + "▦▦▦▦▩"; //역으로 ckecking해서 자동결정하기 위함.
  1783. }else{ //"S" or "E"
  1784. model.makeValue("/root/send/savedata/master/changestartend", "S"); //start/end setup
  1785. if( !isNull(setpno) ){ //설정취소해야 하는 스텝
  1786. data = setpno + "▦A▦▦▦▦▦▦▦▦▦▩";
  1787. }
  1788. if( !isNull(lnkstepno) ){ //설정해야하는 스텝
  1789. data += lnkstepno + "▦A▦▦▦▦" + flag + "▦" + swimlineno + "▦▦▦▦▩";
  1790. }
  1791. }
  1792. model.makeValue("/root/send/savedata/steplist", header + data);
  1793. if( submit("TXMMP00802", false) ){ //Decision 스텝 결정 시에는 MMPHAPPT에도 insert
  1794. if( flag == "S"){
  1795. return true;
  1796. }
  1797. //if( instance1.selectSingleNode("/root/main/steppath/info[stepno='"+startNo+"']") != null ){
  1798. if (instance1.selectSingleNode("/root/main/steppath/info[startendflag='S']/startendflag") != null)
  1799. model.setValue("/root/main/steppath/info[startendflag='S']/startendflag" , "");
  1800. if (ivw_outline.instance1.selectSingleNode("/root/main/steplist/info[startendflag='S']/startendflag") != null)
  1801. ivw_outline.model.setValue("/root/main/steplist/info[startendflag='S']/startendflag" , "");
  1802. if (instance1.selectSingleNode("/root/main/steppath/info[stepno='"+startNo+"']/startendflag") != null) { //S/E 설정 시에만 S/E setvalue
  1803. model.setValue("/root/main/steppath/info[stepno='"+startNo+"']/startendflag" , "S");
  1804. ivw_outline.model.setValue("/root/main/steplist/info[stepno='"+startNo+"']/startendflag" , "S");
  1805. }else if(flag == "D"){ //기존 start 스텝이 없을 때 outline view에서 Decision 한 경우 S를 Decision으로 잡음 (2010.05.14 JJE)
  1806. model.setValue("/root/main/steppath/info[stepno='"+setpno+"']/startendflag", "S");
  1807. ivw_outline.model.setValue("/root/main/steplist/info[stepno='"+setpno+"']/startendflag" , "S");
  1808. }
  1809. //}
  1810. //if( instance1.selectSingleNode("/root/main/steppath/info[stepno='"+endNo+"']") != null ){
  1811. if (instance1.selectSingleNode("/root/main/steppath/info[startendflag='E']/startendflag") != null)
  1812. model.setValue("/root/main/steppath/info[startendflag='E']/startendflag" , "");
  1813. if (ivw_outline.instance1.selectSingleNode("/root/main/steplist/info[startendflag='E']/startendflag") != null)
  1814. ivw_outline.model.setValue("/root/main/steplist/info[startendflag='E']/startendflag" , "");
  1815. if (flag != "D" && instance1.selectSingleNode("/root/main/steppath/info[stepno='"+endNo+"']/startendflag") != null) { //S/E 설정 시에만 S/E setvalue
  1816. model.setValue("/root/main/steppath/info[stepno='"+endNo+"']/startendflag" , "E");
  1817. ivw_outline.model.setValue("/root/main/steplist/info[stepno='"+endNo+"']/startendflag" , "E");
  1818. }
  1819. //}
  1820. //steppath 노드셋이 정렬 됐다면, issendstep 을 정해서 적용스텝 테이블을 update한다.
  1821. model.removeNodeset("/root/send/savedata");
  1822. model.makeNode("/root/send/savedata");
  1823. model.makeValue("/root/send/savedata/cpgno", model.getValue("/root/main/masterinfo/info/cpgno"));
  1824. model.makeValue("/root/send/savedata/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq"));
  1825. model.makeValue("/root/send/savedata/prtlflagcd", settypecd);
  1826. model.makeValue("/root/send/savedata/pid", model.getValue("/root/temp1/getdata/pid"));
  1827. model.makeValue("/root/send/savedata/cretno", model.getValue("/root/temp1/getdata/cretno"));
  1828. model.makeValue("/root/send/savedata/orddd", model.getValue("/root/temp1/getdata/orddd"));
  1829. model.makeValue("/root/send/savedata/ordtype", model.getValue("/root/temp1/getdata/ordtype"));
  1830. model.makeValue("/root/send/savedata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  1831. model.makeValue("/root/send/savedata/decistepyn", "Y");
  1832. model.makeValue("/root/send/savedata/answstepno", lnkstepno);
  1833. //다음 decision 스텝이 어디까지인지 확인해서, 그 전 스텝까지 지정해야 함...
  1834. var node = instance1.selectNodes("/root/main/steppath/info" + "[stepstat = '10']");
  1835. if( node.length > 0 ){
  1836. var first = node.item(0);
  1837. var firstNo = first.selectSingleNode("stepno");
  1838. var firstTm = first.selectSingleNode("times");
  1839. model.makeValue("/root/send/savedata/issstartstepno", firstNo.text);
  1840. model.makeValue("/root/send/savedata/issstarttimes", firstTm.text);
  1841. }
  1842. var node = instance1.selectSingleNode("/root/main/steppath");
  1843. var last = node.lastChild;
  1844. var lastNo = last.selectSingleNode("stepno");
  1845. var lastTm = last.selectSingleNode("times");
  1846. model.makeValue("/root/send/savedata/issendstepno", lastNo.text);
  1847. model.makeValue("/root/send/savedata/issendtimes", lastTm.text);
  1848. model.makeValue("/root/send/savedata/m", "u");
  1849. if( submit("TXMMP00801", false) ){
  1850. //model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  1851. if( lnkstepno != "0" )
  1852. messageBox ( "스텝이 결정됐습니다.\n\n스텝을 적용하시려면 적용버튼을 클릭", "I008" );
  1853. return true;
  1854. }
  1855. }
  1856. //성공시 위에서 바로 true 리턴함, 실패시 여기에서 false 리턴
  1857. return false;
  1858. }
  1859. /**
  1860. * @group :
  1861. * @ver : 2007.09
  1862. * @by : 전지은
  1863. * @---------------------------------------------------
  1864. * @type : function
  1865. * @access : public
  1866. * @desc : 미완성 처방 리스트를 조회한다.
  1867. * @param :
  1868. * @return :
  1869. * @---------------------------------------------------
  1870. */
  1871. function fGetErrPrcpList(){
  1872. var nodelist = instance1.selectNodes("/root/main/steppath/info[stepstat>='20']");
  1873. var cpgappno = model.getValue("/root/temp1/getdata/cpgappno");
  1874. var orddrid = model.getValue ( "/root/paminfo/list/orddrid" );
  1875. var stepno = "";
  1876. var prcpdd = "";
  1877. var stepnoList = "";
  1878. if(nodelist.length > 0){
  1879. for(var i=0; i<nodelist.length; i++){
  1880. var node = nodelist.item(i);
  1881. var stepflag = node.selectSingleNode("stepflagcd");
  1882. if(stepflag.text != "D"){
  1883. var stepnoNode = node.selectSingleNode("stepno");
  1884. var prcpddNode = node.selectSingleNode("prcpdd");
  1885. var setnoNode = node.selectSingleNode("setno");
  1886. stepnoList = stepnoList + stepnoNode.text + ",";
  1887. }
  1888. }
  1889. stepnoList = stepnoList.substr(0, stepnoList.length-1);
  1890. model.makeValue("/root/send/reqdata/cpgappno", cpgappno);
  1891. model.makeValue("/root/send/reqdata/pid", iPid);
  1892. model.makeValue("/root/send/reqdata/cretno", iCretno);
  1893. model.makeValue("/root/send/reqdata/prcpgenrflag", iPrcpgenrflag);
  1894. model.makeValue("/root/send/reqdata/orddrid", orddrid);
  1895. model.makeValue("/root/send/reqdata/stepnocond", stepnoList);
  1896. }
  1897. if( ivw_invalprcp.src != "../../../emr/cpgweb/xrw/SPMMP00200_미완성처방관리.xrw" ){
  1898. ivw_invalprcp.src = "../../../emr/cpgweb/xrw/SPMMP00200_미완성처방관리.xrw";
  1899. }else{
  1900. ivw_invalprcp.window.javascript.fGetInalPrcpList();
  1901. }
  1902. if( checkAuth("X") ){
  1903. btn_savecomplprcp.visible = true;
  1904. }
  1905. }
  1906. /**
  1907. * @group :
  1908. * @ver : 2007.09
  1909. * @by : 전지은
  1910. * @---------------------------------------------------
  1911. * @type : function
  1912. * @access : public
  1913. * @desc : 기록지 화면과 연동한다.
  1914. * @param :
  1915. * @return :
  1916. * @---------------------------------------------------
  1917. */
  1918. function fOpenRec(){
  1919. var prcpObj = getOpenWindow("SMMMO00100");
  1920. if(prcpObj != null){
  1921. var status = prcpObj.javascript.getScreenDisabled();
  1922. if(status == true){
  1923. return;
  1924. }
  1925. }
  1926. fOpenOrdRecMainWnd();
  1927. }
  1928. /**
  1929. * @group :
  1930. * @ver : 2007.10
  1931. * @by : 전지은
  1932. * @---------------------------------------------------
  1933. * @type : function
  1934. * @access : public
  1935. * @desc : 기록지 화면에서 값 받아온다
  1936. * @param :
  1937. * @return :
  1938. * @---------------------------------------------------
  1939. */
  1940. function fSnedValToCpWnd(formCode, formrecseq, flag){
  1941. var seq = flag.split("|")[1];
  1942. var seqNode = model.instances(0).selectSingleNode( "/root/main/formlist/info" + "[formcd = '" + formCode + "' and formseq = '" + seq + "']");
  1943. if( seqNode != null && !isNull(formrecseq) ){
  1944. fGetFormList("R");
  1945. }
  1946. }
  1947. /**
  1948. * @group :
  1949. * @ver : 2007.10
  1950. * @by : 전지은
  1951. * @---------------------------------------------------
  1952. * @type : function
  1953. * @access : public
  1954. * @desc : 서식/첨부파일/미완성처방, 환자계획표/OCS/Outline 영역 사이즈 변경
  1955. * @param : btn_kind(선택한 위, 아래 버튼 종류)
  1956. * @return :
  1957. * @---------------------------------------------------
  1958. */
  1959. function changeViewMode( btn_kind ){
  1960. var ivw_top = parseInt(ivw_outline.attribute("top"));
  1961. switch( ivw_top ){
  1962. case 142 :
  1963. if(btn_kind == "U"){
  1964. btn_upviewmode.disabled = true;
  1965. btn_downviewmode.disabled = false;
  1966. fCase1ViewMode();
  1967. }else{
  1968. btn_downviewmode.disabled = true;
  1969. btn_upviewmode.disabled = false;
  1970. fCase2ViewMode();
  1971. }
  1972. break;
  1973. case 27 :
  1974. if(btn_kind == "D"){
  1975. btn_upviewmode.disabled = false;
  1976. btn_downviewmode.disabled = false;
  1977. fNomalViewMode();
  1978. }
  1979. break;
  1980. case 446 :
  1981. if(btn_kind == "U"){
  1982. btn_upviewmode.disabled = false;
  1983. btn_downviewmode.disabled = false;
  1984. fNomalViewMode();
  1985. }
  1986. break;
  1987. }
  1988. }
  1989. /**
  1990. * @group :
  1991. * @ver : 2007.10
  1992. * @by : 전지은
  1993. * @---------------------------------------------------
  1994. * @type : function
  1995. * @access : public
  1996. * @desc : ivw_prcp2(iviewer)의 현재 sise에 따라 그안의 컨트롤 사이즈를 변경
  1997. * @param :
  1998. * @return :
  1999. * @---------------------------------------------------
  2000. */
  2001. function fResizeControls(){
  2002. if ( btn_init.visible == true || btn_reinit.visible == true ){
  2003. return;
  2004. }
  2005. var grp_prcp_top = parseInt(grp_prcp.attribute("top"));
  2006. if( grp_prcp_top == 27 ){
  2007. if(btn_ivpatord.selected == true ){
  2008. ivw_prcp2.grd_prcpdd.attribute("height") = 666; //-42 (org+99)
  2009. ivw_prcp2.grd_bfprcplist.attribute("height") = 666;
  2010. ivw_prcp2.grd_patchosinfo.attribute("height") = 666;
  2011. }else if( btn_ivbfprcp.selected == true || ivw_prcp3.visible == true){
  2012. ivw_prcp3.grd_bfprcplist.attribute("height") = 666; //71,567px
  2013. ivw_prcp3.grd_bfprcplist.refresh();
  2014. }else if( btn_prmsprcp.selected == true ){
  2015. ivw_prcp2.trv_promprcpset.attribute("height") = 628; //121,529px
  2016. ivw_prcp2.grd_promprcplist.attribute("height") = 652; //97,553px
  2017. }else if( btn_prcpsrch.selected == true ){
  2018. ivw_prcp2.trv_prcpclscdlist.attribute("height") = 678; //58,579px
  2019. }else if( btn_prmsop.selected == true ){
  2020. ivw_prcp2.trv_deptindxcdlist.attribute("height") = 401; //89,302px
  2021. ivw_prcp2.trv_promprcpset.attribute("height") = 401; //89,302px
  2022. ivw_prcp2.grd_prmsoplist.attribute("height") = 425; //65,326px
  2023. ivw_prcp2.grd_promprcpset.attribute("height") = 425;
  2024. ivw_prcp2.grd_prcpsrchlist.attribute("top") = 516;
  2025. ivw_prcp2.grd_opprcp.attribute("top") = 516;
  2026. }
  2027. grp_prcp.attribute("overflow") = "hidden";
  2028. imp_prcp.attribute("overflow") = "hidden";
  2029. grp_biz.attribute("overflow") = "hidden";
  2030. return;
  2031. }
  2032. else if( grp_prcp_top == 142 ){ //default (org-15)
  2033. if(btn_ivpatord.selected == true ){
  2034. ivw_prcp2.grd_prcpdd.attribute("height") = 552; //71,567px
  2035. ivw_prcp2.grd_bfprcplist.attribute("height") = 552; //71,567px
  2036. ivw_prcp2.grd_patchosinfo.attribute("height") = 552; //71,567px
  2037. }else if( btn_ivbfprcp.selected == true || ivw_prcp3.visible == true){
  2038. ivw_prcp3.grd_bfprcplist.attribute("height") = 552; //71,567px
  2039. ivw_prcp3.grd_bfprcplist.refresh();
  2040. }else if( btn_prmsprcp.selected == true ){
  2041. ivw_prcp2.trv_promprcpset.attribute("height") = 514; //121,529px
  2042. ivw_prcp2.grd_promprcplist.attribute("height") = 538; //97,553px
  2043. }else if( btn_prcpsrch.selected == true ){
  2044. ivw_prcp2.trv_prcpclscdlist.attribute("height") = 564; //58,579px => err
  2045. }else if( btn_prmsop.selected == true ){
  2046. ivw_prcp2.trv_deptindxcdlist.attribute("height") = 302; //89,302px
  2047. ivw_prcp2.trv_promprcpset.attribute("height") = 302; //89,302px
  2048. ivw_prcp2.grd_prmsoplist.attribute("height") = 326; //65,326px
  2049. ivw_prcp2.grd_promprcpset.attribute("height") = 326;
  2050. ivw_prcp2.grd_prcpsrchlist.attribute("top") = 417;
  2051. ivw_prcp2.grd_opprcp.attribute("top") = 417;
  2052. }
  2053. grp_prcp.attribute("overflow") = "hidden";
  2054. imp_prcp.attribute("overflow") = "hidden";
  2055. grp_biz.attribute("overflow") = "scroll";
  2056. return;
  2057. }
  2058. else if( grp_prcp_top == 446 ){ //142 (org-317-2)
  2059. if(btn_ivpatord.selected == true ){
  2060. ivw_prcp2.grd_prcpdd.attribute("height") = 248; //71,567px
  2061. ivw_prcp2.grd_bfprcplist.attribute("height") = 248; //71,567px
  2062. ivw_prcp2.grd_patchosinfo.attribute("height") = 248; //71,567px
  2063. }else if( btn_ivbfprcp.selected == true || ivw_prcp3.visible == true){
  2064. ivw_prcp3.grd_bfprcplist.attribute("height") = 248; //71,567px
  2065. ivw_prcp3.grd_bfprcplist.refresh();
  2066. }else if( btn_prmsprcp.selected == true ){
  2067. ivw_prcp2.trv_promprcpset.attribute("height") = 210; //121,529px
  2068. ivw_prcp2.grd_promprcplist.attribute("height") = 234; //97,553px
  2069. }else if( btn_prcpsrch.selected == true ){
  2070. ivw_prcp2.trv_prcpclscdlist.attribute("height") = 262; //58,579px
  2071. }else if( btn_prmsop.selected == true ){
  2072. ivw_prcp2.trv_deptindxcdlist.attribute("height") = 140;
  2073. ivw_prcp2.trv_promprcpset.attribute("height") = 140; //89,302px
  2074. ivw_prcp2.grd_prmsoplist.attribute("height") = 164; //65,326px
  2075. ivw_prcp2.grd_promprcpset.attribute("height") = 164;
  2076. ivw_prcp2.grd_prcpsrchlist.attribute("top") = 255;
  2077. ivw_prcp2.grd_opprcp.attribute("top") = 255;
  2078. ivw_prcp2.grd_prcpsrchlist.attribute("height") = 65;
  2079. ivw_prcp2.grd_opprcp.attribute("height") = 65;
  2080. }
  2081. grp_prcp.attribute("overflow") = "hidden";
  2082. imp_prcp.attribute("overflow") = "hidden";
  2083. grp_biz.attribute("overflow") = "hidden";
  2084. return;
  2085. }
  2086. }
  2087. /**
  2088. * @group :
  2089. * @ver : 2007.10
  2090. * @by : 전지은
  2091. * @---------------------------------------------------
  2092. * @type : function
  2093. * @access : public
  2094. * @desc : 화면 보이는 설정1
  2095. * @param :
  2096. * @return :
  2097. * @---------------------------------------------------
  2098. */
  2099. function fNomalViewMode(){
  2100. imp_prcp.attribute("top") = 0;
  2101. imp_prcp.attribute("height") = 766;
  2102. if ( btn_init.visible == false && btn_reinit.visible == false ){
  2103. grp_prcp.attribute("top") = 142;
  2104. grp_prcp.attribute("height") = 766;
  2105. //grp_prcp.attribute("height") = 760;
  2106. ivw_prcp2.attribute("top") = 142;
  2107. ivw_prcp2.attribute("height") = 623;
  2108. ivw_prcp3.attribute("top") = 142;
  2109. ivw_prcp3.attribute("height") = 623;
  2110. grd_prcplist.attribute("top") = 148;
  2111. grd_prcplist.attribute("height") = 617;
  2112. group2.attribute("height") = 784-5;
  2113. }
  2114. fResizeControls();
  2115. ivw_outline.attribute("top") = 142;
  2116. ivw_outline.attribute("height") = 766;
  2117. if( ivw_outline.src!= "" ){
  2118. ivw_outline.grp_swimline.attribute("height") = 764;
  2119. }
  2120. ivw_detail.attribute("top") = 142;
  2121. ivw_detail.attribute("height") = 766;
  2122. line8.attribute("y1") = 137;
  2123. line8.attribute("y2") = 137;
  2124. btn_calcqnt.attribute("top") = 117;
  2125. btn_outline_tab.attribute("top") = 115;
  2126. btn_detail_tab.attribute("top") = 115;
  2127. btn_action_tab.attribute("top") = 115;
  2128. btn_detail_popup.attribute("top") = 117;
  2129. btn_refresh.attribute("top") = 117;
  2130. btn_initcpgprcp.attribute("top") = 117;
  2131. cap_appscop.attribute("top") = 117;
  2132. cap_appscoplist.attribute("top") = 117;
  2133. btn_essprcpinfo.attribute("top") = 117;
  2134. btn_detail_popup.attribute("left") = 254;
  2135. btn_refresh.attribute("left") = 198;
  2136. btn_initcpgprcp.attribute("left") = 388;
  2137. cap_appscop.attribute("left") = 501;
  2138. cap_appscoplist.attribute("left") = 576;
  2139. btn_essprcpinfo.attribute("left") = 321;
  2140. swt_formatt.attribute("height") = 80;
  2141. att_tab.attribute("height") = 79;
  2142. incompletion_tab.attribute("height") = 79;
  2143. cap_formlist.attribute("height") = 75;
  2144. grd_formlist.attribute("height") = 77;
  2145. grd_attfile.attribute("height") = 77;
  2146. grd_inqr.attribute("height") = 77;
  2147. if( cpgflagcd == "01" ){
  2148. cap_attfile.attribute("height") = 56;
  2149. brn_download.attribute("top") = 58;
  2150. }else{
  2151. cap_attfile.attribute("height") = 75;
  2152. grd_monitoringlist.attribute("height") = 75;
  2153. grd_monitoringinfo.attribute("height") = 75;
  2154. }
  2155. //grd_errprcplist.attribute("height") = 77;
  2156. ivw_invalprcp.attribute("height") = 77;
  2157. if(ivw_invalprcp.src != "" ){
  2158. ivw_invalprcp.grd_prcplist.attribute("height") = 75;
  2159. }
  2160. if( btn_detail_tab.selected == true && parseInt(ivw_detail.rct_border.attribute("height")) != 737 ){
  2161. ivw_detail.window.javascript.fReSize("S"); //small
  2162. }
  2163. }
  2164. /**
  2165. * @group :
  2166. * @ver : 2007.10
  2167. * @by : 전지은
  2168. * @---------------------------------------------------
  2169. * @type : function
  2170. * @access : public
  2171. * @desc : 화면 보이는 설정2 (import창 사이즈 최대)
  2172. * @param :
  2173. * @return :
  2174. * @---------------------------------------------------
  2175. */
  2176. function fCase1ViewMode(){
  2177. btn_calcqnt.attribute("top") = 4;
  2178. grp_prcp.attribute("top") = 27;
  2179. grp_prcp.attribute("height") = 907; //910
  2180. imp_prcp.attribute("top") = 0;
  2181. imp_prcp.attribute("height") = 907;
  2182. if ( btn_init.visible == false && btn_reinit.visible == false ){
  2183. ivw_prcp2.attribute("top") = 142;
  2184. ivw_prcp2.attribute("height") = 741;
  2185. ivw_prcp3.attribute("top") = 142;
  2186. ivw_prcp3.attribute("height") = 741;
  2187. grd_prcplist.attribute("height") = 732;
  2188. group2.attribute("height") = 883; //★883
  2189. }
  2190. fResizeControls();
  2191. ivw_outline.attribute("top") = 27;
  2192. ivw_outline.attribute("height") = 880; //883-3
  2193. if( ivw_outline.src!= "" ){
  2194. ivw_outline.grp_swimline.attribute("height") = 881;
  2195. }
  2196. ivw_detail.attribute("top") = 27;
  2197. ivw_detail.attribute("height") = 880; //883-3
  2198. btn_outline_tab.attribute("top") = 4;
  2199. btn_detail_tab.attribute("top") = 4;
  2200. btn_action_tab.attribute("top") = 4;
  2201. btn_detail_popup.attribute("top") = 5;
  2202. btn_refresh.attribute("top") = 5;
  2203. btn_initcpgprcp.attribute("top") = 5;
  2204. cap_appscop.attribute("top") = 5;
  2205. cap_appscoplist.attribute("top") = 5;
  2206. btn_essprcpinfo.attribute("top") = 5;
  2207. if( cpgflagcd == "01" ){
  2208. btn_detail_popup.attribute("left") = 313;
  2209. btn_refresh.attribute("left") = 257;
  2210. }else{
  2211. btn_detail_popup.attribute("left") = 388;
  2212. btn_refresh.attribute("left") = 332;
  2213. }
  2214. btn_initcpgprcp.attribute("left") = 523;
  2215. cap_appscop.attribute("left") = 637;
  2216. cap_appscoplist.attribute("left") = 705;
  2217. btn_essprcpinfo.attribute("left") = 455;
  2218. if(ivw_invalprcp.src != "" ){
  2219. ivw_invalprcp.attribute("height") = 0;
  2220. ivw_invalprcp.grd_prcplist.attribute("height") = 0;
  2221. }
  2222. line8.attribute("y1") = 26;
  2223. line8.attribute("y2") = 26;
  2224. if( btn_detail_tab.selected == true && parseInt(ivw_detail.rct_border.attribute("height")) == 737 ){ //737
  2225. ivw_detail.window.javascript.fReSize("L"); //large
  2226. }
  2227. }
  2228. /**
  2229. * @group :
  2230. * @ver : 2007.10
  2231. * @by : 전지은
  2232. * @---------------------------------------------------
  2233. * @type : function
  2234. * @access : public
  2235. * @desc : 화면 보이는 설정3 (상단 그리드 영역 사이즈 최대)
  2236. * @param :
  2237. * @return :
  2238. * @---------------------------------------------------
  2239. */
  2240. function fCase2ViewMode(){
  2241. //grp_prcp.attribute("height") = 479;
  2242. grp_prcp.attribute("top") = 446;
  2243. grp_prcp.attribute("height") = 480;
  2244. imp_prcp.attribute("top") = 0;
  2245. imp_prcp.attribute("height") = 480; //766 2008.09.23
  2246. if ( btn_init.visible == false && btn_reinit.visible == false ){
  2247. ivw_prcp2.attribute("top") = 142;
  2248. ivw_prcp2.attribute("height") = 320;
  2249. ivw_prcp3.attribute("top") = 142;
  2250. ivw_prcp3.attribute("height") = 320;
  2251. if( btn_ivbfprcp.selected == true ){
  2252. ivw_prcp3.grd_bfprcplist.attribute("height") = 265;
  2253. }
  2254. grd_prcplist.attribute("top") = 148;
  2255. grd_prcplist.attribute("height") = 315;
  2256. group2.attribute("height") = 784-5;
  2257. }
  2258. fResizeControls();
  2259. ivw_outline.attribute("top") = 446;
  2260. ivw_outline.attribute("height") = 461; //합926.. -19
  2261. if( ivw_outline.src!= "" ){
  2262. ivw_outline.grp_swimline.attribute("height") = 764; //★487
  2263. }
  2264. ivw_detail.attribute("top") = 446;
  2265. ivw_detail.attribute("height") = 461;
  2266. line8.attribute("y1") = 441;
  2267. line8.attribute("y2") = 441;
  2268. btn_calcqnt.attribute("top") = 420;
  2269. btn_outline_tab.attribute("top") = 419;
  2270. btn_detail_tab.attribute("top") = 419;
  2271. btn_action_tab.attribute("top") = 419;
  2272. btn_detail_popup.attribute("top") = 420;
  2273. btn_refresh.attribute("top") = 420;
  2274. btn_initcpgprcp.attribute("top") = 420;
  2275. cap_appscop.attribute("top") = 420;
  2276. cap_appscoplist.attribute("top") = 420;
  2277. btn_essprcpinfo.attribute("top") = 420;
  2278. swt_formatt.attribute("height") = 380;
  2279. att_tab.attribute("height") = 379;
  2280. incompletion_tab.attribute("height") = 379;
  2281. cap_formlist.attribute("height") = 376;
  2282. grd_formlist.attribute("height") = 377;
  2283. grd_attfile.attribute("height") = 377;
  2284. grd_inqr.attribute("height") = 377;
  2285. if( cpgflagcd == "01" ){
  2286. cap_attfile.attribute("height") = 357;
  2287. brn_download.attribute("top") = 358;
  2288. }else{
  2289. cap_attfile.attribute("height") = 376;
  2290. grd_monitoringlist.attribute("height") =376;
  2291. grd_monitoringinfo.attribute("height") = 376;
  2292. }
  2293. //grd_errprcplist.attribute("height") = 377;
  2294. ivw_invalprcp.attribute("height") = 377;
  2295. if(ivw_invalprcp.src != "" ){
  2296. ivw_invalprcp.grd_prcplist.attribute("height") = 375;
  2297. }
  2298. }
  2299. /**
  2300. * @group :
  2301. * @ver : 2007.10
  2302. * @by : 전지은
  2303. * @---------------------------------------------------
  2304. * @type : function
  2305. * @access : public
  2306. * @desc : 환자계획표 전체 조회를 위해 필요한 값을 iviewer로 보낸다
  2307. * @param :
  2308. * @return :
  2309. * @---------------------------------------------------
  2310. */
  2311. function fSendDetailValue(){
  2312. var stepno = "";
  2313. var timesArray = "";
  2314. var setArray = "";
  2315. var prcpddArray = "";
  2316. var tms = "";
  2317. var prcpdd = "";
  2318. var aSettypecd = "";
  2319. var D0TmsYN = "N";
  2320. var ref = "/root/main/steppath/info"; //"/root/main/sortedsteplist/info";
  2321. var nodeList = instance1.selectNodes(ref);
  2322. var pNode = null;
  2323. var tNode = null;
  2324. //var t2Node = null;
  2325. var sNode = null;
  2326. var appCPYN = "N";
  2327. var ioflag = model.getValue("/root/main/masterinfo/info/ioflagcd");
  2328. var iAppStat = parseInt(model.getValue("/root/temp1/getdata/appstat"));
  2329. if( ioflag != "O" && cpgflagcd == "01" && (iAppStat == 10 || iAppStat >= 30) ){
  2330. var notActStepNodes = instance1.selectNodes("/root/main/steppath/info" + "[swimlineno = '1' and stepstat='10']"); //이미 적용 시 발행X 스텝
  2331. if( notActStepNodes.length > 0 ) appCPYN = "Y";
  2332. }
  2333. for(var i=1; i<=nodeList.length; i++){
  2334. stepno = model.getValue(ref + "[" + i + "]/stepno");
  2335. aSettypecd = model.getValue(ref + "[" + i + "]/settypecd");
  2336. pNode = instance1.selectSingleNode(ref + "[" + i + "]/prcpdd");
  2337. if( !isNull(pNode.text) && prcpdd != pNode.text && cpgflagcd == "01" ){ // D0=D1 처리 시-> && D0TmsYN == "N" (2009.04.09 test, baseapp에 블록킹 막음, getAppSetDetailInfo에 sstt.prcpdd as rpcpdd)
  2338. if( appCPYN == "N" || model.getValue(ref + "[" + i + "]/stepstat") != "10" ){
  2339. prcpddArray = prcpddArray + pNode.text + ",";
  2340. }else continue;
  2341. }
  2342. tNode = instance1.selectSingleNode(ref + "[" + i + "]/times");
  2343. /*t2Node = instance1.selectSingleNode(ref + "[" + i + "]/orgtimes");
  2344. if( !isNull(t2Node.text) && tms != t2Node.text && !isNull(pNode.text) ){ //중간타기 CP 기능 추가하면서 처방 나가지 않은 건너뛴 회차는 skip(2009.02.19)
  2345. timesArray = timesArray + t2Node.text + ",";
  2346. } else*/if( !isNull(tNode.text) && tms != tNode.text && !isNull(pNode.text) ){ //중간타기 CP 기능 추가하면서 처방 나가지 않은 건너뛴 회차는 skip(2009.02.19)
  2347. timesArray = timesArray + tNode.text + ",";
  2348. }
  2349. sNode = instance1.selectSingleNode(ref + "[" + i + "]/setno");
  2350. if( !isNull(sNode.text) && !isNull(pNode.text) ){ //중간타기 CP 기능 추가하면서 처방 나가지 않은 건너뛴 회차는 skip(2009.02.19)
  2351. setArray = setArray + sNode.text + ",";
  2352. }
  2353. if( !isNull(pNode.text) ) prcpdd = pNode.text;
  2354. /*if( !isNull(t2Node.text) && !isNull(pNode.text) ) tms = t2Node.text;
  2355. else*/if( !isNull(tNode.text) && !isNull(pNode.text) ) tms = tNode.text;
  2356. }
  2357. if( cpgflagcd == "02" ){
  2358. var today = getCurrentDate();
  2359. var aPrcpDD = model.getValue("/root/temp1/getdata/appdd");
  2360. var aPrcpddArray = prcpddArray.split(",");
  2361. //var fstPrcpdd = "";
  2362. //if( aPrcpddArray.length > 0 ) fstPrcpdd = aPrcpddArray[0];
  2363. var appendYN = "Y";
  2364. while( aPrcpDD <= today ){
  2365. appendYN = "Y";
  2366. for(var i=0; i<aPrcpddArray.length; i++){
  2367. if(aPrcpddArray[i] == aPrcpDD){
  2368. appendYN = "N";
  2369. }
  2370. }
  2371. if( appendYN == "N" ) continue;
  2372. /*if( !isNull(fstPrcpdd) && fstPrcpdd > aPrcpDD ){
  2373. prcpddArray = aPrcpDD + "," + prcpddArray;
  2374. }
  2375. else*/prcpddArray = prcpddArray + aPrcpDD + ",";
  2376. aPrcpDD = aPrcpDD.toDate().getAddDate(1,"D").getDateFormat();
  2377. }
  2378. }
  2379. //timesArray = timesArray.getTrimRight();
  2380. timesArray = timesArray.substr(0, timesArray.length-1);
  2381. setArray = setArray.substr(0, setArray.length-1);
  2382. prcpddArray = prcpddArray.substr(0, prcpddArray.length-1);
  2383. cpgno = model.getValue("/root/main/masterinfo/info/cpgno");
  2384. cpghistseq = model.getValue("/root/main/masterinfo/info/cpghistseq");
  2385. var cpgappno = model.getValue("/root/temp1/getdata/cpgappno");
  2386. //child에서 호출하기때문에, opener의 전역변수를 사용 못함??
  2387. var prcpgenrflag = model.getValue("/root/temp1/getdata/cpgappno");
  2388. var pid = model.getValue("/root/paminfo/list/pid");
  2389. var cretno = model.getValue("/root/paminfo/list/cretno");
  2390. if( prcpgenrflag == "O" ){
  2391. var orddd = model.getValue("/root/paminfo/list/orddd");
  2392. }else{
  2393. var orddd = model.getValue("/root/paminfo/list/indd");
  2394. }
  2395. var pamInfo = pid + "," + orddd + "," + cretno + "," + prcpgenrflag;
  2396. var returnText = cpgno + "|" + cpghistseq + "|" + settypecd + "|" + timesArray + "|" + "GPS" + "|" + cpgappno + "|" + setArray + "|" + prcpddArray + "|" + pamInfo;
  2397. setParameter("stepinfo", returnText);
  2398. }
  2399. /**
  2400. * @group :
  2401. * @ver : 2008.01
  2402. * @by : 전지은
  2403. * @---------------------------------------------------
  2404. * @type : function
  2405. * @access : public
  2406. * @desc : 기록지 navigate
  2407. * @param :
  2408. * @return :
  2409. * @---------------------------------------------------
  2410. */
  2411. function fOpenRecMainWnd(){
  2412. var mainObj = getMainViewer();
  2413. //var scrnID = mainObj.javascript.getScreenID();
  2414. mainObj.javascript.navigate("SMMMR00100");
  2415. }
  2416. /**
  2417. * @group :
  2418. * @ver : 2008.01
  2419. * @by : 전지은
  2420. * @---------------------------------------------------
  2421. * @type : function
  2422. * @access : public
  2423. * @desc : 탭 선택시, 해당 화면 재조회 여부를 결정한다.
  2424. * @param :
  2425. * @return :
  2426. * @---------------------------------------------------
  2427. */
  2428. function tab_refresh( flag ){
  2429. if( flag != "src" ){
  2430. flag = "ctl";
  2431. }
  2432. if(imp_prcp.visible == true){
  2433. model.setValue("/root/temp1/refresh_obj/change_ocs", "N");
  2434. if( btn_ivbfprcp.selected == true ){
  2435. btn_ivbfprcp.dispatch("onclick"); //전처방 조회
  2436. //ivw_prcp2.btn_bfprcpsrch.dispatch("DOMActivate");
  2437. }else if( btn_ivpatord.selected == true ){
  2438. btn_ivpatord.dispatch("DOMActivate"); //진료내역 조회
  2439. }
  2440. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  2441. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  2442. }else if(ivw_detail.visible == true){
  2443. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  2444. btn_detail_tab.dispatch("DOMActivate"); //환자계획표 다시 조회
  2445. model.setValue("/root/temp1/refresh_obj/change_ocs", "Y");
  2446. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  2447. }else{
  2448. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  2449. btn_outline_tab.dispatch("DOMActivate"); //바로 아웃라인을 재조회하는 func 호출!
  2450. model.setValue("/root/temp1/refresh_obj/change_ocs", "Y");
  2451. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  2452. }
  2453. if( flag == "src" ){
  2454. model.setValue("/root/temp1/refresh_obj/change_ocs", "Y");
  2455. }
  2456. }
  2457. /**
  2458. * @group :
  2459. * @ver : 2007.09
  2460. * @by : 전지은
  2461. * @---------------------------------------------------
  2462. * @type : function
  2463. * @access : public
  2464. * @desc : 환자의 세션 정보를 setting
  2465. * @param : viwFlag (저장주체화면 1:main, 2:미완성처방 iviewer)
  2466. * @return : true, false
  2467. * @---------------------------------------------------
  2468. */
  2469. function fRemoveSaveNodeList( viwFlag ){
  2470. if( viwFlag == 1 ){
  2471. model.removeNodeset("/root/result");
  2472. model.makeNode("/root/result");
  2473. model.removeNodeset("/root/send/errprcplist");
  2474. model.removeNodeset("/root/send/saveinvaliprcplist");
  2475. model.removeNodeset( "/root/send/reqdata" );
  2476. model.removeNodeset("/root/result_copy");
  2477. model.makeNode("/root/result_copy");
  2478. //clearParameter("SMMMP00800_popupYN");
  2479. model.removeNodeset("/root/result/prcperrlist");
  2480. model.removeNodeset("/root/send/cond2");
  2481. model.makeNode("/root/send/cond2");
  2482. model.removeNodeset("/root/send/dessprcplist"); //선택필수저장 정보 reset
  2483. model.removeNodeset("/root/send/pessprcplist"); //스텝필수저장 정보 reset
  2484. //저장 후, 인스턴스 셋팅... 전처방 조회 시 send 값임....
  2485. var today = getCurrentDate();
  2486. var orddrid = model.getValue ( "/root/paminfo/list/orddrid" );
  2487. model.makeValue ( "/root/send/cond1", iPid); //환자ID
  2488. model.makeValue ( "/root/send/cond2", iOrddd ); //외래:진료일, 입원:입원일
  2489. model.makeValue ( "/root/send/cond3", "0" ); //처방권한 구분
  2490. model.makeValue ( "/root/send/cond4", today ); //처방일자
  2491. model.makeValue ( "/root/send/cond5", "" ); //전처방 where 조건 구분자
  2492. model.makeValue ( "/root/send/cond6", "" ); //최초구분
  2493. model.makeValue ( "/root/send/cond7", orddrid); //의사ID,외래에서만 필요하다.
  2494. model.makeValue ( "/root/send/cond8", today); //todd
  2495. model.makeValue ( "/root/send/cond9", iPrcpgenrflag ); //외래입원구분
  2496. model.makeValue ( "/root/send/cond10", iOrddeptcd ); //부서코드
  2497. model.makeValue ( "/root/send/cond11", iCretno ); //생성번호
  2498. model.makeValue( "/root/send/cond14", getCurrentDate() );
  2499. curSavePrcpFlag_SMMMO00110 = "";
  2500. cpTmpPrcpSaveYN_SMMMO00110 = "";
  2501. if( ivw_outline.src!= "" ){
  2502. ivw_outline.model.setValue("/root/temp/startstepno", ""); //적용 전 시작.종료 설정했던 정보 reset 2008.12.15
  2503. ivw_outline.model.setValue("/root/temp/endstepno", ""); //적용 전 시작.종료 설정했던 정보 reset 2008.12.15
  2504. }
  2505. }else{
  2506. ivw_invalprcp.model.removeNodeset("/root/result");
  2507. ivw_invalprcp.model.makeNode("/root/result");
  2508. ivw_invalprcp.model.removeNodeset("/root/send/errprcplist");
  2509. ivw_invalprcp.model.removeNodeset("/root/send/saveinvaliprcplist");
  2510. ivw_invalprcp.model.removeNodeset( "/root/send/reqdata" );
  2511. ivw_invalprcp.model.removeNodeset("/root/result_copy");
  2512. ivw_invalprcp.model.makeNode("/root/result_copy");
  2513. //clearParameter("SMMMP00800_popupYN");
  2514. ivw_invalprcp.model.removeNodeset("/root/result/prcperrlist");
  2515. ivw_invalprcp.model.removeNodeset("/root/send/cond2");
  2516. ivw_invalprcp.model.makeNode("/root/send/cond2");
  2517. ivw_invalprcp.model.removeNodeset("/root/send/dessprcplist"); //선택필수저장 정보 reset
  2518. ivw_invalprcp.model.removeNodeset("/root/send/pessprcplist"); //스텝필수저장 정보 reset
  2519. /*
  2520. //저장 후, 인스턴스 셋팅... 전처방 조회 시 send 값임....
  2521. var today = getCurrentDate();
  2522. var orddrid = model.getValue ( "/root/paminfo/list/orddrid" );
  2523. ivw_invalprcp.model.makeValue ( "/root/send/cond1", iPid); //환자ID
  2524. ivw_invalprcp.model.makeValue ( "/root/send/cond2", iOrddd ); //외래:진료일, 입원:입원일
  2525. ivw_invalprcp.model.makeValue ( "/root/send/cond3", "0" ); //처방권한 구분
  2526. ivw_invalprcp.model.makeValue ( "/root/send/cond4", today ); //처방일자
  2527. ivw_invalprcp.model.makeValue ( "/root/send/cond5", "" ); //전처방 where 조건 구분자
  2528. ivw_invalprcp.model.makeValue ( "/root/send/cond6", "" ); //최초구분
  2529. ivw_invalprcp.model.makeValue ( "/root/send/cond7", orddrid); //의사ID,외래에서만 필요하다.
  2530. ivw_invalprcp.model.makeValue ( "/root/send/cond8", today); //todd
  2531. ivw_invalprcp.model.makeValue ( "/root/send/cond9", iPrcpgenrflag ); //외래입원구분
  2532. ivw_invalprcp.model.makeValue ( "/root/send/cond10", iOrddeptcd ); //부서코드
  2533. ivw_invalprcp.model.makeValue ( "/root/send/cond11", iCretno ); //생성번호
  2534. ivw_invalprcp.model.makeValue( "/root/send/cond14", getCurrentDate() );
  2535. //curSavePrcpFlag_SMMMO00110 = "";
  2536. //cpTmpPrcpSaveYN_SMMMO00110 = "";
  2537. */
  2538. }
  2539. if( cpgflagcd == "02" ){
  2540. clearParameter("SPMMP00200_popupYN");
  2541. }
  2542. }
  2543. /**
  2544. * @group :
  2545. * @ver : 2007.11
  2546. * @by : 전지은
  2547. * @---------------------------------------------------
  2548. * @type : function
  2549. * @access : public
  2550. * @desc : 미완성 처방을 처리하여 저장한다.
  2551. * @param :
  2552. * @return :
  2553. * @---------------------------------------------------
  2554. */
  2555. function fTretInvalPrcp(){
  2556. if( grd_errprcplist.mouseCol==1 && grd_errprcplist.mouseRow>0 && grd_errprcplist.mouseRow<=grd_errprcplist.rows ){
  2557. //appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" );
  2558. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/temp1/tmpprcplist", "main" );
  2559. grd_prcplist.nodeset = "/root/temp1/tmpprcplist/prcplist"; //처방 func 활용으로 인해 그리드 인스턴스가 사용되기 때문에
  2560. model.refresh(); //처방그리드에 데이터가 조회됐다 사라지는 현상 방지를 위한 작업..
  2561. var prcpName = model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/prcpnm");
  2562. var drugmastspec = model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/drugmastspec"); //약품정보
  2563. grd_prcplist.select(1, 1) = true; //첫번째 열 선택
  2564. var org_prcp = instance1.selectSingleNode("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]").xml; //처리 전 선택했던 처방 xml
  2565. var iErrFlag = model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/errtretflag");
  2566. if( iErrFlag == "1" && model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn") == "미완"){
  2567. //용량분할,저함량 (1)
  2568. model.makeNode("/root/result/prcplist");
  2569. model.removeNodeset("/root/main/prcp/prcplist");
  2570. copyNodeListType("/root/result", "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "replace", model, model);
  2571. copyNodeListType("/root/main/prcp", "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "replace", model, model);
  2572. var descNode = instance1.selectSingleNode("/root/result/saveinvaliprcplist");
  2573. descNode.nodeName = "prcplist";
  2574. var prcpNode = instance1.selectSingleNode("/root/main/prcp/saveinvaliprcplist");
  2575. prcpNode.nodeName = "prcplist";
  2576. model.setValue("/root/result/prcplist/tempcol11", "N");
  2577. submit("TRMMP00809"); //용량분할하여 결과를 가져온다
  2578. // /root/main/prcp/prcplist
  2579. if ( !isNull(model.getValue ( "/root/result/prcplist/prcpcd"))){
  2580. xpt = window.screenleft + 100;
  2581. ypt = window.screenTop + 50;
  2582. coord = getRelativeCoordinate ( xpt, ypt );
  2583. mon = coord[0];
  2584. xpt = coord[1];
  2585. ypt = coord[2];
  2586. modal ( "SPADB62400", mon, xpt, ypt, "SPADB62400", "/root/result", "/root/main/prcp", "", false ); //오류팝업
  2587. model.refresh();
  2588. model.recalculate();
  2589. fClearSaveInstance();
  2590. if( instance1.selectSingleNode( "/root/main/prcp/prcplist[tempcol11 != '']" ) != null ) {
  2591. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "U");
  2592. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn", "완성");
  2593. grd_errprcplist.rowStatus(grd_errprcplist.row) = 2;
  2594. model.removenode("/root/temp1/tmpprcplist/saveinvaliprcplist");
  2595. for (var i=grd_errprcplist.rows-1; i>grd_errprcplist.row; i--){
  2596. copyNodeListType( "/root/temp1/tmpprcplist", "/root/main/invalprcplist/saveinvaliprcplist["+ i +"]", "after", model, model ); //(1)
  2597. model.removenode("/root/main/invalprcplist/saveinvaliprcplist["+ i +"]");
  2598. }
  2599. model.removenode("/root/main/prcp/prcplist[1]");
  2600. //var divNode = instance1.selectNodes("/root/main/prcp/prcplist[tempcol ! ='']");
  2601. var divNodeList = instance1.selectNodes("/root/main/prcp/prcplist");
  2602. for (var i=0; i<divNodeList.length; i++){
  2603. var divNode = divNodeList.item(i);
  2604. divNode.nodeName = "saveinvaliprcplist";
  2605. model.setValue( "/root/main/prcp/saveinvaliprcplist["+(i+1)+"]/status", "I");
  2606. model.setValue( "/root/main/prcp/saveinvaliprcplist["+(i+1)+"]/valyn", "완성");
  2607. }
  2608. copyNodeListType( "/root/main/invalprcplist", "/root/main/prcp/saveinvaliprcplist", "after", model, model ); //(1)
  2609. for(var i=grd_errprcplist.row+1; i<grd_errprcplist.rows; i++){
  2610. grd_errprcplist.rowStatus(i) = 1;
  2611. }
  2612. if( instance1.selectSingleNode("/root/temp1/tmpprcplist/saveinvaliprcplist/prcpcd") != null ){
  2613. copyNodeListType( "/root/main/invalprcplist", "/root/temp1/tmpprcplist/saveinvaliprcplist", "after", model, model ); //(1)
  2614. }
  2615. grd_errprcplist.refresh();
  2616. changeStatusYN = "Y";
  2617. }
  2618. }
  2619. }
  2620. else if( iErrFlag == "8" && model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/prcpclscd") == "H2" ){
  2621. //수술예약리스트 팝업 (8)
  2622. modal("SPMMP02800", 1, 0, 0, "SPMMP02800", "/root/paminfo/list", "/root/send/pamdata" );
  2623. if( model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status") == "U" ){
  2624. changeStatusYN = "Y";
  2625. }
  2626. }
  2627. else if( iErrFlag == "9" && model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/prcpkindcd") == "70" ){
  2628. //미래일자에 퇴원후외래처방 - 외래예약 처리 (9)
  2629. }
  2630. /*
  2631. else if( model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/errtretflag") == "2" && model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn") == "미완"){
  2632. //병리의뢰지 팝업
  2633. var reqNodeList = instance1.selectNodes("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]");
  2634. var reqCSV = getNodeListCSV(reqNodeList);
  2635. //setCSVToNode("/root/main/prcp", reqCSV, "prcplist");
  2636. srcNode = "/root/main/invalprcplist/saveinvaliprcplist["+grd_errprcplist.row+"]";
  2637. var curRow = grd_errprcplist.row;
  2638. fReqfrm ( curRow, "copy", srcNode );
  2639. var testreqlnkno = model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + curRow + "]/testreqlnkno");
  2640. //alert( testreqlnkno );
  2641. if( parseInt(testreqlnkno) > 0 ){
  2642. grd_errprcplist.rowStatus(grd_errprcplist.row) = 2;
  2643. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "U");
  2644. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn", "완성");
  2645. grd_errprcplist.refresh();
  2646. changeStatusYN = "Y";
  2647. }
  2648. }
  2649. else if( model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/errtretflag") == "3" && model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn") == "미완"
  2650. && getArrayData ( drugmastspec + "^", 0, 16, "^", "|" ) == "Y" ){
  2651. //제한항생제 승인신청서 팝업
  2652. //fAppendSaveNode( "/root/result/savedrprcplist", "/root/result/savedrprcplist["+(i+1)+"]" );
  2653. model.removeNodeset("/root/send/cond1");
  2654. model.removeNodeset("/root/send/cond2");
  2655. model.removeNodeset("/root/send/cond3");
  2656. model.removeNodeset("/root/result/savedrprcplist");
  2657. model.makeNode("/root/send/cond1");
  2658. model.makeNode("/root/send/cond2");
  2659. model.makeNode("/root/send/cond3");
  2660. var prcpGenrFlag = model.getValue("/root/patflag/list/prcpgenrflag");
  2661. var prcpdd = model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/prcpdd")
  2662. model.setValue("/root/send/cond1", "saveflag▦prcpdd▩" + prcpGenrFlag + "▦"+ prcpdd + "▩");
  2663. var pid = model.getValue("/root/paminfo/list/pid");
  2664. if(prcpGenrFlag == "O"){
  2665. var orddd = model.getValue("/root/paminfo/list/orddd");
  2666. model.setValue("/root/send/cond2", "pid▦orddd▩" + pid + "▦"+ orddd + "▩");
  2667. }else{
  2668. var indd = model.getValue("/root/paminfo/list/indd");
  2669. model.setValue("/root/send/cond2", "pid▦indd▩" + pid + "▦"+ indd + "▩");
  2670. }
  2671. //var antiNodeList = instance1.selectNodes(orgprcpnm);
  2672. var prcpNode = "/root/main/invalprcplist/saveinvaliprcplist"; //신청서 미작성시, 바로 삭제하므로, 미완성처방 인스턴스로 설정
  2673. var antiNodeList = instance1.selectNodes("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]");
  2674. var antiCSV = getNodeListCSV(antiNodeList);
  2675. setCSVToNode("/root/send/cond3", antiCSV, "prcplist");
  2676. setCSVToNode("/root/result", antiCSV, "savedrprcplist");
  2677. var prcpCSV = getNodeListCSV(antiNodeList);
  2678. model.setValue("/root/result/savedrprcplist/prcpno", model.getValue("/root/result/savedrprcplist/prtlprcpno")); //프로콜처방번호를 prcpno로 임시저장 (배치로 실처방 전환 시, prcpno Update)
  2679. model.removenode("/root/send/cond3/prcplist/valyn");
  2680. model.setValue("/root/send/cond3/prcplist/status", "I");
  2681. model.makeValue("/root/send/cond3/prcplist/tempcol5", "1");
  2682. model.makeValue("/root/send/cond3/prcplist/orgprcpnm", model.getValue("/root/send/cond3/prcplist/prcpnm"));
  2683. model.makeNode("/root/send/cond3/prcplist["+2+"]/status");
  2684. var cp_comp = "Y";
  2685. model.makeValue("/root/cpcmp", "Y");
  2686. copyNodeListType("/root/main/prcp", "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "replace", model, model);
  2687. var prcpNode = instance1.selectSingleNode("/root/main/prcp/saveinvaliprcplist");
  2688. prcpNode.nodeName = "prcplist";
  2689. if ( fAntiBioticsChk() ) {
  2690. //model.removeNodeset("/root/send/cond3/prcplist");
  2691. //model.makeNode("/root/send/cond3");
  2692. //copyNodeListType("/root/send/cond3", "/root/result/savedrprcplist", "replace", model, model);
  2693. //다시 미완성처방 인스턴스로 옮긴다.
  2694. //model.setValue("/root/main/prcp/prcplist[" + 1 + "]/status", "U"); //인증저장은 처음 insert 이므로(But, 프로토콜처방은 update)
  2695. //model.setValue("/root/main/prcp/prcplist[" + 1 + "]/prcpnm", prcpName); // ★ 왜 처방명이 사라지는지 모르겠다...!!
  2696. model.copyNode( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "/root/result/savedrprcplist[" + 1 + "]" );
  2697. if( instance1.selectSingleNode("/root/main/prcp/prcplist[1]") == null ){
  2698. grd_errprcplist.rowStatus(grd_errprcplist.row) = 4;
  2699. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "D" );
  2700. }else{
  2701. grd_errprcplist.rowStatus(grd_errprcplist.row) = 2;
  2702. if( !isNull(model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/tempcol6")) || !isNull(model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/tempcol7")) ) {
  2703. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "D");
  2704. //model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/testreqlnkno", "완성");
  2705. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn", "완성");
  2706. grd_errprcplist.refresh();
  2707. changeStatusYN = "Y";
  2708. }
  2709. }
  2710. }
  2711. model.removenode("/root/cpcmp");
  2712. model.removeNodeset("/root/send/cond1");
  2713. model.removeNodeset("/root/send/cond2");
  2714. model.removeNodeset("/root/send/cond3");
  2715. model.makeNode("/root/send/cond1");
  2716. model.makeNode("/root/send/cond2");
  2717. model.makeNode("/root/send/cond3");
  2718. model.removeNodeset("/root/result/savedrprcplist");
  2719. }
  2720. else if(model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/errtretflag") == "4" && model.getValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/valyn") == "미완"){
  2721. //보험제한 처방
  2722. copyNodeListType("/root/main/prcpsrch", "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "replace", model, model);
  2723. var prcpNode = instance1.selectSingleNode("/root/main/prcpsrch/saveinvaliprcplist");
  2724. prcpNode.nodeName = "prcplist";
  2725. //model.makeNode("/root/result/limprcplist");
  2726. //copyNodeListType("/root/result", "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "replace", model, model);
  2727. copyNodeListType("/root/main/prcp", "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "replace", model, model);
  2728. //var descNode = instance1.selectSingleNode("/root/result/saveinvaliprcplist");
  2729. //descNode.nodeName = "limprcplist";
  2730. var prcpNode = instance1.selectSingleNode("/root/main/prcp/saveinvaliprcplist");
  2731. prcpNode.nodeName = "prcplist";
  2732. model.setValue("/root/main/prcpsrch/prcplist/status", "I");
  2733. //grd_prcplist.select(1, 1) = true; //첫번째 열 선택
  2734. //fPrcpDCSave_CP( "6" , 1 ); //보험제한처방 결과를 받아와야 함...
  2735. fBatSaveCpPrtlPrcp( "M", "6", cpgflagcd, 1);
  2736. var limprcplist = model.instance1.selectNodes( "/root/result/limprcplist" ); // 보험제한처방
  2737. if ( limprcplist.length > 0 ) {
  2738. if ( !isNull(model.getValue ( "/root/result/limprcplist/calcscorcd"))){
  2739. xpt = window.screenleft + 100;
  2740. ypt = window.screenTop + 50;
  2741. coord = getRelativeCoordinate ( xpt, ypt );
  2742. mon = coord[0];
  2743. xpt = coord[1];
  2744. ypt = coord[2];
  2745. var rowid = 0;
  2746. for ( var k=1; k <= limprcplist.length; k++ ){
  2747. rowid = eval(model.getValue ( "/root/result/limprcplist[" + k + "]/rowid" ));
  2748. var displayprcpnm = rowid + ". " + model.getValue ( "/root/result/limprcplist[" + k + "]/calcscorcd" ) + "\n" + "[" + model.getValue ( "/root/result/limprcplist[" + k + "]/prcpnm") + "]";
  2749. model.setValue ( "/root/result/limprcplist[" + k + "]/displayprcpnm", displayprcpnm );
  2750. }
  2751. prcpNode = instance1.selectSingleNode("/root/main/prcp/saveinvaliprcplist");
  2752. modal ( "SPMMO00900", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false );
  2753. model.removeNodeset("/root/result/limprcplist");
  2754. if ( getParameter ( "SPMMO00900_rtnyn" ) == "Y" ) {
  2755. clearParameter ( "SPMMO00900_rtnyn" );
  2756. if( instance1.selectSingleNode("/root/main/prcp/prcplist[1]") == null ){
  2757. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "D" );
  2758. }else{
  2759. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", model.getValue("/root/main/prcp/prcplist[" + 1 + "]/status") );
  2760. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/tempcol4", model.getValue("/root/main/prcp/prcplist[" + 1 + "]/tempcol4") );
  2761. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/tempcol5", model.getValue("/root/main/prcp/prcplist[" + 1 + "]/tempcol5") );
  2762. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/tempcol6", model.getValue("/root/main/prcp/prcplist[" + 1 + "]/tempco6") );
  2763. model.setValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/payflagcd", model.getValue("/root/main/prcp/prcplist[" + 1 + "]/payflagcd") );
  2764. }
  2765. //grd_errprcplist.rowStatus(grd_errprcplist.row) = 2;
  2766. changeStatusYN = "Y";
  2767. } else if ( getParameter ( "SPMMO00900_rtnyn" ) == "C" ) {
  2768. return false;
  2769. } else {
  2770. return false;
  2771. }
  2772. }
  2773. } // 보험제한처방끝
  2774. }
  2775. */
  2776. if( changeStatusYN == "Y" ){
  2777. //그리드 refresh로 인해 rowstatus 초기화. 미완성처방 리스트의 데이터가 변경된 경우, status 값에 따라, rowStatus를 다시 설정해준다
  2778. var grd_errprcpCtrl = document.controls( "grd_errprcplist" );
  2779. fReSetRowStatus(grd_errprcpCtrl, "/root/main/invalprcplist/saveinvaliprcplist");
  2780. changeStatusYN = "N";
  2781. return true;
  2782. }else{
  2783. return false;
  2784. }
  2785. /*
  2786. model.removeNodeset("/root/main/prcp/prcplist");
  2787. model.removeNodeset("/root/temp1/tmpprcplist/prcplist");
  2788. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  2789. grd_prcplist.nodeset = "/root/main/prcp/prcplist"; // /root/temp1/tmpprcplist/prcplist
  2790. model.recalculate();
  2791. */
  2792. }
  2793. }
  2794. /**
  2795. * @group :
  2796. * @ver : 2007.11
  2797. * @by : 전지은
  2798. * @---------------------------------------------------
  2799. * @type : function
  2800. * @access : public
  2801. * @desc : prcppkspec 에서 prtlprcpno 를 return 한다
  2802. * @param :
  2803. * @return :
  2804. * @---------------------------------------------------
  2805. */
  2806. function fReSetRowStatus(gridCtrl, src){
  2807. for( var i=1; i<gridCtrl.rows; i++ ){
  2808. if( model.getValue( src + "[" + i + "]/status") == "I" ){
  2809. gridCtrl.rowstatus(i) = 1;
  2810. }if( model.getValue( src + "[" + i + "]/status") == "U" ){
  2811. gridCtrl.rowstatus(i) = 2;
  2812. }if( model.getValue( src + "[" + i + "]/status") == "D" ){
  2813. gridCtrl.rowstatus(i) = 4;
  2814. }
  2815. }
  2816. }
  2817. /**
  2818. * @group :
  2819. * @ver : 2008.07
  2820. * @by : 전지은
  2821. * @---------------------------------------------------
  2822. * @type : function
  2823. * @access : public
  2824. * @desc : CP를 취소한다
  2825. * @param :
  2826. * @return :
  2827. * @---------------------------------------------------
  2828. */
  2829. function fCnclApp(){
  2830. model.removeNodeset("/root/send/savedata");
  2831. model.makeValue("/root/send/savedata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  2832. model.makeValue("/root/send/savedata/cpgno", model.getValue("/root/main/masterinfo/info/cpgno"));
  2833. model.makeValue("/root/send/savedata/cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq"));
  2834. model.makeValue("/root/send/savedata/appstat", "41");
  2835. model.makeValue("/root/send/savedata/m", "u");
  2836. if( submit("TXMMP00801", false) ){ //himed.his.emr.prcpbaseapp.cpmngt.CpMngt reqExeCPGAppPatInfo
  2837. model.setValue("/root/temp1/getdata/appstat", "41");
  2838. //CPG인 경우 창 닫기 전에, 상단에 평가 아이콘 설정을 위해 CPG 평가명 말고, 다른 평가명이 있는지 조회
  2839. if(cpgflagcd == "02" ){
  2840. model.makeNode("/root/send/valudata"); //req
  2841. model.makeNode("/root/main/valuinfo"); //get, valulist
  2842. model.makeValue("/root/main/valuinfo/pid", iPid);
  2843. model.makeValue("/root/main/valuinfo/orddd", iOrddd);
  2844. model.makeValue("/root/main/valuinfo/cretno", iCretno);
  2845. submit("TRMMP03501", false);
  2846. model.removeNodeset("/root/send/valudata");
  2847. }
  2848. fOpenPrcpWindow();
  2849. return true;
  2850. }
  2851. }
  2852. /**
  2853. * @group :
  2854. * @ver : 2008.07
  2855. * @by : 전지은
  2856. * @---------------------------------------------------
  2857. * @type : function
  2858. * @access : public
  2859. * @desc : CP를 Drop한다
  2860. * @param : msg
  2861. * @return :
  2862. * @---------------------------------------------------
  2863. */
  2864. function fDropApp( msg ){
  2865. //btn_drop.dispatch("DOMActivate")
  2866. if( isNull(msg) ){
  2867. rtnVal = 6;
  2868. }else{
  2869. var rtnVal = messageBox ( msg, "S001" );
  2870. }
  2871. if( rtnVal == 6 ){
  2872. //setParameter("cpgappno", appNo_SMMMO00110);
  2873. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno")); // 2008.08.31 pymi appNo_SMMMO00110에 값을 받지 못하는 문제때문에 임시 처리함
  2874. setParameter("cpgno", model.getValue("/root/main/masterinfo/info/cpgno")); //2008.07.01 LWS
  2875. setParameter("cpghistseq", model.getValue("/root/main/masterinfo/info/cpghistseq")); //2008.07.01 LWS
  2876. var mainObj = getMainViewer();
  2877. //mainObj.window.javascript.modal("SPMMP02300");
  2878. //CP는 Drop창, CPG는 문진창
  2879. if(cpgflagcd == "01" ){
  2880. modal("SPMMP02300"); //himed.his.emr.prcpmngtapp.cpprcpmngt.CPPrcpMngt reqExeValuDropExclu
  2881. fOpenPrcpWindow();
  2882. }
  2883. else{
  2884. setParameter("SMMMO034_pntmflag", "2"); //M0515 1:퇴원예고, 2:CPG종료, 3:특정스텝종료
  2885. btn_inqr.dispatch("DOMActivate"); //CPG면 문진팝업 호출 (2010.04.16 JJE)
  2886. fCnclApp();
  2887. }
  2888. }
  2889. }
  2890. /**
  2891. * @group :
  2892. * @ver : 2008.08
  2893. * @by : 전지은
  2894. * @---------------------------------------------------
  2895. * @type : function
  2896. * @access : public
  2897. * @desc : 메세지 박스를 모달로 연다
  2898. * @param : msg, msgkind
  2899. * @return : rtn
  2900. * @---------------------------------------------------
  2901. */
  2902. function fOpenMsgBox( msg, msgkind ){
  2903. var mon = getCurrentMonitorNumber();
  2904. var monSize = getMonitorSize(mon);
  2905. var xpt = parseInt(monSize[0])/2 - 155;
  2906. var ypt = monSize[1]/2 - 50;
  2907. setParameter("SMMMP00800_msg", msg);
  2908. setParameter("SMMMP00800_msgkind", msgkind);
  2909. modal("SPMMP00700", mon, xpt, ypt);
  2910. var rtn = getParameter("SPMMP00700_msgkind");
  2911. clearParameter( "SPMMP00700_msgkind" );
  2912. return rtn;
  2913. }
  2914. /**
  2915. * @group :
  2916. * @ver : 2008.08
  2917. * @by : 전지은
  2918. * @---------------------------------------------------
  2919. * @type : function
  2920. * @access : public
  2921. * @desc : 미완성처방 팝업에서 처방 저장 후, 처리
  2922. * @param :
  2923. * @return :
  2924. * @---------------------------------------------------
  2925. */
  2926. function fAfterInvalPrcpSave(){
  2927. clickBtnNm_SMMMO00110 = "";
  2928. model.makeValue("/root/temp1/getdata/srchcond", "2"); //조회조건 1:로딩 및 재조회, 2:적용 후 재조회, 3:퇴원예고시 문진조회 (20090.5.19 JJE)
  2929. submit("TRMMP00803", false); //steppath 조회
  2930. if( instance1.selectSingleNode("/root/main/steppath/appinfo/appstat") != null ){
  2931. model.makeValue( "/root/temp1/getdata/appstat", model.getValue("/root/main/steppath/appinfo/appstat") );
  2932. appStat = model.getValue("/root/main/steppath/appinfo/appstat");
  2933. model.removeNodeset("/root/main/steppath/appinfo");
  2934. model.removeNodeset("/root/send/srchcond");
  2935. model.removeNodeset("/root/send/steplist");
  2936. model.removeNodeset("/root/send/delprcplist");
  2937. fRemoveSaveNodeList( 1 );
  2938. }
  2939. tab_refresh();
  2940. }
  2941. /**
  2942. * @group :
  2943. * @ver : 2008.089
  2944. * @by : 전지은
  2945. * @---------------------------------------------------
  2946. * @type : function
  2947. * @access : public
  2948. * @desc : 진료대상자리스트의 CP여부, 상단 CP 여부 변경
  2949. * @param :
  2950. * @return :
  2951. * @---------------------------------------------------
  2952. */
  2953. function fsetCpInfo( flag ){
  2954. appStat = model.getValue("/root/temp1/getdata/appstat");
  2955. if( cpgflagcd == "01" && appStat != "00" ){
  2956. //진료대상자리스트에 값을 setting한다
  2957. var prcpWindow = getOpenWindow("SMMMO04100");
  2958. if( prcpWindow != null ){
  2959. prcpWindow.model.setValue("/root/cpflag", "Y");
  2960. }
  2961. //상단에 cp여부를 Y로 셋팅(외래일때에는 셋팅이 되지 않아서, 다시 셋팅)
  2962. if( getPatientInfo("cp") == "N" ){
  2963. setPatientInfo("cp", model.getValue("/root/paminfo/list/pid") + "|" + "Y"); //상단 cp Y로 셋팅
  2964. }
  2965. }
  2966. if( flag == "save" ){
  2967. //진료대상자 재조회
  2968. fPrcpCallPatList();
  2969. }
  2970. }
  2971. /**
  2972. * @group :
  2973. * @ver : 2008.089
  2974. * @by : 전지은
  2975. * @---------------------------------------------------
  2976. * @type : function
  2977. * @access : public
  2978. * @desc : 진료대상자리스트의 CP여부, 상단 CP 여부 변경
  2979. * @param :
  2980. * @return :
  2981. * @---------------------------------------------------
  2982. */
  2983. function fResetAppStat(){
  2984. if( instance1.selectSingleNode("/root/main/steppath/appinfo/appstat") != null ){
  2985. model.makeValue( "/root/temp1/getdata/appstat", model.getValue("/root/main/steppath/appinfo/appstat") );
  2986. appStat = model.getValue("/root/main/steppath/appinfo/appstat");
  2987. model.removeNodeset("/root/main/steppath/appinfo");
  2988. model.removeNodeset("/root/send/srchcond");
  2989. model.removeNodeset("/root/send/steplist");
  2990. model.removeNodeset("/root/send/delprcplist");
  2991. if( cpgflagcd == "01" && appStat != "00" && btn_drop.attribute("class") == "btn4_letter2" ){
  2992. btn_drop.attribute("class") = "btn4_letter3";
  2993. btn_drop.attribute("left") = "1022px";
  2994. btn_drop.attribute("text") = "Drop";
  2995. btn_drop.refresh();
  2996. }
  2997. //fsetCpInfo("save"); //상단CP여부 변경
  2998. }
  2999. }
  3000. /**
  3001. * @group :
  3002. * @ver : 2008.09
  3003. * @by : 전지은
  3004. * @---------------------------------------------------
  3005. * @type : function
  3006. * @access : public
  3007. * @desc : 퇴원예고를 하지 않아서 미완성 처방인 건이 있을 경우, 미완성리스트에서 처리하라고 알림 (2008.09.19 JJE)
  3008. * @param :
  3009. * @return :
  3010. * @---------------------------------------------------
  3011. */
  3012. function fMssgInvalPrcp( msgFlag ){
  3013. //var msgFlag = "1";
  3014. var today = getCurrentDate();
  3015. var nxtDate = new Date().getAddDate(1, "D").getDateFormat();
  3016. var curInvalNodeList = null;
  3017. var dschdclrtyn = getPatientInfoDetail("dschdclrtyn");
  3018. if( msgFlag == "1" ){
  3019. //curInvalNodeList = instance1.selectNodes("/root/main/invalprcplist/prcplist");
  3020. //if( curInvalNodeList.length <= 0 ){
  3021. if( ivw_detail.src != "../../../emr/prcpmngtweb/xrw/SPMMP02200_DetailView.xrw" ){
  3022. curInvalNodeList = ivw_detail.instance1.selectNodes("/root/main/prcp/prcplist[prtlstat='12' and (prcpkindcd='60' or prcpkindcd = '70') and (prcpdd = '"+today+"' or prcpdd = '"+nxtDate+"')]");
  3023. }
  3024. //}
  3025. if( curInvalNodeList.length > 0 ){
  3026. if( curInvalNodeList.length <= 0 ){
  3027. messageBox ( "미완성 처방 중 발행되지 않은 퇴원처방이 존재합니다. \n\n미완성처방을 저장", "I008" );
  3028. btn_saveincomplprcp.dispatch("DOMActivate"); //미완성처방 영역 활성화
  3029. fCase2ViewMode();
  3030. }
  3031. }
  3032. }
  3033. else if( msgFlag == "2" ){
  3034. /*
  3035. //환자계획표가 재조회 이전 시점(환자계획표 버튼을 클릭해야 재조회됨), 대신 스텝정보를 기준으로 체크함
  3036. if( ivw_detail.src != "../../../emr/prcpmngtweb/xrw/SPMMP02200_DetailView.xrw" ){
  3037. inval1NodeList = instance1.selectNodes("/root/main/prcp/prcplist[prtlstat='10' and (prcpkindcd='60' or prcpkindcd = '70') and (prcpdd = '"today"' or prcpdd = '"nxtDate"')]");
  3038. }
  3039. */
  3040. curInvalNodeList = instance1.selectNodes("/root/main/steppath/info[(stepstat = '20' or stepstat='30') and decirflag = 'D' and (prcpdd = '"+today+"')]");
  3041. tmrInvalNodeList = instance1.selectNodes("/root/main/steppath/info[(stepstat = '20' or stepstat='30') and decirflag = 'D' and (prcpdd = '"+nxtDate+"')]");
  3042. if( curInvalNodeList.length > 0 && dschdclrtyn == "N" ){
  3043. messageBox ( "미완성 처방 중 발행되지 않은 퇴원처방이 존재합니다. \n\n퇴원예고 후 미완성처방을 저장", "I008" );
  3044. btn_saveincomplprcp.dispatch("DOMActivate"); //미완성처방 영역 활성화
  3045. fCase2ViewMode();
  3046. }
  3047. if( tmrInvalNodeList.length > 0 && dschdclrtyn == "N" ){
  3048. messageBox ( "실처방으로 발행되지 않은 퇴원처방이 존재합니다. \n이 처방들은 퇴원예고를 하시면 자동 발행됩니다. \n\n퇴원예고를 진행", "I008" );
  3049. }
  3050. }
  3051. }
  3052. /**
  3053. * @group :
  3054. * @ver : 2008.09
  3055. * @by : 박유미
  3056. * @---------------------------------------------------
  3057. * @type : function
  3058. * @access : public
  3059. * @desc : 퇴원예고 유도
  3060. * @param :
  3061. * @return :
  3062. * @---------------------------------------------------
  3063. */
  3064. function fGuidDschDclrt(){
  3065. if(dschAppYN != "Y") {
  3066. if( getParameter("SPMMO00400_rtn_useyn") != "Y") { //퇴원예고 popup을 두번 뜨는 것을 막기위함
  3067. var curDate = getCurrentDate();
  3068. var nxtDate = new Date().getAddDate(1, "D").getDateFormat();
  3069. var stepLth = instance1.selectNodes("/root/main/steppath/info").length;
  3070. var cstepPt = "";
  3071. var dshPrcpdd = "";
  3072. var dschRet = "";
  3073. for( var i = 1; i <= stepLth; i++) {
  3074. if( curDate == model.getValue("/root/main/steppath/info[" + i + "]/prcpdd") ) {
  3075. cstepPt = i;
  3076. break;
  3077. }
  3078. }
  3079. if( !isNull(cstepPt) ) {
  3080. for(var i = cstepPt ; i <= stepLth ; i++) {
  3081. if( (model.getValue("/root/main/steppath/info["+ i +"]/decirflag") == "D" )
  3082. || (model.getValue("/root/main/masterinfo/info/ioflagcd") == "O" && model.getValue("/root/main/steppath/info["+ i +"]/decirflag") == "C") ){ // 외래- DSC cp 2008.08.06
  3083. dshPrcpdd = model.getValue("/root/main/steppath/info["+ i +"]/prcpdd");
  3084. }
  3085. if( (curDate == dshPrcpdd) || (nxtDate == dshPrcpdd) ) {
  3086. var dschdclrtyn = getPatientInfoDetail("dschdclrtyn");
  3087. if( dschdclrtyn == "N" ) {
  3088. //dschRet = messageBox( dshPrcpdd.substr(0, 4) + "년 " + dshPrcpdd.substr(4, 2) + "월 " + dshPrcpdd.substr(6, 2) + "일 " + "퇴원예정환자입니다. 퇴원예고를", "Q009");
  3089. if(curDate == dshPrcpdd) {
  3090. if( iPrcpgenrflag != "E" ){
  3091. //dschRet = messageBox( "당일 퇴원예정환자입니다. \n\n입퇴원요약기록 작성 후 퇴원예고를", "S004");
  3092. dschRet = messageBox( "당일 퇴원예정환자입니다. \n\n입퇴원요약기록 작성 후 퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  3093. }else{
  3094. dschRet = messageBox( "당일 퇴원예정환자입니다. \n\n퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  3095. }
  3096. } else if(nxtDate == dshPrcpdd) {
  3097. if( iPrcpgenrflag != "E" ){
  3098. //dschRet = messageBox( "내일 퇴원예정환자입니다. \n\n입퇴원요약기록 작성 후 퇴원예고를", "S004");
  3099. dschRet = messageBox( "내일 퇴원예정환자입니다. \n\n입퇴원요약기록 작성 후 퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  3100. }else{
  3101. dschRet = messageBox( "내일 퇴원예정환자입니다. \n\n퇴원예고를", "S006", "퇴원예고 없이 진행|CP를 취소");
  3102. }
  3103. }
  3104. break;
  3105. }
  3106. }
  3107. }
  3108. if( dschRet == "6") {
  3109. //첫번째 처방일 + 재원일
  3110. var fstdd = model.getValue("/root/main/steppath/info[1]/prcpdd");
  3111. fstdd = new Date(eval(fstdd.substr(0, 4)), eval(fstdd.substr(4, 2)) -1, eval(fstdd.substr(6, 2)));
  3112. var hddd = parseInt(model.getValue("/root/main/masterinfo/info/fcstinhospdayno"));
  3113. var hd = fstdd.getAddDate(hddd-1);
  3114. //퇴원예고 window open
  3115. setParameter("SMMMP00800_dclrdd", dshPrcpdd);
  3116. modal("SPMMO00400");
  3117. //alert(getParameter("SPMMO00400_rtn_useyn"));
  3118. if( getParameter("SPMMO00400_rtn_useyn") == "Y") {
  3119. fSetupDschInfo(); //상단정보 재설정
  3120. model.setValue("/root/paminfo/list/dschdclrtyn", "Y");
  3121. model.setValue("/root/paminfo/list/dschdclrdt", getParameter("SPMMO00400_dclrdd"));
  3122. //(퇴원예고일 != 재원일) cp 취소
  3123. if( getParameter("SPMMO00400_dclrdd") != dshPrcpdd ) {
  3124. if( messageBox ( "퇴원예고일이 재원일과 일치하지 않습니다.", "Q007" ) == "6" ){
  3125. fCnclApp();
  3126. } else {
  3127. messageBox("퇴원예고일이 재원일과 일치하지 않습니다. \n현재 CP를 취소하고 새로운 CP를 ", "C002");
  3128. }
  3129. clearParameter("SPMMO00400_rtn_useyn");
  3130. return;
  3131. }
  3132. dschAppYN = "Y";
  3133. } else if(getParameter("SPMMO00400_rtn_useyn") == "N") { //실패
  3134. clearParameter("SPMMO00400_rtn_useyn");
  3135. return;
  3136. } else{ //퇴원예고 창을 그냥 close 했을때
  3137. // 계속 진행
  3138. dschAppYN = "Y";
  3139. }
  3140. }else if( dschRet == "7") {
  3141. //퇴원예고 지연 --> '60', '70' 제외하고 처방발행
  3142. clearParameter("SPMMO00400_rtn_useyn");
  3143. dsch = "Y";
  3144. }
  3145. else if ( dschRet == "2") {
  3146. if(model.getValue("/root/temp1/getdata/appstat") == "00" && instance1.selectSingleNode("/root/main/steppath/info[stepstat >= '20']") == null ){
  3147. if( messageBox ( "", "Q007" ) == "6" ){
  3148. fCnclApp();
  3149. }
  3150. clearParameter("SPMMO00400_rtn_useyn");
  3151. return;
  3152. }
  3153. }
  3154. }
  3155. }
  3156. }
  3157. }
  3158. /**
  3159. * @group :
  3160. * @ver : 2008.09
  3161. * @by : 전지은
  3162. * @---------------------------------------------------
  3163. * @type : function
  3164. * @access : public
  3165. * @desc : 퇴원예고를 하지 않아서 미완성 처방인 건이 있을 경우, 미완성리스트에서 처리하라고 알림 (2008.09.19 JJE)
  3166. * @param :
  3167. * @return :
  3168. * @---------------------------------------------------
  3169. */
  3170. function fSetupDschInfo( msgFlag ){
  3171. //상단올리기
  3172. if( getParameter("SPMMO00400_rtn_useyn") == "Y" ){
  3173. fDschNotiInit();
  3174. var pamInfoCvs = getGlobalVariable("paminfo");
  3175. if(pamInfoCvs != null){ //cvs가 null이 아닌 경우에만 처리함.
  3176. model.removeNodeSet ( "/root/paminfo/list" ); //상단화면 정보 초기화
  3177. setCSVToNode ( "/root/paminfo", pamInfoCvs );
  3178. model.setValue ( "/root/init/pid", model.getValue ( "/root/paminfo/list/pid" ));
  3179. var vopt_patinfo = model.getValue ( "/root/paminfo/list/hngnm" ) + " " + model.getValue ( "/root/paminfo/list/sex" ) + "/" + model.getValue ( "/root/paminfo/list/age" );
  3180. if ( model.getValue ( "/root/paminfo/list/roomcd" ) != "" ){
  3181. vopt_patinfo = vopt_patinfo + " " + model.getValue ( "/root/paminfo/list/roomcd" ) + "호";
  3182. }
  3183. model.setValue ( "/root/init/patinfo", vopt_patinfo );
  3184. }
  3185. var patFlagCvs = getGlobalVariable("patflag");
  3186. if(patFlagCvs.length != 0 ){ //cvs가 null이 아닌 경우에만 처리함.
  3187. model.removeNodeSet ( "/root/patflag/list" ); //상단화면 정보 초기화
  3188. setCSVToNode ( "/root/patflag", patFlagCvs );
  3189. prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  3190. }
  3191. }
  3192. clearParameter("SPMMO00400_rtn_useyn");
  3193. }
  3194. /**
  3195. * @group :
  3196. * @ver : 2008.12
  3197. * @by : 전지은
  3198. * @---------------------------------------------------
  3199. * @type : function
  3200. * @access : public
  3201. * @desc : CPG의 경우 시작/종료스텝 설정에 따른 처방일자 변경 처리
  3202. * @param :
  3203. * @return :
  3204. * @---------------------------------------------------
  3205. */
  3206. function fSetupPrcpDD(){
  3207. var stepPathRef = "/root/main/steppath/info";
  3208. var stepPathLen = instance1.selectNodes(stepPathRef).length;
  3209. var StartStepDD = "";
  3210. var StartStep = "";
  3211. var EndStep = "";
  3212. if(stepPathLen == 1) {
  3213. StartStepDD = instance1.selectSingleNode(stepPathRef + "/prcpdd");
  3214. StartStep = instance1.selectSingleNode(stepPathRef + "/stepno");
  3215. EndStep = instance1.selectSingleNode(stepPathRef + "/stepno");
  3216. } else {
  3217. StartStepDD = instance1.selectSingleNode(stepPathRef + "[startendflag = 'S']/prcpdd");
  3218. StartStep = instance1.selectSingleNode(stepPathRef + "[startendflag = 'S']/stepno");
  3219. EndStep = instance1.selectSingleNode(stepPathRef + "[startendflag = 'E']/stepno");
  3220. }
  3221. var today = getCurrentDate();
  3222. var StartPrcpDD = "";
  3223. var StartStepNo = "";
  3224. var EndStepNo = "";
  3225. var interval = 0;
  3226. var startyn = "N";
  3227. var endyn = "N";
  3228. var iStepNo = "";
  3229. var iPrcpDD = "";
  3230. var iTimes = 0;
  3231. var jTimes = 0;
  3232. var kTimes = 0;
  3233. var iStepStat = 0;
  3234. var iLnkStepno = 0;
  3235. var reAppQstYN = "N"; //적용 스텝 재적용 질문 여부 //appStepYN
  3236. var reAppYN = "N"; //적용 스텝 재발행 여부 //appStepFlag
  3237. var dschStepFlag = "";
  3238. var iAnswstepno = "0";
  3239. var iStepflagcd = "";
  3240. var iSettypecd = "";
  3241. if( StartStep == null && EndStep == null ){
  3242. messageBox ( "설정된 시작/종료 스텝이", "I004" );
  3243. return;
  3244. }
  3245. if(StartStep != null){
  3246. StartPrcpDD = StartStepDD.text;
  3247. StartStepNo = StartStep.text;
  3248. }
  3249. if(EndStep != null){
  3250. EndStepNo = EndStep.text;
  3251. }
  3252. if( cpgflagcd == "02" ){ //CPG
  3253. if( StartStep != null && EndStep == null ){
  3254. EndStep = instance1.selectSingleNode(stepPathRef + "["+ stepPathLen +"]/stepno");
  3255. EndStepNo = EndStep.text;
  3256. }
  3257. interval = 0;
  3258. for( var i=1; i<=stepPathLen; i++ ){
  3259. iStepNo = model.getValue(stepPathRef + "["+ i +"]/stepno");
  3260. iStepStat = parseInt(model.getValue(stepPathRef + "["+ i +"]/stepstat"));
  3261. iStepflagcd = model.getValue(stepPathRef + "["+ i +"]/stepflagcd");
  3262. iAnswstepno = model.getValue(stepPathRef + "["+ i +"]/answstepno");
  3263. iSettypecd = model.getValue(stepPathRef + "["+ i +"]/settypecd");
  3264. if( model.getValue("/root/main/appscopmode") != "W" && iSettypecd == "W" ) break; //CPG+CP에서 CPG스텝 적용할 때에는 CP는 범위에서 제외
  3265. if( startyn == "N" && (iStepNo == StartStepNo || iStepNo == EndStepNo) ) startyn = "Y"; //1step짜리 CP도 처방발행 되도록 오류 수정 (2009.12.22 JJE)
  3266. if( startyn == "N" && iStepStat <= 10 ){
  3267. if( iStepflagcd == "D" ){ //&& iAnswstepno == StartStepNo
  3268. //startyn = "Y"; // 결정 후, action 스텝을 시작스텝으로 재설정 한 경우, start를 Decision으로 잡아줌 (2010.05.18 JJE)
  3269. model.setValue(stepPathRef + "["+ i +"]/prcpdd", today);
  3270. model.setValue(stepPathRef + "["+ i +"]/savestatus", "I");
  3271. model.setValue(stepPathRef + "["+ i +"]/stepstat", "10");
  3272. }else{
  3273. model.setValue(stepPathRef + "["+ i +"]/prcpdd", "");
  3274. model.setValue(stepPathRef + "["+ i +"]/savestatus", "D");
  3275. }
  3276. }else if( startyn == "Y" ){
  3277. if(endyn == "N"){
  3278. //Decision 스텝인 경우, 미결정 시 I로 하지 않음!
  3279. if( iStepflagcd == "A" || (iStepflagcd == "D" && iAnswstepno != "0") ){
  3280. model.setValue(stepPathRef + "["+ i +"]/prcpdd", today);
  3281. model.setValue(stepPathRef + "["+ i +"]/savestatus", "I");
  3282. if( iStepStat>10 ){
  3283. /*if( reAppQstYN == "N" ){
  3284. reAppQstYN = "Y";
  3285. //if( messageBox("적용 스텝 중 이미 발행된 스텝이 존재합니다.\n재발행", "S001") == 6 ){
  3286. model.setValue(stepPathRef + "["+ i +"]/stepstat", "10");
  3287. reAppYN = "Y";
  3288. //}
  3289. }else{
  3290. if( reAppYN == "Y" )*/
  3291. model.setValue(stepPathRef + "["+ i +"]/stepstat", "10");
  3292. //}
  3293. }
  3294. } //A이거나 결정된 D인 경우만 적용대상에 포함
  3295. }else if( endyn == "Y" && iStepStat<=10 ){
  3296. model.setValue(stepPathRef + "["+ i +"]/prcpdd", "");
  3297. }
  3298. }
  3299. if( endyn == "N" && iStepNo == EndStepNo ) endyn = "Y";
  3300. }
  3301. } else{ //CP
  3302. interval = 0;
  3303. kTimes = 1;
  3304. var D0StepNodes = instance1.selectNodes("/root/main/steppath/info" + "[times = '0' and stepstat='10' and prcpdd='"+today+"']");
  3305. var bfD0StepNodes = instance1.selectNodes("/root/main/steppath/info" + "[times = '0' and stepstat='30']");
  3306. var chkD0StepNodes = instance1.selectNodes("/root/main/steppath/info" + "[times = '0']");
  3307. //## 중간타기 적용 여부 변수 (첫번째 스텝의 처방일과 시작지정된 스텝의 처방일이 다르면 중간타기로 인식
  3308. var midAppYN = "N";
  3309. var OrgStartPrcpDD = model.getValue("/root/main/steppath/info[swimlineno = '1']/prcpdd");
  3310. if( OrgStartPrcpDD != StartPrcpDD ) midAppYN = "Y";
  3311. //D0 CP 외래 진료일(적용 당일)은 해당 일자만 발행 flag로 설정하고 return (2010.05.25 JJE)
  3312. var ioflag = model.getValue("/root/main/masterinfo/info/ioflagcd");
  3313. var iAppStat = parseInt(model.getValue("/root/temp1/getdata/appstat"));
  3314. if(ioflag != "O" && appStat == "00" && D0StepNodes.length > 0){
  3315. for(var i=0; i<D0StepNodes.length; i++){
  3316. var node = D0StepNodes.item(i);
  3317. var savestatus = node.selectSingleNode("savestatus");
  3318. var times = node.selectSingleNode("times");
  3319. if( times.text == "0" ) model.setValue(savestatus, "I");
  3320. }
  3321. return;
  3322. }
  3323. //이미 적용된 CP도 더이상 저장할 프로토콜이 없음, 중간타기 CP인 경우 미발행된게 추가처방 내면서 같이 나가는 것을 방지 (2010.06.04 JJE)
  3324. if( ioflag != "O" && (iAppStat == 10 || iAppStat >= 30) && bfD0StepNodes.length <= 0 ){ //과거 D0가 있을땐 모두 적용, 그렇지 않은 경우는 건너뛴 중간부터 적용인지 체크
  3325. var notActStepNodes = instance1.selectNodes("/root/main/steppath/info" + "[swimlineno = '1' and stepstat='10']"); //이미 적용 시 발행X 스텝
  3326. if( notActStepNodes.length > 0 ) return;
  3327. }
  3328. //중간타기 CP가 어떤 문제로 인해 당일 step만 발행된 경우, 미래 step 적용을 위해.. start step을 지정해줌 (2010.07.15)
  3329. var fstStepStat = model.getValue(stepPathRef + "["+1+"]/stepstat");
  3330. var midAppStepNoNode = instance1.selectSingleNode(stepPathRef + "[stepstat='30']/stepno");
  3331. if( ioflag != "O" && chkD0StepNodes.length <= 0 && fstStepStat <= 10 && midAppStepNoNode != null ){
  3332. StartStepNo = midAppStepNoNode.text;
  3333. }
  3334. //steppath에 처방일자 조정
  3335. var iDay = "";
  3336. var iOrgPrcpDD = "";
  3337. var changeDate = "";
  3338. var changeStat = "";
  3339. for( var i=1; i<=stepPathLen; i++ ){
  3340. iStepNo = model.getValue(stepPathRef + "["+ i +"]/stepno");
  3341. iPrcpDD = model.getValue(stepPathRef + "["+ i +"]/prcpdd");
  3342. iOrgPrcpDD = model.getValue(stepPathRef + "["+ i +"]/orgprcpdd");
  3343. iTimes = parseInt(model.getValue(stepPathRef + "["+ i +"]/times"));
  3344. iStepStat = parseInt(model.getValue(stepPathRef + "["+ i +"]/stepstat"));
  3345. dschStepFlag = model.getValue(stepPathRef + "["+ i +"]/decirflag");
  3346. iLnkStepno = model.getValue(stepPathRef + "["+ i +"]/lnkstepno");
  3347. changeDate = "";
  3348. changeStat = "";
  3349. if( startyn == "N" && (iStepNo == StartStepNo || StartStepNo == "") ) { //1step짜리 CP도 처방발행 되도록 오류 수정 (2009.12.22 JJE), D0CP 입원처방 발행 시 날짜가 +1 되는 오루 수정 (2010.04.22)
  3350. if( iTimes == "0" ){
  3351. StartStepNo = iLnkStepno;
  3352. }else{
  3353. startyn = "Y";
  3354. jTimes = iTimes;
  3355. //model.setValue(stepPathRef + "["+ i +"]/times", kTimes);
  3356. }
  3357. }
  3358. if( startyn == "N" && iStepStat<=10 ){
  3359. model.setValue(stepPathRef + "["+ i +"]/prcpdd", "");
  3360. model.setValue(stepPathRef + "["+ i +"]/savestatus", "D");
  3361. }else if( startyn == "Y" ){
  3362. if(endyn == "N" && iStepStat<=10 ){
  3363. interval = iTimes - jTimes;
  3364. iDay = today.toDate("YYYYMMDD");
  3365. changeDate = iDay.getAddDate(interval, "D").getDateFormat("YYYYMMDD");
  3366. changeStat = "I";
  3367. //어떤 문제로 인해 당일스텝(1day step)만 발행된 경우, 미래 step 적용을 위해 기준 처방일자를 오늘에서 발행된 스텝의 처방일로 지정해줌 (2010.07.15)
  3368. //## 중간타기 적용 시 처방일자가 원래 미래일자 그대로 발행되는 문제 수정 (2010.12.21 JJE)
  3369. if( !isNull(iOrgPrcpDD) && changeDate != iOrgPrcpDD && midAppYN == "N" ){ //## midAppYN == "N" 조건 추가
  3370. if(today > iOrgPrcpDD){
  3371. changeDate = "";
  3372. changeStat = "D";
  3373. }else{
  3374. changeDate = iOrgPrcpDD; //## 이 부분때문에 중간타기 적용의 경우까지 원래 처방일자로 한번 더 바꿨음 (원래 취지는 시스템의 문제로 적용시 미래처방이 발행 안된경우, 과거 일자가 된 2회차 이후의 스텝을 원래 일자로 설정해주는 부분임)
  3375. }
  3376. }
  3377. model.setValue(stepPathRef + "["+ i +"]/prcpdd", changeDate);
  3378. model.setValue(stepPathRef + "["+ i +"]/savestatus", changeStat);
  3379. }else if( endyn == "Y" && iStepStat <= 10 ){
  3380. model.setValue(stepPathRef + "["+ i +"]/prcpdd", "");
  3381. }
  3382. }
  3383. if( endyn == "N" && iStepNo == EndStepNo ) endyn = "Y";
  3384. //퇴원일이 미뤄지므로, 퇴원예정일 변경 - 퇴원예고 시 바뀐 퇴원일로 셋팅되도록 (2009.02.26)
  3385. if( dschStepFlag == "D" ) setParameter("SMMMP00800_dclrdd", changeDate);
  3386. }
  3387. //}
  3388. }
  3389. }
  3390. /**
  3391. * @group :
  3392. * @ver : 2009.02.
  3393. * @by : 전지은
  3394. * @---------------------------------------------------
  3395. * @type : function
  3396. * @access : public
  3397. * @desc : CPG 속성관리창을 오픈하기 위한 함수
  3398. * @param :
  3399. * @return :
  3400. * @---------------------------------------------------
  3401. */
  3402. function fOpenStepDetlInfo(){
  3403. //ivw_outline.window.javascript.fViewDetailInfo();
  3404. var no = model.getValue("/root/main/stepinfo/info/stepno");
  3405. var stepflag = model.getValue("/root/main/stepinfo/info/stepflagcd");
  3406. if( isNull(no) ){
  3407. no = model.getValue("/root/main/sortedsteplist/info[1]/stepno");
  3408. stepflag = model.getValue("/root/main/sortedsteplist/info[1]/stepflagcd");
  3409. model.setValue("/root/main/stepinfo/info/stepno", model.getValue("/root/main/sortedsteplist/info[1]/stepno"));
  3410. model.setValue("/root/main/stepinfo/info/setno", model.getValue("/root/main/sortedsteplist/info[1]/setno"));
  3411. model.setValue("/root/main/stepinfo/info/stepmemo", model.getValue("/root/main/sortedsteplist/info[1]/stepmemo"));
  3412. model.setValue("/root/main/stepinfo/info/times", model.getValue("/root/main/sortedsteplist/info[1]/times"));
  3413. model.setValue("/root/main/stepinfo/info/stepnm", model.getValue("/root/main/sortedsteplist/info[1]/stepnm"));
  3414. model.setValue("/root/main/stepinfo/info/stepflagcd", model.getValue("/root/main/sortedsteplist/info[1]/stepflagcd"));
  3415. }
  3416. //if( !isNull(no) ){
  3417. if(stepflag == "A" || stepflag == "B"){
  3418. var iSettypecd = model.getValue("/root/main/steppath/info[stepno='"+no+"']/settypecd");
  3419. if( isNull(iSettypecd) ) iSettypecd = settypecd;
  3420. var returnText = no + "|" +
  3421. model.getValue("/root/main/masterinfo/info/cpgno") + "|" +
  3422. model.getValue("/root/main/masterinfo/info/cpghistseq") + "|" +
  3423. iSettypecd + "|" + //CPG+CP에서 CP스텝이어도 G로 보내야 하므로, settypecd -> cpgflagcd (2010.07.02)
  3424. model.getValue("/root/main/stepinfo/info/setno") + "|" +
  3425. model.getValue("/root/main/stepinfo/info/stepmemo") + "|" +
  3426. model.getValue("/root/main/stepinfo/info/times") + "|" +
  3427. "generater"+ "|" +
  3428. model.getValue("/root/main/stepinfo/info/stepnm");
  3429. //var sortedStepNode = instance1.selectNodes("/root/main/sortedsteplist/info");
  3430. var sortedStepNode = instance1.selectNodes("/root/main/steppath/info");
  3431. var returnTextList = "";
  3432. var num = 0;
  3433. for(var i=0; i<sortedStepNode.length; i++){
  3434. num++;
  3435. returnTextList = returnTextList + model.getValue("/root/main/steppath/info["+num+"]/stepno") + "|" +
  3436. model.getValue("/root/main/masterinfo/info/cpgno") + "|" +
  3437. model.getValue("/root/main/masterinfo/info/cpghistseq") + "|" +
  3438. model.getValue("/root/main/steppath/info["+num+"]/settypecd") + "|" +
  3439. model.getValue("/root/main/steppath/info["+num+"]/setno") + "|" +
  3440. model.getValue("/root/main/steppath/info["+num+"]/stepmemo") + "|" +
  3441. model.getValue("/root/main/steppath/info["+num+"]/times") + "|" +
  3442. "generater"+ "|" +
  3443. model.getValue("/root/main/steppath/info["+num+"]/stepnm") + "▦";
  3444. }
  3445. setParameter("stepinfo", returnText);
  3446. setParameter("steplist", returnTextList);
  3447. var popObj = getOpenWindow("SPMMP01100");
  3448. if( popObj == null ){
  3449. open("SPMMP01100");
  3450. }else{
  3451. popObj.window.javascript.fInitialize();
  3452. }
  3453. } else if(stepflag == "D"){
  3454. var returnText = model.getValue("/root/main/stepinfo/info/stepnm") + "|" +
  3455. model.getValue("/root/main/stepinfo/info/stepmemo") + "|" +
  3456. model.getValue("/root/main/stepinfo/info/times");
  3457. setParameter("stepinfo", returnText);
  3458. var popObj = getOpenWindow("SPMMP02100");
  3459. if( popObj == null ){
  3460. open("SPMMP02100");
  3461. }else{
  3462. popObj.window.javascript.fInitialize();
  3463. }
  3464. }
  3465. /*
  3466. }
  3467. else {
  3468. var msg = messageBox("스텝을 ", "C002");
  3469. return;
  3470. }
  3471. */
  3472. }
  3473. /**
  3474. * @group :
  3475. * @ver : 2009.02.
  3476. * @by : 전지은
  3477. * @---------------------------------------------------
  3478. * @type : function
  3479. * @access : public
  3480. * @desc : CPG 속성관리창을 오픈하기 위한 함수
  3481. * @param :
  3482. * @return :
  3483. * @---------------------------------------------------
  3484. */
  3485. function fOpenAttAdm(){
  3486. var CPGadminObj = getOpenWindow("SPMQP00300");
  3487. if (CPGadminObj != null) {
  3488. CPGadminObj.window.javascript.model.dispatch("xforms-ready");
  3489. } else {
  3490. open("SPMQP00300");
  3491. }
  3492. }
  3493. /**
  3494. * @group :
  3495. * @ver : 2009.02.
  3496. * @by : 전지은
  3497. * @---------------------------------------------------
  3498. * @type : function
  3499. * @access : public
  3500. * @desc : cpg는 s/e 지점을 진행상태에 따라 재정의한다. (2009.02.17)
  3501. * @param :
  3502. * @return :
  3503. * @---------------------------------------------------
  3504. */
  3505. function fResetStepFlag(){
  3506. if( cpgflagcd == "02" ){
  3507. var appStatNode = instance1.selectSingleNode("/root/temp1/getdata/appstat");
  3508. if( appStatNode != null ) { //cpgflagcd == "02"
  3509. var appStatNo = parseInt(appStatNode.text);
  3510. var allSteps = instance1.selectNodes("/root/main/steppath/info[stepstat='30']");
  3511. var orgStartStep = instance1.selectSingleNode("/root/main/steppath/info[startendflag='S']/startendflag");
  3512. var orgEndStep = instance1.selectSingleNode("/root/main/steppath/info[startendflag='E']/startendflag");
  3513. //## 아웃라인에서 StartEndFlag 해제 인스턴스 2010.05.04 KHJ
  3514. var StartStepNode = instance1.selectSingleNode("/root/main/steplist/info[startendflag='S']/startendflag");
  3515. var EndNodeList = instance1.selectNodes("/root/main/steplist/info[startendflag='E']");
  3516. /*
  3517. var chgStartStep = null;
  3518. var startSteono = null;
  3519. var endSteono = null;
  3520. var maxSwimlineno = "0";
  3521. if( appStatNo >= 10 && appStatNo < 30 ){
  3522. //진행중 : startStepno 재설정
  3523. for(var i=0; i<allSteps.length; i++){
  3524. var node = allSteps.item(i);
  3525. var swimlineno = node.selectSingleNode("swimlineno");
  3526. if( maxSwimlineno < swimlineno.text ){
  3527. maxSwimlineno =swimlineno.text;
  3528. startSteono = node.selectSingleNode("lnkstepno");
  3529. }
  3530. }
  3531. if( startSteono != null ){
  3532. if( instance1.selectSingleNode("/root/main/steppath/info[stepno='" + startSteono.text + "']") != null ){
  3533. chgStartStep = instance1.selectSingleNode("/root/main/steppath/info[stepno='"+ startSteono.text +"']/startendflag");
  3534. model.setValue(orgStartStep, "");
  3535. model.setValue(chgStartStep, "S");
  3536. }else{
  3537. model.setValue(orgStartStep, "");
  3538. model.setValue(orgEndStep, "");
  3539. }
  3540. }
  3541. }else if(appStatNo >= 30 && appStatNo <= 50){
  3542. //마지막 스텝 처방까지 발행한 상태 : startStepno, endStepno 둘다 존재하지 않음
  3543. if( orgStartStep != null ) model.setValue(orgStartStep, "");
  3544. if( orgEndStep != null ) model.setValue(orgEndStep, "");
  3545. }
  3546. */
  3547. //자동으로 Start/End를 지정해주게 되면, OCS에서 추가처방 발행 및 DC 처방 저장 시 함께 저장되므로 무조건 범위를 해제해줌 (2010.04.13)
  3548. if( allSteps.length > 0 || resetAppScopYN == "Y" ){ //시작 안한 경우는 초기 s는 그대로 설정 (2010.05.12 JJE)
  3549. if( orgStartStep != null ) model.setValue(orgStartStep, "");
  3550. if( StartStepNode != null ) model.setValue(StartStepNode, "");
  3551. }
  3552. if( orgEndStep != null ) model.setValue(orgEndStep, "");
  3553. for (var i=0;i<EndNodeList.length;i++) {
  3554. // 아웃라인에서 StartEndFlag 해제 2010.05.04 KHJ
  3555. var EndNode = EndNodeList.item(i);
  3556. var EndFlagNode = EndNode.selectSingleNode("startendflag");
  3557. if (EndFlagNode != null) model.setValue(EndFlagNode, "");
  3558. }
  3559. fGetAppScopList();
  3560. }
  3561. } //end cpg case
  3562. }
  3563. /**
  3564. * @group :
  3565. * @ver : 2009.02.
  3566. * @by : 전지은
  3567. * @---------------------------------------------------
  3568. * @type : function
  3569. * @access : public
  3570. * @desc : cpg는 s/e 지점을 진행상태에 따라 재정의한다. (2009.02.17)
  3571. * @param : inqrPopFlag (SEL: 문진리스트 클릭, APP: 스텝 프로토콜 적용, END:CPG 종료)
  3572. * @return :
  3573. * @---------------------------------------------------
  3574. */
  3575. function fLoadInqrPopup( inqrPopFlag ){
  3576. if( isNull(inqrPopFlag) ) inqrPopFlag = "end";
  3577. setParameter("SMMMO034_pid", iPid);
  3578. setParameter("SMMMO034_cretno", iCretno);
  3579. setParameter("SMMMO034_orddd", iOrddd);
  3580. setParameter("SMMMO034_ordtype", iIoflag);
  3581. if( inqrPopFlag == "SEL" ) {
  3582. var iRow = grd_inqr.row;
  3583. var inqr_path = "/root/main/inqrinfo/inqrheader";
  3584. setParameter("SMMMO034_lastcallyn", "N"); //문진팝업 최종 호출 여부:N
  3585. setParameter("SMMMO034_cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  3586. setParameter("SMMMO034_cpgno", cpgno);
  3587. setParameter("SMMMO034_cpghistseq", cpghistseq);
  3588. setParameter("SMMMO034_inqrno", model.getValue(inqr_path + "[" + iRow + "]/inqrno") );
  3589. setParameter("SMMMO034_inqrhistno", model.getValue(inqr_path + "[" + iRow + "]/inqrhistno") );
  3590. setParameter("SMMMO034_inqrnm", model.getValue(inqr_path + "[" + iRow + "]/inqrnm") );
  3591. setParameter("SMMMO034_inqrflag", model.getValue(inqr_path + "[" + iRow + "]/inqrflag") );
  3592. setParameter("SMMMO034_pntmflag", "3");
  3593. }
  3594. else if( inqrPopFlag == "APP" ){
  3595. setParameter("SMMMO034_lastcallyn", "N"); //문진팝업 최종 호출 여부:N
  3596. setParameter("SMMMO034_cpgappno", appNo_SMMMO00110);
  3597. setParameter("SMMMO034_cpgno", cpgno);
  3598. setParameter("SMMMO034_cpghistseq", cpghistseq);
  3599. setParameter("SMMMO034_appyn", "Y");
  3600. setParameter("SMMMO034_steplistno", stepArray_SMMMO00110); //적용구간 내 스텝 리스트
  3601. setParameter("SMMMO034_pntmflag", "3");
  3602. }
  3603. else if( inqrPopFlag == "END" ){
  3604. setParameter("SMMMO034_lastcallyn", "Y"); //문진팝업 최종 호출 여부:Y(퇴원예고시점에 필수처방사유 문진까지 함께 조회하기 위해)
  3605. setParameter("SMMMO034_cpgappno", appNo_SMMMO00110);
  3606. setParameter("SMMMO034_cpgno", cpgno);
  3607. setParameter("SMMMO034_cpghistseq", cpghistseq);
  3608. setParameter("SMMMO034_appyn", "Y");
  3609. }
  3610. modal("SPMMP03400"); //문진팝업
  3611. clearParameter("SMMMO034_lastcallyn");
  3612. clearParameter("SMMMO034_cpgappno");
  3613. clearParameter("SMMMO034_cpgno");
  3614. clearParameter("SMMMO034_cpghistseq");
  3615. clearParameter("SMMMO034_pid");
  3616. clearParameter("SMMMO034_cretno");
  3617. clearParameter("SMMMO034_orddd");
  3618. clearParameter("SMMMO034_ordtype");
  3619. clearParameter("SMMMO034_inqrno");
  3620. clearParameter("SMMMO034_inqrhistno");
  3621. clearParameter("SMMMO034_inqrnm");
  3622. clearParameter("SMMMO034_inqrflag");
  3623. clearParameter("SMMMO034_appyn");
  3624. clearParameter("SMMMO034_steplistno");
  3625. clearParameter("SMMMO034_pntmflag");
  3626. }
  3627. /**
  3628. * @group :
  3629. * @ver : 2009.05.
  3630. * @by : 전지은
  3631. * @---------------------------------------------------
  3632. * @type : function
  3633. * @access : public
  3634. * @desc : 문진정보만을 재조회한다.
  3635. * @param :
  3636. * @return :
  3637. * @---------------------------------------------------
  3638. */
  3639. function fGetInqrList(){
  3640. var iRow = grd_inqr.row;
  3641. model.removeNodeset("/root/send/reqdata");
  3642. model.makeValue("/root/send/reqdata/cpgno", model.getValue("/root/temp1/getdata/cpgno"));
  3643. model.makeValue("/root/send/reqdata/cpghistseq", model.getValue("/root/temp1/getdata/cpghistseq"));
  3644. model.makeValue("/root/send/reqdata/cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  3645. model.makeValue("/root/send/reqdata/inqrno", model.getValue("/root/main/inqrinfo/inqrheader[" + iRow + "'/inqrno"));
  3646. model.makeValue("/root/send/reqdata/inqrhistno", model.getValue("/root/main/inqrinfo/inqrheader[" + iRow + "'/inqrhistno"));
  3647. model.makeValue("/root/send/reqdata/getheaderyn", "Y");
  3648. model.makeValue("/root/send/reqdata/appyn", "Y");
  3649. model.makeValue("/root/send/reqdata/histjoinyn", "Y");
  3650. submit("TRMQP04001", true);
  3651. model.removeNodeset("/root/send/reqdata");
  3652. }
  3653. /**
  3654. * @group :
  3655. * @ver : 2010.05.18
  3656. * @by : 전지은
  3657. * @---------------------------------------------------
  3658. * @type : function
  3659. * @access : public
  3660. * @desc : CPG인 경우 적용범위 나열
  3661. * @param : flag (CP만 적용하려고 할 경우 W 를 받음)
  3662. * @return :
  3663. * @---------------------------------------------------
  3664. */
  3665. function fGetAppScopList( flag ){
  3666. if( isNull(flag) ) flag = "G";
  3667. model.setValue("/root/main/appscopmode", flag);
  3668. if( cpgflagcd == "02" ){
  3669. var pathScopList = null;
  3670. if ( flag != "W" ) pathScopList = instance1.selectNodes("/root/main/steppath/info[settypecd!='W']");
  3671. else pathScopList = instance1.selectNodes("/root/main/steppath/info[settypecd!='G']");
  3672. var prtnYN ="N"; //출력여부
  3673. var prtnCnts = ""; //출력내용
  3674. for (var i=0;i<pathScopList.length;i++) {
  3675. var node = pathScopList.item(i);
  3676. var startendflagNode = node.selectSingleNode("startendflag");
  3677. var stepnmNode = node.selectSingleNode("stepnm");
  3678. var settypecdNode = node.selectSingleNode("settypecd");
  3679. if ( flag != "W" && settypecdNode.text == "W" ){ //CP영역은 자동 범위 지정에서 제외 (2010.06.26 JJE)
  3680. break;
  3681. }else if ( flag == "W" && settypecdNode.text == "G" ){
  3682. break;
  3683. }
  3684. if ( startendflagNode.text == "S" ) prtnYN = "Y";
  3685. if( prtnYN == "Y" ){
  3686. if ( !isNull(prtnCnts) ) prtnCnts = prtnCnts + " -> ";
  3687. prtnCnts = prtnCnts + stepnmNode.text;
  3688. }
  3689. if ( startendflagNode.text == "E" ){
  3690. if( prtnYN != "Y" ) prtnCnts = prtnCnts + stepnmNode.text;
  3691. break;
  3692. }
  3693. }
  3694. //if( isNull(prtnCnts) ) prtnCnts = "적용범위 없음 (CPG 프로토콜 발행을 하시려면 Outline View에서 범위를 지정하십시오.)";
  3695. model.setValue("/root/main/appscoplist", prtnCnts);
  3696. cap_appscoplist.refresh();
  3697. }
  3698. }
  3699. ]]>
  3700. </script>
  3701. </xhtml:head>
  3702. <xhtml:body pagewidth="1228" pageheight="942" guideline="1,1187;2,932;" idprefix="import" style="font-size:12pt; margin-left:8; margin-top:0; margin-right:0; margin-bottom:0; ">
  3703. <group id="grp_biz" scroll="auto" style="left:0px; top:0px; width:1208px; height:911px; ">
  3704. <caption id="caption9" class="cell_1" visibility="hidden" style="left:711px; top:108px; width:20px; height:23px; ">메모</caption>
  3705. <line id="line7" class="line_2" style="x1:0px; y1:30px; x2:590px; y2:30px; "/>
  3706. <line id="line11" class="line_3" style="x1:0px; y1:99px; x2:1194px; y2:99px; "/>
  3707. <input id="ipt_cpgno" ref="/root/main/masterinfo/info/cpgno" class="input_default" visibility="hidden" style="left:696px; top:111px; width:25px; height:19px; "/>
  3708. <input id="ipt_cpghistseq" ref="/root/main/masterinfo/info/cpghistseq" class="input_default" visibility="hidden" style="left:721px; top:111px; width:25px; height:19px; "/>
  3709. <select1 id="cmb_cpglasthistyn" ref="/root/main/masterinfo/info/cpglasthistyn" class="combo_default" visibility="hidden" appearance="minimal" style="left:716px; top:111px; width:25px; height:19px; ">
  3710. <choices>
  3711. <item>
  3712. <label>Y</label>
  3713. <value>Y</value>
  3714. </item>
  3715. <item>
  3716. <label>N</label>
  3717. <value>N</value>
  3718. </item>
  3719. </choices>
  3720. </select1>
  3721. <textarea id="textarea1" ref="/root/main/masterinfo/info/cpgmemo" navindex="17" visibility="hidden" style="left:696px; top:113px; width:40px; height:20px; "/>
  3722. <line id="line13" class="line_3" style="x1:0px; y1:908px; x2:1208px; y2:908px; "/>
  3723. <caption id="cap_cpgorddeptcd" class="cell_1" visibility="hidden" style="left:706px; top:111px; width:15px; height:21px; ">CP 진료과</caption>
  3724. <input id="ipt_cpgnm" ref="/root/main/masterinfo/info/cpgnm" class="input_essential" navindex="1" visibility="hidden" style="left:780px; top:110px; width:23px; height:19px; "/>
  3725. <select1 id="cmb_cpgorddeptcd" ref="/root/main/masterinfo/info/cpgorddeptcd" class="combo_default" navindex="8" visibility="hidden" appearance="minimal" style="left:691px; top:114px; width:28px; height:19px; ">
  3726. <choices>
  3727. <itemset nodeset="/root/init/orddeptlist/dept">
  3728. <label ref="depthngnm"/>
  3729. <value ref="deptcd"/>
  3730. </itemset>
  3731. </choices>
  3732. </select1>
  3733. <input id="ipt_swimlineno" ref="/root/main/masterinfo/info/swimlineno" class="input_default" disabled="true" navindex="10" visibility="hidden" format="999" style="left:723px; top:113px; width:11px; height:19px; "/>
  3734. <caption id="cap_swimlineno" class="cell_1" visibility="hidden" style="left:733px; top:111px; width:19px; height:21px; ">스윔라인 수</caption>
  3735. <caption id="cap_fcstinhospdayno" class="cell_1" visibility="hidden" style="left:795px; top:110px; width:20px; height:23px; ">예상재원일수</caption>
  3736. <input id="ipt_fcstinhospdayno" ref="/root/main/masterinfo/info/fcstinhospdayno" class="input_default" navindex="9" visibility="hidden" format="999" style="left:815px; top:110px; width:15px; height:19px; "/>
  3737. <caption id="cap_cpgnm" class="cell_1" visibility="hidden" style="left:760px; top:110px; width:20px; height:23px; ">CP/CPG명</caption>
  3738. <caption id="cap_cpgflagcd" class="cell_1" visibility="hidden" style="left:696px; top:109px; width:15px; height:21px; ">CP/CPG 구분</caption>
  3739. <select1 id="rdo_cpgflagcd" ref="/root/main/masterinfo/info/cpgflagcd" navindex="2" visibility="hidden" appearance="full" cellspacing="5" cols="2" overflow="visible" style="left:711px; top:111px; width:50px; height:18px; border-style:none; ">
  3740. <choices>
  3741. <item>
  3742. <label>CP</label>
  3743. <value>01</value>
  3744. </item>
  3745. <item>
  3746. <label>CPG</label>
  3747. <value>02</value>
  3748. </item>
  3749. </choices>
  3750. </select1>
  3751. <button id="btn_index" class="btn_sw" visibility="hidden" group="tab1" style="left:691px; top:111px; width:69px; height:22px; ">
  3752. <caption>색인</caption>
  3753. </button>
  3754. <button id="btn_pack" class="btn_sw" visibility="hidden" group="tab2" style="left:691px; top:111px; width:69px; height:22px; ">
  3755. <caption>묶음CP</caption>
  3756. </button>
  3757. <datagrid id="grd_getindxlist" nodeset="/root/main/indexinfo/item" visibility="hidden" caption="indxNO^indxSeq^indxNM^supIndxNO^indxRefSeq^cpgNo^cpgHistSeq^depth^status" colsep="^" colwidth="45, 51, 50, 66, 73, 49, 72, 41, 39" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:940px; top:0px; width:165px; height:25px; ">
  3758. <col ref="indxno"/>
  3759. <col ref="indxseq"/>
  3760. <col ref="indxnm"/>
  3761. <col ref="supindxno"/>
  3762. <col ref="indxrefseq"/>
  3763. <col ref="cpgno"/>
  3764. <col ref="cpghistseq"/>
  3765. <col ref="depth"/>
  3766. <col ref="status"/>
  3767. </datagrid>
  3768. <input id="ipt_times_old" ref="/root/main/stepinfo/info/times" class="input_default" navindex="22" visibility="hidden" style="left:1149px; top:34px; width:45px; height:19px; "/>
  3769. <select1 id="ipt_times" ref="/root/main/stepinfo/info/times" navindex="22" visibility="hidden" appearance="minimal" style="left:696px; top:111px; width:20px; height:19px; ">
  3770. <choices>
  3771. <itemset nodeset="/root/temp1/daylist/day">
  3772. <label ref="nm"/>
  3773. <value ref="id"/>
  3774. </itemset>
  3775. </choices>
  3776. <script type="javascript" ev:event="xforms-value-changed">
  3777. <![CDATA[
  3778. //var currStepno = parseInt(model.getValue("/root/main/steplist/info/stepno"));
  3779. var stepno = parseInt(model.getValue("/root/main/stepinfo/info/stepno"));
  3780. var times = model.getValue("/root/main/stepinfo/info/times");
  3781. var memo = model.getValue("/root/main/stepinfo/info/stepmemo");
  3782. //ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/stepmemo", memo);
  3783. ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/times", times);
  3784. ivw_outline.grp_swimline.refresh();
  3785. if( ivw_outline.model.getValue("/root/main/steplist/info[" + stepno + "]/m") == "" ){
  3786. ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/m", "u" );
  3787. }
  3788. //day 이미지를 생성한다.
  3789. ivw_outline.window.javascript.fSetDayImage(stepno, times);
  3790. ]]>
  3791. </script>
  3792. </select1>
  3793. <input id="ipt_stepnm" ref="/root/main/stepinfo/info/stepnm" class="input_default" navindex="22" visibility="hidden" style="left:716px; top:111px; width:18px; height:19px; ">
  3794. <script type="javascript" ev:event="xforms-value-changed">
  3795. <![CDATA[
  3796. var stepno = parseInt(model.getValue("/root/main/stepinfo/info/stepno"));
  3797. var times = model.getValue("/root/main/stepinfo/info/times");
  3798. var memo = model.getValue("/root/main/stepinfo/info/stepmemo");
  3799. var stepnm = model.getValue("/root/main/stepinfo/info/stepnm");
  3800. //ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/stepmemo", memo);
  3801. //ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/times", times);
  3802. ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/stepnm", stepnm);
  3803. ivw_outline.grp_swimline.refresh();
  3804. if( ivw_outline.model.getValue("/root/main/steplist/info[" + stepno + "]/m") == "" ){
  3805. ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/m", "u" );
  3806. }
  3807. ]]>
  3808. </script>
  3809. </input>
  3810. <textarea id="tar_stepmemo" ref="/root/main/stepinfo/info/stepmemo" navindex="24" visibility="hidden" style="left:695px; top:111px; width:23px; height:17px; ">
  3811. <script type="javascript" ev:event="DOMFocusIn">
  3812. <![CDATA[
  3813. tar_stepmemo.attribute("height") = "50px";
  3814. tar_stepmemo.refresh();
  3815. ]]>
  3816. </script>
  3817. <script type="javascript" ev:event="DOMFocusOut">
  3818. <![CDATA[
  3819. tar_stepmemo.attribute("height") = "19px";
  3820. tar_stepmemo.refresh();
  3821. ]]>
  3822. </script>
  3823. </textarea>
  3824. <caption id="cap_outlineinfo" class="tit_2" visibility="hidden" style="left:716px; top:119px; width:15px; height:13px; ">Outline 정보</caption>
  3825. <button id="btn_detail_popup" class="btn5_letter4" style="left:254px; top:117px; width:64px; height:19px; ">
  3826. <caption>상세보기</caption>
  3827. <script type="javascript" ev:event="DOMActivate">
  3828. <![CDATA[
  3829. fOpenStepDetlInfo();
  3830. ]]>
  3831. </script>
  3832. <hint>
  3833. <![CDATA[CP 원처방 정보를 팝업으로 보여줍니다.]]>
  3834. </hint>
  3835. </button>
  3836. <switch id="swt_formatt" style="left:0px; top:25px; width:1206px; height:80px; background-color:#993366; border-style:solid; ">
  3837. <case id="att_tab" selected="true">
  3838. <datagrid id="grd_attfile" nodeset="/root/main/attfileinfo/attach" caption="파일명^경로^caption1" colsep="^" colwidth="472, 100, 30" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:687px; top:0px; width:515px; height:77px; ">
  3839. <col ref="attfilenm" style="left:20px; top:23px; width:4zz31px; height:23px; "/>
  3840. <col ref="file" visibility="hidden"/>
  3841. <col ref="check" type="checkbox" visibility="hidden"/>
  3842. </datagrid>
  3843. <datagrid id="grd_formlist" nodeset="/root/main/formlist/info" caption="^Day^STEP^작성일^서식명^상태^서식코드^구분(동의서여부)^caption1" colsep="^" colwidth="20, 33, 70, 70, 286, 57, 83, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:87px; top:0px; width:510px; height:77px; ">
  3844. <col ref="formseq" type="output" visibility="hidden"/>
  3845. <col ref="times" type="output"/>
  3846. <col ref="stepnm" type="output"/>
  3847. <col ref="prcpdd" type="output" format="yyyy-mm-dd"/>
  3848. <col ref="formnm" type="output"/>
  3849. <col disabled="true" ref="status" type="combo">
  3850. <choices>
  3851. <item>
  3852. <label>출력</label>
  3853. <value>P</value>
  3854. </item>
  3855. <item>
  3856. <label>반납</label>
  3857. <value>R</value>
  3858. </item>
  3859. <item>
  3860. <label>반납확인</label>
  3861. <value>C</value>
  3862. </item>
  3863. <item>
  3864. <label>삭제</label>
  3865. <value>D</value>
  3866. </item>
  3867. <item>
  3868. <label>출력취소</label>
  3869. <value>CP</value>
  3870. </item>
  3871. <item>
  3872. <label>반납취소</label>
  3873. <value>CR</value>
  3874. </item>
  3875. <item>
  3876. <label>반납확인취소</label>
  3877. <value>CC</value>
  3878. </item>
  3879. <item>
  3880. <label>삭제취소</label>
  3881. <value>CD</value>
  3882. </item>
  3883. <item>
  3884. <label>임시저장</label>
  3885. <value>0T</value>
  3886. </item>
  3887. <item>
  3888. <label>인증저장</label>
  3889. <value>0S</value>
  3890. </item>
  3891. <item>
  3892. <label>미작성</label>
  3893. <value>0N</value>
  3894. </item>
  3895. <item>
  3896. <label>미발행</label>
  3897. <value>10</value>
  3898. </item>
  3899. <item>
  3900. <label>발행</label>
  3901. <value>20</value>
  3902. </item>
  3903. <item>
  3904. <label>재발행</label>
  3905. <value>30</value>
  3906. </item>
  3907. <item>
  3908. <label>재출력</label>
  3909. <value>40</value>
  3910. </item>
  3911. <item>
  3912. <label>취소</label>
  3913. <value>C04</value>
  3914. </item>
  3915. <item>
  3916. <label>취소</label>
  3917. <value>C05</value>
  3918. </item>
  3919. <item>
  3920. <label>의뢰임시</label>
  3921. <value>C11</value>
  3922. </item>
  3923. <item>
  3924. <label>의뢰</label>
  3925. <value>C12</value>
  3926. </item>
  3927. <item>
  3928. <label>의뢰확정</label>
  3929. <value>C20</value>
  3930. </item>
  3931. <item>
  3932. <label>회신임시</label>
  3933. <value>C21</value>
  3934. </item>
  3935. <item>
  3936. <label>회신</label>
  3937. <value>C22</value>
  3938. </item>
  3939. <item>
  3940. <label>회신확정</label>
  3941. <value>C30</value>
  3942. </item>
  3943. <item>
  3944. <label>추가임시</label>
  3945. <value>C31</value>
  3946. </item>
  3947. <item>
  3948. <label>추가회신</label>
  3949. <value>C32</value>
  3950. </item>
  3951. <item>
  3952. <label>추가확정</label>
  3953. <value>C40</value>
  3954. </item>
  3955. </choices>
  3956. </col>
  3957. <col ref="formcd" visibility="hidden"/>
  3958. <col ref="formprogflag" visibility="hidden"/>
  3959. <col ref="formrecseq" visibility="hidden"/>
  3960. <script type="javascript" ev:event="ondblclick">
  3961. <![CDATA[
  3962. //if(grd_formlist.isCell(event.target) && grd_formlist.mouseCol >= 1 && grd_formlist.row>0 && grd_formlist.row<=grd_formlist.rows ){
  3963. // var sRow = grd_formlist.mouseRow;
  3964. //}else{
  3965. var sRow = grd_formlist.row; //환자계획표에서 서식을 띄울수도 있으므로
  3966. //}
  3967. if( sRow >= grd_formlist.fixedRows ) {
  3968. var formProgFlag = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formprogflag");
  3969. var cnstYNflag = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/recvdeptcd");
  3970. var mon = getCurrentMonitorNumber();
  3971. if( formProgFlag == "OCR" ){
  3972. //OCD(동의서)
  3973. //mainObj.window.javascript.open("SMMRF02300");
  3974. var prcpgenrflag = model.getValue ("/root/patflag/list/prcpgenrflag");
  3975. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  3976. if ( prcpgenrflag == "O" ) {
  3977. var orddd = model.getValue ( "/root/paminfo/list/orddd" );
  3978. } else {
  3979. var orddd = model.getValue ( "/root/paminfo/list/indd" );
  3980. }
  3981. var cretno = model.getValue("/root/paminfo/list/cretno");
  3982. var ordtype = model.getValue ("/root/paminfo/list/ioflag");
  3983. var formtypecls = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formtypecls");
  3984. var ocrtagprntyn = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/ocrtagprntyn");
  3985. //ivw_ocr.window.javascript.fGetOCRInfo(formcd, iPid, iOrddd, iCretno, iIoflag, formtypecls, ocrtagprntyn);
  3986. //ivw_ocr.visible = true;model.setValue("/root/temp/cpform/formcd", formcd);
  3987. //ivw_ocr.window.javascript.fPrint();
  3988. modal( "SMMRF02300" );
  3989. //model.setValue("/root/temp/cpform/formcd", formcd);
  3990. fGetFormList("R"); //서식목록을 조회한다(재조회)
  3991. //fsetFormGlobalVariable(); //서식 우선순위 설정
  3992. }else if( formProgFlag == "PROF" ){
  3993. //제증명
  3994. var mainObj = getMainViewer();
  3995. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  3996. var formrecseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq");
  3997. var sortseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formseq");
  3998. model.makeValue("/root/temp/popup/pid" , iPid);
  3999. model.makeValue("/root/temp/popup/orddd" , iOrddd);
  4000. model.makeValue("/root/temp/popup/cretno" , iCretno);
  4001. model.makeValue("/root/temp/popup/ordtype" , iIoflag);
  4002. model.makeValue("/root/temp/popup/disflag" , "popup");
  4003. model.makeValue("/root/temp/popup/profcertseq/formrecseq", formrecseq);
  4004. /*
  4005. model.makeValue("/root/temp/popup/formcd", formcd);
  4006. model.makeValue("/root/temp/popup/formrecseq", formrecseq);
  4007. model.makeValue("/root/temp/popup/sortseq", sortseq);
  4008. */
  4009. mainObj.window.javascript.open("SMMMR02900", mon, 0, 0, "SMMMR02900", "/root/temp/popup", "/root/temp/popup" );
  4010. modal("SMMMR02900", mon, 0, 0, "SMMMR02900", "/root/temp/popup", "/root/temp/popup" );
  4011. fGetFormList("R"); //서식목록을 조회한다(재조회)
  4012. }else{
  4013. if (cnstYNflag =="-" ) { // 수신과가 없는 경우는 일반 서식임.
  4014. //서식 fOpenRec();
  4015. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  4016. var formrecseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq");
  4017. if (formrecseq == "" && model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq1") != "") { //20130524 정창혁
  4018. formrecseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq1");
  4019. }
  4020. var seq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formseq");
  4021. var prcpdd = ""; //조회일자
  4022. if (cpgflagcd=="02" && isNull(formrecseq)) prcpdd = getCurrentDate(); //CPG는 현재일자로 열어줌 (2010.06.03 JJE)
  4023. else prcpdd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/prcpdd");
  4024. var calledflag = "cpgmain|" + seq; // 서식프로그램에서 알 수 있도록 CP구분자 + 서식 seq (필요하면 값을 더 추가)
  4025. var mainObj = getMainViewer();
  4026. var OpenFormYN = mainObj.instance1.selectSingleNode( "/root/hidden/choinewform" );
  4027. if( OpenFormYN == null ){
  4028. //messageBox("진료기록 메인 화면을 여는 중입니다. \n조회할 서식을 다시 한번", "C002");
  4029. fGetFormList("O"); //서식목록을 조회한다(재조회)
  4030. return;
  4031. }
  4032. else{
  4033. //서식로더에서 필료한 파라메터 설정 (2010.05.26 JJE)
  4034. mainObj.window.javaScript.setParameter("disppatinfo", iPid + "▦" + iHngnm + "▦" + iSex+"/"+iAge + "▦" + iOrddeptnm + "▦" + iRoomcd );
  4035. //수술기록지/DSC기록지 선택 시, 환자의 예약수술이 1건인 경우, 수술예약번호를 던진다 (상단 수술예약번호 정보)
  4036. var srcformcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/srcformcd");
  4037. if( srcformcd == "0000000676" || srcformcd == "0000003325" ){
  4038. model.makeValue( "/root/send/pamdata/pid" , model.getValue("/root/paminfo/list/pid") );
  4039. model.makeValue( "/root/send/pamdata/orddd" , iOrddd );
  4040. var rsrvOpCnt = 0;
  4041. //if( instance1.selectSingleNode("/root/temp1/oplist/info") == null ){
  4042. submit("TRMMP02801", false);
  4043. //}
  4044. rsrvOpCnt = instance1.selectNodes("/root/temp1/oplist/info").length;
  4045. if( rsrvOpCnt > 1 ){
  4046. setParameter ( "SMMMO00800_returnFlag", "OCR" );
  4047. modal("SPMMP02800", 1, 0, 0, "SPMMP02800", "/root/paminfo/list", "/root/send/pamdata" );
  4048. if( getParameter("SMMMO00800_returnFlag") == "OCR" ){
  4049. //리스트 팝업에서 선택하지 않고, 그냥 닫은 경우
  4050. rsrvOpCnt = 0;
  4051. }else{
  4052. //리스트에서 1건 선택하거나, 그외의 경우, 수술예약리스트에서 1건을 택했을 수 있으므로, 다시 카운트한다
  4053. rsrvOpCnt = instance1.selectNodes("/root/temp1/oplist/info").length;
  4054. }
  4055. clearParameter( "SMMMO00800_returnFlag" );
  4056. }
  4057. if( rsrvOpCnt == 1 ){
  4058. var opstatcd = model.getValue("/root/temp1/oplist/info/opstatcd");
  4059. //확정된 수술이 1건 존재 시,
  4060. if(opstatcd != "00" && opstatcd != "10"){
  4061. //수술기록예정일 = 수술확정일
  4062. //if(model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/prcpdd") == model.getValue("/root/temp1/oplist/info/opcnfmdd"))
  4063. var ioflag = "T" // 수술일 경우 ioflag:T
  4064. var pid = iPid
  4065. var opcnfmdd = model.getValue("/root/temp1/oplist/info/opcnfmdd");
  4066. var cretno = "";
  4067. var instcd = model.getValue ( "/root/paminfo/list/instcd" );
  4068. var perfdeptcd = model.getValue("/root/temp1/oplist/info/perfdeptcd"); //v
  4069. var perfdrid = model.getValue("/root/temp1/oplist/info/perfdrid"); //v
  4070. var patflag = iPrcpgenrflag
  4071. var procflag = "F"; // 최초조회:F , 재조회:R
  4072. var oprsrvno = model.getValue("/root/temp1/oplist/info/oprsrvno");
  4073. var ophistno = model.getValue("/root/temp1/oplist/info/ophistno"); //v
  4074. var srchdd = ""; //조회일자
  4075. if (cpgflagcd=="02" && isNull(formrecseq)) srchdd = getCurrentDate(); //CPG는 현재일자로 열어줌 (2010.06.03 JJE)
  4076. else srchdd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/prcpdd"); //조회일자
  4077. var param = ioflag + "▦" +
  4078. pid + "▦" +
  4079. opcnfmdd + "▦" +
  4080. cretno + "▦" +
  4081. instcd + "▦" +
  4082. perfdeptcd + "▦" +
  4083. perfdrid + "▦" +
  4084. patflag + "▦" +
  4085. procflag + "▦" +
  4086. oprsrvno + "▦" +
  4087. ophistno + "▦" +
  4088. srchdd;
  4089. setParameter("condparam", param);
  4090. modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  4091. }
  4092. } //end if( rsrvOpCnt == 1 )
  4093. model.removeNodeset("/root/send/pamdata");
  4094. }
  4095. }
  4096. mainObj.window.javascript.fOpenFormByOther(formcd, formrecseq, calledflag, prcpdd);
  4097. } else { // 컨설트를 오픈할 경우
  4098. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  4099. var cnstflag = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/cnstflag");
  4100. var recvdeptcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/recvdeptcd");
  4101. var recvuserid = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/recvuserid");
  4102. var cnstclsnm = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/cnstclsnm");
  4103. var cnstcnts = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/cnstcnts");
  4104. var formrecseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq");
  4105. if (isNull(formrecseq)) {
  4106. setParameter("openmode", "newcnstform"); //오픈모드
  4107. setParameter("formcd", formcd); //서식코드
  4108. setParameter("SMMMR04900_cnstflag", cnstflag); //의뢰구분(1:진료의뢰, 3:타과의뢰)
  4109. setParameter("SMMMR04900_cnstdeptcd", recvdeptcd); //수신과코드
  4110. setParameter("SMMMR04900_drid", recvuserid); //수신사용자
  4111. setParameter("SMMMR04900_formnm", cnstclsnm); //서식명
  4112. setParameter("reqcnts", cnstcnts); //자동입력내용
  4113. setParameter("reqoverwrite", "false"); //기록 덮어쓰기여부
  4114. modal("SSMMR01100", 1, 0, 0, "", "", "");
  4115. clearParameter("openmode");
  4116. clearParameter("formcd");
  4117. clearParameter("SMMMR04900_cnstflag");
  4118. clearParameter("SMMMR04900_cnstdeptcd");
  4119. clearParameter("SMMMR04900_drid");
  4120. clearParameter("SMMMR04900_formnm");
  4121. clearParameter("reqcnts");
  4122. clearParameter("reqoverwrite");
  4123. } else {
  4124. setParameter("openmode", "recform"); //오픈모드는 “recform”
  4125. setParameter("formrecseq", formrecseq);
  4126. modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  4127. clearParameter("openmode");
  4128. clearParameter("formrecseq");
  4129. }
  4130. }
  4131. }
  4132. }
  4133. // fSnedValToCpWnd (formCode, formrecseq, flag)
  4134. ]]>
  4135. </script>
  4136. </datagrid>
  4137. <caption id="cap_formlist" class="cell_1" style="left:0px; top:1px; width:85px; height:75px; ">서식목록</caption>
  4138. <caption id="cap_attfile" class="cell_1" style="left:601px; top:1px; width:85px; height:56px; ">첨부파일</caption>
  4139. <button id="brn_download" class="btn2_letter6" style="left:601px; top:58px; width:86px; height:19px; ">
  4140. <caption>다운로드</caption>
  4141. <script type="javascript" ev:event="DOMActivate">
  4142. <![CDATA[
  4143. //저장한 파일을 다운로드한다.
  4144. var attLength = instance1.selectNodes("/root/main/attfileinfo/attach").length;
  4145. var iRow = 0;
  4146. if( attLength <= 0 ){
  4147. iRow = 0;
  4148. var msg = messageBox("다운로드 할 파일이", "E014");
  4149. return;
  4150. }else{
  4151. if( grd_attfile.row > 0 ){
  4152. iRow = grd_attfile.row;
  4153. }else{
  4154. if( attLength == 1 ) iRow = 1;
  4155. }
  4156. }
  4157. if( iRow == 0 ) {
  4158. var msg = messageBox("다운로드 할 파일을", "C002");
  4159. return;
  4160. } else {
  4161. fDownLoadFile( iRow );
  4162. }
  4163. ]]>
  4164. </script>
  4165. </button>
  4166. <datagrid id="grd_inqr" nodeset="/root/main/inqrinfo/inqrheader" visibility="hidden" caption="STEP^작성일^문진팝업명^상태" colsep="^" colwidth="112, 74, 225, 60" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:687px; top:0px; width:513px; height:77px; ">
  4167. <col ref="stepnm" type="output" style="left:20px; top:23px; width:4zz31px; height:23px; "/>
  4168. <col ref="inqranswdd" type="output" format="yyyy-mm-dd"/>
  4169. <col ref="title" type="output"/>
  4170. <col disabled="true" ref="inqrstatcd" type="combo">
  4171. <choices>
  4172. <item>
  4173. <label>작성</label>
  4174. <value>E</value>
  4175. </item>
  4176. <item>
  4177. <label>확인</label>
  4178. <value>C</value>
  4179. </item>
  4180. <item>
  4181. <label>미작성</label>
  4182. <value>-</value>
  4183. </item>
  4184. <item>
  4185. <label>미작성</label>
  4186. <value>N</value>
  4187. </item>
  4188. </choices>
  4189. </col>
  4190. <script type="javascript" ev:event="ondblclick">
  4191. <![CDATA[
  4192. fLoadInqrPopup("SEL"); //문진팝업호출
  4193. ]]>
  4194. </script>
  4195. </datagrid>
  4196. </case>
  4197. <case id="incompletion_tab" style="left:0px; top:0px; width:1204px; height:78px; ">
  4198. <datagrid id="grd_errprcplist" nodeset="/root/main/invalprcplist/saveinvaliprcplist" visibility="hidden" caption="완성^종류^처방일자^처방명^오류 메세지^총용량^총용량^수량^수량^횟수^일수^급비^용법/검체^MIX^전달^원내외^처치부서^희망일자^선택진료^등록일시^등록자^처방코드" colsep="^" colwidth="50, 60, 75, 115, 315, 45, 27, 37, 27, 40, 37, 56, 150, 38, 40, 50, 100, 80, 57, 80, 80, 0" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:0px; width:1203px; height:77px; ">
  4199. <col ref="valyn" type="inputbutton"/>
  4200. <col class="gridcombo" ref="prcpkindcd" type="combo" style="text-align:center; focus-rect:visible; ">
  4201. <choices>
  4202. <itemset nodeset="/root/init/prcpkindcd/M0003">
  4203. <label ref="cdnm"/>
  4204. <value ref="cdid"/>
  4205. </itemset>
  4206. </choices>
  4207. </col>
  4208. <col ref="prcpdd" format="yyyy-mm-dd" style="left:20px; top:23px; width:4zz31px; height:23px; "/>
  4209. <col ref="prcpnm"/>
  4210. <col ref="incpltnresn"/>
  4211. <col ref="prcpvol" type="input" format="#.#" maxlength="5.3" style="text-align:center; focus-rect:visible; "/>
  4212. <col ref="prcpvolunitnm" type="output" style="text-align:center; focus-rect:visible; "/>
  4213. <col ref="prcpqty" type="input" format="#.#" maxlength="5.3" style="text-align:center; focus-rect:visible; "/>
  4214. <col ref="prcpqtyunitnm" style="text-align:center; focus-rect:visible; "/>
  4215. <col ref="prcptims" type="input" format="#" style="text-align:center; focus-rect:visible; "/>
  4216. <col ref="prcpdayno" type="input" format="#" style="text-align:center; focus-rect:visible; "/>
  4217. <col ref="payflagcd" type="combo">
  4218. <choices>
  4219. <itemset nodeset="/root/init/payflagcd/M0029">
  4220. <label ref="cdnm"/>
  4221. <value ref="cdid"/>
  4222. </itemset>
  4223. </choices>
  4224. </col>
  4225. <col ref="drugmthdspccdnm" type="output" style="focus-rect:visible; "/>
  4226. <col ref="prcpmixno" type="input" style="focus-rect:visible; "/>
  4227. <col ref="prcpdelivefact" style="focus-rect:visible; "/>
  4228. <col disabled="true" ref="hosinhosoutflag" type="combo" style="text-align:center; focus-rect:visible; ">
  4229. <choices>
  4230. <item>
  4231. <label>원내</label>
  4232. <value>I</value>
  4233. </item>
  4234. <item>
  4235. <label>원외</label>
  4236. <value>O</value>
  4237. </item>
  4238. <item>
  4239. <label/>
  4240. <value/>
  4241. </item>
  4242. </choices>
  4243. </col>
  4244. <col class="gridcombo" ref="prcpexecdeptcd" type="combo" style="focus-rect:visible; ">
  4245. <choices>
  4246. <itemset nodeset="/root/init/orddept/dept">
  4247. <![CDATA[s]]>
  4248. <label ref="depthngnm"/>
  4249. <value ref="deptcd"/>
  4250. </itemset>
  4251. </choices>
  4252. </col>
  4253. <col ref="prcphopedd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; focus-rect:visible; "/>
  4254. <col checkvalue="Y,N" ref="choiordflag" type="checkbox" style="focus-rect:visible; "/>
  4255. <col ref="rgsttm" visibility="hidden" format="yyyy-mm-dd"/>
  4256. <col ref="rgstridnm" visibility="hidden"/>
  4257. <col ref="prcpcd"/>
  4258. <script type="javascript" ev:event="ondblclick">
  4259. <![CDATA[
  4260. if( model.getValue("/root/temp1/authyn") == "N" ){
  4261. return;
  4262. }
  4263. invalYN_SMMMO00110 = "Y";
  4264. if( grd_errprcplist.isCell(event.target) && grd_errprcplist.mouseCol >= 2 && grd_errprcplist.row>0 && grd_errprcplist.row<=grd_errprcplist.rows ){
  4265. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "-");
  4266. var prcpclscd = model.getValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/prcpclscd");
  4267. var status = model.getValue( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status");
  4268. // "/root/main/prcp" 일괄저장시 사용하는 경로이므로, 값을 받기 위해서 잠깐 사용하고, 이벤트가 끝나면 "/root/main/prcp" 를 비워준다
  4269. model.removeNodeset("/root/main/prcp/prcplist");
  4270. var errTgrPrcpNode = instance1.selectNodes("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]"); //X
  4271. var trgErrPrcpList = getNodeListCSV(errTgrPrcpNode); //X
  4272. var errPrcpNode = instance1.selectNodes("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]"); //O
  4273. var errPrcpList = getNodeListCSV(errPrcpNode); //O
  4274. setCSVToNode("/root/main/prcp", errPrcpList, "prcplist");
  4275. var beforePrcpNode = instance1.selectNodes("/root/main/prcp/prcplist[" + 1 + "]"); //O
  4276. var beforeErrPrcpList = getNodeListCSV(beforePrcpNode); //O
  4277. var prcpName = model.getValue("/root/main/prcp/prcplist/prcpnm");
  4278. //처방 상세팝업에서 grd_prcplist 의 노드를 사용하기 때문에 수동으로 설정해준다
  4279. prcpNode = "/root/main/prcp/prcplist";
  4280. srcNode = "/root/main/invalprcplist/saveinvaliprcplist";
  4281. //var curRow = grd_errprcplist.row;
  4282. // grd_prcplist.select(1, 2) = true;
  4283. //처방 종류에 따라 다른 팝업을 띄운다
  4284. if ( grd_errprcplist.col == grd_errprcplist.colref("drugmthdspccdnm") && status != "S" ) {
  4285. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
  4286. fPrcpModal ("SPMMO01900", 500, 200); //복용방법 팝업
  4287. } else if ( prcpclscd == "B2" || prcpclscd == "B4" || prcpclscd == "B6" ) {
  4288. fGetSpc(1); //진단검사 검체 호출
  4289. }
  4290. } else if ( grd_errprcplist.col == "15" && status != "S" ) {
  4291. fPrcpdelivefact( "M" ); //전달사항 일괄입력
  4292. } else if ( status != "S" ) {
  4293. fPrcpDetl(1); //처방상세팝업
  4294. }
  4295. //팝업이 닫힌 후, 선택한 로우의 값이 변경되었다면, row의 status를 update 로 바꾼다
  4296. var afterPrcpList = instance1.selectNodes("/root/main/prcp/prcplist[" + 1 + "]");
  4297. var afterErrPrcpList = getNodeListCSV(afterPrcpList);
  4298. if( beforeErrPrcpList != afterErrPrcpList ){ //변경이 이루어졌을 경우,
  4299. grd_errprcplist.rowStatus(grd_errprcplist.row) = 2;
  4300. model.setValue("/root/main/prcp/prcplist[" + 1 + "]/status", "U"); //인증저장은 처음 insert 이므로(But, 프로토콜처방은 update)
  4301. model.setValue("/root/main/prcp/prcplist[" + 1 + "]/prcpnm", prcpName); // ★ 왜 처방명이 사라지는지 모르겠다...!!
  4302. model.copyNode( "/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]", "/root/main/prcp/prcplist[" + 1 + "]" );
  4303. grd_errprcplist.refresh();
  4304. }
  4305. }else{
  4306. invalYN_SMMMO00110 = "N";
  4307. return;
  4308. }
  4309. invalYN_SMMMO00110 = "N";
  4310. model.removeNodeset("/root/main/prcp/prcplist");
  4311. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  4312. //grp_biz.attribute("overflow") = "hidden";
  4313. ]]>
  4314. </script>
  4315. <script type="javascript" ev:event="xforms-value-changed">
  4316. <![CDATA[
  4317. model.setValue("/root/main/invalprcplist/saveinvaliprcplist[" + grd_errprcplist.row + "]/status", "U"); //인증저장은 처음 insert 이므로(But, 프로토콜처방은 update)
  4318. // alert( imp_prcp.attribute("width") + " x " + imp_prcp.attribute("height"));
  4319. // alert( ivw_outline.attribute("width") + " x " + ivw_outline.attribute("height"));
  4320. ]]>
  4321. </script>
  4322. <script type="javascript" ev:event="onbuttonclick">
  4323. <![CDATA[
  4324. invalYN_SMMMO00110 = "Y";
  4325. if( fTretInvalPrcp() ){ //해당 미완성 처방 완성
  4326. return;
  4327. //grd_errprcplist.refresh();
  4328. btn_savecomplprcp.dispatch("DOMActivate"); //미완성처방 일괄 저장
  4329. }
  4330. invalYN_SMMMO00110 = "N";
  4331. model.removeNodeset("/root/main/prcp/prcplist");
  4332. model.removeNodeset("/root/temp1/tmpprcplist/prcplist");
  4333. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  4334. grd_prcplist.nodeset = "/root/main/prcp/prcplist"; // /root/temp1/tmpprcplist/prcplist
  4335. model.recalculate();
  4336. ]]>
  4337. </script>
  4338. </datagrid>
  4339. <iviewer id="ivw_invalprcp" style="left:0px; top:0px; width:1203px; height:77px; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; "/>
  4340. </case>
  4341. <case id="monitoring_tab">
  4342. <datagrid id="grd_monitoringlist" nodeset="/root/main/mntrinfo/mntrlist" caption="모니터링 제목^모니터링 조건 (IF)^충족건수^방법^진행상태^OFF^cpgappno^alertprecondyn^slipno^sliphistno^cpgno^cpghistseq^cpgmntrflag^guidedocucnts^stepno^stepnm^alertcondflag^orddrid" colsep="^" colwidth="170, 220, 70, 106, 55, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0" ellipsis="true" mergecells="never" mergecellsfixedrows="never" rowheader="seq" rowsep="|" style="left:0px; top:0px; width:695px; height:77px; ">
  4343. <col ref="slipnm" type="output"/>
  4344. <col ref="alertcnts" type="output"/>
  4345. <col ref="alertcondcnt" type="output"/>
  4346. <col disabled="true" ref="alertgrde" type="combo">
  4347. <choices>
  4348. <itemset nodeset="/root/init/M0507/M0507">
  4349. <label ref="cdnm"/>
  4350. <value ref="cdid"/>
  4351. </itemset>
  4352. </choices>
  4353. </col>
  4354. <col disabled="true" ref="alertstatcd" type="combo">
  4355. <choices>
  4356. <itemset nodeset="/root/init/M0508/M0508">
  4357. <label ref="cdnm"/>
  4358. <value ref="cdid"/>
  4359. </itemset>
  4360. </choices>
  4361. </col>
  4362. <col checkvalue="Y,N" ref="alertoffyn" type="checkbox"/>
  4363. <col ref="cpgappno"/>
  4364. <col ref="alertprecondyn"/>
  4365. <col ref="slipno" type="output"/>
  4366. <col ref="sliphistno" type="output"/>
  4367. <col ref="cpgno" type="output"/>
  4368. <col ref="cpghistseq" type="output"/>
  4369. <col ref="cpgmntrflag" type="output"/>
  4370. <col ref="guidedocucnts" type="output"/>
  4371. <col ref="stepno" type="output"/>
  4372. <col ref="stepnm" type="output"/>
  4373. <col ref="alertcondflag" type="output"/>
  4374. <col ref="orddrid" type="output"/>
  4375. <script type="javascript" ev:event="ondblclick">
  4376. <![CDATA[
  4377. var sRow = grd_monitoringlist.row;
  4378. if ( sRow >= grd_monitoringlist.fixedRows && sRow <grd_monitoringlist.rows ) {
  4379. var slipno = model.getValue("/root/main/mntrinfo/mntrlist[" + sRow + "]/slipno");
  4380. var sliphistno = model.getValue("/root/main/mntrinfo/mntrlist[" + sRow + "]/sliphistno");
  4381. model.removeNodeset("/root/send/reqdata");
  4382. model.makeValue("/root/send/reqdata/cpgappno", appNo_SMMMO00110);
  4383. model.makeValue("/root/send/reqdata/slipno" , slipno);
  4384. model.makeValue("/root/send/reqdata/sliphistno" , sliphistno);
  4385. model.makeValue("/root/send/reqdata/appyn" , "Y");
  4386. model.makeValue("/root/send/reqdata/histjoinyn" , "Y");
  4387. submit("TRMMP00810", true);
  4388. model.removeNodeset("/root/send/reqdata");
  4389. //grd_monitoringinfo.refresh();
  4390. }
  4391. ]]>
  4392. </script>
  4393. <script type="javascript" ev:event="xforms-value-changed">
  4394. <![CDATA[
  4395. var sRow = grd_monitoringlist.row;
  4396. var sCol = grd_monitoringlist.col;
  4397. var slipno = model.getValue("/root/main/mntrinfo/mntrlist[" + sRow + "]/slipno");
  4398. var sliphistno = model.getValue("/root/main/mntrinfo/mntrlist[" + sRow + "]/sliphistno");
  4399. if ( sRow >= grd_monitoringlist.fixedRows && sRow <= grd_monitoringlist.rows ) {
  4400. if( sCol == grd_monitoringlist.colRef("alertoffyn") ){
  4401. if( messageBox( "모니터링 알람 ON/OFF 여부를", "Q012" ) == 7 ){
  4402. return;
  4403. }
  4404. model.removeNodeset("/root/send/reqdata");
  4405. model.makeNode("/root/send/reqdata");
  4406. //model.copyNode("/root/send/reqdata", "/root/main/mntrinfo/mntrlist[slipno='"+slipno+"' and sliphistno='"+sliphistno+"']");
  4407. model.copyNode("/root/send/reqdata", "/root/main/mntrinfo/mntrlist[" + sRow + "]");
  4408. model.makeValue("/root/send/reqdata/cpgappno", appNo_SMMMO00110);
  4409. model.makeValue("/root/send/reqdata/attrflagcd", "1"); //모니터링
  4410. model.makeValue("/root/send/reqdata/status", "U");
  4411. submit( "TXMMP00810", false );
  4412. }
  4413. }
  4414. ]]>
  4415. </script>
  4416. </datagrid>
  4417. <datagrid id="grd_monitoringinfo" nodeset="/root/main/mntrdetlinfo/mntrdetllist" caption="구분^선행^코드^코드명^하한치^하한치^상한치^상한치^내용^단위" colsep="^" colwidth="30, 30, 70, 140, 45, 32, 45, 32, 33, 25" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:698px; top:0px; width:505px; height:75px; ">
  4418. <col checkvalue="Y,N" disabled="true" ref="checkyn" type="checkbox"/>
  4419. <col ref="alertprecondyn"/>
  4420. <col ref="testcd" type="output" format="yyyy-mm-dd"/>
  4421. <col ref="testnm" type="output"/>
  4422. <col ref="reflval" type="output"/>
  4423. <col disabled="true" ref="lvalappflag" type="combo">
  4424. <choices>
  4425. <item>
  4426. <label>이상</label>
  4427. <value>U</value>
  4428. </item>
  4429. <item>
  4430. <label>이하</label>
  4431. <value>D</value>
  4432. </item>
  4433. <item>
  4434. <label>-</label>
  4435. <value>-</value>
  4436. </item>
  4437. </choices>
  4438. </col>
  4439. <col ref="refhval" type="output"/>
  4440. <col disabled="true" ref="hvalappflag" type="combo">
  4441. <choices>
  4442. <item>
  4443. <label>이상</label>
  4444. <value>U</value>
  4445. </item>
  4446. <item>
  4447. <label>이하</label>
  4448. <value>D</value>
  4449. </item>
  4450. <item>
  4451. <label>-</label>
  4452. <value>-</value>
  4453. </item>
  4454. </choices>
  4455. </col>
  4456. <col ref="refcnts" type="output"/>
  4457. <col ref="unitnm" type="output"/>
  4458. <script type="javascript" ev:event="ondblclick">
  4459. <![CDATA[
  4460. //if(grd_formlist.isCell(event.target) && grd_formlist.mouseCol >= 1 && grd_formlist.row>0 && grd_formlist.row<=grd_formlist.rows ){
  4461. // var sRow = grd_formlist.mouseRow;
  4462. //}else{
  4463. var sRow = grd_formlist.row; //환자계획표에서 서식을 띄울수도 있으므로
  4464. //}
  4465. if( sRow >= grd_formlist.fixedRows ) {
  4466. var formProgFlag = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formprogflag");
  4467. var mon = getCurrentMonitorNumber();
  4468. if( formProgFlag == "OCR" ){
  4469. //OCD(동의서)
  4470. //mainObj.window.javascript.open("SMMRF02300");
  4471. var prcpgenrflag = model.getValue ("/root/patflag/list/prcpgenrflag");
  4472. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  4473. if ( prcpgenrflag == "O" ) {
  4474. var orddd = model.getValue ( "/root/paminfo/list/orddd" );
  4475. } else {
  4476. var orddd = model.getValue ( "/root/paminfo/list/indd" );
  4477. }
  4478. var cretno = model.getValue("/root/paminfo/list/cretno");
  4479. var ordtype = model.getValue ("/root/paminfo/list/ioflag");
  4480. var formtypecls = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formtypecls");
  4481. var ocrtagprntyn = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/ocrtagprntyn");
  4482. //ivw_ocr.window.javascript.fGetOCRInfo(formcd, iPid, iOrddd, iCretno, iIoflag, formtypecls, ocrtagprntyn);
  4483. //ivw_ocr.visible = true;model.setValue("/root/temp/cpform/formcd", formcd);
  4484. //ivw_ocr.window.javascript.fPrint();
  4485. modal( "SMMRF02300" );
  4486. //model.setValue("/root/temp/cpform/formcd", formcd);
  4487. fGetFormList("R"); //서식목록을 조회한다(재조회)
  4488. //fsetFormGlobalVariable(); //서식 우선순위 설정
  4489. }else if( formProgFlag == "PROF" ){
  4490. //제증명
  4491. var mainObj = getMainViewer();
  4492. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  4493. var formrecseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq");
  4494. var sortseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formseq");
  4495. model.makeValue("/root/temp/popup/pid" , iPid);
  4496. model.makeValue("/root/temp/popup/orddd" , iOrddd);
  4497. model.makeValue("/root/temp/popup/cretno" , iCretno);
  4498. model.makeValue("/root/temp/popup/ordtype" , iIoflag);
  4499. model.makeValue("/root/temp/popup/disflag" , "popup");
  4500. model.makeValue("/root/temp/popup/profcertseq/formrecseq", formrecseq);
  4501. /*
  4502. model.makeValue("/root/temp/popup/formcd", formcd);
  4503. model.makeValue("/root/temp/popup/formrecseq", formrecseq);
  4504. model.makeValue("/root/temp/popup/sortseq", sortseq);
  4505. */
  4506. mainObj.window.javascript.open("SMMMR02900", mon, 0, 0, "SMMMR02900", "/root/temp/popup", "/root/temp/popup" );
  4507. modal("SMMMR02900", mon, 0, 0, "SMMMR02900", "/root/temp/popup", "/root/temp/popup" );
  4508. fGetFormList("R"); //서식목록을 조회한다(재조회)
  4509. }else{
  4510. //서식 fOpenRec();
  4511. var mainObj = getMainViewer();
  4512. var OpenFormYN = mainObj.instance1.selectSingleNode( "/root/hidden/choinewform" );
  4513. if( OpenFormYN == null ){
  4514. //messageBox("진료기록 메인 화면을 여는 중입니다. \n조회할 서식을 다시 한번", "C002");
  4515. fGetFormList("O"); //서식목록을 조회한다(재조회)
  4516. return;
  4517. }
  4518. else{
  4519. //수술기록지/DSC기록지 선택 시, 환자의 예약수술이 1건인 경우, 수술예약번호를 던진다 (상단 수술예약번호 정보)
  4520. var srcformcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/srcformcd");
  4521. if( srcformcd == "0000000676" || srcformcd == "0000003325" ){
  4522. model.makeValue( "/root/send/pamdata/pid" , model.getValue("/root/paminfo/list/pid") );
  4523. model.makeValue( "/root/send/pamdata/orddd" , iOrddd );
  4524. var rsrvOpCnt = 0;
  4525. //if( instance1.selectSingleNode("/root/temp1/oplist/info") == null ){
  4526. submit("TRMMP02801", false);
  4527. //}
  4528. rsrvOpCnt = instance1.selectNodes("/root/temp1/oplist/info").length;
  4529. if( rsrvOpCnt > 1 ){
  4530. setParameter ( "SMMMO00800_returnFlag", "OCR" );
  4531. modal("SPMMP02800", 1, 0, 0, "SPMMP02800", "/root/paminfo/list", "/root/send/pamdata" );
  4532. if( getParameter("SMMMO00800_returnFlag") == "OCR" ){
  4533. //리스트 팝업에서 선택하지 않고, 그냥 닫은 경우
  4534. rsrvOpCnt = 0;
  4535. }else{
  4536. //리스트에서 1건 선택하거나, 그외의 경우, 수술예약리스트에서 1건을 택했을 수 있으므로, 다시 카운트한다
  4537. rsrvOpCnt = instance1.selectNodes("/root/temp1/oplist/info").length;
  4538. }
  4539. clearParameter( "SMMMO00800_returnFlag" );
  4540. }
  4541. if( rsrvOpCnt == 1 ){
  4542. var opstatcd = model.getValue("/root/temp1/oplist/info/opstatcd");
  4543. //확정된 수술이 1건 존재 시,
  4544. if(opstatcd != "00" && opstatcd != "10"){
  4545. //수술기록예정일 = 수술확정일
  4546. //if(model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/prcpdd") == model.getValue("/root/temp1/oplist/info/opcnfmdd"))
  4547. var ioflag = "T" // 수술일 경우 ioflag:T
  4548. var pid = iPid
  4549. var opcnfmdd = model.getValue("/root/temp1/oplist/info/opcnfmdd");
  4550. var cretno = "";
  4551. var instcd = model.getValue ( "/root/paminfo/list/instcd" );
  4552. var perfdeptcd = model.getValue("/root/temp1/oplist/info/perfdeptcd"); //v
  4553. var perfdrid = model.getValue("/root/temp1/oplist/info/perfdrid"); //v
  4554. var patflag = iPrcpgenrflag
  4555. var procflag = "F"; // 최초조회:F , 재조회:R
  4556. var oprsrvno = model.getValue("/root/temp1/oplist/info/oprsrvno");
  4557. var ophistno = model.getValue("/root/temp1/oplist/info/ophistno"); //v
  4558. var srchdd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/prcpdd"); //조회일자
  4559. var param = ioflag + "▦" +
  4560. pid + "▦" +
  4561. opcnfmdd + "▦" +
  4562. cretno + "▦" +
  4563. instcd + "▦" +
  4564. perfdeptcd + "▦" +
  4565. perfdrid + "▦" +
  4566. patflag + "▦" +
  4567. procflag + "▦" +
  4568. oprsrvno + "▦" +
  4569. ophistno + "▦" +
  4570. srchdd;
  4571. setParameter("condparam", param);
  4572. modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  4573. }
  4574. } //end if( rsrvOpCnt == 1 )
  4575. model.removeNodeset("/root/send/pamdata");
  4576. }
  4577. }
  4578. var formcd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formcd");
  4579. var formrecseq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formrecseq");
  4580. var seq = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/formseq");
  4581. var prcpdd = model.getValue("/root/main/formlist/info["+ grd_formlist.row +"]/prcpdd"); //조회일자
  4582. var calledflag = "cpgmain|" + seq; // 서식프로그램에서 알 수 있도록 CP구분자 + 서식 seq (필요하면 값을 더 추가)
  4583. mainObj.window.javascript.fOpenFormByOther(formcd, formrecseq, calledflag, prcpdd);
  4584. }
  4585. }
  4586. // fSnedValToCpWnd (formCode, formrecseq, flag)
  4587. ]]>
  4588. </script>
  4589. </datagrid>
  4590. </case>
  4591. </switch>
  4592. <button id="btn_formatt" class="btn_sw" group="tab2" selected="true" style="left:0px; top:4px; width:110px; height:22px; ">
  4593. <caption>서식 / 첨부파일</caption>
  4594. <script type="javascript" ev:event="DOMActivate">
  4595. <![CDATA[
  4596. model.toggle("att_tab");
  4597. btn_savecomplprcp.visible = false;
  4598. ]]>
  4599. </script>
  4600. </button>
  4601. <button id="btn_savecomplprcp" class="btn2_letter2" visibility="hidden" style="left:1164px; top:4px; width:42px; height:19px; ">
  4602. <caption>저장</caption>
  4603. <script type="javascript" ev:event="DOMActivate">
  4604. <![CDATA[
  4605. btn_allInfoSave.selected = false;
  4606. setParameter("saveInvaPrcplYN", "Y");
  4607. if( ivw_invalprcp.window.javascript.fSaveInvalPrcp( cpgflagcd ) == true ){
  4608. //return;
  4609. //if( stopSavePrcpYN_SMMMO00110 != "Y" ){
  4610. //저장성공, 정상종료 => 처방 노드셋 및 그리드 초기화
  4611. clickBtnNm_SMMMO00110 = "";
  4612. fGetErrPrcpList(); //미완성처방을 다시 조회한다
  4613. model.makeValue("/root/temp1/getdata/srchcond", "2"); //조회조건 1:로딩 및 재조회, 2:적용 후 재조회, 3:퇴원예고시 문진조회 (20090.5.19 JJE)
  4614. submit("TRMMP00803", false); //steppath 조회
  4615. if( instance1.selectSingleNode("/root/main/steppath/appinfo/appstat") != null ){
  4616. model.makeValue( "/root/temp1/getdata/appstat", model.getValue("/root/main/steppath/appinfo/appstat") );
  4617. appStat = model.getValue("/root/main/steppath/appinfo/appstat");
  4618. model.removeNodeset("/root/main/steppath/appinfo");
  4619. model.removeNodeset("/root/send/srchcond");
  4620. model.removeNodeset("/root/send/steplist");
  4621. model.removeNodeset("/root/send/delprcplist");
  4622. fRemoveSaveNodeList( 2 );
  4623. ivw_invalprcp.grd_prcplist.refresh();
  4624. tab_refresh();
  4625. fResetStepFlag(); //CPG의 경우 Step의 S/E flag 재설정
  4626. }
  4627. }
  4628. /*
  4629. else{
  4630. alert("return false");
  4631. }
  4632. */
  4633. clearParameter ( "saveInvaPrcplYN" );
  4634. model.removeNodeset("/root/temp1/tmpprcplist/prcplist");
  4635. ]]>
  4636. </script>
  4637. <hint>
  4638. <![CDATA[완성된 미완성 처방을 저장합니다.]]>
  4639. </hint>
  4640. </button>
  4641. <button id="btn_saveincomplprcp" class="btn_sw" group="tab2" style="left:110px; top:4px; width:84px; height:22px; ">
  4642. <caption>미완성처방</caption>
  4643. <script type="javascript" ev:event="DOMActivate">
  4644. <![CDATA[
  4645. model.toggle("incompletion_tab");
  4646. //무조건 재조회 (2008.10.15 JJE)
  4647. //if( btn_savecomplprcp.visible == false ){
  4648. fGetErrPrcpList();
  4649. //}
  4650. ]]>
  4651. </script>
  4652. </button>
  4653. <button id="btn_detail_tab" class="btn_sw" group="tab3" style="left:0px; top:115px; width:82px; height:22px; ">
  4654. <caption>환자계획표</caption>
  4655. <script type="javascript" ev:event="DOMActivate">
  4656. <![CDATA[
  4657. var tCase = 0;
  4658. if( ivw_detail.src != "../../../emr/cpgweb/xrw/SPMMP02200_DetailView.xrw" ){
  4659. ivw_detail.src = "../../../emr/cpgweb/xrw/SPMMP02200_DetailView.xrw";
  4660. }else{
  4661. if( ivw_outline.attribute("top") == 27 ){
  4662. tCase = 1;
  4663. grp_prcp.attribute("top") = 27;
  4664. grp_prcp.attribute("height") = 880;
  4665. imp_prcp.attribute("top") = 0;
  4666. imp_prcp.attribute("height") = 880;
  4667. ivw_prcp2.attribute("top") = 142;
  4668. ivw_prcp2.attribute("height") = 731; //-10
  4669. ivw_prcp3.attribute("top") = 142;
  4670. ivw_prcp3.attribute("height") = 731;
  4671. grd_prcplist.attribute("height") = 732;
  4672. }else if( ivw_outline.attribute("top") == 446 ){ //(org-317-2)
  4673. tCase = 2;
  4674. grp_prcp.attribute("top") = 446;
  4675. grp_prcp.attribute("height") = 479;
  4676. imp_prcp.attribute("top") = 0;
  4677. imp_prcp.attribute("height") = 766;
  4678. ivw_prcp2.attribute("top") = 142;
  4679. ivw_prcp2.attribute("height") = 623;
  4680. ivw_prcp3.attribute("top") = 142;
  4681. ivw_prcp3.attribute("height") = 623;
  4682. grd_prcplist.attribute("top") = 148;
  4683. grd_prcplist.attribute("height") = 617;
  4684. }else{
  4685. tCase = 0;
  4686. grp_prcp.attribute("top") = 142;
  4687. grp_prcp.attribute("height") = 765;
  4688. imp_prcp.attribute("top") = 0;
  4689. imp_prcp.attribute("height") = 765;
  4690. //group2.attribute("height") = 784-5; //?
  4691. ivw_prcp2.attribute("top") = 142;
  4692. ivw_prcp2.attribute("height") = 623;
  4693. ivw_prcp3.attribute("top") = 142;
  4694. ivw_prcp3.attribute("height") = 623;
  4695. grd_prcplist.attribute("height") = 617;
  4696. }
  4697. fResizeControls();
  4698. if( btn_detail_tab.selected == true && parseInt(ivw_detail.rct_border.attribute("height")) != 737 && tCase != 1 ){
  4699. ivw_detail.window.javascript.fReSize("S"); //small
  4700. }
  4701. else if( btn_detail_tab.selected == true && parseInt(ivw_detail.rct_border.attribute("height")) == 737 && tCase == 1 ){
  4702. ivw_detail.window.javascript.fReSize("L"); //large
  4703. }
  4704. if( model.getValue("/root/temp1/refresh_obj/change_gps") == "Y" ) {
  4705. fSendDetailValue();
  4706. ivw_detail.window.javascript.fInitGrigInfo();
  4707. //선택된 셀 색상, 다시 초기화
  4708. ivw_detail.window.javascript.fInitGridStyle();
  4709. model.setValue("/root/temp1/refresh_obj/change_gps", "N");
  4710. }
  4711. }
  4712. //btn_detail_popup.disabled = true;
  4713. //ivw_outline.window.javascript.fViewDetailInfo("GPS");
  4714. ivw_outline.visible = false;
  4715. imp_prcp.visible = false;
  4716. ivw_prcp2.visible = false;
  4717. ivw_prcp3.visible = false;
  4718. ivw_detail.visible = true;
  4719. preSelectedTab = "btn_detail_tab";
  4720. ]]>
  4721. </script>
  4722. </button>
  4723. <button id="btn_outline_tab" class="btn_sw" group="tab3" style="left:125px; top:115px; width:69px; height:22px; ">
  4724. <caption>OutLine</caption>
  4725. <script type="javascript" ev:event="DOMActivate">
  4726. <![CDATA[
  4727. if( ivw_outline.attribute("top") == 27 ){
  4728. grp_prcp.attribute("top") = 27;
  4729. grp_prcp.attribute("height") = 880;
  4730. imp_prcp.attribute("top") = 0;
  4731. imp_prcp.attribute("height") = 880;
  4732. //group2.attribute("height") = 881;
  4733. ivw_prcp2.attribute("top") = 142;
  4734. ivw_prcp2.attribute("height") = 731; //-10
  4735. ivw_prcp3.attribute("top") = 142;
  4736. ivw_prcp3.attribute("height") = 731;
  4737. grd_prcplist.attribute("height") = 732;
  4738. }else if( ivw_outline.attribute("top") == 446 ){ //(org-317-2)
  4739. grp_prcp.attribute("top") = 446;
  4740. grp_prcp.attribute("height") = 479;
  4741. imp_prcp.attribute("top") = 0;
  4742. imp_prcp.attribute("height") = 766;
  4743. ivw_prcp2.attribute("top") = 142;
  4744. ivw_prcp2.attribute("height") = 623;
  4745. ivw_prcp3.attribute("top") = 142;
  4746. ivw_prcp3.attribute("height") = 623;
  4747. grd_prcplist.attribute("top") = 148;
  4748. grd_prcplist.attribute("height") = 617;
  4749. }else{
  4750. grp_prcp.attribute("top") = 142;
  4751. grp_prcp.attribute("height") = 765;
  4752. imp_prcp.attribute("top") = 0;
  4753. imp_prcp.attribute("height") = 765;
  4754. //group2.attribute("height") = 784-5; //?
  4755. ivw_prcp2.attribute("top") = 142;
  4756. ivw_prcp2.attribute("height") = 623;
  4757. ivw_prcp3.attribute("top") = 142;
  4758. ivw_prcp3.attribute("height") = 623;
  4759. //grd_prcplist.attribute("top") = 148;
  4760. grd_prcplist.attribute("height") = 617;
  4761. }
  4762. fResizeControls();
  4763. //ivw_outline.window.javascript.fViewDetailInfo("GPS");
  4764. ivw_outline.visible = true;
  4765. ivw_detail.visible = false;
  4766. imp_prcp.visible = false;
  4767. ivw_prcp2.visible = false;
  4768. ivw_prcp3.visible = false;
  4769. //btn_detail_popup.disabled = false;
  4770. preSelectedTab = "btn_outline_tab";
  4771. if(ivw_outline.src != "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw"){
  4772. ivw_outline.src = "../../../emr/cpgweb/xrw/SPMMP01900_OutlineView.xrw";
  4773. return;
  4774. }
  4775. if( model.getValue("/root/temp1/refresh_obj/change_outline") == "Y" ){
  4776. //fResizeControls();
  4777. fInitializeOutline();
  4778. model.setValue("/root/temp1/refresh_obj/change_outline", "N");
  4779. }
  4780. ]]>
  4781. </script>
  4782. </button>
  4783. <button id="btn_action_tab" class="btn_sw" group="tab3" style="left:81px; top:115px; width:44px; height:22px; ">
  4784. <caption>OCS</caption>
  4785. <script type="javascript" ev:event="DOMActivate">
  4786. <![CDATA[
  4787. if ( btn_init.visible == true || btn_reinit.visible == true ){
  4788. fInitPrcpWnd("init");
  4789. }
  4790. if( ivw_outline.attribute("top") == 27 ){
  4791. grp_prcp.attribute("top") = 27;
  4792. grp_prcp.attribute("height") = 880;
  4793. imp_prcp.attribute("top") = 0;
  4794. imp_prcp.attribute("height") = 880;
  4795. //group2.attribute("height") = 881;
  4796. ivw_prcp2.attribute("top") = 142;
  4797. ivw_prcp2.attribute("height") = 731; //-10
  4798. ivw_prcp3.attribute("top") = 142;
  4799. ivw_prcp3.attribute("height") = 731;
  4800. grd_prcplist.attribute("height") = 732;
  4801. }else if( ivw_outline.attribute("top") == 446 ){ //(org-317-2)
  4802. grp_prcp.attribute("top") = 446;
  4803. grp_prcp.attribute("height") = 480;
  4804. imp_prcp.attribute("top") = 0;
  4805. imp_prcp.attribute("height") = 766;
  4806. ivw_prcp2.attribute("top") = 142;
  4807. ivw_prcp2.attribute("height") = 320;
  4808. ivw_prcp3.attribute("top") = 142;
  4809. ivw_prcp3.attribute("height") = 320;
  4810. //grd_prcplist.attribute("top") = 148;
  4811. //grd_prcplist.attribute("height") = 480;
  4812. grd_prcplist.attribute("top") = 148;
  4813. grd_prcplist.attribute("height") = 315;
  4814. }else{
  4815. grp_prcp.attribute("top") = 142;
  4816. grp_prcp.attribute("height") = 765;
  4817. imp_prcp.attribute("top") = 0;
  4818. imp_prcp.attribute("height") = 765;
  4819. //group2.attribute("height") = 784-5; //?
  4820. ivw_prcp2.attribute("top") = 142;
  4821. ivw_prcp2.attribute("height") = 623;
  4822. ivw_prcp3.attribute("top") = 142;
  4823. ivw_prcp3.attribute("height") = 623;
  4824. //grd_prcplist.attribute("top") = 148;
  4825. grd_prcplist.attribute("height") = 617;
  4826. }
  4827. fResizeControls();
  4828. //btn_detail_popup.disabled = true;
  4829. imp_prcp.visible = true;
  4830. if(btn_ivbfprcp.selected){
  4831. ivw_prcp2.visible = false;
  4832. ivw_prcp3.visible = true;
  4833. }else{
  4834. ivw_prcp2.visible = true;
  4835. ivw_prcp3.visible = false;
  4836. }
  4837. ivw_outline.visible = false;
  4838. ivw_detail.visible = false;
  4839. preSelectedTab = "btn_action_tab";
  4840. //인증저장 버튼 보이지 않도록 처리
  4841. btn_prcpsave.visible = false;
  4842. btn_tempsave.attribute("left") = "1140px";
  4843. btn_undo.attribute("left") = "1073px";
  4844. //처방이동 버튼 위치 이동
  4845. button24.attribute("left") = 937 + 79;
  4846. button26.attribute("left") = 965 + 79;
  4847. if( model.getValue("/root/temp1/refresh_obj/change_ocs") == "Y" ){
  4848. /*
  4849. // import 화면은 src 를 다시 셋팅해도 변화가 없으므로, 처방.xrw 의 초기화 function들 직접 호출 시작 ~
  4850. fInitializeConDone();
  4851. fBaseCdInit();
  4852. fInitBtnSet();
  4853. button106.attribute ( "background-color" ) = "#7cbbdd";
  4854. //fScrnInitialize();
  4855. zesfInitSign();
  4856. fInitializeReady();
  4857. fAnstPrcp();
  4858. model.setValue ( "/root/init/setprcpyn", "Y" );
  4859. model.setValue("/root/temp1/refresh_obj/change_ocs", "N");
  4860. // import 화면은 src 를 다시 셋팅해도 변화가 없으므로, 처방.xrw 의 초기화 function들 직접 호출 끝 !
  4861. */
  4862. fPatDiagSrch();
  4863. model.setValue("/root/temp1/refresh_obj/change_ocs", "N");
  4864. }
  4865. ]]>
  4866. </script>
  4867. </button>
  4868. <line id="line8" class="line_1" style="x1:0px; y1:137px; x2:1208px; y2:137px; "/>
  4869. <button id="importbutton1" class="btn2_letter3" visibility="hidden" style="left:1108px; top:4px; width:53px; height:19px; text-align:left; ">
  4870. <caption>reset</caption>
  4871. <script type="javascript" ev:event="DOMActivate">
  4872. <![CDATA[
  4873. fReconstruct();
  4874. ]]>
  4875. </script>
  4876. <hint>
  4877. <![CDATA[완성된 미완성 처방을 저장합니다.]]>
  4878. </hint>
  4879. </button>
  4880. <button id="btn_calcqnt" class="btn2_letter6" visibility="hidden" style="left:1120px; top:117px; width:86px; height:19px; ">
  4881. <caption>소아용량계산</caption>
  4882. <script type="javascript" ev:event="DOMActivate">
  4883. <![CDATA[
  4884. //model.refresh();
  4885. //body.attribute("overflow") = "hidden";
  4886. alert("구현중 입니다.");
  4887. ]]>
  4888. </script>
  4889. </button>
  4890. <button id="btn_upviewmode" class="icon_top" style="left:198px; top:4px; width:26px; height:19px; ">
  4891. <caption/>
  4892. <script type="javascript" ev:event="DOMActivate">
  4893. <![CDATA[
  4894. changeViewMode( "U" );
  4895. ]]>
  4896. </script>
  4897. </button>
  4898. <button id="btn_downviewmode" class="icon_bottom" style="left:227px; top:4px; width:26px; height:19px; ">
  4899. <caption/>
  4900. <script type="javascript" ev:event="DOMActivate">
  4901. <![CDATA[
  4902. changeViewMode( "D" );
  4903. ]]>
  4904. </script>
  4905. </button>
  4906. <button id="importbutton2" class="btn2_letter3" visibility="hidden" style="left:1107px; top:4px; width:53px; height:19px; ">
  4907. <caption>alert</caption>
  4908. <script type="javascript" ev:event="DOMActivate">
  4909. <![CDATA[
  4910. var errOjb = getOpenWindow("SPMMP00200");
  4911. if(errOjb == null){
  4912. open ("SPMMP00200", "2", "", "", "SPMMP00200", "", "", "width:900; height:455;", false );
  4913. }
  4914. ]]>
  4915. </script>
  4916. <hint>
  4917. <![CDATA[완성된 미완성 처방을 저장합니다.]]>
  4918. </hint>
  4919. </button>
  4920. <iviewer id="ivw_ocr" visibility="hidden" src="../../../emr/formmngtweb/xrw/SSMRF03800_OCR뷰어.xrw" style="left:885px; top:5px; width:90px; height:20px; "/>
  4921. <caption id="importcaption1" visibility="hidden" style="left:750px; top:5px; width:90px; height:20px; ">
  4922. <![CDATA[getAppStepStat(원무에서O->I전환시 호출하는 CP인터페이스에 입원일 변경에 따른 update)]]>
  4923. <script type="javascript" ev:event="onclick">
  4924. <![CDATA[
  4925. /*
  4926. //바뀐 수진정보를 MMPSSTT에 update 해준다.
  4927. var init_ordtype = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  4928. if ( init_ordtype == "O" ){ //외래일때
  4929. var init_orddd = model.getValue ( "/root/paminfo/list/orddd" );
  4930. } else {
  4931. var init_orddd = model.getValue ( "/root/paminfo/list/indd" );
  4932. }
  4933. model.setValue("/root/temp1/getdata/appstepstatflag", "U");
  4934. model.makeValue("/root/temp1/getdata/orddd", init_orddd);
  4935. model.makeValue("/root/temp1/getdata/prcpgenrflag", init_ordtype);
  4936. model.makeValue("/root/temp1/getdata/cretno", model.getValue ( "/root/paminfo/list/cretno" ));
  4937. submit("TRMMP00803");
  4938. model.makeValue("/root/temp1/getdata/appstepstatflag", "");
  4939. */
  4940. //model.makeValue("/root/send/batch/instcd", "012");
  4941. //submit("TRMMP00810");
  4942. ]]>
  4943. </script>
  4944. </caption>
  4945. <button id="btn_refresh" class="btn2_letter3" style="left:198px; top:117px; width:53px; height:19px; ">
  4946. <caption>재조회</caption>
  4947. <script type="javascript" ev:event="DOMActivate">
  4948. <![CDATA[
  4949. // tab_refresh() 와 동일 기능...?
  4950. model.makeValue("/root/temp1/getdata/appstepstatflag", ""); //steppath 조회 시 update를 무조건 하지 않도록 값 셋팅 추가
  4951. model.makeValue("/root/temp1/getdata/srchcond", "1"); //조회조건 1:로딩 및 재조회, 2:적용 후 재조회, 3:퇴원예고시 문진조회 (20090.5.19 JJE)
  4952. if( submit("TRMMP00803", true) ){ //steppath 조회
  4953. if( instance1.selectSingleNode("/root/main/steppath/appinfo/appstat") != null ){
  4954. model.makeValue( "/root/temp1/getdata/appstat", model.getValue("/root/main/steppath/appinfo/appstat") );
  4955. appStat = model.getValue("/root/main/steppath/appinfo/appstat");
  4956. model.removeNodeset("/root/main/steppath/appinfo");
  4957. model.removeNodeset("/root/send/srchcond");
  4958. model.removeNodeset("/root/send/steplist");
  4959. if( resetAppScopYN == "Y" ) fResetStepFlag(); //CPG의 경우 Step의 S/E flag 재설정
  4960. }
  4961. }
  4962. if(imp_prcp.visible == true){
  4963. model.setValue("/root/temp1/refresh_obj/change_ocs", "N");
  4964. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  4965. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  4966. btn_action_tab.dispatch("DOMActivate");
  4967. return;
  4968. }else if(ivw_detail.visible == true){
  4969. //alert("환자계획표 재조회");
  4970. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  4971. //btn_detail_tab.dispatch("DOMActivate"); //환자계획표 다시 조회
  4972. model.setValue("/root/temp1/refresh_obj/change_ocs", "Y");
  4973. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  4974. btn_detail_tab.dispatch("DOMActivate");
  4975. return;
  4976. }else{
  4977. model.setValue("/root/temp1/refresh_obj/change_outline", "Y");
  4978. //btn_outline_tab.dispatch("DOMActivate"); //바로 아웃라인을 재조회하는 func 호출!
  4979. model.setValue("/root/temp1/refresh_obj/change_ocs", "Y");
  4980. model.setValue("/root/temp1/refresh_obj/change_gps", "Y");
  4981. btn_outline_tab.dispatch("DOMActivate");
  4982. return;
  4983. }
  4984. ]]>
  4985. </script>
  4986. </button>
  4987. <group id="grp_prcp" style="left:0px; top:140px; width:1208px; height:766px; ">
  4988. <import id="imp_prcp" visibility="hidden" overflow="hidden" src="../../../emr/prcpmngtweb/xrw/SMMMO00100_처방.xrw" style="left:0px; top:0px; width:1208px; height:766px; border-width:0; border-left-width:0; border-top-width:0; border-right-width:0; border-bottom-width:0; border-style:none; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; "/>
  4989. <iviewer id="ivw_prcp2" visibility="hidden" style="left:0px; top:142px; width:381px; height:623px; border-left-color:#c7a3cf; border-top-color:#c7a3cf; border-right-color:#c7a3cf; border-bottom-color:#c7a3cf; border-style:solid; margin-left:0; margin-top:0; margin-right:0; "/>
  4990. </group>
  4991. <iviewer id="ivw_detail" visibility="hidden" style="left:0px; top:142px; width:1208px; height:766px; border-color:#c0c0c0; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; "/>
  4992. <iviewer id="ivw_outline" style="left:0px; top:142px; width:1208px; height:766px; border-color:#c0c0c0; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; "/>
  4993. <button id="importbutton5" class="btn2_letter4" visibility="hidden" style="left:394px; top:117px; width:64px; height:19px; ">
  4994. <caption>비우기</caption>
  4995. <script type="javascript" ev:event="DOMActivate">
  4996. <![CDATA[
  4997. model.removeNodeset("/root/main/prcp/prcplist");
  4998. model.removeNodeset("/root/temp1/tmpprcplist/prcplist");
  4999. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  5000. grd_prcplist.nodeset = "/root/main/prcp/prcplist"; // /root/temp1/tmpprcplist/prcplist
  5001. model.recalculate();
  5002. ]]>
  5003. </script>
  5004. </button>
  5005. <button id="btn_initcpgprcp" class="btn2_letter8" visibility="hidden" style="left:388px; top:117px; width:108px; height:19px; ">
  5006. <caption>적용범위 재설정</caption>
  5007. <script type="javascript" ev:event="DOMActivate">
  5008. <![CDATA[
  5009. resetAppScopYN = "Y";
  5010. if( instance1.selectNodes("/root/main/prcp/prcplist[status!='S' and etclnkspec!='-' and etclnkspec!='']").length > 0 ){
  5011. var msgRtn = messageBox("OCS탭에 이전 적용범위의 CPG 처방이 존재합니다.\n\nOCS탭의 처방을 함께 삭제", "S001");
  5012. if( msgRtn == 6 ){
  5013. model.removeNodeset("/root/main/prcp/prcplist[status!='S' and etclnkspec!='-' and etclnkspec!='']");
  5014. model.removeNodeset("/root/temp1/tmpprcplist/prcplist");
  5015. model.recalculate();
  5016. grd_prcplist.refresh();
  5017. }else if( msgRtn != 7 ){
  5018. resetAppScopYN = "N";
  5019. return;
  5020. }
  5021. }
  5022. //적용을 위한 global 변수 초기화하여 적용 로직을 재실행 가능하도록
  5023. fRemoveSaveNodeList( 1 );
  5024. stopSavePrcpYN_SMMMO00110 = "N";
  5025. clickBtnNm_SMMMO00110 = "";
  5026. prtlFlag_SMMMO00110 = "-";
  5027. ErrExistYN_SMMMO00110 = "N";
  5028. questionYN_SMMMO00110 = "N";
  5029. btn_refresh.dispatch("DOMActivate");
  5030. messageBox("적용범위가 초기화되었습니다.\n적용범위를 다시 선택", "I008");
  5031. resetAppScopYN = "N";
  5032. model.setValue("/root/main/appscopmode", "");
  5033. ]]>
  5034. </script>
  5035. </button>
  5036. <select1 id="cmb_stepnm" ref="/root/main/stepinfo/info/daynm" class="combo_search" disabled="true" visibility="hidden" appearance="minimal" style="left:830px; top:110px; width:30px; height:19px; ">
  5037. <choices>
  5038. <itemset nodeset="/root/temp/oplist/op">
  5039. <label ref="nm"/>
  5040. <value ref="id"/>
  5041. </itemset>
  5042. </choices>
  5043. <script type="javascript" ev:event="xforms-value-changed">
  5044. <![CDATA[
  5045. var stepno = parseInt(model.getValue("/root/main/stepinfo/info/stepno"));
  5046. var times = model.getValue("/root/main/stepinfo/info/times");
  5047. ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/tmpstepnm", cmb_stepnm.label);
  5048. ivw_outline.grp_swimline.refresh();
  5049. if(ivw_outline.model.getValue("/root/main/steplist/info[" + stepno + "]/m") != "i" ){
  5050. ivw_outline.model.setValue( "/root/main/steplist/info[" + stepno + "]/m", "u" );
  5051. }
  5052. ivw_outline.window.javascript.fSetDayImage(stepno, times, ipt_times.label, cmb_stepnm.label);
  5053. ]]>
  5054. </script>
  5055. </select1>
  5056. <button id="btn_cpbatch" class="btn2_letter3" visibility="hidden" style="left:705px; top:5px; width:53px; height:19px; ">
  5057. <caption>batch</caption>
  5058. <script type="javascript" ev:event="DOMActivate">
  5059. <![CDATA[
  5060. //2008.10.03 시간 상관없이 당일, 익일 모두 실처방 발행 수행하도록 수정.(당일 퇴원예고 찍을 시, 미래로 남아있는 퇴원처방이 나가야 함.)
  5061. //if( getCurrentTime() > "180000" ){
  5062. var dschdclrtyn = getPatientInfoDetail("dschdclrtyn");
  5063. var dschschedd = instance1.selectSingleNode("/root/main/steppath/info[decirflag='D' or decirflag='C']/prcpdd");
  5064. var today = getCurrentDate();
  5065. var nxtDate = new Date().getAddDate(1, "D").getDateFormat();
  5066. var curInvalNodeList = null;
  5067. if( dschdclrtyn == "Y" && dschschedd != null ){
  5068. model.makeValue("/root/temp1/getdata/dschschedd", dschschedd.text);
  5069. if( ( getParameter("SPMMO00400_dclrdd") == nxtDate && getCurrentTime() >= 180000 )
  5070. || getParameter("SPMMO00400_dclrdd") == today ){
  5071. //퇴원예고 후 - 익일, 당일 풀리지 않은 퇴원관련 처방 없으면 - 자동발행 안함.
  5072. if( ivw_detail.src != "../../../emr/prcpmngtweb/xrw/SPMMP02200_DetailView.xrw" ){
  5073. curInvalNodeList = ivw_detail.instance1.selectNodes("/root/main/prcp/prcplist[(prtlstat='10' or (prtlstat>'12' and prtlstat<'22')) and (prcpkindcd='60' or prcpkindcd = '70') and (prcpdd = '"+today+"' or prcpdd = '"+nxtDate+"')]");
  5074. if( curInvalNodeList.length <= 0 ) return;
  5075. }
  5076. if( submit("TXMMP00809", false) == false ){
  5077. messageBox ( "당일처방 및 미래처방 저장은 성공하였으나,\예외 상황으로 인해 익일처방을 실처방으로 저장", "E009" );
  5078. return;
  5079. }
  5080. fResetAppStat();
  5081. tab_refresh();
  5082. fMssgInvalPrcp("1"); //퇴원예고를 하지 않아서 미완성 처방인 건이 있을 경우, 미완성리스트에서 처리하라고 알림 (2008.09.19 JJE)
  5083. return;
  5084. }else if( getParameter("SPMMO00400_dclrdd") == nxtDate && getCurrentTime() < 180000 ){
  5085. if( ivw_detail.src != "../../../emr/prcpmngtweb/xrw/SPMMP02200_DetailView.xrw" ){
  5086. curInvalNodeList = ivw_detail.instance1.selectNodes("/root/main/prcp/prcplist[(prtlstat='10' or (prtlstat>'12' and prtlstat<'22')) and (prcpkindcd='60' or prcpkindcd = '70') and (prcpdd = '"+today+"' or prcpdd = '"+nxtDate+"')]");
  5087. if( curInvalNodeList.length <= 0 ) return;
  5088. messageBox ( "미발행 퇴원 관련 처방은\n퇴원 전일 CP 처방 정규 반영 시간(저녁 6시)에\n발행 예정", "I009" );
  5089. return;
  5090. }
  5091. }
  5092. }
  5093. //}
  5094. ]]>
  5095. </script>
  5096. <hint>
  5097. <![CDATA[완성된 미완성 처방을 저장합니다.]]>
  5098. </hint>
  5099. </button>
  5100. <button id="btn_monitoring" class="btn_sw" visibility="hidden" group="tab2" style="left:260px; top:4px; width:75px; height:22px; ">
  5101. <caption>모니터링</caption>
  5102. <script type="javascript" ev:event="DOMActivate">
  5103. <![CDATA[
  5104. model.toggle("monitoring_tab");
  5105. btn_savecomplprcp.visible = false;
  5106. ]]>
  5107. </script>
  5108. </button>
  5109. <button id="btn_inqr" visibility="hidden" style="left:1182px; top:100px; width:25px; height:20px; ">
  5110. <caption>문진</caption>
  5111. <script type="javascript" ev:event="DOMActivate">
  5112. <![CDATA[
  5113. var dschdclrtyn = getPatientInfoDetail("dschdclrtyn");
  5114. if( getParameter("SMMMO034_pntmflag") == "2" || dschdclrtyn == "Y" ){
  5115. if( dschdclrtyn == "Y" && isNull(getParameter("SMMMO034_pntmflag")) ) setParameter("SMMMO034_pntmflag", "1"); //M0515 1:퇴원예고, 2:CPG종료, 3:특정스텝종료
  5116. fLoadInqrPopup("END"); //문진팝업호출
  5117. }
  5118. ]]>
  5119. </script>
  5120. <script type="javascript" ev:event="onmousedown">
  5121. <![CDATA[
  5122. if (event.button == 3) {
  5123. fLoadInqrPopup("END"); //문진팝업호출
  5124. }
  5125. ]]>
  5126. </script>
  5127. </button>
  5128. <caption id="cap_appscop" visibility="hidden" style="left:501px; top:117px; width:75px; height:20px; font-weight:bold; ">* 적용범위:</caption>
  5129. <caption id="cap_appscoplist" ref="/root/main/appscoplist" visibility="hidden" style="left:576px; top:117px; width:630px; height:20px; font-weight:bold; color:#ff0000; "/>
  5130. <button id="btn_essprcpinfo" class="btn5_letter4" visibility="hidden" style="left:321px; top:117px; width:64px; height:19px; ">
  5131. <caption>필수처방</caption>
  5132. <script type="javascript" ev:event="DOMActivate">
  5133. <![CDATA[
  5134. open("SPMMP04100");
  5135. ]]>
  5136. </script>
  5137. </button>
  5138. </group>
  5139. <group id="grp_btn" style="left:0px; top:909px; width:1208px; height:27px; ">
  5140. <button id="btn_allInfoSave" class="btn4_letter2" style="left:1092px; top:4px; width:56px; height:22px; ">
  5141. <caption>적용</caption>
  5142. <script type="javascript" ev:event="DOMActivate">
  5143. <![CDATA[
  5144. btn_savecomplprcp.selected = false;
  5145. var today = getCurrentDate();
  5146. var orgAppStat = appStat; //원래 적용상태
  5147. model.setValue("/root/temp1/exe/lastupdtrid", getCurrentDateTime());
  5148. if( stopSavePrcpYN_SMMMO00110 != "Y" && btn_outline_tab.selected == true ){
  5149. var currTab = "btn_outline_tab";
  5150. }else if( stopSavePrcpYN_SMMMO00110 != "Y" && btn_detail_tab.selected == true ){
  5151. var currTab = "btn_detail_tab";
  5152. }
  5153. fGuidDschDclrt(); //퇴원예고 유도
  5154. fSetupPrcpDD(); //CPG의 시작/종료스텝 설정에 따른 처방일자 조정
  5155. if( fBatSaveCpPrtlPrcp("", "6", cpgflagcd) == false && stopSavePrcpYN_SMMMO00110 == "N" ){
  5156. clickBtnNm_SMMMO00110 = "btn_allInfoSave";
  5157. stopSavePrcpYN_SMMMO00110 = "Y";
  5158. }
  5159. if( stopSavePrcpYN_SMMMO00110 != "Y" || SubmitTF_SMMMO00110 == true ){ //저장 성공 시,
  5160. stopSavePrcpYN_SMMMO00110 = "N";
  5161. /*-------------------------- 원래는 당일처방 저장종료 후 처리 -> 당일+미래처방 저장 종료 후 처리 ----------------------------*/
  5162. //중증등록, 법전전염병 팝업 (and 전처방 조회)
  5163. if( model.getValue ( "/root/addprcp" ) != "Y" && SubmitTF_SMMMO00110 == true ){
  5164. var aftdcyn = "N";
  5165. var aftdclist = model.instances(0).selectNodes( "/root/prcpdc/prcplist[tempcol21='C']" );
  5166. //청구후 d/c가 아닐 경우만 타도록 parameter 추가 (2008.11.30)
  5167. if( aftdclist != null ){
  5168. if( aftdclist.length > 0 ) aftdcyn = "Y";
  5169. }
  5170. if( fGetPrcpSaveAftInfo(prcpsaveyn_SMMMO00110, aftdcyn) == false ){
  5171. messageBox ( "전처방 조회를", "E009" ); //2008.09.29 추가
  5172. return;
  5173. }
  5174. prcpsaveyn_SMMMO00110 = "N";
  5175. }
  5176. //OCR자동출력
  5177. //ocrcalcscorcd = ocrcalcscorcd_SMMMO00110 + ocrcalcscorcd; // 2016.04.14 동의서 출력 수정 엄영만 당일처방과 미래처방을 한번에 체크 하던것을 각각 따로 체크 하도록 수정 처방정보의 동의서 번호 때문, ocrcalcscorcd_SMMMO00110 : 당일 처방 동의서 출력 항목
  5178. if (!isNull(ocrcalcscorcd)){ //OCR 자동출력 ocrcalcscorcd 값은 MMO001에 global로 선언. 값은 fPrcpSaveChkaft에서 체크한다.
  5179. fOcrAutoPrint(ocrcalcscorcd);
  5180. ocrcalcscorcd = "";
  5181. ocrcalcscorcd_SMMMO00110 = "";
  5182. }
  5183. fInitializeConDone("save");
  5184. fTempPrcp("save");
  5185. /*-----------------------------------------------------------------------------------------------------------------------*/
  5186. clickBtnNm_SMMMO00110 = "";
  5187. prtlFlag_SMMMO00110 = "-";
  5188. //임시처방 없을 경우 remove
  5189. var tmpPrcpNodeList = instance1.selectNodes("/root/main/prcp/prcplist[prcphistcd != 'T']");
  5190. if( tmpPrcpNodeList.length <= 0 ){
  5191. model.removeNodeset("/root/main/prcp/prcplist");
  5192. appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" ); //검색라인추가
  5193. }
  5194. grd_prcplist.refresh();
  5195. model.recalculate();
  5196. model.makeValue("/root/temp1/getdata/srchcond", "2"); //조회조건 1:로딩 및 재조회, 2:적용 후 재조회, 3:퇴원예고시 문진조회 (20090.5.19 JJE)
  5197. model.makeValue("/root/temp1/getdata/appstepstatflag", ""); //steppath 조회 시 update를 무조건 하지 않도록 값 셋팅 추가 (2010.03.10 JJE)
  5198. if( submit("TRMMP00803", true) ){ //steppath 조회
  5199. fResetAppStat();
  5200. //미래처방 분에 대한 처방오류 메세지 -> 미완성처방 존재 여부를 ErrExistYN_SMMMO00110 아닌, /root/main/invalprcplist null 여부로 가리도록 변경 (2008.09.30)
  5201. var popYN = getParameter("SPMMP00200_popupYN");
  5202. if( ErrExistYN_SMMMO00110 == "Y" ){
  5203. if ( instance1.selectSingleNode("/root/main/invalprcplist/prcplist") != null && popYN == "Y" ) {
  5204. var mon = getCurrentMonitorNumber();
  5205. var monSize = getMonitorSize(mon);
  5206. var xpt = 10;
  5207. var ypt = monSize[1]/2 - 500;
  5208. setParameter("SMMMP00800_popupYN", "Y");
  5209. var errOjb = getOpenWindow("SPMMP00200");
  5210. if(errOjb == null){
  5211. open ("SPMMP00200", mon, xpt, ypt, "SPMMP00200", "", "", "width:900; height:455;", false );
  5212. }
  5213. questionYN_SMMMO00110 = "N"; //초기화
  5214. }else{
  5215. btn_saveincomplprcp.selected = true;
  5216. model.toggle("incompletion_tab");
  5217. fGetErrPrcpList();
  5218. fCase2ViewMode();
  5219. }
  5220. ErrExistYN_SMMMO00110 = "N";
  5221. }
  5222. fRemoveSaveNodeList( 1 );
  5223. } //end steppath 조회
  5224. tab_refresh();
  5225. // 2008.07.21 외래 cp 마지막 차수 발행 -> 평가 popup (s)
  5226. if(cpgflagcd == "01") {
  5227. //일괄저장한 시간이 오후6시 이후라면, 익일처방을 실처방으로 저장하는 배치 프로그램을 호출해야 함 (2007.12.21 추가)
  5228. var nextDay = getCurrentDate().toDate().getAddDate(1,"D").getDateFormat(); //다음날을 찾는다.
  5229. var NextStepNode = instance1.selectSingleNode("/root/main/steppath/info" + "[prcpdd='" + nextDay + "' and stepstat != '30']");
  5230. if( NextStepNode != null && getCurrentTime() >= 180000 ){ //인증저장 시에는 익일처방까지 풀리는 경우는 최초저장(첫째날)일 경우만 (2010.02.09 JJE)
  5231. model.setValue("/root/temp1/exe/lastupdtrid", getUserId());
  5232. model.setValue("/root/temp1/exe/lastupdtdt", getCurrentDateTime() + "000");
  5233. // 2008.07.07 pymi 배치호출시 cpno 추가
  5234. model.setValue("/root/temp1/exe/paramcnts", "stat:1 " + "cpno:"+ model.getValue("/root/temp1/getdata/cpgappno"));
  5235. if( submit("TXMMP00807", false) == false ){
  5236. messageBox ( "당일처방 및 미래처방 저장은 성공하였으나,\예외 상황으로 인해 익일처방을 실처방으로 저장", "E009" );
  5237. }
  5238. model.setValue("/root/temp1/exe/lastupdtrid", "");
  5239. model.setValue("/root/temp1/exe/lastupdtdt", "");
  5240. model.setValue("/root/temp1/exe/paramcnts", "");
  5241. }
  5242. if ( model.getValue("/root/main/masterinfo/info/ioflagcd") == "O" ){
  5243. if(getCurrentDate() == instance1.selectSingleNode("/root/main/steppath/info[startendflag = 'E']/prcpdd").text ) {
  5244. setParameter("cpgappno", model.getValue("/root/temp1/getdata/cpgappno"));
  5245. modal("SPMMP02500");
  5246. }
  5247. }
  5248. }else{ //CPG case
  5249. fResetStepFlag(); //CPG의 경우 Step의 S/E flag 재설정
  5250. if( stepArray_SMMMO00110 != "" ){
  5251. //범위 내의 서식 리스트 재조회 (2009.01.09)
  5252. var startendNodeList = instance1.selectNodes("/root/main/steppath/info[stepstat!='10' and prcpdd!='']");
  5253. //스텝에 해당되는 문진 팝업 호출
  5254. var stepInqrList = instance1.selectNodes("/root/main/inqrinfo/inqrheader[stepno!='0' and stepno!='' and inqrstatcd!='E' and inqroffyn!='Y']");
  5255. var steps = stepArray_SMMMO00110.split("|");
  5256. var sNum = 0;
  5257. if(stepInqrList.length > 0 && steps.length > 0){
  5258. for( var s1=0; s1<stepInqrList.length; s1++){
  5259. var node = stepInqrList.item(s1);
  5260. var s1Node = node.selectSingleNode("stepno");
  5261. for( var s2=0; s2<steps.length; s2++){
  5262. if( s1Node.text == steps[s2] ){
  5263. sNum++;
  5264. }
  5265. }
  5266. }
  5267. if(sNum > 0 ) fLoadInqrPopup("APP"); //문진팝업호출
  5268. }
  5269. stepArray_SMMMO00110 = "";
  5270. }
  5271. //CPG인 경우, outline에서 시작/종료를 재설정 및 결정이 가능하므로 temp/getdata/authflag 재생성 (저장 후 사라짐)
  5272. if( isNull(model.getValue("/root/temp/getdata/authflag")) ){
  5273. model.makeValue("/root/temp/getdata/authflag", iAuthflag);
  5274. model.makeValue("/root/temp1/getdata/authflag", iAuthflag);
  5275. }
  5276. }
  5277. //2008..07.22 (e)
  5278. }else{ //저장 취소, 실패 시,
  5279. //환자계획표에서 추가/수정/삭제 할 경우, OCS탭 전환 안하고, 처방 instance reset함
  5280. if( ivw_detail.visible == true ){
  5281. if( model.getValue("/root/main/masterinfo/info/ioflagcd") == "O" ){
  5282. var nodeList = instance1.selectNodes("/root/main/steppath/info" + "[prcpdd='" + today + "' and stepstat='10']");
  5283. }else{
  5284. if( iPrcpgenrflag == "O" )
  5285. var nodeList = instance1.selectNodes("/root/main/steppath/info" + "[times='0' and stepstat='10']");
  5286. else var nodeList = instance1.selectNodes("/root/main/steppath/info" + "[stepstat='10']");
  5287. }
  5288. if( nodeList.length > 0 ){
  5289. fCpInPrcpVisible();
  5290. return;
  5291. }
  5292. }else{
  5293. fCpInPrcpVisible();
  5294. }
  5295. }
  5296. if( SubmitTF_SMMMO00110 == true ){ //orgAppStat == "00" &&
  5297. if( cpgflagcd == "01" ) fsetCpInfo("save"); //상단CP여부 변경
  5298. fMssgInvalPrcp("2"); //퇴원예고를 하지 았았고, 당일~익일자 처방 중 퇴원처방이 존재하면 퇴원예고 유도 alert
  5299. }
  5300. ]]>
  5301. </script>
  5302. </button>
  5303. <button id="button48" class="btn3_letter4" style="left:331px; top:4px; width:80px; height:22px; ">
  5304. <caption>통합결과</caption>
  5305. <script type="javascript" ev:event="DOMActivate">
  5306. <![CDATA[
  5307. var xpt = window.screenleft + 10;
  5308. var ypt = window.screenTop + 10;
  5309. var coord = getRelativeCoordinate ( xpt, ypt );
  5310. var mon = coord[0];
  5311. xpt = coord[1];
  5312. ypt = coord[2];
  5313. open("SMAER00800", mon, xpt, ypt, "SMAER00800", "/root/paminfo/list/pid", "/root/paminfo/list/pid" );
  5314. ]]>
  5315. </script>
  5316. </button>
  5317. <button id="button49" class="btn3_letter7" visibility="hidden" style="left:413px; top:4px; width:116px; height:22px; ">
  5318. <caption>FLOW SHEET</caption>
  5319. </button>
  5320. <button id="button45" class="btn3_letter6" style="left:1px; top:4px; width:104px; height:22px; ">
  5321. <caption>수술예약장부</caption>
  5322. <script type="javascript" ev:event="DOMActivate">
  5323. <![CDATA[
  5324. var xpt = window.screenleft + 10;
  5325. var ypt = window.screenTop + 10;
  5326. var coord = getRelativeCoordinate ( xpt, ypt );
  5327. var mon = coord[0];
  5328. xpt = coord[1];
  5329. ypt = coord[2];
  5330. var param = iPid + "▦" +
  5331. iHngnm + "▦" +
  5332. iSex + "▦" +
  5333. iAge + "▦" +
  5334. iInsukind + "▦" +
  5335. iSuppkind + "▦" +
  5336. iOrddd + "▦" +
  5337. iOrddeptcd + "▦" +
  5338. iPrcpgenrflag;
  5339. setParameter("SMMMO05700_param", param);
  5340. modal("SMMMO05700", mon, xpt, ypt, "SMMMO05700");
  5341. ]]>
  5342. </script>
  5343. </button>
  5344. <button id="btn_close" class="btn4_letter2" style="left:1150px; top:4px; width:56px; height:22px; ">
  5345. <caption>닫기</caption>
  5346. <script type="javascript" ev:event="DOMActivate">
  5347. <![CDATA[
  5348. /*
  5349. if( appStat == "00" ){
  5350. if( checkAuth("X") ){
  5351. if( messageBox ( "CP 선택이 취소됩니다.", "Q003" ) == "6" ){
  5352. fCnclApp();
  5353. window.close();
  5354. }else{
  5355. return;
  5356. }
  5357. }
  5358. }else{
  5359. */
  5360. window.close();
  5361. //}
  5362. ]]>
  5363. </script>
  5364. </button>
  5365. <button id="btn_drop" class="btn4_letter2" style="left:1034px; top:4px; width:56px; height:22px; ">
  5366. <caption>취소</caption>
  5367. <script type="javascript" ev:event="DOMActivate">
  5368. <![CDATA[
  5369. //if(cpgflagcd == "02") fCnclApp();
  5370. if(model.getValue("/root/temp1/getdata/appstat") == "00" && instance1.selectSingleNode("/root/main/steppath/info[stepstat >= '20']") == null ){
  5371. if( messageBox ( "", "Q007" ) == "6" ){
  5372. fCnclApp();
  5373. }
  5374. }else{
  5375. fDropApp(btn_drop.attribute("text"));
  5376. }
  5377. ]]>
  5378. </script>
  5379. </button>
  5380. <button id="btn_val" class="btn4_letter2" visibility="hidden" style="left:964px; top:4px; width:56px; height:22px; ">
  5381. <caption>평가</caption>
  5382. <script type="javascript" ev:event="DOMActivate">
  5383. <![CDATA[
  5384. setParameter("cpgappno", appNo_SMMMO00110);
  5385. var mainObj = getMainViewer();
  5386. //mainObj.window.javascript.modal("SPMMP02500");
  5387. modal("SPMMP02500");
  5388. ]]>
  5389. </script>
  5390. </button>
  5391. <button id="importbutton3" class="btn3_letter6" style="left:107px; top:4px; width:104px; height:22px; ">
  5392. <caption>수술마취의뢰</caption>
  5393. <script type="javascript" ev:event="DOMActivate">
  5394. <![CDATA[
  5395. //setParameter ( "SPMMO00200_pid", model.getValue ( "/root/paminfo/list/pid" ));
  5396. //setParameter ( "SPMMO00200_orddeptcd" , model.getValue ( "/root/paminfo/list/orddeptcd" ));
  5397. //setParameter ( "SPMMO00200_ioflag" , prcpgenrflag
  5398. fPrcpModal ("SPMMO00200", 0, 80);
  5399. ]]>
  5400. </script>
  5401. </button>
  5402. <button id="importbutton4" class="btn3_letter7" style="left:213px; top:4px; width:116px; height:22px; ">
  5403. <caption>수술마취스케줄</caption>
  5404. <script type="javascript" ev:event="DOMActivate">
  5405. <![CDATA[
  5406. var xpt = window.screenleft + 10;
  5407. var ypt = window.screenTop + 10;
  5408. var coord = getRelativeCoordinate ( xpt, ypt );
  5409. var mon = coord[0];
  5410. xpt = coord[1];
  5411. ypt = coord[2];
  5412. //setParameter ( "SPMMO00200_pid", model.getValue ( "/root/paminfo/list/pid" ));
  5413. //setParameter ( "SPMMO00200_orddeptcd" , model.getValue ( "/root/paminfo/list/orddeptcd" ));
  5414. //setParameter ( "SPMMO00200_ioflag" , prcpgenrflag );
  5415. open("SMMMO05100", mon, xpt, ypt, "SMMMO05100", "/root/paminfo/list/pid", "/root/main/cond/pid" );
  5416. ]]>
  5417. </script>
  5418. </button>
  5419. </group>
  5420. <script type="javascript" ev:event="onkeydown">
  5421. <![CDATA[
  5422. if(event.keyCode == "27") {
  5423. btn_prcpsave.visible = true;
  5424. btn_tempsave.visible = true;
  5425. }
  5426. ]]>
  5427. </script>
  5428. </xhtml:body>
  5429. </xhtml:html>