SMMNI02000.js 158 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052
  1. /* ---------------------------------------------------------------------
  2. CHEMO MAIN 등록
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. 2) : Ver.2.00.01
  8. : Edit By dhkim
  9. : 2009.02.24 사용부서를 BMT센터와 암센터로 분리함
  10. : spclcare/js/MNS.js 스크립트 공유
  11. ---------------------------------------------------------------------- */
  12. // 하드코딩 수정 및 암센터/BMT센터 주사실 나눠질때 처방전송 어떻게 하나 문의할것..
  13. //var injSpclRoom = '3120400000';//특수주사실부서코드
  14. //20090213 dhkim 글로벌 변수 선언
  15. var suppdeptcd;//메뉴그룹 사용처로 변경함
  16. var suppdeptnm;
  17. var drprcpetc2; //BMT, 암센터 구분 (BMT센터 : B, 암센터 : Y)
  18. //20090223 dhkim 센터코드 선언 추가
  19. var centcd;//BMT, 암센터 구분 (BMT센터 : B, 암센터 : Y) 구분자에 따라 달라짐
  20. var centnm;
  21. var sSIGNDATA_PATH = "/root/main/signdata/signprcplist";
  22. //20090225 dhkim
  23. //환자검색 팝업 호출
  24. function fGetPatinfo(){
  25. var pid = model.getValue('/root/main/cond/pid');
  26. if(pid == null || pid == ''){
  27. //messageBox('등록번호를 입력하세요.', 'E999');
  28. model.setValue("/root/main/cond/pid", "");
  29. model.setValue("/root/main/cond/hngnm", "");
  30. model.setValue("/root/main/cond/gndrage", "");
  31. model.setValue("/root/main/cond/rrgstno", "");
  32. model.refresh();
  33. }else{
  34. //----------조건
  35. model.removenode("/root/temppatinfo/pid");
  36. model.makeValue("/root/temppatinfo/pid", model.getValue('/root/main/cond/pid'));
  37. model.makeValue("/root/temppatinfo/srchcond", "1")
  38. modal("SPPMC02500", "1","150", "150", "SPPMC02500", "/root/temppatinfo", "/root/send");
  39. //---------리턴값
  40. if (model.getValue("/root/main/popupendflag") == "ok") {
  41. model.setValue("/root/main/cond/pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  42. model.setValue("/root/main/cond/hngnm", model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  43. model.setValue("/root/main/cond/gndrage", model.getValue("/root/main/patinfo/patinfolist/sex") + '/' + model.getValue("/root/main/patinfo/patinfolist/age"));
  44. var rrgstno = model.getValue("/root/main/patinfo/patinfolist/rrgstno1") + model.getValue("/root/main/patinfo/patinfolist/rrgstno2");
  45. model.setValue("/root/main/cond/rrgstno", rrgstno.substring(0, 6) + '-' + rrgstno.substring(6, 7) + '******');
  46. model.refresh();
  47. }else{
  48. model.setValue("/root/main/cond/pid", "");
  49. model.setValue("/root/main/cond/hngnm", "");
  50. model.setValue("/root/main/cond/gndrage", "");
  51. model.setValue("/root/main/cond/rrgstno", "");
  52. model.refresh();
  53. }
  54. }
  55. //케모리스트조회
  56. fInqurySelectedPrgm();
  57. }
  58. // --------------------------------------------------
  59. // 화면 init()
  60. // --------------------------------------------------
  61. function fInitialize() {
  62. // 간호하드코딩 테이블 조회_20100316_SMY
  63. var pCode = "'077','C06'"; // 조회할 CdGrupID 코드정보
  64. var pDate = getCurrentDate(); //조회기준일자
  65. fGetNursHardCdInfo(pCode, pDate);
  66. //20090213 dhkim
  67. //화면 타이틀을 해당 부서에 맞게 변경한다.
  68. suppdeptcd = aezfSetSuppDeptcd();
  69. suppdeptnm = getMenuDeptnm('/root/send/deptcd', suppdeptcd, 'TRMNI02031', '/root/temp/menudeptinfo/deptnm');
  70. model.removenode('/root/menudeptinfo/deptcd');
  71. model.removenode('/root/menudeptinfo/deptnm');
  72. model.makeValue('/root/menudeptinfo/deptcd', suppdeptcd);
  73. model.makeValue('/root/menudeptinfo/deptnm', suppdeptnm);
  74. if(suppdeptnm == null || suppdeptnm == ''){
  75. suppdeptnm = '항암';
  76. }
  77. capt_maintitl.attribute('text') = suppdeptnm + ' 메인';
  78. btn_sm.attribute('text') = suppdeptnm + ' Main';
  79. //20090217 dhkim
  80. //간호부서코드테이블에 등록된 bmt와 암센터 주사실의 코드를 조회한다.
  81. //injspecialroomweb/js/MNI001.js
  82. //fGetNursComnDept(cdgrupid, sendnode, recivenode, submitid, errmessage)
  83. fGetNursComnDept('025', '/root/send/cdgrupid', '/root/nursdeptinfo/bmtinfo', 'TRMNI02032', '간호에 등록된 bmt센터 소속간호부서조회를 실패하였습니다.');
  84. fGetNursComnDept('026', '/root/send/cdgrupid', '/root/nursdeptinfo/cncrinfo', 'TRMNI02033', '간호에 등록된 암센터 소속간호부서조회를 실패하였습니다.');
  85. var bmttempnode = "/root/nursdeptinfo/bmtinfo/nursdeptlist";
  86. var cncrtempnode = "/root/nursdeptinfo/cncrinfo/nursdeptlist";
  87. drprcpetc2 = fGetDrPrcpEtc2(bmttempnode, cncrtempnode);//해당화면이 BMT센터인지 암센터인지 여부를 조회
  88. if(drprcpetc2 == 'B'){//BMT센터주사실
  89. fGetNursComnDept('027', '/root/send/cdgrupid', '/root/nursdeptinfo/centinfo', 'TRMNI02034', '간호에 등록된 BMT센터코드조회를 실패하였습니다.');
  90. }else if(drprcpetc2 == 'Y'){//암센터주사실
  91. fGetNursComnDept('028', '/root/send/cdgrupid', '/root/nursdeptinfo/centinfo', 'TRMNI02034', '간호에 등록된 암센터코드조회를 실패하였습니다.');
  92. }else{
  93. messageBox('메뉴그룹에 해당 사용처가 등록되어 있지 않습니다.', 'E999');
  94. // return false;
  95. }
  96. //글로벌변수에 센터코드 할당
  97. centcd = model.getValue('/root/nursdeptinfo/centinfo/nursdeptlist/deptcd');
  98. centnm = model.getValue('/root/nursdeptinfo/centinfo/nursdeptlist/deptnm');
  99. //alert('센터코드 : ' + centcd + ' 센터명 : ' + model.getValue('/root/nursdeptinfo/centinfo/nursdeptlist/deptnm'));
  100. //alert('BMT 센터 및 암센터 구분 : ' + drprcpetc2);
  101. //센터구분에 따른 센터코드 조회
  102. var xPathMain = "/root/main";
  103. var xPathInitCond = "/root/init/cond";
  104. var xPathMainCond = "/root/main/cond";
  105. model.setValue("/root/main/cond/prestimportid", "cm");//외래메인이 메인으로 수정(20080924)특수주사실의 경우 그리드 변경으로 인해 메뉴파라미터(spclinj)를 쓰지못함(Nurse Main으로 기본 셋팅)
  106. //오늘 날짜로 초기화 하는 부분.(진료일자를 default로 오늘 날짜로 선택함)
  107. model.setValue("/root/main/cond/userid", getUserId());
  108. model.setValue("/root/main/cond/usernm", getUserName());
  109. model.setValue("/root/main/cond/wardcd", getUserInfo("dutplcecd"));
  110. model.setValue("/root/main/cond/orddd", getCurrentDate());
  111. model.setValue("/root/main/cond/orddeptcd", "");
  112. model.setValue("/root/main/cond/medispclid", "");
  113. model.setValue("/root/main/cond/atdoctid", "");
  114. model.setValue("/root/main/cond/indschacptstat", "1");
  115. //model.setValue("/root/main/cond/chemoindschacptstat", "1");
  116. //2090910 dhkim 항암처방만 체크상태 디폴트
  117. //여의도성모병원 : 특수주사실 메뉴그룹 선택시 default [항암처방만] 체크 풀도록 _20100316_SMY
  118. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '05' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdid")){ //supcdid='05' : 여의도성모병원
  119. model.setValue('/root/main/cond/antcncryn', '');
  120. chk_antcncryn.refresh();
  121. }else{
  122. model.setValue('/root/main/cond/antcncryn', 'Y');
  123. chk_antcncryn.select(0);
  124. chk_antcncryn.refresh();
  125. }
  126. //20091102 dhkim 내환자세팅 조회
  127. fChemoSettingRnID();
  128. //오늘 날짜로 초기화 하는 부분.(진료일자를 default로 오늘 날짜로 선택함)
  129. var dt = getCurrentDate();
  130. model.setValue(xPathMainCond + "/prcpdd", dt);
  131. var colcaption = "";//grd_acting 컬럼길이
  132. var pGrd = grd_acting;//grd_acting 헤더 결정
  133. /*
  134. for (var i=0;i<pGrd.cols;i++) {
  135. var colnm = pGrd.colAttribute(i, "ref");
  136. switch (colnm) {
  137. case "chk":
  138. pGrd.colWidth(i) = 30;
  139. pGrd.colAttribute(i,"style") = "text-align:center;";
  140. pGrd.colDisabled(i) = false;
  141. colcaption+= "";
  142. break;
  143. case "prtldg":
  144. pGrd.colWidth(i) = 40;
  145. pGrd.colAttribute(i,"style") = "text-align:center;";
  146. colcaption+= "D";
  147. break;
  148. case "drugseq":
  149. pGrd.colWidth(i) = 60;
  150. pGrd.colAttribute(i,"style") = "text-align:center;";
  151. colcaption+= "투약순서";
  152. break;
  153. case "drugtt":
  154. pGrd.colWidth(i) = 60;
  155. pGrd.colAttribute(i,"style") = "text-align:right;";
  156. colcaption+= "투약시간";
  157. break;
  158. case "prcpmixno":
  159. pGrd.colWidth(i) = 50;
  160. pGrd.colAttribute(i,"style") = "text-align:left;";
  161. colcaption+= "MIX";
  162. break;
  163. case "prcpcd":
  164. pGrd.colWidth(i) = 80;
  165. pGrd.colAttribute(i,"style") = "text-align:left;";
  166. colcaption+= "처방코드";
  167. break;
  168. case "prcpnm":
  169. pGrd.colWidth(i) = 80;
  170. pGrd.colAttribute(i,"style") = "text-align:left;";
  171. colcaption+= "처방명칭";
  172. break;
  173. case "payflagcd":
  174. pGrd.colWidth(i) = 60;
  175. pGrd.colAttribute(i,"style") = "text-align:center;";
  176. colcaption+= "급여구분";
  177. break;
  178. case "volkind":
  179. pGrd.colWidth(i) = 70;
  180. pGrd.colAttribute(i,"style") = "text-align:left;";
  181. colcaption+= "적용방법";
  182. break;
  183. case "bsavol":
  184. pGrd.colWidth(i) = 60;
  185. pGrd.colAttribute(i,"style") = "text-align:right;";
  186. colcaption+= "BSA당용량";
  187. break;
  188. case "kgvol":
  189. pGrd.colWidth(i) = 60;
  190. pGrd.colAttribute(i,"style") = "text-align:right;";
  191. colcaption+= "kg당용량";
  192. break;
  193. case "prcpvol":
  194. pGrd.colWidth(i) = 60;
  195. pGrd.colAttribute(i,"style") = "text-align:right;";
  196. colcaption+= "1일용량";
  197. break;
  198. case "prcpvolunitnm":
  199. pGrd.colWidth(i) = 50;
  200. pGrd.colAttribute(i,"style") = "text-align:center;";
  201. colcaption+= "단위";
  202. break;
  203. case "prcpqty":
  204. pGrd.colWidth(i) = 60;
  205. pGrd.colAttribute(i,"style") = "text-align:right;";
  206. colcaption+= "1일수량";
  207. break;
  208. case "prcpqtyunitnm":
  209. pGrd.colWidth(i) = 50;
  210. pGrd.colAttribute(i,"style") = "text-align:center;";
  211. colcaption+= "단위";
  212. break;
  213. case "drugspd":
  214. pGrd.colWidth(i) = 60;
  215. pGrd.colAttribute(i,"style") = "text-align:right;";
  216. colcaption+= "투여속도";
  217. break;
  218. case "drugspdunitnm":
  219. pGrd.colWidth(i) = 50;
  220. pGrd.colAttribute(i,"style") = "text-align:center;";
  221. colcaption+= "단위";
  222. break;
  223. case "prcptims" :
  224. pGrd.colWidth(i) = 50;
  225. pGrd.colAttribute(i,"style") = "text-align:right;";
  226. colcaption+= "횟수";
  227. break;
  228. case "drugmthdspccdnm" :
  229. pGrd.colWidth(i)=100;
  230. pGrd.colAttribute(i,"style") = "text-align:center;";
  231. colcaption += "복용방법";
  232. pGrd.colHidden(i) = false;
  233. break;
  234. case "prnprcpflag":
  235. pGrd.colWidth(i) = 60;
  236. pGrd.colAttribute(i,"style") = "text-align:center;";
  237. colcaption+= "PRN여부";
  238. break;
  239. case "remark":
  240. pGrd.colWidth(i) = 80;
  241. pGrd.colAttribute(i,"style") = "text-align:left;";
  242. colcaption+= "전달사항";
  243. break;
  244. case "nursrem":
  245. pGrd.colWidth(i) = 80;
  246. pGrd.colAttribute(i,"style") = "text-align:left;";
  247. colcaption+= "간호전달";
  248. break;
  249. case "prcpexecdeptcd":
  250. pGrd.colWidth(i) = 80;
  251. pGrd.colAttribute(i,"style") = "text-align:center;";
  252. colcaption+= "실행부서";
  253. pGrd.colHidden(i) = true;
  254. break;
  255. case "instcd":
  256. pGrd.colWidth(i) = 0;
  257. pGrd.colAttribute(i,"style") = "text-align:left;";
  258. colcaption+= "기관코드";
  259. pGrd.colHidden(i) = true;
  260. break;
  261. case "cpgappno":
  262. pGrd.colWidth(i) = 0;
  263. pGrd.colAttribute(i,"style") = "text-align:left;";
  264. colcaption+= "CPG적용번호";
  265. pGrd.colHidden(i) = true;
  266. break;
  267. case "ordseqno":
  268. pGrd.colWidth(i) = 0;
  269. pGrd.colAttribute(i,"style") = "text-align:left;";
  270. colcaption+= "처방순번";
  271. pGrd.colHidden(i) = true;
  272. break;
  273. case "prcpdd":
  274. pGrd.colWidth(i) = 0;
  275. pGrd.colAttribute(i,"style") = "text-align:center;";
  276. colcaption+= "처방적용일";
  277. pGrd.colHidden(i) = true;
  278. break;
  279. case "saveflag":
  280. pGrd.colWidth(i) = 100;
  281. pGrd.colAttribute(i,"style") = "text-align:left;";
  282. colcaption+= "입원처방발생여부";
  283. pGrd.colHidden(i) = true;
  284. break;
  285. case "cretno":
  286. pGrd.colWidth(i) = 0;
  287. pGrd.colAttribute(i,"style") = "text-align:left;";
  288. colcaption+= "입퇴원생성번호";
  289. pGrd.colHidden(i) = true;
  290. break;
  291. case "prcpno":
  292. pGrd.colWidth(i) = 0;
  293. pGrd.colAttribute(i,"style") = "text-align:left;";
  294. colcaption+= "입원처방생성번호";
  295. pGrd.colHidden(i) = true;
  296. break;
  297. case "drugmthdspccd":
  298. pGrd.colWidth(i)=0;
  299. pGrd.colAttribute(i,"style") = "text-align:left;";
  300. colcaption+= "복용방법";
  301. pGrd.colHidden(i) = true;
  302. break;
  303. case "volrate" :
  304. pGrd.colWidth(i)=0;
  305. pGrd.colAttribute(i,"style") = "text-align:left;";
  306. colcaption+= "volrate";
  307. pGrd.colHidden(i) = true;
  308. break;
  309. case "prtldgnm" :
  310. pGrd.colWidth(i)=0;
  311. pGrd.colAttribute(i,"style") = "text-align:left;";
  312. colcaption+= "prtldgnm";
  313. pGrd.colHidden(i) = true;
  314. break;
  315. case "prtlkind" :
  316. pGrd.colWidth(i)=0;
  317. pGrd.colAttribute(i,"style") = "text-align:left;";
  318. colcaption+= "prtlkind";
  319. pGrd.colHidden(i) = true;
  320. break;
  321. }
  322. if ( i != (pGrd.cols-1))
  323. colcaption += "^";
  324. }
  325. pGrd.caption = colcaption;
  326. pGrd.frozenCols = fGridfindColIdx(pGrd,"prcpnm");
  327. */
  328. //공통코드(급여구분) - 처방전송탭의 그리드리스트에 조회
  329. model.removenode('/root/init/payflagcd');
  330. model.makenode('/root/init/payflagcd');
  331. model.removenode('/root/init/coordflag');
  332. model.makenode('/root/init/coordflag');
  333. zbcfGetCodeList(new Array("M0029",
  334. "M0525"),
  335. new Array("/root/init/payflagcd",
  336. "/root/init/coordflag"));
  337. //전체 체크
  338. grd_acting.fixedcellcheckbox(0,0) = true;
  339. //20091120 dhkim 상단정보 초기화
  340. delPatientInfos(); //화면상단정보 삭제
  341. setGlobalVariable("paminfo", ""); //원무정보 reset
  342. if(getNodesetCount("/root/main/paminfo") > 0) {
  343. model.removeNodeset("/root/main/paminfo/list");
  344. }
  345. //특수주사실병동을 찾아넣는다.
  346. fSetWardcd();
  347. //자동조회시킨다.
  348. fInqurySelectedPrgm();
  349. }
  350. //20091102 dhkim
  351. //내환자세팅 조회
  352. function fChemoSettingRnID(){
  353. model.setValue("/root/main/cond/settingrnid", "");
  354. model.removenode("/root/send");
  355. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  356. submit("TRMNW00101");
  357. model.removenode("/root/init/ward[wardcd = '2280200000']"); // 응급의료센터 제외
  358. model.setValue("/root/main/cond/settingrnid", "");
  359. for(i = 1; i <= getNodesetCount("/root/init/settingrn"); i++ ) {
  360. if (model.getValue("/root/main/cond/userid") == model.getValue("/root/init/settingrn["+ i +"]/settingrnid")) {
  361. model.setValue("/root/main/cond/settingrnid", model.getValue("/root/main/cond/userid"));
  362. }
  363. }
  364. model.refresh();
  365. fInqurySelectedPrgm();
  366. }
  367. //20081007 수정
  368. //병동을 특수주사실(3120400000)로 자동세팅
  369. function fSetWardcd(){
  370. //로그인한 사용자의 부서를 먼저 세팅
  371. var userDeptcd = getUserInfo('dutplcecd');
  372. if(userDeptcd != suppdeptcd){
  373. userDeptcd = suppdeptcd;
  374. }
  375. model.setValue('/root/main/cond/wardcd', userDeptcd);
  376. model.refresh();
  377. }
  378. //혈액준비, 항암미승인 조회
  379. function fGetWardPrescond()
  380. {
  381. model.removenode("/root/send");
  382. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  383. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/orddd"));
  384. submit("TRMNW00104");
  385. var blodpreppatlist = "";
  386. // var chngroomaprvpatlist = "";
  387. var anticncrlistpatlist = "";
  388. //혈액준비환자리스트 조합
  389. for(var i = 1; i <= getNodesetCount("/root/init/wardprescondinfo/blodprep"); i++) {
  390. if (i == 1) {
  391. blodpreppatlist += model.getValue("/root/init/wardprescondinfo/blodprep["+ i +"]/patnm");
  392. } else {
  393. blodpreppatlist += ", " + model.getValue("/root/init/wardprescondinfo/blodprep["+ i +"]/patnm");
  394. }
  395. }
  396. /*
  397. //전실승인환자리스트 조합
  398. for(var i = 1; i <= getNodesetCount("/root/init/wardprescondinfo/chngroomaprv"); i++) {
  399. if (i == 1) {
  400. chngroomaprvpatlist += model.getValue("/root/init/wardprescondinfo/chngroomaprv["+ i +"]/patnm");
  401. } else {
  402. chngroomaprvpatlist += ", " + model.getValue("/root/init/wardprescondinfo/chngroomaprv["+ i +"]/patnm");
  403. }
  404. }
  405. */
  406. //항암미승인환자리스트 조합
  407. for(var i = 1; i <= getNodesetCount("/root/init/wardprescondinfo/anticncr"); i++) {
  408. if (i == 1) {
  409. anticncrlistpatlist += model.getValue("/root/init/wardprescondinfo/anticncr["+ i +"]/patnm");
  410. } else {
  411. anticncrlistpatlist += ", " + model.getValue("/root/init/wardprescondinfo/anticncr["+ i +"]/patnm");
  412. }
  413. }
  414. model.setValue("/root/main/precondlist/blodpreplist", blodpreppatlist);
  415. // model.setValue("/root/main/precondlist/chngroomaprvlist", chngroomaprvpatlist);
  416. model.setValue("/root/main/precondlist/anticncrlist", anticncrlistpatlist);
  417. tar_blodprep.refresh();
  418. // tar_chngroomaprv.refresh();
  419. tar_anticncrt.refresh();
  420. }
  421. function fInqurySelectedPrgm(){
  422. fGetWardPrescond();//재원환자수, 전실승인, 혈액준비, 항암미승인 조회
  423. switch(model.getValue("/root/main/cond/prestimportid")) {
  424. case "cm": //특수주사실 main
  425. btn_sm.selected = true;
  426. sha_state.visible = true;
  427. cap_state.visible = true;
  428. cap_color.visible = false;
  429. cap_uncnfm.visible = false;
  430. cap_prcp.visible = false;
  431. caption7.visible = false;//전실승인캡션
  432. tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  433. btn_prnt.disabled = true;//환자카드출력
  434. model.toggle("case_cm");
  435. fGetChemoList();//케모환자리스트 조회
  436. // fGetChkActing();
  437. break;
  438. case "ac": //항암전송
  439. btn_ac.selected = true;
  440. sha_state.visible = false;
  441. cap_state.visible = false;
  442. cap_color.visible = false;
  443. cap_uncnfm.visible = false;
  444. cap_prcp.visible = false;
  445. caption7.visible = false;//전실승인캡션
  446. tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  447. //20090326 dhkim 전체 체크박스 활성화
  448. grd_acting.fixedcellcheckbox(0,0) = true;
  449. model.toggle("case_ac");
  450. fGetActingList();
  451. break;
  452. case "om" ://order manage
  453. btn_om.selected = true;
  454. sha_state.visible = false;
  455. cap_state.visible = false;
  456. cap_color.visible = true;
  457. cap_uncnfm.visible = true;
  458. cap_prcp.visible = true;
  459. cap_color.attribute("left") = "15px";
  460. cap_uncnfm.attribute("left") = "35px";
  461. cap_prcp.attribute("left") = "120px";
  462. cap_prcp.attribute("color") = "#0000ff";
  463. caption7.visible = false;//전실승인캡션
  464. tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  465. model.toggle("case_om");
  466. fGetDrugStat();
  467. fGetOMPatList();
  468. break;
  469. case "nm" : //nurse main
  470. btn_nm.selected = true;
  471. sha_state.visible = false;
  472. cap_state.visible = true;
  473. cap_color.visible = false;
  474. cap_uncnfm.visible = false;
  475. cap_prcp.visible = true;
  476. cap_ser.visible = true;
  477. cap_prcp.attribute("left") = "698px";
  478. cap_prcp.attribute("color") = "#000000";
  479. grd_wardpatlist.visible = true;
  480. caption7.visible = false;//전실승인캡션
  481. tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  482. model.toggle("case_nm");
  483. fGetWardPatList();
  484. break;
  485. case "prn" :
  486. btn_om.selected = true;
  487. sha_state.visible = false;
  488. cap_state.visible = false;
  489. cap_color.visible = false;
  490. cap_uncnfm.visible = false;
  491. cap_prcp.visible = false;
  492. caption7.visible = false;//전실승인캡션
  493. tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  494. model.setValue("/root/main/cond/wardcd",model.getValue( "/root/main/wardcdinfo/wardcdlist/chemowardcd"));
  495. model.setValue("/root/main/cond/orddd",model.getValue( "/root/main/cond/prcpdd"));
  496. model.refresh();
  497. model.toggle("case_om");
  498. fSetPrnMode();
  499. fGetOMPatList("chemo");
  500. break;
  501. //20090702 dhkim 외래예약처방탭 추가
  502. case "rp" :
  503. btn_rp.selected = false;//예약처방전송버튼활성화
  504. sha_state.visible = false;//프로토콜메인 환자상태 캡션
  505. cap_state.visible = false;//프로토콜메인 환자상태 캡션
  506. cap_color.visible = false;//미확인컬러 캡션
  507. cap_uncnfm.visible = false;//미확인 캡션
  508. cap_prcp.visible = false;//일반/반환/퇴원 캡션
  509. caption7.visible = false;//전실승인캡션
  510. tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  511. //20091119 dhkim
  512. //예약처방전송 파라미터값을 상단정보기준으로 상단에 있는 환자의 파라미터값으로 받아오도록 변경
  513. //(현재는 메인그리드에 선택된 환자의 파라미터를 넘김)
  514. var curROw = grd_chemo.row;
  515. var pid = "";
  516. var indd = "";
  517. var cretno = "";
  518. var ordtype = "";
  519. var medispclid = "";
  520. var roomcd = "";
  521. var sexage = "";
  522. var hngnm = "";
  523. //2010.01.25 dhkim 주석
  524. // var curRow = fSincMainGridTopInfo();//상단정보를 받아와 현재 row를 조회
  525. var topInfoRetn = fGetTopInfoToChemoPatInfo();
  526. var pid = getTopInfoKeysIndex(topInfoRetn, "pid");
  527. if(pid != null && pid != ""){
  528. indd = getTopInfoKeysIndex(topInfoRetn, "indd");
  529. cretno = getTopInfoKeysIndex(topInfoRetn, "cretno");
  530. ordtype = getTopInfoKeysIndex(topInfoRetn, "ordtype");
  531. medispclid = getTopInfoKeysIndex(topInfoRetn, "medispclid");
  532. roomcd = getTopInfoKeysIndex(topInfoRetn, "roomcd");
  533. sexage = getTopInfoKeysIndex(topInfoRetn, "sexage");
  534. hngnm = getTopInfoKeysIndex(topInfoRetn, "hngnm");
  535. }else{
  536. messageBox("상단정보가 없거나 환자정보가 존재하지 않습니다.", "E");
  537. }
  538. /*
  539. var pid = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/pid');
  540. var indd = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_indd');
  541. var cretno = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_cretno');
  542. var ordtype = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_ordtype');
  543. var medispclid = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_medispclid');
  544. var roomcd = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/roomcd');
  545. var sexage = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/age');
  546. var hngnm = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/hngnm');
  547. */
  548. if(indd == null || indd == ''){
  549. indd = getCurrentDate();
  550. }
  551. model.toggle("case_rp");
  552. fGetRsrvPrcpChemo(pid, indd, cretno, ordtype, medispclid, roomcd, sexage, hngnm);
  553. break;
  554. }
  555. model.refresh();
  556. }
  557. /**
  558. * 2010.01.25 dhkim - 상단정보에서 가져온 내역배열에서 key값으로 데이터 조회
  559. */
  560. function getTopInfoKeysIndex(topInfoRetn, topKey){
  561. var topInfoRowArry = topInfoRetn.split("▒");
  562. var retnStr = "";
  563. if(topInfoRowArry.length > 0){
  564. var topInfoKeys = topInfoRowArry[0];
  565. var topInfoColsStr = topInfoRowArry[1];
  566. if(topInfoKeys != "" && topInfoColsStr != ""){
  567. var topInfoKeys = topInfoKeys.split("|");
  568. var topInfoDatas = topInfoColsStr.split("|");
  569. for(var i = 0; i < topInfoKeys.length; i++){
  570. if(topInfoKeys[i] == topKey){
  571. retnStr = topInfoDatas[i];
  572. break;
  573. }
  574. }
  575. }else{
  576. retnStr = "";
  577. }
  578. }else{
  579. retnStr = "";
  580. }
  581. return retnStr;
  582. }
  583. // --------------------------------------------------
  584. // 그리드에서 컬럼명으로 컬럼idx 찾기
  585. // --------------------------------------------------
  586. function fGridfindColIdx(pGrd,colNm) {
  587. var iCols = pGrd.Cols;
  588. var colFindIdx=1;
  589. for( var col = 0; col < iCols; col++ ) {
  590. if (pGrd.colAttribute(col,"ref") == colNm) {
  591. colFindIdx = col;
  592. break;
  593. }
  594. }
  595. return colFindIdx;
  596. }
  597. // --------------------------------------------------
  598. //switch 작업 토클
  599. // --------------------------------------------------
  600. function fSelectedPrgm()
  601. {
  602. var xPathMainCond = "/root/main/cond";
  603. var flag = model.getValue(xPathMainCond + "/workflag");
  604. switch(flag) {
  605. case "cm":
  606. btn_sm.selected = true;
  607. model.toggle("case_cm");
  608. fGetChemoList();//케모환자리스트 조회
  609. break;
  610. case "ac":
  611. btn_ac.selected = true;
  612. model.toggle("case_ac");
  613. fGetActingList();
  614. break;
  615. case "om" :
  616. btn_om.selected = true;
  617. model.setValue("/root/main/cond/wardcd",model.getValue( "/root/main/wardcdinfo/wardcdlist/chemowardcd"));
  618. model.setValue("/root/main/cond/orddd",model.getValue( "/root/main/cond/prcpdd"));
  619. model.refresh();
  620. model.toggle("case_om");
  621. fGetOMPatList("chemo");
  622. break;
  623. case "prn" :
  624. btn_om.selected = true;
  625. model.setValue("/root/main/cond/wardcd",model.getValue( "/root/main/wardcdinfo/wardcdlist/chemowardcd"));
  626. model.setValue("/root/main/cond/orddd",model.getValue( "/root/main/cond/prcpdd"));
  627. model.refresh();
  628. model.toggle("case_om");
  629. fSetPrnMode();
  630. fGetOMPatList("chemo");
  631. break;
  632. default :
  633. model.toggle("case_cm");
  634. fGetChemoList();//케모환자리스트조회
  635. }
  636. }
  637. // --------------------------------------------------
  638. //chemo 메인 조회
  639. // 20091119 dhkim
  640. // 메인리스트 조회시 상단정보 초기화추가
  641. // --------------------------------------------------
  642. function fGetChemoList() {
  643. //20091119 dhkim
  644. //화면상단정보 삭제
  645. //delPatientInfos();
  646. // setGlobalVariable("paminfo", ""); //원무정보 reset
  647. // if(getNodesetCount("/root/main/paminfo") > 0) {
  648. // model.removeNodeset("/root/main/paminfo/list");
  649. // }
  650. var xPathSend = "/root/send";
  651. var xPathSendReqdata = "/root/send/reqdata";
  652. var row = grd_chemo.row;
  653. model.removeNodeset(xPathSend);
  654. model.makeNode(xPathSendReqdata);
  655. model.makeValue(xPathSendReqdata + "/prcpdd", model.getValue("/root/main/cond/prcpdd"));
  656. model.makeValue(xPathSendReqdata + "/pid", model.getValue("/root/main/cond/pid"));
  657. model.makeValue(xPathSendReqdata + "/ordseqflag", model.getValue("/root/main/cond/ordseqflag"));
  658. //[20081127 dhkim] itc 변경개발요청에 따른 입퇴실구분 추가
  659. //model.makeValue(xPathSendReqdata + "/indschacptstat", model.getValue("/root/main/cond/chemoindschacptstat"));
  660. model.makeValue(xPathSendReqdata + "/indschacptstat", model.getValue("/root/main/cond/indschacptstat"));
  661. model.makeValue(xPathSendReqdata + "/orddeptcd", model.getValue("/root/main/cond/orddeptcd"));
  662. model.makeValue(xPathSendReqdata + "/medispclid", model.getValue("/root/main/cond/medispclid"));
  663. model.makeValue(xPathSendReqdata + "/atdoctid", model.getValue("/root/main/cond/atdoctid"));
  664. //20090223 dhkim 병동코드조건추가
  665. //병동이 null이면 디폴트로 로그인사용자부서로 조회
  666. var wardcd = model.getValue('/root/main/cond/wardcd');
  667. if(wardcd == null || wardcd == ''){
  668. wardcd = getUserInfo('dutplcecd');
  669. }
  670. //20090223 dhkim 해당 병동이 소속된 센터의 코드 파라미터 추가
  671. model.makeValue(xPathSendReqdata + "/centcd", centcd);
  672. //20090223 dhkim 해당 병동 입원한 환자 조회
  673. model.makeValue(xPathSendReqdata + "/wardcd", wardcd);
  674. //20090407 dhkim
  675. //암센터주사실과 BMT주사실 구분을 추가 (암센터주사실 : Y, BMT주사실 :B)
  676. model.makeValue(xPathSendReqdata + "/drprcpetc2", drprcpetc2);
  677. //20090306 dhkim
  678. //조회조건에 등록번호가 입력되어 있지 않은경우는 성명 sexage 주민번호 clear
  679. var pid = model.getValue('/root/main/cond/pid');
  680. if(pid == null || pid == ''){
  681. model.setValue('/root/main/cond/hngnm', '');
  682. model.setValue('/root/main/cond/gndrage', '');
  683. model.setValue('/root/main/cond/rrgstno', '');
  684. model.refresh();
  685. }
  686. //20090910 dhkim 항암처방만 체크박스 추가
  687. var indschacptstat = model.getValue('/root/main/cond/indschacptstat');
  688. if(indschacptstat == '4'){
  689. //구분이 퇴실완료상태로 조회시 항암처방만 체크박스 체크상태 강제해제
  690. model.setValue('/root/main/cond/antcncryn', '');
  691. chk_antcncryn.disabled = true;
  692. model.refresh();
  693. chk_antcncryn.deselect(0);
  694. chk_antcncryn.refresh();
  695. }else{
  696. chk_antcncryn.disabled = false;
  697. }
  698. model.makeValue(xPathSendReqdata + '/antcncryn', model.getValue('/root/main/cond/antcncryn'));
  699. //20091102 dhkim 내환자세팅 조건 추가
  700. model.makeValue(xPathSendReqdata + '/settingrnid', model.getValue('/root/main/cond/settingrnid'));
  701. if(!submit("TRMNI02003")){
  702. messageBox('항암메인 환자 리스트 조회를 실패하였습니다.', 'E999');
  703. return false;
  704. }else{
  705. //2010.01.25 dhkim - 주석
  706. /*
  707. //20091119 dhkim
  708. //환자리스트 조회후 상단정보에 있는 환자 자동선택상태로 변경한다.
  709. var curRow = fSincMainGridTopInfo();
  710. grd_chemo.row = curRow;
  711. */
  712. }
  713. var xPath = grd_chemo.nodeset;
  714. for( var i=grd_chemo.fixedRows; i <grd_chemo.rows; i++ ) {
  715. var disp1 = model.getValue(xPath +"[" + i + "]/disp1");
  716. var disp2 = model.getValue(xPath +"[" + i + "]/disp2");
  717. var disp3 = model.getValue(xPath +"[" + i + "]/disp3");
  718. var medamtpostyn = model.getValue(xPath +"[" + i + "]/medamtpostyn");
  719. var dethyn = model.getValue(xPath +"[" + i + "]/dethyn");
  720. var prtlcd = model.getValue(xPath +"[" + i + "]/prtlcd");
  721. var bfprtlcd = model.getValue(xPath +"[" + i + "]/bfprtlcd");
  722. if(dethyn == "Y") {
  723. grd_chemo.cellstyle("background-color", i, 1, i, grd_chemo.cols-1) ="#999999";
  724. } else {
  725. if(medamtpostyn == "V") {
  726. grd_chemo.cellstyle("background-color", i, 1, i, grd_chemo.cols-1) ="#ffff00";
  727. } else {
  728. grd_chemo.cellstyle("background-color", i, 1, i, grd_chemo.cols-1) ="#ffffff";
  729. }
  730. }
  731. if (disp1 == "Y") {
  732. grd_chemo.cellstyle("background-image", i, grd_chemo.colRef("disp1img")) = "../../../com/hismainweb/images/btn_top_infection0.gif";
  733. }else{
  734. grd_chemo.cellstyle("background-image", i, grd_chemo.colRef("disp1img")) = "";
  735. }
  736. if (disp2 == "Y") {
  737. grd_chemo.cellstyle("background-image", i, grd_chemo.colRef("disp2img")) = "../../../com/hismainweb/images/btn_top_infection1.gif";
  738. }else{
  739. grd_chemo.cellstyle("background-image", i, grd_chemo.colRef("disp2img")) = "";
  740. }
  741. if (disp3 == "Y") {
  742. grd_chemo.cellstyle("background-image", i, grd_chemo.colRef("disp3img")) = "../../../com/hismainweb/images/btn_top_infection2.gif";
  743. }else{
  744. grd_chemo.cellstyle("background-image", i, grd_chemo.colRef("disp3img")) = "";
  745. }
  746. if(prtlcd != bfprtlcd){
  747. grd_chemo.cellStyle("color",i, grd_chemo.colRef("prtlnm"), i, grd_chemo.colRef("prtlnm")) = "#ff0000";
  748. }else{
  749. grd_chemo.cellStyle("color",i, grd_chemo.colRef("prtlnm"), i, grd_chemo.colRef("prtlnm")) = "#000000";
  750. }
  751. }
  752. model.refresh();
  753. }
  754. // --------------------------------------------------
  755. // 프로토콜 처방 리스트 조회
  756. // 20091119 dhkim
  757. // 변경전 : 현재 항암처방정보를 메인환자리스트 그리드에 선택된 row에 있는 환자의 정보로 가져오고 있음.
  758. // 변경후 : 상단정보가 세팅된 환자의 항암처방정보를 조회해 오는 것으로 변경함.(itc 요구사항-> 요청번호 ; 9091)
  759. // --------------------------------------------------
  760. function fGetActingList() {
  761. //2010.01.25 dhkim 주석처리
  762. var curRow = grd_chemo.row;
  763. /*
  764. //20091119 dhkim 상단정보가 세팅된 환자의 처방 조회로 변경
  765. var curRow = fSincMainGridTopInfo();//상단정보를 받아와 현재 row를 조회
  766. */
  767. //2010.02.11 dhkim - 메인그리드를 상단정보의 환자로 세팅
  768. var curr = fSincMainGridTopInfo();
  769. // alert("chemo row : "+curr);
  770. grd_chemo.row = curr;
  771. var pGrd = grd_chemo;
  772. if (pGrd.row <= 0) {
  773. model.removeNodeset("/root/main/actinginfo/actinglist"); //자료가 나오지 않게 질의하기 위해서
  774. model.removeNodeset("/root/main/actingbasicinfo"); //자료가 나오지 않게 질의하기 위해서
  775. model.refresh();
  776. return;
  777. }
  778. var cpgappno = "";
  779. var prtldg = "";
  780. var prcpdd = "";
  781. var sickclsnm = "";
  782. var prtlnm = "";
  783. var prtldg = "";
  784. var prtldg_d = "";
  785. var inptflag = "";
  786. var detstatus = "";
  787. var disp_patnm = "";
  788. var disp_pid = "";
  789. var disp_age = "";
  790. var disp_depthngnm = "";
  791. var disp_orddrnm = "";
  792. var careinrmdd = "";
  793. var wardcd = "";
  794. var wardnm = "";
  795. //2010.01.25 dhkim - 상단정보의 환자정보로 그리드의 항암프로토콜 정보를 가져온다.
  796. var topInfoRetn = fGetTopInfoToChemoPatInfo();
  797. var pid = getTopInfoKeysIndex(topInfoRetn, "pid");
  798. if(pid == null || pid == ""){
  799. //messageBox("상단정보가 없거나 환자정보가 존재하지 않습니다.", "E");
  800. //2010.02.11 dhkim - 환자리스트에 환자상단에 해당되는 정보가 없을경우 상단정보 삭제후 리턴
  801. delPatientInfos(); //화면상단정보 삭제
  802. setGlobalVariable("paminfo", ""); //원무정보 reset
  803. if(getNodesetCount("/root/main/paminfo") > 0) {
  804. model.removeNodeset("/root/main/paminfo/list");
  805. }
  806. }else{
  807. cpgappno = getTopInfoKeysIndex(topInfoRetn, "cpgappno");
  808. prtldg = getTopInfoKeysIndex(topInfoRetn, "prtldg");
  809. prcpdd = getTopInfoKeysIndex(topInfoRetn, "prcpdd");
  810. sickclsnm = getTopInfoKeysIndex(topInfoRetn, "sickclsnm");
  811. prtlnm = getTopInfoKeysIndex(topInfoRetn, "prtlnm");
  812. prtldg_d = getTopInfoKeysIndex(topInfoRetn, "prtldg_d");
  813. inptflag = getTopInfoKeysIndex(topInfoRetn, "inptflag");
  814. detstatus = getTopInfoKeysIndex(topInfoRetn, "detstatus");
  815. disp_patnm = getTopInfoKeysIndex(topInfoRetn, "hngnm");
  816. disp_pid = getTopInfoKeysIndex(topInfoRetn, "pid");
  817. disp_age = getTopInfoKeysIndex(topInfoRetn, "age");
  818. disp_depthngnm = getTopInfoKeysIndex(topInfoRetn, "depthngnm");
  819. disp_orddrnm = getTopInfoKeysIndex(topInfoRetn, "orddrnm");
  820. careinrmdd = getTopInfoKeysIndex(topInfoRetn, "careinrmdd");
  821. wardcd = getTopInfoKeysIndex(topInfoRetn, "wardcd");
  822. wardnm = getTopInfoKeysIndex(topInfoRetn, "wardnm");
  823. }
  824. //2010.02.11 dhkim actingbasicinfo를 재구성
  825. model.removenode("/root/main/actingbasicinfo");
  826. model.makeValue("/root/main/actingbasicinfo/cpgappno", cpgappno);
  827. model.makeValue("/root/main/actingbasicinfo/prtldg", prtldg);
  828. model.makeValue("/root/main/actingbasicinfo/prcpdd", prcpdd);
  829. model.makeValue("/root/main/actingbasicinfo/sickclsnm", sickclsnm);
  830. model.makeValue("/root/main/actingbasicinfo/prtlnm", prtlnm);
  831. model.makeValue("/root/main/actingbasicinfo/prtldg_d", prtldg_d);
  832. model.makeValue("/root/main/actingbasicinfo/inptflag", inptflag);
  833. model.makeValue("/root/main/actingbasicinfo/detstatus", detstatus);
  834. model.makeValue("/root/main/actingbasicinfo/disp_patnm", disp_patnm);
  835. model.makeValue("/root/main/actingbasicinfo/disp_pid", disp_pid);
  836. model.makeValue("/root/main/actingbasicinfo/disp_age", disp_age);
  837. model.makeValue("/root/main/actingbasicinfo/disp_depthngnm", disp_depthngnm);
  838. model.makeValue("/root/main/actingbasicinfo/disp_orddrnm", disp_orddrnm);
  839. model.makeValue("/root/main/actingbasicinfo/careinrmdd", careinrmdd);
  840. model.makeValue("/root/main/actingbasicinfo/wardcd", wardcd);
  841. model.makeValue("/root/main/actingbasicinfo/wardnm", wardnm);
  842. /*
  843. //20091119 dhkim 진단명, 프로토콜명, 환자명, 등록번호, 차수, 구분, 상태 등 display
  844. model.setValue("/root/main/actingbasicinfo/cpgappno", cpgappno);
  845. model.setValue("/root/main/actingbasicinfo/prtldg", prtldg);
  846. model.setValue("/root/main/actingbasicinfo/prcpdd", prcpdd);
  847. model.setValue("/root/main/actingbasicinfo/sickclsnm", sickclsnm);
  848. model.setValue("/root/main/actingbasicinfo/prtlnm", prtlnm);
  849. model.setValue("/root/main/actingbasicinfo/prtldg_d", prtldg_d);
  850. model.setValue("/root/main/actingbasicinfo/inptflag", inptflag);
  851. model.setValue("/root/main/actingbasicinfo/detstatus", detstatus);
  852. model.setValue("/root/main/actingbasicinfo/disp_patnm", disp_patnm);
  853. model.setValue("/root/main/actingbasicinfo/disp_pid", disp_pid);
  854. model.setValue("/root/main/actingbasicinfo/disp_age", disp_age);
  855. model.setValue("/root/main/actingbasicinfo/disp_depthngnm", disp_depthngnm);
  856. model.setValue("/root/main/actingbasicinfo/disp_orddrnm", disp_orddrnm);
  857. model.setValue("/root/main/actingbasicinfo/careinrmdd", careinrmdd);
  858. model.setValue("/root/main/actingbasicinfo/wardcd", wardcd);
  859. model.setValue("/root/main/actingbasicinfo/wardnm", wardnm);
  860. */
  861. /*
  862. //2010.01.25 dhkim - 주석처리
  863. cpgappno = model.getValue("/root/main/chemoinfo/chemolist["+ curRow + "]/cpgappno");
  864. prtldg = model.getValue("/root/main/chemoinfo/chemolist["+ curRow + "]/prtldg");
  865. prcpdd = model.getValue("/root/main/chemoinfo/chemolist["+ curRow + "]/prcpdd");
  866. //20091119 dhkim 진단명, 프로토콜명, 환자명, 등록번호, 차수, 구분, 상태 등 display
  867. model.setValue("/root/main/actingbasicinfo/sickclsnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/sickclsnm"));
  868. model.setValue("/root/main/actingbasicinfo/prtlnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/prtlnm"));
  869. model.setValue("/root/main/actingbasicinfo/prtldg", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/prtldg"));
  870. model.setValue("/root/main/actingbasicinfo/prtldg_d", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/prtldg_d"));
  871. model.setValue("/root/main/actingbasicinfo/inptflag", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/inptflag"));
  872. model.setValue("/root/main/actingbasicinfo/detstatus", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/detstatus"));
  873. model.setValue("/root/main/actingbasicinfo/disp_patnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/hngnm"));
  874. model.setValue("/root/main/actingbasicinfo/disp_pid", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/pid"));
  875. model.setValue("/root/main/actingbasicinfo/disp_age", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/age"));
  876. model.setValue("/root/main/actingbasicinfo/disp_depthngnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/depthngnm"));
  877. model.setValue("/root/main/actingbasicinfo/disp_orddrnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/orddrnm"));
  878. model.setValue("/root/main/actingbasicinfo/careinrmdd", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/careinrmdd"));
  879. model.setValue("/root/main/actingbasicinfo/wardcd", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/wardcd"));
  880. model.setValue("/root/main/actingbasicinfo/wardnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/wardnm"));
  881. */
  882. //var cpgappno = model.getValue("/root/main/chemoinfo/chemolist["+ pGrd.row + "]/cpgappno");
  883. //var prtldg = in_actingprtldg.value;
  884. /*
  885. //20091119 dhkim 불필요한 visible로 판단되어 주석처리함
  886. var prcpddidx = fGridfindColIdx(grd_acting,"prcpdd");
  887. var prcpdd = "";
  888. grd_acting.colWidth(prcpddidx) = 0;
  889. grd_acting.colHidden(prcpddidx) = true;
  890. if (prtldg == "") { //프로토콜 차수가없을 경우 적용일자를 display한다.
  891. var prcpdd = "";
  892. grd_acting.colWidth(prcpddidx) = 80;
  893. grd_acting.colHidden(prcpddidx) = false;
  894. }
  895. */
  896. var xPathSend = "/root/send";
  897. var xPathSendReqdata = "/root/send/reqdata";
  898. //항암처방조회시 필요한 key : cpgappno, prcpdd, prtldg
  899. model.removeNodeset(xPathSend);
  900. model.makeNode(xPathSendReqdata);
  901. model.makeValue(xPathSendReqdata + "/cpgappno",cpgappno );
  902. model.makeValue(xPathSendReqdata + "/prcpdd",prcpdd );
  903. model.makeValue(xPathSendReqdata + "/prtldg",prtldg );
  904. submit("TRMNI02004");
  905. var cnt = 0;
  906. var nodeCnt = getNodesetCount("/root/main/actinginfo/actinglist");
  907. for( var i = 1; i <= nodeCnt; i++ ) {
  908. //------------------(20081006)
  909. var saveflag = model.getValue("/root/main/actinginfo/actinglist["+i+"]/saveflag");
  910. if( saveflag == "D" ) {//반환인 경우 그리드 색 변경
  911. grd_acting.rowstyle( i , "data", "background-color") = "#FFCCCC";
  912. } else {
  913. grd_acting.rowstyle( i , "data", "background-color") = "#FFFFFF";
  914. }
  915. //------------------(20081006)
  916. if( model.getValue("/root/main/actinginfo/actinglist["+i+"]/chk") == "true" ){
  917. grd_acting.isReadOnly(i,0) = true;
  918. cnt++
  919. }
  920. //20090407 dhkim 반환처방의 경우 체크박스 해제 및 비활성화처리
  921. else if(saveflag == "D"){
  922. grd_acting.isReadOnly(i,0) = true;
  923. }
  924. else{
  925. grd_acting.isReadOnly(i,0) = false;
  926. }
  927. if ( model.getValue("/root/main/actinginfo/actinglist["+i+"]/prtlabsnyn") == "Y" ) {
  928. grd_acting.isReadOnly(i,0) = true;
  929. grd_acting.rowstyle( i , "data", "background-color") = "#ffbbd5";
  930. }
  931. }
  932. if( cnt == nodeCnt ) {//All 체크 되어 있으면
  933. grd_acting.fixedcellcheckbox(0,0) = false;
  934. }
  935. var drugmastspec;
  936. var spclcd;
  937. for( i = grd_acting.fixedRows; i < grd_acting.rows; i++) {
  938. drugmastspec = grd_acting.valueMatrix(i, grd_acting.colRef("drugmastspec"));
  939. spclcd = new Array();
  940. spclcd = drugmastspec.split("|");
  941. if(spclcd[13] == "D") {
  942. grd_acting.cellStyle("background-color", i, grd_acting.colRef("prcpcd"), i, grd_acting.colRef("prcpcd")) = "#ffff00"
  943. }
  944. }
  945. model.refresh();
  946. }
  947. // --------------------------------------------------
  948. //진료예약정보/검사예약정보 DISPLAY
  949. // --------------------------------------------------
  950. function fGridReservationInfo() {
  951. var pGrd = grd_chemo;
  952. var xPathMainCond = "/root/main/cond";
  953. //값설정
  954. var rsrvinfoflag = model.getValue(xPathMainCond + "/rsrvinfoflag");
  955. if(rsrvinfoflag == 1)
  956. model.toggle("case1");
  957. else if(rsrvinfoflag == 2)
  958. model.toggle("case2");
  959. //체크
  960. if (pGrd.row <= 0) {
  961. //alert("등록번호가 존재하지 않습니다");
  962. messageBox("자료가","I004");
  963. model.setValue("/root/main/patdetinfo/rsrvinfocnt/ordrsrvinfocnt","0");
  964. model.setValue("/root/main/patdetinfo/rsrvinfocnt/testrsrvinfocnt","0");
  965. model.removenode("/root/main/patdetinfo/ordrsrvinfo");
  966. model.removenode("/root/main/patdetinfo/testrsrvinfo");
  967. model.refresh();
  968. return;
  969. }
  970. var ipid = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/pid");
  971. var iorddd= model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/prcpdd");
  972. var iorddeptcd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/orddeptcd");
  973. var iorddrid = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/orddrid");
  974. var xPathSend = "/root/send";
  975. var xPathReqData = "/root/send/reqdata";
  976. model.removeNodeset(xPathSend);
  977. model.makeNode(xPathReqData);
  978. model.makeValue(xPathReqData + "/ordrsrvinforef/pid", ipid);
  979. model.makeValue(xPathReqData + "/ordrsrvinforef/orddd", iorddd);
  980. model.makeValue(xPathReqData + "/ordrsrvinforef/orddeptcd", iorddeptcd);
  981. model.makeValue(xPathReqData + "/ordrsrvinforef/orddrid", iorddrid);
  982. model.makeValue(xPathReqData + "/testrsrvinforef/pid", ipid);
  983. model.makeValue(xPathReqData + "/testrsrvinforef/orddd", iorddd);
  984. submit("TRMNI02001");
  985. model.refresh();
  986. }
  987. //------------------------------------------------------------------------
  988. // chemo_row change 시 뒤 화면에 정보를 display함
  989. // desc : - 입실등록되지 않은 환자 퇴실등록버튼, 환자카드출력버튼 비활성화
  990. // - 수납완료된 환자의 퇴실취소버튼 비활성화처리
  991. // 20091119 dhkim
  992. // 메인리스트의 rowChange이벤트시에는 switch의 메인부분만 변경하도록함
  993. // (항암처방전송화면은 항암처방전송버튼 클릭 이벤트시에 세팅함)
  994. //------------------------------------------------------------------------
  995. function fGrdChemoRowChange() {
  996. var pGrd = grd_chemo;
  997. var row = pGrd.row;
  998. //20091119 dhkim itc 요청으로 줄바꿈 실행시 상단세팅 삭제. 요청번호(9091) //20090702 dhkim 상단정보호출 추가 (rowChange시)
  999. //fSetPatInfo_chemo() ;
  1000. //20090123 dhkim
  1001. //변경요청내역 반영 itc김숙인
  1002. //입실등록이 되지 않은 환자 선택시 퇴실등록 버튼 비활성화
  1003. var calcdd = model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/calcdd");
  1004. var calctm = model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/calctm");
  1005. if(calcdd != '' && calctm != ''){
  1006. btn_outrgst.disabled = false;//입실등록 된 경우 퇴실등록버튼 활성화
  1007. btn_prnt.disabled = false;//자동출력(카드출력)
  1008. }else{
  1009. btn_outrgst.disabled = true;//입실등록 안된 경우 퇴실등록버튼 비활성화
  1010. btn_prnt.disabled = true;
  1011. }
  1012. //20090122 dhkim
  1013. //수납완료된 환자의 퇴실취소버튼 비활성화
  1014. var rcptyn = model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/rcptyn");
  1015. if (row <= 0 ) return;
  1016. //입실시간/퇴실시간
  1017. model.setValue("/root/main/careinfo/calcdd",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/calcdd"));
  1018. model.setValue("/root/main/careinfo/calctm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/calctm"));
  1019. model.setValue("/root/main/careinfo/caredschrmdd",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/dschnotidd"));
  1020. model.setValue("/root/main/careinfo/caredschrmtm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/dschnotitm"));
  1021. //20091119 dhkim
  1022. //항암처방전송화면은 항암처방전송버튼 클릭 이벤트시에 세팅하도록 변경
  1023. /*
  1024. //acting화면
  1025. model.setValue("/root/main/actingbasicinfo/sickclsnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/sickclsnm"));
  1026. model.setValue("/root/main/actingbasicinfo/prtlnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/prtlnm"));
  1027. //20090225 dhkim prtldg_d 추가 (itc요청사항)
  1028. model.setValue("/root/main/actingbasicinfo/prtldg",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/prtldg"));
  1029. model.setValue("/root/main/actingbasicinfo/prtldg_d",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/prtldg_d"));
  1030. model.setValue("/root/main/actingbasicinfo/inptflag",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/inptflag"));
  1031. model.setValue("/root/main/actingbasicinfo/detstatus",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/detstatus"));
  1032. model.setValue("/root/main/actingbasicinfo/disp_patnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/hngnm"));
  1033. model.setValue("/root/main/actingbasicinfo/disp_pid",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/pid"));
  1034. model.setValue("/root/main/actingbasicinfo/disp_age",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/age"));
  1035. model.setValue("/root/main/actingbasicinfo/disp_depthngnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/depthngnm"));
  1036. model.setValue("/root/main/actingbasicinfo/disp_orddrnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/orddrnm"));
  1037. model.setValue("/root/main/actingbasicinfo/careinrmdd",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/careinrmdd"));
  1038. //20090224 dhkim 추가
  1039. model.setValue("/root/main/actingbasicinfo/wardcd", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/wardcd"));
  1040. model.setValue("/root/main/actingbasicinfo/wardnm", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/wardnm"));
  1041. */
  1042. //------------------(20081006)
  1043. var detstatus = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/detstatus");
  1044. //if (detstatus.indexOf('간호퇴원확정') != -1 ) {
  1045. //20090122 dhkim
  1046. //수납여부 조건 추가 (심사완료안하고 수납바로한 경우c상태로 남아있으므로 퇴실취소버튼 비활성화처리)
  1047. if(detstatus.indexOf('ⓒ') != -1 && rcptyn == 'Y'){//20081208 dhkim
  1048. //퇴실정리완료상태, 수납완료상태
  1049. //20090216 dhkim
  1050. //입실등록, 퇴실등록, 퇴실취소 버튼 비활성화
  1051. btn_outcancel.disabled = true;//퇴실취소 비활성화
  1052. btn_inrgst.disabled = true;//입실등록 비활성화
  1053. btn_outrgst.disabled = true;//퇴실등록 비활성화
  1054. } else {
  1055. //정리안된상태일때
  1056. btn_outcancel.disabled = false;//퇴실취소활성화
  1057. //20090216 dhkim
  1058. //입실등록, 퇴실등록, 퇴실취소 버튼 활성화
  1059. btn_inrgst.disabled = false;//입실등록 활성화
  1060. btn_outrgst.disabled = false;//퇴실등록 활성화
  1061. }
  1062. //------------------(20081006)
  1063. /*20090209
  1064. if(model.getValue("/root/main/actingbasicinfo/careinrmdd") !='') {
  1065. btn_prnt.disabled = "false";
  1066. //자동출력(카드출력)
  1067. }
  1068. else {
  1069. btn_prnt.disabled = "true";
  1070. }
  1071. */
  1072. model.refresh();
  1073. }
  1074. //----------------------------------------------
  1075. // acting_row change 시 입력불가 여부 확인
  1076. //----------------------------------------------
  1077. function fGrdActingCheck() {
  1078. var pGrdCh = grd_chemo;
  1079. var pGrdAc = grd_acting;
  1080. var rowCh = pGrdCh.row;
  1081. var rowAc = pGrdAc.row;
  1082. if (rowCh <= 0) return;
  1083. if (rowAc <= 0) return;
  1084. //차수로 비교
  1085. var sChemo = model.getValue("/root/main/chemoinfo/chemolist[" + rowCh + "]/prtldg");
  1086. var prcpmixno = model.getValue("/root/main/actinginfo/actinglist[" + rowAc + "]/prcpmixno");
  1087. var sActing = model.getValue("/root/main/actinginfo/actinglist[" + rowAc + "]/prtldg");
  1088. var sRowstart;
  1089. var sRowend;
  1090. sRowstart = 1;
  1091. sRowend = pGrdAc.rows;
  1092. //현재
  1093. for (var row=sRowstart ; row<sRowend ; row++) {
  1094. var saveflagActing = model.getValue("/root/main/actinginfo/actinglist[" + row + "]/saveflag");
  1095. var sActing = model.getValue("/root/main/actinginfo/actinglist[" + row + "]/prtldg");
  1096. var prtl = model.getValue("/root/main/actinginfo/actinglist[" + row + "]/prtldg");
  1097. var col = pGrdAc.col;
  1098. var colnm = pGrdAc.colAttribute(col,"ref");
  1099. if (prtl == "N") {
  1100. switch (colnm) {
  1101. case "chk":
  1102. pGrdAc.isReadOnly(row,col,row,col) = false;
  1103. if (sChemo != sActing) {
  1104. pGrdAc.isReadOnly(row,col,row,col) = true;
  1105. break;
  1106. }
  1107. if (saveflagActing == "Y") {
  1108. pGrdAc.isReadOnly(row,col,row,col) = true;
  1109. continue;
  1110. }
  1111. //20090408 dhkim 반환처방 선택불가
  1112. if (saveflagActing == "D") {
  1113. pGrdAc.isReadOnly(row,col,row,col) = true;
  1114. model.setValue("/root/main/actinginfo/actinglist[" + row + "]/chk", "false");
  1115. model.refresh();
  1116. continue;
  1117. }
  1118. if (model.getValue("/root/main/cond/chk_prcpmixno") == "Y") { //동일차수와 동일 MIX는 자동으로 설정되도록 처리
  1119. if (prcpmixno == model.getValue("/root/main/actinginfo/actinglist[" + row + "]/prcpmixno")
  1120. && prcpmixno != "" && prcpmixno != "-" ) {
  1121. model.setValue("/root/main/actinginfo/actinglist[" + row + "]/chk", model.getValue("/root/main/actinginfo/actinglist[" + rowAc + "]/chk"));
  1122. model.refresh();
  1123. } else {
  1124. break;
  1125. }
  1126. }
  1127. }
  1128. }
  1129. }
  1130. }
  1131. //----------------------------------------------
  1132. //
  1133. //----------------------------------------------
  1134. function fGrdOnEnterCell() {
  1135. var pGrdCh = grd_chemo;
  1136. var pGrdAc = grd_acting;
  1137. var rowCh = pGrdCh.row;
  1138. var rowAc = pGrdAc.row;
  1139. if (rowCh <= 0) return;
  1140. if (rowAc <= 0) return;
  1141. //-------------------------------------------------------------------------------------------------
  1142. //차수로 비교
  1143. var sChemo = model.getValue("/root/main/chemoinfo/chemolist[" + rowCh + "]/prtldg");
  1144. var prcpmixno = model.getValue("/root/main/actinginfo/actinglist[" + rowAc + "]/prcpmixno");
  1145. var sActing = model.getValue("/root/main/actinginfo/actinglist[" + rowAc + "]/prtldg");
  1146. var sRowstart;
  1147. var sRowend;
  1148. var saveflagActing = model.getValue("/root/main/actinginfo/actinglist[" + rowAc + "]/saveflag");
  1149. var col = pGrdAc.col;
  1150. var colnm = pGrdAc.colAttribute(col,"ref");
  1151. if ( colnm == "chk") {
  1152. pGrdAc.isReadOnly(rowAc,col) = false;
  1153. if (saveflagActing == "Y") pGrdAc.isReadOnly(rowAc,col,rowAc,col) = true;
  1154. //20090408 dhkim 반환처방 readonly
  1155. if (saveflagActing == "D") pGrdAc.isReadOnly(rowAc,col,rowAc,col) = true;
  1156. if (sChemo != sActing) pGrdAc.isReadOnly(rowAc,col,rowAc,col) = true;
  1157. } else {
  1158. pGrdAc.isReadOnly(rowAc,col,rowAc,col) = true;
  1159. }
  1160. }
  1161. //----------------------------------------------
  1162. //입원저장
  1163. //----------------------------------------------
  1164. function fInptSave() {
  1165. var pGrd = grd_chemo;
  1166. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  1167. var prtlnm = model.getValue(xPathChemoList + "[" + pGrd.row + "]/prtlnm");
  1168. //----------------------------------------------
  1169. //체크
  1170. //----------------------------------------------
  1171. if (in_indd.value == "" || in_intm.value == "") {
  1172. messageBox("입실일시와 입실시간","I003"); //필수입력입니다.ㅋ`
  1173. return false;
  1174. }
  1175. if (pGrd.rows <= 1 || pGrd.row <= 0 ) {
  1176. messageBox("자료가","I004");
  1177. return false;
  1178. }
  1179. if( prtlnm != "" ) {//외래 프로토콜 환자만 체크
  1180. //if (model.getValue(xPathChemoList + "[" + pGrd.row + "]/detstatus") != "외래") {
  1181. // messageBox("외래환자가 아닌 환자는 처리","E001"); //할 수 없습니다.
  1182. // return;
  1183. //}
  1184. //if (model.getValue(xPathChemoList + "[" + pGrd.row + "]/inptflag") != "") {
  1185. // messageBox("입원환자는 처리","E001"); //할 수 없습니다.
  1186. // return;
  1187. //}
  1188. if (model.getValue(xPathChemoList + "[" + pGrd.row + "]/prcpdd") != model.getValue("/root/main/careinfo/calcdd")) {
  1189. messageBox("적용일자와 입실일자가 다르면 처리 ","E001"); //할 수 없습니다.
  1190. return false;
  1191. }
  1192. }
  1193. var iRow = pGrd.row;
  1194. var iindd = model.getValue(xPathChemoList + "[" + iRow + "]/prcpdd"); //입원일자
  1195. var ipid = model.getValue(xPathChemoList + "[" + iRow + "]/pid"); //등록번호
  1196. var icalcdd = model.getValue("/root/main/careinfo/calcdd"); //입실일시(필드가 변경되었음:calcddd)
  1197. var icalctm = model.getValue("/root/main/careinfo/calctm"); //입실시간(필드가 변경되었음:calcdtm)
  1198. icalctm = icalctm.substring(0,4);
  1199. var iinsukind = model.getValue(xPathChemoList + "[" + iRow + "]/inptinsukind"); //보험유형(?)
  1200. var isuppkind = model.getValue(xPathChemoList + "[" + iRow + "]/inptsuppkind"); //보조유형(?)
  1201. var isuppkinresn = model.getValue(xPathChemoList + "[" + iRow + "]/inptsuppkindresn"); //보조유형사유(?)
  1202. var iorddeptcd = model.getValue(xPathChemoList + "[" + iRow + "]/orddeptcd"); //진료과
  1203. var iorddrid = model.getValue(xPathChemoList + "[" + iRow + "]/orddrid"); //진료과의사
  1204. var iuserid = getUserId(); //사용자
  1205. var icalcdd = model.getValue("/root/main/careinfo/calcdd"); //입실일자(원무용)
  1206. var icalctm = model.getValue("/root/main/careinfo/calctm"); //입실시간(원무용)
  1207. icalctm = icalctm.substring(0,4);
  1208. var icpgappno = model.getValue(xPathChemoList + "[" + iRow + "]/cpgappno"); //CPG적용번호
  1209. var iprtldg = model.getValue(xPathChemoList + "[" + iRow + "]/prtldg"); //프로토콜차수
  1210. var icretno = ""; //입퇴원내역생성번호(빈값으로 app에서 반영한 후 다른 곳에 사용한다.)
  1211. var iwardcd = model.getValue("/root/main/wardcdinfo/wardcdlist/chemowardcd"); //특수주사실병동
  1212. var inptflag = model.getValue(xPathChemoList + "[" + iRow + "]/inptflag"); //진료과의사
  1213. // 기 입실 등록된 환자인 경우 입실등록 중복 처리 안되도록 제어
  1214. var chkCalcdd = model.getValue(xPathChemoList + "[" + iRow + "]/calcdd");
  1215. var chkCalctm = model.getValue(xPathChemoList + "[" + iRow + "]/calctm");
  1216. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = 'C06']/cdid") == "Y"){
  1217. if(model.getValue("/root/temp/pid") != ipid){
  1218. messageBox("선택한 환자와 외래예약정보가 일치 하지 않습니다. 환자를 다시 선택하세요.","I");
  1219. return false;
  1220. }
  1221. }
  1222. if (chkCalcdd != "" || chkCalctm != "") {
  1223. messageBox("이미 입실등록 된 환자입니다.\r\n\r\n입실시간 변경을 원하실 경우 [시간변경] 버튼을 이용하세요.", "E999");
  1224. return false;
  1225. }
  1226. var xPathOrdrsvInfo = "/root/main/patdetinfo/ordrsrvinfo";
  1227. var cnt = 0;
  1228. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = 'C06']/cdid") == "Y"){
  1229. // 동일 예약일/진료과/진료의로 미수행된 예약이 있는경우 입실저장 불가능 하도록 제어(2014.10.21)
  1230. for(var i = 1; i <= getNodesetCount(xPathOrdrsvInfo) ; i++){
  1231. if(model.getValue(xPathOrdrsvInfo + "[" + i + "]/orddd") == iindd && model.getValue(xPathOrdrsvInfo + "[" + i + "]/orddrid") == iorddrid && model.getValue(xPathOrdrsvInfo + "[" + i + "]/orddeptcd") == iorddeptcd){
  1232. if(model.getValue(xPathOrdrsvInfo + "[" + i + "]/execflag") != "Y"){
  1233. cnt++;
  1234. }
  1235. }
  1236. }
  1237. if(cnt > 0){
  1238. messageBox("동일 예약일/진료과/진료의로 미수행된 예약이 존재하여 입실저장이 불가능 합니다.","I");
  1239. return false;
  1240. }
  1241. }
  1242. //170306_항암주사실환자_동명이인_체크_By AYS
  1243. var chkcnt = 0;
  1244. var ihngnm = model.getValue(xPathChemoList + "[" + iRow + "]/hngnm");
  1245. for(var i= pGrd.fixedRows; i < pGrd.rows; i++) {
  1246. chknm = pGrd.valueMatrix(i, pGrd.colRef("hngnm"));
  1247. if(ihngnm == chknm){
  1248. chkcnt++;
  1249. }
  1250. }
  1251. if(chkcnt > 1) {
  1252. var rtn = messageBox("동명이인 환자입니다. 진행하시겠습니까?", "Q");
  1253. if(rtn != "6") {
  1254. return false;
  1255. }
  1256. }
  1257. //20090227 dhkim
  1258. //원무에 전달할 파라미터값을 암센터병동에 입원시킬경우 C, BMT주사실병동에 입원시킬경우 B로 넘긴다
  1259. //var iflag = "C"; //구분자(생성)
  1260. var iflag = '';
  1261. // [drprcpetc2] Y : 암센터주사실, B : BMT주사실
  1262. if(drprcpetc2 == 'Y'){
  1263. iflag = 'C';
  1264. } else if(drprcpetc2 == 'B') {
  1265. iflag = 'B';
  1266. } else {
  1267. messageBox('메뉴그룹에 해당 사용처가 등록되어 있지 않습니다.', 'E999');
  1268. return false;
  1269. }
  1270. var scretno = model.getValue(xPathChemoList + "[" + iRow + "]/inptcretno"); //입원생성번호
  1271. //----------------------------------------------
  1272. //0. send 노드생성(보내는 instance 제거)
  1273. //----------------------------------------------
  1274. var xPathSend = "/root/send";
  1275. model.removeNodeset(xPathSend);
  1276. model.makeNode(xPathSend+ "/reqdata");
  1277. model.makeNode(xPathSend+ "/senddata");
  1278. model.makeNode(xPathSend+ "/savedata");
  1279. model.makeValue("/root/send/reqdata2/pid", ipid);
  1280. model.makeValue("/root/send/reqdata2/orddd", getCurrentDate());
  1281. submit("TRMNI02016");
  1282. var cnt = model.getValue("/root/tempinfo/bfjudglist/cnt");
  1283. if(cnt > 0) {
  1284. messageBox("당일 외래에 사전심사 진행중인 처방이 존재합니다. 입원하실수 없습니다.", "E");
  1285. return;
  1286. }
  1287. //----------------------------------------------
  1288. // 진단명 복사를 위한 정보
  1289. //----------------------------------------------
  1290. var copydiagnmHeader = "instcd▦pid▦orddd_old▦cretno_old▦genrflagcd_old▦diagdd▦orddd▦cretno▦genrflagcd▩";
  1291. var copydiagnmData = model.getValue(xPathChemoList + "[" + iRow + "]/instcd") + "▦"//기관코드
  1292. + model.getValue(xPathChemoList + "[" + iRow + "]/pid") + "▦"//등록번호
  1293. + model.getValue(xPathChemoList + "[" + iRow + "]/otptorddd") + "▦"//복사할 진료일자
  1294. + model.getValue(xPathChemoList + "[" + iRow + "]/otptcretno") + "▦"//복사할 생성번호
  1295. + "O" + "▦"//복사할 환자구분
  1296. + getCurrentDate().substring(0, 8) + "▦"//진단일
  1297. + icalcdd + "▦"//진료일자
  1298. + "" + "▦"//생성버호
  1299. + "I" + "▩";//외래입원구분
  1300. model.makeValue(xPathSend+ "/diagsave",copydiagnmHeader + copydiagnmData);
  1301. //----------------------------------------------
  1302. //1. 재조회를 위한 조건
  1303. //----------------------------------------------
  1304. //20090223 dhkim
  1305. //센터코드, 병동코드 추가
  1306. var wardcd = model.getValue("/root/main/cond/wardcd");
  1307. var reqdataHeader = "prcpdd▦pid▦indschacptstat▦wardcd▦centcd▩";
  1308. var reqdataData = model.getValue("/root/main/cond/prcpdd") + "▦"
  1309. + model.getValue("/root/main/cond/pid") + "▦"
  1310. + model.getValue("/root/main/cond/indschacptstat") + "▦"
  1311. + wardcd + "▦"
  1312. + centcd + "▩";
  1313. model.setValue(xPathSend+ "/reqdata",reqdataHeader + reqdataData);
  1314. //----------------------------------------------
  1315. //2. 입원등록시 상태 변경
  1316. //----------------------------------------------
  1317. var senddataHeader = "cpgappno▦prtldg▦cretno▦pid▦calcdd▦calctm▦prtlnm▦inptflag▩";
  1318. var senddataData = icpgappno + "▦"
  1319. + iprtldg + "▦"
  1320. + icretno + "▦"
  1321. + ipid + "▦"
  1322. + icalcdd + "▦"
  1323. + icalctm + "▦"
  1324. + prtlnm + "▦"
  1325. + inptflag + "▩";
  1326. model.setValue(xPathSend+ "/senddata",senddataHeader + senddataData);
  1327. //----------------------------------------------
  1328. //3. 입원등록 원무 정보를 반영한다.
  1329. //----------------------------------------------
  1330. var savedataHeader = "pid▦indd▦careinrmdd▦careinrmtm▦insukind▦suppkind▦suppkinresn▦orddeptcd▦orddrid▦userid▦flag▦careinrmrgstrid▦calcdd▦calctm▦wardcd▦scretno▩";
  1331. var savedataData = ipid + "▦"
  1332. //20090225 dhkim 수정 indd가 들어가야함
  1333. //+ icalcdd + "▦"
  1334. + iindd + "▦"
  1335. + icalcdd + "▦"
  1336. + icalctm + "▦"
  1337. + iinsukind + "▦"
  1338. + isuppkind + "▦"
  1339. + isuppkinresn+ "▦"
  1340. + iorddeptcd + "▦"
  1341. + iorddrid + "▦"
  1342. + iuserid + "▦"
  1343. + iflag + "▦"
  1344. + iuserid + "▦"
  1345. + icalcdd + "▦"
  1346. + icalctm + "▦"
  1347. + iwardcd + "▦"
  1348. + scretno + "▩";
  1349. model.setValue(xPathSend+ "/savedata",savedataHeader + savedataData);
  1350. //common.js에 있음
  1351. //20090224 dhkim
  1352. //입원등록 메세지를 bmt센터/암센터 환자 여부에 따라 다르게 등록한다.
  1353. var inMsg = '';
  1354. var patCentcd = model.getValue(xPathChemoList + "[" + iRow + "]/centcd");
  1355. var patCentnm = model.getValue(xPathChemoList + "[" + iRow + "]/centnm");
  1356. //20090429 dhkim bmt응급등록환자가 아닌경우만 메세지변경
  1357. var wardcd = model.getValue(xPathChemoList + "[" + iRow + "]/wardcd");
  1358. //20090429 dhkim 암센터/bmt주사실명칭 및 코드 임시변수에 저장
  1359. var cncrcd = model.getValue('/root/nursdeptinfo/cncrinfo/nursdeptlist/deptcd');//암센터주사실코드
  1360. var cncrnm = model.getValue('/root/nursdeptinfo/cncrinfo/nursdeptlist/deptnm');//암센터주사실명
  1361. var cncrctcd = model.getValue('/root/nursdeptinfo/cncrinfo/nursdeptlist/centcd');//암센터코드
  1362. var cncrctnm = model.getValue('/root/nursdeptinfo/cncrinfo/nursdeptlist/centnm');//암센터명
  1363. var bmtcd = model.getValue('/root/nursdeptinfo/bmtinfo/nursdeptlist/deptcd');//bmt주사실코드
  1364. var bmtnm = model.getValue('/root/nursdeptinfo/bmtinfo/nursdeptlist/deptnm');//bmt주사실명
  1365. var bmtctcd = model.getValue('/root/nursdeptinfo/bmtinfo/nursdeptlist/centcd');//bmt센터코드
  1366. var bmtctnm = model.getValue('/root/nursdeptinfo/bmtinfo/nursdeptlist/centnm');//bmt센터명
  1367. //20090408 dhkim 해당선택된 환자의 row를 임시변수에 저장
  1368. var pidRow = grd_chemo.row;
  1369. //20090429 dhkim
  1370. //암센터주사실및 bmt주사실 대상환자가 아닌경우의 메세지
  1371. //
  1372. //[암센터주사실대상자가 아닌경우]
  1373. // 1. 센터가 bmt센터인경우
  1374. // 2. 센터가 bmt센터가 아니면서 병동코드가 bmt주사실인 경우
  1375. //
  1376. //[bmt주사실대상자가 아닌경우]
  1377. // 1. 센터가 bmt센터가 아닌경우
  1378. // 2. 센터가 bmt센터가 아니면서 병동코드가 bmt주사실이 아닌경우
  1379. //alert('drprcpetc2-' + drprcpetc2 + ',patCentcd-' + patCentcd + ',bmtctcd-'+ bmtctcd + ',wardcd-' + wardcd + ',bmtcd-' + bmtcd + ',bmtctnm-' + bmtctnm + ',centnm-' + centnm);
  1380. if(drprcpetc2 == 'Y'){
  1381. if((patCentcd == bmtctcd) || (patCentcd != bmtctcd && wardcd == bmtcd)){
  1382. inMsg = '해당 환자는 ' + bmtctnm + ' 환자 입니다. ' + centnm + ' 로 입실등록을';
  1383. } else {
  1384. inMsg = '입실등록을';
  1385. }
  1386. } else if(drprcpetc2 == 'B') {
  1387. if (patCentcd != bmtctcd && wardcd != bmtcd) {
  1388. inMsg = '해당 환자는 ' + cncrctnm + ' 환자 입니다. ' + centnm + ' 로 입실등록을';
  1389. } else {
  1390. inMsg = '입실등록을';
  1391. }
  1392. }
  1393. /*
  1394. //20090429 dhkim 이전내용 주석처리
  1395. if(patCentcd != "" && patCentcd != centcd){
  1396. //20090408 dhkim 센터환자가 아닌경우 암센터로 세팅
  1397. if(patCentcd == '-'){
  1398. //20090429 dhkim BMT응급등록환자가 아닌경우 암센터로 세팅
  1399. if(wardcd != bmtcd && wardcd != cncrcd){
  1400. //patCentnm = '암센터주사실';
  1401. //20090429 dhkim 암센터주사실 명칭 하드코딩 수정
  1402. patCentnm = cncrnm;
  1403. }
  1404. }
  1405. inMsg = '해당 환자는 ' + patCentnm + ' 환자 입니다. ' + centnm + ' 로 입실등록을';
  1406. }else{
  1407. inMsg = '입실등록을';
  1408. }
  1409. */
  1410. if (messageBox(inMsg, 'Q003') != 6) return false;
  1411. //-------(20110422) 경북대
  1412. // 원외처방확인
  1413. var chkflag = fnoutorderchk();
  1414. var chkmsg = "";
  1415. var deptsize = getNodesetCount("/root/main/outorderinfo/deptlist");
  1416. if (chkflag == "Y" ) {
  1417. /*chkmsg = "당일 원외처방이 존재합니다.\n\n" +
  1418. "6시간이후 입퇴대상 환자일 경우\n" +
  1419. "반드시 원외처방을 D/C하시고\n" +
  1420. "원내처방으로 다시 처방하셔야 합니다.\n\n";*/
  1421. chkmsg = "처방전이 출력되지 않은 당일 원외처방이 존재합니다.\n\n" +
  1422. "동일 진료과 원외처방일 경우 원내처방으로 변경하시고,\n" +
  1423. "타 진료과의 원외처방일 경우 반드시 처방전을 출력하셔야 합니다.\n\n";
  1424. //messageBox(chkmsg, 'E999');
  1425. var inordeptnm = "원외처방 발행부서는";
  1426. for ( i=1; i<=deptsize; i++) {
  1427. var inor = model.getValue("/root/main/outorderinfo/deptlist[" + i + "]/inorddeptnm");
  1428. //alert(inor);
  1429. inordeptnm = inordeptnm + "\n" + inor;
  1430. }
  1431. alert( chkmsg + inordeptnm + " 입니다" );
  1432. //alert(inordeptnm.length);
  1433. //alert(inordeptnm);
  1434. return false;
  1435. //if (messageBox(chkmsg,'Q003',"") != 6) return;
  1436. }
  1437. //-------(20110422) 경북대
  1438. //2010.02.01 dhkim - 선택된 환자 paramter 세팅
  1439. var prt_pid = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/pid");
  1440. var prt_hngnm = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/hngnm");
  1441. var prt_sexage = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/age");
  1442. var prt_depthngnm = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/depthngnm");
  1443. var prt_orddrnm = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/orddrnm");
  1444. var prt_prtlnm = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/prtlnm");
  1445. var prt_instcd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/instcd");
  1446. var prt_prtldg_d = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/prtldg_d");
  1447. if (submit("TXMNI02006")== true ) {
  1448. var instcd = getUserInfo("dutplceinstcd");
  1449. if (instcd == '031') {
  1450. fPreview(prt_pid, prt_hngnm, prt_sexage, prt_depthngnm, prt_orddrnm, prt_prtlnm, prt_instcd, prt_prtldg_d); //환자카드출력
  1451. } else {
  1452. group1.visible = true;
  1453. }
  1454. //20090408 dhkim 입실등록 후 재조회
  1455. fGetChemoList();
  1456. //20090408 dhkim 입실등록 완료후 해당 환자를 선택된 상태로 변경
  1457. var pid = "";
  1458. for(var i = grd_chemo.fixedRows; i < grd_chemo.rows; i++) {
  1459. pid = grd_chemo.valueMatrix(i, grd_chemo.colRef("pid"));
  1460. if(pid == ipid) {
  1461. pidRow = i;
  1462. break;
  1463. }
  1464. }
  1465. grd_chemo.row = pidRow;
  1466. grd_chemo.refresh();
  1467. var patnm = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/hngnm');
  1468. var pid = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/pid');
  1469. model.removenode('/root/temp/patnm');
  1470. model.removenode('/root/temp/pid');
  1471. model.makeValue('/root/temp/patnm', '"' +patnm + '" 님');
  1472. model.makeValue('/root/temp/pid', pid);
  1473. model.refresh();
  1474. fSetPatInfo_chemo();
  1475. // 20110929 wify 경북대병원 환자 외래 덤프처방이 선택진료인지 여부 확인;
  1476. model.removenode("/root/send/chkdata");
  1477. model.makeValue("/root/send/chkdata/pid", model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/pid"));
  1478. model.makeValue("/root/send/chkdata/execdd", model.getValue("/root/main/cond/prcpdd"));
  1479. submit("TRMNI02042");
  1480. if (model.getValue("/root/temp/chkdata/choiyn") == "Y") {
  1481. fCheckSpecOrdSign();
  1482. }
  1483. // 항암동의서 확인 2012.06.18 KJS
  1484. // 항암프로토콜 종류
  1485. var pid = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/pid');
  1486. var appdd = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/prcpdd');
  1487. var prtlcd = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/prtlcd');
  1488. model.removenode("/root/send/xproto")
  1489. model.makeValue("/root/send/xproto/pid", pid);
  1490. model.makeValue("/root/send/xproto/appdd", appdd);
  1491. model.makeValue("/root/send/xproto/prtlcd", prtlcd);
  1492. submit("TRMNI02014");
  1493. var xappdd = model.getValue("/root/temp/xprotcnt/xappdd");
  1494. model.makeValue("/root/send/xproto/xappdd", xappdd);
  1495. submit("TRMNI02015");
  1496. var cnt = model.getValue("/root/temp/xprotcnt/cnt");
  1497. if (cnt < 1){
  1498. if (xappdd == 'N')
  1499. {
  1500. messageBox("해당 프로토콜에 대한 항암화학 동의서가 없으니 다시 확인해주시기 바랍니다.","I999");
  1501. } else {
  1502. messageBox("항암 프로토콜이 달라졌으니 동의서를 새로 받아주시기 바랍니다.","I999");
  1503. }
  1504. }
  1505. // fGetPrcpSetList();
  1506. // if(grd_prcplist2.rows > 0) {
  1507. // fSavePrcpInfo();
  1508. // } else {
  1509. // }
  1510. return true;
  1511. } else {
  1512. //alert("저장실패");
  1513. messageBox("입원등록이 ","E009"); //실패하였습니다.
  1514. fGetChemoList();
  1515. return false;
  1516. }
  1517. }
  1518. //----------------------------------------------
  1519. //퇴실저장
  1520. //----------------------------------------------
  1521. //20090224 dhkim
  1522. //flag추가 - flag 가 grid인 경우는 그리드에서 오른쪽 마우스로 들어온 경우임
  1523. function fdschSave(flag) {
  1524. var pGrd = grd_chemo;
  1525. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  1526. //----------------------------------------------
  1527. //체크
  1528. //----------------------------------------------
  1529. if (pGrd.rows <= 1 || pGrd.row <= 0 ) {
  1530. messageBox("자료가","I004"); //없습니다.
  1531. return;
  1532. }
  1533. //20090224 dhkim
  1534. //처방전송 메세지를 환자의 입실된병동과 조회된 병동이 다를경우 blocking한다.
  1535. var sendMsg = '';
  1536. var wardcd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/wardcd");
  1537. var wardnm = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/wardnm");
  1538. if(wardcd != suppdeptcd){
  1539. messageBox('해당 환자는 ' + wardnm + ' 환자 입니다. ' + suppdeptnm + ' 에 입실된 환자만 퇴실등록 가능합니다.', 'E999');
  1540. //퇴실일시, 퇴실시간 초기화
  1541. model.setValue('/root/main/careinfo/caredschrmdd', '');
  1542. model.setValue('/root/main/careinfo/caredschrmtm', '');
  1543. model.refresh();
  1544. return;
  1545. }
  1546. //20110923 wify 경북대병원 선택진료 관련 추가
  1547. fChkSpecOrdPrt();
  1548. //20090306 dhkim
  1549. //퇴실등록은 퇴원예고, 병동입원승인난 환자만 할것
  1550. var detstatus = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/detstatus");
  1551. //alert(model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/dschnotidd"));
  1552. //alert(detstatus);
  1553. //alert(detstatus.indexOf('ⓓ'));
  1554. //alert(detstatus.indexOf('■'));
  1555. if(detstatus.indexOf('ⓓ') == -1 && detstatus.indexOf('■') == -1 ) {
  1556. messageBox('환자의 구분이 ⓓ(퇴원예고)이거나 ■(병동입원승인) 상태일 때에만 퇴실등록 가능합니다.', 'E999');
  1557. return;
  1558. }
  1559. //20090224 dhkim
  1560. //flag추가함.
  1561. //그리드에서 오른쪽 마우스 클릭하여 들어온 경우
  1562. if(flag == 'grid'){
  1563. //20090123 dhkim
  1564. //itc김숙인 변경요청사항 반영
  1565. //입실시각이 입력되지 않은 상태에서 오른쪽 마우스의 퇴실정리 선택시 [입실체크 후 퇴실정리가 가능합니다.]라는 blocking메시지와 함께 퇴실정리 blocking함.
  1566. var calcdd = model.getValue("/root/main/careinfo/calcdd");
  1567. var calctm = model.getValue("/root/main/careinfo/calctm");
  1568. if(calcdd == '' || calctm == ''){
  1569. messageBox('입실체크 후 퇴실정리가 가능합니다.', 'E999');
  1570. return;
  1571. }
  1572. //퇴실일자, 시간이 없으면 현재 일시로 셋팅
  1573. if( (model.getValue("/root/main/careinfo/caredschrmdd") == "")||(model.getValue("/root/main/careinfo/caredschrmtm") == "") ) {
  1574. in_dschdd.value = getCurrentDate(); //퇴실일자
  1575. in_dschtm.value = getCurrentTime().substring(0,4); //퇴실시간
  1576. }
  1577. }
  1578. /*
  1579. if (model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/dschnotidd") != "") {
  1580. //alert("퇴실이전 환자만 퇴실이 가능 합니다");
  1581. //--(20080123추가)
  1582. //if ( detstatus.indexOf('정산완료') != -1 ||
  1583. // detstatus.indexOf('심사중') != -1 ||
  1584. // detstatus.indexOf('간호퇴원확정') != -1 ) {
  1585. // 20081208 dhkim 명칭변경
  1586. /*
  1587. if ( detstatus.indexOf('ⓕ') != -1 ||
  1588. detstatus.indexOf('ⓘ') != -1 ||
  1589. detstatus.indexOf('ⓒ') != -1 ) {
  1590. * /
  1591. if ( detstatus != 'ⓕ' &&
  1592. detstatus != 'ⓘ' &&
  1593. detstatus != 'ⓒ' ) {
  1594. if(messageBox ( "간호퇴원확정이 진행되었습니다 ", "Q003" ) == "6") { //계속진행하시겠습니까?
  1595. } else {
  1596. return;
  1597. }
  1598. }
  1599. }
  1600. //--------------------(20080930)
  1601. */
  1602. var ipid = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/pid"); //등록번호
  1603. var iindd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/prcpdd"); //입원일자
  1604. var icretno = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/inptcretno"); //입퇴원내역생성번호
  1605. var icaredschdd = model.getValue("/root/main/careinfo/caredschrmdd"); //퇴실일시
  1606. var icaredschtm = model.getValue("/root/main/careinfo/caredschrmtm"); //퇴실시간
  1607. var iprtldg = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/prtldg"); //프로토콜차수
  1608. var icpgappno = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/cpgappno"); //CPG적용번호
  1609. var prtlnm = model.getValue(xPathChemoList + "[" + pGrd.row + "]/prtlnm");
  1610. //----------------------------------------------
  1611. // 보내는 instance 제거
  1612. //----------------------------------------------
  1613. var xPathSend = "/root/send";
  1614. model.removeNodeset("/root/send");
  1615. model.makeNode(xPathSend+ "/reqdata");
  1616. model.makeNode(xPathSend+ "/senddata");
  1617. //----------------------------------------------
  1618. //1. 재조회를 위한 조건
  1619. //----------------------------------------------
  1620. //20090306 dhkim
  1621. //센터코드, 병동코드 추가
  1622. var wardcd = model.getValue("/root/main/cond/wardcd");
  1623. var reqdataHeader = "prcpdd▦pid▦indschacptstat▦wardcd▦centcd▩";
  1624. var reqdataData = model.getValue("/root/main/cond/prcpdd") + "▦"
  1625. + model.getValue("/root/main/cond/pid") + "▦"
  1626. + model.getValue("/root/main/cond/indschacptstat") + "▦"
  1627. + wardcd + "▦"
  1628. + centcd + "▩";
  1629. /*
  1630. //----------------------------------------------
  1631. //1. 재조회를 위한 조건
  1632. //----------------------------------------------
  1633. var reqdataHeader = "prcpdd▦pid▦indschacptstat▩";
  1634. var reqdataData = model.getValue("/root/main/cond/prcpdd") + "▦"
  1635. + model.getValue("/root/main/cond/pid") + "▦"
  1636. + model.getValue("/root/main/cond/indschacptstat")+ "▩";
  1637. */
  1638. model.setValue(xPathSend+ "/reqdata",reqdataHeader+reqdataData);
  1639. //----------------------------------------------
  1640. //2. 퇴실등록시 상태변경
  1641. //----------------------------------------------
  1642. var senddataHeader = "pid▦indd▦cretno▦dschnotidd▦dschnotitm▦prtldg▦cpgappno▦prtlnm▩";
  1643. var senddataData = ipid + "▦"
  1644. + iindd + "▦"
  1645. + icretno + "▦"
  1646. + icaredschdd + "▦"
  1647. + icaredschtm + "▦"
  1648. + iprtldg + "▦"
  1649. + icpgappno + "▦"
  1650. + prtlnm + "▩";
  1651. model.setValue(xPathSend+ "/senddata",senddataHeader+senddataData);
  1652. //-------(20110422) 경북대
  1653. //6시간 이상인 환자에 대해서 퇴실시 check
  1654. var chkflag0 = fnChemoIOChk();
  1655. var chkmsg = "";
  1656. /*
  1657. if (chkflag0 == "I" ) {
  1658. // 원외처방체크
  1659. var chkflag = fnoutorderchk();
  1660. var chkmsg = "";
  1661. var deptsize = getNodesetCount("/root/main/outorderinfo/deptlist");
  1662. if (chkflag == "Y" ) {
  1663. chkmsg = "당일 원외처방이 존재합니다.\n\n" +
  1664. "6시간이후 입퇴대상 환자일 경우\n" +
  1665. "반드시 원외처방을 D/C하시고\n" +
  1666. "원내처방으로 다시 처방하셔야 합니다.\n\n";
  1667. // messageBox(chkmsg, 'E999');
  1668. var inordeptnm = "원외처방 발행부서는";
  1669. for ( i=1; i<=deptsize; i++) {
  1670. var inor = model.getValue("/root/main/outorderinfo/deptlist[" + i + "]/inorddeptnm");
  1671. //alert(inor);
  1672. inordeptnm = inordeptnm + "\n" + inor;
  1673. }
  1674. alert( chkmsg + inordeptnm + " 입니다" );
  1675. return;
  1676. }
  1677. } else if (chkflag0 == "" ) {
  1678. chkmsg = "입실일시 또는 퇴실일시가 정확하지 않습니다.\n" +
  1679. "확인하시기 바랍니다";
  1680. messageBox(chkmsg, 'E999');
  1681. return;
  1682. }
  1683. */
  1684. if (chkflag0 == "" ) {
  1685. chkmsg = "입실일시 또는 퇴실일시가 정확하지 않습니다.\n" +
  1686. "확인하시기 바랍니다";
  1687. messageBox(chkmsg, 'E999');
  1688. return;
  1689. } else {
  1690. // 원외처방체크
  1691. var chkflag = fnoutorderchk();
  1692. var chkmsg = "";
  1693. var deptsize = getNodesetCount("/root/main/outorderinfo/deptlist");
  1694. if (chkflag == "Y" ) {
  1695. chkmsg = "처방전이 출력되지 않은 당일 원외처방이 존재합니다.\n\n" +
  1696. "동일 진료과 원외처방일 경우 원내처방으로 변경하시고,\n" +
  1697. "타 진료과의 원외처방일 경우 반드시 처방전을 출력하셔야 합니다.\n\n";
  1698. var inordeptnm = "원외처방 발행부서는";
  1699. for ( i=1; i<=deptsize; i++) {
  1700. var inor = model.getValue("/root/main/outorderinfo/deptlist[" + i + "]/inorddeptnm");
  1701. inordeptnm = inordeptnm + "\n" + inor;
  1702. }
  1703. alert( chkmsg + inordeptnm + " 입니다" );
  1704. return;
  1705. }
  1706. }
  1707. //-------(20110422) 경북대
  1708. //common.js에 있음
  1709. // 150818_항암주사실 요청에 의한 주석처리
  1710. //if (messageBox("퇴실등록",'Q003',"") != 6) return;
  1711. if (submit("TXMNI02008") ) {
  1712. //alert("퇴실정보가 반영되었습니다");
  1713. // 150818_항암주사실 요청에 의한 주석처리
  1714. // messageBox("입력한 퇴실일자와 퇴실시간이 반영","I001");
  1715. //open("SMMNW01200","1","20","128");
  1716. //퇴실정리프로그램 호출
  1717. model.removeNodeset("/root/temp/param");
  1718. model.makeNode("/root/temp/param");
  1719. //alert(wardcd);
  1720. //model.makeValue("/root/temp/param/wardcd",model.getValue("/root/main/wardcdinfo/wardcdlist/chemowardcd" ));
  1721. model.makeValue("/root/temp/param/wardcd", wardcd);
  1722. open("SMMNI02010", "", "", "", "SMMNI02010", "/root/temp/param/wardcd", "/root/temp/param/wardcd");
  1723. //modal("SMMNI02010" ,"", "", "", "SMMNI02010");
  1724. //메인재조회
  1725. //fInqurySelectedPrgm();
  1726. } else {
  1727. //alert("저장실패");
  1728. messageBox("퇴실등록","E009");
  1729. }
  1730. }
  1731. //----------------------------------------------
  1732. // 처방전송
  1733. //----------------------------------------------
  1734. function fActing() {
  1735. //선택사항을 저장한다.
  1736. var pGrdAc = grd_acting;
  1737. var pGrdCh = grd_chemo;
  1738. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  1739. var checkmessage = "Y";
  1740. var iRows = -1;
  1741. var chkflag;
  1742. var cnt = 0;
  1743. var FlagInfoData = "";
  1744. var RgstInfoData = "";
  1745. var PrcpInfoData = "";
  1746. var SignInfoData = "";
  1747. //----------------------------------------------
  1748. //전체체크기능(추가해야함)
  1749. //----------------------------------------------
  1750. var rowCh = pGrdCh.row;
  1751. //alert(model.getValue(xPathChemoList+ "[" + grd_chemo.row + "]/pid") + " , " + model.getValue(xPathChemoList+ "[" + grd_chemo.row + "]/hngnm") );
  1752. if (pGrdCh.rows <= 1 || pGrdCh.row <= 0 ) {
  1753. //alert("자료가 존재하지 않습니다");
  1754. messageBox("자료가","I004"); //없습니다.
  1755. return;
  1756. }
  1757. //-------------(20080930)
  1758. var detstatus = model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/detstatus");
  1759. //if (model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/detstatus") != "재원") {
  1760. //---------------------(20081006)
  1761. //퇴원예고환자도 처방전송할 수 있도록 함
  1762. //if (detstatus.indexOf('재원') == -1) {
  1763. // messageBox("재원환자이외는 처리","E001"); //할수 없습니다.
  1764. // return;
  1765. //}
  1766. //---------------------(20081006)
  1767. //20081208 dhkim 주석
  1768. if (model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/inptflag") != "실") {
  1769. //alert(model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/inptflag"));
  1770. messageBox("입실환자이외는 처방발생","E001");
  1771. return;
  1772. }
  1773. //if (model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/detstatus") == "퇴실") {
  1774. //20081208 dhkim 주석
  1775. //if (detstatus.indexOf('퇴실') != -1) {
  1776. if (detstatus.indexOf('퇴실') != -1) {
  1777. messageBox("퇴실환자는","E001");
  1778. return;
  1779. }
  1780. //alert("test--------------------20081006");
  1781. //----------------------(20080930)
  1782. //----------------------------------------------
  1783. //초기화
  1784. //----------------------------------------------
  1785. var xPathSend = "/root/send";
  1786. model.removeNodeset(xPathSend);
  1787. model.makeNode(xPathSend + "/reqdata"); //저장구분정보(saveFlagInfoVO)
  1788. model.makeNode(xPathSend + "/senddata"); //저장등록정보(saveRgstInfoVO)
  1789. // model.makeNode(xPathSend + "/inptdata"); //저장처방정보(savePrcpInfoVO)
  1790. model.makeNode(xPathSend + "/savedata"); //저장인증정보(saveSignInfoVO)
  1791. model.makeNode(xPathSend + "/savedata/saveflaginfo"); //저장구분정보(saveFlagInfoVO)
  1792. model.makeNode(xPathSend + "/savedata/savergstinfo"); //저장등록정보(saveRgstInfoVO)
  1793. model.makeNode(xPathSend + "/savedata/saveprcpinfo"); //저장처방정보(savePrcpInfoVO)
  1794. model.makeNode(xPathSend + "/savedata/savesigninfo"); //저장인증정보(saveSignInfoVO)
  1795. //----------------------------------------------
  1796. //***** 저장 후 조회조건
  1797. //----------------------------------------------
  1798. var cpgappno = model.getValue("/root/main/chemoinfo/chemolist[" + pGrdCh.row + "]/cpgappno"); //번호
  1799. var prtldg = in_actingprtldg.value;//현재차수
  1800. //alert('현재차수: ' + prtldg);
  1801. var reqdataHeader = "cpgappno▦prcpdd▦prtldg▦lastprtldg▩";
  1802. var reqdataData = cpgappno + "▦"//처방전송번호
  1803. + "" + "▦"//처방일자
  1804. + prtldg + "▩";//현재차수
  1805. model.setValue(xPathSend + "/reqdata",reqdataHeader+reqdataData);
  1806. // model.makeValue(xPathSend + "/reqdata/cpgappno",cpgappno);
  1807. // model.makeValue(xPathSend + "/reqdata/prtldg",prtldg);
  1808. //----------------------------------------------
  1809. //***** 저장구분정보(saveFlagInfoVO):입원처방
  1810. //----------------------------------------------
  1811. var deptcd = ""; //부서코드
  1812. var deptnm = ""; //부서명
  1813. var ordtype = "D" ; //환자진료형태(외래 O, 응급 E ,입원 I)
  1814. deptcd = getUserInfo("posdeptcd"); // "1000000000"; //getUserInfo("posdeptcd");(테스트용)
  1815. deptnm = getUserInfo("posdeptnm"); //"1000000000"; //getUserInfo("posdeptnm");(테스트용)
  1816. //alert(deptcd + "/" + deptnm);
  1817. //----------------------------------------------
  1818. //자료생성
  1819. //----------------------------------------------
  1820. // if (model.getValue("/root/main/prcpposinfo/cond/poscd") == '1') { //환자위치
  1821. // deptcd = model.getValue("/root/main/cond/wardcd");
  1822. // deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/cond/wardcd") + "']/depthngnm");
  1823. // } else { //User위치
  1824. // deptcd = model.getValue("/root/main/prcpposinfo/cond/deptcd");
  1825. // deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/prcpposinfo/cond/deptcd") + "']/depthngnm");
  1826. // }
  1827. var FlagInfoHeader = "savedataflag▦saveflag▦prcpflag▦inptflag▦pamflag▦diagflag▦prcperrflag▦deptcd▦deptnm▦userid▦usernm▦signyn▩";
  1828. //------------------(20080812)
  1829. // FlagInfoData = '2' +"▦" //저장자료구분 (2:처방)
  1830. // + ordtype +"▦" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1831. // + '1' +"▦" //처방구분(M0035 처방권한에 대한 구분종류 : 간호 추가처방)(1:의사+간호처방,2:간호추가처방)
  1832. // + '09' +"▦" //입력구분(M0034 처방입력에 대한 구분종류 : 간호처방)(09:간호처방)
  1833. // + 'Y' +"▦" //원무정보 처리구분 (Y/N)(Y:원무자료체크)
  1834. // + 'N' +"▦" //진단정보 처리구분 (Y/N)(N:진료자료체크하지 않음)
  1835. // + 'Y' +"▦" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1836. // + deptcd +"▦" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1837. // + deptnm +"▦" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  1838. // + getUserId() +"▦" //사용자ID (입력자 또는 로그인한 사용자ID)
  1839. // + getUserName() +"▦" //사용자명 (입력자 또는 로그인한 사용자명)
  1840. // + 'N' +"▩"; //전자서명여부 (Y/N)(일단N)
  1841. //------------------
  1842. //----------------------------------------------
  1843. //***** 저장등록정보(saveRgstInfoVO)
  1844. //----------------------------------------------
  1845. var xPathMainChemo = "/root/main/chemoinfo/chemolist";
  1846. var nowrow = pGrdCh.row
  1847. //------------------(20080827)
  1848. //간호사 정보에서 진료과 , 주치의로 반영함
  1849. var tdeptcd = model.getValue(xPathMainChemo+ "[" + nowrow + "]/orddeptcd");
  1850. var tdeptnm = model.getValue(xPathMainChemo+ "[" + nowrow + "]/depthngnm");
  1851. var tuserid = model.getValue(xPathMainChemo+ "[" + nowrow + "]/orddrid");
  1852. var tusernm = model.getValue(xPathMainChemo+ "[" + nowrow + "]/orddrnm");
  1853. FlagInfoData = '2' +"▦" //저장자료구분 (2:처방)
  1854. + ordtype +"▦" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1855. + '1' +"▦" //처방구분(M0035 처방권한에 대한 구분종류 : 간호 추가처방)(1:의사+간호처방,2:간호추가처방)
  1856. + '09' +"▦" //입력구분(M0034 처방입력에 대한 구분종류 : 간호처방)(09:간호처방)
  1857. + 'Y' +"▦" //원무정보 처리구분 (Y/N)(Y:원무자료체크)
  1858. + 'N' +"▦" //진단정보 처리구분 (Y/N)(N:진료자료체크하지 않음)
  1859. + 'Y' +"▦" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1860. + tdeptcd +"▦" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1861. + tdeptnm +"▦" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  1862. + tuserid +"▦" //사용자ID (입력자 또는 로그인한 사용자ID)
  1863. + tusernm +"▦" //사용자명 (입력자 또는 로그인한 사용자명)
  1864. + 'N' +"▩"; //전자서명여부 (Y/N)(일단N)
  1865. //------------------(20080827)
  1866. var pid = model.getValue(xPathMainChemo+ "[" + nowrow + "]/pid") ; //등록번호
  1867. var orddd = "-"; //진료일자(원무Key) - 입원일경우는 '-'
  1868. var indd = model.getValue(xPathMainChemo+ "[" + nowrow + "]/prcpdd") ; //입원일자
  1869. var cretno = model.getValue(xPathMainChemo+ "[" + nowrow + "]/inptcretno") ; //입원생성번호(테스트용)
  1870. var orddeptcd = model.getValue(xPathMainChemo+ "[" + nowrow + "]/orddeptcd") ; //진료과
  1871. var orderid = model.getValue(xPathMainChemo+ "[" + nowrow + "]/orddrid") ; //진료의ID
  1872. var instcd = model.getValue(xPathMainChemo+ "[" + nowrow + "]/instcd") ; //기관코드(테스트용)
  1873. var RgstInfoHeader = "pid▦orddd▦indd▦cretno▦orddeptcd▦orddrid▦instcd▩";
  1874. RgstInfoData = pid +"▦"
  1875. + orddd +"▦"
  1876. + indd +"▦"
  1877. + cretno +"▦"
  1878. + orddeptcd +"▦"
  1879. + orderid +"▦"
  1880. + instcd +"▩";
  1881. //----------------------------------------------
  1882. //***** 실처방시 상태변경
  1883. //----------------------------------------------
  1884. var OrdseqnoHeader = "cpgappno▦ordseqno▦prcpno▦prcpcd▩";
  1885. var OrdseqnoData = "";
  1886. //----------------------------------------------
  1887. //***** 저장처방정보(savePrcpInfoVO)
  1888. //----------------------------------------------
  1889. var xPathMainActing = "/root/main/actinginfo/actinglist";
  1890. var xPathMainChemo = "/root/main/chemoinfo/chemolist";
  1891. var chkflag;
  1892. var cnt = 0;
  1893. var PrcpInfoHeader = "status▦rowno▦druglnkno▦prcpdd▦prcpno▦prcphistno▦instcd▦pid▦orddd▦cretno▦orddeptcd▦orddrid▦prcpgenrflag▦prcpstatcd▦prcpkindcd▦prcpcd▦calcscorcd▦inclprcpcd▦"
  1894. +"inclprcpno▦prcpexecdeptcd▦prcphopedd▦prcpqty▦prcpqtyunitflag▦prcptims▦prcpdayno▦payflagcd▦erprcpflag▦precureprcpflag▦nigtprcpflag▦portprcpflag▦fixprcpflag▦"
  1895. +"choiordflag▦anamneflag▦prcpdirecflag▦angioflagcd▦opansflagcd▦ansttm▦offictourhealexamflag▦stemcellflag▦hosinhosoutflag▦hosinprcpresncd▦issdeptcd▦prcpauthflag▦"
  1896. +"prcpinptflag▦prcpsignflag▦oprsrvno▦clincstdyflag▦clincstdycd▦drugmthdspccd▦prcpdelivefact▦tootfact▦matrsetprcpspec▦calcflag▦rsrvflag▦rsrvdd▦rsrvtm▦rsrvrid▦execdd▦"
  1897. +"exectm▦execrid▦direcprcplnkdd▦direcprcplnkno▦ordreqlnkno▦testreqlnkno▦";
  1898. //PrcpInfoHeader += "anticncrprtlno▦drugrateqty▦prnprcpflag▦prcpmixno▦prcpvol▩";
  1899. //20090227 dhkim anticncrdayno 추가
  1900. PrcpInfoHeader += "anticncrprtlno▦drugrateqty▦prnprcpflag▦prcpmixno▦prcpvol▦anticncrdayno▦prnprcpdtl▦drprcpetc7▦drprcpetc8▩"; // 20100125 PRN 사유/횟수 추가 by LYJ
  1901. //----------------(20071203추가)
  1902. // '00000000' as execdd --실시일자
  1903. // '000000' as exectm --실시시간
  1904. // '-' as execrid --실시자ID
  1905. // prtl.cpgappno anticncrprtlno
  1906. // '-' drugrateqty
  1907. // prtl.prnprcpflag prnprcpflag
  1908. // prtl.prcpmixno prcpmixno
  1909. // ast.adbhprtlord prtl
  1910. //-----------------------------------------------
  1911. //for ( i = 1; i<= getNodesetCount("/root/main/prcpposinfo/prcpinfo/prcplist"); i++) {
  1912. for (var row = 1; row < pGrdAc.rows; row++) {
  1913. //선택하지 않은 자료는 거른다.
  1914. chkflag = model.getValue(xPathMainActing + "["+row+"]/chk");
  1915. if( chkflag != "true" ) continue;
  1916. //이미 저장된 자료는 거른다.
  1917. chkflag = model.getValue(xPathMainActing + "["+row+"]/saveflag");
  1918. // 20090408 dhkim 반환된 자료의 체크상태를 해제한다
  1919. if(chkflag == "D"){
  1920. model.setValue(xPathMainActing + "["+row+"]/chk", "false");
  1921. model.refresh();
  1922. }
  1923. if( chkflag == "Y" || chkflag == "D" ) continue;
  1924. chkflag = model.getValue(xPathMainActing + "["+row+"]/prcpno");
  1925. if( chkflag != "0" ) {
  1926. //그냥 넘어갈수도 있음
  1927. //alert("이미 처방발생자료입니다");
  1928. if(checkmessage == "Y"){ // 메시지는 한번만 뜨도록 변경
  1929. messageBox("이미 처방이 발행된 자료는 처리","E001"); //할수 없습니다.
  1930. checkmessage = "N";
  1931. }
  1932. model.setValue(xPathMainActing + "["+row+"]/chk", 'false');
  1933. continue;
  1934. }
  1935. cnt += 1;
  1936. // if (model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/status") == 'C') { //DC
  1937. // prcphistno = model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/prcphistno");
  1938. // prcpno = model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/prcpno");
  1939. //
  1940. // } else if (model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/status") == 'I' ) { //신규
  1941. // prcphistno = 0;
  1942. // prcpno = 0;
  1943. // }
  1944. var prcpdd = model.getValue(xPathMainChemo + "[" + rowCh+ "]/prcpdd");
  1945. var prcpno = "0";
  1946. var prcphistno = "0";
  1947. //20090226 dhkim
  1948. // var instcd = getUserInfo("posinstcd");
  1949. var instcd = getUserInfo("dutplceinstcd");
  1950. var pid = model.getValue(xPathMainChemo + "[" + rowCh+ "]/pid");
  1951. var ordindd = prcpdd;
  1952. var orddeptcd = model.getValue(xPathMainChemo + "[" + rowCh+ "]/orddeptcd");
  1953. var orddrid = model.getValue(xPathMainChemo + "[" + rowCh+ "]/orddrid");
  1954. var ordtype = "D";
  1955. //------------------(20081010)
  1956. //var druglnkno = model.getValue(xPathMainActing + "[" + rowCh+ "]/ordseqno"); 1009
  1957. var druglnkno = model.getValue(xPathMainActing + "[" + row+ "]/ordseqno");
  1958. if ( druglnkno == "") {
  1959. //alert( row + "/" + model.getValue(xPathMainActing + "[" + row+ "]/ordseqno") );
  1960. messageBox("DrugLnkNo 항암프로토콜 상세정보가 존재하지 않습니다.","E999");
  1961. return;
  1962. }
  1963. //------------------(20081010)
  1964. //cretno = "1"; //model.getValue(xPathMainActing + "[" + row + "]/cretno"); (테스트용)
  1965. //기본공통정보
  1966. PrcpInfoData += "I" +"▦" //신규(I), DC(C)
  1967. + row +"▦" //줄번호 (병리 요구)
  1968. + druglnkno +"▦" //처방순번
  1969. + prcpdd +"▦" //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  1970. + prcpno +"▦" //처방번호 (status가 'I'일 경우 0)
  1971. + prcphistno +"▦" //처방이력번호 (status가 'I'일 경우 0)
  1972. + instcd +"▦" //기관코드
  1973. + pid +"▦" //등록번호(원무Key)
  1974. + ordindd +"▦" //진료일자(원무Key) - 입원환자일 경우 indd
  1975. + cretno +"▦" //생성번호(원무Key)
  1976. + orddeptcd +"▦" //진료과(원무)
  1977. + orddrid +"▦" //진료의ID(원무)
  1978. + ordtype +"▦" //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  1979. + '000' +"▦" //처방상태 : '000'
  1980. + '20' +"▦"; //처방종류 : '20'
  1981. //emr.mmbtprcd(처방마스타)에 '처방코드'로 '수가코드'를 찾을것(식이를 제외하고는 처방코드=수가코드가 일치하는 경우가 대부분이다.
  1982. var calcscorcd = model.getValue(xPathMainActing + "[" + row + "]/prcpcd"); //수가코드(?) = 처방코드
  1983. var prcpqty = model.getValue(xPathMainActing + "[" + row + "]/prcpqty"); //어떤것인지(처방수량)(?) ==> actingfinfo에 추가 원본에는 prcpqty가 있음
  1984. var prcptims = model.getValue(xPathMainActing + "[" + row + "]/prcptims"); //처방횟수
  1985. var prcpdayno = "1"; //처방일수(?) ==> 무조건 1일
  1986. var payflagcd = model.getValue(xPathMainActing + "[" + row + "]/payflagcd");
  1987. var erprcpflag = model.getValue(xPathMainActing + "[" + row + "]/erprcpflag"); // 응급처방구분 (Y/N)
  1988. var drugmthdspccd = model.getValue(xPathMainActing + "[" + row + "]/drugmthdspccd"); //복용방법
  1989. var remark = model.getValue(xPathMainActing + "[" + row + "]/remark") + " " + model.getValue(xPathMainActing + "[" + row + "]/nursrem") ; //전달사항(20080110)
  1990. var prcpqtyunitflag = model.getValue(xPathMainActing + "[" + row + "]/prcpqtyunitflag"); //처방수량단위
  1991. //20090227 dhkim anticncrdayno 추가
  1992. var anticncrdayno = prtldg; //처방차수
  1993. //alert('anticncrdayno : ' + anticncrdayno );
  1994. //-----------(20081006)TEST
  1995. //alert ( prcpqtyunitflag); ADBDPRTLORD.prcpqtyunitflag 에 값이 없는경우
  1996. //-----------(20081006)
  1997. //---(20080129)
  1998. var prcpvol = model.getValue(xPathMainActing + "[" + row + "]/prcpvol"); //prcpvol +"▦"
  1999. var clincstdyflag = model.getValue(xPathMainActing + "[" + row + "]/clincstdyflag")
  2000. //var prcpvolunitflag = model.getValue(xPathMainActing + "[" + row + "]/prcpqtyunitflag"); //prcpvolunitflag
  2001. // alert(prcpqty +"/"+drugmthdspccd);
  2002. /*
  2003. //20081013 특수주사실 코드로 parameter 세팅
  2004. if(injSpclRoom == null || injSpclRoom != '3120400000'){
  2005. injSpclRoom = '3120400000';
  2006. }
  2007. */
  2008. //20090223 dhkim
  2009. //발행부서를 해당 사용자의 병동으로 세팅
  2010. //suppdeptcd
  2011. //20081013
  2012. //특수주사실 코드 글로벌변수 ==> injSpclRoom
  2013. /*김귀남 10-13 18:43
  2014. 특수주사실에서 항암 시행할때 issdeptcd 에 현재 orddeptcd가 들어가는데 wardcd 를 넣어주십시오.
  2015. 김귀남 10-13 18:43
  2016. 즉, 발행부서는 해당병동입니다.
  2017. */
  2018. //상세정보
  2019. PrcpInfoData += model.getValue(xPathMainActing + "[" + row + "]/prcpcd") +"▦" //처방코드
  2020. + calcscorcd +"▦" //수가코드(처방코드인가?)
  2021. + '-' +"▦" //종속처방코드 ('-') => default : '-' //***
  2022. + 0 +"▦" //종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0 //***
  2023. + orddeptcd +"▦" //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  2024. + prcpdd +"▦" //처방희망일자 (처방일자 이전으로 발생불가)
  2025. + prcpqty +"▦" //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
  2026. + prcpqtyunitflag +"▦" //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-') => default : '-' //***
  2027. + prcptims +"▦" //처방횟수 (1) (입원일 경우 횟수에 따라 풀림) => default : 1 //***
  2028. + prcpdayno +"▦" //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김) => default : 1 //***
  2029. + payflagcd +"▦" //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  2030. + erprcpflag +"▦" //응급처방구분 (Y/N) ==> default : 'N' //***
  2031. + 'N' +"▦" //선처치처방구분 (Y/N) ==> default : 'N'
  2032. + 'N' +"▦" //야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : 'N' //***
  2033. + 'N' +"▦" //포터블처방구분 (Y/N) ==> default : 'N' //***
  2034. + 'N' +"▦" //정액처방구분 (Y/N) ==> default : 'N' //***
  2035. + 'N' +"▦" //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리 ==> default : 'N' //***
  2036. + 'N' +"▦" //기왕력(증)구분 (Y/N) ==> default : 'N' //***
  2037. + '-' +"▦" //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-' => default : '-' //***
  2038. + '-' +"▦" //Angio구분 (코드정의서 M0006 참조) : '-' => default : '-' //***
  2039. + '-' +"▦" //수술마취구분 (코드정의서 M0007, M0008 참조) : '-' => default : '-' //***
  2040. + '0000' +"▦" //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격 => default : '0000' //***
  2041. + 'N' +"▦" //출장검진구분 (Y/N) => default : 'N' //***
  2042. + '00NNN' +"▦" //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성 => default : '00NNN' //***
  2043. + 'I' +"▦" //원내외구분(건진은 'I', 약이 아닐경우 '-') => default : '-' //***(20080110에 I로 변경)
  2044. + '00' +"▦" //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00') => default : '00' //***
  2045. + suppdeptcd +"▦" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : '-' //***
  2046. //+ orddeptcd +"▦" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : '-' //***
  2047. // + '2' +"▦" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  2048. + '0' +"▦" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  2049. + '06' +"▦" //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  2050. + '0' +"▦" //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료) => default : '2' //***????
  2051. + '-' +"▦" //수술예약번호(0) => default : '-' //***
  2052. + clincstdyflag +"▦" //임상연구구분 (Y/N)
  2053. + '-' +"▦" //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록 => default : '-' //***
  2054. + drugmthdspccd +"▦" //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-') => default : '-' //***
  2055. + remark +"▦" //처방전달사항 //***
  2056. + '-' +"▦" //치식 (병리만 사용, 나머지는 '-') => default : '-' //***
  2057. + '-' +"▦" //재료처방내용 ('-') -> 추후정의 //***
  2058. + 'N' +"▦" //계산구분 (Y/N)
  2059. + 'N' +"▦" //예약구분 (Y/N)
  2060. + '00000000' +"▦" //예약일자 ('N'일 경우 '00000000')
  2061. + '000000' +"▦" //예약시간 ('N'일 경우 '000000')
  2062. + '-' +"▦"; //예약자ID ('-')
  2063. var anticncrprtlno = model.getValue(xPathMainChemo + "[" + rowCh+ "]/cpgappno");
  2064. var prnprcpflag = model.getValue(xPathMainActing + "[" + row + "]/prnprcpflag");
  2065. var prcpmixno = model.getValue(xPathMainActing + "[" + row + "]/prcpmixno");
  2066. PrcpInfoData += '00000000' +"▦" //실시일자 ('00000000') getCurrentDate()
  2067. + '000000' +"▦" //실시시간 ('000000') getCurrentTime()
  2068. + '-' +"▦" //실시자ID ('-') getUserId()
  2069. + '00000000' +"▦" //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  2070. + '0' +"▦" //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  2071. + '0' +"▦" //진료의뢰연계번호 (0)
  2072. + '0' +"▦" //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  2073. + anticncrprtlno +"▦" //항암프로토콜번호(anticncrprtlno)
  2074. + '-' +"▦"
  2075. + prnprcpflag +"▦"
  2076. + prcpmixno +"▦"
  2077. + prcpvol +"▦" //(20080129)
  2078. //20090227 dhkim anticncrdayno 추가
  2079. + anticncrdayno +"▦"
  2080. + model.getValue(xPathMainActing + "[" + row + "]/prnprcpdtl")+
  2081. + model.getValue(xPathMainActing + "[" + row + "]/drprcpetc7")+
  2082. + model.getValue(xPathMainActing + "[" + row + "]/drprcpetc8")+ "▩" //20100125 PRN 사유/횟수 추가 by LYJ
  2083. //+ prcpvol +"▩" //(20080129)
  2084. //자동 간호확인을 위한 데이터(20080828)
  2085. //var carechklist = "prcpdd▦prcpno▦prcphistno▦instcd▦hsctlnkno"
  2086. //carechklist = carechklist + "▩" + model.getValue(xPathMainChemo + "[" + rowCh+ "]/prcpdd"); + "▦" + goodcd + "▦" + allsizespecid
  2087. // + "▦" + windd + "▦" + (parseInt(winqty) - parseInt(oldqty)) + "▦" + "2"
  2088. // + "▦" + "0000" + "▦" + (parseInt(winqty) * parseInt(acmlbaseqty)) + "▦" + deptflag;
  2089. //----------------(20071203추가)
  2090. // '00000000' as execdd --실시일자
  2091. // '000000' as exectm --실시시간
  2092. // '-' as execrid --실시자ID
  2093. // prtl.cpgappno anticncrprtlno
  2094. // '-' drugrateqty
  2095. // prtl.prnprcpflag prnprcpflag
  2096. // prtl.prcpmixno prcpmixno
  2097. // ast.adbhprtlord prtl
  2098. //-----------------------------------------------
  2099. //----------------------------------------------
  2100. //***** 실처방시 상태변경
  2101. //----------------------------------------------
  2102. var cpgappno = model.getValue(xPathMainActing + "[" + row + "]/cpgappno"); //cpgappno
  2103. var ordseqno = model.getValue(xPathMainActing + "[" + row + "]/ordseqno"); //ordseqno
  2104. var prcpno = model.getValue(xPathMainActing + "[" + row + "]/prcpno"); //prcpno
  2105. var prcpcd = model.getValue(xPathMainActing + "[" + row + "]/prcpcd"); //prcpno
  2106. OrdseqnoData += ""
  2107. + cpgappno +"▦" //CPG적용번호
  2108. + ordseqno +"▦" //처방순번
  2109. + prcpno +"▦" //입원처방생성번호
  2110. + prcpcd +"▩" //처방코드
  2111. //alert("test------------------"+ OrdseqnoData);
  2112. }
  2113. if (cnt == 0) {
  2114. //alert("처방발생할 자료가 존재하지 않습니다");
  2115. messageBox("처방발행할 자료가","I004"); //없습니다.
  2116. return;
  2117. }
  2118. //----------------------------------------------
  2119. //***** 저장처방정보(savePrcpInfoVO)
  2120. //----------------------------------------------
  2121. // var SignInfoHeader = "signdd▦signno▦instcd▦pid▦orddd▦cretno▦signflag▦signgenrflag▦rgstdeptcd▦rgstdd▦rgsttm▦rgstrid▦updtdeptcd▦updtdd▦updttm▦updtrid▦fstrgstrid▦fstrgstdt▦lastupdtrid▦"
  2122. // +"lastupdtdt▦signbfcnts▦signaftcnts▩";
  2123. //----------------------------------------------
  2124. //***** 저장instance에반영
  2125. //----------------------------------------------
  2126. model.setValue(xPathSend + "/savedata/saveflaginfo", FlagInfoHeader+FlagInfoData);
  2127. model.setValue(xPathSend + "/savedata/savergstinfo", RgstInfoHeader+RgstInfoData);
  2128. model.setValue(xPathSend + "/savedata/saveprcpinfo", PrcpInfoHeader+PrcpInfoData);
  2129. model.setValue(xPathSend + "/senddata", OrdseqnoHeader+OrdseqnoData);
  2130. //20090224 dhkim
  2131. //처방전송 메세지를 환자의 입실된병동과 조회된 병동이 다를경우 blocking한다.
  2132. var sendMsg = '';
  2133. var wardcd = model.getValue("/root/main/actingbasicinfo/wardcd");
  2134. var wardnm = model.getValue("/root/main/actingbasicinfo/wardnm");
  2135. //alert('wardcd : ' + wardcd + 'wardnm : ' + wardnm);
  2136. //alert('wardcd : ' + wardcd + ', suppdeptcd : ' + suppdeptcd);
  2137. if(wardcd == suppdeptcd){
  2138. sendMsg = '처방전송을';
  2139. }else{
  2140. messageBox('해당 환자는 ' + wardnm + ' 환자 입니다. ' + suppdeptnm + ' 에 입실된 환자만 처방전송 가능합니다.', 'E999');
  2141. return;
  2142. }
  2143. if (messageBox(sendMsg, 'Q003', "") != 6) return;
  2144. if (submit("TXMNI02007", false)) {
  2145. //오류팝업
  2146. var prcpErrList = model.instances(0).selectNodes( "/root/temp/result/prcperrlist" );
  2147. if ( prcpErrList.length > 0 ) {
  2148. if ( !isNull(model.getValue ("/root/temp/result/prcperrlist/prcpcd"))){
  2149. var xpt = window.screenleft + 100;
  2150. var ypt = window.screenTop + 50;
  2151. var coord = getRelativeCoordinate ( xpt, ypt );
  2152. var mon = coord[0];
  2153. xpt = coord[1];
  2154. ypt = coord[2];
  2155. open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/temp/result", "/root/result", "", false );
  2156. model.removeNodeset("/root/temp/result/prcperrlist");
  2157. }
  2158. } else {
  2159. // model.removeNodeset("/root/main/prcpposinfo/prcpinfo");
  2160. // model.copyNode("/root/main/bfprcpinfo/bfprcplistinfo", "/root/temp/result");
  2161. //model.copyNode("/root/main/prcpposinfo/prcpinfo", "/root/temp/result");
  2162. //grd_prcpposlist.colDisabled(1) = false;
  2163. //fPrcpListRef("Bf");
  2164. if(model.getValue("/root/code/codeinfo/codelist[cdgrupid = '077' and supcdid = '02']/cdid") == getUserInfo("dutplceinstcd")){
  2165. fprint();
  2166. }
  2167. }
  2168. model.refresh();
  2169. } else {
  2170. //alert("실처방발생 실패");
  2171. messageBox("실처방을 발행","E001");
  2172. }
  2173. var nodeCnt = getNodesetCount("/root/main/actinginfo/actinglist");
  2174. for( var i = 1; i <= nodeCnt; i++ ) {
  2175. if( model.getValue("/root/main/actinginfo/actinglist["+i+"]/chk") == "true" || model.getValue("/root/main/actinginfo/actinglist["+i+"]/prtlabsnyn")=="Y"){
  2176. grd_acting.isReadOnly(i,0) = true;
  2177. }else {
  2178. grd_acting.isReadOnly(i,0) = false;
  2179. }
  2180. }
  2181. model.refresh();
  2182. }
  2183. //-----------------------------------------------------------------------------------
  2184. //----------------------------------------------
  2185. // 선택한 그리드 자료에 대한 환자정보 상단에 올리기
  2186. // 20090212 dhkim (추가)
  2187. // 상단세팅전 서울성모 전환환자인지 조회
  2188. //----------------------------------------------
  2189. function fSetPatInfo_chemo() {
  2190. var pGrd = grd_chemo;
  2191. var xPathChemo = "/root/main/chemoinfo";
  2192. var condparam = "";
  2193. if (pGrd.row <= 0 ) return;
  2194. //20090212 dhkim 추가
  2195. //상단정보세팅전 서울성모 전환환자인지 조회
  2196. var pid = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/pid');
  2197. model.removenode('/root/send');
  2198. model.makeValue('/root/send/pid', pid);
  2199. if(!submit('TRMNI02030')){
  2200. messageBox('상단정보세팅중 전환환자 여부조회를 실패하였습니다.', 'E999');
  2201. }else{
  2202. var pidflag = model.getValue('/root/bmtinfo/pidflag');
  2203. var hngnm = model.getValue('/root/bmtinfo/hngnm');
  2204. if(hngnm != ''){
  2205. hngnm = '"' + hngnm + '"님은 ';
  2206. }
  2207. if(pidflag == 'Y'){
  2208. messageBox(hngnm + '여의도성모에서 서울성모 전환 BMT환자입니다.', 'I999');
  2209. }
  2210. }
  2211. //--------------------------상단올리기 flag --------------------------
  2212. // 01 O:외래, I:입원구분, T:수술예약 , E:응급
  2213. // 02 등록번호
  2214. // 03 수술시작일자
  2215. // 04 cretno(없는 경우 ""로 처리)
  2216. // 05 기관코드
  2217. // 06 집도과부서
  2218. // 07 집도의ID
  2219. // 08 환자구분
  2220. // 09 F -처리구분 무조건 F로 설정
  2221. // 10 수술예약번호
  2222. // 11 수술이력번호
  2223. // 12 조회일자 2007-09-13 오지훈 추가...
  2224. //------------------------------------------------------------------
  2225. var pid = "";
  2226. var indd= "";
  2227. var cretno="";
  2228. var instcd = "";
  2229. var orddd= "";
  2230. var ordtype = "";
  2231. //----------(20080913)
  2232. var ioflag = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/inptcretno") ;
  2233. var detstatus = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/detstatus") ;
  2234. //if ( ioflag != "") { //입원정보를 기준으로 상단에 반영
  2235. if(detstatus == "외래") {
  2236. pid = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/pid") ;
  2237. indd = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/otptorddd") ;
  2238. cretno = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/otptcretno") ;
  2239. instcd = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/instcd");
  2240. orddd = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/otptorddd"); //처방일(orddd)
  2241. ordtype = "O";
  2242. }
  2243. else { //외래정보를 기준으로 상단에 반영
  2244. pid = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/pid") ;
  2245. indd = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/prcpdd") ;
  2246. cretno = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/inptcretno") ;
  2247. instcd = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/instcd");
  2248. orddd = model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/prcpdd"); //처방일(orddd)
  2249. //=======================================================================================================
  2250. ordtype = "I"; //--> 'D' (테스트) ==> '상단정보parameter값이 잘못 설정 되었습니다' 로 나옴
  2251. //=======================================================================================================
  2252. }
  2253. //----------(20080913)
  2254. //항암 프로토콜 스케쥴 화면 조회를 위해 셋팅
  2255. model.setValue("/root/hidden/antisch/pid", pid);
  2256. model.setValue("/root/hidden/antisch/cpgappno", model.getValue("/root/main/chemoinfo/chemolist["+pGrd.row+"]/cpgappno"));
  2257. // 상단 세팅을 위한 파라미터
  2258. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  2259. setParameter("condparam", condparam);
  2260. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2261. //20090102 dhkim
  2262. //예약정보조회
  2263. fGridReservationInfo();
  2264. model.makeNode("/root/main/paminfo");
  2265. var node = getGlobalVariable("paminfo");
  2266. setCSVToNode("/root/main/paminfo", node);
  2267. //----------------------------------------------------
  2268. //설정된 상단정보를 불러옴
  2269. // alert("내리기");
  2270. // model.makeNode("/root/main/paminfo");
  2271. // var node = getGlobalVariable("paminfo");
  2272. // setCSVToNode("/root/main/paminfo", node);
  2273. //----------------------------------------------------
  2274. var flowSheetObj = getOpenWindow("SMMNR00900");
  2275. if(flowSheetObj != null){//카덱스]
  2276. flowSheetObj.javascript.fInitialize("init");
  2277. }
  2278. var careRecObj = getOpenWindow("SMMNR03400");
  2279. if(careRecObj != null){//카덱스]
  2280. careRecObj.javascript.fInitialize();
  2281. careRecObj.javascript.fcolwidth();
  2282. }
  2283. // // 항암동의서 확인 2012.06.18 KJS
  2284. // //항암프로토콜 종류
  2285. // var pid = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/pid');
  2286. // var appdd = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/prcpdd');
  2287. // var prtlcd = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/prtlcd');
  2288. //
  2289. // model.removenode("/root/send/xproto")
  2290. // model.makeValue("/root/send/xproto/pid", pid);
  2291. // model.makeValue("/root/send/xproto/appdd", appdd);
  2292. // model.makeValue("/root/send/xproto/prtlcd", prtlcd);
  2293. //
  2294. // submit("TRMNI02014");
  2295. //
  2296. //
  2297. //
  2298. // var xappdd = model.getValue("/root/temp/xprotcnt/xappdd");
  2299. // model.makeValue("/root/send/xproto/xappdd", xappdd);
  2300. // //alert(model.getValue("/root/send/xproto/xappdd"));
  2301. // //alert(instance1.selectNodesXml("/root/send/xproto"));
  2302. // submit("TRMNI02015");
  2303. //
  2304. // var cnt = model.getValue("/root/temp/xprotcnt/cnt");
  2305. // if (cnt < 1){
  2306. // if (xappdd == 'N')
  2307. // {
  2308. // messageBox("해당 프로토콜에 대한 항암화학 동의서가 없으니 다시 확인해주시기 바랍니다.","I999");
  2309. // } else {
  2310. // messageBox("항암 프로토콜이 달라졌으니 동의서를 새로 받아주시기 바랍니다.","I999");
  2311. // }
  2312. // }
  2313. }
  2314. /**
  2315. * @ver : 2010.01.25 dhkim
  2316. * @desc : 상단정보에서 환자정보를 가지고 케모환자리스트의 정보를 get한다.
  2317. * @param :
  2318. * @return : [retnArry]
  2319. * [0] pid 등록번호
  2320. * [1] rp_indd 예약처방전송param_입원일
  2321. * [2] rp_cretno 예약처방전송param_생성번호
  2322. * [3] rp_ordtype 예약처방전송param_외래입원구분
  2323. * [4] rp_medispclid 예약처방전송param_주치의아이디
  2324. * [5] roomcd 병실코드
  2325. * [6] age 환자나이
  2326. * [7] hngnm 환자명
  2327. * [8] cpgappno 항암프로토콜cpg번호
  2328. * [9] prtldg 항암프로토콜차수코드
  2329. * [10]prcpdd 항암프로토콜처방일자
  2330. * [11]sickclsnm 진단명
  2331. * [12]prtlnm 항암프로토콜처방명
  2332. * [13]prtldg_d 항암프로토콜차수뷰
  2333. * [14]inptflag 입원구분
  2334. * [15]detstatus 진행상태
  2335. * [16]depthngnm 진료과명
  2336. * [17]orddrnm 주치의명
  2337. * [18]careinrmdd 간호입실일자
  2338. * [19]wardcd 병동코드
  2339. * [20]wardnm 병동명
  2340. */
  2341. function fGetTopInfoToChemoPatInfo(){
  2342. var retnArry = "";//리턴값
  2343. var paminfo = getGlobalVariable("paminfo");
  2344. if(paminfo.length > 0){//원무정보(기본정보)가 있는경우
  2345. //설정된 상단정보를 불러옴
  2346. model.removenode("/root/main/paminfo");
  2347. model.makeNode("/root/main/paminfo");
  2348. setCSVToNode("/root/main/paminfo", paminfo);
  2349. var pid = model.getValue("/root/main/paminfo/list/pid");
  2350. var indd = model.getValue("/root/main/paminfo/list/indd");
  2351. var cretno = model.getValue("/root/main/paminfo/list/cretno");
  2352. var orddd = model.getValue("/root/main/paminfo/list/orddd");
  2353. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  2354. if(pid != ""){
  2355. retnArry = "pid" + "|"
  2356. + "rp_indd" + "|"
  2357. + "rp_cretno" + "|"
  2358. + "rp_ordtype" + "|"
  2359. + "rp_medispclid" + "|"
  2360. + "roomcd" + "|"
  2361. + "age" + "|"
  2362. + "hngnm" + "|"
  2363. + "cpgappno" + "|"
  2364. + "prtldg" + "|"
  2365. + "prcpdd" + "|"
  2366. + "sickclsnm" + "|"
  2367. + "prtlnm" + "|"
  2368. + "prtldg_d" + "|"
  2369. + "inptflag" + "|"
  2370. + "detstatus" + "|"
  2371. + "depthngnm" + "|"
  2372. + "orddrnm" + "|"
  2373. + "careinrmdd" + "|"
  2374. + "wardcd" + "|"
  2375. + "wardnm" + "▒";
  2376. //상단정보가 있을경우 그리드 리스트에서 해당 환자를 찾아 필요 정보를 배열에 저장한 후 리턴한다.
  2377. var _pid, _indd, _orddd, _inptcretno, _otptcretno;
  2378. for(var i = 1; i < grd_chemo.rows; i++){
  2379. _pid = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/pid");
  2380. _indd = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/prcpdd");
  2381. _orddd = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/otptorddd");
  2382. _inptcretno = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/inptcretno");
  2383. _otptcretno = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/otptcretno");
  2384. //alert('i: ' + i + ', _pid:' + _pid + ', tpid:' + pid
  2385. //+ ', _indd:' + _indd + ', tindd:' + indd
  2386. //+ ', _orddd:' + _orddd + ', torddd:' + orddd
  2387. //+ ', _inptcretno: ' + _inptcretno + ', _otptcretno: ' + _otptcretno + ', tcretno : ' + cretno + ', ioflag :' + ioflag );
  2388. if(_pid == pid){
  2389. if(
  2390. (ioflag == 'O' && _orddd == orddd && _otptcretno == cretno) //외래
  2391. || (ioflag == 'I' && _indd == indd && _inptcretno == cretno) //입원
  2392. || (ioflag == 'D' && _indd == indd && _inptcretno == cretno) //DSC/CHEMO
  2393. ){
  2394. retnArry += model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/pid") + "|"
  2395. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/rp_indd") + "|"
  2396. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/rp_cretno") + "|"
  2397. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/rp_ordtype") + "|"
  2398. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/rp_medispclid") + "|"
  2399. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/roomcd") + "|"
  2400. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/age") + "|"
  2401. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/hngnm") + "|"
  2402. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/cpgappno") + "|"
  2403. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/prtldg") + "|"
  2404. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/prcpdd") + "|"
  2405. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/sickclsnm") + "|"
  2406. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/prtlnm") + "|"
  2407. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/prtldg_d") + "|"
  2408. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/inptflag") + "|"
  2409. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/detstatus") + "|"
  2410. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/depthngnm") + "|"
  2411. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/orddrnm") + "|"
  2412. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/careinrmdd") + "|"
  2413. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/wardcd") + "|"
  2414. + model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/wardnm") + "▒";
  2415. break;
  2416. }
  2417. }
  2418. }
  2419. }
  2420. }
  2421. return retnArry;
  2422. }
  2423. //20091119 dhkim
  2424. //상단정보를 가져와서 메인그리드의 환자를 선택상태로 변경
  2425. function fSincMainGridTopInfo(){
  2426. var curRow = 0;
  2427. //상단정보 받아옴
  2428. var paminfo = getGlobalVariable("paminfo");
  2429. if(paminfo.length > 0){//원무정보(기본정보)가 있는 경우
  2430. //설정된 상단정보를 불러옴
  2431. model.removenode("/root/main/paminfo");
  2432. model.makeNode("/root/main/paminfo");
  2433. setCSVToNode("/root/main/paminfo", paminfo);
  2434. var pid = model.getValue("/root/main/paminfo/list/pid");
  2435. var indd = model.getValue("/root/main/paminfo/list/indd");
  2436. var cretno = model.getValue("/root/main/paminfo/list/cretno");
  2437. var orddd = model.getValue("/root/main/paminfo/list/orddd");
  2438. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  2439. if(pid != ""){
  2440. var _pid, _indd, _orddd, _inptcretno, _otptcretno;
  2441. for(var i = 1; i < grd_chemo.rows; i++){
  2442. _pid = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/pid");
  2443. _indd = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/prcpdd");
  2444. _orddd = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/otptorddd");
  2445. _inptcretno = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/inptcretno");
  2446. _otptcretno = model.getValue("/root/main/chemoinfo/chemolist[" + i + "]/otptcretno");
  2447. //alert('i: ' + i + ', _pid:' + _pid + ', tpid:' + pid
  2448. //+ ', _indd:' + _indd + ', tindd:' + indd
  2449. //+ ', _orddd:' + _orddd + ', torddd:' + orddd
  2450. //+ ', _inptcretno: ' + _inptcretno + ', _otptcretno: ' + _otptcretno + ', tcretno : ' + cretno + ', ioflag :' + ioflag );
  2451. if(_pid == pid){
  2452. if(
  2453. (ioflag == 'O' && _orddd == orddd && _otptcretno == cretno) //외래
  2454. || (ioflag == 'I' && _indd == indd && _inptcretno == cretno) //입원
  2455. || (ioflag == 'D' && _indd == indd && _inptcretno == cretno) //DSC/CHEMO
  2456. ){
  2457. curRow = i;
  2458. break;
  2459. }
  2460. }
  2461. }
  2462. }
  2463. }
  2464. //2010.02.11 dhkim 상단삭제 주석처리
  2465. /*
  2466. //curRow가 0이면 상단정보 삭제
  2467. delPatientInfos(); //화면상단정보 삭제
  2468. setGlobalVariable("paminfo", ""); //원무정보 reset
  2469. if(getNodesetCount("/root/main/paminfo") > 0) {
  2470. model.removeNodeset("/root/main/paminfo/list");
  2471. }
  2472. */
  2473. return curRow;
  2474. }
  2475. function fInitGrid() {
  2476. model.removeNodeset("/root/main/actinginfo/actinglist"); //초기화시 그리드 1번째 row 삭제
  2477. model.removeNodeset("/root/main/chemoinfo/chemolist"); //초기화시 그리드 1번째 row 삭제
  2478. model.removeNodeset("/root/main/patdetinfo/ordrsrvinfo"); //초기화시 그리드 1번째 row 삭제
  2479. model.removeNodeset("/root/main/patdetinfo/testrsrvinfo"); //초기화시 그리드 1번째 row 삭제
  2480. model.refresh();
  2481. }
  2482. function fSetBackColor() {
  2483. // var elbulbodstat;
  2484. // for(var i = 1; i < grd_opatmngt.rows; i++) {
  2485. // elbulbodstat = model.getValue("/root/main/opatlist/opatlist[" + i + "]/elbulbodstat");
  2486. //
  2487. // if(elbulbodstat == "3") {
  2488. // grd_opatmngt.isReadOnly(i,1) = true;
  2489. // grd_opatmngt.cellstyle("background-color", i, 1, i, grd_opatmngt.cols-1) ="#FAC8C8";
  2490. //
  2491. // } else {
  2492. // grd_opatmngt.isReadOnly(i,1) = false;
  2493. // grd_opatmngt.cellstyle("background-color", i, 1, i, grd_opatmngt.cols-1) ="#FFFFF";
  2494. // }
  2495. // }
  2496. // grd_opatmngt.refresh();
  2497. }
  2498. //--------------------------------------------
  2499. // 우측마우스 팝업
  2500. //--------------------------------------------
  2501. function fShowPopupMenu(gridID, menuPath)
  2502. {
  2503. var gridObj = document.controls.item(gridID);
  2504. if(event.button == 3) {
  2505. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  2506. window.setPopupMenu(true, menuPath, "name", "func", false);
  2507. }else{
  2508. window.setPopupMenu(false);
  2509. }
  2510. }
  2511. }
  2512. // --------------------------------------------------
  2513. // 출력
  2514. // --------------------------------------------------
  2515. function fprint() {
  2516. var pGrdCh = grd_chemo;
  2517. var pGrdAc = grd_acting;
  2518. var prt_prtlinfo = "/root/main/prtlinfo";
  2519. var prt_data = "/root/main/data";
  2520. var prt_prtlprcpprelist = "/root/main/prtlprcpprelist";
  2521. var prt_diaginfo = "/root/main/diaginfo";
  2522. var chemolist = "/root/main/chemoinfo/chemolist";
  2523. var Actinglist = "/root/main/actinginfo/actinglist";
  2524. var prtflag;
  2525. var pGrdChRow = pGrdCh.row;
  2526. //체크
  2527. if (pGrdCh.rows <= 1 ) return;
  2528. if (pGrdAc.rows <= 1 ) return;
  2529. //초기화
  2530. var xPathSendReqdata = "/root/send/reqdata";
  2531. model.removeNodeset(xPathSendReqdata);
  2532. model.makeNode(xPathSendReqdata);
  2533. model.removeNodeset("/root/temp/detailprint");
  2534. model.removeNodeset(prt_prtlinfo);
  2535. model.removeNodeset(prt_data);
  2536. model.removeNodeset(prt_prtlprcpprelist);
  2537. model.removeNodeset(prt_diaginfo);
  2538. var chemolist = "/root/main/chemoinfo/chemolist";
  2539. var pGrdChRow = grd_chemo.row;
  2540. model.makeValue(xPathSendReqdata + "/prcpdd", ""); //model.getValue(chemolist + "["+ pGrdChRow + "]/prcpdd") );
  2541. model.makeValue(xPathSendReqdata + "/pid", model.getValue(chemolist + "["+ pGrdChRow + "]/pid") );
  2542. model.makeValue(xPathSendReqdata + "/indd", model.getValue(chemolist + "["+ pGrdChRow + "]/inptindd") );
  2543. model.makeValue(xPathSendReqdata + "/cpgappno", model.getValue(chemolist + "["+ pGrdChRow + "]/cpgappno") );
  2544. model.makeValue(xPathSendReqdata + "/prtflag", "Y");
  2545. if(submit("TRMNI02008")){
  2546. }else{}
  2547. //alert('처방코드 : ' + model.getValue("/root/temp/detailprint/prcplist[2]/prcpcd"));
  2548. model.refresh();
  2549. var datacnt = model.instances(0).selectNodes( "/root/temp/detailprint/prcplist" );
  2550. if (datacnt.length > 0 ) {
  2551. model.removeNodeset("/root/main/prtlinfo");
  2552. model.removeNodeset("/root/main/data");
  2553. model.removeNodeset("/root/main/prtlprcpprelist");
  2554. model.removeNodeset("/root/main/diaginfo");
  2555. model.makeNode("/root/main/prtlinfo");
  2556. model.makeNode("/root/main/data");
  2557. model.makeNode("/root/main/prtlprcpprelist");
  2558. model.makeNode("/root/main/diaginfo/diagcdlist");
  2559. model.copyNode("/root/main/prtlinfo", "/root/temp/detailprint/prtlinfo");
  2560. model.copyNode("/root/main/data", "/root/temp/detailprint/data");
  2561. model.copyNode("/root/main/diaginfo/diagcdlist", "/root/temp/detailprint/diagcdlist");
  2562. model.makeValue("/root/main/data/disp1" , model.getValue(chemolist + "["+ pGrdChRow + "]/disp1")); // 15.02.06 - AYS 추가
  2563. model.makeValue("/root/main/data/disp2" , model.getValue(chemolist + "["+ pGrdChRow + "]/disp2"));
  2564. model.makeValue("/root/main/data/disp3" , model.getValue(chemolist + "["+ pGrdChRow + "]/disp3"));
  2565. for (var idx=0;idx<= datacnt.length;idx++) {
  2566. model.makeNode("/root/main/prtlprcpprelist/prcplist[" + idx + "]" );
  2567. model.copyNode("/root/main/prtlprcpprelist/prcplist[" + idx + "]", "/root/temp/detailprint/prcplist[" + idx + "]");
  2568. }
  2569. model.makeNode("/root/main1");
  2570. copyNodesetType("/root/main1", "/root/main");
  2571. //출력
  2572. //첫번째 true : 출력여부
  2573. //두번째 true : 미리보기 닫기여부
  2574. //exeReportPreview("RPADB01011", "XMLSTR", "", "", "true","","","","","true", "", "");
  2575. // 141203 - AYS 추가
  2576. if(model.getValue("/root/main/cond/chk_printoption") == 'Y') {
  2577. exeReportPreview("RPADB01015", "XMLSTR", "", "", "true","","","","","true", "", "");
  2578. //exeReportPreview("RPADB01015", "XMLSTR", "", "", "true","","","","","", "", "");
  2579. } else {
  2580. exeReportPreview("RPADB01013", "XMLSTR", "", "", "true","","","","","true", "", "");
  2581. //exeReportPreview("RPADB01013", "XMLSTR", "", "", "true","","","","","", "", "");
  2582. }
  2583. model.removeNodeset("/root/main1");
  2584. } else {
  2585. messageBox("출력할 자료가 ","I004");
  2586. }
  2587. /* (20080121)이전
  2588. //초기화
  2589. model.removeNodeset(prt_data);
  2590. model.removeNodeset(prt_prtlprcpprelist);
  2591. //data instance 생성
  2592. model.makeNode(prt_data);
  2593. model.makeValue(prt_data + "/ht" , model.getValue(chemolist + "["+ pGrdChRow + "]/ht"));
  2594. model.makeValue(prt_data + "/wt" , model.getValue(chemolist + "["+ pGrdChRow + "]/wt"));
  2595. model.makeValue(prt_data + "/ibw" , model.getValue(chemolist + "["+ pGrdChRow + "]/ibw"));
  2596. model.makeValue(prt_data + "/bsa" , model.getValue(chemolist + "["+ pGrdChRow + "]/bsa"));
  2597. model.makeValue(prt_data + "/age" , model.getValue(chemolist + "["+ pGrdChRow + "]/age"));
  2598. model.makeValue(prt_data + "/sc" , model.getValue(chemolist + "["+ pGrdChRow + "]/sc"));
  2599. model.makeValue(prt_data + "/urvol" , model.getValue(chemolist + "["+ pGrdChRow + "]/urvol"));
  2600. model.makeValue(prt_data + "/urcr" , model.getValue(chemolist + "["+ pGrdChRow + "]/urcr"));
  2601. model.makeValue(prt_data + "/auc" , model.getValue(chemolist + "["+ pGrdChRow + "]/auc"));
  2602. model.makeValue(prt_data + "/carbovol" , model.getValue(chemolist + "["+ pGrdChRow + "]/carbovol"));
  2603. model.makeValue(prt_data + "/gfrflag" , model.getValue(chemolist + "["+ pGrdChRow + "]/gfrflag"));
  2604. model.makeValue(prt_data + "/gfr" , model.getValue(chemolist + "["+ pGrdChRow + "]/gfr"));
  2605. model.makeValue(prt_data + "/sexrate" , model.getValue(chemolist + "["+ pGrdChRow + "]/sexrate"));
  2606. model.makeValue(prt_data + "/wtflag" , model.getValue(chemolist + "["+ pGrdChRow + "]/wtflag"));
  2607. model.makeValue(prt_data + "/prtlnm" , model.getValue(chemolist + "["+ pGrdChRow + "]/prtlnm"));
  2608. model.makeValue(prt_data + "/pid" , model.getValue(chemolist + "["+ pGrdChRow + "]/pid"));
  2609. model.makeValue(prt_data + "/hngnm" , model.getValue(chemolist + "["+ pGrdChRow + "]/hngnm"));
  2610. //prtlprcpprelist instance 생성
  2611. prtflag = false;
  2612. model.makeNode(prt_prtlprcpprelist);
  2613. prt_prtlprcpprelist = prt_prtlprcpprelist + "/prcplist";
  2614. var cnt=0;
  2615. for (var row=1;row<pGrdAc.rows;row++) {
  2616. //선택하지 않은 자료는 거른다.
  2617. var chkflag = model.getValue(Actinglist + "["+row+"]/chk");
  2618. if( chkflag != "true" ) continue;
  2619. prtflag = true;
  2620. model.makeNode(prt_prtlprcpprelist);
  2621. cnt ++;
  2622. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prtldgnm" , model.getValue(Actinglist + "["+ row + "]/prtldgnm"));
  2623. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugseq" , model.getValue(Actinglist + "["+ row + "]/drugseq"));
  2624. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugtt" , model.getValue(Actinglist + "["+ row + "]/drugtt"));
  2625. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpmixno" , model.getValue(Actinglist + "["+ row + "]/prcpmixno"));
  2626. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpcd" , model.getValue(Actinglist + "["+ row + "]/prcpcd"));
  2627. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpnm" , model.getValue(Actinglist + "["+ row + "]/prcpnm"));
  2628. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/payflagcd" , model.getValue(Actinglist + "["+ row + "]/payflagcd"));
  2629. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/volkind" , model.getValue(Actinglist + "["+ row + "]/volkind"));
  2630. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/bsavol" , model.getValue(Actinglist + "["+ row + "]/bsavol"));
  2631. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/kgvol" , model.getValue(Actinglist + "["+ row + "]/kgvol"));
  2632. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpvol" , model.getValue(Actinglist + "["+ row + "]/prcpvol"));
  2633. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpvolunitnm" , model.getValue(Actinglist + "["+ row + "]/prcpvolunitnm"));
  2634. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpqty" , model.getValue(Actinglist + "["+ row + "]/prcpqty"));
  2635. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpqtyunitnm" , model.getValue(Actinglist + "["+ row + "]/prcpqtyunitnm"));
  2636. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugspd" , model.getValue(Actinglist + "["+ row + "]/drugspd"));
  2637. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugspdunitnm" , model.getValue(Actinglist + "["+ row + "]/drugspdunitnm"));
  2638. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcptims" , model.getValue(Actinglist + "["+ row + "]/prcptims"));
  2639. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugmthdspccd" , model.getValue(Actinglist + "["+ row + "]/drugmthdspccd"));
  2640. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugmthdspccdnm" , model.getValue(Actinglist + "["+ row + "]/drugmthdspccdnm"));
  2641. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prnprcpflag" , model.getValue(Actinglist + "["+ row + "]/prnprcpflag"));
  2642. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/remark" , model.getValue(Actinglist + "["+ row + "]/remark"));
  2643. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/nursrem" , model.getValue(Actinglist + "["+ row + "]/nursrem"));
  2644. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpexecdeptcd" , model.getValue(Actinglist + "["+ row + "]/prcpexecdeptcd"));
  2645. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/ordseqno" , model.getValue(Actinglist + "["+ row + "]/ordseqno"));
  2646. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/volrate" , model.getValue(Actinglist + "["+ row + "]/volrate"));
  2647. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prtlkind" , model.getValue(Actinglist + "["+ row + "]/prtlkind"));
  2648. }
  2649. if ( prtflag == false) {
  2650. alert("출력할 자료가 존재하지 않습니다");
  2651. return;
  2652. }
  2653. */
  2654. }
  2655. /* --------------------------------------------------*/
  2656. /* type : function */
  2657. /* access : public */
  2658. /* desc : 항암 스케쥴 조회 팝업 */
  2659. /* param : */
  2660. /* return : */
  2661. /* --------------------------------------------------*/
  2662. function fScheProtocolPopUp() {
  2663. modal("SMADB01020",0,0,0,"SMADB01020","/root/hidden/antisch","/root/hidden/antisch");
  2664. }
  2665. /* --------------------------------------------------*/
  2666. /* type : function */
  2667. /* access : public */
  2668. /* desc : 팝업 메뉴 */
  2669. /* param : */
  2670. /* return : */
  2671. /* --------------------------------------------------*/
  2672. function fShowPopup(pData){
  2673. var PopupName = "퇴실정리 #";
  2674. var PopupNm = PopupName.split("#");
  2675. var Idx = Number(pData);
  2676. var sPath = "/root/main/opPatlist/opPatInfo";
  2677. fSetPatInfo_chemo();// 상단정보 올리기
  2678. switch(Idx) {
  2679. case 1://퇴실정리
  2680. fdschSave('grid');
  2681. //open("SMMNI02010", "", "100", "100", "SMMNI02010", "", "");
  2682. break;
  2683. case 2://2010.02.10 dhkim 추가-환자라벨출력
  2684. fOpenLabelPrint_SMMNI02000();
  2685. break;
  2686. case 3://2011.03.08 이경민 추가-환자팔찌출력
  2687. fSetIntime();
  2688. break;
  2689. case 4://2013.12.09 KJS 의사변경
  2690. fChngInptDr();
  2691. break;
  2692. case 5:// 환자기초정보
  2693. fPatInfo1();
  2694. break;
  2695. case 6:// 안전사고보고작성
  2696. fPatQi_QM();
  2697. break;
  2698. default :
  2699. break;
  2700. }
  2701. }
  2702. //2010.02.10 dhkim 추가
  2703. //환자라벨출력
  2704. function fOpenLabelPrint_SMMNI02000(){
  2705. model.removenode("/root/main/cmpatprtcnt");
  2706. model.makeValue("/root/main/cmpatprtcnt","1");
  2707. model.setFocus("ipt_cmpatprtcnt");
  2708. grp_prtlabel.attribute("left") = event.ScreenX-window.screenleft-10;
  2709. grp_prtlabel.attribute("top") = event.ScreenY-window.screenTop-150;
  2710. grp_prtlabel.attribute("visibility") = "visible";
  2711. model.refresh();
  2712. }
  2713. //2010.02.10 dhkim 추가
  2714. //라벨출력실행
  2715. function fPrintLabel_SMMNI02000(prtflag){
  2716. var pid = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/pid");
  2717. var patnm = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/hngnm");
  2718. var sexage = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/age");
  2719. var rgstno = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/rgstno");
  2720. var orddd = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/rp_indd");
  2721. var roomcd = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/depthngnm");
  2722. var deptnm = model.getValue("/root/main/chemoinfo/chemolist["+grd_chemo.row+"]/roomcd");
  2723. var prtcnt = model.getValue("/root/main/cmpatprtcnt");
  2724. if(prtflag == "IN"){
  2725. prtcnt = "1";
  2726. }
  2727. var paminfo = getGlobalVariable("paminfo");
  2728. if(paminfo.length > 0){//원무정보(기본정보)가 있는경우
  2729. //설정된 상단정보를 불러옴
  2730. model.removenode("/root/main/paminfo");
  2731. model.makeNode("/root/main/paminfo");
  2732. setCSVToNode("/root/main/paminfo", paminfo);
  2733. var rgstno1 = model.getValue("/root/main/paminfo/list/rrgstno1");
  2734. var rgstno2 = model.getValue("/root/main/paminfo/list/rrgstno2");
  2735. rgstno = rgstno1 + "-" + rgstno2.substring(0, 1) + "******"
  2736. }
  2737. // 환자 정보 라벨 출력
  2738. if(prtcnt > 0){
  2739. //1. 바코드 라벨 설정값 조회
  2740. var scrnid = "SMMNR00600";
  2741. model.removeNodeset("/root/main/barcdprntsetup");
  2742. model.removenode("/root/send");
  2743. model.makeValue("/root/send/scrnid", scrnid);
  2744. submit("TRLLC90101");
  2745. //2. 바코드 라벨 환경설정
  2746. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2747. lzzfMakeBrcdPrntObjHanDo("CommAX", barcdRef);
  2748. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  2749. //3. 환자라벨출력
  2750. //fPrtCarePatNameLabel(barcdRef, pid, roomcd, patnm, sexage, rgstno, orddd, prtcnt, portOpenTF);
  2751. setParameter("barcdRef", barcdRef);
  2752. setParameter("pid", pid);
  2753. setParameter("roomcd", roomcd);
  2754. setParameter("patnm", patnm);
  2755. setParameter("sexage", sexage);
  2756. setParameter("rgstno", rgstno);
  2757. setParameter("orddd", orddd);
  2758. setParameter("orddeptnm", deptnm);
  2759. setParameter("prtcnt", prtcnt);
  2760. setParameter("portOpenTF", portOpenTF);
  2761. modal("SPMNZ00700");
  2762. }
  2763. if(prtflag != "IN"){
  2764. grp_prtlabel.attribute("visibility") = "hidden";
  2765. }
  2766. }
  2767. // --------------------------------------------------
  2768. // 입실시각 적용(환자팔찌출력)
  2769. // --------------------------------------------------
  2770. //2011.03.08 이경민 추가
  2771. function fSetIntime()
  2772. {
  2773. var pRow = grd_chemo.row;
  2774. var sPath = "/root/main/chemoinfo/chemolist["+pRow+"]";
  2775. var calcdd = model.getValue(sPath+"/calcdd");
  2776. if(calcdd == ''){
  2777. messageBox("입실 환자가 아닙니다.", "E999", "");
  2778. return;
  2779. }
  2780. var rcptyn = model.getValue(sPath+"/rcptyn");
  2781. if(rcptyn == 'Y'){
  2782. messageBox("이미 퇴실처리된 환자입니다.", "E999", "");
  2783. return;
  2784. }
  2785. model.setValue(sPath+"/calcdd", getCurrentDate()+""+getCurrentTime().substring(0,4));
  2786. model.refresh();
  2787. fOpenPatBC();
  2788. }
  2789. // --------------------------------------------------
  2790. // 환자팔찌 재출력
  2791. // --------------------------------------------------
  2792. //2011.03.08 이경민 추가
  2793. function fOpenPatBC(flag)
  2794. {
  2795. var pRow = grd_chemo.row;
  2796. var sPath = "/root/main/chemoinfo/chemolist["+pRow+"]/";
  2797. //20080905 추가
  2798. //port정보 가져오기
  2799. model.removenode('/root/send');
  2800. model.removenode('/root/main/barcdprntsetup');
  2801. model.makenode('/root/main/barcdprntsetup');
  2802. model.makeValue('/root/send/scrnid', 'SMMNI02000');
  2803. var comport = '1';
  2804. if(submit('TRLLC90101')){
  2805. comport = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  2806. }
  2807. // 바코드 라벨 환경설정
  2808. lzzfMakeBrcdPrntObjHanDo("CommAX");
  2809. // 환자정보 상단으로..
  2810. if(flag == "") {
  2811. fSetPatInfo_chemo();
  2812. }
  2813. //설정된 상단정보를 불러옴
  2814. model.removeNodeset("/root/main/paminfo"); //노드초기화가없으면 처음 선택한 환자만 출
  2815. model.makeNode("/root/main/paminfo");
  2816. var node = getGlobalVariable("paminfo");
  2817. setCSVToNode("/root/main/paminfo", node);
  2818. var pid, indd, cretno, mskind, histstat;
  2819. //patinfo 정보 셋팅
  2820. pid = model.getValue("/root/main/paminfo/list/pid");
  2821. indd = model.getValue("/root/main/paminfo/list/indd");
  2822. cretno = model.getValue("/root/main/paminfo/list/cretno");
  2823. mskind = model.getValue("/root/main/paminfo/list/mskind");
  2824. histstat = model.getValue("/root/main/paminfo/list/histstat");
  2825. /* 삭제된 파라미터 : pPort - COM Port 지정값
  2826. * 추가된 파라미터 : pSetyn - 프린터설정정보 셋팅여부
  2827. * pScrid - 프린터설정정보 조회용 화면 아이디
  2828. * pBarcdRef - 설정정보 xpath
  2829. */
  2830. pmifPrintBarCode(pid, indd, cretno, mskind, histstat, "N", "SMMNI02000", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); // 20090527 변경됨.
  2831. }
  2832. //2010.02.10 dhkim 추가
  2833. function fCancelPrint_SMMNI02000(){
  2834. model.removenode("/root/main/cmpatprtcnt");
  2835. model.makeValue("/root/main/cmpatprtcnt","1");
  2836. grp_prtlabel.attribute("visibility") = "hidden";
  2837. }
  2838. //-----------------------------------------
  2839. // chemo 퇴실 취소(20081006)
  2840. //-----------------------------------------
  2841. function fOutCancel() {
  2842. var pGrd = grd_chemo;
  2843. var sPath = "/root/main/chemoinfo/chemolist[" + pGrd.row + "]";
  2844. if (pGrd.rows <= 1 || pGrd.row < 1) {
  2845. messageBox("자료가 선택되지 않았습니다.", "E999", "");
  2846. return;
  2847. }
  2848. var jPid = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/pid");
  2849. var jIndd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/inptindd");
  2850. var jCretno = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/inptcretno");
  2851. model.removenode("/root/send/judginfo");
  2852. model.makeValue("/root/send/judginfo/pid", jPid);
  2853. model.makeValue("/root/send/judginfo/indd", jIndd);
  2854. model.makeValue("/root/send/judginfo/cretno", jCretno);
  2855. submit("TRMNE00113");
  2856. var jJudginfo = model.getValue("/root/judginfo/dschjudgprcsstat");
  2857. if (jJudginfo != "A") {
  2858. messageBox(" 심사상태를 해제하고 퇴실취소를 진행하세요.\r\n\r\n" +
  2859. "※ 일과시간 중 - 심사실로 연락, 일과시간 외 - 응급수납으로 연락", "E999");
  2860. return;
  2861. }
  2862. var detstatus = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/detstatus");
  2863. //20081219 dhkim
  2864. //수납여부, 퇴실시간 추가
  2865. var rcptyn = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/rcptyn");
  2866. var dschnotidd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/dschnotidd");
  2867. //alert(detstatus+ "/"+detstatus.indexOf('간호퇴원확정'));
  2868. //20081208 dhkim 명칭변경 주석처리
  2869. //if (detstatus.indexOf('간호퇴원확정') == -1 ) {
  2870. //20081208 dhkim 명칭변경
  2871. if (detstatus == 'ⓒ' || (detstatus == '◆' && dschnotidd != '')) {
  2872. //20081218 dhkim
  2873. //6시간미만 환자의 경우 심사를 거치지 않고 바로 퇴원수납을 하는 경우가 존재함(안과의경우만해당)
  2874. //그리하여 퇴원수납여부를 체크해 퇴원수납된 환자의 경우 퇴실취소를 하지 못하도록 blocking처리 추가
  2875. if(rcptyn == 'Y'){
  2876. messageBox("이미 퇴원수납된 환자입니다.\r\n원무팀에 퇴원수납취소를 요청하신 후\r\n간호퇴실취소를 진행 하십시오.", "E999", "");
  2877. return;
  2878. }
  2879. //20081219 dhkim
  2880. //오늘일자환자가 아니면 취소불가
  2881. var indd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/calcdd");
  2882. if(indd != getCurrentDate()){
  2883. messageBox("입원일이 오늘인 환자만 간호퇴실취소 할 수 있습니다.", "E999", "");
  2884. return;
  2885. }
  2886. if (messageBox("간호퇴원확정 취소 ",'Q003',"") != 6) return;
  2887. var sHeader = "m▦careinrmdd▦pid▦indd▦cretno▦seqno▦cpgappno▩";
  2888. var sData = "u" +
  2889. "▦" +
  2890. "▦" + model.getValue(sPath + "/inptpid") +
  2891. "▦" + model.getValue(sPath + "/inptindd") +
  2892. "▦" + model.getValue(sPath + "/inptcretno") +
  2893. "▦" + model.getValue(sPath + "/cpgappno") + "▩";
  2894. //--------(20081006)
  2895. //alert(sData);
  2896. model.removenode("/root/send");
  2897. model.makeNode("/root/send");
  2898. model.makeValue("/root/send/chemoList",sHeader + sData );
  2899. if ( submit("TXMNI02015") ) {
  2900. fInqurySelectedPrgm(); // 조회
  2901. }
  2902. } else {
  2903. messageBox("해당환자는 간호퇴실취소할 수 있는 상태가 아닙니다.", "E999", "");
  2904. return;
  2905. }
  2906. }
  2907. //환자카드출력
  2908. //2010.02.01 dhkim 파라미터값 추가
  2909. function fPreview(prt_pid, prt_hngnm, prt_sexage, prt_depthngnm, prt_orddrnm, prt_prtlnm, prt_instcd, prt_method,prt_prtldg_d){
  2910. //model.removeNodeset("/root/hidden1/actingbasicinfo"); //그리드미리보기하려고
  2911. //model.makeNode("/root/hidden1/actingbasicinfo");
  2912. //model.copyNode("/root/hidden1/actingbasicinfo", "/root/main/actingbasicinfo");
  2913. /*
  2914. model.resetInstanceNode("/root/hidden1/actingbasicinfo");
  2915. model.refresh();
  2916. model.copyNode("/root/hidden1/actingbasicinfo", "/root/main/actingbasicinfo");
  2917. model.refresh();
  2918. */
  2919. //2010.02.01 dhkim - 노드copy를 parameter세팅으로 변경
  2920. model.removenode("/root/hidden1/actingbasicinfo");
  2921. model.makeNode("/root/hidden1/actingbasicinfo");
  2922. var pid = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/pid");
  2923. var hngnm = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/hngnm");
  2924. var sexage = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/age");
  2925. var depthngnm = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/depthngnm");
  2926. var orddrnm = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/orddrnm");
  2927. var prtlnm = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/prtlnm");
  2928. var instcd = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/instcd");
  2929. var instcd = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/instcd");
  2930. var methodd = model.getValue("/root/main/cond/method");
  2931. var prtldg_d = model.getValue("/root/main/chemoinfo/chemolist[" + grd_chemo.row + "]/prtldg_d");
  2932. if(grd_chemo.row < 1){
  2933. pid = prt_pid;
  2934. hngnm = prt_hngnm;
  2935. sexage = prt_sexage;
  2936. depthngnm = prt_depthngnm;
  2937. orddrnm = prt_orddrnm;
  2938. prtlnm = prt_prtlnm;
  2939. instcd = prt_instcd;
  2940. methodd = prt_method;
  2941. prtldg_d = prt_prtldg_d;
  2942. }
  2943. //2010.06.11 김달현 - (요청번호14176) [JCI인증대비] 이름 석자 중 가운데 자리는 별표 처리되도록 수정 요청함
  2944. /*20110425_KNUH_Start *없앰 주석처리함..
  2945. if(hngnm.length > 1){
  2946. hngnm = hngnm.substring(0, 1) + "*" + hngnm.substring(2);
  2947. }*/
  2948. var str = sexage.split('/');
  2949. model.makeValue("/root/hidden1/actingbasicinfo/disp_pid", pid);
  2950. model.makeValue("/root/hidden1/actingbasicinfo/disp_patnm", hngnm);
  2951. model.makeValue("/root/hidden1/actingbasicinfo/disp_sex", str[0]);
  2952. model.makeValue("/root/hidden1/actingbasicinfo/disp_age", str[1]);
  2953. model.makeValue("/root/hidden1/actingbasicinfo/disp_depthngnm", depthngnm);
  2954. model.makeValue("/root/hidden1/actingbasicinfo/disp_orddrnm", orddrnm);
  2955. model.makeValue("/root/hidden1/actingbasicinfo/prtlnm", prtlnm);
  2956. model.makeValue("/root/hidden1/actingbasicinfo/instcd", instcd);
  2957. model.makeValue("/root/hidden1/actingbasicinfo/method", methodd);
  2958. model.makeValue("/root/hidden1/actingbasicinfo/prtldg_d", prtldg_d);
  2959. model.refresh();
  2960. var rid = "RPMNI02000"; // 레포트명
  2961. var dataType = "XMLSTR"; // 연계방법(XMLSTR/ XMLFILE/ XML)
  2962. var paramsXPath = "/root/hidden1/actingbasicinfo"; // 매개변수필드 XPath
  2963. var submitId = ""; // SubmitID
  2964. var print = "true"; // 출력여부(true, false)
  2965. var printDialog = ""; // 인쇄 창 보임 여부(true, false)
  2966. var fileType = ""; // 저장타입(xls/ pdf/ hml/rtf/ html/ bmp/ txt/ xml )
  2967. var fileName = ""; // 파일명(c:\report\레포트명.저장타입)
  2968. var fileDialog = ""; // 파일 저장 창 보임여부(0 : 숨김[기본]/1 : 보임)
  2969. var closeYn = "true"; // 미리보기창닫기여부(출력 후 true로 설정한 경우 미리보기 화면 닫기)
  2970. var monNo = ""; // 모니터 번호
  2971. var parentObjId = ""; // 부모객체명(미리 생성한 부모 객체명, 해당 부모 객체에 레포트 데이터를 생성한다.)
  2972. var printPaperBin = ""; // 트레이번호
  2973. var userService = ""; // 데이터 소스
  2974. var showButton = ""; // 툴바버튼보임여부(visible, hidden)
  2975. var printCount = ""; // 프린트장수(1, 2,..)
  2976. var zoomRate = ""; // 미리보기뷰어 비율(0, 50,...)
  2977. var printOption = ""; // 출력시 선택 옵션
  2978. var dataXPath = ""; // 데이터 XPath
  2979. var mainDataXPath = ""; // 메인리포트 반복XPath
  2980. var subDataXPath = ""; // 서브리포트1 반복Xpath
  2981. exeReportPreview(rid, dataType, paramsXPath, submitId, print, printDialog, fileType, fileName, fileDialog, closeYn, monNo, parentObjId, printPaperBin, userService, showButton, printCount, zoomRate, printOption, dataXPath, mainDataXPath, subDataXPath);
  2982. model.refresh();
  2983. }//fPreview END
  2984. //201011_KNUH_start
  2985. function fGetChemoData(i, idx) {
  2986. var item = grd_chemo.valueMatrix(i, grd_chemo.colRef(idx));
  2987. return item;
  2988. }
  2989. function fSavePrcpInfo() {
  2990. var idx = grd_chemo.row;
  2991. var instcd = fGetChemoData(idx, "instcd");
  2992. var cretno = fGetChemoData(idx, "inptcretno");
  2993. var pid = fGetChemoData(idx, "pid");
  2994. var indd = fGetChemoData(idx, "inptindd");
  2995. var orddd = fGetChemoData(idx, "inptindd");
  2996. var orddeptcd = fGetChemoData(idx, "orddeptcd");
  2997. var orddeptnm = fGetChemoData(idx, "depthngnm ");
  2998. var orddrid = fGetChemoData(idx, "orddrid");
  2999. var orddrnm = fGetChemoData(idx, "orddrnm");
  3000. var hngnm = fGetChemoData(idx, "hngnm");
  3001. var sa = fGetChemoData(idx, "age");
  3002. var ordtype = "I";
  3003. var ioflag = "I";
  3004. var aftcertdrid = "";
  3005. var pamflag = "N";
  3006. var deptcd = orddeptcd;
  3007. var deptnm = orddeptnm;
  3008. model.makeValue("/root/temp/saveflaginfo/savedataflag", "2"); //저장자료구분(2:처방)
  3009. model.makeValue("/root/temp/saveflaginfo/saveflag" , ioflag); //저장구분 O:외래, I:입원, E:응급, S:건진, D:DSC
  3010. model.makeValue("/root/temp/saveflaginfo/prcpflag" , "2"); //처방구분 (M0035 처방권한에 대한 구분종류 : 간호 추가처방)
  3011. model.makeValue("/root/temp/saveflaginfo/inptflag" , "09"); //처방입력구분 (M0034 처방입력에 대한 구분종류 : 간호처방)
  3012. model.makeValue("/root/temp/saveflaginfo/pamflag" , pamflag);//원무정보 처리구분(외래만 Y)
  3013. model.makeValue("/root/temp/saveflaginfo/prcperrflag" , "N"); //처방오류구분
  3014. model.makeValue("/root/temp/saveflaginfo/deptcd" , deptcd); //부서코드
  3015. model.makeValue("/root/temp/saveflaginfo/deptnm" , deptnm); //부서명
  3016. model.makeValue("/root/temp/saveflaginfo/userid" , getUserInfo("userid")); //사용자ID
  3017. model.makeValue("/root/temp/saveflaginfo/usernm" , getUserInfo("usernm")); //사용자명
  3018. model.makeValue("/root/temp/saveflaginfo/signyn" , "Y"); //전자서명여부
  3019. model.makeValue("/root/temp/saveflaginfo/prcpdd" , orddd); //처방일
  3020. var saveflaginfolist = getNodeListCSV(model.instances(0).selectNodes("/root/temp/saveflaginfo"));
  3021. model.makeValue("/root/send/reqdata/saveflaginfo", saveflaginfolist);
  3022. model.makeValue("/root/temp/savergstinfo/pid" , pid); //등록번호
  3023. model.makeValue("/root/temp/savergstinfo/indd" , orddd); //진료일자
  3024. model.makeValue("/root/temp/savergstinfo/orddd" , orddd); //진료일자
  3025. model.makeValue("/root/temp/savergstinfo/cretno" , cretno); //생성번호
  3026. model.makeValue("/root/temp/savergstinfo/instcd" , instcd); //기관코드
  3027. model.makeValue("/root/temp/savergstinfo/orddeptcd" , orddeptcd); //진료과
  3028. model.makeValue("/root/temp/savergstinfo/orddeptnm" , orddeptnm); //진료과명
  3029. model.makeValue("/root/temp/savergstinfo/orddrid" , orddrid); //진료의
  3030. model.makeValue("/root/temp/savergstinfo/orddrnm" , orddrnm); //진료의명
  3031. model.makeValue("/root/temp/savergstinfo/hngnm" , hngnm); //환자명
  3032. model.makeValue("/root/temp/savergstinfo/sa" , sa); //성별나이
  3033. model.makeValue("/root/temp/savergstinfo/ordtype" , ioflag); //외래입원구분
  3034. model.makeValue("/root/temp/savergstinfo/aftcertdrid" , aftcertdrid); //외래 일반의사의 경우 후인증 대상의사는 지정한다.
  3035. var savergstinfolist = getNodeListCSV(model.instances(0).selectNodes("/root/temp/savergstinfo"));
  3036. model.makeValue("/root/send/reqdata/savergstinfo", savergstinfolist);
  3037. var saveprcplist = getNodeListCSV(model.instances(0).selectNodes("/root/main/prcpsrch/prcplist"));
  3038. model.makeValue("/root/send/reqdata/saveprcpinfo", saveprcplist);
  3039. if(submit("TRMNW10906")){
  3040. var signinfo = "A";
  3041. model.setValue(sSIGNDATA_PATH + "/signaftcnts", signinfo); //true : 처방저장할 때마다 인증저장 태움
  3042. var savesignlist = getNodeListCSV(model.instances(0).selectNodes(sSIGNDATA_PATH));
  3043. model.makeValue("/root/send/savedata/saveflaginfo", saveflaginfolist);
  3044. model.makeValue("/root/send/savedata/savergstinfo", savergstinfolist);
  3045. model.makeValue("/root/send/savedata/saveprcpinfo", saveprcplist);
  3046. model.makeValue("/root/send/savedata/savesigninfo", savesignlist);
  3047. submit("TXMNW10901");
  3048. }
  3049. }
  3050. function fGetPrcpSetList() {
  3051. model.makeValue("/root/send/reqdata/instcd", getUserInfo("dutplceinstcd"));
  3052. model.makeValue("/root/send/reqdata/settypecd", "P");
  3053. submit("TRMNI02037");
  3054. for(var i = grd_prcplist2.fixedRows; i < grd_prcplist2.rows; i++) {
  3055. grd_prcplist2.rowStatus(i) = "1";
  3056. }
  3057. }
  3058. //201011_KNUH_END
  3059. //---------------(20110422) 경북대
  3060. function fnoutorderchk() {
  3061. var rtnval = "";
  3062. var pGrd = grd_chemo;
  3063. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  3064. var xPathSend = "/root/send1";
  3065. var xPathSendReqdata = "/root/send1/reqdata";
  3066. model.removeNodeset(xPathSend);
  3067. model.makeNode(xPathSendReqdata);
  3068. var prcpdd = model.getValue("/root/main/cond/prcpdd");
  3069. var pid = model.getValue(xPathChemoList + "[" + pGrd.row + "]/pid");
  3070. model.makeValue(xPathSendReqdata + "/prcpdd", prcpdd);
  3071. model.makeValue(xPathSendReqdata + "/pid", pid);
  3072. submit('TRMNI02040');
  3073. if (getNodesetCount("/root/main/outorderinfo/deptlist")> 0) {
  3074. rtnval = "Y"; //당일 원외처방이 있는경우
  3075. } else {
  3076. rtnval = "N"; //당일 원외처방이 없는경우
  3077. }
  3078. return rtnval;
  3079. }
  3080. function fnChemoIOChk() {
  3081. var rtnval = "";
  3082. var pGrd = grd_chemo;
  3083. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  3084. var xPathSend = "/root/send1";
  3085. var xPathSendReqdata = "/root/send1/reqdata";
  3086. model.removeNodeset(xPathSend);
  3087. model.makeNode(xPathSendReqdata);
  3088. var indd = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/calcdd");
  3089. var intm = model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/calctm");
  3090. var outdd = model.getValue("/root/main/careinfo/caredschrmdd");
  3091. var outtm = model.getValue("/root/main/careinfo/caredschrmtm");
  3092. model.makeValue(xPathSendReqdata + "/inddtm", indd +""+intm);
  3093. model.makeValue(xPathSendReqdata + "/outddtm", outdd+""+outtm);
  3094. submit('TRMNI02041');
  3095. if (getNodesetCount("/root/main/chemoiochkinfo/chemoiochklist")> 0) {
  3096. rtnval = model.getValue("/root/main/chemoiochkinfo/chemoiochklist/ioflag");
  3097. }
  3098. return rtnval;
  3099. }
  3100. //---------------(20110422) 경북대
  3101. // 20110727 wify 경북대병원
  3102. // 항암주사실 메인 항암전송여부 check
  3103. function fGetChkActing() {
  3104. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  3105. var pGrd = grd_chemo;
  3106. // 환자내역이 있을때만 처리한다.
  3107. //if ( instance1..size() > 0 ) {
  3108. for ( i= pGrd.fixedrows; i < pGrd.rows; i++) {
  3109. // check할 항암프로토콜 param 설정
  3110. var cpgappno = model.getValue(xPathChemoList + "[" + i + "]/cpgappno");
  3111. var prcpdd = model.getValue(xPathChemoList + "[" + i + "]/prcpdd");
  3112. var prtldg = model.getValue(xPathChemoList + "[" + i + "]/prtldg");
  3113. var pid = model.getValue(xPathChemoList + "[" + i + "]/pid");
  3114. model.makeValue("/root/send/reqactingdata/reqactinglist/cpgappno", cpgappno);
  3115. model.makeValue("/root/send/reqactingdata/reqactinglist/prcpdd", prcpdd);
  3116. model.makeValue("/root/send/reqactingdata/reqactinglist/prtldg", prtldg);
  3117. //항암전송여부 가져오기
  3118. submit("TRMNI02005", "false");
  3119. model.removenode("/root/send/reqactingdata");
  3120. var act = model.getValue("/root/init/chkinfo/chklist/act");
  3121. var chkact = model.getValue("/root/init/chkinfo/chklist/chkact");
  3122. if ( act == chkact ) {
  3123. model.setValue(xPathChemoList + "[" + i + "]/actyn", "전송");
  3124. } else if (act < chkact && act != 0) {
  3125. model.setValue(xPathChemoList + "[" + i + "]/actyn", "부분전송");
  3126. } else if ( act == 0 && chkact != 0) {
  3127. model.setValue(xPathChemoList + "[" + i + "]/actyn", "미전송");
  3128. }
  3129. }
  3130. pGrd.refresh();
  3131. //}
  3132. }
  3133. // 입실시 선택진료 확인
  3134. function fCheckSpecOrdSign() {
  3135. model.removeNode("/root/main/paminfo");
  3136. model.makeNode("/root/main/paminfo");
  3137. var node = getGlobalVariable("paminfo");
  3138. setCSVToNode("/root/main/paminfo", node);
  3139. var s_pid = model.getValue("/root/main/paminfo/list/pid");;
  3140. var s_ordtype = 'I';
  3141. var s_orddd = model.getValue("/root/main/paminfo/list/indd");
  3142. var s_orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
  3143. var s_orddrid = model.getValue("/root/main/paminfo/list/medispclid");
  3144. var s_fromdd = model.getValue("/root/main/paminfo/list/indd");
  3145. var s_hngnm = model.getValue("/root/main/paminfo/list/hngnm");
  3146. var s_rrgstno1 = model.getValue("/root/main/paminfo/list/rrgstno1");
  3147. var s_rrgstno2 = model.getValue("/root/main/paminfo/list/rrgstno2");
  3148. var s_specordyn = model.getValue("/root/main/paminfo/list/specordyn");
  3149. var sOrddeptcdMsg = model.getValue("/root/main/paminfo/list/orddeptnm");
  3150. var sOrddridMsg = model.getValue("/root/main/paminfo/list/orddrnm");
  3151. model.makeValue("/root/send/data26/pid", s_pid); // pid
  3152. model.makeValue("/root/send/data26/ordtype", "I"); // ordtype
  3153. model.makeValue("/root/send/data26/indd", s_orddd);// orddd
  3154. model.makeValue("/root/send/data26/orddd", s_orddd);// orddd
  3155. model.makeValue("/root/send/data26/orddeptcd", s_orddeptcd); // orddeptcd
  3156. model.makeValue("/root/send/data26/medispclid", s_orddrid); // orddrid
  3157. model.makeValue("/root/send/data26/orddrid", s_orddrid); // orddrid
  3158. submit("TRPMI00406");
  3159. if (model.getValue("/root/tempchk/specapp/rgstyn") == "N") {
  3160. var sMsg = "[" + sOrddeptcdMsg + "]" + "[" + sOrddridMsg + "]";
  3161. if( s_specordyn == "Y") {
  3162. if( messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?", "Q999", "") == 6 ){
  3163. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3164. }
  3165. } else {
  3166. if( messageBox(sMsg + " 진료지원 위임이 되어 있지 않습니다. 위임하시겠습니까?", "Q999", "") == 6 ){
  3167. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3168. }
  3169. }
  3170. }
  3171. }
  3172. // 퇴실시 선택진료 확인
  3173. function fChkSpecOrdPrt() {
  3174. model.removeNode("/root/main/paminfo");
  3175. model.makeNode("/root/main/paminfo");
  3176. var node = getGlobalVariable("paminfo");
  3177. setCSVToNode("/root/main/paminfo", node);
  3178. var s_pid = model.getValue("/root/main/paminfo/list/pid");;
  3179. var s_ordtype = 'I';
  3180. var s_orddd = model.getValue("/root/main/paminfo/list/indd");
  3181. var s_orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
  3182. var s_orddrid = model.getValue("/root/main/paminfo/list/medispclid");
  3183. var s_fromdd = model.getValue("/root/main/paminfo/list/indd");
  3184. var s_hngnm = model.getValue("/root/main/paminfo/list/hngnm");
  3185. var s_rrgstno1 = model.getValue("/root/main/paminfo/list/rrgstno1");
  3186. var s_rrgstno2 = model.getValue("/root/main/paminfo/list/rrgstno2");
  3187. var sOrddeptcdMsg = model.getValue("/root/main/paminfo/list/orddeptnm");
  3188. var sOrddridMsg = model.getValue("/root/main/paminfo/list/orddrnm");
  3189. model.makeValue("/root/send/data26/pid", s_pid); // pid
  3190. model.makeValue("/root/send/data26/ordtype", "I"); // ordtype
  3191. model.makeValue("/root/send/data26/indd", s_orddd);// orddd
  3192. model.makeValue("/root/send/data26/orddd", s_orddd);// orddd
  3193. model.makeValue("/root/send/data26/orddeptcd", s_orddeptcd); // orddeptcd
  3194. model.makeValue("/root/send/data26/medispclid", s_orddrid); // orddrid
  3195. model.makeValue("/root/send/data26/orddrid", s_orddrid); // orddrid
  3196. /*
  3197. submit("TRPMI00406");
  3198. if (model.getValue("/root/tempchk/specapp/rgstyn") == "N") {
  3199. var sMsg = "[" + sOrddeptcdMsg + "]" + "[" + sOrddridMsg + "]";
  3200. if( messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?", "Q999", "") == 6 ){
  3201. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3202. }
  3203. } else {
  3204. */
  3205. submit("TRMNW01208");
  3206. var existyn = model.getValue("/root/temp/specordprtinfo/specordprtlist/existyn");
  3207. if(existyn == "N") {
  3208. //messageBox("출력된 메세지없음", "I");
  3209. } else {
  3210. messageBox("선택진료 동의 확인이 되지않았습니다.", "I");
  3211. setParameter("SMPMC06503_PARM_PID", s_pid);
  3212. modal("SMPMC06503");
  3213. //fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3214. }
  3215. //}
  3216. }
  3217. // 2013.08.13 KJS 입실시간 변경
  3218. function fChngIndt() {
  3219. var pGrd = grd_chemo;
  3220. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  3221. var prtlnm = model.getValue(xPathChemoList + "[" + pGrd.row + "]/prtlnm");
  3222. if (in_indd.value == "" || in_intm.value == "") {
  3223. messageBox("입실일시와 입실시간","I003"); //필수입력입니다.
  3224. return;
  3225. }
  3226. if (pGrd.rows <= 1 || pGrd.row <= 0 ) {
  3227. messageBox("자료가","I004");
  3228. return;
  3229. }
  3230. //상단에 올리기
  3231. fSetPatInfo_chemo();
  3232. //설정된 상단정보를 불러옴
  3233. var paminfo = getGlobalVariable("paminfo");
  3234. if(paminfo.length > 0){//원무정보(기본정보)가 있는경우
  3235. model.removenode("/root/main/paminfo");
  3236. model.makeNode("/root/main/paminfo");
  3237. setCSVToNode("/root/main/paminfo", paminfo);
  3238. } else {
  3239. messageBox("자료가","I004");
  3240. return;
  3241. }
  3242. //외래 프로토콜 환자만 체크
  3243. if( prtlnm != "" ) {
  3244. if (model.getValue(xPathChemoList + "[" + pGrd.row + "]/prcpdd") != model.getValue("/root/main/careinfo/calcdd")) {
  3245. messageBox("적용일자와 입실일자가 다른면 처리 ","E001"); //할 수 없습니다.
  3246. return;
  3247. }
  3248. }
  3249. var iRow = pGrd.row;
  3250. var calcdd = model.getValue(xPathChemoList + "[" + iRow + "]/calcdd");
  3251. var calctm = model.getValue(xPathChemoList + "[" + iRow + "]/calctm");
  3252. var dschnotidd = model.getValue(xPathChemoList + "[" + iRow + "]/dschnotidd");
  3253. var dschnotitm = model.getValue(xPathChemoList + "[" + iRow + "]/dschnotitm");
  3254. //기 입실등록 환자만 처리
  3255. if (calcdd == "" || calctm == "" || calcdd == "-" || calctm == "-" || calcdd == "00000000" || calctm == "0000") {
  3256. messageBox("입실등록 되지 않은 환자는 변경","E001");
  3257. return;
  3258. }
  3259. //퇴실환자
  3260. if (dschnotidd != "" || dschnotitm!= "") {
  3261. messageBox("퇴실 등록된 환자는 변경","E001");
  3262. return;
  3263. }
  3264. // 입실시간 변경
  3265. var icalcdd = model.getValue("/root/main/careinfo/calcdd");
  3266. var icalctm = model.getValue("/root/main/careinfo/calctm");
  3267. icalctm = icalctm.substring(0,4);
  3268. var pid = model.getValue("/root/main/paminfo/list/pid");
  3269. var indd = model.getValue("/root/main/paminfo/list/indd");
  3270. var cretno = model.getValue("/root/main/paminfo/list/cretno");
  3271. var gbn = "M";
  3272. model.makeValue("/root/send/cncldata/pid", pid);
  3273. model.makeValue("/root/send/cncldata/indd", indd);
  3274. model.makeValue("/root/send/cncldata/cretno", cretno);
  3275. model.makeValue("/root/send/cncldata/gbn", gbn);
  3276. model.makeValue("/root/send/cncldata/calcdd", icalcdd);
  3277. model.makeValue("/root/send/cncldata/calctm", icalctm);
  3278. submit("TXMNI02017");
  3279. fInqurySelectedPrgm();
  3280. }
  3281. function fChngInptDr() {
  3282. var row = grd_chemo.row;
  3283. if (row > 0) {
  3284. if (model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/careinrmdd") == "" || model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/careinrmdd") == "-") {
  3285. model.makeValue("/root/temp/chngdrinfo/predrid", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/orddrid"));
  3286. model.makeValue("/root/temp/chngdrinfo/predrnm", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/orddrnm"));
  3287. model.makeValue("/root/temp/chngdrinfo/orddeptcd", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/orddeptcd"));
  3288. model.makeValue("/root/temp/chngdrinfo/chngdrid", "");
  3289. var deptcd = model.getValue("/root/temp/chngdrinfo/orddeptcd");
  3290. model.removeNodeset("/root/temp/doctlist");
  3291. model.makeNode("/root/temp/doctlist");
  3292. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/doctlist", deptcd, "0330", "", "T");
  3293. model.refresh();
  3294. grp_chngdr.visible = true;
  3295. } else {
  3296. messageBox("의사변경 할 수 없는 상태입니다", "E999");
  3297. }
  3298. }
  3299. }
  3300. // 환자 기초정보 조회
  3301. function fPatInfo1(){
  3302. var row_cm = grd_chemo.row;
  3303. if(row_cm < 1){
  3304. return false;
  3305. }
  3306. var pid = grd_chemo.valueMatrix( row_cm, grd_chemo.colRef("pid"));
  3307. if (pid == null && pid == "" && pid == " " && pid == "-" ){
  3308. return false;
  3309. }
  3310. model.removeNodeset("/root/temp/source");
  3311. model.makeValue("/root/temp/source/srchcond", "1");
  3312. model.makeValue("/root/temp/source/pid", pid);
  3313. modal("SPPMO01400", "1", "100", "100", "SPPMO01400", "/root/temp/source", "/root/source");
  3314. }
  3315. //안전사고보고작성
  3316. function fPatQi_QM(){
  3317. var row_cm = grd_chemo.row;
  3318. if(row_cm < 1){
  3319. return false;
  3320. }
  3321. var pid = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/pid");
  3322. var hngnm = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/hngnm");
  3323. var orddeptcd = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/orddeptcd");
  3324. var medispclid = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/rp_medispclid");
  3325. var diag = ''
  3326. var diagcd = ''
  3327. var sexagestr = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/age").split("/");
  3328. if( sexagestr[0] == "F" ){ var sex = "여자"; }
  3329. if( sexagestr[0] == "M" ){ var sex = "남자"; }
  3330. var age = sexagestr[1];
  3331. var wardcd = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/wardcd");
  3332. var roomcd = model.getValue("/root/main/chemoinfo/chemolist[" + row_cm + "]/roomcd");
  3333. var ioflag = "I";
  3334. //alert(pid + hngnm + orddeptcd + medispclid + diag + diagcd + sex + age + wardcd + roomcd + ioflag);
  3335. setParameter("SMMQR00100_PARAM", pid + "▦" + hngnm + "▦" + orddeptcd + "▦" + medispclid + "▦" + diag + "▦" + diagcd + "▦" + sex + "▦" + age + "▦" + wardcd + "▦" + roomcd + "▦" + ioflag);
  3336. modal("../../../emr/qiweb/xrw/SMMQR00100", "","", "", "SMMQR00100", "", "");
  3337. }