SMMNR01000.js 211 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049
  1. /*
  2. 수혈간호기록(SMMNR01000.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. 2) : var 2.0 khj REA 12061 1Pint 투여량 추가
  6. , 임시저장-초기화-미수행 수행목록 선택 기능 조건별수정
  7. , 기록삭제기능수정
  8. , 기록수정기능제한
  9. , 수혈기록된 혈액의 통반납/폐기 불가능 처리
  10. */
  11. var xTopAttributePath = "/root/main/topattribute";
  12. var xRecgrupListPath = "/root/main/recgrup/recgruplist";
  13. var xHIsgrupListPath = "/root/main/histgrup/histgruplist";
  14. var xRecHIstPntListPath = "/root/main/rechistpntgrup/rechistpntlist";
  15. var xClsListPath = "/root/main/detlgrup/detlgruplist"
  16. var xHIsgrupListBKPath = "/root/temp/histgrup/histgruplist";
  17. var xlrgListPath = "/root/main/lrggrup/lrggruplist"
  18. var xCondPath = "/root/main/cond";
  19. var xClsListBKPath = "/root/temp/main/detlgrup/detlgruplist";
  20. var xPopWndClsListBKPath = "/root/temp/main/cond/execpopwnddetlgrup/execpopwnddetlgruplist";
  21. var xPatientPath = "/root/temp/cond/patientgrup/patientgruplist";
  22. var xExecDetlListPath = "/root/main/cond/execdetlgrup/execdetlgruplist";
  23. var xPopWndExecDetlListPath = "/root/main/cond/execpopwnddetlgrup/execpopwnddetlgruplist";
  24. var xDelDeliveExecPrcpListPath = "/root/main/cond/delivedetlgrup/delivedetlgruplist";
  25. var xBlodReturnReqGrupListPath = "/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist";
  26. var xBlodExecRecGrupListPath = "/root/main/cond/blodreturnreqgrup/blodexecrecgruplist";
  27. var xVitalSignPath = "/root/main/cond/vitalsigngrup/vitalsigngruplist";
  28. var xTnsNurseRecPath ="/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist";
  29. var xBlodNoRecPath = "/root/main/cond/blodreturnreqgrup/blodnoexecrecgruplist";
  30. var ioparam = "" ; // 화면에서 넘어오는 파라메터 (절대 지우면 안됨)
  31. var sGolPid = "" ;
  32. var sFlagChkYN = "N"; // 폐기 확정 여부
  33. var sFindBlodnm = "";
  34. //------------(20100630:경북대)
  35. var grecnm0 = ""; //수혈기록버튼(화면open시)
  36. var grecnm1 = ""; //수혈기록버튼(방사선조사)
  37. var grecnm2 = ""; //수혈기록버튼(백혈구제거필터)
  38. var grecnm3 = ""; //수혈기록버튼(수혈전투약)
  39. var grecnm4 = ""; //수혈기록버튼(혈액혈
  40. var grecnm5 = ""; //수혈기록버튼(hb)
  41. var grecnm6 = ""; //수혈기록버튼(plt)
  42. //------------(20100630:경북대)
  43. /**
  44. * @group :
  45. * @ver : 2007.07.16
  46. * @by : 정찬성
  47. * @---------------------------------------------------
  48. * @type : function
  49. * @access : public
  50. * @desc : 화면 초기화
  51. * @param :
  52. * @return :
  53. * @---------------------------------------------------
  54. */
  55. function fInitialize(){
  56. //debugger;
  57. var addDy = model.getValue("/root/main/cond/prcpddfrom");
  58. var dt = getCurrentDate();
  59. // var dt = "20080711";
  60. model.setValue(ipt_receiptid.attribute("ref"), getUserInfo("userid") );
  61. model.setValue(ipt_receiptnm.attribute("ref"), getUserInfo("usernm") );
  62. ipt_receiptid.refresh();
  63. ipt_receiptnm.refresh();
  64. model.removeNodeset("/root/main/cond/execdetlgrup");
  65. model.removeNodeset("/root/main/cond/delivedetlgrup");
  66. model.removeNodeset("/root/main/cond/blodreturnreqgrup");
  67. model.removeNodeset("/root/main/cond/patcmtgrup");
  68. //-------------(20100630:경북대)
  69. if(submit("TRMNR01099")){
  70. grecnm0 = model.getValue("/root/hidden2/reclist/recnm0");
  71. grecnm1 = model.getValue("/root/hidden2/reclist/recnm1");
  72. grecnm2 = model.getValue("/root/hidden2/reclist/recnm2");
  73. grecnm3 = model.getValue("/root/hidden2/reclist/recnm3");
  74. grecnm4 = model.getValue("/root/hidden2/reclist/recnm4");
  75. grecnm5 = model.getValue("/root/hidden2/reclist/recnm5");
  76. grecnm6 = model.getValue("/root/hidden2/reclist/recnm6");
  77. }
  78. //-------------(20100630:경북대)
  79. var pCode = "'172','016','013'"; // 조회할 CdGrupID 코드정보(170331_AYS_본원 마취회복실, 수술실 코드 추가)
  80. fGetNursHardCdInfo(pCode, dt);
  81. var instUseYN = model.getValue("/root/code/codeinfo/codelist[cdgrupid ='172']/cdid");
  82. if(instUseYN == "Y"){
  83. grp_bexcexec1.visible = 'true' ;
  84. grp_bexcexec2.visible = 'true' ;
  85. }
  86. fInitWardList(getparam);
  87. var sTopIOflag = "";
  88. var getparam = "";
  89. var getrgstdd = "";
  90. var indd = opener.javascript.getParameter("SMMNR010_Param2");
  91. if(indd == "") {
  92. model.setValue(ipt_prcpddfrom.attribute("ref"), getDateCalc(dt, 2));
  93. } else {
  94. model.setValue(ipt_prcpddfrom.attribute("ref"), indd);
  95. }
  96. model.setValue(ipt_prcdddto.attribute("ref"), dt);
  97. sTopIOflag = getPatientInfoDetail("ioflag"); //상단 정보에서 받음
  98. if(opener.javascript.getParameter("SMMNR010_Param") == ""){
  99. getparam = getScreenMenuParameter(); //메뉴에서 파라미터 받음
  100. }else{
  101. if(opener.javascript.getParameter("SMMNR010_RgstddDATA") != ""){
  102. getrgstdd = opener.javascript.getParameter("SMMNR010_RgstddDATA"); //수혈현황조회에서 파라미터받음(처방일자)
  103. model.setValue(ipt_prcpddfrom.attribute("ref"), getrgstdd);
  104. }
  105. getparam = opener.javascript.getParameter("SMMNR010_Param");
  106. }
  107. if(getparam != ""){
  108. if(sTopIOflag == "O"){ //상단 정보 외래
  109. if(getparam == "IPRC" || getparam == ""){ //메뉴 파라미터 병동일 경우 파라미터 변경
  110. getparam = "OPRC";
  111. }else if(getparam == "IPRC1"){
  112. getparam = "OPRC1";
  113. }else if(getparam == "IPRC2"){
  114. getparam = "OPRC2";
  115. }
  116. }else if(sTopIOflag == "I" || sTopIOflag == "D" || sTopIOflag == "T" || sTopIOflag == "E"){ // 입원, DSC&항암, 수술, 응급 파라미터 변경
  117. if(getparam == "OPRC" || getparam == ""){ //메뉴 파라미터 외래일 경우 파라미터 변경
  118. getparam = "IPRC";
  119. }else if(getparam == "OPRC1"){
  120. getparam = "IPRC1";
  121. }else if(getparam == "OPRC2"){
  122. getparam = "IPRC2";
  123. }
  124. }
  125. }
  126. getparam = fParam(getparam); // 파라메터에 따른 혈액불출/수혈간호 case 선택
  127. if(getparam == "OPRC"){
  128. rdo_ioflag1.value="O";
  129. btn_prtconsent.visible = false;
  130. }else{
  131. rdo_ioflag1.value="I";
  132. btn_prtconsent.visible = true;
  133. }
  134. // 공통코드 스크립트 호출 - 수혈부작용/수혈중단 사유
  135. zbcfGetCodeList( new Array("M0330", "L0084", "L0085", "L0093", "L0094"),
  136. new Array("/root/init/sideeffectcom", "/root/init/etcprcpresncd", "/root/init/discontinucom", "/root/init/L0093list", "/root/init/L0094list"), true,
  137. new Array("cdid"), new Array("asc"));
  138. //수혈중단사유중 "병원사유기타" 삭제 --> 2008-08-20 사유가 기타로 변경되면서 주석처리
  139. //model.removenode("/root/init/L0093list/L0093[cdid = '12399']");
  140. submit("TRMNR01026");
  141. // if(submit("TRMNR01026")){ // 수혈중단 사유 코드 가져오기
  142. // for(var j=1 ; j <= getNodesetCount("/root/init/totresncd/item/cdid") ; j++){
  143. // for(var i =1 ; i <= getNodesetCount("/root/init/discontinucom/L0085") ; i++){
  144. // if( model.getValue("/root/init/totresncd/item["+j+"]/cdid") == model.getValue("/root/init/discontinucom/L0085["+i+"]/cdid") ){
  145. // var ChgLavel = model.getValue("/root/init/totresncd/item["+j+"]/cdnm");
  146. // model.setValue("/root/init/discontinucom/L0085["+i+"]/cdnm" , ChgLavel);
  147. // }
  148. // }
  149. //
  150. // for(var i =1 ; i <= getNodesetCount("/root/init/etcprcpresncd/L0084") ; i++){
  151. // if( model.getValue("/root/init/totresncd/item["+j+"]/cdid") == model.getValue("/root/init/etcprcpresncd/L0084["+i+"]/cdid") ){
  152. // var ChgLavel = model.getValue("/root/init/totresncd/item["+j+"]/cdnm");
  153. // model.setValue("/root/init/etcprcpresncd/L0084["+i+"]/cdnm" , ChgLavel);
  154. // }
  155. // }
  156. // }
  157. // }
  158. cmb_discontinu.disabled = true ;
  159. ipt_etc.disabled = true ;
  160. //----------------(20100630:경북대)
  161. //textarea1.value = "수혈팔찌 확인함, 수혈부작용 설명함" + "\n" + "본인확인 혈액형 :"; //수혈부작용 설명함 추가_20090327_SMY
  162. var tempstr = grecnm0
  163. if (tempstr != "") {
  164. textarea1.value = tempstr; //수혈부작용 설명함 추가_20090327_SMY
  165. } else {
  166. if(getUserInfo("dutplceinstcd") == "031" && (getUserInfo("dutplcecd") == model.getValue("/root/code/codeinfo/codelist[cdgrupid ='016']/cdid") || getUserInfo("dutplcecd") == model.getValue("/root/code/codeinfo/codelist[cdgrupid ='013']/cdid")) ){ // '17.03.29_AYS_본원 마취회복실, 수술실 문구 수정
  167. textarea1.value = "혈액전달 및 연결시 수여자와 혈액의 환자이름, 혈액형, 혈액종류를 확인한다." + "\n" + "수혈간호기록의 vital sign기록을 마취기록조회(진료)의 5분 vital sign으로 대체한다."; // 마취회복실 수혈오류 관련 보완사항_170220_AYS
  168. } else{
  169. textarea1.value = "수혈팔찌 확인함, 수혈부작용 설명함" + "\n" + "수혈이 완료될 때까지 30분마다 환자 상태를 관찰하고 확인한다." + "\n" + "본인확인 혈액형 확인함"; //수혈부작용 설명함 추가_20090327_SMY
  170. }
  171. }
  172. //----------------(20100630:경북대)
  173. fGetBrcdPrntInfo(); //바코드 프린터 설정 정보를 가진 Instance 생성 및 바코드 프린터 설정 가져오기
  174. //lzzfMakeBrcdPrntObj("CommAX");
  175. lzzfMakeBrcdPrntObjHanDo("CommAX");
  176. model.setfocus("ipt_pid");//등록번호로 포커스 맞춤
  177. }
  178. /**
  179. * @group :
  180. * @ver : 2007.09.27
  181. * @by : 정찬성
  182. * @---------------------------------------------------
  183. * @type : function
  184. * @access : public
  185. * @desc : 바이탈싸인 행삭제 (2008-08-19 요구사항으로 삭제 처리)
  186. * @param :
  187. * @return :
  188. * @---------------------------------------------------
  189. */
  190. function fDelRow(){
  191. var iRow = grd_vitalsigngruplist.row ;
  192. var sRowNum = model.getValue(xVitalSignPath + "[" + iRow + "]/tnscarerecvsseq");
  193. if(parseInt(sRowNum) < 4){
  194. messageBox("Vital Sign 기본정보는 삭제 ","E001");
  195. return;
  196. } else if( model.getValue(xVitalSignPath+"["+1+"]/stat") == 'I' ) {
  197. grd_vitalsigngruplist.deleteRow(iRow);
  198. } else if( model.getValue(xVitalSignPath+"["+1+"]/stat") == 'U' && model.getValue(xVitalSignPath+"["+iRow+"]/stat") == 'I' ) {
  199. grd_vitalsigngruplist.deleteRow(iRow);
  200. } else if( model.getValue(xVitalSignPath+"["+1+"]/stat") == 'U' ) {
  201. grd_vitalsigngruplist.textmatrix(iRow, 1) = "D" ;
  202. }
  203. }
  204. /**
  205. * @group :
  206. * @ver : 2007.09.27
  207. * @by : 정찬성
  208. * @---------------------------------------------------
  209. * @type : function
  210. * @access : public
  211. * @desc : 줄추가 버튼 (2008-08-19 요구사항으로 삭제 처리)
  212. * @param :
  213. * @return :
  214. * @---------------------------------------------------
  215. */
  216. function fAddSameLevlItemButton(){
  217. // var iRows = grd_vitalsigngruplist.rows;
  218. var iRow = grd_vitalsigngruplist.row;
  219. if(iRow > 0 ){
  220. grd_vitalsigngruplist.insertRow(iRow, "below");
  221. model.setValue(xVitalSignPath+"["+grd_vitalsigngruplist.row+"]/tnscarerecseq", model.getValue(xVitalSignPath+"["+1+"]/tnscarerecseq") );
  222. model.setValue(xVitalSignPath+"["+grd_vitalsigngruplist.row+"]/stat","I");
  223. }
  224. }
  225. /**
  226. * @group :
  227. * @ver : 2007.05.09
  228. * @by : 정찬성
  229. * @---------------------------------------------------
  230. * @type : function
  231. * @access : public
  232. * @desc : 참여자 정보 팝업 조회
  233. * @param : originalNode
  234. * @param : copyNode
  235. * @return : true/false
  236. * @---------------------------------------------------
  237. */
  238. function fClickUserBtn(userflag, seq, deptcd2, flag){
  239. var deptcd = "";
  240. var jobkindcd = "";
  241. var deptcd = "";
  242. if(userflag == "doctor"){
  243. deptcd = deptcd2;
  244. jobkindcd = "";
  245. }else if(userflag == "nurse"){
  246. deptcd = deptcd2;
  247. jobkindcd = "";
  248. }else{}
  249. setParameter("SPMNN02100_deptcd", deptcd);
  250. setParameter("SPMNN02100_jobkindcd", jobkindcd);
  251. modal("SPMNR02100");
  252. var userid = getParameter("SPMNN02100_userid");
  253. var usernm = getParameter("SPMNN02100_usernm");
  254. var posinstnm = getParameter("SPMNN02100_posinstnm");
  255. var posinstcd = getParameter("SPMNN02100_posinstcd");
  256. var posdeptnm = getParameter("SPMNN02100_posdeptnm");
  257. var posdeptcd = getParameter("SPMNN02100_posdeptcd");
  258. if(userid != "" && posdeptcd != ""){//사용자 정보가 있을 경우에만 처리
  259. if(flag == "str"){
  260. model.setValue(opt_fromdeptnm.attribute("ref"), userid);// 저장할 데이터 생성
  261. model.setValue(opt_fromusernm.attribute("ref"), usernm);// 저장할 데이터 생성
  262. model.setValue(opt_tnsstrnursall.attribute("ref"), userid+","+usernm+","+posinstnm+","+posinstcd+","+posdeptnm+","+posdeptcd);// 저장할 데이터 생성
  263. } else if(flag == "end"){
  264. model.setValue(opt_todeptnm.attribute("ref"), userid);// 저장할 데이터 생성
  265. model.setValue(opt_tousernm.attribute("ref"), usernm);// 저장할 데이터 생성
  266. model.setValue(opt_tnsendnursall.attribute("ref"), userid+","+usernm+","+posinstnm+","+posinstcd+","+posdeptnm+","+posdeptcd);// 저장할 데이터 생성
  267. }
  268. }
  269. model.refresh();
  270. setParameter("SPMNN02100_userid", "");
  271. setParameter("SPMNN02100_usernm", "");
  272. }
  273. /**
  274. * @group :
  275. * @ver : 2007.07.09
  276. * @by : 정찬성
  277. * @---------------------------------------------------
  278. * @type : function
  279. * @access : public
  280. * @desc : 그리드 클릭시 선택컬럼 값 변경
  281. * @param :
  282. * @return :
  283. * @---------------------------------------------------
  284. */
  285. function fClickedGridRow(datagrid, aGridNm, xListPath){
  286. var iRow = 0;
  287. var iCol = 0;
  288. var ocrtag = "";
  289. iRow = datagrid.row;
  290. iCol = datagrid.col;
  291. if(iCol == 1) return;
  292. if(iRow < 1) return;
  293. var ocrtag = datagrid.valueMatrix(iRow, datagrid.colRef("ocrtag"));
  294. if(ocrtag == "") {
  295. if(model.getValue(xListPath+"["+iRow+"]/sel") == "true"){
  296. model.setValue(xListPath+"["+iRow+"]/sel","false");
  297. datagrid.removeStatus(iRow, "update");
  298. }else{
  299. model.setValue(xListPath+"["+iRow+"]/sel", "true");
  300. datagrid.rowStatus(iRow) = 2;
  301. if (aGridNm == "grd_execdetlgruplist") fSelchange();
  302. }
  303. } else {
  304. for(var i = datagrid.fixedRows; i < datagrid.rows; i++) {
  305. if(ocrtag == datagrid.valueMatrix(i, datagrid.colRef("ocrtag"))) {
  306. if(model.getValue(xListPath+"["+i+"]/sel") == "true"){
  307. model.setValue(xListPath+"["+i+"]/sel","false");
  308. datagrid.removeStatus(i, "update");
  309. }else{
  310. model.setValue(xListPath+"["+i+"]/sel", "true");
  311. datagrid.rowStatus(i) = 2;
  312. if (aGridNm == "grd_execdetlgruplist") fSelchange();
  313. }
  314. }
  315. }
  316. }
  317. }
  318. /**
  319. * @group :
  320. * @ver : 2007.07.09
  321. * @by : 정찬성
  322. * @---------------------------------------------------
  323. * @type : function
  324. * @access : public
  325. * @desc : 미수행기록 목록에서 선택항목 체크(더블클릭)
  326. * @param :
  327. * @return :
  328. * @---------------------------------------------------
  329. */
  330. function fParam(getparam) {
  331. var openernull = "" // 파마리터 null check
  332. var popvalue = "" ;
  333. var pidvalue = "" ;
  334. var sPid = getPatientInfo("pid");
  335. //debugger;
  336. //sGolPid = sPid; // 기존 Pid 기록
  337. /* 메뉴 || 파라미터로 들어올때 체크 시작 */
  338. /* IPRC1 : 수혈불출관리화면(병동) */
  339. /* IPRC2 : 수혈간호기록(병동) */
  340. /* OPRC1 : 수혈불출관리화면(외래) */
  341. /* OPRC2 : 수혈간호기록(외래) */
  342. if( window.opener == null &&
  343. ( getparam == "IPRC1" || getparam == "IPRC2" ||
  344. getparam == "OPRC1" || getparam == "OPRC2" ||
  345. getparam == "IPRC" || getparam == "OPRC") ) {//병동메인/주사에서 들어오지 않을때...
  346. openernull = 'Y';
  347. model.setValue(ipt_pid.attribute("ref"), sPid );//등록번호 화면에 셋팅
  348. model.setValue(ipt_pid2.attribute("ref"), sPid );//등록번호 화면에 셋팅
  349. if(getparam == "OPRC1"){
  350. button1.selected = true;
  351. model.toggle("case1");
  352. group4.visible = false;
  353. getparam = "OPRC" ;
  354. ioparam = getparam ;
  355. if(sPid != null && sPid != "" ) btn_srch1.dispatch("DOMActivate"); //상단정보가 있을때
  356. } else if(getparam == "OPRC2"){
  357. button2.selected = true;
  358. model.toggle("case2");
  359. group4.visible = true;
  360. getparam = "OPRC" ;
  361. ioparam = getparam ;
  362. fGetPatientInfo("pid","case2");// 환자 개인정보를 가져온다.
  363. if(sPid != null && sPid != "" ) btn_srch2.dispatch("DOMActivate"); //상단정보가 있을때
  364. } else if(getparam == "IPRC1"){
  365. button1.selected = true;
  366. model.toggle("case1");
  367. group4.visible = false;
  368. getparam = "IPRC" ;
  369. ioparam = getparam ;
  370. if(sPid != null && sPid != "" ) btn_srch1.dispatch("DOMActivate"); //상단정보가 있을때
  371. } else if(getparam == "IPRC2"){
  372. button2.selected = true;
  373. model.toggle("case2");
  374. group4.visible = true;
  375. getparam = "IPRC" ;
  376. ioparam = getparam ;
  377. fGetPatientInfo("pid","case2");// 환자 개인정보를 가져온다.
  378. if(sPid != null && sPid != "" ) btn_srch2.dispatch("DOMActivate"); //상단정보가 있을때
  379. }
  380. } else if( window.opener != null &&
  381. ( opener.window.javascript.getParameter("ioflag") == "IPRC1" ||
  382. opener.window.javascript.getParameter("ioflag") == "IPRC2" ||
  383. opener.window.javascript.getParameter("ioflag") == "OPRC1" ||
  384. opener.window.javascript.getParameter("ioflag") == "OPRC2" )) {//병동메인/주사실메인에서 들어올때...
  385. popvalue = opener.window.javascript.getParameter("ioflag")
  386. pidvalue = opener.window.javascript.getParameter("pid")
  387. model.setValue(ipt_pid.attribute("ref"), opener.window.javascript.getParameter("pid") );
  388. model.setValue(ipt_pid2.attribute("ref"), opener.window.javascript.getParameter("pid") );
  389. //sGolPid = opener.window.javascript.getParameter("pid");
  390. if( popvalue != null && popvalue != "" && pidvalue != null && pidvalue != "") {//플래그별 화면 case 선택
  391. if(popvalue == "OPRC1"){
  392. button1.selected = true;
  393. model.toggle("case1");
  394. group4.visible = false;
  395. getparam = "OPRC" ;
  396. ioparam = getparam ;
  397. btn_srch1.dispatch("DOMActivate");
  398. } else if(popvalue == "OPRC2"){
  399. button2.selected = true;
  400. model.toggle("case2");
  401. group4.visible = true;
  402. getparam = "OPRC" ;
  403. ioparam = getparam ;
  404. btn_srch2.dispatch("DOMActivate");
  405. } else if(popvalue == "IPRC1"){
  406. button1.selected = true;
  407. model.toggle("case1");
  408. group4.visible = false;
  409. getparam = "IPRC" ;
  410. ioparam = getparam ;
  411. btn_srch1.dispatch("DOMActivate");
  412. } else if(popvalue == "IPRC2"){
  413. button2.selected = true;
  414. model.toggle("case2");
  415. group4.visible = true;
  416. getparam = "IPRC" ;
  417. ioparam = getparam ;
  418. btn_srch2.dispatch("DOMActivate");
  419. }
  420. }
  421. } else if(( getparam == "IPRC1" || getparam == "IPRC2" || getparam == "OPRC1" || getparam == "OPRC2" || getparam == "IPRC" || getparam == "OPRC")) {// 메뉴에서 들어올때
  422. model.setValue(ipt_pid.attribute("ref"), sPid );//등록번호 화면에 셋팅
  423. model.setValue(ipt_pid2.attribute("ref"), sPid );//등록번호 화면에 셋팅
  424. if(getparam == "OPRC1"){
  425. button1.selected = true;
  426. model.toggle("case1");
  427. group4.visible = false;
  428. getparam = "OPRC" ;
  429. ioparam = getparam ;
  430. if(sPid != null && sPid != "" ) btn_srch1.dispatch("DOMActivate"); //상단정보가 있을때
  431. } else if(getparam == "OPRC2"){
  432. button2.selected = true;
  433. model.toggle("case2");
  434. group4.visible = true;
  435. getparam = "OPRC" ;
  436. ioparam = getparam ;
  437. if(sPid != null && sPid != "" ) btn_srch2.dispatch("DOMActivate"); //상단정보가 있을때
  438. } else if(getparam == "IPRC1"){
  439. button1.selected = true;
  440. model.toggle("case1");
  441. group4.visible = false;
  442. getparam = "IPRC" ;
  443. ioparam = getparam ;
  444. if(sPid != null && sPid != "" ) btn_srch1.dispatch("DOMActivate"); //상단정보가 있을때
  445. } else if(getparam == "IPRC2"){
  446. button2.selected = true;
  447. model.toggle("case2");
  448. group4.visible = true;
  449. getparam = "IPRC" ;
  450. ioparam = getparam ;
  451. if(sPid != null && sPid != "" ) btn_srch2.dispatch("DOMActivate"); //상단정보가 있을때
  452. } else {
  453. if(sPid != null && sPid != "" ) {//상단정보가 있을때
  454. model.setValue(ipt_pid.attribute("ref"), sPid );//등록번호 화면에 셋팅
  455. model.setValue(ipt_pid2.attribute("ref"), sPid );//등록번호 화면에 셋팅
  456. }
  457. }
  458. } else if(getparam == "" || getparam == null ) {// 화면파라미터 없을때
  459. button1.selected = true;
  460. model.toggle("case1");
  461. group4.visible = false;
  462. getparam = "IPRC";
  463. } else {
  464. openernull = 'Y';
  465. getparam = "" ;
  466. }
  467. /* 메뉴 && 파라미터가 아닌 로컬이나 다른 값으로 들어올때 기본 셋팅값으로 시작 */
  468. if(getparam == "" && openernull == "Y"){
  469. // 화면파라미터/팝업파라미터 모두 없을때
  470. button1.selected = true;
  471. model.toggle("case1");
  472. group4.visible = false;
  473. getparam = "IPRC" ;
  474. }
  475. /* 메뉴 && 파라미터가 아닌 로컬이나 다른 값으로 들어올때 기본 셋팅값으로 끝 */
  476. /* 메뉴 || 파라미터가 외래일때 병동/병실/환자 리스트 disabled 시작 */
  477. if(getparam == "OPRC"){ // 외래일때, 병동/병실/환자 리스트 disabled
  478. cmb_wardcdgruplist2.disabled = true ;
  479. cmb_roomcdgruplist2.disabled = true ;
  480. cmb_patientgruplist2.disabled = true ;
  481. cmb_wardcdgruplist.disabled = true ;
  482. cmb_roomcdgruplist.disabled = true ;
  483. cmb_patientgruplist.disabled = true ;
  484. }else{
  485. cmb_wardcdgruplist2.disabled = false ;
  486. cmb_roomcdgruplist2.disabled = false ;
  487. cmb_patientgruplist2.disabled = false ;
  488. cmb_wardcdgruplist.disabled = false ;
  489. cmb_roomcdgruplist.disabled = false ;
  490. cmb_patientgruplist.disabled = false ;
  491. }
  492. /* 메뉴 || 파라미터가 외래일때 병동/병실/환자 리스트 disabled 끝 */
  493. ioparam = getparam ;
  494. return getparam ;
  495. }
  496. /**
  497. * @group :
  498. * @ver : 2007.07.09
  499. * @by : 정찬성
  500. * @---------------------------------------------------
  501. * @type : function
  502. * @access : public
  503. * @desc : 혈액요청취소 선택했을때...
  504. * @param :
  505. * @return :
  506. * @---------------------------------------------------
  507. */
  508. function fBlodReqCancelDoc(){
  509. var sRowCnt = grd_delivedetlgruplist.rows-grd_delivedetlgruplist.fixedrows;
  510. var cnt = 0 ;
  511. model.removeNode ("/root/send/report");
  512. for(var i=1; i<= sRowCnt; i++){ // 선택한 값이 불출신청 상태인지 체크
  513. if( grd_delivedetlgruplist.labelmatrix(i, 1) == "true" ) {
  514. cnt = cnt + 1;
  515. if( grd_delivedetlgruplist.labelmatrix(i, 2) != "불출요청") {
  516. messageBox("불출요청 상태 이외에는 혈액요청취소를 ","E001");
  517. return;
  518. }
  519. if( grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("blodno") ).length < 5 ) {
  520. messageBox("혈액번호가 ","I004");
  521. return;
  522. }
  523. model.makeValue("/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]","");
  524. model.copyNode( "/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]", "/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]" );
  525. }
  526. }
  527. if(cnt < 1){
  528. messageBox("선택 정보가 ","I004");
  529. return;
  530. }
  531. if(messageBox("혈액요청 취소를 ","Q004") != 6) return;// 저장하시겠습니까?
  532. model.makeValue("/root/send/report/patientnm",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm1") );
  533. model.makeValue("/root/send/report/pid",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") );
  534. model.makeValue("/root/send/report/sexage",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage") );
  535. model.makeValue("/root/send/report/btypee",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/btype") );
  536. model.makeValue("/root/send/detlgrup",grd_delivedetlgruplist.getupdatedataAll("i"));
  537. if(submit("TXMNR01034")){
  538. fGettDeliveDetlList();// 불출신청 내역 재조회
  539. }
  540. }
  541. /**
  542. * @group :
  543. * @ver : 2007.07.09
  544. * @by : 정찬성
  545. * @---------------------------------------------------
  546. * @type : function
  547. * @access : public
  548. * @desc : 미수행기록 목록에서 선택항목 체크(더블클릭)
  549. * @param :
  550. * @return :
  551. * @---------------------------------------------------
  552. */
  553. function fGridSel() {
  554. var sRowCnt2 = grd_blodnoexecrecgruplist.rows-grd_blodnoexecrecgruplist.fixedrows;
  555. var iRow = grd_blodnoexecrecgruplist.Row ;
  556. if( grd_blodnoexecrecgruplist.labelmatrix(iRow, 1) == "FALSE" || grd_blodnoexecrecgruplist.labelmatrix(iRow, 1) == "false" ){
  557. grd_blodnoexecrecgruplist.textmatrix(iRow, 1) = "true" ;
  558. fOtherRecListUncheck("noexec");
  559. } else if( grd_blodnoexecrecgruplist.labelmatrix(iRow, 1) == "true" ) {
  560. grd_blodnoexecrecgruplist.textmatrix(iRow, 1) = "FALSE" ;
  561. }
  562. }
  563. /**
  564. * @group :
  565. * @ver : 2007.07.09
  566. * @by : 정찬성
  567. * @---------------------------------------------------
  568. * @type : function
  569. * @access : public
  570. * @desc : 수행기록 내역 상세정보 (더블클릭)
  571. * @param :
  572. * @return :
  573. * @---------------------------------------------------
  574. */
  575. function fBlodExecRecDetlinfo() {
  576. var sRowCnt = grd_blodexecrecgruplist.rows-grd_blodexecrecgruplist.fixedrows;
  577. var iRow = grd_blodexecrecgruplist.row ;
  578. model.setValue(cap_blodno.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/blodno"));
  579. model.setValue(cap_blodnm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/prcpnm"));
  580. model.setValue(cap_aborh.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/abo") + model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/rh") );
  581. model.setValue(ipt_fromdd.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrddtm").substring(0,8));
  582. model.setValue(ipt_fromtm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrddtm").substring(8,12));
  583. model.setValue(ipt_todd.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendddtm").substring(0,8));
  584. model.setValue(ipt_totm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendddtm").substring(8,12));
  585. model.setValue(opt_fromdeptnm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursedeptnm"));
  586. model.setValue(opt_fromusernm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursenm"));
  587. model.setValue(opt_todeptnm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursedeptnm"));
  588. model.setValue(opt_tousernm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursenm"));
  589. model.setValue(cmb_tnssideeffect.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnssideeffect"));
  590. model.setValue(ipt_prcpdelivefact.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/prcpdelivefact"));
  591. model.setValue(rdo_discontinuyn.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/discontinuyn"));
  592. //rdo_discontinuyn.disabled = true;
  593. //cmb_discontinu.disabled = true;
  594. model.setValue(cmb_discontinu.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/discontinu"));
  595. model.setValue(ipt_etc.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/discontinuetc"));
  596. //model.setValue(ipt_drugqty.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/drugqty"));
  597. model.setValue(ipt_onepintqty.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/onepintqty"));
  598. fSumQtyCalc(model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/drugqty"));// 총투여량 계산 onepintqty * 혈액갯수
  599. model.setValue(textarea1.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsrec"));
  600. model.setValue(opt_instcd.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/instcd"));
  601. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno",
  602. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+iRow+"]/signno"));
  603. model.setValue(chk_smlqtytnsyn.attribute("ref"), model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+iRow+"]/smlqtytnsyn"));
  604. model.setValue(opt_tnsstrnursall.attribute("ref"),
  605. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnurseid")+","+
  606. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursenm")+","+","+","+
  607. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursedeptnm")+","+
  608. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursedeptcd"));
  609. model.setValue(opt_tnsendnursall.attribute("ref"),
  610. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnurseid")+","+
  611. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursenm")+","+","+","+
  612. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursedeptnm")+","+
  613. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursedeptcd"));
  614. if(rdo_discontinuyn.value=='Y'){
  615. cmb_discontinu.disabled = false ;
  616. if (cmb_discontinu.value.substring(3,5) == "99") {
  617. ipt_etc.disabled = false ;
  618. }
  619. }else{
  620. cmb_discontinu.disabled = true;
  621. ipt_etc.disabled = true ;
  622. }
  623. model.refresh();
  624. var sRowCnt2 = grd_blodnoexecrecgruplist.rows-grd_blodnoexecrecgruplist.fixedrows;
  625. for(var i=1; i<= sRowCnt2; i++){ // 선택한 값이 불출신청 상태인지 체크
  626. grd_blodnoexecrecgruplist.textmatrix(i, 1) = "FALSE" ;
  627. }
  628. }
  629. /**
  630. * @group :
  631. * @ver : 2007.07.16
  632. * @by : 정찬성
  633. * @---------------------------------------------------
  634. * @type : function
  635. * @access : public
  636. * @desc : 수혈 수행 내역 리스트
  637. * @param :
  638. * @return :
  639. * @---------------------------------------------------
  640. */
  641. function fGetBlodExecRecList(blodpidflag){
  642. var sRowCnt = grd_execdetlgruplist.rows-grd_execdetlgruplist.fixedrows;
  643. if( model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") == "" && model.getValue("/root/main/cond/blodno") == "" ){
  644. // messageBox("혈액번호/등록번호를 ","C001");
  645. // model.setfocus("ipt_blodno");
  646. // return;
  647. }
  648. model.refresh();
  649. model.makeValue("/root/send/blodpidflag",blodpidflag);
  650. model.makeValue("/root/send/blodno", ipt_blodno.value );
  651. model.makeValue("/root/send/prcpddfrom", ipt_prcpddfrom2.value );
  652. model.makeValue("/root/send/prcpddto", ipt_prcdddto2.value );
  653. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist2.value );
  654. model.makeValue("/root/send/wardcdnm", cmb_wardcdgruplist2.label );
  655. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist2.value );
  656. model.makeValue("/root/send/hngnm", cmb_patientgruplist2.value );
  657. model.makeValue("/root/send/pid", ipt_pid2.value );
  658. model.makeValue("/root/send/ioparam", ioparam);
  659. if(submit("TRMNR01024")){
  660. }
  661. }
  662. /**
  663. * @group :
  664. * @ver : 2007.05.09
  665. * @by : 정찬성
  666. * @---------------------------------------------------
  667. * @type : function
  668. * @access : public
  669. * @desc : 수혈간호기록 기록저장 버튼
  670. * @param :
  671. * @return :
  672. * @---------------------------------------------------
  673. */
  674. function fTnsRecSave(pFlag){
  675. if(pFlag==""){
  676. pFlag = "TempSave";
  677. }
  678. //20100415 khj 12061 수혈종료일시 입력후 임시저장 기능 블로킹
  679. if ( pFlag == "TempSave" && !isNull(model.getValue(xTnsNurseRecPath+"/tnsenddd") ) ){
  680. messageBox("수혈종료일시의 기록은 인증저장만 ","I006");
  681. return;
  682. }
  683. //if (!isNull(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno") ) ){
  684. // messageBox("최초 인증저장이 아니므로 FlowSheet에서 V/S 수정이 필요합니다.","I");
  685. //}
  686. var CheckValue = "";
  687. var check = "" ;
  688. var sRowCnt = grd_blodexecrecgruplist.rows-grd_blodexecrecgruplist.fixedrows;
  689. var rtnBlodList = "";
  690. var rtnBlodFindRow = 0;
  691. var rtnBlodListArr = new Array();
  692. // 기존 Signno 여부 확인
  693. var CheckSignno = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno").split(",") ;
  694. if(CheckSignno.length > 0){
  695. for(var i=0 ; i <= CheckSignno.length ; i++){
  696. if(!isNull(CheckSignno[i])){
  697. messageBox("최초 인증저장이 아니므로 FlowSheet에서 V/S 수정이 필요합니다.","I");
  698. break;
  699. }
  700. }
  701. }
  702. // 미수행기록목록 리스트, 수행기록 내역 리스트 확인 작업
  703. var blodnodupSourcebase = new Array();
  704. var prcpnodupSourcebase = new Array();
  705. if(cap_blodno.value != ""){
  706. blodnodupSourcebase = cap_blodno.value.split(",") ;
  707. prcpnodupSourcebase = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno").split(",") ;
  708. }
  709. // else {
  710. // blodnodupSourcebase[0] = cap_blodno.value ;
  711. // }
  712. for(var i=1; i<= sRowCnt; i++){ // 선택한 값이 불출신청 상태인지 체크, 수행기록내역에서 선택한 혈액번호인지 체크
  713. if( grd_blodexecrecgruplist.valuematrix(i, grd_blodexecrecgruplist.colRef("blodno")) == blodnodupSourcebase[0] &&
  714. grd_blodexecrecgruplist.valuematrix(i, grd_blodexecrecgruplist.colRef("prcpno")) == prcpnodupSourcebase[0] ) {
  715. check = "Y" ;
  716. rtnBlodFindRow = i;
  717. break;
  718. }
  719. }
  720. if(check == "Y" && pFlag == "CertSave" && blodnodupSourcebase.length == 1 ){//인증저장이고 하나의 혈액번호가 선택되어 수정할경우 함께 기록된 혈액번호가 존재하는지 체크
  721. rtnBlodList = fExistsExecRecTogether(rtnBlodFindRow,"U");
  722. }
  723. if(chk_smlqtytnsyn.value == "Y"){
  724. //if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/drugqty") == ""){
  725. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/onepintqty") == ""){
  726. messageBox("투여량을 입력하십시요", "E");
  727. model.setFocus("ipt_onepintqty");
  728. return;
  729. }
  730. }
  731. /* 수혈종료일시가 입력되면 반드시 투여량이 입력되어야함 */
  732. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsenddd") != "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm") != "") {
  733. //if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/drugqty") == ""){
  734. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/onepintqty") == ""){
  735. messageBox("혈액 투여량이 입력되지 않았습니다.\n\n투여량을 입력하세요.", "E");
  736. model.setFocus("ipt_onepintqty");
  737. return;
  738. }
  739. }
  740. //2008-12-16 추가
  741. if(ipt_tnssideeffectetc.disabled == false && ipt_tnssideeffectetc.value == "" ){
  742. messageBox("수혈 부작용 기타에 대한 상세 입력을 하지 않았습니다.\n\n부작용 기타란에 입력하세요.", "E");
  743. model.setfocus("ipt_tnssideeffectetc");
  744. return;
  745. }
  746. /* 수혈중단이 Y 일때 수혈폐기로 상태 변경 시작 */
  747. if( rdo_discontinuyn.value == 'Y') {
  748. CheckValue = "Y";
  749. var blodnodupSource = new Array();
  750. var prcpnodupSource = new Array();
  751. if(cap_blodno.value != ""){
  752. blodnodupSource = cap_blodno.value.split(",") ;
  753. prcpnodupSource = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno").split(",") ;
  754. }
  755. // else {
  756. // blodnodupSource[0] = cap_blodno.value ;
  757. // }
  758. for(var i=0; i<= blodnodupSource.length -1 ; i++){
  759. // if ( check != "Y" ){// 신규 저장
  760. for(var n=1; n <= grd_blodreturnreqgruplist.rows ; n++){
  761. if( blodnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/blodno") &&
  762. prcpnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/prcpno") ) {//혈액번호와 같으면 그리드에 셋팅
  763. if(model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/reqflagstat") == "Y"){
  764. //messageBox(model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/blodno") + " 는 폐기 확정 된 혈액입니다.", "E");
  765. //return;
  766. grd_blodreturnreqgruplist.valuematrix(n,1) = 'true' ;
  767. }else{
  768. grd_blodreturnreqgruplist.valuematrix(n,1) = 'true' ;
  769. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("reqflag")) = '3' ;
  770. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("returnabandondate")) = ipt_todd.value ;
  771. if(chk_smlqtytnsyn.value == "Y"){
  772. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "13001"; //소량수혈 코드 하드코딩
  773. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = "" ;
  774. }else{
  775. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = cmb_discontinu.value ;
  776. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = ipt_etc.value ;
  777. }
  778. }
  779. }
  780. }
  781. }
  782. var cnt = 0 ;
  783. var Hosyn = 0;
  784. for(var i=1; i<= grd_blodreturnreqgruplist.rows ; i++){//체크된 그리드 값 체크
  785. if( grd_blodreturnreqgruplist.labelmatrix(i, 1) == "true" ) {
  786. cnt = cnt + 1;
  787. // ****************************** 반납사유 필수 로직 추가 ***************************************
  788. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/reqflag") == "-" || model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/reqflag") == ""){//반납/폐기를 체크
  789. fReturnData("Y");
  790. messageBox("잔량폐기를 ","C002");
  791. return;
  792. }
  793. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/returnabandondate") == "-" || model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/returnabandondate") == ""){//반납/폐기일 체크
  794. fReturnData("Y");
  795. messageBox("잔량폐기일을","C002");
  796. model.setFocus("ipt_todd");
  797. return;
  798. }
  799. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd") == "-" || model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd") == ""){//반납사유 체크
  800. fReturnData("Y");
  801. messageBox("잔량폐기 사유를","C002");
  802. model.setFocus("cmb_discontinu");
  803. return;
  804. }
  805. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd").substr(3,2) == "99" && model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/clinccmtcnts") == ""){//반납사유 체크
  806. fReturnData("Y");
  807. messageBox("기타 사유 처리 시 기타사유내역을 입력해야 합니다.","C");
  808. model.setFocus("ipt_etc");
  809. return;
  810. }
  811. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/onepintqty") == "" ){//투여량 체크
  812. fReturnData("Y");
  813. messageBox("투여량을 입력하십시요","C");
  814. model.setFocus("ipt_onepintqty");
  815. return;
  816. }
  817. // if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd").substring(0,3) == "080"){ //반납사유가 병원사유인지 체크
  818. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd").substring(0,3) == "072"){ //반납사유가 병원사유인지 체크
  819. Hosyn++;
  820. }
  821. }
  822. }
  823. if(Hosyn > 0 || CheckValue == "Y"){
  824. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsenddd") == "" ||
  825. model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm") == "" ){
  826. fReturnData("Y");
  827. messageBox("수혈종료 일시를 ","C002");
  828. model.setFocus("ipt_todd");
  829. return;
  830. }
  831. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursnm") == "" ){
  832. fReturnData("Y");
  833. messageBox("수혈종료 간호사를 ","C002");
  834. model.setFocus("btn_usersetting");
  835. return;
  836. }
  837. //반납사유가 병원사유인지 체크
  838. if(Hosyn > 0){
  839. var sRtnMsg = messageBox("병원사유에 의한 혈액폐기시 혈액대금이 병원손실처리 됩니다.\n\n","Q003");
  840. if(sRtnMsg != 6){
  841. fReturnData("Y");
  842. return;
  843. }
  844. }else{
  845. if(model.getValue("root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/discontinu").substring(0,3) == "072" ){
  846. var sRtnMsg = messageBox("병원사유에 의한 혈액폐기시 혈액대금이 병원손실처리 됩니다.\n\n","Q003");
  847. if(sRtnMsg != 6){
  848. fReturnData("Y");
  849. return;
  850. }
  851. }
  852. }
  853. }
  854. //return;
  855. //if ( check != "Y" ){// 신규 저장
  856. if (CheckValue =="Y"){
  857. if(cnt < 1){
  858. messageBox("선택 정보가 ","I004");
  859. fReturnData("Y");
  860. return;
  861. }
  862. model.removenode("/root/send");
  863. model.makeValue("/root/send/detlgrup2",grd_blodreturnreqgruplist.getupdatedataAll("i"));
  864. }
  865. model.makeValue("/root/send/discontinuyn2", "Y" );
  866. } else {
  867. var blodnodupSource2 = new Array();
  868. var prcpnodupSource2 = new Array();
  869. if(cap_blodno.value != ""){
  870. blodnodupSource2 = cap_blodno.value.split(",") ;
  871. prcpnodupSource2 = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno").split(",") ;
  872. }
  873. for(var i=0; i<= blodnodupSource2.length -1 ; i++){
  874. for(var x=1; x<= grd_blodreturnreqgruplist.rows ; x++){
  875. if( blodnodupSource2[i] == model.getValue(xBlodReturnReqGrupListPath+"["+x+"]/blodno") &&
  876. prcpnodupSource2[i] == model.getValue(xBlodReturnReqGrupListPath+"["+x+"]/prcpno") ) {//혈액번호와 같으면 그리드에 셋팅
  877. //if(model.getValue(xBlodReturnReqGrupListPath+"["+x+"]/reqflagstat") == "Y"){
  878. // messageBox(model.getValue(xBlodReturnReqGrupListPath+"["+x+"]/blodno") + " 는 폐기 확정 된 혈액입니다.", "E");
  879. // return;
  880. //}else{
  881. grd_blodreturnreqgruplist.valuematrix(x,1) = 'true' ;
  882. //}
  883. }
  884. }
  885. }
  886. }
  887. /* 수혈중단이 Y 일때 수혈폐기로 상태 변경 끝 */
  888. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/blodno") == ""){
  889. fReturnData("N");
  890. messageBox("혈액번호를","C002");
  891. return;
  892. }
  893. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpnm") == ""){
  894. fReturnData("N");
  895. messageBox("혈액명을","C002");
  896. return;
  897. }
  898. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/abo") == ""){
  899. fReturnData("N");
  900. messageBox("혈액형을","C002");
  901. return;
  902. }
  903. // 15.09.08 추가 - AYS
  904. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrdd") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrtm") == "" ) {
  905. fReturnData("N");
  906. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y"){
  907. messageBox("수혈시작시간을","C001");
  908. } else{
  909. messageBox("환자보낸 시간을","C001");
  910. }
  911. model.setFocus("btn_setfromdt");
  912. return;
  913. }
  914. // 15.09.08 추가 - AYS
  915. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrnursdeptnm") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrnursnm") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrnursall") == "") {
  916. fReturnData("N");
  917. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y"){
  918. messageBox("수혈시작 간호사를","C002");
  919. } else{
  920. messageBox("담당 간호사를","C001");
  921. }
  922. model.setFocus("btn_srchfromus");
  923. return;
  924. }
  925. // 15.09.08 추가 - AYS
  926. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y"){
  927. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsrec") == "" ) {
  928. fReturnData("N");
  929. messageBox("수혈기록을","C001");
  930. return;
  931. }
  932. }
  933. if( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") != "Y" && model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y") {
  934. if( ( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursdeptnm") != "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursnm") != "" ) &&
  935. ( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsenddd") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm") == "" ) ) {
  936. fReturnData("N");
  937. messageBox("수혈종료시간을","C001");
  938. model.setFocus("btn_settodt");
  939. return;
  940. }
  941. }
  942. if( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") != "Y" && model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y") {
  943. if( ( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsenddd") != "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm") != "" ) &&
  944. ( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursdeptnm") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursnm") == "" ) ) {
  945. fReturnData("N");
  946. messageBox("수혈종료 간호사를","C002");
  947. model.setFocus("btn_usersetting");
  948. return;
  949. }
  950. }
  951. if((model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") == "Y" && model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/discontinuyn") == "Y") || (model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") == "Y" && model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/discontinuyn") == "Y")) {
  952. fReturnData("N");
  953. messageBox("전원 및 성분채집실 수혈 시 수혈 중단을 선택할 수 없습니다.","C");
  954. return;
  955. }
  956. // if(ipt_tnssideeffectetc.attribute("disabled")== "false"){
  957. // if(ipt_tnssideeffectetc.value == ""){
  958. // fReturnData("N");
  959. // messageBox("수혈 부작용 내역 중 기타 항목이 선택되었습니다.\n\n부작용 기타 내역은 필수입력입니다.","I");
  960. // return;
  961. // }
  962. // }
  963. if(messageBox("수혈기록을 ","Q002") != 6){
  964. fReturnData("N");
  965. return;// 저장하시겠습니까?
  966. }
  967. model.makeValue("/root/send/pid",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") ) ;
  968. model.makeValue("/root/send/blodno",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/blodno") ) ;
  969. model.makeValue("/root/send/tnsstrddtm",
  970. ( !isNull(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrtm")) ? (model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrdd") + model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrtm")+"00").substring(0,14): "") );
  971. model.makeValue("/root/send/tnsendddtm",
  972. ( !isNull(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm")) ? (model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsenddd") + model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm")+"00").substring(0,14): "") );
  973. model.makeValue("/root/send/tnsstrnursall",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrnursall") );
  974. model.makeValue("/root/send/tnsendnursall",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursall") );
  975. model.makeValue("/root/send/sideeffectcomcodelist",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnssideeffect") );
  976. model.makeValue("/root/send/tnssideeffectetc",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnssideeffectetc") );
  977. model.makeValue("/root/send/discontinuyn",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/discontinuyn") );
  978. model.makeValue("/root/send/discontinucomcodelist",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/discontinu") );
  979. model.makeValue("/root/send/discontinuetc",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/discontinuetc") );
  980. model.makeValue("/root/send/drugqty",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/drugqty") );
  981. model.makeValue("/root/send/onepintqty",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/onepintqty") );
  982. model.makeValue("/root/send/tnsrec",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsrec") );
  983. model.makeValue("/root/send/smlqtytnsyn",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/smlqtytnsyn") );
  984. model.makeValue("/root/send/tprlnkyn",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tprlnkyn") );
  985. // 150423 추가 - AYS
  986. // if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") != "Y") {
  987. // model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn", "N");
  988. // }
  989. model.makeValue("/root/send/transferyn",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") );
  990. // 15.09.08 - AYS 추가
  991. model.makeValue("/root/send/nonactpher",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") );
  992. model.makeValue("/root/send/ioparam", ioparam);
  993. //model.makeValue("/root/send/prcpdelivefact",model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpdelivefact") );
  994. var sp = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsstrnursall").split(",");
  995. model.makeValue("/root/send/tnsstrnurseid", sp[0] );
  996. model.makeValue("/root/send/tnsstrnursenm", sp[1] );
  997. model.makeValue("/root/send/tnsstrnursedeptcd", sp[5] );
  998. model.makeValue("/root/send/tnsstrnursedeptnm", sp[4] );
  999. var sp2 = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursall").split(",");
  1000. model.makeValue("/root/send/tnsendnurseid", sp2[0] );
  1001. model.makeValue("/root/send/tnsendnursenm", sp2[1] );
  1002. model.makeValue("/root/send/tnsendnursedeptcd", sp2[5] );
  1003. model.makeValue("/root/send/tnsendnursedeptnm", sp2[4] );
  1004. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist2.value);
  1005. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist2.value);
  1006. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  1007. var chekBlod = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/blodno").split(",");
  1008. if(chekBlod.length > 0) {
  1009. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist/orddd"));
  1010. model.makeValue("/root/send/cretno", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist/cretno"));
  1011. }
  1012. var pidblodflag = '';
  1013. if(ipt_pid2.value != ""){
  1014. pidblodflag = 'pid';
  1015. } else if (ipt_blodno.value !="") {
  1016. pidblodflag = 'blod';
  1017. }
  1018. if(pFlag == "CertSave"){
  1019. // 인증저장시에는 수혈종료일시, 수혈종료간호사 반드시 입력 후 저장 되도록 추가 : 2008-01-16
  1020. if( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") != "Y" && model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y") {
  1021. if( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursdeptnm") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendnursnm") == "" ) {
  1022. fReturnData("Y");
  1023. messageBox("수혈종료 간호사를","C002");
  1024. return;
  1025. }
  1026. }
  1027. if( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn") != "Y" && model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") != "Y") {
  1028. if( model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsenddd") == "" || model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsendtm") == "" ) {
  1029. fReturnData("Y");
  1030. messageBox("수혈종료 시간을","C001");
  1031. return;
  1032. }
  1033. }
  1034. model.removeNodeSet("/root/send/signdata");
  1035. var chekBlod = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/blodno").split(",");
  1036. var chekprcpnm = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpnm").split(",");
  1037. var chekabo = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/abo").split(",");
  1038. var cheksignno = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno").split(",");
  1039. var chekprcpno = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno").split(",");
  1040. //alert(chekBlod + "============" + chekBlod.length );
  1041. // if(chekBlod.length == 1){
  1042. // Sign.certreload = true;
  1043. // }
  1044. for(var i=0; i < chekBlod.length ; i++){
  1045. model.makeNode("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist");
  1046. model.makeNode("/root/hidden/vitalsigngrup" );
  1047. model.copyNode("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist", "/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist");
  1048. model.copyNode("/root/hidden/vitalsigngrup" , "/root/main/cond/vitalsigngrup");
  1049. model.setValue("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist/blodno" , chekBlod[i] );
  1050. model.setValue("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist/prcpnm" , chekprcpnm[i] );
  1051. model.setValue("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist/abo" , chekabo[i] );
  1052. model.setValue("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist/signno" , cheksignno[i] );
  1053. sFindBlodnm = "";
  1054. //if(getPatientInfo("pid") == ""){
  1055. sFindBlodnm = chekprcpno[i];
  1056. //}
  1057. //if(chekBlod.length == 1){
  1058. if( i== 0 ){
  1059. Sign.certreload = true;
  1060. } else {
  1061. Sign.certreload = false;
  1062. }
  1063. var fRow = "";
  1064. fRow = grd_blodreturnreqgruplist.findRow(sFindBlodnm, 0, grd_blodreturnreqgruplist.colRef("prcpno"), true, true);
  1065. if(Sign.signprocess() == true){
  1066. model.makeValue("/root/certtmp/signdata/certblodno", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/blodno"));
  1067. model.makeValue("/root/certtmp/signdata/pid", model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1068. model.makeValue("/root/certtmp/signdata/orddd", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/orddd"));
  1069. model.makeValue("/root/certtmp/signdata/cretno", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/cretno"));
  1070. model.makeValue("/root/certtmp/signdata/signno", cheksignno[i] );
  1071. model.makeValue("/root/certtmp/signdata/recdd", getCurrentDate());
  1072. model.makeValue("/root/certtmp/signdata/rectm", getCurrentTime());
  1073. // if( check != "Y" ){// 신규 저장
  1074. // model.makeValue("/root/certtmp/signdata/recsaveflag", "N");
  1075. // }else{
  1076. model.makeValue("/root/certtmp/signdata/recsaveflag", "Y");
  1077. // }
  1078. model.makeValue("/root/certtmp/signdata/signflag", "02");
  1079. if(ioparam == "IPRC"){
  1080. //model.makeValue("/root/certtmp/signdata/signgenrflag", model.getValue("/root/temp/cond/patientgrup/patientgruplist/ordtype"));
  1081. model.makeValue("/root/certtmp/signdata/signgenrflag", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/ordtype"));
  1082. model.makeValue("/root/certtmp/signdata/orddeptcd", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/inptorddeptcd"));
  1083. model.makeValue("/root/certtmp/signdata/orddrid", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/medispclid"));
  1084. }else{
  1085. model.makeValue("/root/certtmp/signdata/signgenrflag", "O");
  1086. model.makeValue("/root/certtmp/signdata/orddeptcd", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/orddeptcd"));
  1087. model.makeValue("/root/certtmp/signdata/orddrid", model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/orddrid"));
  1088. }
  1089. model.makeValue("/root/certtmp/signdata/formcd", "0000002460");
  1090. //alert( Sign.signedInfos[4]);
  1091. //alert( Sign.signedInfos[5]);
  1092. //return; // test 주석
  1093. // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  1094. // ▶ 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1095. model.makeValue("/root/certtmp/signdata/signbfcnts", Sign.signedInfos[1]);
  1096. //
  1097. // ▶ 공인인증 처리후 데이터
  1098. model.makeValue("/root/certtmp/signdata/signaftcnts", Sign.signedInfos[2]);
  1099. if(!copyNodeType("/root/send", "/root/certtmp", "after")){
  1100. model.removeNode("/root/certtmp");
  1101. }
  1102. }else{
  1103. fBlodDeliveList(pidblodflag);// 혈액불출내역 리스트
  1104. fTnsRecInit(); //수혈간호기록 초기화
  1105. //fBlodColChg(); //컬럼속성 변경
  1106. return false;
  1107. }
  1108. }
  1109. model.removeNode("/root/hidden/tnsnurserecgrup");
  1110. model.removeNode("/root/hidden/vitalsigngrup");
  1111. } else {
  1112. }
  1113. //debugger;
  1114. /* 저장 / 업데이트 구분 체크 끝 */
  1115. if( check != "Y" ){// 신규 저장
  1116. model.makeValue("/root/send/instcd", "" );
  1117. model.makeValue("/root/send/execprcpuniqno", "" );
  1118. //model.makeValue("/root/send/detlgrup",grd_blodnoexecrecgruplist.getupdatedataAll("i"));
  1119. model.makeValue("/root/send/detlgrup",fSaveExecRecListMake("noexec"));//20100419 khj 체크된 정보 get
  1120. model.makeValue("/root/send/vitalgrup",grd_vitalsigngruplist.getupdatedataAll("i"));
  1121. // if(messageBox("수혈기록을 ","Q002") != 6) return;// 저장하시겠습니까?
  1122. if(submit("TXMNR01031")){
  1123. model.copyNode("/root/hidden/main","/root/main");
  1124. }
  1125. // 저장 실패 해도 재조회 :
  1126. // fBlodDeliveList(pidblodflag);// 혈액불출내역 리스트
  1127. // //fGetBlodNoExecRecList(pidblodflag); //수혈 미수행 내역 리스트
  1128. // //fGetBlodExecRecList(pidblodflag); //수혈 수행 내역 리스트
  1129. // fTnsRecInit(); //수혈간호기록 초기화
  1130. // fBlodColChg(); //컬럼속성 변경
  1131. } else if( check == "Y") {// 업데이트
  1132. model.makeValue("/root/send/prcpdd", "" );
  1133. model.makeValue("/root/send/prcpno", "" );
  1134. model.makeValue("/root/send/prcphistno", "" );
  1135. model.makeValue("/root/send/instcd", "" );
  1136. model.makeValue("/root/send/execprcpuniqno", "" );
  1137. model.makeValue("/root/send/detlgrup",fSaveExecRecListMake("exec"));//20100419 khj 체크된 정보 get
  1138. model.makeValue("/root/send/vitalgrup",grd_vitalsigngruplist.getupdatedataAll("i")); // 150310 - AYS
  1139. // if(messageBox("","Q002") != 6) return;// 저장하시겠습니까?
  1140. if(submit("TXMNR01032")){
  1141. model.copyNode("/root/hidden/main","/root/main");
  1142. }
  1143. // 저장 실패 해도 재조회 : // 저장 실패 해도 재조회
  1144. // fBlodDeliveList(pidblodflag);// 혈액불출내역 리스트
  1145. //
  1146. // //fGetBlodNoExecRecList(pidblodflag); //수혈 미수행 내역 리스트
  1147. // //fGetBlodExecRecList(pidblodflag); //수혈 수행 내역 리스트
  1148. //
  1149. // //model.removeNodeset("/root/main/cond/vitalsigngrup/vitalsigngruplist");
  1150. //
  1151. // fTnsRecInit(); //수혈간호기록 초기화
  1152. // fBlodColChg(); //컬럼속성 변경
  1153. }
  1154. fBlodDeliveList(pidblodflag);// 혈액불출내역 리스트
  1155. //fGetBlodNoExecRecList(pidblodflag); //수혈 미수행 내역 리스트
  1156. //fGetBlodExecRecList(pidblodflag); //수혈 수행 내역 리스트
  1157. fTnsRecInit(); //수혈간호기록 초기화
  1158. //fBlodColChg(); //컬럼속성 변경
  1159. model.refresh();
  1160. }
  1161. function fMake_SignData(){
  1162. if(sFindBlodnm != ""){
  1163. var fRow = "";
  1164. fRow = grd_blodreturnreqgruplist.findRow(sFindBlodnm, 0, grd_blodreturnreqgruplist.colRef("prcpno"),true, true);
  1165. if(fRow > 0){
  1166. model.setValue(Sign.XPATH_BASICINFO + "/pid" , model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1167. model.setValue(Sign.XPATH_BASICINFO + "/pname" , model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm1"));
  1168. model.setValue(Sign.XPATH_BASICINFO + "/age" , model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage"));
  1169. model.setValue(Sign.XPATH_BASICINFO + "/body" , "");
  1170. model.setValue(Sign.XPATH_BASICINFO + "/btype" , model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/btype"));
  1171. model.setValue(Sign.XPATH_BASICINFO + "/insukind" , "");
  1172. model.setValue(Sign.XPATH_BASICINFO + "/orddept" , model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/orddeptnm"));
  1173. model.setValue(Sign.XPATH_BASICINFO + "/apntdr" , model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+fRow+"]/orddrnm"));
  1174. model.setValue(Sign.XPATH_BASICINFO + "/attndr" , "");
  1175. }
  1176. }
  1177. Sign.addnode("/root/hidden/tnsnurserecgrup/tnsnurserecgruplist");
  1178. Sign.addnode("/root/hidden/vitalsigngrup");
  1179. var xRecinfoPath = Sign.XPATH_SIGNINFO+"/tnsnurserecgruplist";
  1180. var xRecinfoVitalPath = Sign.XPATH_SIGNINFO+"/vitalsigngruplist";
  1181. var sTnsSideeffect = model.getValue(xRecinfoPath + "/tnssideeffect");
  1182. var sTnsDiscontinu = model.getValue(xRecinfoPath + "/discontinu" );
  1183. var sTnsTnsrec = model.getValue(xRecinfoPath + "/tnsrec" );
  1184. var sTnsstrdd = model.getValue(xRecinfoPath + "/tnsstrdd" );
  1185. var sTnsstrtm = model.getValue(xRecinfoPath + "/tnsstrtm" );
  1186. var sTnsenddd = model.getValue(xRecinfoPath + "/tnsenddd" );
  1187. var sTnsendtm = model.getValue(xRecinfoPath + "/tnsendtm" );
  1188. var sTnsSideeffectRslt = sTnsSideeffect.split(" ");
  1189. if(sTnsSideeffect != "" ){
  1190. sTnsEfftInfo = "";
  1191. for(var i = 0 ; i < sTnsSideeffectRslt.length ; i ++){
  1192. for(var j = 0 ; j <= getNodesetCount("/root/init/sideeffectcom/M0330") ; j++){
  1193. if(sTnsSideeffectRslt[i] == model.getValue("/root/init/sideeffectcom/M0330["+j+"]/cdid")){
  1194. if(sTnsEfftInfo == ""){
  1195. sTnsEfftInfo += model.getValue("/root/init/sideeffectcom/M0330[cdid='"+sTnsSideeffectRslt[i]+"']/cdnm");
  1196. }else{
  1197. sTnsEfftInfo += ", " + model.getValue("/root/init/sideeffectcom/M0330[cdid='"+sTnsSideeffectRslt[i]+"']/cdnm");
  1198. }
  1199. }
  1200. }
  1201. }
  1202. model.setValue(xRecinfoPath + "/tnssideeffect", sTnsEfftInfo);
  1203. }
  1204. if(sTnsDiscontinu != "" ){
  1205. model.setValue(xRecinfoPath + "/discontinu",
  1206. model.getValue("/root/init/L0093list/L0093[cdid='"+sTnsDiscontinu+"']/cdnm"));
  1207. }
  1208. // if(sTnsstrdd != "" && sTnsstrtm != ""){
  1209. // model.makeValue(xRecinfoPath + "/tnsstrdt",
  1210. // sTnsstrdd.substring(1,4) + "-" +
  1211. // sTnsstrdd.substring(5,2) + "-" +
  1212. // sTnsstrdd.substring(7,2) + " " +
  1213. // sTnsstrtm.substring(1,2) + ":" +
  1214. // sTnsstrtm.substring(3,2) );
  1215. // model.removenode(xRecinfoPath + "/tnsstrdd");
  1216. // model.removenode(xRecinfoPath + "/tnsstrtm");
  1217. // }
  1218. //
  1219. // if(sTnsenddd != "" && sTnsendtm != ""){
  1220. // model.makeValue(xRecinfoPath + "/tnsenddt",
  1221. // sTnsenddd.substring(1,4) + "-" +
  1222. // sTnsenddd.substring(5,2) + "-" +
  1223. // sTnsenddd.substring(7,2) + " " +
  1224. // sTnsendtm.substring(1,2) + ":" +
  1225. // sTnsendtm.substring(3,2) );
  1226. // model.removenode(xRecinfoPath + "/tnsenddd");
  1227. // model.removenode(xRecinfoPath + "/tnsendtm");
  1228. //
  1229. // }
  1230. }
  1231. /**
  1232. * @group :
  1233. * @ver : 2008.01.17
  1234. * @by : 양천덕
  1235. * @---------------------------------------------------
  1236. * @type : function
  1237. * @access : public
  1238. * @desc : 수혈기록 내역이 있는 내역은 모든 상태 변경 불가능 not used
  1239. * @param :
  1240. * @return :
  1241. * @---------------------------------------------------
  1242. */
  1243. function fBlodColChg(){
  1244. for(var i = 1 ; i < grd_blodreturnreqgruplist.rows; i++ ){
  1245. for(var n = 1 ; n < grd_blodexecrecgruplist.rows; n++ ){
  1246. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/blodno") == model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ n +"]/blodno")
  1247. || model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/prcpno") == model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ n +"]/prcpno")
  1248. ) {
  1249. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("reqflag")) = true;
  1250. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("returnabandondate")) = true;
  1251. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = true;
  1252. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("stat")) = true;
  1253. grd_blodreturnreqgruplist.rowstyle(i, "data", "background-color") = "#fff000";
  1254. }
  1255. }
  1256. }
  1257. }
  1258. /**
  1259. * @group :
  1260. * @ver : 2007.05.09
  1261. * @by : 정찬성
  1262. * @---------------------------------------------------
  1263. * @type : function
  1264. * @access : public
  1265. * @desc : 미수행기록목록에서 선택한 혈액정보 기록버튼
  1266. * @param :
  1267. * @return :
  1268. * @---------------------------------------------------
  1269. */
  1270. function fExecRec(){
  1271. var sRowCnt = grd_blodnoexecrecgruplist.rows-grd_blodnoexecrecgruplist.fixedrows;
  1272. var cnt = 0 ;
  1273. model.removenode("/root/send");
  1274. model.makeValue("/root/send/detlgrup",grd_blodnoexecrecgruplist.getupdatedataAll("i"));
  1275. var blodno = "" ;
  1276. var prcpnm = "" ;
  1277. var aborh = "" ;
  1278. var prcpno = "";
  1279. var prcpdelivefact = "" ;
  1280. var duplreccheck = false ;
  1281. btn_init.disabled = false;
  1282. btn_tempsave.disabled = false;
  1283. btn_certsave.disabled = false;
  1284. /* 미수행기록 목록 선택 되어 있는지 체크 시작 */
  1285. for(var i=1; i<= sRowCnt; i++){
  1286. // alert(grd_blodnoexecrecgruplist.labelmatrix(i, 1));
  1287. if( grd_blodnoexecrecgruplist.labelmatrix(i, 1) == "true" ) {
  1288. blodno += grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("blodno")) + "," ;
  1289. prcpnm += grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("prcpnm")) + "," ;
  1290. aborh += grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("abo"))
  1291. + grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("rh")) + "," ;
  1292. prcpno += grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("prcpno")) + "," ;
  1293. if(grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("prcpdelivefact")) != ""){
  1294. prcpdelivefact += grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("prcpdelivefact")) + "," ;
  1295. }
  1296. cnt = cnt + 1;
  1297. }
  1298. }
  1299. if(cnt < 1){
  1300. messageBox("선택 정보가 ","I004");
  1301. return;
  1302. }
  1303. /* 미수행기록 목록 선택 되어 있는지 체크 끝 */
  1304. var blodnodupSource = blodno.substr(0,blodno.length-1).split(",");
  1305. var prcpnodupSource = prcpno.substr(0,prcpno.length-1).split(",");
  1306. // alert(blodnodupSource);
  1307. /* 미수행내역 기록버튼시 중복 체크 시작 */
  1308. for(var i=0; i<= blodnodupSource.length; i++){
  1309. // alert(grd_blodnoexecrecgruplist.labelmatrix(i, 1));
  1310. for(var n=0; n<= grd_blodexecrecgruplist.rows; n++){
  1311. if( blodnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/blodno") &&
  1312. prcpnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/prcpno") ) {
  1313. duplreccheck = true ;
  1314. }
  1315. }
  1316. }
  1317. /* 미수행내역 기록버튼시 중복 체크 끝 */
  1318. // alert(blodno.substr(0,blodno.length-1));
  1319. // if( duplreccheck ){// 중복기록 체크
  1320. // messageBox("수행기록된 혈액을 중복으로 기록할수 ","I004");
  1321. // return;
  1322. // };
  1323. // fClearChildNode("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist");
  1324. // model.refresh();
  1325. model.setValue(cap_blodno.attribute("ref"), blodno.substr(0,blodno.length-1) );
  1326. model.setValue(cap_blodnm.attribute("ref"), prcpnm.substr(0,prcpnm.length-1) );
  1327. model.setValue(cap_aborh.attribute("ref"), aborh.substr(0,aborh.length-1) );
  1328. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno", prcpno.substr(0,prcpno.length-1));
  1329. model.setValue(rdo_discontinuyn.attribute("ref"), "N" );
  1330. model.setValue(ipt_prcpdelivefact.attribute("ref"), prcpdelivefact.substr(0,prcpdelivefact.length-1) );//전달사항
  1331. model.setValue(ipt_fromdd.attribute("ref"), getCurrentDate() );
  1332. model.setValue(ipt_fromtm.attribute("ref"), getCurrentTime().substring(0,4) );
  1333. model.setValue(opt_fromdeptnm.attribute("ref"), getUserId() );
  1334. //기록 저장시 부서정보 삭제, 사용자 이름 세팅 : 2008-01-16
  1335. //model.setValue(opt_fromusernm.attribute("ref"), getUserInfo("dutplcenm") );
  1336. model.setValue(opt_fromusernm.attribute("ref"), getUserName() );
  1337. model.setValue(opt_tnsstrnursall.attribute("ref"), getUserInfo("userid")+","+getUserInfo("usernm")+","+getUserInfo("dutplceinstnm")+","+getUserInfo("dutplceinstcd")+","+getUserInfo("dutplcenm")+","+getUserInfo("dutplcecd"));// 저장할 데이터 생성
  1338. model.setValue(chk_smlqtytnsyn.attribute("ref"), ""); //소량수혈 체크
  1339. model.setValue(chk_tprlnkyn.attribute("ref"), ""); //I/O연동설정값 DEFAULT ''
  1340. // '15.11.26 성분채집실수혈, 전원 관련 초기화
  1341. model.setValue(bol_nonactpher.attribute("ref"), "N"); // 성분채집실수혈 여부
  1342. model.setValue(bol_transferyn.attribute("ref"), "N"); // 전원여부
  1343. // '15.11.26 성분채집실수혈, 전원 관련 초기화
  1344. //model.setValue(opt_todeptnm.attribute("ref"), getUserId() );
  1345. //model.setValue(opt_tousernm.attribute("ref"), getUserInfo("dutplcenm") );
  1346. //model.setValue(opt_tnsendnursall.attribute("ref"), getUserInfo("userid")+","+getUserInfo("usernm")+","+getUserInfo("dutplceinstnm")+","+getUserInfo("dutplceinstcd")+","+getUserInfo("dutplcenm")+","+getUserInfo("dutplcecd"));// 저장할 데이터 생성
  1347. /* 미수행내역 리스트에서 기록버튼 누를때 vital sign 측정시작 측정일시/시간 15분후 일시 시간 셋팅 시작 */
  1348. //grd_vitalsigngruplist.valuematrix(1, grd_vitalsigngruplist.colRef("recdd")) = getCurrentDate() ;
  1349. //grd_vitalsigngruplist.valuematrix(1, grd_vitalsigngruplist.colRef("rectm")) = getCurrentTime() ;
  1350. /* 미수행내역 리스트에서 기록버튼 누를때 vital sign 측정시작 측정일시/시간 15분후 일시 시간 셋팅 끝 */
  1351. //model.refresh();
  1352. // if(submit("TRMNR01023")){
  1353. // model.copyNode("/root/hidden/main","/root/main");
  1354. // }
  1355. }
  1356. /**
  1357. * @group :
  1358. * @ver : 2007.07.09
  1359. * @by : 정찬성
  1360. * @---------------------------------------------------
  1361. * @type : function
  1362. * @access : public
  1363. * @desc : 혈액요청서 선택했을때...
  1364. * @param :
  1365. * @return :
  1366. * @---------------------------------------------------
  1367. */
  1368. function fBlodReqDoc(gubn){
  1369. //debugger;
  1370. var sRowCnt = grd_delivedetlgruplist.rows-grd_delivedetlgruplist.fixedrows;
  1371. var cnt = 0 ;
  1372. model.removeNode ("/root/send/report");
  1373. var receiptid = model.getValue(ipt_receiptid.attribute("ref"));
  1374. var receiptnm = model.getValue(ipt_receiptnm.attribute("ref"));
  1375. //20101220_KNUH_Start
  1376. if( (receiptid == "" || receiptid == null) && (receiptnm == "" || receiptnm == null)) {
  1377. model.setValue(ipt_receiptid.attribute("ref"), getUserInfo("userid") );
  1378. model.setValue(ipt_receiptnm.attribute("ref"), getUserInfo("usernm") );
  1379. ipt_receiptid.refresh();
  1380. ipt_receiptnm.refresh();
  1381. }
  1382. //20101220_KNUH_End
  1383. for(var i=1; i<= sRowCnt; i++){ // 선택한 값이 불출신청 상태인지 체크
  1384. if( grd_delivedetlgruplist.labelmatrix(i, 1) == "true" ) {
  1385. cnt = cnt + 1;
  1386. if( grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("pid")) != ipt_pid.value ) {
  1387. messageBox("입력된 등록번호가 ","E004");
  1388. model.setfocus("ipt_pid");
  1389. return;
  1390. }
  1391. if(gubn == "Blood") { // 혈액요청서 출력. 체크
  1392. // if( grd_delivedetlgruplist.labelmatrix(i, 2) != "검사완료" ) { // 코드 변경후 바꾸기
  1393. // if( grd_delivedetlgruplist.labelmatrix(i, 35) != "520") {// 520 혈액준비 (공통코드)
  1394. //
  1395. //// messageBox("검사완료 상태 이외에는 혈액요청서를 출력 ","E001");// 코드 변경후 바꾸기
  1396. //
  1397. //// if(grd_delivedetlgruplist.labelmatrix(i, 35) == "525"){
  1398. //// messageBox("혈액요청서를 이미 출력한 상태입니다. 혈액요청서를 출력 ","E001");
  1399. //// return;
  1400. //// } else
  1401. //
  1402. //// if(grd_delivedetlgruplist.labelmatrix(i, 35) != "520" && grd_delivedetlgruplist.labelmatrix(i, 35) != "525"){
  1403. //// messageBox("준비완료 상태 이외에는 혈액요청서를 출력 ","E001");
  1404. //// return;
  1405. //// }
  1406. //
  1407. // }
  1408. if(grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("ocrtag")) != "") {
  1409. messageBox("이미 출력한 혈액이므로 재출력됩니다.", "E");
  1410. fRePrtBldReq();//이미 출력한 혈액일 경우에는 재출력 로직을 태움.
  1411. return;
  1412. }
  1413. if(grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("prcpstatcd3")) != "520" || grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("prcpstatcd3")) != "525"){
  1414. if(grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("prcpstatcd")) != "준비완료") {
  1415. messageBox("준비완료 상태 이외에는 혈액요청서를 출력 ","E001");
  1416. return;
  1417. }
  1418. }
  1419. if( grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("blodno") ).length < 5 ) {
  1420. messageBox("혈액번호가 ","I004");
  1421. return;
  1422. }
  1423. model.makeValue("/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]","");
  1424. model.copyNode( "/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]", "/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]" );
  1425. // alert(instance1.selectSingleNode("/root/send/report/delivedetlgrup/delivedetlgruplist"+"["+cnt+"]").xml);
  1426. } else if(gubn == "ER") { // 응급혈액불출요청서 출력. 체크
  1427. model.makeValue("/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]","");
  1428. model.copyNode( "/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]", "/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]" );
  1429. if( model.getValue("/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]/blodno") == "-" ){
  1430. model.setValue("/root/send/report/delivedetlgrup/delivedetlgruplist["+cnt+"]/blodno", "");
  1431. }
  1432. }
  1433. }
  1434. }
  1435. model.makeValue("/root/send/report/receiptid", receiptid);
  1436. model.makeValue("/root/send/report/receiptnm", receiptnm);
  1437. if(cnt < 1){
  1438. messageBox("선택 정보가 ","I004");
  1439. return;
  1440. }
  1441. if(messageBox("혈액요청 출력을 ","Q004") != 6) return;
  1442. for(var i=1; i<= sRowCnt; i++){ // 선택한 값이 불출신청 상태인지 체크
  1443. if( grd_delivedetlgruplist.labelmatrix(i, 1) == "true" ) {
  1444. grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("receiptid")) = receiptid;
  1445. grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("receiptnm")) = receiptnm;
  1446. }
  1447. }
  1448. model.makeValue("/root/send/report/patientnm",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm1") );
  1449. model.makeValue("/root/send/report/pid",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") );
  1450. model.makeValue("/root/send/report/sexage",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage") );
  1451. model.makeValue("/root/send/report/btype",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/btype") );
  1452. model.makeValue("/root/send/report/wardnm",cmb_wardcdgruplist.label );
  1453. model.makeValue("/root/send/report/roomcd",cmb_roomcdgruplist.value );
  1454. //model.makeValue("/root/send/report/logourl", getBigLogoImageURL("",getUserInfo("dutplceinstcd")));
  1455. model.makeValue("/root/send/report/logourl", getImageURL("biglogo"+getUserInfo("dutplceinstcd"), "jpg"));
  1456. //출력일시
  1457. var printdd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  1458. var printtm = getCurrentTime().substr(0,2) + ":" + getCurrentTime().substr(2,2) + ":" + getCurrentTime().substr(4,2);
  1459. model.makeValue("/root/send/report/printdt", printdd + " " +printtm );
  1460. model.makeValue("/root/send/report/usernm", getUserName() );
  1461. if(gubn == "Blood"){
  1462. model.makeValue("/root/send/ocrflag", "B");
  1463. }else if(gubn == "ER"){
  1464. model.makeValue("/root/send/ocrflag", "E");
  1465. }
  1466. model.makeValue("/root/send/ioparam", ioparam);
  1467. // exeReportPreview("RFMNR01000", "XMLSTR");
  1468. /*
  1469. exeReportPreview(레포트명, 연계방법, 매개변수필드 XPath, SubmitID, 출력여부, 인쇄 창 보임 여부, 저장타입, 파일명, 파일 저장 창 보임여부, 미리보기창닫기여부, 모니터 번호, 데이터 소스, 데이터 XPath , 메인리포트 반복XPath, 서브리포트1 반복Xpath)
  1470. */
  1471. model.makeValue("/root/send/pid", model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1472. if(!submit("TRMNR01027")) return; //"TRMNN01603"
  1473. //alert(model.getValue("/root/temp/ocrtag/ocrtagseq/seq"));
  1474. //model.makeValue("/root/send/report/seq", "50001");
  1475. model.makeValue("/root/send/report/seq", model.getValue("/root/temp/ocrtag/ocrtagseq/seq" ));
  1476. model.makeValue("/root/send/report/formcd", model.getValue("/root/temp/ocrtag/ocrtagseq/formcd" ));
  1477. model.makeValue("/root/send/report/formfromdt", model.getValue("/root/temp/ocrtag/ocrtagseq/formfromdt" ));
  1478. var ip = app.clientIp.split("^");
  1479. var ipstr = ip[0].split(".");
  1480. model.makeValue("/root/send/report/ip", ipstr[2] + "." + ipstr[3]);
  1481. // ****************************************************************************************************************
  1482. //통합기록조회 연동 param setting
  1483. var sSeq = "";
  1484. var sPid = "";
  1485. var sIndd = "";
  1486. var sCretno = "";
  1487. var sOrdtype = "";
  1488. var sOrddeptcd = "";
  1489. var sMedispclid = "";
  1490. var sFormcd = "";
  1491. var sFormfromdt = "";
  1492. var sPagecnt = "";
  1493. var compareCretno = "";
  1494. var compareIndd = "";
  1495. var compareOrddeptcd = "";
  1496. var compareMedispclid = "";
  1497. var rowcnt = 0;
  1498. //통합기록조회 연동 parameter 설정 부분
  1499. for(var i = 1 ; i <= getNodesetCount("/root/main/cond/delivedetlgrup/delivedetlgruplist") ; i++){
  1500. if(model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/sel") == "true"){
  1501. if(compareCretno == ""){
  1502. compareCretno = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/cretno");
  1503. }else{
  1504. if(compareCretno != model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/cretno")){
  1505. messageBox("통합기록조회 연동중 생성번호가 일치하지 않는 데이터가 존재합니다.", "I");
  1506. return;
  1507. }
  1508. }
  1509. if(compareIndd == ""){
  1510. if(ioparam == "OPRC"){
  1511. compareIndd = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddd");
  1512. }else if(ioparam == "IPRC"){
  1513. compareIndd = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/indd");
  1514. }
  1515. }else{
  1516. if(ioparam == "OPRC"){
  1517. if(compareIndd != model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddd")){
  1518. messageBox("통합기록조회 연동중 진료일자가 일치하지 않는 데이터가 존재합니다.", "I");
  1519. return;
  1520. }
  1521. }else{
  1522. if(compareIndd != model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/indd")){
  1523. messageBox("통합기록조회 연동중 입원일자가 일치하지 않는 데이터가 존재합니다.", "I");
  1524. return;
  1525. }
  1526. }
  1527. }
  1528. if(compareOrddeptcd == ""){
  1529. if(ioparam == "OPRC"){
  1530. compareOrddeptcd = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddeptcd");
  1531. }else if(ioparam == "IPRC"){
  1532. compareOrddeptcd = model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/orddeptcd");
  1533. }
  1534. }
  1535. if(compareMedispclid == ""){
  1536. if(ioparam == "OPRC"){
  1537. compareMedispclid = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddrid");
  1538. }else if(ioparam == "IPRC"){
  1539. compareMedispclid = model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/medispclid");
  1540. }
  1541. }
  1542. // 김병로 팀장 요구에 의해 삭제(2008-09-27)
  1543. // if(compareOrddeptcd == ""){
  1544. // compareOrddeptcd = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddeptcd");
  1545. // }else{
  1546. // if(compareOrddeptcd != model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddeptcd")){
  1547. // messageBox("통합기록조회 연동중 진료과가 일치하지 않는 데이터가 존재합니다.", "I");
  1548. // return;
  1549. // }
  1550. // }
  1551. //
  1552. // if(compareMedispclid == ""){
  1553. // compareMedispclid = model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddrid");
  1554. // }else{
  1555. // if(compareMedispclid != model.getValue("/root/main/cond/delivedetlgrup/delivedetlgruplist["+i+"]/orddrid")){
  1556. // messageBox("통합기록조회 연동중 진료의사가 일치하지 않는 데이터가 존재합니다.", "I");
  1557. // return;
  1558. // }
  1559. // }
  1560. rowcnt++;
  1561. }
  1562. }
  1563. //출력 page 수
  1564. if(rowcnt == 0){
  1565. messageBox("불출요청서 출력건이 존재하지 않습니다.","E");
  1566. return;
  1567. }else if( rowcnt < 5 ){
  1568. sPagecnt = 1;
  1569. }else{
  1570. sPagecnt = 0;
  1571. sPagecnt = sPagecnt + parseInt(rowcnt/4);
  1572. if((rowcnt % 4 ) > 0 ){
  1573. sPagecnt = sPagecnt + 1;
  1574. }
  1575. }
  1576. if(ioparam == "OPRC"){ //외래
  1577. sSeq = model.getValue("/root/temp/ocrtag/ocrtagseq/seq");
  1578. sPid = model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") ;
  1579. sIndd = compareIndd;
  1580. sCretno = compareCretno;
  1581. sOrdtype = "O";
  1582. sOrddeptcd = compareOrddeptcd;
  1583. sMedispclid = compareMedispclid;
  1584. sFormcd = model.getValue("/root/temp/ocrtag/ocrtagseq/formcd" );
  1585. sFormfromdt = model.getValue("/root/temp/ocrtag/ocrtagseq/formfromdt" );
  1586. }else if(ioparam == "IPRC"){ // 입원
  1587. sSeq = model.getValue("/root/temp/ocrtag/ocrtagseq/seq");
  1588. sPid = model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") ;
  1589. sIndd = compareIndd;
  1590. sCretno = compareCretno;
  1591. sOrdtype = model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid ='"+ sPid+"']/ordtype");
  1592. sOrddeptcd = compareOrddeptcd;
  1593. sMedispclid = compareMedispclid;
  1594. sFormcd = model.getValue("/root/temp/ocrtag/ocrtagseq/formcd" );
  1595. sFormfromdt = model.getValue("/root/temp/ocrtag/ocrtagseq/formfromdt" );
  1596. }
  1597. //param 데이터 존재하지 여부 체크
  1598. if(sSeq == "" || sPid == "" || sIndd == "" || sCretno == "" || sOrdtype == "" ||
  1599. sOrddeptcd == "" || sMedispclid == "" || sFormcd == "" || sFormfromdt == "" ){
  1600. //alert(sSeq + " : " + sPid + " : " + sIndd + " : " + sCretno + " : " + sOrdtype + " : " + sOrddeptcd + " : " + sMedispclid + " : " + sFormcd + " : " + sFormfromdt);
  1601. messageBox("통합기록조회 연동 설정 조건값이 정확하지 않습니다.", "E");
  1602. return;
  1603. }
  1604. if(!fSaveOCRIF(sSeq, sPid, sIndd, sCretno, sOrdtype, sOrddeptcd, sMedispclid, sFormcd, sFormfromdt, "", "", sPagecnt)){
  1605. messageBox("통합기록조회 연동중 실패하였습니다.","C999");
  1606. return;
  1607. }
  1608. if(gubn == "Blood") { // 혈액요청서 출력. 체크
  1609. exeReportPreview("RFMNR01000", "XMLSTR", "", "", "true", "", "", "", "", "", "", "grp_report"); //미리보기 없이 출력
  1610. //exeReportPreview("RFMNR01000", "XMLSTR", ""); //임시 미리보기 창 활성화
  1611. //exeReportPreview("RFMNR01000", "XMLSTR", "", "", "true", "", "", "", "", "true"); // 미리보기 떻다가 사라지면서 출력
  1612. for(var i = grd_delivedetlgruplist.fixedRows; i < grd_delivedetlgruplist.rows; i++) {
  1613. if(grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("sel")) == "true") {
  1614. grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("ocrtag")) = model.getValue("/root/temp/ocrtag/ocrtagseq/seq");
  1615. }
  1616. }
  1617. model.makeValue("/root/send/detlgrup",grd_delivedetlgruplist.getupdatedataAll("i"));
  1618. model.makeValue("/root/send/ocrtag", model.getValue("/root/temp/ocrtag/ocrtagseq/seq"));
  1619. if(submit("TXMNR01033")){
  1620. fGettDeliveDetlList();// 불출신청 내역 재조회
  1621. }
  1622. } else if(gubn == "ER") { // 응급혈액불출요청서 출력. 체크
  1623. exeReportPreview("RFMNR01002", "XMLSTR", "", "", "true", "", "", "", "", "", "", "grp_report"); //미리보기 없이 출력
  1624. //exeReportPreview("RFMNR01002", "XMLSTR", ""); //임시 미리보기 창 활성화
  1625. //exeReportPreview("RFMNR01002", "XMLSTR", "", "", "true", "", "", "", "", "true"); // 미리보기 떻다가 사라지면서 출력
  1626. model.makeValue("/root/send/detlgrup",grd_delivedetlgruplist.getupdatedataAll("i"));
  1627. for( var idx = grd_delivedetlgruplist.fixedRows ; idx <= grd_delivedetlgruplist.rows ; idx++ ){
  1628. grd_delivedetlgruplist.valueMatrix( idx, grd_delivedetlgruplist.colRef("sel")) = false;
  1629. }
  1630. }
  1631. }
  1632. /**
  1633. * @group :
  1634. * @ver : 2007.07.09
  1635. * @by : 정찬성
  1636. * @---------------------------------------------------
  1637. * @type : function
  1638. * @access : public
  1639. * @desc : 혈액불출 내역 선택 삭제 (신청취소)
  1640. * @param :
  1641. * @return :
  1642. * @---------------------------------------------------
  1643. */
  1644. function fDelDeliveExecPrcp(){
  1645. var sRowCnt = grd_delivedetlgruplist.rows-grd_delivedetlgruplist.fixedrows;
  1646. var cnt = 0 ;
  1647. for(var i=1; i<= sRowCnt; i++){ // 선택한 값이 불출신청 상태인지 체크
  1648. if( grd_delivedetlgruplist.labelmatrix(i, 1) == "true" ) {
  1649. cnt = cnt + 1;
  1650. // if( grd_delivedetlgruplist.labelmatrix(i, 2) != "500" ) {
  1651. //
  1652. // messageBox("불출신청 이외의 상태에서는 삭제할 수 ","I004");
  1653. // return;
  1654. //
  1655. // }
  1656. if( grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("prcpstatcd3")) > "100" ) {// 500 불출요청 (공통코드)
  1657. messageBox("혈액은행에 접수된 상태에서는 신청취소 할 수 ","I004");
  1658. return;
  1659. } else if( grd_delivedetlgruplist.labelmatrix(i, grd_delivedetlgruplist.colRef("prcppreptfflag")) == "의사") {// 의사 처방 삭제 불가능
  1660. messageBox("의사처방은 신청취소 할 수 ","I004");
  1661. return;
  1662. }
  1663. }
  1664. }
  1665. if(cnt < 1){
  1666. messageBox("선택 정보가 ","I004");
  1667. return;
  1668. }
  1669. model.removenode("/root/send");
  1670. model.refresh();
  1671. // model.makeValue("/root/send/blodpidflag",blodpidflag);
  1672. model.makeValue("/root/send/blodno", ipt_blodno.value );
  1673. model.makeValue("/root/send/prcpddfrom", ipt_prcpddfrom2.value );
  1674. model.makeValue("/root/send/prcpddto", ipt_prcdddto2.value );
  1675. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist2.value );
  1676. model.makeValue("/root/send/wardcdnm", cmb_wardcdgruplist2.label );
  1677. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist2.value );
  1678. model.makeValue("/root/send/hngnm", cmb_patientgruplist2.value );
  1679. model.makeValue("/root/send/pid", ipt_pid2.value );
  1680. model.makeValue("/root/send/ioparam", ioparam);
  1681. /* 양천덕시 로직 시작 */
  1682. if(messageBox ( "신청취소를 ", "Q004" ) == "6"){
  1683. model.makeValue("/root/send/detlgrup",grd_delivedetlgruplist.getupdatedataAll("i"));
  1684. if(submit("TXMNR01035") == true ){
  1685. fGetExecDetlList();// 수행처방내역리스트
  1686. fGettDeliveDetlList();// 불출신청 내역 리스트
  1687. fGetPatCmtList();
  1688. }
  1689. }
  1690. /* 양천덕시 로직 끝 */
  1691. }
  1692. /**
  1693. * @group :
  1694. * @ver : 2007.07.16
  1695. * @by : 정찬성
  1696. * @---------------------------------------------------
  1697. * @type : function
  1698. * @access : public
  1699. * @desc : 수혈 미수행 내역 리스트
  1700. * @param :
  1701. * @return :
  1702. * @---------------------------------------------------
  1703. */
  1704. function fGetBlodNoExecRecList(blodpidflag){
  1705. var sRowCnt = grd_execdetlgruplist.rows-grd_execdetlgruplist.fixedrows;
  1706. if( model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") == "" && model.getValue("/root/main/cond/blodno") == "" ){
  1707. // messageBox("혈액번호/등록번호를 ","C001");
  1708. // model.setfocus("ipt_blodno");
  1709. // return;
  1710. }
  1711. /* 수혈간호기록 내용 초기화 */
  1712. // fClearChildNode("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist");
  1713. //
  1714. // model.refresh();
  1715. model.makeValue("/root/send/blodpidflag",blodpidflag);
  1716. model.makeValue("/root/send/blodno", ipt_blodno.value );
  1717. model.makeValue("/root/send/prcpddfrom", ipt_prcpddfrom2.value );
  1718. model.makeValue("/root/send/prcpddto", ipt_prcdddto2.value );
  1719. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist2.value );
  1720. model.makeValue("/root/send/wardcdnm", cmb_wardcdgruplist2.label );
  1721. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist2.value );
  1722. model.makeValue("/root/send/hngnm", cmb_patientgruplist2.value );
  1723. model.makeValue("/root/send/pid", ipt_pid2.value );
  1724. model.makeValue("/root/send/ioparam", ioparam);
  1725. if(submit("TRMNR01021")){
  1726. }
  1727. }
  1728. /**
  1729. * @group :
  1730. * @ver : 2007.05.09
  1731. * @by : 정찬성
  1732. * @---------------------------------------------------
  1733. * @type : function
  1734. * @access : public
  1735. * @desc : 혈액불출내역의 혈액반납의뢰 저장
  1736. * @param :
  1737. * @return :
  1738. * @---------------------------------------------------
  1739. */
  1740. function fBlodReturnSave(){
  1741. var sRowCnt = grd_blodreturnreqgruplist.rows-grd_blodreturnreqgruplist.fixedrows;
  1742. var cnt = 0 ;
  1743. model.removenode("/root/send");
  1744. model.makeValue("/root/send/detlgrup",grd_blodreturnreqgruplist.getupdatedataAll("i"));
  1745. var Hosyn = 0 ;
  1746. for(var i=1; i<= sRowCnt; i++){
  1747. if( grd_blodreturnreqgruplist.labelmatrix(i, 1) == "true" ) {
  1748. cnt = cnt + 1;
  1749. // ****************************** 반납사유 필수 로직 추가 ***************************************
  1750. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/reqflag") == "-" || model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/reqflag") == ""){//반납/폐기를 체크
  1751. messageBox("반납/폐기를 ","C002");
  1752. return;
  1753. }
  1754. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/returnabandondate") == "-" || model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/returnabandondate") == ""){//반납/폐기일 체크
  1755. messageBox("반납/폐기일을 ","C002");
  1756. return;
  1757. }
  1758. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd") == "-" || model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd") == ""){//반납사유 체크
  1759. messageBox("반납/폐기 사유를 ","C002");
  1760. return;
  1761. }
  1762. // if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd").substring(0,3) == "080"){ //반납사유가 병원사유인지 체크
  1763. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd").substring(0,3) == "072"){ //반납사유가 병원사유인지 체크
  1764. Hosyn++;
  1765. }
  1766. if(model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/etcprcpresncd").substr(3,2) == "99" && model.getValue(xBlodReturnReqGrupListPath+"["+i+"]/clinccmtcnts")== ""){
  1767. messageBox("기타 사유 처리 시 기타사유내역을 입력해야 합니다.","C");
  1768. return;
  1769. }
  1770. }
  1771. }
  1772. if(Hosyn > 0){
  1773. var sRtnMsg = messageBox("병원사유에 의한 혈액폐기시 혈액대금이 병원손실처리 됩니다.\n\n","Q003");
  1774. if(sRtnMsg != 6) return;
  1775. }
  1776. if(cnt < 1){
  1777. messageBox("선택 정보가 ","I004");
  1778. return;
  1779. }
  1780. //return;
  1781. model.removeNodeset("/root/temp/rtninfo");
  1782. model.makeValue("/root/send/ioparam", ioparam);
  1783. if(submit("TXMNR01030")){
  1784. if(getNodesetCount("/root/temp/rtninfo/rtnlist") > 0){
  1785. if(model.getValue("/root/temp/rtninfo/rtnlist/rtnflag") == "4"){
  1786. }else{
  1787. messageBox("퇴원환자에게 병원손실처리 사유로 반납/폐기 의뢰 할 수 없습니다.", "E");
  1788. }
  1789. }else{
  1790. messageBox("반납/폐기 의뢰 처리를 실패하였습니다.", "E");
  1791. }
  1792. model.copyNode("/root/hidden/main","/root/main");
  1793. }
  1794. /* 반납/폐기 이후 정보 조회 실행 */
  1795. var pidblodflag = '';
  1796. if(ipt_pid2.value != ""){
  1797. pidblodflag = 'pid';
  1798. } else if (ipt_blodno.value !="") {
  1799. pidblodflag = 'blod';
  1800. }
  1801. fBlodDeliveList(pidblodflag); //혈액불출 리스트 조회버튼
  1802. //fGetBlodNoExecRecList(pidblodflag); //수혈 미수행 내역 리스트
  1803. //fBlodColChg(); //컬럼속성 변경
  1804. }
  1805. /**
  1806. * @group :
  1807. * @ver : 2007.07.16
  1808. * @by : 정찬성
  1809. * @---------------------------------------------------
  1810. * @type : function
  1811. * @access : public
  1812. * @desc : 혈액불출 내역 조회 리스트
  1813. * @param :
  1814. * @return :
  1815. * @---------------------------------------------------
  1816. */
  1817. function fBlodDeliveList(blodpidflag){
  1818. var sRowCnt = grd_execdetlgruplist.rows-grd_execdetlgruplist.fixedrows;
  1819. if( model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") == "" && model.getValue("/root/main/cond/blodno") == "" ){
  1820. // messageBox("혈액번호/등록번호를 ","C001");
  1821. // model.setfocus("ipt_blodno");
  1822. // return;
  1823. }
  1824. model.removenode("/root/send");
  1825. model.refresh();
  1826. model.makeValue("/root/send/blodpidflag" , blodpidflag );
  1827. model.makeValue("/root/send/blodno" , ipt_blodno.value );
  1828. model.makeValue("/root/send/prcpddfrom" , ipt_prcpddfrom2.value );
  1829. model.makeValue("/root/send/prcpddto" , ipt_prcdddto2.value );
  1830. model.makeValue("/root/send/wardcd" , cmb_wardcdgruplist2.value );
  1831. model.makeValue("/root/send/wardcdnm" , cmb_wardcdgruplist2.label );
  1832. model.makeValue("/root/send/roomcd" , cmb_roomcdgruplist2.value );
  1833. model.makeValue("/root/send/hngnm" , cmb_patientgruplist2.value );
  1834. model.makeValue("/root/send/pid" , ipt_pid2.value );
  1835. model.makeValue("/root/send/ioparam" , ioparam );
  1836. grd_blodreturnreqgruplist.rebuildStyle();
  1837. grd_blodexecrecgruplist.rebuildStyle();
  1838. if(submit("TRMNR01020")){
  1839. model.removenode("/root/blodrtninfo");
  1840. model.makenode("/root/blodrtninfo");
  1841. model.copynode("/root/blodrtninfo", "root/main/cond/blodreturnreqgrup");
  1842. for(var i = 1 ; i < grd_blodreturnreqgruplist.rows; i++ ){
  1843. // 셀 초기화 부분
  1844. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("reqflag")) = false;
  1845. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("stat")) = false;
  1846. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("returnabandondate")) = false;
  1847. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = false;
  1848. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = false;
  1849. grd_blodreturnreqgruplist.cellComboNodeset(i, grd_blodreturnreqgruplist.colRef("reqflag")) = "/root/init/reqflaglist/itemlist1/item";
  1850. if( grd_blodexecrecgruplist.rows > 1){ //수행기록 내역 존재 할 경우
  1851. for(var n = 1 ; n <= grd_blodexecrecgruplist.rows; n++ ){
  1852. //if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/blodno") == model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ n +"]/blodno") &&
  1853. // model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/prcpno") == model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ n +"]/prcpno") ) {
  1854. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/chkstat") == "Y"){ //20090401_SMY수정
  1855. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/etcprcpresncd") != "" ) {
  1856. grd_blodreturnreqgruplist.cellComboNodeset(i, grd_blodreturnreqgruplist.colRef("reqflag")) = "/root/init/reqflaglist/itemlist2/item";
  1857. //폐기 반납 사유 셋팅
  1858. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/reqflag") == "1" ){
  1859. grd_blodreturnreqgruplist.cellComboNodeset(i,grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "/root/init/etcprcpresncd/L0084"; //반납사유
  1860. }else{
  1861. //grd_blodreturnreqgruplist.cellComboNodeset(i,grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "/root/init/L0093list/L0093"; //폐기사유
  1862. grd_blodreturnreqgruplist.cellComboNodeset(i,grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "/root/init/totresncd/item"; //폐기사유
  1863. }
  1864. grd_blodreturnreqgruplist.rowstyle(i, "data", "background-color") = "#fff000";
  1865. }
  1866. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("stat")) = true;
  1867. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("reqflag")) = true;
  1868. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("returnabandondate")) = true;
  1869. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = true;
  1870. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = true;
  1871. //최은희 선생님 요청 : 2008 - 01- 29 혈액 폐기/반납이 아닌 건은 색 표시 제외
  1872. //grd_blodreturnreqgruplist.rowstyle(i, "data", "background-color") = "#fff000";
  1873. n = grd_blodexecrecgruplist.rows;
  1874. }else{
  1875. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/etcprcpresncd") != "" ) {
  1876. grd_blodreturnreqgruplist.cellComboNodeset(i, grd_blodreturnreqgruplist.colRef("reqflag")) = "/root/init/reqflaglist/itemlist2/item";
  1877. //폐기 반납 사유 셋팅
  1878. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/reqflag") == "1" ){
  1879. grd_blodreturnreqgruplist.cellComboNodeset(i,grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "/root/init/etcprcpresncd/L0084"; //반납사유
  1880. }else{
  1881. grd_blodreturnreqgruplist.cellComboNodeset(i,grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "/root/init/discontinucom/L0085"; //폐기사유
  1882. }
  1883. if(model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/reqflagstat") == "Y"){
  1884. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = true;
  1885. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("returnabandondate")) = true;
  1886. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = true;
  1887. }else{
  1888. sChkReadOnlyCd = grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd"));
  1889. //사유가 기타인 항목은 입력할 수 있도록 수정
  1890. if(sChkReadOnlyCd.substr(3,5) != "99"){
  1891. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = true;
  1892. }
  1893. }
  1894. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("reqflag")) = true;
  1895. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("stat")) = true;
  1896. grd_blodreturnreqgruplist.rowstyle(i, "data", "background-color") = "#fff000";
  1897. }
  1898. }
  1899. }
  1900. }else{ //수행기록 내역 존재하지 않을 경우
  1901. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/etcprcpresncd") != "" ) {
  1902. //폐기 반납 사유 셋팅
  1903. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/reqflag") == "1" ){
  1904. grd_blodreturnreqgruplist.cellComboNodeset(i,13) = "/root/init/etcprcpresncd/L0084"; //반납사유
  1905. }else{
  1906. grd_blodreturnreqgruplist.cellComboNodeset(i,13) = "/root/init/discontinucom/L0085"; //폐기사유
  1907. }
  1908. if(model.getValue("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist["+ i +"]/reqflagstat") == "Y"){
  1909. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = true;
  1910. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("returnabandondate")) = true;
  1911. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = true;
  1912. }else{
  1913. sChkReadOnlyCd = grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd"));
  1914. //사유가 기타인 항목은 입력할 수 있도록 수정
  1915. if(sChkReadOnlyCd.substr(3,5) != "99"){
  1916. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = true;
  1917. }
  1918. }
  1919. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("reqflag")) = true;
  1920. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("stat")) = true;
  1921. grd_blodreturnreqgruplist.rowstyle(i, "data", "background-color") = "#fff000";
  1922. }else{
  1923. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = true;
  1924. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = true;
  1925. grd_blodreturnreqgruplist.isReadOnly(i, grd_blodreturnreqgruplist.colRef("returnabandondate")) = true;
  1926. }
  1927. }
  1928. }
  1929. //수행기록 내역 미종료 건 색표시
  1930. for(var i= grd_blodexecrecgruplist.fixedRows ; i <= grd_blodexecrecgruplist.rows; i ++){
  1931. var sColor3 = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/signno"); //인증번호
  1932. if( sColor3 != "" ) {
  1933. grd_blodexecrecgruplist.rowstyle(i, "data", "background-color") = "#ffff00"; //인증 정보 확인
  1934. }else{
  1935. grd_blodexecrecgruplist.rowstyle(i, "data", "background-color") = "#00FF00"; //종료시간 정보 확인
  1936. }
  1937. }
  1938. }
  1939. model.setfocus("ipt_blodno");
  1940. }
  1941. /**
  1942. * @group :
  1943. * @ver : 2007.06.18
  1944. * @by : 정찬성
  1945. * @---------------------------------------------------
  1946. * @type : function
  1947. * @access : public
  1948. * @desc : 불출신청 내역 조회 리스트
  1949. * @param :
  1950. * @return :
  1951. * @---------------------------------------------------
  1952. */
  1953. function fGettDeliveDetlList(){
  1954. if( ipt_pid.value == "" ){
  1955. model.removenode("/root/main/cond/delivedetlgrup");
  1956. model.refresh();
  1957. return;
  1958. }
  1959. if( model.getValue("/root/main/cond/wardcdgrup/wardcdgruplist") == "" ){
  1960. // messageBox("병동을 ","C002");
  1961. // model.setfocus("cmb_wardcdgruplist");
  1962. // return;
  1963. }
  1964. model.removenode("/root/send");
  1965. model.makeValue("/root/send/prcpddfrom", ipt_prcpddfrom.value);
  1966. model.makeValue("/root/send/prcpddto", ipt_prcdddto.value);
  1967. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist.value);
  1968. model.makeValue("/root/send/wardcdnm", cmb_wardcdgruplist2.label );
  1969. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist.value);
  1970. model.makeValue("/root/send/hngnm", cmb_patientgruplist.value);
  1971. model.makeValue("/root/send/pid", ipt_pid.value);
  1972. model.makeValue("/root/send/ioparam", ioparam);
  1973. if(submit("TRMNR01009")){
  1974. grd_delivedetlgruplist.rebuildStyle();
  1975. var sTodate = getCurrentDate();
  1976. for(var i = grd_delivedetlgruplist.fixedRows ; i <= grd_delivedetlgruplist.Rows ; i++){
  1977. var sChkBlodBarCd = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("blodbarcd"));
  1978. var sValiDt = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("validt")).substr(0,8);
  1979. var sChkDay = getDateCalc(sTodate, 4, "+");
  1980. if(sValiDt != ""){
  1981. if( sChkBlodBarCd == "12003" || sChkBlodBarCd == "12004" || sChkBlodBarCd == "12017" || sChkBlodBarCd == "A0003"){
  1982. if(sTodate >= sValiDt ){
  1983. grd_delivedetlgruplist.rowStyle(i, "all", "background-color") = "#f7a08b";
  1984. }
  1985. }else{
  1986. if(sChkDay >= sValiDt ){
  1987. grd_delivedetlgruplist.rowStyle(i, "all", "background-color") = "#f7a08b";
  1988. }
  1989. }
  1990. }
  1991. }
  1992. }
  1993. }
  1994. /**
  1995. * @group :
  1996. * @ver : 2007.04.02
  1997. * @by : 정찬성
  1998. * @---------------------------------------------------
  1999. * @type : function
  2000. * @access : public
  2001. * @desc : 수행처방 선택시 체크사항
  2002. * @param :
  2003. * @return :
  2004. * @---------------------------------------------------
  2005. */
  2006. function fSelchange(){
  2007. var iRow = grd_execdetlgruplist.row ;
  2008. var pid = model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid");
  2009. if( parseInt(model.getValue(xExecDetlListPath+"["+iRow+"]/prcpqty")) <= parseInt(model.getValue(xExecDetlListPath+"["+iRow+"]/appno")) ) {
  2010. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2011. messageBox("신청수량이 처방수량보다 클 수 ","I004");
  2012. return;
  2013. }
  2014. if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "D/C") {
  2015. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2016. messageBox("D/C 상태에서는 신청할 수 ","I004");
  2017. return;
  2018. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "의사") {
  2019. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2020. messageBox("의사 상태에서는 신청할 수 ","I004");
  2021. return;
  2022. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "완료") {
  2023. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2024. messageBox("완료 상태에서는 신청할 수 ","I004");
  2025. return;
  2026. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") != "처방") {
  2027. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2028. messageBox("처방 상태 이외에는 신청할 수 ","I004");
  2029. return;
  2030. } else {
  2031. if ( model.getValue("/root/main/cond/ioflag") == "I"
  2032. && (model.getValue(xExecDetlListPath+"["+iRow+"]/orddd") != model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid='"+ pid +"']/indd")
  2033. || model.getValue(xExecDetlListPath+"["+iRow+"]/cretno") != model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid='"+ pid +"']/cretno")) ){
  2034. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2035. messageBox("과거 (퇴원)수진처방은 신청할 수 ","I004");
  2036. return;
  2037. }else {
  2038. if ( model.getValue("/root/main/cond/ioflag") == "I" ){
  2039. model.removeNodeset("/root/temp/cond/patientgrup/patientgruplist");/* 환자리스트*/
  2040. fGetPatientList();// 환자리스트 정보를 가져온다.
  2041. if ( model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid='"+ pid +"']/dschnotiyn") == "Y" ){
  2042. model.setValue(xExecDetlListPath+"["+iRow+"]/sel", "false" ) ;
  2043. messageBox("간호사 퇴원확정 취소하시고", "C003");
  2044. return;
  2045. }
  2046. }
  2047. }
  2048. }
  2049. }
  2050. /**
  2051. * @group :
  2052. * @ver : 2007.04.02
  2053. * @by : 정찬성
  2054. * @---------------------------------------------------
  2055. * @type : function
  2056. * @access : public
  2057. * @desc : 그리드의 값이 변경되었을때, 상태값을 변경한다.
  2058. * @param :
  2059. * @return :
  2060. * @---------------------------------------------------
  2061. */
  2062. function fChangedGridCol(){
  2063. var sDetlGrupRow = grd_execpopwnddetlgruplist.row;
  2064. var sDetlGrupBKRow=0;
  2065. var num = model.getValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/num");
  2066. for(var i=1; i<= getNodesetCount(xPopWndClsListBKPath); i++){
  2067. if(model.getValue(xPopWndClsListBKPath+"["+i+"]/num") == num){
  2068. sDetlGrupBKRow = i;
  2069. break;
  2070. }
  2071. }
  2072. if(event.keyCode == "32") {
  2073. messageBox("신청수량에 스페이스를 넣을 수 ","I004");
  2074. model.setValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/stat","-");
  2075. model.setValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/appno","");
  2076. grd_execpopwnddetlgruplist.refresh();
  2077. return;
  2078. }
  2079. //예약시간 수정할 경우 6자리 셋팅_20090304_SMY
  2080. var prcphopetm = grd_execpopwnddetlgruplist.textmatrix(sDetlGrupRow, grd_execpopwnddetlgruplist.colRef("prcphopetm")) ;
  2081. if(prcphopetm.length > "0" && prcphopetm.length < "4"){
  2082. messageBox("예약시간 정보를 정확하게 입력하세요","I");
  2083. return;
  2084. }else if(prcphopetm.length == "4"){
  2085. model.setValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/prcphopetm", prcphopetm+"00");
  2086. }
  2087. var irr = grd_execpopwnddetlgruplist.textmatrix(sDetlGrupRow, grd_execpopwnddetlgruplist.colRef("irr")) ;
  2088. if(model.getValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/appno") == "0" || model.getValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/appno") == ""){
  2089. model.setValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/stat","-");
  2090. //grd_execpopwnddetlgruplist.rebuild();
  2091. //return;
  2092. }
  2093. // alert(instance1.selectSingleNode(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]").xml);
  2094. //
  2095. // alert(instance1.selectSingleNode(xPopWndClsListBKPath+"["+sDetlGrupBKRow+"]").xml);
  2096. if(instance1.selectSingleNode(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]").xml != instance1.selectSingleNode(xPopWndClsListBKPath+"["+sDetlGrupBKRow+"]").xml){
  2097. model.setValue(xPopWndExecDetlListPath+"["+sDetlGrupRow+"]/stat","I");
  2098. //grd_execpopwnddetlgruplist.rebuild();
  2099. }
  2100. grd_execpopwnddetlgruplist.refresh();
  2101. }
  2102. /**
  2103. * @group :
  2104. * @ver : 2007.05.09
  2105. * @by : 정찬성
  2106. * @---------------------------------------------------
  2107. * @type : function
  2108. * @access : public
  2109. * @desc : 혈액불출관리 init
  2110. * @param :
  2111. * @return :
  2112. * @---------------------------------------------------
  2113. */
  2114. function fPopWndSave(){
  2115. //debugger;
  2116. var sRowCnt = grd_execpopwnddetlgruplist.rows-grd_execpopwnddetlgruplist.fixedrows;
  2117. var saveyn = 0 ;
  2118. var rsrvflag = "";
  2119. for(var i=1; i<= sRowCnt; i++){
  2120. if(model.getValue(xPopWndExecDetlListPath+"["+i+"]/stat") != "-") {
  2121. saveyn = 1 ;
  2122. }
  2123. if(model.getValue(xPopWndExecDetlListPath+"["+i+"]/stat") != "-" && model.getValue(xPopWndExecDetlListPath+"["+i+"]/appno") == ""){
  2124. messageBox("신청수량은","I003");
  2125. return;
  2126. }
  2127. // if( !isNumber(model.getValue(xPopWndExecDetlListPath+"["+i+"]/appno")) ) {
  2128. // messageBox("숫자형을 ","C001");
  2129. // return;
  2130. // }
  2131. if( parseInt(model.getValue(xPopWndExecDetlListPath+"["+i+"]/appno")) < 1 || parseInt(model.getValue(xPopWndExecDetlListPath+"["+i+"]/appno")) == " " ) {
  2132. messageBox("신청수량은 1건 이하로 입력할 수","E001");
  2133. return;
  2134. }
  2135. if( parseInt(model.getValue(xPopWndExecDetlListPath+"["+i+"]/delivepossno")) < parseInt(model.getValue(xPopWndExecDetlListPath+"["+i+"]/appno")) ) {
  2136. messageBox("신청수량은 불출수량보다 크게 입력","E001");
  2137. return;
  2138. }
  2139. /**************************************************************강남성모기준_서울성모오픈시 삭제부분
  2140. if(model.getValue(xPopWndExecDetlListPath+"["+i+"]/prcphopedd") == "" || model.getValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm") == ""){
  2141. messageBox("예약일자/예약시간은","I003");
  2142. return;
  2143. }
  2144. ***************************************************************/
  2145. //*************************************************************************************서울성모오픈시 적용
  2146. if(model.getValue(xPopWndExecDetlListPath+"["+i+"]/prcphopedd") == "" || model.getValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm") == ""){
  2147. //setrsrvyn : Y일 경우 예약일시 지정코드_20090223_SMY추가
  2148. if(rsrvflag != "N" && model.getValue(xPopWndExecDetlListPath+"["+i+"]/setrsrvyn") == "Y"){
  2149. rsrvflag = "Y";
  2150. }else{
  2151. rsrvflag = "N";
  2152. }
  2153. }
  2154. //****************************************************************************************/
  2155. }
  2156. //*****************************************************************************************서울성모오픈시 적용
  2157. //FFP, LRSDP, CRYO 혈액제제는 예약일자와 시간지정이 필수_20090223_SMY추가
  2158. if(rsrvflag == "N"){
  2159. messageBox("예약일자/예약시간은","I003");
  2160. return;
  2161. }else if (rsrvflag == "Y"){
  2162. var rtn = messageBox("FFP, LRSDP, CRYO 혈액제제는 예약일자와 시간지정이 필수입니다." +"\n" + "지정하지 않는 경우 현재 일시로 접수됩니다." +"\n" + "현재일시로 바로 접수하시겠습니까?","Q");
  2163. if (rtn == "7"){
  2164. return;
  2165. }else{
  2166. for(var i=1; i<= sRowCnt; i++){
  2167. if(model.getValue(xPopWndExecDetlListPath+"["+i+"]/setrsrvyn") == "Y"){
  2168. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopedd",getCurrentDate());
  2169. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm",getCurrentTime());
  2170. model.setValue(xPopWndExecDetlListPath+"["+i+"]/stat","I");
  2171. }
  2172. }
  2173. model.refresh();
  2174. }
  2175. }
  2176. //********************************************************************************************/
  2177. if(saveyn <= 0 ){
  2178. messageBox("수정사항이 없어 저장 ","E001");
  2179. return;
  2180. }
  2181. //alert("result : " + saveyn);
  2182. // if(saveyn <= 0 ){
  2183. // messageBox("수정사항이 없어 저장 ","E001");
  2184. // return;
  2185. // }
  2186. // alert(model.getValue("/root/main/cond/clsflag"));
  2187. // alert(model.getValue("/root/main/cond/recflag"));
  2188. //
  2189. // if(messageBox("","Q002") != 6) return;
  2190. // alert(model.getValue("/root/main/cond/todd"));
  2191. // model.makeValue("/root/send/lrggrupcd", model.getValue(xCondPath+"/lrggrupcd"));
  2192. // model.makeValue("/root/send/clsflag", model.getValue("/root/main/cond/clsflag"));
  2193. // model.makeValue("/root/send/recflag", model.getValue("/root/main/cond/recflag"))
  2194. // model.makeValue("/root/send/todd2", model.getValue("/root/main/cond/todd"))
  2195. // alert(model.getValue("/root/send/todd2"));
  2196. model.removenode("/root/send");
  2197. model.makeValue("/root/send/detlgrup",grd_execpopwnddetlgruplist.getupdatedataAll("i"));
  2198. if(submit("TXMNR01008")){
  2199. //model.copyNode("/root/hidden/main","/root/main");
  2200. if ( !isNull( model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/ocrtargetyn"))
  2201. && model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/ocrtargetyn") == "Y" ){
  2202. cap_msg.text = "첫 수혈이거나 마지막 수혈시행일로부터 60일 이상이 경과하였으니 \n 수혈동의서를 작성해주시기 바랍니다.\n 수혈동의서를 지금 출력하시겠습니까?"
  2203. grp_msg.visible = true;
  2204. rdo_msgcnfm.visible = true;
  2205. model.setValue("/root/main/cond/ocrprntyn","N") ;
  2206. model.setValue("/root/main/cond/ocrtargetyn", "Y");
  2207. } else if ( !isNull( model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'E']/ocrtargetyn"))
  2208. && model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'E']/ocrtargetyn") == "E" ){
  2209. cap_msg.text = "당일 수혈동의서 출력 이력이 존재합니다. \n OCR 출력 리스트에서 확인하시기 바랍니다"
  2210. grp_msg.visible = true;
  2211. rdo_msgcnfm.visible = false;
  2212. model.setValue("/root/main/cond/ocrtargetyn", "E");
  2213. } else {
  2214. model.setValue("/root/main/cond/ocrtargetyn", "N");
  2215. grp_msg.visible = false;
  2216. cap_msg.text = "";
  2217. window.close();
  2218. }
  2219. }
  2220. // grd_detlgrup.row = 1;
  2221. }
  2222. /**
  2223. * @group :
  2224. * @ver : 2007.05.09
  2225. * @by : 정찬성
  2226. * @---------------------------------------------------
  2227. * @type : function
  2228. * @access : public
  2229. * @desc : 수혈동의서 출력 confirm
  2230. * @param :
  2231. * @return :
  2232. * @---------------------------------------------------
  2233. */
  2234. function fPopWndOcrCnfm(){
  2235. if ( model.getValue("/root/main/cond/ocrtargetyn") == "Y" ){
  2236. if (model.getValue("/root/main/cond/ocrprntyn") == "Y" ){
  2237. //emr/prcpmngtweb/js/MMO001.js
  2238. fOcrAutoPrint(model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/calcscorcd")+ "▦");
  2239. } else if (model.getValue("/root/main/cond/ocrprntyn") == "N" ){
  2240. //<script type="javascript" src="../../../emr/formmngtweb/js/MRF03800.js"/>
  2241. //fSaveOCRIF(seq, pid, indd, cretno, ordtype, orddeptcd, medispclid, formcd, formfromdt, "", "", pagecnt)
  2242. //xPatientPath
  2243. var pid = model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/pid");
  2244. fSaveOCRIF(model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/seq")
  2245. , pid
  2246. , opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/indd")
  2247. , opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/cretno")
  2248. , opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/ordtype")
  2249. , opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/orddeptcd")
  2250. , opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/medispclid")
  2251. , model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/formcd")
  2252. , model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/formfromdt")
  2253. , ""
  2254. , ""
  2255. , model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/pagecnt"))
  2256. }
  2257. }
  2258. window.close();
  2259. }
  2260. /**
  2261. * @desc : OCR 자동출력
  2262. * @
  2263. * @return :
  2264. * @author : 20087. 10. 17
  2265. * @---------------------------------------------------
  2266. */
  2267. function fOcrAutoPrint(calcscorcd) {
  2268. var pid = model.getValue(xPopWndClsListBKPath + "[ocrtargetyn = 'Y']/pid");
  2269. model.makeValue ( "/root/hidden/ocrprint/calcscor/pid", pid);
  2270. model.makeValue ( "/root/hidden/ocrprint/calcscor/cretno", opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/cretno"));
  2271. model.makeValue ( "/root/hidden/ocrprint/calcscor/orddd", opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/indd") );
  2272. model.makeValue ( "/root/hidden/ocrprint/calcscor/ordtype", opener.model.getValue(xPatientPath + "[pid = '"+pid+"']/ordtype"));
  2273. model.makeValue ( "/root/hidden/ocrprint/calcscor/calcscorcd", calcscorcd );
  2274. model.makeValue ( "/root/hidden/ocrprint/calcscor/disflag", "calcscor" );
  2275. var xpt = window.screenleft + 50;
  2276. var ypt = window.screenTop + 50;
  2277. var coord = getRelativeCoordinate ( xpt, ypt );
  2278. var mon = coord[0];
  2279. xpt = coord[1];
  2280. ypt = coord[2];
  2281. model.addLog("동의서 출력 - LSH");
  2282. model.addLog(model.instances(0).selectNodesXml("/root/hidden/ocrprint/calcscor"));
  2283. modal ( "SPMRF04500", mon, xpt, ypt, "SSMRF03800", "/root/hidden/ocrprint/calcscor","/root/main/temp/calcscor", "", false );
  2284. }
  2285. /**
  2286. * @group :
  2287. * @ver : 2007.05.09
  2288. * @by : 정찬성
  2289. * @---------------------------------------------------
  2290. * @type : function
  2291. * @access : public
  2292. * @desc : 혈액불출관리 init
  2293. * @param :
  2294. * @return :
  2295. * @---------------------------------------------------
  2296. */
  2297. function fPopWndInit(){
  2298. model.makeValue("/root/send/prcpddfrom" , opener.window.javascript.getParameter("prcpddfrom") );
  2299. model.makeValue("/root/send/prcpddto" , opener.window.javascript.getParameter("prcpddto") );
  2300. model.makeValue("/root/send/wardcd" , opener.window.javascript.getParameter("wardcd") );
  2301. model.makeValue("/root/send/roomcd" , opener.window.javascript.getParameter("roomcd") );
  2302. model.makeValue("/root/send/pid" , opener.window.javascript.getParameter("pid") );
  2303. model.makeValue("/root/send/queryprcpdd" , opener.window.javascript.getParameter("queryprcpdd") );
  2304. model.makeValue("/root/send/queryprcpno" , opener.window.javascript.getParameter("queryprcpno") );
  2305. model.makeValue("/root/send/queryprcphistno", opener.window.javascript.getParameter("queryprcphistno") );
  2306. if(submit("TRMNR01007")){
  2307. model.copyNode("/root/temp/main","/root/main");
  2308. for(var i = 1 ; i < grd_execpopwnddetlgruplist.rows ; i++) {
  2309. //setrsrvyn : Y일 경우 예약일시 지정코드_20090223_SMY추가
  2310. var setrsrvyn = model.getValue(xPopWndExecDetlListPath+"["+i+"]/setrsrvyn");
  2311. //if(model.getValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm") == "000000" ){
  2312. /**************************************************************강남성모기준_서울성모오픈시 삭제부분
  2313. //prep order는 무조건 당일로 셋팅 : 2008-01-15
  2314. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopedd",getCurrentDate());
  2315. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm",getCurrentTime());
  2316. ***************************************************************/
  2317. //*************************************************************************************서울성모오픈시 적용
  2318. if(setrsrvyn == "Y"){
  2319. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopedd","");
  2320. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm","");
  2321. }else{
  2322. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopedd",getCurrentDate());
  2323. model.setValue(xPopWndExecDetlListPath+"["+i+"]/prcphopetm",getCurrentTime());
  2324. }
  2325. //********************************************************************************************/
  2326. //}
  2327. }
  2328. }
  2329. }
  2330. /**
  2331. * @group :
  2332. * @ver : 2007.06.18
  2333. * @by : 정찬성
  2334. * @---------------------------------------------------
  2335. * @type : function
  2336. * @access : public
  2337. * @desc : 혈액불출신청 팝업
  2338. * @param :
  2339. * @return :
  2340. * @---------------------------------------------------
  2341. */
  2342. function fPopWnd(){
  2343. var iRows = grd_execdetlgruplist.rows;
  2344. var queryprcpdd = "" ;
  2345. var queryprcpno = "" ;
  2346. var queryprcphistno = "" ;
  2347. var checkcnt = 0 ;
  2348. for(var i = 1 ; i < grd_execdetlgruplist.rows; i++ ) {// 전체를 돌면서 그룹에 값이 체크되어 있는것 초기화
  2349. if( model.getValue(xExecDetlListPath+"["+ i +"]/sel") == "true" ) {
  2350. queryprcpdd = queryprcpdd + "'" + model.getValue(xExecDetlListPath+"["+ i +"]/prcpdd2") + "'," ;
  2351. queryprcpno = queryprcpno + "" + model.getValue(xExecDetlListPath+"["+ i +"]/prcpno" ) + "," ;
  2352. queryprcphistno = queryprcphistno + "" + model.getValue(xExecDetlListPath+"["+ i +"]/prcphistno") + "," ;
  2353. checkcnt++ ;
  2354. } else {
  2355. }
  2356. }
  2357. if( checkcnt <= 0 ) {
  2358. messageBox("수혈처방내역을 ","C002");
  2359. return 0 ;
  2360. }
  2361. if(opt_inj.value == ""){
  2362. messageBox("보관검체가 없습니다.", "E");
  2363. }
  2364. queryprcpdd = queryprcpdd.replace(/-/g,"")
  2365. queryprcpdd = queryprcpdd.substr(0,queryprcpdd.length-1) ;
  2366. queryprcpno = queryprcpno.substr(0,queryprcpno.length-1) ;
  2367. queryprcphistno = queryprcphistno.substr(0,queryprcphistno.length-1) ;
  2368. setParameter("prcpddfrom", ipt_prcpddfrom.value);
  2369. setParameter("prcpddto", ipt_prcdddto.value);
  2370. setParameter("wardcd", cmb_wardcdgruplist.value);
  2371. setParameter("roomcd", cmb_roomcdgruplist.value);
  2372. setParameter("pid", ipt_pid.value);
  2373. setParameter("queryprcpdd", queryprcpdd);
  2374. setParameter("queryprcpno", queryprcpno);
  2375. setParameter("queryprcphistno", queryprcphistno);
  2376. var left = event.screenX-1000;
  2377. var top = event.screenY+50;
  2378. modal("SMMNR01001",1,left,top);
  2379. }
  2380. /**
  2381. * @group :
  2382. * @ver : 2007.06.18
  2383. * @by : 정찬성
  2384. * @---------------------------------------------------
  2385. * @type : function
  2386. * @access : public
  2387. * @desc : 수행처방내역 조회 리스트
  2388. * @param :
  2389. * @return :
  2390. * @---------------------------------------------------
  2391. */
  2392. function fGetExecDetlList(){
  2393. var pid = ipt_pid.value;
  2394. if( pid == "" ){
  2395. model.removenode("/root/main/cond/execdetlgrup");
  2396. model.refresh();
  2397. return;
  2398. }
  2399. if( model.getValue("/root/main/cond/wardcdgrup/wardcdgruplist") == "" ){
  2400. // messageBox("병동을 ","C002");
  2401. // model.setfocus("cmb_wardcdgruplist");
  2402. // return;
  2403. }
  2404. grd_execdetlgruplist.rebuildStyle();
  2405. model.removenode("/root/send");
  2406. model.makeValue("/root/send/prcpddfrom", ipt_prcpddfrom.value);
  2407. model.makeValue("/root/send/prcpddto", ipt_prcdddto.value);
  2408. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist.value);
  2409. model.makeValue("/root/send/wardcdnm", cmb_wardcdgruplist2.label );
  2410. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist.value);
  2411. model.makeValue("/root/send/hngnm", cmb_patientgruplist.value);
  2412. model.makeValue("/root/send/pid", pid);
  2413. model.makeValue("/root/send/ioparam", ioparam);
  2414. if(submit("TRMNR01006")){
  2415. //신청 불가 선택란 Disabled 처리 : 2008-01-16
  2416. for(iRow = 1 ; iRow <= getNodesetCount(xExecDetlListPath) ; iRow++ ){
  2417. grd_execdetlgruplist.isReadOnly(iRow, grd_execdetlgruplist.colRef("sel")) = false; // 콤보박스 초기화
  2418. if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "D/C") {
  2419. grd_execdetlgruplist.isReadOnly(iRow, grd_execdetlgruplist.colRef("sel")) = true;
  2420. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "의사") {
  2421. grd_execdetlgruplist.isReadOnly(iRow, grd_execdetlgruplist.colRef("sel")) = true;
  2422. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "완료") {
  2423. grd_execdetlgruplist.isReadOnly(iRow, grd_execdetlgruplist.colRef("sel")) = true;
  2424. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") != "처방") {
  2425. grd_execdetlgruplist.isReadOnly(iRow, grd_execdetlgruplist.colRef("sel")) = true;
  2426. } else if( model.getValue(xExecDetlListPath+"["+iRow+"]/prcpstatcd") == "처방") {
  2427. if ( model.getValue("/root/main/cond/ioflag") == "I"
  2428. && (model.getValue(xExecDetlListPath+"["+iRow+"]/orddd") != model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid='"+ pid +"']/indd")
  2429. || model.getValue(xExecDetlListPath+"["+iRow+"]/cretno") != model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid='"+ pid +"']/cretno")) ){
  2430. grd_execdetlgruplist.isReadOnly(iRow, grd_execdetlgruplist.colRef("sel")) = true;
  2431. }
  2432. }
  2433. }
  2434. }
  2435. }
  2436. /**
  2437. * @group :
  2438. * @ver : 2007.06.18
  2439. * @by : 정찬성
  2440. * @---------------------------------------------------
  2441. * @type : function
  2442. * @access : public
  2443. * @desc : 환자 상세정보 조회 combo
  2444. * @param :
  2445. * @return :
  2446. * @---------------------------------------------------
  2447. */
  2448. function fGetPatientInfo(arg, aCase){
  2449. var sLoPid = "";
  2450. //기존 Pid와 새로 조회되는 Pid같은지 점검
  2451. if(aCase == "case1") {
  2452. sLoPid = ipt_pid.value;
  2453. } else {
  2454. sLoPid = ipt_pid2.value;
  2455. }
  2456. if(getPatientInfo("pid") != sLoPid ){
  2457. delPatientInfos(); //화면상단정보 삭제
  2458. setGlobalVariable("paminfo", ""); //원무정보 reset
  2459. }
  2460. // if(sGolPid == sLoPid) return;
  2461. model.removenode("/root/send");
  2462. if(aCase == "case1") { //수혈불출관리화면
  2463. if(arg != ""){
  2464. //cmb_wardcdgruplist2.value = "";
  2465. //cmb_roomcdgruplist2.value = "";
  2466. //cmb_patientgruplist2.value = "";
  2467. //model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist", "");
  2468. //model.setValue("/root/temp/cond/roomcdgrup/roomcdgruplist", "");
  2469. //model.setValue("/root/temp/cond/patientgrup/patientgruplist", "");
  2470. }
  2471. //opt_patientnm.value = "" ;
  2472. //opt_sexage1.value = "" ;
  2473. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm", "");
  2474. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage", "");
  2475. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist.value);
  2476. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist.value);
  2477. if( ipt_pid.value != "" ){
  2478. model.makeValue("/root/send/pid", ipt_pid.value);
  2479. } else if( model.makeValue("/root/send/pid", cmb_patientgruplist.value) != "" ){
  2480. model.makeValue("/root/send/pid", cmb_patientgruplist.value);
  2481. }
  2482. } else {
  2483. if(arg != ""){
  2484. //cmb_wardcdgruplist.value = "" ;
  2485. //cmb_roomcdgruplist.value = "" ;
  2486. //cmb_patientgruplist.value = "" ;
  2487. //model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist", "");
  2488. //model.setValue("/root/temp/cond/roomcdgrup/roomcdgruplist", "");
  2489. //model.setValue("/root/temp/cond/patientgrup/patientgruplist", "");
  2490. }
  2491. //opt_patientnm2.value = "" ;
  2492. //opt_sexage.value = "" ;
  2493. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm", "");
  2494. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage", "");
  2495. //opt_signno.value = "" ;
  2496. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist2.value);
  2497. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist2.value);
  2498. if( ipt_pid2.value != "" ){
  2499. model.makeValue("/root/send/pid", ipt_pid2.value);
  2500. } else if( model.makeValue("/root/send/pid", cmb_patientgruplist2.value) != "" ){
  2501. model.makeValue("/root/send/pid", cmb_patientgruplist2.value);
  2502. }
  2503. }
  2504. model.makeValue("/root/send/ioparam", ioparam);
  2505. if(submit("TRMNR01005", false)){
  2506. sGolPid = sLoPid;
  2507. if( arg == "pid" && ioparam == "IPRC" ){
  2508. // fGetWardList();
  2509. if("" == model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/wardcd") ) {
  2510. return ;
  2511. }
  2512. if(aCase == "case1") { //수혈불출관리화면
  2513. model.setValue(cmb_wardcdgruplist.attribute("ref"), model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/wardcd") );
  2514. fGetRoomList();
  2515. if( "" == model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/roomcd") ) {
  2516. return ;
  2517. }
  2518. model.setValue(cmb_roomcdgruplist.attribute("ref"), model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/roomcd") );
  2519. fGetPatientList();
  2520. if("" == model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/pid") ) {
  2521. return ;
  2522. }
  2523. model.setValue(cmb_patientgruplist.attribute("ref"), model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/pid") );
  2524. } else {
  2525. model.setValue(cmb_wardcdgruplist2.attribute("ref"), model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/wardcd") );
  2526. fGetRoomList();
  2527. if( "" == model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/roomcd") ) {
  2528. return ;
  2529. }
  2530. model.setValue(cmb_roomcdgruplist2.attribute("ref"), model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/roomcd") );
  2531. fGetPatientList();
  2532. if("" == model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/pid") ) {
  2533. return ;
  2534. }
  2535. model.setValue(cmb_patientgruplist2.attribute("ref"), model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pidsearchlistInfo/pid") );
  2536. }
  2537. }
  2538. }
  2539. if(aCase == "case1") { //수혈불출관리화면
  2540. model.setfocus("btn_srch1");
  2541. } else {
  2542. model.setfocus("btn_srch2");
  2543. }
  2544. }
  2545. /**
  2546. * @group :
  2547. * @ver : 2007.06.18
  2548. * @by : 정찬성
  2549. * @---------------------------------------------------
  2550. * @type : function
  2551. * @access : public
  2552. * @desc : 환자 정보 조회 combo
  2553. * @param :
  2554. * @return :
  2555. * @---------------------------------------------------
  2556. */
  2557. function fGetPatientList(){
  2558. model.removenode("/root/send");
  2559. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist.value);
  2560. model.makeValue("/root/send/roomcd", cmb_roomcdgruplist.value);
  2561. if(submit("TRMNR01004", false)){
  2562. }
  2563. model.setfocus("cmb_patientgruplist");
  2564. }
  2565. /**
  2566. * @group :
  2567. * @ver : 2007.06.18
  2568. * @by : 정찬성
  2569. * @---------------------------------------------------
  2570. * @type : function
  2571. * @access : public
  2572. * @desc : 병실 조회 combo
  2573. * @param :
  2574. * @return :
  2575. * @---------------------------------------------------
  2576. */
  2577. function fGetRoomList(){
  2578. model.removenode("/root/send");
  2579. model.makeValue("/root/send/wardcd", cmb_wardcdgruplist.value);
  2580. if(submit("TRMNR01003", false)){
  2581. }
  2582. model.setfocus("cmb_roomcdgruplist");
  2583. }
  2584. /**
  2585. * @group :
  2586. * @ver : 2007.06.18
  2587. * @by : 정찬성
  2588. * @---------------------------------------------------
  2589. * @type : function
  2590. * @access : public
  2591. * @desc : 병동 조회
  2592. * @param :
  2593. * @return :
  2594. * @---------------------------------------------------
  2595. */
  2596. function fGetWardList(){
  2597. model.removenode("/root/send");
  2598. model.makeValue("/root/send/wardcd", model.getValue("/root/temp/cond/wardcdgrup/wardcdgruplist/wardcd"));
  2599. if(submit("TRMNR01002", false)){
  2600. }
  2601. // model.setfocus("cmb_wardcdgruplist");
  2602. }
  2603. /**
  2604. * @group :
  2605. * @ver : 2007.05.09
  2606. * @by : 정찬성
  2607. * @---------------------------------------------------
  2608. * @type : function
  2609. * @access : public
  2610. * @desc : 혈액불출관리 init
  2611. * @param :
  2612. * @return :
  2613. * @---------------------------------------------------
  2614. */
  2615. function fInitWardList( getparam){
  2616. fGetWardList();// 병동코드 리스트
  2617. }
  2618. /**
  2619. * @group :
  2620. * @ver : 2007.08.29
  2621. * @by : 정찬성
  2622. * @---------------------------------------------------
  2623. * @type : function
  2624. * @access : public
  2625. * @desc : 초기화
  2626. * @param :
  2627. * @return :
  2628. * @---------------------------------------------------
  2629. */
  2630. function fTnsRecInit(){
  2631. rdo_discontinuyn.value = "N"; // 수혈중단
  2632. rdo_discontinuyn.disabled = false; // 수혈중단
  2633. cmb_discontinu.disabled = true; // 수혈중단 콤보
  2634. ipt_etc.disabled = true; // 수혈중단 기타
  2635. ipt_drugqty.disabled = true; // 총투여량
  2636. ipt_onepintqty.disabled = false; // 1pint 투여량
  2637. chk_tnssideeffect.disabled = false; //20100126_SMY추가
  2638. ipt_tnssideeffectetc.disabled = true; // 수혈부작용 기타 비활성화
  2639. chk_smlqtytnsyn.disabled = true; // 소량수혈 비활성화
  2640. btn_deltemprec.disabled = true; // 기록삭제 버튼 비활성화
  2641. btn_init.disabled = true; // 초기화 버튼 비활성화
  2642. btn_tempsave.disabled = true; // 임시저장 버튼 비활성화
  2643. btn_certsave.disabled = true; // 인증저장 버튼 비활성화
  2644. model.removeNode ("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist");
  2645. model.copyNode("/root/main/cond/tnsnurserecgrup","/root/temp/tnsnurserecgrup");
  2646. model.removeNode ("/root/main/cond/vitalsigngrup/vitalsigngruplist");
  2647. model.copyNode("/root/main/cond/vitalsigngrup","/root/temp/vitalsigngrup");
  2648. //textarea1.value = "수혈팔찌 확인함" + "\n" + "본인확인 혈액형 :";
  2649. // 170221_마취회복실, 수술실 수혈기록_문구수정
  2650. if(getUserInfo("dutplceinstcd") == "031" && (getUserInfo("dutplcecd") == model.getValue("/root/code/codeinfo/codelist[cdgrupid ='016']/cdid") || getUserInfo("dutplcecd") == model.getValue("/root/code/codeinfo/codelist[cdgrupid ='013']/cdid")) ){
  2651. model.makeValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsrec", "혈액전달 및 연결시 수여자와 혈액의 환자이름, 혈액형, 혈액종류를 확인한다." + "\n" + "수혈간호기록의 vital sign기록을 마취기록조회(진료)의 5분 vital sign으로 대체한다.");
  2652. }else{
  2653. model.makeValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsrec", "수혈팔찌 확인함, 수혈부작용 설명함" + "\n" + "수혈이 완료될 때까지 30분마다 환자 상태를 관찰하고 확인한다." + "\n" + "본인확인 혈액형 확인함");
  2654. }
  2655. //model.makeValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnsrec", "수혈팔찌 확인함, 수혈부작용 설명함" + "\n" + "수혈이 완료될 때까지 30분마다 환자 상태를 관찰하고 확인한다." + "\n" + "본인확인 혈액형 확인함"); //수혈부작용 설명함 추가_20090327_SMY
  2656. model.makeValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/transferyn","N"); // 150309 - AYS
  2657. model.makeValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher","N"); // 150908 - AYS
  2658. // '15.09.08 - AYS
  2659. caption17.value = "수혈시작일시";
  2660. caption19.value = "수혈시작 간호사";
  2661. grd_vitalsigngruplist.row = 0;
  2662. grd_vitalsigngruplist.col = 0;
  2663. //model.refresh();
  2664. }
  2665. /**
  2666. * @group :
  2667. * @ver : 2007.08.29
  2668. * @by : 정찬성
  2669. * @---------------------------------------------------
  2670. * @type : function
  2671. * @access : public
  2672. * @desc : Set선택의 항목 지정
  2673. * @param :
  2674. * @return :
  2675. * @---------------------------------------------------
  2676. */
  2677. function fBaseMakeParameter() {
  2678. var param = "";
  2679. rowsep = "▩";
  2680. colsep = "▦";
  2681. param = "recflag" + colsep + "dutplaccd" + colsep + "reclnkkey"+ rowsep+"O" + colsep + "12611" + colsep + "12611" + rowsep;
  2682. return param;
  2683. }
  2684. /**
  2685. * @group :
  2686. * @ver : 2007.12.29
  2687. * @by : 양천덕
  2688. * @---------------------------------------------------
  2689. * @type : function
  2690. * @access : public
  2691. * @desc : 수행기록내역 체크
  2692. * @param :
  2693. * @return :
  2694. * @---------------------------------------------------
  2695. */
  2696. function fCheckExecRec(){
  2697. var sRow = grd_blodexecrecgruplist.row;
  2698. var sRowStratTime = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/fstrgstdt3");
  2699. var sRowEndTime = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnsendddtm");
  2700. var sRowTnsstrnurseid = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnsstrnurseid");
  2701. var sRowTnsendnurseid = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnsendnurseid");
  2702. var sRowSmlqtytnsyn = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/smlqtytnsyn");
  2703. var sRowTnssideeffectetc = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnssideeffectetc");
  2704. var sRowDiscontinuyn = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/discontinuyn");
  2705. var sRowPrcpcd = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/prcpcd"); // 170331_AYS_처방코드 동시 확인
  2706. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/stat") == "true"){
  2707. for(var i = 1 ; i < grd_blodexecrecgruplist.rows ; i++ ){
  2708. model.setValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/stat" , 'false');
  2709. if( model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/fstrgstdt3") == sRowStratTime &&
  2710. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnsendddtm") == sRowEndTime &&
  2711. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnsstrnurseid") == sRowTnsstrnurseid &&
  2712. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnsendnurseid") == sRowTnsendnurseid &&
  2713. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/smlqtytnsyn") == sRowSmlqtytnsyn &&
  2714. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnssideeffectetc") == sRowTnssideeffectetc &&
  2715. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/discontinuyn") == sRowDiscontinuyn &&
  2716. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/prcpcd") == sRowPrcpcd ){ // 170331_AYS_처방코드 동시 확인
  2717. model.setValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/stat" , 'true');
  2718. }
  2719. }
  2720. fOtherRecListUncheck("exec");
  2721. } else if( model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/stat") == "false"){
  2722. for(var i = 1 ; i < grd_blodexecrecgruplist.rows ; i++ ){
  2723. if( i != sRow &&
  2724. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/fstrgstdt3") == sRowStratTime &&
  2725. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnsendddtm") == sRowEndTime &&
  2726. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnsstrnurseid") == sRowTnsstrnurseid &&
  2727. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnsendnurseid") == sRowTnsendnurseid &&
  2728. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/smlqtytnsyn") == sRowSmlqtytnsyn &&
  2729. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/tnssideeffectetc") == sRowTnssideeffectetc &&
  2730. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/discontinuyn") == sRowDiscontinuyn &&
  2731. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/prcpcd") == sRowPrcpcd ){ // 170331_AYS_처방코드 동시 확인
  2732. model.setValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/stat" , 'false');
  2733. }
  2734. }
  2735. }
  2736. grd_blodexecrecgruplist.refresh();
  2737. }
  2738. /**
  2739. * @group :
  2740. * @ver : 2007.12.29
  2741. * @by : 양천덕
  2742. * @---------------------------------------------------
  2743. * @type : function
  2744. * @access : public
  2745. * @desc : 혈액번호 조회
  2746. * @param :
  2747. * @return :
  2748. * @---------------------------------------------------
  2749. */
  2750. function fFindBlod(){
  2751. var sCheckBold = ipt_blodno.currentText;
  2752. var frow1 = "";
  2753. var frow2 = "";
  2754. var frow3 = "";
  2755. // 혈액불출내역 조회
  2756. frow1 = grd_blodreturnreqgruplist.findRow(sCheckBold, 1, 2);
  2757. grd_blodreturnreqgruplist.row = frow1;
  2758. grd_blodreturnreqgruplist.topRow = frow1;
  2759. // 미수행기록목록 조회
  2760. frow2 = grd_blodnoexecrecgruplist.findRow(sCheckBold, 1, 2);
  2761. grd_blodnoexecrecgruplist.row = frow2;
  2762. grd_blodnoexecrecgruplist.topRow = frow2;
  2763. // 수행기록 내역 조회
  2764. frow3 = grd_blodexecrecgruplist.findRow(sCheckBold, 1, 4);
  2765. grd_blodexecrecgruplist.row = frow3;
  2766. grd_blodexecrecgruplist.topRow = frow3;
  2767. if(frow1 < 0 && frow2 < 0 && frow3 < 0){
  2768. messageBox("검색 된 혈액이 없습니다.", "I");
  2769. return;
  2770. }
  2771. }
  2772. /**
  2773. * @group :
  2774. * @ver : 2007.12.29
  2775. * @by : 양천덕
  2776. * @---------------------------------------------------
  2777. * @type : function
  2778. * @access : public
  2779. * @desc : 수행기록내역 더블클릭 이밴트 처리
  2780. * @param :
  2781. * @return :
  2782. * @---------------------------------------------------
  2783. */
  2784. function fCheckExecRecDBclick(){
  2785. //debugger;
  2786. if(grd_blodexecrecgruplist.row < 1){
  2787. return;
  2788. }
  2789. for(var i=1 ; i < grd_blodexecrecgruplist.rows ; i++){
  2790. model.setValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ i +"]/stat" , 'false');
  2791. }
  2792. var iRow = grd_blodexecrecgruplist.Row ;
  2793. model.setValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ iRow +"]/stat", 'true');
  2794. fOtherRecListUncheck("exec");
  2795. grd_blodexecrecgruplist.refresh();
  2796. //fBlodExecRecDetlinfo();// 수행기록내역 상세정보
  2797. //fTnsRecInit();
  2798. fExecRecBottom();
  2799. fVitalSignList();// vital sign List
  2800. }
  2801. /**
  2802. * @group :
  2803. * @ver : 2007.12.29
  2804. * @by : 양천덕
  2805. * @---------------------------------------------------
  2806. * @type : function
  2807. * @access : public
  2808. * @desc : 수행기록내역 더블클릭으로 수혈간호기록에 Seeting 처리
  2809. * @param :
  2810. * @return :
  2811. * @---------------------------------------------------
  2812. */
  2813. function fExecRecBottom(){
  2814. var sRowCnt = grd_blodexecrecgruplist.rows-grd_blodexecrecgruplist.fixedrows;
  2815. var cnt = 0 ;
  2816. model.removenode("/root/send");
  2817. model.makeValue("/root/send/detlgrup",grd_blodexecrecgruplist.getupdatedataAll("i"));
  2818. var blodno = "" ;
  2819. var prcpnm = "" ;
  2820. var aborh = "" ;
  2821. var prcpdelivefact = "" ;
  2822. var iRow = "";
  2823. var chkreqcnt = 0;
  2824. var signno = "";
  2825. var prcpno = "";
  2826. var duplreccheck = false ;
  2827. var discontinuyn = "";
  2828. sFlagChkYN = "N";
  2829. /* 미수행기록 목록 선택 되어 있는지 체크 시작 */
  2830. for(var i=1; i<= sRowCnt; i++){
  2831. // alert(grd_blodnoexecrecgruplist.labelmatrix(i, 1));
  2832. if( grd_blodexecrecgruplist.labelmatrix(i, 1) == "true" ) {
  2833. blodno += grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("blodno")) + "," ;
  2834. prcpnm += grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("prcpnm")) + "," ;
  2835. aborh += grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("abo"))
  2836. + grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("rh")) + "," ;
  2837. prcpdelivefact += grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("prcpdelivefact")) + "," ;
  2838. signno += grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("signno")) + "," ;
  2839. prcpno += grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("prcpno")) + "," ;
  2840. discontinuyn += grd_blodexecrecgruplist.labelmatrix(i, grd_blodexecrecgruplist.colRef("discontinuyn")) + "," ;
  2841. if(iRow == ""){
  2842. iRow = i ;
  2843. }
  2844. cnt = cnt + 1;
  2845. }
  2846. }
  2847. if(cnt < 1){
  2848. messageBox("선택 정보가 ","I004");
  2849. return false;
  2850. }
  2851. /* 수행기록 목록 선택 되어 있는지 체크 끝 */
  2852. var blodnodupSource = blodno.substr(0,blodno.length-1).split(",");
  2853. var prcpnodupSource = prcpno.substr(0,prcpno.length-1).split(",");
  2854. // alert(blodnodupSource);
  2855. /* 수행내역 기록버튼시 중복 체크 시작 */
  2856. for(var i=0; i<= blodnodupSource.length; i++){
  2857. // alert(grd_blodnoexecrecgruplist.labelmatrix(i, 1));
  2858. for(var n=0; n<= grd_blodnoexecrecgruplist.rows; n++){
  2859. if( blodnodupSource[i] == model.getValue(xBlodExecRecGrupListPath+"["+n+"]/blodno") &&
  2860. prcpnodupSource[i] == model.getValue(xBlodExecRecGrupListPath+"["+n+"]/prcpno") ) {
  2861. duplreccheck = true ;
  2862. }
  2863. }
  2864. }
  2865. btn_init.disabled = true;//20100415 khj 수행기록내역에서 넘긴경우 초기화버튼비활성화
  2866. btn_certsave.disabled = false;
  2867. //btn_deltemprec.disabled = true;
  2868. var sChkSign = signno.split(",");
  2869. var sChkDiscontinuyn = discontinuyn.split(",");
  2870. for(var i=0 ; i < sChkSign.length-1 ; i++){
  2871. if(sChkSign[i] == "" ){
  2872. btn_tempsave.disabled = false;
  2873. if(sChkDiscontinuyn[i]== "N"){
  2874. btn_deltemprec.disabled = false;
  2875. }
  2876. }
  2877. }
  2878. for(var i=0; i<= blodnodupSource.length; i++){
  2879. // alert(grd_blodnoexecrecgruplist.labelmatrix(i, 1));
  2880. for(var n=1; n<= grd_blodreturnreqgruplist.rows; n++){
  2881. if( blodnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/blodno") &&
  2882. prcpnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/prcpno") ) {
  2883. if(model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/reqflagstat") == "Y" && model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/reqflag") == "2"){
  2884. chkreqcnt = chkreqcnt + 1;
  2885. }
  2886. // //반납폐기 구분에 정보가 있을 경우 기록 삭제 버튼 비활성화-> 20100415 김홍점 폐기확정전까지는 활성화하고 메시지 팝업
  2887. // if(model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/reqflag") != ""){
  2888. // btn_deltemprec.disabled = true;
  2889. // }
  2890. }
  2891. }
  2892. }
  2893. if(chkreqcnt > 0 ){
  2894. rdo_discontinuyn.disabled = true;
  2895. cmb_discontinu.disabled = true;
  2896. chk_smlqtytnsyn.disabled = true;
  2897. ipt_etc.disabled = true;
  2898. ipt_drugqty.disabled = true;
  2899. ipt_onepintqty.disabled = true;
  2900. btn_deltemprec.disabled = true;
  2901. messageBox("폐기 확정 혈액은 사유 변경을 할 수 없습니다.","I");
  2902. sFlagChkYN = "Y";
  2903. } else {
  2904. //수혈중단N인경우 기록삭제버튼 활성화 20100415 khj 12061
  2905. //잔여폐기의뢰건도 버튼은 활성화 후 메시지 팝업
  2906. btn_deltemprec.disabled = false;
  2907. ipt_onepintqty.disabled = false;
  2908. }
  2909. /* 수행내역 기록버튼시 중복 체크 끝 */
  2910. // alert(blodno.substr(0,blodno.length-1));
  2911. // if( duplreccheck ){// 중복기록 체크
  2912. // messageBox("수행기록된 혈액을 중복으로 기록할수 ","I004");
  2913. // return;
  2914. // };
  2915. // fClearChildNode("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist");
  2916. // model.refresh();
  2917. model.setValue(cap_blodno.attribute("ref"), blodno.substr(0,blodno.length-1) );
  2918. model.setValue(cap_blodnm.attribute("ref"), prcpnm.substr(0,prcpnm.length-1) );
  2919. model.setValue(cap_aborh.attribute("ref"), aborh.substr(0,aborh.length-1) );
  2920. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno", prcpno.substr(0,prcpno.length-1));
  2921. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno", signno.substr(0,signno.length-1) );
  2922. //alert(instance1.selectSingleNode(xBlodExecRecGrupListPath).xml);
  2923. // model.setValue(cap_blodno.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/blodno"));
  2924. // model.setValue(cap_blodnm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/prcpnm"));
  2925. // model.setValue(cap_aborh.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/abo") + model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/rh") );
  2926. model.setValue(ipt_fromdd.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrddtm").substring(0,8));
  2927. model.setValue(ipt_fromtm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrddtm").substring(8,12));
  2928. model.setValue(ipt_todd.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendddtm").substring(0,8));
  2929. model.setValue(ipt_totm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendddtm").substring(8,12));
  2930. //20100415 12061 khj 수혈종료일시입력된 기록은 임시저장버튼활성화, 수혈중단N인경우 기록삭제버튼 활성화
  2931. if ( !isNull(model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendddtm")) ){
  2932. btn_tempsave.disabled = true;
  2933. }else{
  2934. btn_tempsave.disabled = false;
  2935. }
  2936. model.setValue(opt_fromdeptnm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursedeptnm"));
  2937. model.setValue(opt_fromusernm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursenm"));
  2938. model.setValue(opt_todeptnm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursedeptnm"));
  2939. model.setValue(opt_tousernm.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursenm"));
  2940. //model.setValue(cmb_tnssideeffect.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnssideeffect"));
  2941. model.setValue(chk_tnssideeffect.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnssideeffect"));
  2942. model.setValue(ipt_tnssideeffectetc.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnssideeffectetc"));
  2943. model.setValue(ipt_prcpdelivefact.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/prcpdelivefact"));
  2944. model.setValue(rdo_discontinuyn.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/discontinuyn"));
  2945. //rdo_discontinuyn.disabled = true;
  2946. //cmb_discontinu.disabled = true;
  2947. model.setValue(cmb_discontinu.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/discontinu"));
  2948. model.setValue(ipt_etc.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/discontinuetc"));
  2949. model.setValue(ipt_onepintqty.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/onepintqty"));
  2950. fSumQtyCalc(model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/drugqty"));// 총투여량 계산 onepintqty * 혈액갯수 20100415 khj
  2951. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnscarerecseq", model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnscarerecseq"));
  2952. //model.setValue(ipt_drugqty.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/drugqty"));
  2953. model.setValue(textarea1.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsrec"));
  2954. model.setValue(opt_instcd.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/instcd"));
  2955. model.setValue(chk_smlqtytnsyn.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/smlqtytnsyn"));
  2956. model.setValue(chk_tprlnkyn.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tprlnkyn"));
  2957. // 15.04.28 - AYS
  2958. model.setValue(bol_transferyn.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/transferyn"));
  2959. // '15.09.08 - AYS 추가
  2960. model.setValue(bol_nonactpher.attribute("ref"), model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/nonactpher"));
  2961. // 15.11.27 성분채집실, 전원 기록은 임시저장버튼활성화 기록삭제버튼 활성화
  2962. if ( model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/transferyn") == 'Y' || model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/nonactpher") == 'Y' ){
  2963. btn_tempsave.disabled = true;
  2964. }else{
  2965. btn_tempsave.disabled = false;
  2966. }
  2967. // 15.11.27 성분채집실, 전원 기록은 임시저장버튼활성화 기록삭제버튼 활성화
  2968. model.setValue(opt_tnsstrnursall.attribute("ref"),
  2969. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnurseid")+","+
  2970. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursenm")+","+","+","+
  2971. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursedeptnm")+","+
  2972. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsstrnursedeptcd"));
  2973. model.setValue(opt_tnsendnursall.attribute("ref"),
  2974. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnurseid")+","+
  2975. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursenm")+","+","+","+
  2976. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursedeptnm")+","+
  2977. model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnsendnursedeptcd"));
  2978. if(sFlagChkYN == "N"){
  2979. if(rdo_discontinuyn.value=='Y'){
  2980. rdo_discontinuyn.disabled = true;
  2981. //chk_smlqtytnsyn.disabled = true ;
  2982. if(chk_smlqtytnsyn.value == 'Y'){
  2983. chk_smlqtytnsyn.disabled = false ;
  2984. cmb_discontinu.disabled = true ;
  2985. }else{
  2986. chk_smlqtytnsyn.disabled = false ;
  2987. cmb_discontinu.disabled = false ;
  2988. if (cmb_discontinu.value.substring(3,5) == "99") {
  2989. ipt_etc.disabled = false ;
  2990. }
  2991. }
  2992. }else{
  2993. rdo_discontinuyn.disabled = false;
  2994. cmb_discontinu.disabled = true;
  2995. chk_smlqtytnsyn.disabled = true ;
  2996. ipt_etc.disabled = true ;
  2997. }
  2998. }
  2999. // '15.09.08 추가 - AYS
  3000. if(model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/nonactpher") == "Y"){
  3001. caption17.value = "환자 보낸일자";
  3002. caption19.value = "담당 간호사";
  3003. } else{
  3004. caption17.value = "수혈시작일시";
  3005. caption19.value = "수혈시작 간호사";
  3006. }
  3007. //수혈부작용 기타사항 입력창 disabled 설정
  3008. /*
  3009. var sItem = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnssideeffect");
  3010. var sItemList = sItem.split(" ");
  3011. var chkYN = "N";
  3012. for(var i = 0 ; i < sItemList.length ; i ++){
  3013. if(sItemList[i] == "07"){
  3014. chkYN = "Y";
  3015. }
  3016. }
  3017. if(chkYN == "Y"){
  3018. ipt_tnssideeffectetc.disabled = false;
  3019. }else{
  3020. ipt_tnssideeffectetc.value = "";
  3021. ipt_tnssideeffectetc.disabled = true;
  3022. }
  3023. //model.refresh();
  3024. */
  3025. fSelctTnssideEffect("Y"); //20100126_SMY
  3026. var sRowCnt2 = grd_blodnoexecrecgruplist.rows-grd_blodnoexecrecgruplist.fixedrows;
  3027. for(var i=1; i<= sRowCnt2; i++){ // 선택한 값이 불출신청 상태인지 체크
  3028. grd_blodnoexecrecgruplist.textmatrix(i, 1) = "FALSE" ;
  3029. }
  3030. return true;
  3031. }
  3032. /**
  3033. * @group :
  3034. * @ver : 2007.07.16
  3035. * @by : 정찬성
  3036. * @---------------------------------------------------
  3037. * @type : function
  3038. * @access : public
  3039. * @desc : 수혈 수행 내역에서 더블클릭 했을때, vital sign 리스트
  3040. * @param :
  3041. * @return :
  3042. * @---------------------------------------------------
  3043. */
  3044. function fVitalSignList(){
  3045. var sRowCnt = grd_blodexecrecgruplist.rows-grd_blodexecrecgruplist.fixedrows;
  3046. var iRow = "";
  3047. for(var i=1; i<= sRowCnt; i++){
  3048. if( grd_blodexecrecgruplist.labelmatrix(i, 1) == "true" ) {
  3049. if(iRow == ""){
  3050. iRow = i ;
  3051. }
  3052. }
  3053. }
  3054. model.removenode("/root/send");
  3055. model.makeValue("/root/send/tnscarerecseq",model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/tnscarerecseq"));
  3056. model.makeValue("/root/send/pid",model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/pid"));
  3057. model.makeValue("/root/send/instcd",model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/instcd"));
  3058. model.makeValue("/root/send/blodno",model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/blodno"));
  3059. model.makeValue("/root/send/ioparam", ioparam);
  3060. model.refresh();
  3061. if(submit("TRMNR01025", false)){
  3062. model.removenodeset("/root/main/cond/vitalsigngrup/vitalsigngruplist");
  3063. model.copyNode("/root/main/cond/vitalsigngrup", "/root/temp/vitalsigngrup");
  3064. if(model.getValue(xBlodExecRecGrupListPath+"["+iRow+"]/signno") != ""){
  3065. model.copyNode("/root/main/cond/vitalsigngrup", "/root/hidden/vitalsigngrup");
  3066. }else{
  3067. for(var i = 1 ; i <= getNodesetCount("/root/hidden/vitalsigngrup/vitalsigngruplist") ; i ++){
  3068. insIndex = model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/tnscarerecvsseq");
  3069. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/stat" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/stat"));
  3070. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/recdd" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/recdd"));
  3071. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/rectm" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/rectm"));
  3072. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/flag" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/flag"));
  3073. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/bp" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/bp"));
  3074. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/pulse" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/pulse"));
  3075. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/breth" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/breth"));
  3076. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/bdtp" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/bdtp"));
  3077. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/tnscarerecseq" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/tnscarerecseq"));
  3078. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/tnscarerecvsseq", model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/tnscarerecvsseq"));
  3079. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/instcd" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/instcd"));
  3080. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/blodno" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/blodno"));
  3081. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/pid" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/pid"));
  3082. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/prcpcd" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/prcpcd"));
  3083. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/sbp" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/sbp"));
  3084. model.setValue("/root/main/cond/vitalsigngrup/vitalsigngruplist["+insIndex+"]/dbp" , model.getValue("/root/hidden/vitalsigngrup/vitalsigngruplist["+i+"]/dbp"));
  3085. }
  3086. }
  3087. }
  3088. grd_vitalsigngruplist.refresh();
  3089. }
  3090. /**
  3091. * @group :
  3092. * @ver : 2008.01.10
  3093. * @by : 양천덕
  3094. * @---------------------------------------------------
  3095. * @type : function
  3096. * @access : public
  3097. * @desc : 보관검체바코드 출력
  3098. * @param :
  3099. * @return :
  3100. * @---------------------------------------------------
  3101. */
  3102. function fKeepBcnoPrint(){
  3103. var pid = model.getvalue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid");
  3104. if(pid=="") {
  3105. messageBox("등록번호를", "C001");
  3106. model.setfocus("ipt_pid");
  3107. return;
  3108. }
  3109. model.removeNodeset("/root/send/data1");
  3110. model.makeValue("/root/send/data1" , pid);
  3111. submit("TRLLC80101");
  3112. if(getNodesetCount("/root/main/KeepBcnoPrint/printinfo") > 0){
  3113. //fKeLabel();
  3114. var prtkind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind"); // 프틴터종류 추가_20090522(ByJA)
  3115. var portnm = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/commkind");
  3116. if( (prtkind == "9" && portnm == "01") || (prtkind == "11" && portnm == "01") || prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7"){ // SATO일 경우 추가_20090522(ByJA)
  3117. fKeLabel2("/root/main/KeepBcnoPrint/printinfo", 1); // liscommonweb/js/LLZ001.js
  3118. }else{
  3119. fKeLabel ("/root/main/KeepBcnoPrint/printinfo", 1); // liscommonweb/js/LLZ001.js
  3120. }
  3121. }
  3122. //20101228_KNUH_Start
  3123. /*
  3124. var scrid = getScreenID();
  3125. var pid = "";
  3126. var toppid = "";
  3127. //채혈버튼 클릭하여 보관검체 출력시엔 선택된 환자 목록에서 환자 아이디 가져옴. 2008.12.04 김성희 수정.
  3128. if(flag == "B"){
  3129. pid = model.getValue(ipt_pid.attribute("ref"));
  3130. }else{
  3131. toppid = getPatientInfo("pid");
  3132. //top 정보가 없으면 조회조건에 입력한 환자번호
  3133. if(toppid == ""){
  3134. pid = model.getValue("/root/hidden/JoHoiFlag/regnopatnm");
  3135. //top 정보가 있으면 탑정보의 환자번호
  3136. }else{
  3137. pid = toppid;
  3138. }
  3139. }
  3140. if(pid=="") return;
  3141. model.removeNodeset("/root/send/data1");
  3142. model.makeValue("/root/send/data1" , pid);
  3143. submit("TRLLC80101");
  3144. if(getNodesetCount("/root/main/KeepBcnoPrint/printinfo") > 0){
  3145. var prtkind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind");
  3146. var portnm = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/commkind");
  3147. if( (prtkind == "9" && portnm == "01") || (prtkind == "11" && portnm == "01") || prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7"){
  3148. if((flag == "B") && (scrid == "SMLLC00100")) { //외래채혈일때
  3149. LCount = getNodesetCount("/root/main/TestInfo/barcodeinfo"); //진검바코드 갯수
  3150. fKeLabel2("/root/main/KeepBcnoPrint/printinfo", LCount);//portopen을 넘기기 위해
  3151. } else if ((flag == "B") && (scrid != "SMLLC00100")){ //병동채혈 및 환자별채혈일때
  3152. fKeLabel2("/root/main/KeepBcnoPrint/printinfo", "P"); //portopen을 넘기기 위해
  3153. } else {//채혈이 아닐때..
  3154. //보관검체 출력
  3155. fKeLabel2("/root/main/KeepBcnoPrint/printinfo");
  3156. }
  3157. }else if(prtkind == "8"){ // 여의도 B472
  3158. if((flag == "B") && (scrid == "SMLLC00100")) { //외래채혈일때
  3159. LCount = getNodesetCount("/root/main/TestInfo/barcodeinfo"); //진검바코드 갯수
  3160. fKeLabel_B472("/root/main/KeepBcnoPrint/printinfo", LCount);//portopen을 넘기기 위해
  3161. } else if ((flag == "B") && (scrid != "SMLLC00100")){ //병동채혈 및 환자별채혈일때
  3162. fKeLabel_B472("/root/main/KeepBcnoPrint/printinfo", "P"); //portopen을 넘기기 위해
  3163. } else {//채혈이 아닐때..
  3164. //보관검체 출력
  3165. fKeLabel_B472("/root/main/KeepBcnoPrint/printinfo");
  3166. }
  3167. }else{
  3168. if((flag == "B") && (scrid == "SMLLC00100")) { //외래채혈일때
  3169. LCount = getNodesetCount("/root/main/TestInfo/barcodeinfo"); //진검바코드 갯수
  3170. fKeLabel("/root/main/KeepBcnoPrint/printinfo", LCount);//portopen을 넘기기 위해
  3171. } else if ((flag == "B") && (scrid != "SMLLC00100")){ //병동채혈 및 환자별채혈일때
  3172. fKeLabel("/root/main/KeepBcnoPrint/printinfo", "P"); //portopen을 넘기기 위해
  3173. } else {//채혈이 아닐때..
  3174. //보관검체 출력
  3175. fKeLabel("/root/main/KeepBcnoPrint/printinfo");
  3176. }
  3177. }
  3178. }
  3179. */
  3180. }
  3181. /*
  3182. function fKeLabel(){
  3183. var ref = "/root/main/KeepBcnoPrint/printinfo";
  3184. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3185. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  3186. var sSndMsg = "";
  3187. if (sPrntKind == 0) return;
  3188. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  3189. if(sCommKind == "01") {
  3190. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  3191. } else if(sCommKind == "02") {
  3192. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  3193. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  3194. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  3195. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  3196. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  3197. CommAX.CommPort = sComm;
  3198. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  3199. CommAX.PortOpen();
  3200. } else if(sCommKind == "03") {
  3201. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  3202. }
  3203. var sStr = "보관검체";
  3204. var sRoomcd = model.getvalue(ref +"/roomcd");
  3205. var sPid = model.getvalue(ref +"/pid");
  3206. var sPatnm = model.getvalue(ref +"/patnm");
  3207. var sPatsexage = model.getvalue(ref +"/patsex") + "/" + model.getvalue(ref +"/patage");
  3208. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  3209. var sBtype = model.getvalue(ref +"/btype");
  3210. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  3211. var sDt = model.getvalue(ref +"/dt");
  3212. var sPidW = 85;
  3213. var sBarcodeW = 130;
  3214. var sBtypeW = 50;
  3215. if(sPid.length == 10){
  3216. //sPidW = 75;
  3217. sBarcodeW = 90;
  3218. sBtypeW = 20
  3219. }
  3220. if(sPrntKind == "1") {
  3221. sSndMsg += lzzfBP_StartFormat(0, 20); // 시작위치 셋팅
  3222. sSndMsg += CommAX.PrtImgOut("GRAPH001", sStr);
  3223. sSndMsg += lzzfBP_FiendOrigin(20, 2);
  3224. sSndMsg += "^XGGRAPH001,1,1^FS";
  3225. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3226. sSndMsg += lzzfBP_FieldDataA(200, 20, sRoomcd);
  3227. sSndMsg += lzzfBP_ChangeFont("C", 10, 14); // 폰트 설정
  3228. sSndMsg += lzzfBP_FieldDataA(30, 55, sPid);
  3229. sSndMsg += CommAX.PrtImgOut("GRAPH004", sPatnm);
  3230. sSndMsg += lzzfBP_FiendOrigin(210, 50);
  3231. sSndMsg += "^XGGRAPH004,2,1^FS";
  3232. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3233. sSndMsg += lzzfBP_FieldDataA(265, 25, sPatsexage);
  3234. sSndMsg += CommAX.PrtImgOut("GRAPH006", sOrddeptNm);
  3235. sSndMsg += lzzfBP_FiendOrigin(340, 20);
  3236. sSndMsg += "^XGGRAPH006,1,1^FS";
  3237. sSndMsg += CommAX.PrtImgOut("GRAPH007", sBcollNm);
  3238. sSndMsg += lzzfBP_FiendOrigin(230, 230);
  3239. sSndMsg += "^XGGRAPH007,1,1^FS";
  3240. sSndMsg += lzzfBP_ChangeFont("C", 85, 20); // 폰트 설정
  3241. sSndMsg += lzzfBP_FieldDataA(sBtypeW, 110, sBtype);
  3242. sSndMsg += lzzfBP_ChangeFont("F", 1, 1);
  3243. sSndMsg += lzzfBP_BarCode_Code39(sBarcodeW, 100, "N", 100, sPid); // 바코드
  3244. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  3245. sSndMsg += lzzfBP_FieldDataA(205, 205, "*"+sPid+"*");
  3246. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3247. sSndMsg += lzzfBP_FieldDataA(20, 240, sDt);
  3248. sSndMsg += lzzfBP_EndFormat();
  3249. if(sCommKind == "01") {
  3250. CommAX.SendMessageToLPT(sSndMsg);
  3251. } else if(sCommKind == "02") {
  3252. CommAX.SendMessage(sSndMsg);
  3253. }
  3254. //CommAX.SendMessageToLPT(sSndMsg);
  3255. }
  3256. }
  3257. */
  3258. /*
  3259. function fKeLabel(){
  3260. var ref = "/root/main/KeepBcnoPrint/printinfo";
  3261. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3262. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  3263. var sSndMsg = "";
  3264. if (sPrntKind == 0) return;
  3265. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  3266. if(sCommKind == "01") {
  3267. var sSetUpVal = model.getValue(barcdRef + "[1]/comm01/setupval");
  3268. } else if(sCommKind == "02") {
  3269. var sComm = model.getValue(barcdRef + "[1]/comm02/comm");
  3270. var sDataBit = model.getValue(barcdRef + "[1]/comm02/databit");
  3271. var sStopBit = model.getValue(barcdRef + "[1]/comm02/stopbit");
  3272. var sBaudRate = model.getValue(barcdRef + "[1]/comm02/baudrate");
  3273. var sParity = model.getValue(barcdRef + "[1]/comm02/parity");;
  3274. CommAX.CommPort = sComm;
  3275. CommAX.Settings = sBaudRate + "," + sParity + "," + sDataBit + "," + sStopBit;
  3276. } else if(sCommKind == "03") {
  3277. var sSetUpVal = model.getValue(barcdRef + "[1]/comm03/setupval");
  3278. }
  3279. var sStr = "보관검체";
  3280. var sRoomcd = model.getvalue(ref +"/roomcd");
  3281. var sPid = model.getvalue(ref +"/pid");
  3282. var sPatnm = model.getvalue(ref +"/patnm");
  3283. var sPatsexage = model.getvalue(ref +"/patsex") + "/" + model.getvalue(ref +"/patage");
  3284. var sOrddeptNm= model.getvalue(ref +"/orddeptnm").substring(0,2);
  3285. var sBtype = model.getvalue(ref +"/btype");
  3286. var sBcollNm = "채혈자:" ;//+ model.getvalue(ref +"/bcollnm");
  3287. var sDt = model.getvalue(ref +"/dt");
  3288. var sPidW = 85;
  3289. var sBarcodeW = 130;
  3290. var sBtypeW = 30;
  3291. if(sPid.length == 10){
  3292. sBarcodeW = 90;
  3293. sBtypeW = 20
  3294. }
  3295. if(sPrntKind == "1") {
  3296. sSndMsg += lzzfBP_StartFormat(0, 1); // 시작위치 셋팅
  3297. sSndMsg += CommAX.PrtImgOut(20, 2, sStr, 1, 1); //가로시작위치, 세로시작위치, 출력할문자열, 1,1 (비율)
  3298. sSndMsg += CommAX.HanImageData();
  3299. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3300. sSndMsg += lzzfBP_FieldDataA(200, 20, sRoomcd);
  3301. sSndMsg += lzzfBP_ChangeFont("C", 10, 14); // 폰트 설정
  3302. sSndMsg += lzzfBP_FieldDataA(30, 55, sPid);
  3303. sSndMsg += CommAX.PrtImgOut(210, 50, sPatnm, 2, 1); //가로시작위치, 세로시작위치, 출력할문자열, 1,1 (비율)
  3304. sSndMsg += CommAX.HanImageData();
  3305. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3306. sSndMsg += lzzfBP_FieldDataA(265, 25, sPatsexage);
  3307. sSndMsg += CommAX.PrtImgOut(340, 20, sOrddeptNm, 1, 1); //가로시작위치, 세로시작위치, 출력할문자열, 1,1 (비율)
  3308. sSndMsg += CommAX.HanImageData();
  3309. sSndMsg += CommAX.PrtImgOut(230, 230, sBcollNm, 1, 1); //가로시작위치, 세로시작위치, 출력할문자열, 1,1 (비율)
  3310. sSndMsg += CommAX.HanImageData();
  3311. sSndMsg += lzzfBP_ChangeFont("C", 85, 20); // 폰트 설정
  3312. sSndMsg += lzzfBP_FieldDataA(sBtypeW, 110, sBtype);
  3313. sSndMsg += lzzfBP_ChangeFont("F", 1, 1);
  3314. sSndMsg += lzzfBP_BarCode_Code39(sBarcodeW, 100, "N", 100, sPid); // 바코드
  3315. sSndMsg += lzzfBP_ChangeFont("C", 5, 5); // 폰트 설정
  3316. sSndMsg += lzzfBP_FieldDataA(205, 205, "*"+sPid+"*");
  3317. sSndMsg += lzzfBP_ChangeFont("C", 10, 10); // 폰트 설정
  3318. sSndMsg += lzzfBP_FieldDataA(20, 240, sDt);
  3319. sSndMsg += lzzfBP_EndFormat();
  3320. if(sCommKind == "01") {
  3321. CommAX.SendMessageToLPT(sSndMsg);
  3322. } else if(sCommKind == "02") {
  3323. var portOpenTF = ""; //오픈 성공 여부
  3324. portOpenTF = CommAX.PortOpen("true");
  3325. if(portOpenTF == "TRUE"){
  3326. CommAX.SendMessage(sSndMsg);
  3327. CommAX.PortOpen("false");
  3328. } else {
  3329. messageBox("아래 사항을 확인후 재출력해주십시오."
  3330. + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  3331. + " \n 2.케이블 확인"
  3332. + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  3333. return;
  3334. }
  3335. }
  3336. }
  3337. }
  3338. */
  3339. /**
  3340. * @group :
  3341. * @ver : 2008.01.16
  3342. * @by : 양천덕
  3343. * @---------------------------------------------------
  3344. * @type : function
  3345. * @access : public
  3346. * @desc : 수혈종료일자, 수혈종료일시 유효성 체크
  3347. * @param :
  3348. * @return :
  3349. * @---------------------------------------------------
  3350. */
  3351. function fCheckTnsEndDt(pFlag, pData){
  3352. var crtDate = getCurrentDate();
  3353. var crtTime = getCurrentTime().substr(0,4);
  3354. var sChkStrData = "";
  3355. var sChkEndData = "";
  3356. var fRow = "";
  3357. for(var i = 1 ; i <= getNodesetCount("/root/main/cond/blodreturnreqgrup/blodnoexecrecgruplist") ; i++){
  3358. if( grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("stat")) == "true"){
  3359. fRow = grd_blodreturnreqgruplist.findRow( grd_blodnoexecrecgruplist.labelmatrix(i, grd_blodnoexecrecgruplist.colRef("blodno") ) , 1, grd_blodreturnreqgruplist.colRef("blodno"), false, false);
  3360. if(sChkStrData == "" ){
  3361. sChkStrData = grd_blodreturnreqgruplist.valuematrix(fRow, grd_blodreturnreqgruplist.colRef("fstdelive2"));
  3362. }else{
  3363. if(sChkStrData < grd_blodreturnreqgruplist.valuematrix(fRow, grd_blodreturnreqgruplist.colRef("fstdelive2")) ){
  3364. sChkStrData = grd_blodreturnreqgruplist.valuematrix(fRow, grd_blodreturnreqgruplist.colRef("fstdelive2"));
  3365. }
  3366. }
  3367. }
  3368. }
  3369. if(pFlag =="SD"){
  3370. if(isValidDateTime(pData, "YYYYMMDD") == false){
  3371. messageBox("입력한 일자는 유효하지","E007");
  3372. ipt_fromdd.value = crtDate;
  3373. }else if(sChkStrData.substr(0,8) > pData ) {
  3374. messageBox("시작일자는 불출일보다 이전일 수 없습니다.","E");
  3375. ipt_fromdd.value = crtDate;
  3376. }else{
  3377. ipt_fromdd.value = pData;
  3378. }
  3379. var trsfsdt = getDateAddcTm(ipt_fromdd.value+ipt_fromtm.value, 15);
  3380. var trsfsdt2 = getDateAddcTm(ipt_fromdd.value+ipt_fromtm.value, 30);
  3381. grd_vitalsigngruplist.valuematrix(1,grd_vitalsigngruplist.colRef("recdd")) = ipt_fromdd.value ;
  3382. grd_vitalsigngruplist.valuematrix(1,grd_vitalsigngruplist.colRef("rectm")) = ipt_fromtm.value ;
  3383. grd_vitalsigngruplist.valuematrix(2, grd_vitalsigngruplist.colRef("recdd")) = trsfsdt.substr(0,8) ;
  3384. grd_vitalsigngruplist.valuematrix(2, grd_vitalsigngruplist.colRef("rectm")) = trsfsdt.substr(8, 12) ;
  3385. grd_vitalsigngruplist.valuematrix(3, grd_vitalsigngruplist.colRef("recdd")) = trsfsdt2.substr(0,8) ;
  3386. grd_vitalsigngruplist.valuematrix(3, grd_vitalsigngruplist.colRef("rectm")) = trsfsdt2.substr(8, 12) ;
  3387. }
  3388. if(pFlag =="ST"){
  3389. if(ipt_fromdd.value == ""){
  3390. messageBox("시작 일자를 먼저 입력 하십시요","E");
  3391. ipt_fromtm.value = "";
  3392. model.setfocus("ipt_fromdd");
  3393. }else if(isValidDateTime(pData, "hhmm") == false){
  3394. messageBox("입력한 시간은 유효하지","E007");
  3395. ipt_fromtm.value = crtTime;
  3396. }else if(sChkStrData.substr(0,12) > ipt_fromdd.value + "" + ipt_fromtm.value){
  3397. messageBox("시작일시는 불출일시보다 이전일 수 없습니다.","E");
  3398. ipt_fromdd.value = crtDate;
  3399. ipt_fromtm.value = crtTime;
  3400. }else{
  3401. ipt_fromtm.value = pData;
  3402. }
  3403. var trsfsdt = getDateAddcTm(ipt_fromdd.value+ipt_fromtm.value, 15);
  3404. var trsfsdt2 = getDateAddcTm(ipt_fromdd.value+ipt_fromtm.value, 30);
  3405. grd_vitalsigngruplist.valuematrix(1, grd_vitalsigngruplist.colRef("recdd")) = ipt_fromdd.value ;
  3406. grd_vitalsigngruplist.valuematrix(1, grd_vitalsigngruplist.colRef("rectm")) = ipt_fromtm.value ;
  3407. grd_vitalsigngruplist.valuematrix(2, grd_vitalsigngruplist.colRef("recdd")) = trsfsdt.substr(0,8) ;
  3408. grd_vitalsigngruplist.valuematrix(2, grd_vitalsigngruplist.colRef("rectm")) = trsfsdt.substr(8, 12) ;
  3409. if(grd_vitalsigngruplist.valuematrix(1,grd_vitalsigngruplist.colRef("signno")) == ""){
  3410. grd_vitalsigngruplist.valuematrix(3, grd_vitalsigngruplist.colRef("recdd")) = trsfsdt2.substr(0,8) ;
  3411. grd_vitalsigngruplist.valuematrix(3, grd_vitalsigngruplist.colRef("rectm")) = trsfsdt2.substr(8, 12) ;
  3412. }
  3413. }
  3414. if(pFlag =="ED"){
  3415. if(pData != ""){
  3416. if(isValidDateTime(pData, "YYYYMMDD") == false){
  3417. messageBox("입력한 일자는 유효하지","E007");
  3418. ipt_todd.value = crtDate;
  3419. }else if(ipt_fromdd.value > pData ){
  3420. messageBox("종료일자는 시작일자보다 이전일 수 없습니다.","E");
  3421. ipt_todd.value = crtDate;
  3422. }else{
  3423. ipt_todd.value = pData;
  3424. }
  3425. }
  3426. if(grd_vitalsigngruplist.valuematrix(1,grd_vitalsigngruplist.colRef("signno")) == ""){
  3427. grd_vitalsigngruplist.valuematrix(4,grd_vitalsigngruplist.colRef("recdd")) = ipt_todd.value ;
  3428. grd_vitalsigngruplist.valuematrix(4,grd_vitalsigngruplist.colRef("rectm")) = ipt_totm.value ;
  3429. }else{
  3430. grd_vitalsigngruplist.valuematrix(3,grd_vitalsigngruplist.colRef("recdd")) = ipt_todd.value ;
  3431. grd_vitalsigngruplist.valuematrix(3,grd_vitalsigngruplist.colRef("rectm")) = ipt_totm.value ;
  3432. }
  3433. }
  3434. if(pFlag =="ET"){
  3435. if(pData != ""){
  3436. if(ipt_todd.value == ""){
  3437. messageBox("종료 일자를 먼저 입력 하십시요","E");
  3438. ipt_totm.value = "";
  3439. model.setfocus("ipt_todd");
  3440. }else if(isValidDateTime(pData, "hhmm") == false){
  3441. messageBox("입력한 시간은 유효하지","E007");
  3442. ipt_totm.value = crtTime;
  3443. }else if(ipt_fromdd.value + "" + ipt_fromtm.value > ipt_todd.value + "" + pData){
  3444. messageBox("종료일시는 시작일시보다 이전일 수 없습니다.","E");
  3445. ipt_todd.value = crtDate;
  3446. ipt_totm.value = crtTime;
  3447. }else{
  3448. ipt_totm.value = pData;
  3449. }
  3450. }
  3451. if(grd_vitalsigngruplist.valuematrix(1,grd_vitalsigngruplist.colRef("signno")) == ""){
  3452. grd_vitalsigngruplist.valuematrix(4,grd_vitalsigngruplist.colRef("recdd")) = ipt_todd.value ;
  3453. grd_vitalsigngruplist.valuematrix(4,grd_vitalsigngruplist.colRef("rectm")) = ipt_totm.value ;
  3454. }else{
  3455. grd_vitalsigngruplist.valuematrix(3,grd_vitalsigngruplist.colRef("recdd")) = ipt_todd.value ;
  3456. grd_vitalsigngruplist.valuematrix(3,grd_vitalsigngruplist.colRef("rectm")) = ipt_totm.value ;
  3457. }
  3458. }
  3459. }
  3460. /**
  3461. * @group :
  3462. * @ver : 2008.01.16
  3463. * @by : 양천덕
  3464. * @---------------------------------------------------
  3465. * @type : function
  3466. * @access : public
  3467. * @desc : 외래, 입원 조회 대상 변경
  3468. * @param :
  3469. * @return :
  3470. * @---------------------------------------------------
  3471. */
  3472. function fChangeIOflag(sparam, sflag){
  3473. var pidblodflag = '';
  3474. if(ipt_pid2.value != ""){
  3475. pidblodflag = 'pid';
  3476. }else if (ipt_blodno.value !="") {
  3477. pidblodflag = 'blod';
  3478. }
  3479. //if(getPatientInfoDetail("pid") == ""){
  3480. //resetInstanceNode로 변경_20090423_SMY
  3481. //model.removenodeset("/root/temp/cond/roomcdgrup");
  3482. //model.removenodeset("/root/temp/cond/patientgrup");
  3483. model.resetInstanceNode("/root/temp/cond/roomcdgrup");
  3484. model.resetInstanceNode("/root/temp/cond/patientgrup");
  3485. fClearChildNode("/root/main/cond/patientgrupInfo/patientgruplistInfo");
  3486. //model.setValue(opt_patientnm.attribute("ref"), "" );
  3487. //model.setValue(opt_sexage1.attribute("ref"), "" );
  3488. //model.setValue(opt_allseq.attribute("ref"), "" );
  3489. //model.setValue(opt_inj.attribute("ref"), "" );
  3490. //model.setValue(opt_signno.attribute("ref"), "" );
  3491. cmb_wardcdgruplist2.value = "";
  3492. cmb_wardcdgruplist.value = "";
  3493. model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist" , "");
  3494. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm" , "");
  3495. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage" , "");
  3496. //}
  3497. if(sparam =="1"){
  3498. if(sflag == "O"){
  3499. fParam("OPRC1");
  3500. }else{
  3501. fParam("IPRC1");
  3502. }
  3503. model.removenodeset("/root/main/cond/execdetlgrup/execdetlgruplist");
  3504. model.removenodeset("/root/main/cond/delivedetlgrup/delivedetlgruplist");
  3505. model.removenodeset("/root/main/cond/patcmtgrup/patcmtgruplist");
  3506. }
  3507. if(sparam =="2"){
  3508. if(sflag == "O"){
  3509. fParam("OPRC2");
  3510. }else{
  3511. fParam("IPRC2");
  3512. }
  3513. model.removenodeset("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist");
  3514. model.removenodeset("/root/main/cond/blodreturnreqgrup/blodnoexecrecgruplist");
  3515. model.removenodeset("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist");
  3516. }
  3517. fTnsRecInit();
  3518. model.refresh();
  3519. }
  3520. /**
  3521. * @group :
  3522. * @ver : 2008.01.28
  3523. * @by : 양천덕
  3524. * @---------------------------------------------------
  3525. * @type : function
  3526. * @access : public
  3527. * @desc : 에러, 중단 시 혈액불출내역 값 셋팅 초기화
  3528. * @param :
  3529. * @return :
  3530. * @---------------------------------------------------
  3531. */
  3532. function fReturnData(sParam){
  3533. var blodnodupSource = new Array();
  3534. if(cap_blodno.value.length > 10){
  3535. blodnodupSource = cap_blodno.value.split(",") ;
  3536. } else {
  3537. blodnodupSource[0] = cap_blodno.value ;
  3538. }
  3539. if(sParam == "Y"){
  3540. for(var i=0; i<= blodnodupSource.length -1 ; i++){
  3541. for(var n=1; n <= grd_blodreturnreqgruplist.rows ; n++){
  3542. if( blodnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/blodno") ) {//혈액번호와 같으면 그리드에 셋팅
  3543. if(model.getValue(xBlodReturnReqGrupListPath+"["+n+"]/reqflagstat") == "Y"){
  3544. grd_blodreturnreqgruplist.valuematrix(n,1) = 'false' ;
  3545. }else{
  3546. grd_blodreturnreqgruplist.valuematrix(n,1) = 'false' ;
  3547. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("reqflag")) = "" ;
  3548. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("returnabandondate")) = "" ;
  3549. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("etcprcpresncd")) = "" ;
  3550. grd_blodreturnreqgruplist.valuematrix(n, grd_blodreturnreqgruplist.colRef("clinccmtcnts")) = "" ;
  3551. }
  3552. }
  3553. }
  3554. }
  3555. }else{
  3556. for(var i=0; i<= blodnodupSource.length -1 ; i++){
  3557. for(var x=grd_blodreturnreqgruplist.fixedRows; x <= grd_blodreturnreqgruplist.rows ; x++){
  3558. if( blodnodupSource[i] == model.getValue(xBlodReturnReqGrupListPath+"["+x+"]/blodno") ) {//혈액번호와 같으면 그리드에 셋팅
  3559. grd_blodreturnreqgruplist.valuematrix(x, 1) = 'false' ;
  3560. grd_blodreturnreqgruplist.valuematrix(x, grd_blodreturnreqgruplist.colRef("reqflag") ) = model.getValue("/root/blodrtninfo/blodreturnreqgruplist[blodno ='"+blodnodupSource[i]+"']/reqflag") ;
  3561. grd_blodreturnreqgruplist.valuematrix(x, grd_blodreturnreqgruplist.colRef("returnabandondate")) = model.getValue("/root/blodrtninfo/blodreturnreqgruplist[blodno ='"+blodnodupSource[i]+"']/returnabandondate") ;
  3562. grd_blodreturnreqgruplist.valuematrix(x, grd_blodreturnreqgruplist.colRef("etcprcpresncd") ) = model.getValue("/root/blodrtninfo/blodreturnreqgruplist[blodno ='"+blodnodupSource[i]+"']/etcprcpresncd") ;
  3563. grd_blodreturnreqgruplist.valuematrix(x, grd_blodreturnreqgruplist.colRef("clinccmtcnts") ) = model.getValue("/root/blodrtninfo/blodreturnreqgruplist[blodno ='"+blodnodupSource[i]+"']/clinccmtcnts") ;
  3564. }
  3565. }
  3566. }
  3567. }
  3568. }
  3569. /**
  3570. * @group :
  3571. * @ver : 2008.02.21
  3572. * @by : 양천덕
  3573. * @---------------------------------------------------
  3574. * @type : function
  3575. * @access : public
  3576. * @desc : 수혈간호기록 리스트 조회 부분
  3577. * @param :
  3578. * @return :
  3579. * @---------------------------------------------------
  3580. */
  3581. function fSrchTnsList(sParam){
  3582. var pidblodflag = '';
  3583. if(ipt_pid2.value != ""){
  3584. pidblodflag = 'pid';
  3585. }else if (ipt_blodno.value !="") {
  3586. pidblodflag = 'blod';
  3587. }else{
  3588. messageBox("등록번호를 ","C001");
  3589. model.setfocus("ipt_pid2");
  3590. return;
  3591. }
  3592. fTnsRecInit();
  3593. if(sParam == "button"){
  3594. fGetPatientInfo("pid","case2"); // 환자 개인정보를 가져온다(병동/병실/환자 셋팅)
  3595. }
  3596. if( model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") == "" && model.getValue("/root/main/cond/blodno") == "" ){
  3597. messageBox("환자 정보가 존재하지 않습니다.","E");
  3598. model.removenodeset("/root/temp/cond/roomcdgrup");
  3599. model.removenodeset("/root/temp/cond/patientgrup");
  3600. fClearChildNode("/root/main/cond/patientgrupInfo/patientgruplistInfo");
  3601. cmb_wardcdgruplist2.value = "";
  3602. cmb_wardcdgruplist.value = "";
  3603. model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist" , "");
  3604. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm" , "");
  3605. model.setValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage" , "");
  3606. model.removenodeset("/root/main/cond/execdetlgrup/execdetlgruplist");
  3607. model.removenodeset("/root/main/cond/delivedetlgrup/delivedetlgruplist");
  3608. model.removenodeset("/root/main/cond/patcmtgrup/patcmtgruplist");
  3609. model.removenodeset("/root/main/cond/blodreturnreqgrup/blodreturnreqgruplist");
  3610. model.removenodeset("/root/main/cond/blodreturnreqgrup/blodnoexecrecgruplist");
  3611. model.removenodeset("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist");
  3612. model.refresh();
  3613. model.setfocus("ipt_pid2");
  3614. return;
  3615. }
  3616. fBlodDeliveList(pidblodflag); //혈액불출 리스트 조회버튼
  3617. //fGetBlodNoExecRecList(pidblodflag); //수혈 미수행 내역 리스트
  3618. //fGetBlodExecRecList(pidblodflag); //수혈 수행 내역 리스트
  3619. //fBlodColChg(); //컬럼속성 변경
  3620. model.refresh();
  3621. }
  3622. /**
  3623. * @group :
  3624. * @ver : 2008.02.21
  3625. * @by : 양천덕
  3626. * @---------------------------------------------------
  3627. * @type : function
  3628. * @access : public
  3629. * @desc : 수혈간호기록 리스트 조회 부분
  3630. * @param :
  3631. * @return :
  3632. * @---------------------------------------------------
  3633. */
  3634. function fGetPatCmtList(){
  3635. if( ipt_pid.value == "" ){
  3636. model.removenode("/root/main/cond/delivedetlgrup");
  3637. model.refresh();
  3638. return;
  3639. }
  3640. model.removenode("/root/send");
  3641. model.makeValue("/root/send/prcpddfrom", ipt_prcpddfrom.value);
  3642. model.makeValue("/root/send/prcpddto", ipt_prcdddto.value);
  3643. model.makeValue("/root/send/pid", ipt_pid.value);
  3644. if(submit("TRMNR01028")){
  3645. }
  3646. }
  3647. /**
  3648. * @group :
  3649. * @ver : 2008.08.18
  3650. * @by : 양천덕
  3651. * @---------------------------------------------------
  3652. * @type : function
  3653. * @access : public
  3654. * @desc : 날짜 계산(기준일자를 기준으로 입력분만큼 이후 날짜를 찾아오기)
  3655. * @param :
  3656. * @return :
  3657. * @---------------------------------------------------
  3658. */
  3659. function getDateAddcTm(inputday,addend){
  3660. var backDate ="";
  3661. var rt = 0;
  3662. var yyyy = inputday.substring(0,4) +"";
  3663. var mm = inputday.substring(4,6) +"";
  3664. var dd = inputday.substring(6,8) +"";
  3665. var hh = inputday.substring(8,10) +"";
  3666. var mi = inputday.substring(10,12) +"";
  3667. var startDate = new Date(yyyy,(eval(mm)-1),dd, hh, mi);
  3668. startDate.setTime(startDate.getTime()+(60000*addend));
  3669. NowYear = startDate.getYear();// 년
  3670. NowMonth = startDate.getMonth()+1;// 월
  3671. NowDay = startDate.getDate(); // 일
  3672. NowHours = startDate.getHours() ; // 시
  3673. NowMinutes = startDate.getMinutes() ; // 분
  3674. backDate += NowYear ; //년도
  3675. if (NowMonth < 10 ) backDate += "0" + NowMonth ;
  3676. else backDate += (startDate.getMonth() + 1);
  3677. if (NowDay < 10 ) backDate += "0" + NowDay ;
  3678. else backDate += (startDate.getDate());
  3679. if (NowHours < 10 ) backDate += "0" + NowHours ;
  3680. else backDate += (startDate.getHours());
  3681. if(NowMinutes < 10 ) backDate += "0" + NowMinutes ;
  3682. else backDate += (startDate.getMinutes());
  3683. return backDate ;
  3684. }
  3685. /**
  3686. * @group :
  3687. * @ver : 2008.09.20
  3688. * @by : 양천덕
  3689. * @---------------------------------------------------
  3690. * @type : function
  3691. * @access : public
  3692. * @desc : 문자입력 제한
  3693. * @param :
  3694. * @return :
  3695. * @---------------------------------------------------
  3696. */
  3697. function isNumber(str) {
  3698. str += ''; // 문자열로 변환
  3699. str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
  3700. if (str == '' || isNaN(str)) return false;
  3701. return true;
  3702. }
  3703. /**
  3704. * @group :
  3705. * @ver : 2008.10.17
  3706. * @by : 양천덕
  3707. * @---------------------------------------------------
  3708. * @type : function
  3709. * @access : public
  3710. * @desc : 혈액 반납/폐기 의뢰 취소 기능
  3711. * @param :
  3712. * @return :
  3713. * @---------------------------------------------------
  3714. */
  3715. function fBlodRtnCncl(pParam){
  3716. var sChkRow = 0;
  3717. var sChkBlodRtnFlag = "";
  3718. var sDisUseYn = "N";//폐기
  3719. var sDisUseResnCd = "";
  3720. if(pParam == ""){
  3721. messageBox("반납/폐기 의뢰 취소할 혈액번호를 입력하십시요", "E");
  3722. model.setFocus("ipt_blodrtncncl");
  3723. return;
  3724. }
  3725. for(var i = grd_blodreturnreqgruplist.fixedRows ; i < grd_blodreturnreqgruplist.Rows ; i++){
  3726. if(grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("blodno")) == pParam &&
  3727. grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("reqflagstat")) == "N" ){
  3728. if(sChkRow == 0){
  3729. sChkRow = i;
  3730. sChkBlodRtnFlag = grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("reqflag"));
  3731. }else{
  3732. var msg = messageBox("반납/폐기 의뢰중인 동일한 혈액번호가 존재합니다.\n\n"+grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("prcpnm"))+" 혈액을 반납/폐기 의뢰취소 하시겠습니까?", "Q");
  3733. if(msg == 6){
  3734. sChkRow = i;
  3735. sChkBlodRtnFlag = grd_blodreturnreqgruplist.valueMatrix(i, grd_blodreturnreqgruplist.colRef("reqflag"));
  3736. }
  3737. }
  3738. }
  3739. }
  3740. if(sChkRow == 0){
  3741. messageBox("의뢰취소를 할 수 없는 혈액번호입니다.", "E");
  3742. ipt_blodrtncncl.value = "";
  3743. ipt_blodrtncncl.refresh();
  3744. model.setFocus("ipt_blodrtncncl");
  3745. //return;
  3746. }else{
  3747. /*
  3748. * <ul>
  3749. * <li> ioflag : 외래/입원구분 (I/O)
  3750. * <li> reqflag : 의뢰구분 (1:반납의뢰, 2:반납완료, 3:폐기의뢰, 4:폐기완료, 5:반납/폐기의뢰 취소)
  3751. * <li> prcpdd : 처방일자 (원 처방)
  3752. * <li> prcpno : 처방번호 (원 처방)
  3753. * <li> prcphistno : 처방이력번호 (원 처방)
  3754. * <li> instcd : 기관코드 (원 처방)
  3755. * <li> etcprcpresncd : 반납 및 폐기사유코드
  3756. * <li> clinccmtcnts : 반납 및 폐기기타사유
  3757. * <li> deptcd : 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  3758. * <li> deptnm : 부서명 (입력자 또는 로그인한 사용자의 부서명)
  3759. * <li> userid : 사용자ID (입력자 또는 로그인한 사용자ID)
  3760. * <li> usernm : 사용자명 (입력자 또는 로그인한 사용자명)
  3761. */
  3762. model.removeNodeset("/root/send");
  3763. model.makeValue("/root/send/ioparam" , model.getValue("/root/main/cond/ioflag"));
  3764. model.makeValue("/root/send/prcpdd" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("prcpdd")));
  3765. model.makeValue("/root/send/prcpno" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("prcpno")));
  3766. model.makeValue("/root/send/prcphistno" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("prcphistno")));
  3767. model.makeValue("/root/send/instcd" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("instcd")));
  3768. model.makeValue("/root/send/etcprcpresncd" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("etcprcpresncd")));
  3769. model.makeValue("/root/send/clinccmtcnts" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("clinccmtcnts")));
  3770. model.makeValue("/root/send/reqflag" , "5" );
  3771. model.makeValue("/root/send/reqflagstat" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("reqflagstat")));
  3772. model.makeValue("/root/send/returnabandondate" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("returnabandondate")));
  3773. model.makeValue("/root/send/pid" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("pid")));
  3774. model.makeValue("/root/send/blodno" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("blodno")));
  3775. model.makeValue("/root/send/blodbarcd" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("blodbarcd")));
  3776. model.makeValue("/root/send/execprcpuniqno" , grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("execprcpuniqno")));
  3777. var pDelPrcpNo = grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("prcpno"));
  3778. var pDelBlodNo = grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("blodno"));
  3779. if ( grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("reqflag")) == "1" ){//반납
  3780. sDisUseYn = "N"
  3781. } else {
  3782. sDisUseYn = "Y"
  3783. }
  3784. model.makeValue("/root/send/disuseyn" , sDisUseYn );//폐기여부
  3785. var msg1 ="";
  3786. var msgtext = "혈액번호 : "+grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("blodno")) +" ["+grd_blodreturnreqgruplist.valueMatrix(sChkRow, grd_blodreturnreqgruplist.colRef("prcpnm")) +"]";
  3787. if(sChkBlodRtnFlag == "2"){
  3788. msg1 = messageBox(msgtext + " 혈액을 반납/폐기 의뢰 취소 하겠습니다.\n\n잔여폐기 의뢰 된 혈액의 수혈기록은 임시저장 상태로 변경됩니다.","Q003");
  3789. }else{
  3790. msg1 = messageBox(msgtext + " 혈액을 반납/폐기 의뢰 취소 하겠습니다.","Q003");
  3791. }
  3792. if(msg1 == 6){
  3793. //var sFindRecRow = grd_blodreturnreqgruplist.findRow(pParam, 0, grd_blodreturnreqgruplist.colRef("blodno"));
  3794. //model.makeValue("/root/send/recdelflag" , "Y");
  3795. model.makeValue("/root/send/tnscarerecseq" , model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist[ prcpno = '"+pDelPrcpNo+"' and blodno = '"+pDelBlodNo+"']/tnscarerecseq") );
  3796. model.makeValue("/root/send/prcpcd" , model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist[ prcpno = '"+pDelPrcpNo+"' and blodno = '"+pDelBlodNo+"']/prcpcd") );
  3797. model.makeValue("/root/send/signno" , model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist[ prcpno = '"+pDelPrcpNo+"' and blodno = '"+pDelBlodNo+"']/signno") );
  3798. }else{
  3799. model.removeNodeset("/root/send");
  3800. model.setFocus("ipt_blodrtncncl");
  3801. return;
  3802. }
  3803. model.removeNodeset("/root/temp/rtninfo");
  3804. submit("TXMNR01036", false);
  3805. if(getNodesetCount("/root/temp/rtninfo/rtnlist") > 0){
  3806. if(model.getValue("/root/temp/rtninfo/rtnlist/rtnflag") == "1"){
  3807. //messageBox("반납 / 폐기 의뢰 취소가 완료되었습니다.", "I");
  3808. ipt_blodrtncncl.value = "";
  3809. }else{
  3810. messageBox("반납/폐기 의뢰 취소 처리를 할 수 없는 상태입니다.", "C");
  3811. }
  3812. }else{
  3813. messageBox("의뢰 취소 처리를 실패하였습니다.", "E");
  3814. }
  3815. }
  3816. fBlodDeliveList('pid');// 혈액불출내역 리스트
  3817. fTnsRecInit(); //수혈간호기록 초기화
  3818. model.refresh();
  3819. model.setFocus("ipt_blodrtncncl");
  3820. }
  3821. /**
  3822. * @group :
  3823. * @ver : 2008.10.20
  3824. * @by : 양천덕
  3825. * @---------------------------------------------------
  3826. * @type : function
  3827. * @access : public
  3828. * @desc : 기록 삭제 기능
  3829. * @param :
  3830. * @return :
  3831. * @---------------------------------------------------
  3832. */
  3833. function fDelTempRec(){
  3834. //폐기 확정된 혈액의 경우 삭제버튼은 비활성화되므로 아래 조건에서 삭제버튼 클릭하는경우는 폐기의뢰의 경우
  3835. if( model.getValue(xTnsNurseRecPath+"/discontinuyn") =="Y" ) {
  3836. messageBox("잔여폐기 의뢰된 혈액입니다. 반납폐기의뢰 취소 후 기록삭제가 ","I006");
  3837. return;
  3838. }
  3839. if ( messageBox("선택한 기록내역을 ","Q001") != "6" ){//삭제하시겠습니까?
  3840. return;
  3841. }
  3842. var delBlodRow = 0;
  3843. var sDelBoldNo = cap_blodno.value.split(",") ;
  3844. var sDelPrcpNo = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno").split(",") ;
  3845. var sDelSignNo = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno").split(",") ;
  3846. var rtnBlodList = "";
  3847. model.removeNodeSet("/root/send");
  3848. if( !isNull(model.getValue(xTnsNurseRecPath+"/tnscarerecseq")) && sDelBoldNo.length == 1 ){
  3849. //인증저장이고 하나의 혈액번호가 선택되어 삭제 할경우 함께 기록된 혈액번호가 존재하는지 체크
  3850. for( var idx = 1 ; idx <= grd_blodexecrecgruplist.rows ; idx++ ){
  3851. if ( model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/stat") == "true" &&
  3852. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/blodno") == sDelBoldNo[0] &&
  3853. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/prcpno") == sDelPrcpNo[0] ) {
  3854. delBlodRow = idx;
  3855. break;
  3856. }
  3857. }
  3858. rtnBlodList = fExistsExecRecTogether(delBlodRow,"D");
  3859. sDelBoldNo = cap_blodno.value.split(",") ;
  3860. sDelPrcpNo = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno").split(",") ;
  3861. sDelSignNo = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno").split(",") ;
  3862. }
  3863. if ( !isNull(sDelSignNo[0]) ){
  3864. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
  3865. if(Sign.signprocess() == true){
  3866. // 전자인증 관련 환자 인적 정보를 보내줌.
  3867. model.makeValue("/root/send/delreclist/status", "d"); //삭제 상태
  3868. model.makeValue("/root/send/delreclist/formcd","0000002460" ); //각 기록지별 서식코드
  3869. model.makeValue("/root/send/delreclist/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  3870. model.makeValue("/root/send/delreclist/signbfcnts", "삭제");
  3871. model.makeValue("/root/send/delreclist/recdd",getCurrentDate());// 실제 기록이 이루어진 기록일자
  3872. model.makeValue("/root/send/delreclist/rectm",getCurrentTime());// 실제 기록이 이루어진 기록일자
  3873. model.makeValue("/root/send/signdata/screenid", getScreenID());
  3874. }else{
  3875. return;
  3876. }
  3877. }
  3878. for(var i = 0 ; i <= sDelBoldNo.length-1 ; i++){
  3879. model.makeValue("/root/send/delreclist["+(i+1)+"]/pid" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/pid") );
  3880. model.makeValue("/root/send/delreclist["+(i+1)+"]/tnscarerecseq" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/tnscarerecseq") );
  3881. model.makeValue("/root/send/delreclist["+(i+1)+"]/blodno" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/blodno") );
  3882. model.makeValue("/root/send/delreclist["+(i+1)+"]/prcpcd" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/prcpcd") );
  3883. model.makeValue("/root/send/delreclist["+(i+1)+"]/prcpno" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/prcpno") );
  3884. model.makeValue("/root/send/delreclist["+(i+1)+"]/prcpdd" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/prcpdd") );
  3885. model.makeValue("/root/send/delreclist["+(i+1)+"]/ioflag" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/ioflag") );
  3886. model.makeValue("/root/send/delreclist["+(i+1)+"]/signno" , model.getValue(xBlodExecRecGrupListPath+"[blodno='"+ sDelBoldNo[i]+"' and prcpno ='"+sDelPrcpNo[i]+"']/signno") );
  3887. }
  3888. submit("TXMNR01037", false);
  3889. var rtncount = getNodesetCount("/root/temp/rtnlist/rtninfo");
  3890. if(rtncount != 0){
  3891. var rtnmsg = "";
  3892. for(var i = 1 ; i <= rtncount ; i++){
  3893. rtnmsg += model.getValue("/root/temp/rtnlist/rtninfo["+i+"]/blodno") + " " ;
  3894. }
  3895. rtnmsg += "혈액에 대한 수혈기록 삭제를 할 수 없습니다.";
  3896. messageBox(rtnmsg, "E");
  3897. } else {
  3898. if ( rtnBlodList != "" && sDelPrcpNo.length == 1){
  3899. messageBox("필요시 함께 기록한 수혈간호기록을 수정하십시오","I");
  3900. }
  3901. }
  3902. fBlodDeliveList('pid');// 혈액불출내역 리스트
  3903. fTnsRecInit(); //수혈간호기록 초기화
  3904. model.refresh();
  3905. }
  3906. /**
  3907. * @group :
  3908. * @ver : 2008.10.20
  3909. * @by : 양천덕
  3910. * @---------------------------------------------------
  3911. * @type : function
  3912. * @access : public
  3913. * @desc : Multi 수혈 기록 혈액 Alias 체크
  3914. * @param :
  3915. * @return :
  3916. * @---------------------------------------------------
  3917. */
  3918. function fChkPrcpAlias(){
  3919. if(grd_blodnoexecrecgruplist.valueMatrix(grd_blodnoexecrecgruplist.row, grd_blodnoexecrecgruplist.colRef("stat")) == "true"){
  3920. var sPrcpAlias = grd_blodnoexecrecgruplist.valueMatrix(grd_blodnoexecrecgruplist.row, grd_blodnoexecrecgruplist.colRef("prcpalias"));
  3921. for(var i = grd_blodnoexecrecgruplist.fixedRows ; i < grd_blodnoexecrecgruplist.Rows - grd_blodnoexecrecgruplist.fixedRows ; i++){
  3922. if(grd_blodnoexecrecgruplist.valueMatrix(i, grd_blodnoexecrecgruplist.colRef("prcpalias")) != sPrcpAlias &&
  3923. grd_blodnoexecrecgruplist.valueMatrix(i, grd_blodnoexecrecgruplist.colRef("stat")) == "true" ){
  3924. messageBox("선택한 혈액 처방은 기선택된 혈액 처방과 Multi 기록을", "E001");
  3925. grd_blodnoexecrecgruplist.valueMatrix(grd_blodnoexecrecgruplist.row, grd_blodnoexecrecgruplist.colRef("stat")) = "FALSE";
  3926. i = grd_blodnoexecrecgruplist.Rows;
  3927. return;
  3928. }
  3929. }
  3930. fOtherRecListUncheck("noexec");
  3931. }
  3932. }
  3933. /**
  3934. * @group :
  3935. * @ver : 2010.01.26
  3936. * @by : 성미연
  3937. * @---------------------------------------------------
  3938. * @type : function
  3939. * @access : public
  3940. * @desc : 수혈부작용 선택, 선택취소
  3941. * @param :
  3942. * @return :
  3943. * @---------------------------------------------------
  3944. */
  3945. function fSelctTnssideEffect(ReadYN){
  3946. //'없음' 체크 선택시 그 이외의 선택항목들을 disable하도록 수정_20100126_SMY
  3947. var sItem = model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnssideeffect");
  3948. ipt_tnssideeffectetc.disabled = true;
  3949. if(fSearchChar(sItem, "01") == true){ //없음(01)이 선택된 경우
  3950. //ReadYN : Y 기존에 입력되어 있는 데이터 중에 없음을 포함하여 중복체크되어 있는 데이터가 있으므로 없음만 체크된 경우 disable함
  3951. if(ReadYN == "Y"){
  3952. if(sItem == "01"){
  3953. selectAll(true);
  3954. ipt_tnssideeffectetc.disabled = true;
  3955. }
  3956. }else{
  3957. selectAll(true);
  3958. ipt_tnssideeffectetc.disabled = true;
  3959. }
  3960. } else if(fSearchChar(sItem, "07") == true){ //기타(07)이 선택된 경우
  3961. ipt_tnssideeffectetc.disabled = false;
  3962. } else if(fSearchChar(sItem, "07") == false){ //기타(07)이 선택해제된 경우
  3963. ipt_tnssideeffectetc.disabled = true;
  3964. ipt_tnssideeffectetc.value = "";
  3965. } else if(sItem == ""){
  3966. selectAll(false);
  3967. ipt_tnssideeffectetc.disabled = true;
  3968. ipt_tnssideeffectetc.value = "";
  3969. }
  3970. if(fSearchChar(sItem, "01") == false){ //없음(01)이 선택해제된 경우
  3971. chk_tnssideeffect.disabled = false;
  3972. }
  3973. model.refresh();
  3974. }
  3975. /**
  3976. * @group :
  3977. * @ver : 2010.01.26
  3978. * @by : 성미연
  3979. * @---------------------------------------------------
  3980. * @type : function
  3981. * @access : public
  3982. * @desc : 수혈부작용 체크시 disable/able
  3983. * @param :
  3984. * @return :
  3985. * @---------------------------------------------------
  3986. */
  3987. function selectAll(flag){
  3988. for(var i= 1; i < chk_tnssideeffect.length; i++){
  3989. chk_tnssideeffect.deselect(i);
  3990. chk_tnssideeffect.item(i).disabled = flag;
  3991. }
  3992. model.resetInstanceNode("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/tnssideeffectetc");
  3993. }
  3994. /**
  3995. * @desc : String에서 특정 문자 검사
  3996. * @
  3997. * @param : trgtStr - 타켓이 되는 String문자열
  3998. * : fndCh - 찾을 Char문자
  3999. *
  4000. * @return : true/false
  4001. * @author : 성미연
  4002. * @---------------------------------------------------
  4003. */
  4004. function fSearchChar(sItem, chFndChar){
  4005. var sItemList = sItem.split(" ");
  4006. for(var i = 0 ; i < sItemList.length ; i ++){
  4007. if(sItemList[i] == chFndChar){
  4008. return true;
  4009. }
  4010. }
  4011. return false;
  4012. }
  4013. /**
  4014. * @desc : 1pint량으로 총투여량 계산
  4015. * @
  4016. * @param : drugqty 총투여량
  4017. * :
  4018. *
  4019. * @return :
  4020. * @author : khj
  4021. * @---------------------------------------------------
  4022. */
  4023. function fSumQtyCalc(drugqty){
  4024. var blodcnt = (cap_blodno.value.split(",")).length;
  4025. if ( isNull(model.getValue(xTnsNurseRecPath+"/onepintqty")) ){
  4026. if ( !isNull(drugqty) ){
  4027. model.setValue(xTnsNurseRecPath+"/drugqty" , drugqty);
  4028. }else {
  4029. model.setValue(xTnsNurseRecPath+"/drugqty" , "");
  4030. }
  4031. model.setValue(xTnsNurseRecPath+"/onepintqty" , "");
  4032. } else {
  4033. model.setValue(xTnsNurseRecPath+"/drugqty" , eval(model.getValue(xTnsNurseRecPath+"/onepintqty")) * blodcnt );
  4034. }
  4035. ipt_drugqty.refresh();
  4036. }
  4037. /**
  4038. * @desc : 체크박스 선택시 다른 기록내역의 체크박스는 uncheck처리
  4039. * @
  4040. * @param : checkTarget: 체크박스 클릭한 목록 exec:수행 noexec:미수행
  4041. * :
  4042. *
  4043. * @return :
  4044. * @author : khj
  4045. * @---------------------------------------------------
  4046. */
  4047. function fOtherRecListUncheck(checkTarget){
  4048. var xUncheckTargetPath = "";
  4049. var xUncheckTargetGrid = grd_blodexecrecgruplist;
  4050. if ( checkTarget =="exec" ){
  4051. xUncheckTargetPath = "/root/main/cond/blodreturnreqgrup/blodnoexecrecgruplist" ;
  4052. xUncheckTargetGrid = grd_blodnoexecrecgruplist;
  4053. } else {
  4054. xUncheckTargetPath = "/root/main/cond/blodreturnreqgrup/blodexecrecgruplist" ;
  4055. xUncheckTargetGrid = grd_blodexecrecgruplist;
  4056. }
  4057. for(var n=1; n <= xUncheckTargetGrid.rows ; n++){
  4058. if ( model.getValue(xUncheckTargetPath + "["+ n +"]/stat") == "true" ){
  4059. model.setValue(xUncheckTargetPath + "["+ n +"]/stat", 'false' );
  4060. }
  4061. }
  4062. xUncheckTargetGrid.refresh();
  4063. }
  4064. /**
  4065. * @desc : 수행기록내역에서 선택된 혈액번호와 함께 기록된 내역이 존재하는지 체크
  4066. * @
  4067. * @param : pBlodNo : 선택한 혈액번호, pFlag = U(수정시 일괄수정하므로 체크박스 체크), D(all삭제여부를 컨펌받으므로 체크박스 체크안함.) 수정삭제구분
  4068. * :
  4069. *
  4070. * @return : rBlodList : 함께 기록된 혈액번호
  4071. * @author : khj
  4072. * @---------------------------------------------------
  4073. */
  4074. function fExistsExecRecTogether(pRow, pFlag ){
  4075. var sRow = pRow;
  4076. if ( sRow < 1 ){
  4077. return "";
  4078. }
  4079. var sRowStratTime = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/fstrgstdt3");
  4080. var sRowEndTime = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnsendddtm");
  4081. var sRowTnsstrnurseid = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnsstrnurseid");
  4082. var sRowTnsendnurseid = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnsendnurseid");
  4083. var sRowSmlqtytnsyn = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/smlqtytnsyn");
  4084. var sRowTnssideeffectetc = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/tnssideeffectetc");
  4085. var sRowDiscontinuyn = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/discontinuyn");
  4086. var sRowPrcpcd = model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ sRow +"]/prcpcd"); //170331_AYS_수혈간호기록 처방확인
  4087. var rBlodList = "";
  4088. var sPrcpNoList = "";
  4089. var sPrcpNmList = "";
  4090. var sAboRhList = "";
  4091. var sSignNoList = "";
  4092. var sReturnGridBlodList = "";
  4093. for( var idx = 1 ; idx <= grd_blodexecrecgruplist.rows ; idx++ ){
  4094. if ( sRow != idx &&
  4095. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/fstrgstdt3") == sRowStratTime &&
  4096. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/tnsendddtm") == sRowEndTime &&
  4097. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/tnsstrnurseid") == sRowTnsstrnurseid &&
  4098. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/tnsendnurseid") == sRowTnsendnurseid &&
  4099. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/smlqtytnsyn") == sRowSmlqtytnsyn &&
  4100. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/tnssideeffectetc") == sRowTnssideeffectetc &&
  4101. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/discontinuyn") == sRowDiscontinuyn &&
  4102. model.getValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/prcpcd") == sRowPrcpcd ){ //170331_AYS_수혈간호기록 처방확인
  4103. rBlodList += grd_blodexecrecgruplist.labelmatrix(idx, grd_blodexecrecgruplist.colRef("blodno")) + "," ;
  4104. sPrcpNmList += grd_blodexecrecgruplist.labelmatrix(idx, grd_blodexecrecgruplist.colRef("prcpnm")) + "," ;
  4105. sAboRhList += grd_blodexecrecgruplist.labelmatrix(idx, grd_blodexecrecgruplist.colRef("abo"))
  4106. + grd_blodexecrecgruplist.labelmatrix(idx, grd_blodexecrecgruplist.colRef("rh")) + "," ;
  4107. sSignNoList += grd_blodexecrecgruplist.labelmatrix(idx, grd_blodexecrecgruplist.colRef("signno")) + "," ;
  4108. sPrcpNoList += grd_blodexecrecgruplist.labelmatrix(idx, grd_blodexecrecgruplist.colRef("prcpno")) + "," ;
  4109. //if ( model.getValue(xBlodReturnReqGrupListPath + "[]/)
  4110. if ( pFlag == "U" ){
  4111. model.setValue("/root/main/cond/blodreturnreqgrup/blodexecrecgruplist["+ idx +"]/stat" , 'true');
  4112. }
  4113. }
  4114. }
  4115. if ( pFlag == "U" ){
  4116. if ( !isNull(rBlodList) ){
  4117. messageBox("함께 기록된 수혈간호기록이 존재합니다.( 혈액번호 : " + rBlodList.substring(0,rBlodList.length -1 )
  4118. + ")\n\n함께 기록된 수혈간호기록도 수정됩니다.\n\n부분수정은 기록삭제 이후에만 ","I006");
  4119. model.setValue(cap_blodno.attribute("ref"), rBlodList + model.getValue(cap_blodno.attribute("ref")) );
  4120. model.setValue(cap_blodnm.attribute("ref"), sPrcpNmList + model.getValue(cap_blodnm.attribute("ref")) );
  4121. model.setValue(cap_aborh.attribute("ref"), sAboRhList + model.getValue(cap_aborh.attribute("ref")) );
  4122. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno", sPrcpNoList+ model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno") );
  4123. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno", sSignNoList+ model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno") );
  4124. }
  4125. } else if ( pFlag == "D" ){
  4126. if ( !isNull(rBlodList) ){
  4127. if( messageBox("함께 기록된 수혈간호기록이 존재합니다.( 혈액번호 : " + rBlodList.substring(0,rBlodList.length -1 )
  4128. + ")\n함께 기록 ","Q001") == 6 ){//삭제 하시겠습니까 ? yes=6, no=7
  4129. model.setValue(cap_blodno.attribute("ref"), rBlodList + model.getValue(cap_blodno.attribute("ref")) );
  4130. model.setValue(cap_blodnm.attribute("ref"), sPrcpNmList + model.getValue(cap_blodnm.attribute("ref")) );
  4131. model.setValue(cap_aborh.attribute("ref"), sAboRhList + model.getValue(cap_aborh.attribute("ref")) );
  4132. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno", sPrcpNoList + model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/prcpno") );
  4133. model.setValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno", sSignNoList + model.getValue("/root/main/cond/tnsnurserecgrup/tnsnurserecgruplist/signno") );
  4134. }
  4135. }
  4136. }
  4137. cap_blodno.refresh();
  4138. cap_blodnm.refresh();
  4139. cap_aborh.refresh();
  4140. fSumQtyCalc();// 총투여량 계산 onepintqty * 혈액갯수
  4141. return rBlodList;
  4142. }
  4143. /**
  4144. * @desc : 수행기록내역에서 체크 된 detlgrup 저장파라미터 만들기
  4145. * @
  4146. * @param : checkTarget : exec:수행 noexec:미수행
  4147. * :
  4148. *
  4149. * @return : rSaveList
  4150. * @author : khj
  4151. * @---------------------------------------------------
  4152. */
  4153. function fSaveExecRecListMake(checkTarget){
  4154. var rSaveList = "stat▦blodno▦prcpnm▦abo▦rh▦prcpdd▦prcpno▦prcpcd▦prcphistno▦prcpdelivefact▦pid▦tnscarerecseq▦instcd▩";
  4155. var rSaveHeader = "";
  4156. var xTargetGrid = grd_blodexecrecgruplist;
  4157. var xTargetPath = "";
  4158. if ( checkTarget =="exec" ){
  4159. xTargetPath = "/root/main/cond/blodreturnreqgrup/blodexecrecgruplist" ;
  4160. xTargetGrid = grd_blodexecrecgruplist;
  4161. } else {
  4162. xTargetPath = "/root/main/cond/blodreturnreqgrup/blodnoexecrecgruplist" ;
  4163. xTargetGrid = grd_blodnoexecrecgruplist;
  4164. }
  4165. for(var n=1; n <= xTargetGrid.rows ; n++){
  4166. if ( model.getValue(xTargetPath + "["+ n +"]/stat") == "true" ){
  4167. rSaveList += model.getValue(xTargetPath + "["+ n +"]/stat") + "▦"
  4168. + model.getValue(xTargetPath + "["+ n +"]/blodno") + "▦"
  4169. + model.getValue(xTargetPath + "["+ n +"]/prcpnm") + "▦"
  4170. + model.getValue(xTargetPath + "["+ n +"]/abo") + "▦"
  4171. + model.getValue(xTargetPath + "["+ n +"]/rh") + "▦"
  4172. + model.getValue(xTargetPath + "["+ n +"]/prcpdd") + "▦"
  4173. + model.getValue(xTargetPath + "["+ n +"]/prcpno") + "▦"
  4174. + model.getValue(xTargetPath + "["+ n +"]/prcpcd") + "▦"
  4175. + model.getValue(xTargetPath + "["+ n +"]/prcphistno") + "▦"
  4176. + model.getValue(xTargetPath + "["+ n +"]/prcpdelivefact") +"▦"
  4177. + model.getValue(xTargetPath + "["+ n +"]/pid") + "▦"
  4178. + model.getValue(xTargetPath + "["+ n +"]/tnscarerecseq") +"▦"
  4179. + model.getValue(xTargetPath + "["+ n +"]/instcd") + "▩"
  4180. }
  4181. }
  4182. return rSaveList;
  4183. }
  4184. function fRePrtBldReq() {
  4185. var chkyn;
  4186. var ocrtag;
  4187. var pretag;
  4188. var cnt = 0;
  4189. var receiptid="";
  4190. var receiptnm="";
  4191. for(var i = grd_delivedetlgruplist.fixedRows; i < grd_delivedetlgruplist.rows; i++) {
  4192. chkyn = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("sel"));
  4193. ocrtag = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("ocrtag"));
  4194. if(chkyn == "true") {
  4195. if(cnt == 0) {
  4196. pretag = ocrtag;
  4197. receiptid = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("receiptid"));
  4198. receiptnm = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("receiptnm"));
  4199. cnt++;
  4200. }
  4201. if(pretag != ocrtag) {
  4202. messageBox("다른 OCR번호를 가진 혈액은 재출력할 수 없습니다.", "E");
  4203. return;
  4204. }
  4205. if(ocrtag == "") {
  4206. messageBox("혈액불출되지 않은 혈액은 재출력 하실 수 없습니다.", "E");
  4207. return;
  4208. } else {
  4209. }
  4210. }
  4211. }
  4212. var ip = app.clientIp.split("^");
  4213. var ipstr = ip[0].split(".");
  4214. model.makeValue("/root/send/report/patientnm",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/patientnm1") );
  4215. model.makeValue("/root/send/report/pid",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/pid") );
  4216. model.makeValue("/root/send/report/sexage",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/sexage") );
  4217. model.makeValue("/root/send/report/btype",model.getValue("/root/main/cond/patientgrupInfo/patientgruplistInfo/btype") );
  4218. model.makeValue("/root/send/report/wardnm",cmb_wardcdgruplist.label );
  4219. model.makeValue("/root/send/report/roomcd",cmb_roomcdgruplist.value );
  4220. //model.makeValue("/root/send/report/logourl", getBigLogoImageURL("",getUserInfo("dutplceinstcd")));
  4221. model.makeValue("/root/send/report/logourl", getImageURL("biglogo"+getUserInfo("dutplceinstcd"), "jpg"));
  4222. model.makeValue("/root/send/report/ip", ipstr[2] + "." + ipstr[3]);
  4223. //출력일시
  4224. var printdd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  4225. var printtm = getCurrentTime().substr(0,2) + ":" + getCurrentTime().substr(2,2) + ":" + getCurrentTime().substr(4,2);
  4226. model.makeValue("/root/send/report/printdt", printdd + " " +printtm );
  4227. model.makeValue("/root/send/report/usernm", getUserName() );
  4228. model.makeValue("/root/send/report/seq", pretag);
  4229. model.makeValue("/root/send/report/receiptid", receiptid);
  4230. model.makeValue("/root/send/report/receiptnm", receiptnm);
  4231. model.makeNode("/root/send/report/delivedetlgrup/delivedetlgruplist");
  4232. copyNodesetType( "/root/send/report/delivedetlgrup/delivedetlgruplist", "/root/main/cond/delivedetlgrup/delivedetlgruplist[sel='true']" );
  4233. exeReportPreview("RFMNR01000", "XMLSTR", "", "", "true", "", "", "", "", "", "", "grp_report"); //미리보기 없이 출력
  4234. }
  4235. function fChngGridInfo() {
  4236. var sel = grd_delivedetlgruplist.valueMatrix(grd_delivedetlgruplist.row, grd_delivedetlgruplist.colRef("sel"));
  4237. if(grd_delivedetlgruplist.col == grd_delivedetlgruplist.colRef("sel")) {
  4238. var ocrtag = grd_delivedetlgruplist.valueMatrix(grd_delivedetlgruplist.row, grd_delivedetlgruplist.colRef("ocrtag"));
  4239. if(ocrtag == "" || ocrtag == null) {
  4240. return;
  4241. }
  4242. var ocrtag2="";
  4243. for(i = grd_delivedetlgruplist.fixedRows; i < grd_delivedetlgruplist.rows; i++) {
  4244. ocrtag2 = grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("ocrtag"));
  4245. if(ocrtag == ocrtag2) {
  4246. grd_delivedetlgruplist.valueMatrix(i, grd_delivedetlgruplist.colRef("sel")) = sel;
  4247. }
  4248. }
  4249. grd_delivedetlgruplist.refresh();
  4250. }
  4251. }