SMMNI02020.xjs 182 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4. /*
  5. 특수주사실 외래항암업무(SMMNI02020.xfm - JScript )
  6. - Version :
  7. 1) : Ver.1.00.01
  8. */
  9. var xBizTrgtManListPath = "/root/main/biztrgtman/biztrgtmanlist"
  10. var xBizordsper = "/root/main/rghtlist/ordsperlist";
  11. var xordsperPath = "/root/main/rghtlist/ordsperlist";
  12. //20090213 dhkim 글로벌 변수 선언
  13. var suppdeptcd; //메뉴그룹사용부서코드
  14. var suppdeptnm; //메뉴그룹사용부서명
  15. var drprcpetc2; //BMT, 암센터 구분 (BMT센터 : B, 암센터 : Y)
  16. /**
  17. * @group :
  18. * @ver : 2007.05.29
  19. * @by : 신혁춘
  20. * @---------------------------------------------------
  21. * @type : function
  22. * @access : public
  23. * @desc : 각각의 통계 부분 클릭시
  24. * @param :
  25. * @return :
  26. * @---------------------------------------------------
  27. */
  28. function fStats(flag){
  29. var execnm = ds_main_leftref.getColumn(0, "execnm");
  30. ds_send.clearData();
  31. dsf_makeValue(ds_send,"bizdd" , "string",ds_main_leftref.getColumn(0,"bizdd"));
  32. dsf_makeValue(ds_send,"execflag", "string",ds_main_leftref.getColumn(0,"execflag"));
  33. dsf_makeValue(ds_send,"exec" , "string",ds_main_leftref.getColumn(0,"exec"));
  34. if(flag == "allseq"){
  35. var chk = group3.opt_allseq.value;
  36. if(chk == "0"){
  37. sysf_messageBox("검색할 데이터가","I004");
  38. return;
  39. }
  40. dsf_makeValue(ds_send,"stats", "string","allseq");
  41. }
  42. //항암조제완료클릭시
  43. if(flag == "A71"){
  44. var chk = group3.opt_ant.value;
  45. if(chk == "0"){
  46. sysf_messageBox("검색할 데이터가","I004");
  47. return;
  48. }
  49. dsf_makeValue(ds_send,"stats", "string","A71");
  50. }
  51. //혈액불출준비클릭시
  52. if(flag == "B5"){
  53. var chk = group3.group5.opt_antdelive.value;
  54. if(chk == "0"){
  55. sysf_messageBox("검색할 데이터가","I004");
  56. return;
  57. }
  58. dsf_makeValue(ds_send,"stats", "string","B5");
  59. }
  60. //20090225 dhkim
  61. //통계건수클릭시 업무대상자리스트 조회조건에 플래그 추가하여 조회함
  62. fbiztrgtman("biztrgt", flag);
  63. }
  64. /**
  65. * 20090303
  66. * dhkim
  67. * 업무대상자리스트 수납상태에 따른 색깔변경
  68. */
  69. function fSetColorRcptStatPrcpList(){
  70. /*
  71. var rcptchk;
  72. for(var i = 1; i < grd_biztrgtman.rows; i++){
  73. rcptchk = model.getValue('/root/main/biztrgtman/biztrgtmanlist[' + i + ']/rcptchk');
  74. //선불수납 : R (default)
  75. if(rcptchk == 'R'){
  76. grd_biztrgtman.cellstyle("background-color", i, 0, i, 15) = '#ffffff';
  77. //break;
  78. }
  79. //당일결과 : Y (연두)
  80. else if(rcptchk == 'Y'){
  81. grd_biztrgtman.cellstyle("background-color", i, 0, i, 15) = '#ccffcc';
  82. //alert(rcptchk + ' ' + model.getValue('/root/main/biztrgtman/biztrgtmanlist[' + i + ']/hngnm'));
  83. }
  84. //후불(진찰료) : F (핑크)
  85. else if(rcptchk == 'F'){
  86. grd_biztrgtman.cellstyle("background-color", i, 0, i, 15) = '#ff99cc';
  87. }
  88. //수납VIP : V (노랑)
  89. else if(rcptchk == 'V'){
  90. grd_biztrgtman.cellstyle("background-color", i, 0, i, 15) = '#ffff00';
  91. }
  92. }
  93. */
  94. }
  95. /*
  96. * 20090217 dhkim
  97. * 초기화 추가
  98. */
  99. function fInit(){
  100. // 의료수익 Block제어 체크로직(Y : Blocking처리, N : skip)
  101. //공통코드 load
  102. appf_getCodeList([{dsNm: "ds_init_P0453info", cdGrpId: "P0453"}, {dsNm: "ds_init_M0005info", cdGrpId: "M0005"}], true);
  103. ds_temp.setColumn(0, "endyn", ds_init_P0453info.getColumn(0, "cdid"));
  104. //처방구분노드추가
  105. var clsCnt = ds_init_M0005info.rowcount;
  106. clsCnt = eval(clsCnt);
  107. dsf_makeValue(ds_init_M0005info,"cdid" , "string", 'A7', clsCnt);
  108. dsf_makeValue(ds_init_M0005info,"cdnm" , "string", '항암', clsCnt);
  109. clsCnt = eval(clsCnt) + 1;;
  110. dsf_makeValue(ds_init_M0005info,"cdid" , "string", 'A8', clsCnt);
  111. dsf_makeValue(ds_init_M0005info,"cdnm" , "string", '예방', clsCnt);
  112. //20090313 dhkim 무균추가
  113. clsCnt = eval(clsCnt) + 1;;
  114. dsf_makeValue(ds_init_M0005info,"cdid" , "string", 'A9', clsCnt);
  115. dsf_makeValue(ds_init_M0005info,"cdnm" , "string", '무균', clsCnt);
  116. //상단 수행부서명 로그인사용자정보로 세팅
  117. var dutplcecd = sysf_getUserInfo("dutplcecd");
  118. var dutplcenm = sysf_getUserInfo("dutplcenm");
  119. ds_main_leftref.setColumn(0, "exec", dutplcecd);
  120. ds_main_leftref.setColumn(0, "execnm", dutplcenm);
  121. //노드정보 초기화
  122. ds_main_biztrgtman_biztrgtmanlist.clearData();
  123. ds_main_rghtlist_ordsperlist.clearData();
  124. ds_main_rghtlist_injsperlist.clearData();
  125. ds_main_prcpdetl_prcpdetllist.clearData();
  126. ds_main_rghtlist_snwinfolist.clearData();
  127. ds_main_rghtlist_ordrsrvlist.clearData();
  128. ds_main_rghtlist_testrsrvlist.clearData();
  129. group3.group2.ipt_dd.value = utlf_getCurrentDate();// 기준일에 현재날짜(디폴트);
  130. // fbiztrgtman("biztrgt"); //당일업무대상자리스트조회
  131. //20081117 ITC김숙인선생님 요구사항 -> 외래처방미포함 디폴트
  132. ds_main.setColumn(0, "addoprc", ''); //외래처방미포함 디폴트
  133. //처방상세내역 그리드의 헤더에 체크박스표시
  134. //grd_prcpdetl.fixedcellcheckbox(0, 1) = true;
  135. fpartflaginfo();//부위기준자료조회
  136. //20081121 dhkim 테스트중.
  137. var userid = sysf_getUserId();
  138. if(userid == 'DEV512' || userid == 'dev512' || userid == 'enr' || userid == 'ENR'){
  139. group3.group4.btn_nrsdc.visible = true;
  140. }else{
  141. group3.group4.btn_nrsdc.visible = false;
  142. }
  143. //로그인사용자의 부서정보로 타이틀을 변경 한다.
  144. //20090213 dhkim
  145. //화면 타이틀을 해당 부서에 맞게 변경한다.
  146. suppdeptcd = lf_aezfSetSuppDeptcd();
  147. suppdeptnm = getMenuDeptnm(suppdeptcd);
  148. ds_menudeptinfo.addColumn("deptcd", "string");
  149. ds_menudeptinfo.addColumn("deptnm", "string");
  150. ds_menudeptinfo.updatecontrol = false;
  151. ds_menudeptinfo.deleteColumn("deptcd");
  152. ds_menudeptinfo.deleteColumn("deptnm");
  153. ds_menudeptinfo.updatecontrol = true;
  154. dsf_makeValue(ds_menudeptinfo,"deptcd", "string", suppdeptcd);
  155. dsf_makeValue(ds_menudeptinfo,"deptnm", "string", suppdeptnm);
  156. if( utlf_isNull(suppdeptnm) ){
  157. suppdeptnm = '특수주사실';
  158. }
  159. capt_titl.text = suppdeptnm + ' 외래항암업무';
  160. //20090217 dhkim
  161. //간호부서코드테이블에 등록된 bmt와 암센터 주사실의 코드를 조회한다.
  162. //spclcareweb/js/MNS001.js
  163. //fGetNursDept(cdgrupid, sendnode, recivenode, submitid, errmessage)
  164. //////////////////////////////////////////////////////////////////////////////////
  165. ds_send.clearData();
  166. dsf_makeValue(ds_send,"cdgrupid","string",'025');
  167. ds_nursdeptinfo_bmtinfo_nursdeptlist.clearData();
  168. var oParam = {};
  169. oParam.id = "TRMNI02032";
  170. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  171. oParam.method = "reqGetNursDeptInfo";
  172. oParam.inds = "req=ds_send";
  173. oParam.outds = "ds_nursdeptinfo_bmtinfo_nursdeptlist=nursdeptlist";
  174. oParam.async = false;
  175. oParam.callback = "cf_TRMNI02032";
  176. tranf_submit(oParam);
  177. if(arErrorCode.pop("TRMNI02032") <= -1){
  178. sysf_messageBox('bmt센터 간호등록부서조회를 실패하였습니다.', 'E999');
  179. return false;
  180. }
  181. ds_send.clearData();
  182. dsf_makeValue(ds_send,"cdgrupid","string",'026');
  183. ds_nursdeptinfo_cncrinfo_nursdeptlist.clearData();
  184. var oParam = {};
  185. oParam.id = "TRMNI02033";
  186. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  187. oParam.method = "reqGetNursDeptInfo";
  188. oParam.inds = "req=ds_send";
  189. oParam.outds = "ds_nursdeptinfo_cncrinfo_nursdeptlist=nursdeptlist";
  190. oParam.async = false;
  191. oParam.callback = "cf_TRMNI02033";
  192. tranf_submit(oParam);
  193. if(arErrorCode.pop("TRMNI02033") <= -1){
  194. sysf_messageBox('암센터 간호등록부서조회를 실패하였습니다.', 'E999');
  195. return false;
  196. }
  197. //////////////////////////////////////////////////////////////////////////////////
  198. var bmttempnode = "/root/nursdeptinfo/bmtinfo/nursdeptlist";
  199. var cncrtempnode = "/root/nursdeptinfo/cncrinfo/nursdeptlist";
  200. drprcpetc2 = lf_fGetDrPrcpEtc2(ds_nursdeptinfo_cncrinfo_nursdeptlist,ds_nursdeptinfo_cncrinfo_nursdeptlist);//해당화면이 BMT센터인지 암센터인지 여부를 조회
  201. //20090720 dhkim 업무기준 추가
  202. ds_main_leftref.setColumn(0, "workflag", '1');//처방일자
  203. fbiztrgtman("biztrgt"); //당일업무대상자리스트조회
  204. }
  205. /**
  206. * 해당부서코드의 명칭을 조회
  207. */
  208. function getMenuDeptnm(deptcd) {
  209. //getMenuDeptnm('/root/send/deptcd', suppdeptcd, 'TRMNI02031', '/root/temp/menudeptinfo/deptnm');
  210. ds_send.clearData();
  211. dsf_makeValue(ds_send,"deptcd" ,"string", deptcd);
  212. var oParam = {};
  213. oParam.id = "TRMNI02031";
  214. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  215. oParam.method = "reqGetDeptInfo";
  216. oParam.inds = "req=ds_send";
  217. oParam.outds = "ds_temp_menudeptinfo=menudeptinfo";
  218. oParam.async = false;
  219. oParam.callback = "cf_TRMNI02031";
  220. tranf_submit(oParam);
  221. if(arErrorCode.pop("TRMNI02031") > -1){
  222. selectplcenm = ds_temp_menudeptinfo.getColumn(0, "deptnm");
  223. }else{
  224. sysf_messageBox('메뉴사용처명 조회를 실패했습니다.', 'E999');
  225. }
  226. return selectplcenm;
  227. //model.makeValue("/root/send/globalinstance/instance1nm", selectplcenm);
  228. }
  229. /**
  230. * @group :
  231. * @ver : 2007.05.03
  232. 2009.05.12 dhkim 테스트중...통계건수 클릭시 이 펑션 타게 테스트중임(플래그statflag 추가)
  233. * @by : 신혁춘
  234. * @---------------------------------------------------
  235. * @type : function
  236. * @access : public
  237. * @desc : 당일업무대상자리스트조회
  238. * @param :
  239. * @return :
  240. * @---------------------------------------------------
  241. */
  242. function fbiztrgtman(flag, statflag){
  243. var execnm = ds_main_leftref.getColumn(0, "execnm");
  244. //그리드 내용 클릭시
  245. if(flag == "biztrgt"){
  246. ds_send.clearData();
  247. dsf_makeValue(ds_send,"bizdd" , "string", ds_main_leftref.getColumn(0, "bizdd"));
  248. dsf_makeValue(ds_send,"execflag" , "string", ds_main_leftref.getColumn(0, "execflag"));
  249. dsf_makeValue(ds_send,"exec" , "string", ds_main_leftref.getColumn(0, "exec"));
  250. dsf_makeValue(ds_send,"endblkyn" , "string", ds_temp.getColumn(0, "endyn")); // 마감block여부구분
  251. //20090217 dhkim
  252. //사용자정보를 가지고 해당사용자가 bmt주사실사용자인지 암센터사용자인지 여부에 따라 조회구분자가 달라짐
  253. //drprcpetc2는 화면초기화 시에 글로벌변수로 세팅함
  254. dsf_makeValue(ds_send,"drprcpetc2" , "string", drprcpetc2);
  255. //20090512 dhkim
  256. //statflag 추가(통계건수 클릭시 이 펑션 타도록 변경)
  257. dsf_makeValue(ds_send,"stats" , "string", statflag);
  258. //20090720 dhkim 변경요청내용(itc서미영 : 업무기준추가 -> 예약일자/처방일자 별 조회)
  259. dsf_makeValue(ds_send,"workflag" , "string", ds_main_leftref.getColumn(0, "workflag"));
  260. var oParam = {};
  261. oParam.id = "TRMNI02021";
  262. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  263. oParam.method = "reqGetBizTrgtmanData";
  264. oParam.inds = "refCond=ds_send";
  265. oParam.outds = "ds_main_biztrgtman_biztrgtmanlist=biztrgtmanlist ds_main_biztrgtman_statslist=statslist ds_main_biztrgtman_endyninfo=endyninfo";
  266. oParam.async = false;
  267. oParam.callback = "cf_TRMNI02021";
  268. tranf_submit(oParam);
  269. if(arErrorCode.pop("TRMNI02021") > -1){
  270. //20090720 dhkim 그리드 업무일자 컬럼명 변경
  271. var workddstr = ds_main_leftref.getColumn(0, "workflag");
  272. var workflag = ds_main_leftref.getColumn(0, "workflag");
  273. if( utlf_isNull(workddstr) ){
  274. workddstr = "업무일자";
  275. }else{
  276. if(workflag == '1'){
  277. workddstr = "처방일자";
  278. }else if(workflag == '2'){
  279. workddstr = "예약일자";
  280. }else{
  281. workddstr = "업무일자";
  282. }
  283. }
  284. group3.grd_biztrgtman.setCellProperty("Head", group3.grd_biztrgtman.getBindCellIndex("body","workdd"), "text", workddstr);
  285. //20090303 dhkim 추가
  286. //업무대상자리스트 수납상태에 따른 색깔변경
  287. //fSetColorRcptStatPrcpList();
  288. var execnmchk = ds_main_leftref.getColumn(0, "execnm");
  289. group3.tar_memo.value="";
  290. ds_main_prcpdetl_prcpdetllist.clearData();
  291. ds_main_rghtlist_ordrsrvlist.clearData();
  292. ds_main_rghtlist_testrsrvlist.clearData();
  293. ds_main_rghtlist_ordsperlist.clearData();
  294. ds_main_rghtlist_injsperlist.clearData();
  295. ds_main_rghtlist_snwinfolist.clearData();
  296. group3.group1.ipt_pid.value="";
  297. group3.group1.opt_hngnm.value="";
  298. group3.group1.opt_gndrage.value="";
  299. group3.group1.opt_rrgstno.value="";
  300. }
  301. }
  302. /**dhkim 마감처리 어떻게 해야하는지 확인할것
  303. var endcount = model.getValue("/root/main/biztrgtman/endyninfo/endyn"); // 마감여부 check
  304. var endblockyn = model.getValue("/root/temp/endyn"); // 공통Blocki여부 Check
  305. if (endblockyn == 'Y'){ // 공통Block여부가 'Y'인 경우만 체크되도록
  306. if (endcount >= 1) { // 전일 마감되지 않은 건수가 있을경우
  307. alert("전일 Acting된 처방중 마감되지 않은 내역이 있습니다. 전일 마감후 조회하시기 바랍니다.");
  308. model.removeNodeset(xBizTrgtManListPath);
  309. model.removeNodeset("/root/main/biztrgtman/statslist");
  310. model.removeNodeset("/root/main/rghtlist/ordsperlist");
  311. model.removeNodeset("/root/main/rghtlist/injsperlist");
  312. model.removeNodeset(" /root/main/prcpdetl/prcpdetllist");
  313. model.removeNodeset(" /root/main/rghtlist/snwinfolist");
  314. model.removeNodeset("/root/main/rghtlist/ordrsrvlist");
  315. model.removeNodeset("/root/main/rghtlist/testrsrvlist");
  316. model.refresh();
  317. // 주사실 미시행 내역조회 및 마감 화면 open
  318. var actdd = model.getValue("/root/main/leftref/bizdd");
  319. setParameter("fromdd", actdd);
  320. setParameter("todd", actdd);
  321. setParameter("execflag", "2");
  322. setParameter("endflag", "N");
  323. open("SMMNI00200","1","15","128");
  324. }
  325. }
  326. **/
  327. //acting 처리후 다시 조회시
  328. if(flag=="acting"){
  329. dsf_makeValue(ds_send,"bizdd" , "string", ds_main_leftref.getColumn(0, "bizdd"));
  330. dsf_makeValue(ds_send,"execflag" , "string", ds_main_leftref.getColumn(0, "execflag"));
  331. dsf_makeValue(ds_send,"exec" , "string", ds_main_leftref.getColumn(0, "exec"));
  332. dsf_makeValue(ds_send,"endblkyn" , "string", ds_temp.getColumn(0, "endyn")); // 마감block여부구분
  333. //20090217 dhkim
  334. //사용자정보를 가지고 해당사용자가 bmt주사실사용자인지 암센터사용자인지 여부에 따라 조회구분자가 달라짐
  335. //drprcpetc2는 화면초기화 시에 글로벌변수로 세팅함
  336. dsf_makeValue(ds_send,"drprcpetc2" , "string", drprcpetc2);
  337. var oParam = {};
  338. oParam.id = "TRMNI02021";
  339. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  340. oParam.method = "reqGetBizTrgtmanData";
  341. oParam.inds = "refCond=ds_send";
  342. oParam.outds = "ds_main_biztrgtman_biztrgtmanlist=biztrgtmanlist ds_main_biztrgtman_statslist=statslist ds_main_biztrgtman_endyninfo=endyninfo";
  343. oParam.async = false;
  344. oParam.callback = "cf_TRMNI02021";
  345. tranf_submit(oParam);
  346. if(arErrorCode.pop("TRMNI02021") > -1){
  347. //20090303 dhkim 추가
  348. //업무대상자리스트 수납상태에 따른 색깔변경
  349. //fSetColorRcptStatPrcpList();
  350. }
  351. }
  352. }
  353. /**
  354. * @group :
  355. * @ver : 2007.05.10
  356. * @by : 신혁춘
  357. * @---------------------------------------------------
  358. * @type : function
  359. * @access : public
  360. * @desc : 업무대상자 리스트 클릭시..
  361. * @param : flag : acting
  362. * @return :
  363. * @---------------------------------------------------
  364. */
  365. function fBiztrgtClick(flag){
  366. dsf_makeValue(ds_hidden,"flags" , "string", "grd_biztrgtman");//처방전출력에 있었음..
  367. if(flag=="acting"){
  368. var TRow = ds_main_biztrgtman_biztrgtmanlist.rowcount;
  369. var chkpid = ds_send.getColumn(0, "pid");
  370. var chkorddd = ds_send.getColumn(0, "orddd");
  371. // alert(chkpid + ' ' + chkorddd);
  372. var pid, orddd, execnmchk;
  373. for(var T = 0; T < ds_main_biztrgtman_biztrgtmanlist.rowcount; T++){
  374. pid = ds_main_biztrgtman_biztrgtmanlist.getColumn(T, "pid");
  375. orddd = ds_main_biztrgtman_biztrgtmanlist.getColumn(T, "orddd");
  376. execnmchk = ds_main_leftref.getColumn(0, "execnm");
  377. // alert('i=' + T + pid + ' ' + chkpid + ' ' + orddd + ' ' + chkorddd + ' ' + execnmchk);
  378. if(pid == chkpid && orddd == chkorddd){
  379. ds_main_rghtref_rghtreflist.setColumn(0, "pid", ds_main_biztrgtman_biztrgtmanlist.getColumn(T, "pid"));
  380. //오른쪽 환자 데이타 조회에서 등록번호 데이타 입력후 조회
  381. //20090629 dhkim 7/1고시변경으로 인한 리턴값 추가
  382. var rtn = fpidref();
  383. if(!rtn){
  384. return false;
  385. }
  386. ds_main_biztrgtman_biztrgtmanlist.rowposition = T;
  387. break;
  388. }
  389. if (pid != chkpid && orddd != chkorddd){
  390. if (T >= TRow){
  391. group3.tar_memo.value="";
  392. ds_main_rghtlist_ordrsrvlist.clearData();
  393. ds_main_rghtlist_testrsrvlist.clearData();
  394. ds_main_rghtlist_ordsperlist.clearData();
  395. ds_main_rghtlist_injsperlist.clearData();
  396. ds_main_rghtlist_snwinfolist.clearData();
  397. group3.group1.ipt_pid.value="";
  398. group3.group1.opt_hngnm.value="";
  399. group3.group1.opt_gndrage.value="";
  400. group3.group1.opt_rrgstno.value="";
  401. return;
  402. }
  403. }
  404. }
  405. }
  406. if(ds_main_biztrgtman_biztrgtmanlist.rowposition < 0){
  407. return;
  408. }
  409. if(flag!="acting"){
  410. //화면상단 정보설정
  411. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  412. //20090227 dhkim ordtype제거 무조건 'O'로 넘김
  413. //var ordtype = model.getValue(xBizTrgtManListPath+"["+iRow+"]/ordtype");
  414. var ordtype = 'O';
  415. var pid = utlf_transNullToEmpty(ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "pid"));
  416. var orddd = utlf_transNullToEmpty(ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "orddd")).substr(0, 8);
  417. var cretno = utlf_transNullToEmpty(ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "cretno"));
  418. var instcd = utlf_transNullToEmpty(ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "instcd"));
  419. //20090227 dhkim orgorddd 제거
  420. //var orgorddd = model.getValue(xBizTrgtManListPath+"["+iRow+"]/orgorddd");
  421. //var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + orgorddd;
  422. var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + '';
  423. //20090212 dhkim 추가
  424. //상단정보세팅전 서울성모 전환환자인지 조회
  425. ds_send.clearData();
  426. dsf_makeValue(ds_send,"pid", "string" , pid);
  427. var oParam = {};
  428. oParam.id = "TRMNI02030";
  429. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  430. oParam.method = "reqGetPidFlagInfo";
  431. oParam.inds = "req=ds_send";
  432. oParam.outds = "ds_bmt_bmtinfo=bmtinfo";
  433. oParam.async = false;
  434. oParam.callback = "cf_TRMNI02030";
  435. tranf_submit(oParam);
  436. if(arErrorCode.pop("TRMNI02030") <= -1){
  437. sysf_messageBox('상단정보세팅중 전환환자 여부조회를 실패하였습니다.', 'E999');
  438. }else{
  439. var pidflag = ds_bmt_bmtinfo.getColumn(0, "pidflag");
  440. var hngnm = ds_bmt_bmtinfo.getColumn(0, "hngnm");
  441. if( !utlf_isNull(hngnm) ){
  442. hngnm = '"' + hngnm + '"님은 ';
  443. }
  444. if(pidflag == 'Y'){
  445. sysf_messageBox(hngnm + '여의도성모에서 서울성모 전환 BMT환자입니다.', 'I999');
  446. }
  447. }
  448. // alert(param);
  449. //상단정보 세팅
  450. appf_initPatientInfo(param);
  451. //setParameter("condparam", param);
  452. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  453. //오른쪽 환자 데이타 조회에서 등록번호 데이타 입력후 조회
  454. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  455. ds_main_rghtref_rghtreflist.setColumn(0, "pid", ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "pid"));
  456. //20090629 dhkim 7/1고시변경으로 인한 리턴값 추가
  457. var rtn = fpidref("biztrgrman");
  458. if(!rtn){
  459. return false;
  460. }
  461. //업무대상자리스트에서 해당환자 선택상태로 변경
  462. ds_main_biztrgtman_biztrgtmanlist.rowposition = iRow;
  463. }
  464. //20090218 dhkim 이부분 추가 테스트...
  465. //20090218 dhkim 이부분 추가 당일업무대상자리스트 및 당일업무대상자처방통계건수 재조회
  466. //20090218 dhkim 이부분 추가 fbiztrgtman("acting");
  467. /*
  468. 20090218 dhkim 주석처리 임시 테스트중..
  469. model.removeNodeset("/root/send");
  470. model.makeValue("/root/send/bizdd", model.getValue("/root/main/leftref/bizdd"));
  471. model.makeValue("/root/send/execflag", model.getValue("/root/main/leftref/execflag"));
  472. model.makeValue("/root/send/exec", model.getValue("/root/main/leftref/exec"));
  473. //주사실메인통계조회
  474. if(submit("TRMNI02027")){
  475. /*
  476. model.setValue("/root/main/biztrgtman/statslist/allseq", model.getValue("/root/init/stats/statslists/allseqs"));
  477. model.setValue("/root/main/biztrgtman/statslist/inj", model.getValue("/root/init/stats/statslists/injs"));
  478. model.setValue("/root/main/biztrgtman/statslist/prvn", model.getValue("/root/init/stats/statslists/prvns"));
  479. model.setValue("/root/main/biztrgtman/statslist/ant", model.getValue("/root/init/stats/statslists/ants"));
  480. model.setValue("/root/main/biztrgtman/statslist/blod", model.getValue("/root/init/stats/statslists/blods"));
  481. * /
  482. model.setValue("/root/main/biztrgtman/statslist/antprcpend", model.getValue("/root/init/stats/statslists/antprcpends"));
  483. model.setValue("/root/main/biztrgtman/statslist/antdelive", model.getValue("/root/init/stats/statslists/antdelives"));
  484. }
  485. */
  486. //업무대상자리스트에서 선택
  487. //처방상세내역조회
  488. fSearchPrcpDetail();
  489. }
  490. /**
  491. * @group :
  492. * @ver : 2008.11.03
  493. * @by :
  494. * @---------------------------------------------------
  495. * @type : function
  496. * @access : public
  497. * @desc : 처방상세내역 조회조건(pid, drugdd) set
  498. 더블클릭이벤트가 어떤 그리드에서 발생했는지 set
  499. * @param :
  500. * @return :
  501. * @---------------------------------------------------
  502. */
  503. function fSetPrclDetlCond(pid, drugdd, grdnm, orddd, cretno, orddeptcd, orddrid){
  504. //처방상세내역 조건 set
  505. ds_temp_prcpdetldata.clearData();
  506. dsf_makeValue(ds_temp_prcpdetldata,"pid" , "string", pid);
  507. dsf_makeValue(ds_temp_prcpdetldata,"drugdd" , "string", drugdd);
  508. //더블클릭이벤트가 어떤 그리드에서 발생했는지 set
  509. ds_temp.updatecontrol = false;
  510. ds_temp.deleteColumn("grdnm");
  511. ds_temp.updatecontrol = true;
  512. dsf_makeValue(ds_temp,"grdnm" , "string", grdnm);
  513. //반환요청조건 parameter set
  514. ds_temp_prcpretn.clearData();
  515. dsf_makeValue(ds_temp_prcpretn,"pid" , "string", pid);
  516. dsf_makeValue(ds_temp_prcpretn,"orddd" , "string", orddd);
  517. dsf_makeValue(ds_temp_prcpretn,"cretno" , "string", cretno);
  518. dsf_makeValue(ds_temp_prcpretn,"orddeptcd" , "string", orddeptcd);
  519. dsf_makeValue(ds_temp_prcpretn,"orddrid" , "string", orddrid);
  520. }
  521. /**
  522. * @group :
  523. * @ver : 2008.11.03
  524. * @by :
  525. * @---------------------------------------------------
  526. * @type : function
  527. * @access : public
  528. * @desc : 처방상세내역조회
  529. * @param :
  530. * @return :
  531. * @---------------------------------------------------
  532. */
  533. function fSearchPrcpDetail(){
  534. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  535. ds_send.clearData();
  536. dsf_makeValue(ds_send,"pid" , "string" , ds_temp_prcpdetldata.getColumn(0, "pid"));//등록번호
  537. dsf_makeValue(ds_send,"drugdd" , "string" , ds_temp_prcpdetldata.getColumn(0, "drugdd"));//진료일자
  538. dsf_makeValue(ds_send,"exec" , "string" , ds_main_leftref.getColumn(0, "exec"));//dutplcecd(세션기관코드)
  539. dsf_makeValue(ds_send,"addoprc" , "string" , ds_main.getColumn(0, "addoprc"));//20081030 외래처방포함조회
  540. //20090217 dhkim
  541. //사용자정보를 가지고 해당사용자가 bmt주사실사용자인지 암센터사용자인지 여부에 따라 조회구분자가 달라짐
  542. //drprcpetc2는 화면초기화 시에 글로벌변수로 세팅함
  543. dsf_makeValue(ds_send,"drprcpetc2", "string", drprcpetc2);
  544. var oParam = {};
  545. oParam.id = "TRMNI02023";
  546. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  547. oParam.method = "reqGetPrcpDetlData";
  548. oParam.inds = "refCond=ds_send";
  549. oParam.outds = "ds_main_prcpdetl_prcpdetllist=prcpdetllist";
  550. oParam.async = false;
  551. oParam.callback = "cf_TRMNI02023";
  552. tranf_submit(oParam);
  553. ds_main_prcpdetl_prcpdetllist.addColumn("prcpclscdnow", "string");
  554. ds_main_prcpdetl_prcpdetllist.addColumn("rsrvtm_ord", "string");
  555. ds_main_prcpdetl_prcpdetllist.addColumn("actorddd_ord", "string");
  556. ds_main_prcpdetl_prcpdetllist.addColumn("flag", "string");
  557. ds_main_prcpdetl_prcpdetllist.addColumn("stat", "string");
  558. for(var i = 0; i < ds_main_prcpdetl_prcpdetllist.rowcount; i++){
  559. ds_main_prcpdetl_prcpdetllist.setColumn(i, "prcpclscdnow" , ds_main_prcpdetl_prcpdetllist.getColumn(i, "prcpclscd"));
  560. ds_main_prcpdetl_prcpdetllist.setColumn(i, "rsrvtm_ord" , ds_main_prcpdetl_prcpdetllist.getColumn(i, "rsrvtm"));
  561. ds_main_prcpdetl_prcpdetllist.setColumn(i, "actorddd_ord" , ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd"));
  562. }
  563. //dsf_setTypeFormat(ds_main_prcpdetl_prcpdetllist, "execprcpuniqno:INT");
  564. //처방상세내역조회1
  565. if(arErrorCode.pop("TRMNI02023") > -1){
  566. //grd_prcpdetl.rebuildStyle();
  567. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  568. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  569. var mixchk = 0;
  570. var execdd, blodcomstat, execprcpstatcd, prcpclscd, drugno, cdnm, endyn, etcprcpresncd, blodcomstat;
  571. //조제완료또는 특조완료인 항암 처방중 mix번호가 같은 처방을 조제완료 상태로 변경하기위한 변수
  572. var mixk, actordddk, rsrvtmk, ordddk;
  573. var mixr, actordddr, rsrvtmr, ordddr;
  574. var rcptchk; //20090305 dhkim 후수납관련필드추가
  575. //20090605 dhkim
  576. var drugnok, drugnor;
  577. //처방상태 값에 따른 처방상세내역 리스트에 상태값 을 나타내는 로직 시작
  578. for(i=0; i<Row; i++){
  579. execdd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "execrid");
  580. blodcomstat = ds_main_prcpdetl_prcpdetllist.getColumn(i, "blodcomstat");
  581. execprcpstatcd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "execprcpstatcd");
  582. prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "prcpclscd");
  583. drugno = ds_main_prcpdetl_prcpdetllist.getColumn(i, "drugno");
  584. cdnm = ds_main_prcpdetl_prcpdetllist.getColumn(i, "cdnm");
  585. endyn = ds_main_prcpdetl_prcpdetllist.getColumn(i, "endyn");
  586. etcprcpresncd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "etcprcpresncd"); // 수혈반납 및 폐기사유코드
  587. blodcomstat = ds_main_prcpdetl_prcpdetllist.getColumn(i, "blodcomstat"); // 성분제제상태
  588. stat = ds_main_prcpdetl_prcpdetllist.getColumn(i, "stat"); //[20081118 by dhkim] 처방상태 (강제지정)
  589. //alert('stat : ' + stat);
  590. //20090305 dhkim 후수납관련필드추가
  591. rcptchk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rcptchk"); // 후수납상태
  592. //alert('drugno : ' + drugno + ', execprcpstatcd : ' + execprcpstatcd + ', cdnm : ' + cdnm + ', prcpclscd : ' + prcpclscd);
  593. //20090305 dhkim
  594. //특조전송완료 상태로 보여주는 부분 후수납의 경우 230조건 제외할것
  595. //후수납 : rcptchk값이 V, Y, F일때는 230조건 제외,
  596. // rcptchk값이 R일때는 230조건
  597. //20090312 dhkim vip환자의 경우는 수납여부 체크하지 않음
  598. //20090313 dhkim vip환자와 당일선검사환자의 경우는 수납여부 체크하지 않음
  599. if(
  600. (
  601. (rcptchk == 'R' && execprcpstatcd == "230")
  602. || (rcptchk == 'V')
  603. || (rcptchk == 'Y')
  604. //20090428 dhkim 후불 주석품
  605. || (rcptchk == 'F')
  606. )
  607. && drugno != "0" //투약번호 따지고
  608. && cdnm !="마약" //(마약제외)
  609. && stat != "2" //처방상태 (강제지정시 항암으로 위장된 조제완료된 주사처방을 지정 못하게 하기위함)
  610. ){
  611. //alert(rcptchk + ' ' + execprcpstatcd + ' ' + drugno);
  612. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 13); //전송완료
  613. }
  614. /*
  615. //투약번호 따지고 230수납 된 약이면 (마약제외) 전송완료상태
  616. if(drugno != "0" && execprcpstatcd == "230" && cdnm!="마약"
  617. && stat != "2"){//[20081118 by dhkim] 처방상태 (강제지정시 항암으로 위장된 조제완료된 주사처방을 지정 못하게 하기위함)
  618. grd_prcpdetl.textmatrix(i, 3) = 13; //전송완료
  619. }
  620. */
  621. //300조제보류
  622. if(execprcpstatcd == "300"){
  623. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 1); //조제보류
  624. }
  625. //310조제완료 315특조완료 A7항암
  626. //20090316 dhkim 무균(A9)추가
  627. if(execprcpstatcd == "310" || execprcpstatcd == "315" && (prcpclscd == "A7" || prcpclscd == "A9")){
  628. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 2); //조제완료
  629. mixk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "mix");
  630. //alert(mixk);
  631. actordddk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  632. rsrvtmk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rsrvtm");
  633. ordddk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "orddd");
  634. drugnok = ds_main_prcpdetl_prcpdetllist.getColumn(i, "drugno"); //투약번호
  635. //예약일, 진료일, 처방일, mix번호가 같은 처방을 조제완료상태로 강제변경
  636. for (r=0; r<Row; r++){
  637. //ds_main_prcpdetl_prcpdetllist
  638. mixr = ds_main_prcpdetl_prcpdetllist.getColumn(r, "mix");
  639. actordddr = ds_main_prcpdetl_prcpdetllist.getColumn(r, "actorddd");
  640. rsrvtmr = ds_main_prcpdetl_prcpdetllist.getColumn(r, "rsrvtm");
  641. ordddr = ds_main_prcpdetl_prcpdetllist.getColumn(r, "orddd");
  642. drugnor = ds_main_prcpdetl_prcpdetllist.getColumn(r, "drugnor");
  643. //alert(mixk +','+ mixr +' '+ rsrvtmk +','+ rsrvtmr +' '+ actordddk +','+ actordddr +' '+ ordddk +','+ ordddr);
  644. if(mixk!= '-' && rsrvtmk != '-' && mixk == mixr && actordddr == actordddk && rsrvtmr == rsrvtmk && ordddr == ordddk && drugnor == drugnok && drugnok != 0){
  645. ds_main_prcpdetl_prcpdetllist.setColumn(r, "stat", 2); //조제완료
  646. }
  647. }
  648. }
  649. //처방 상태값 세팅
  650. //처방전출력여부 610실시완료
  651. var printyn = ds_main_prcpdetl_prcpdetllist.getColumn(i, "printyn");
  652. if(printyn == "Y" && execprcpstatcd != "610"){
  653. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#FFFFCC';//상아색
  654. }
  655. //500접수 505준비 510검사중
  656. if(execprcpstatcd == "500" || execprcpstatcd == "505" || execprcpstatcd == "510"){
  657. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 11); //접수
  658. }
  659. //520검사완료 525불출요청
  660. if(execprcpstatcd == "520" || execprcpstatcd == "525"){
  661. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 4); //준비완료
  662. }
  663. //540반납의뢰
  664. if(execprcpstatcd == "540"){
  665. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 7); //반납의뢰
  666. }
  667. //550반납완료
  668. if(execprcpstatcd == "550"){
  669. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 8); //반납완료
  670. }
  671. //530출고
  672. if(execprcpstatcd == "530"){
  673. if (blodcomstat == "8") {
  674. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 14); //잔여폐기
  675. }
  676. else {
  677. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 5); //불출
  678. }
  679. }
  680. //560폐기의뢰
  681. if(execprcpstatcd == "560"){
  682. if (etcprcpresncd == "07" || etcprcpresncd == "12") {
  683. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 14); //잔여폐기
  684. }
  685. else {
  686. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 9); //폐기의뢰
  687. }
  688. }
  689. //570폐기완료
  690. if(execprcpstatcd == "570"){
  691. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 10); //폐기완료
  692. }
  693. //320출고
  694. if(execprcpstatcd == "320"){
  695. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 5); //출고
  696. }
  697. //B4수혈 610실시완료
  698. if(prcpclscd =="B4"){
  699. if(execprcpstatcd == "610"){
  700. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 12); //실시완료
  701. }
  702. }else{
  703. if(execprcpstatcd == "610"){
  704. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", 6); //시행완료
  705. }
  706. }
  707. //ds_main_prcpdetl_prcpdetllist
  708. var mix = ds_main_prcpdetl_prcpdetllist.getColumn(i, "mix");
  709. var actorddd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  710. var rsrvtm = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rsrvtm");
  711. var orddd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "orddd");
  712. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  713. var rgstdd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rgstdd");
  714. var rgsttm = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rgsttm");
  715. //20090622 dhkim
  716. if( utlf_transNullToEmpty(orddd).length > 8){
  717. orddd = orddd.substring(0, 8);
  718. }
  719. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  720. var stat = ds_main_prcpdetl_prcpdetllist.getColumn(i, "stat");
  721. var mixs, actorddds, rsrvtms, orddds;
  722. var _rgstdd, _rgsttm;
  723. //항암처방과 mix번호가 같은것 처방종류를 항암으로 display
  724. if(prcpclscd == "A7"){
  725. for(var k=0; k<Row; k++){
  726. mixs = ds_main_prcpdetl_prcpdetllist.getColumn(k, "mix");
  727. actorddds = ds_main_prcpdetl_prcpdetllist.getColumn(k, "actorddd");
  728. rsrvtms = ds_main_prcpdetl_prcpdetllist.getColumn(k, "rsrvtm");
  729. orddds = ds_main_prcpdetl_prcpdetllist.getColumn(k, "orddd");
  730. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  731. _rgstdd = ds_main_prcpdetl_prcpdetllist.getColumn(k, "rgstdd");
  732. _rgsttm = ds_main_prcpdetl_prcpdetllist.getColumn(k, "rgsttm");
  733. //20090622 dhkim
  734. if( utlf_transNullToEmpty(orddds).length > 8){
  735. orddds = orddds.substring(0, 8);
  736. }
  737. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  738. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd && rgstdd == _rgstdd && rgsttm == _rgsttm){
  739. // 특조전송시 mix번호 같을때 항암으로 보여주는 로직..
  740. ds_main_prcpdetl_prcpdetllist.setColumn(k, "prcpclscdnow", 'A7');
  741. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  742. ds_main_prcpdetl_prcpdetllist.setColumn(k, "stat", stat);
  743. }
  744. }
  745. }
  746. //20090316 dhkim 무균추가
  747. // 마감처방 색깔표시 되도록
  748. if(prcpclscd == "A9"){
  749. for (var k=0; k<Row; k++){
  750. mixs = ds_main_prcpdetl_prcpdetllist.getColumn(k, "mix");
  751. actorddds = ds_main_prcpdetl_prcpdetllist.getColumn(k, "actorddd");
  752. rsrvtms = ds_main_prcpdetl_prcpdetllist.getColumn(k, "rsrvtm");
  753. orddds = ds_main_prcpdetl_prcpdetllist.getColumn(k, "orddd");
  754. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  755. _rgstdd = ds_main_prcpdetl_prcpdetllist.getColumn(k, "rgstdd");
  756. _rgsttm = ds_main_prcpdetl_prcpdetllist.getColumn(k, "rgsttm");
  757. //20090622 dhkim
  758. if(utlf_transNullToEmpty(orddds).length > 8){
  759. orddds = orddds.substring(0, 8);
  760. }
  761. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  762. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd && rgstdd == _rgstdd && rgsttm == _rgsttm){
  763. // 특조전송시 mix번호 같을때 항암으로 보여주는 로직..
  764. ds_main_prcpdetl_prcpdetllist.setColumn(k, "prcpclscdnow", 'A9');
  765. //20090903 dhkim 빈센트 오류사항 (믹스지정한 처방상태가 동일하지 않음)
  766. ds_main_prcpdetl_prcpdetllist.setColumn(k, "stat", stat);
  767. }
  768. }
  769. }
  770. //20090529 dhkim
  771. //혈액 상태중 반납의뢰, 통폐기의뢰, 잔여폐기의뢰, 출고, 접수, 준비완료, 반납완료, 통폐기완료, 잔여폐기완료 상태값 정의
  772. if(prcpclscd == 'B4'){
  773. ds_main_prcpdetl_prcpdetllist.setColumn(i, "stat", ds_main_prcpdetl_prcpdetllist.getColumn(i, "bloodst"));
  774. }
  775. if (endyn == "Y") {
  776. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#ffcccc';//빨간색
  777. }
  778. } //상태 값을 나타내는 로직 끝
  779. //상세내역 조회후 오른쪽 데이타 조회
  780. fRghtDataList();
  781. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  782. //model.copyNode("/root/hidden/main", "/root/main");
  783. ds_hidden_main_biztrgtman_biztrgtmanlist.copyData(ds_main_biztrgtman_biztrgtmanlist);
  784. ds_hidden_main_biztrgtman_statslist.copyData(ds_main_biztrgtman_statslist);
  785. ds_hidden_main_biztrgtman_endyninfo.copyData(ds_main_biztrgtman_endyninfo);
  786. ds_hidden_main_leftref.copyData(ds_main_leftref);
  787. ds_hidden_main_rghtref_rghtreflist.copyData(ds_main_rghtref_rghtreflist);
  788. ds_hidden_main_prcpdetl_prcpdetllist.copyData(ds_main_prcpdetl_prcpdetllist);
  789. ds_hidden_main_rghtlist_ordsperlist.copyData(ds_main_rghtlist_ordsperlist);
  790. ds_hidden_main_rghtlist_injsperlist.copyData(ds_main_rghtlist_injsperlist);
  791. ds_hidden_main_rghtlist_snwinfolist.copyData(ds_main_rghtlist_snwinfolist);
  792. ds_hidden_main_rghtlist_ordrsrvlist.copyData(ds_main_rghtlist_ordrsrvlist);
  793. ds_hidden_main_rghtlist_testrsrvlist.copyData(ds_main_rghtlist_testrsrvlist);
  794. ds_hidden_main_rghtlist_memolist.copyData(ds_main_rghtlist_memolist);
  795. ds_hidden_main.copyData(ds_main);
  796. ds_hidden_main_userpopupinfo.copyData(ds_main_userpopupinfo);
  797. ds_hidden_main_patinfo_patinfolist.copyData(ds_main_patinfo_patinfolist);
  798. ds_hidden_main_paminfo.copyData(ds_main_paminfo);
  799. ds_hidden_main_cond_list.copyData(ds_main_cond_list);
  800. }
  801. }
  802. /**
  803. *20090630 dhkim
  804. *이전 조회내역 클리어
  805. */
  806. function fClearSrch(){
  807. //상병정보
  808. ds_main_rghtlist_snwinfolist.clearData();
  809. //메모
  810. ds_main_rghtlist_memolist.updatecontrol = false;
  811. ds_main_rghtlist_memolist.deleteColumn("memocnts");
  812. ds_main_rghtlist_memolist.updatecontrol = true;
  813. //model.removenodeset('/root/main/rghtlist/memolist/memocnts');
  814. //진료예약정보
  815. ds_main_rghtlist_ordrsrvlist.clearData();
  816. //검사예약정보
  817. ds_main_rghtlist_testrsrvlist.clearData();
  818. //진료내역
  819. ds_main_rghtlist_ordsperlist.clearData();
  820. //미시행주사내역
  821. ds_main_rghtlist_injsperlist.clearData();
  822. //처방상세내역
  823. ds_main_prcpdetl_prcpdetllist.clearData();
  824. }
  825. /**
  826. * @group :
  827. * @ver : 2007.05.04
  828. * @by : 신혁춘
  829. * @---------------------------------------------------
  830. * @type : function
  831. * @access : public
  832. * @desc : 등록번호에 따른 환자정보 검색
  833. * @param :
  834. * @return :
  835. * @---------------------------------------------------
  836. */
  837. function fpidref(flag){
  838. var pid, hngnm ;
  839. ds_send.clearData();
  840. pid = group3.group1.ipt_pid.value;
  841. if( utlf_isNull(pid) ){
  842. sysf_messageBox("환자를 지정하지", "E007");
  843. return false;
  844. }
  845. //20090630 dhkim
  846. //환자세팅하기 전 이전내역 clear
  847. fClearSrch();
  848. //입력한 등록번호의 환자명, 주민번호를 조회
  849. dsf_makeValue(ds_send,"pid","string",pid);
  850. var oParam = {};
  851. oParam.id = "TRMNI02022";
  852. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  853. oParam.method = "reqGetPidRef";
  854. oParam.inds = "refCond=ds_send";
  855. oParam.outds = "ds_main_rghtref_rghtreflist=rghtreflist";
  856. oParam.async = false;
  857. oParam.callback = "cf_TRMNI02022";
  858. tranf_submit(oParam);
  859. if(arErrorCode.pop("TRMNI02022") > -1){
  860. hngnm = ds_main_rghtref_rghtreflist.getColumn(0, "hngnm");
  861. if( utlf_isNull(hngnm) ){
  862. group3.group1.opt_hngnm.value="";
  863. group3.group1.opt_gndrage.value="";
  864. group3.group1.opt_rrgstno.value="";
  865. dsf_makeValue(ds_main_rghtref_rghtreflist,"pid","string","");
  866. return false;
  867. }
  868. //20090629 dhkim
  869. //2009.07.01부터 보험료인상에 대한 주사실 액팅 시점의 수납 메시지 관련 원무인터페이스 호출추가
  870. //주사, 혈액에 대해서만
  871. ds_send.clearData();
  872. ds_insurinfo_insurlist.clearData();
  873. dsf_makeValue(ds_send,"pid","string",pid);
  874. dsf_makeValue(ds_send,"instcd","string",sysf_getUserInfo('dutplceinstcd'));
  875. var oParam = {};
  876. oParam.id = "TRMNI02035";
  877. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  878. oParam.method = "reqGetInsurApplyYnInfo";
  879. oParam.inds = "refCond=ds_send";
  880. oParam.outds = "ds_insurinfo_insurlist=insurlist";
  881. oParam.async = false;
  882. oParam.callback = "cf_TRMNI02035";
  883. tranf_submit(oParam);
  884. if(arErrorCode.pop("TRMNI02035") > -1){
  885. var prcprcptyn = ds_insurinfo_insurlist.getColumn(0, "prcprcptyn");
  886. if(prcprcptyn == 'Y'){
  887. sysf_messageBox('요율변경 대상자입니다.\r\n수납에서 정산할 수 있도록 안내 해 주시기 바랍니다.', 'E');
  888. //return false;
  889. flag = "new";
  890. //return true;//blocking 제외시킴 20090701 (김병로팀장님)
  891. }
  892. }
  893. if(flag == "new"){
  894. //상병정보, 메모, 진료예약정보, 검사예약정보, 진료내역, 미시행 주사내역 조회
  895. fRghtDataList();
  896. ds_main_prcpdetl_prcpdetllist.clearData();
  897. }
  898. }
  899. return true;
  900. }
  901. /**
  902. * @group :
  903. * @ver : 2007.05.11
  904. * @by : 신혁춘
  905. * @---------------------------------------------------
  906. * @type : function
  907. * @access : public
  908. * @desc : 오른쪽 조회시
  909. * @param :
  910. * @return :
  911. * @---------------------------------------------------
  912. */
  913. function fRghtDataList(){
  914. var hngnm = ds_main_rghtref_rghtreflist.getColumn(0, "hngnm");
  915. if( utlf_isNull(hngnm) ){
  916. sysf_messageBox("환자가 조회되지", "E007")
  917. return;
  918. }
  919. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  920. var cretno = ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "cretno");
  921. var allterm = ds_main.getColumn(0, "allterm");
  922. var orddd = ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "orddd");
  923. var bizorddd = ds_main_leftref.getColumn(0, "bizdd");
  924. var ordsperRow = ds_main_rghtlist_ordsperlist.rowposition;
  925. var depthngnm, usernm;
  926. //[20081121 dhkim] 진료내역그리드에 선택되어진 진료내역 있으면 해당일자를 set
  927. ds_temp.addColumn("grdnm", "string");
  928. if(ds_temp.getColumn(0, "grdnm") == 'grd_ordsper' && ordsperRow > -1){
  929. orddd = ds_main_rghtlist_ordsperlist.getColumn(ordsperRow, "actorddd");
  930. depthngnm = ds_main_rghtlist_ordsperlist.getColumn(ordsperRow, "depthngnm");
  931. usernm = ds_main_rghtlist_ordsperlist.getColumn(ordsperRow, "usernm");
  932. if( utlf_isNull(bizorddd) ){
  933. bizorddd = orddd;
  934. }
  935. }
  936. if( utlf_isNull(orddd) ){
  937. orddd = utlf_getCurrentDate();
  938. }
  939. if( utlf_isNull(bizorddd) ){
  940. bizorddd = orddd;
  941. }
  942. ds_send.clearData();
  943. dsf_makeValue(ds_send,"pid" , "string", ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  944. dsf_makeValue(ds_send,"allterm" , "string", allterm); //전체기간 체크여부
  945. dsf_makeValue(ds_send,"orddd" , "string", orddd);
  946. dsf_makeValue(ds_send,"bizorddd", "string", bizorddd);
  947. dsf_makeValue(ds_send,"cretno" , "string", cretno);
  948. dsf_makeValue(ds_send,"exec" , "string", ds_main_leftref.getColumn(0, "exec"));
  949. //dsf_setTypeFormat(ds_send, "cretno:INT");
  950. //상병정보, 메모, 진료예약정보, 검사예약정보, 진료내역, 미시행주사내역 조회
  951. var oParam = {};
  952. oParam.id = "TRMNI02024";
  953. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  954. oParam.method = "reqGetRghtDataList";
  955. oParam.inds = "refCond=ds_send";
  956. oParam.outds = "ds_main_rghtlist_ordsperlist=ordsperlist ds_main_rghtlist_injsperlist=injsperlist ds_main_rghtlist_snwinfolist=snwinfolist ds_main_rghtlist_ordrsrvlist=ordrsrvlist ds_main_rghtlist_testrsrvlist=testrsrvlist ds_main_rghtlist_memolist=memolist";
  957. oParam.async = false;
  958. oParam.callback = "cf_TRMNI02024";
  959. tranf_submit(oParam);
  960. if(arErrorCode.pop("TRMNI02024") > -1){
  961. var seqno = ds_main_rghtlist_memolist.getColumn(0, "seqno");
  962. if( utlf_isNull(seqno) ){
  963. //메모 데이타 없을시 이전 데이타 삭제
  964. group3.tar_memo.value="";
  965. }
  966. var memocnts=ds_main_rghtlist_memolist.getColumn(0, "memocnts");
  967. if( utlf_isNull(memocnts) ){
  968. dsf_makeValue(ds_main_rghtlist_memolist,"memocnts", "string", "");
  969. group3.tar_memo.value = "";
  970. }
  971. }
  972. //[20081121 dhkim] 진료내역 재조회후 해당일자 선택된 상태로 변경 grd_ordsper.row = ordsperRow;
  973. if(ds_temp.getColumn(0, "grdnm") == 'grd_ordsper' && ordsperRow > -1){
  974. var _actorddd, _depthngnm, _usernm;
  975. for(var i = 0; i < ds_main_rghtlist_ordsperlist.rowcount; i++){
  976. _actorddd = ds_main_rghtlist_ordsperlist.getColumn(i, "actorddd");
  977. _depthngnm = ds_main_rghtlist_ordsperlist.getColumn(i, "depthngnm");
  978. _usernm = ds_main_rghtlist_ordsperlist.getColumn(i, "usernm");
  979. if(orddd == _actorddd && depthngnm == _depthngnm && usernm == _usernm){
  980. ds_main_rghtlist_ordsperlist.rowposition = i;
  981. //group3.grd_ordsper.vscrollbar.pos = i;
  982. return;
  983. }
  984. }
  985. }else{
  986. //20090604 dhkim 최근진료내역 선택상태로 보여줌
  987. if(ds_main_rghtlist_ordsperlist.rowcount > 0 ){
  988. ds_main_rghtlist_ordsperlist.rowposition = 0;
  989. }
  990. }
  991. }
  992. /**
  993. * @group :
  994. * @ver : 2007.05.14
  995. * @by : 신혁춘
  996. * @---------------------------------------------------
  997. * @type : function
  998. * @access : public
  999. * @desc : 오른쪽 메모
  1000. * @param :
  1001. * @return :
  1002. * @---------------------------------------------------
  1003. */
  1004. function fMemoInsert(){
  1005. var memocnts = group3.tar_memo.value;
  1006. var seqno = ds_main_rghtlist_memolist.getColumn(0, "seqno");
  1007. var hngnm = ds_main_rghtref_rghtreflist.getColumn(0, "hngnm");
  1008. //메모 데이타 조회시 환자 선택 여부 파악
  1009. if( utlf_isNull(hngnm) ){
  1010. sysf_messageBox("환자가 선택되지", "E007")
  1011. return;
  1012. }
  1013. ds_send.clearData();
  1014. dsf_makeValue(ds_send,"pid","string",ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  1015. dsf_makeValue(ds_send,"memocnts","string",memocnts);
  1016. dsf_makeValue(ds_send,"seqno","string",ds_main_rghtlist_memolist.getColumn(0, "seqno"));
  1017. var oParam = {};
  1018. oParam.id = "TXMNI02021";
  1019. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  1020. oParam.method = "reqExeMemoList";
  1021. oParam.inds = "refCond=ds_send";
  1022. oParam.outds = "";
  1023. oParam.async = false;
  1024. oParam.callback = "cf_TXMNI02021";
  1025. tranf_submit(oParam);
  1026. if(arErrorCode.pop("TXMNI02021") > -1){
  1027. fRghtDataList();
  1028. }
  1029. }
  1030. /**
  1031. 20090806 dhkim 주석처리
  1032. * @group :
  1033. * @ver : 2008.11.03
  1034. * @by :
  1035. * @---------------------------------------------------
  1036. * @type : function
  1037. * @access : public
  1038. * @desc : acting 취소
  1039. * @param :
  1040. * @return :
  1041. * @---------------------------------------------------
  1042. function fActingCancel(){
  1043. var iRow = grd_biztrgtman.row;
  1044. var Row = grd_prcpdetl.rows;
  1045. var jRow = grd_prcpdetl.row;
  1046. var oRow = grd_ordsper.row;
  1047. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  1048. //환자 선택 여부 파악
  1049. if(Row==1){
  1050. messageBox("환자가 선택되지", "E007")
  1051. return;
  1052. }
  1053. //처방선택여부 파악
  1054. var chek = 0;
  1055. var kRow = 0;
  1056. for (i=1; i<Row; i++){
  1057. chek = chek + grd_prcpdetl.textmatrix(i,1);
  1058. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  1059. kRow = kRow +","+ i
  1060. }
  1061. }
  1062. if(chek==0){
  1063. messageBox("하나 이상의 처방내역을", "C002")
  1064. return;
  1065. }
  1066. var kRows = kRow.split(",");
  1067. for(i=1; i < kRows.length; i++){
  1068. var exec = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execdd");
  1069. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  1070. var execchk = getCurrentDate();
  1071. var execord = exec.substr(0,8);
  1072. var endyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/endyn");
  1073. var act50yn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/act50yn");
  1074. var dracptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptyn");
  1075. var dracptdt = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptdt");
  1076. if(exec == "-"){
  1077. messageBox("Acting을 실시하지 않은 곳은 Acting 취소를", "E001")
  1078. return;
  1079. }
  1080. if(execord != execchk){
  1081. messageBox("Acting을 실시한 일자와 현재 일자가 동일하지 않은 곳은 Acting 취소를", "E001")
  1082. return;
  1083. }
  1084. if(prcpclscd == "B4"){
  1085. messageBox("혈액은 Acting 취소를", "E001")
  1086. return;
  1087. }
  1088. // 마감된 처방을 Acting취소시 마감반환사유 프로세스 입력되도록
  1089. if (endyn == "Y") {
  1090. messageBox("마감된 Acting처방을 취소하려면 반환사유를 ", "C001");
  1091. model.makeValue("/root/main/cond/list/prcpdd", model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpdd"));
  1092. model.makeValue("/root/main/cond/list/prcpno", model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpno"));
  1093. model.makeValue("/root/main/cond/list/prcphistno", model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcphistno"));
  1094. model.makeValue("/root/main/cond/list/execprcpno", model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execprcpno"));
  1095. model.makeValue("/root/main/cond/list/instcd", getUserInfo("dutplceinstcd"));
  1096. model.makeValue("/root/main/cond/list/ioflag", "O");
  1097. // 반환사유 팝업
  1098. modal("SPPAS03000", "2", "100", "100", "SPPAS03000", "root/main/cond", "root/target", "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
  1099. }
  1100. } // for end
  1101. if(kRows.length >= 3){
  1102. var chkactorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1103. for (i=1; i<kRows.length; i++){
  1104. var chkactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1105. if(chkactorddd != chkactorddd1){
  1106. messageBox("ACting은 동일한 예약일자가 아니면 Acting실시", "E001");
  1107. return;
  1108. }
  1109. }
  1110. }
  1111. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");//세션 부서코드(default)
  1112. var ordddlong = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/orddd")
  1113. var orddd = ordddlong.substring(0,8);
  1114. model.removeNodeset("/root/send");
  1115. model.makeValue("/root/send/acting", "N"); // acting : Y, acting취소 : N
  1116. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid")); // 등록번호
  1117. model.makeValue("/root/send/drugdd", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd")); // 예정일시
  1118. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd); // 실시부서코드
  1119. model.makeValue("/root/send/endyn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/endyn")); // 마감여부
  1120. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i")); // 처방상세내역 그리드
  1121. model.makeValue("/root/send/orddd", orddd);
  1122. model.makeValue("/root/send/act50yn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/act50yn"));
  1123. model.makeValue("/root/send/dracptyn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptyn"));
  1124. model.makeValue("/root/send/dracptdt", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptdt"));
  1125. //Acting취소 실행
  1126. if(submit("TXMNI02026")){
  1127. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  1128. fbiztrgtman("acting");
  1129. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  1130. //처방 상세내역
  1131. fBiztrgtClick("acting");
  1132. }else if (oRow != ""){
  1133. grd_ordsper.row = oRow;
  1134. fordsper();
  1135. }
  1136. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1137. model.copyNode("/root/hidden/main", "/root/main");
  1138. }
  1139. }
  1140. */
  1141. /**
  1142. 20090806 dhkim 주석처리
  1143. * @group :
  1144. * @ver : 2007.05.15
  1145. * @by : 신혁춘
  1146. * @---------------------------------------------------
  1147. * @type : function
  1148. * @access : public
  1149. * @desc : acting 채크
  1150. * @param :
  1151. * @return :
  1152. * @---------------------------------------------------
  1153. function fActing(){
  1154. var iRow = grd_biztrgtman.row;
  1155. var Row = grd_prcpdetl.rows;
  1156. var jRow = grd_prcpdetl.row;
  1157. var oRow = grd_ordsper.row;
  1158. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  1159. //acting채크 시 환자 선택 여부 파악
  1160. if(Row==1){
  1161. messageBox("환자가 선택되지", "E007")
  1162. return;
  1163. }
  1164. //처방선택여부 파악
  1165. var chek = 0;
  1166. var kRow = 0;
  1167. for (i=1; i<Row; i++){
  1168. chek = chek + grd_prcpdetl.textmatrix(i,1);
  1169. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  1170. kRow = kRow +","+ i
  1171. }
  1172. }
  1173. if(chek==0){
  1174. messageBox("하나 이상의 처방내역을", "C002")
  1175. return;
  1176. }
  1177. //선택한 처방에 해당하는 row만 돌면서 acting validation을 체크한다.
  1178. var kRows = kRow.split(",");
  1179. for(i=1; i<kRows.length; i++){
  1180. var exec = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execdd");
  1181. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  1182. var execchk = getCurrentDate();
  1183. var execord = exec.substr(0,8);
  1184. var endyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/endyn");
  1185. var act50yn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/act50yn");
  1186. var dracptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptyn");
  1187. var dracptdt = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptdt");
  1188. if(exec != "-"){
  1189. messageBox("Acting을 실시한 곳은 다시 Acting을", "E001")
  1190. return;
  1191. }
  1192. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  1193. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  1194. var cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  1195. //항암, 주사 가 아니면 조회만 가능
  1196. //20090316 dhkim 무균(A9)추가
  1197. if(prcpclscd != "A7" && prcpclscd != "A6" && prcpclscd != "A8" && prcpclscd != "A9"){
  1198. messageBox("항암, 무균, 주사만 Acting을 할 수 있습니다.", "E");
  1199. return;
  1200. }
  1201. if(prcpclscd == "B4"){
  1202. messageBox("혈액은 수혈 기록을 통해서만 Acting을 할 수 있습니다.", "E")
  1203. return;
  1204. }
  1205. //20090316 dhkim 무균(A9)추가
  1206. if(prcpclscd == "A7" || prcpclscd == "A9"){
  1207. if(stat != "2"){
  1208. messageBox("조제완료 되지 않은 항암, 무균제는 Acting을", "E001")
  1209. return;
  1210. }
  1211. }
  1212. if(cdnm == "마약"){
  1213. if(stat != "5"){
  1214. messageBox("불출 되지 않은 마약은 Acting을", "E001")
  1215. return;
  1216. }
  1217. }
  1218. }
  1219. if(kRows.length >= 3){
  1220. var chkactorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");//맨첫번째 row의 값과 비교
  1221. for (i=1; i<kRows.length; i++){
  1222. var chkactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1223. if(chkactorddd != chkactorddd1){
  1224. messageBox("Acting은 동일한 예약일자가 아니면 Acting실시", "E001");
  1225. return;
  1226. }
  1227. }
  1228. }
  1229. // 20081103 dhkim
  1230. // 특수주사실의 경우 외래처방과 입원처방이 동시에 발생가능하고 병동재원환자의 처방에 대해서는 blocking처리함
  1231. model.removeNodeset("/root/send");
  1232. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1233. //재원환자의 처방acting을 blocking한다.
  1234. if(submit("TRMNI02028")){
  1235. if(model.getValue("/root/init/acting/chking/actingchk") > 0){
  1236. messageBox("현재 입원 환자는 Acting을", "E001")
  1237. return;
  1238. }
  1239. }
  1240. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");//세션 부서코드(default)
  1241. var ordddlong = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/orddd");
  1242. var orddd = ordddlong.substring(0,8);
  1243. model.removeNodeset("/root/send");
  1244. model.makeValue("/root/send/acting", "Y"); // acting : Y, acting취소 : N
  1245. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid")); // 등록번호
  1246. model.makeValue("/root/send/drugdd", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd")); // 예정일시
  1247. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd); // 실시부서코드
  1248. model.makeValue("/root/send/endyn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/endyn")); // 마감여부
  1249. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i")); // 처방상세내역 그리드
  1250. model.makeValue("/root/send/orddd", orddd);
  1251. model.makeValue("/root/send/act50yn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/act50yn")); //
  1252. model.makeValue("/root/send/dracptyn", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptyn")); //
  1253. model.makeValue("/root/send/dracptdt", model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptdt")); //
  1254. //Acting실행
  1255. if(submit("TXMNI02022")){
  1256. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  1257. //처방 상세내역
  1258. fBiztrgtClick("acting");
  1259. }else if (oRow != ""){
  1260. grd_ordsper.row = oRow;
  1261. fordsper();
  1262. }else{
  1263. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  1264. fbiztrgtman("acting");
  1265. }
  1266. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1267. model.copyNode("/root/hidden/main", "/root/main");
  1268. }
  1269. }
  1270. */
  1271. /**
  1272. * @group :
  1273. * @ver : 2007.05.16
  1274. * @by : 신혁춘
  1275. * @---------------------------------------------------
  1276. * @type : function
  1277. * @access : public
  1278. * @desc : 예약일자 이전 날자 채크
  1279. * @param :
  1280. * @return :
  1281. * @---------------------------------------------------
  1282. */
  1283. function rsrvdd(){
  1284. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  1285. var xPrcpDetlBKPath = "ds_hidden_main_prcpdetl_prcpdetllist";
  1286. var sDetlGrupRow = ds_main_prcpdetl_prcpdetllist.rowposition;
  1287. var sDetlGrupBKRow = 0;
  1288. var chkdd = ds_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "flag");
  1289. var setcordflag = ds_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "etcordflag"); // 원무예약구분
  1290. var sprcpclscdnow = ds_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "prcpclscdnow");// 구분
  1291. //Acting 실시 후 일자 변경인지 파악한다.
  1292. var exec = ds_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "execdd");
  1293. if(chkdd == "0" || utlf_isNull(chkdd) ){
  1294. sysf_messageBox("예약일자는 선택을 안하면 변경", "E001");
  1295. ds_main_prcpdetl_prcpdetllist.setColumn(sDetlGrupRow, "actorddd", ds_hidden_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "actorddd"));
  1296. return;
  1297. }
  1298. if(exec != "-"){
  1299. sysf_messageBox("Acting 실시후 예약일자 선택", "E001");
  1300. ds_main_prcpdetl_prcpdetllist.setColumn(sDetlGrupRow, "actorddd", ds_hidden_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "actorddd"));
  1301. return;
  1302. }
  1303. //현제 일자 에서 선택한 일자가 이전 날자인지 아닌지 파악한다.
  1304. var nowdate = utlf_getCurrentDate();
  1305. if( ds_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "actorddd") < nowdate){
  1306. sysf_messageBox("예약일자는 이전일자로 선택", "E001");
  1307. ds_main_prcpdetl_prcpdetllist.setColumn(sDetlGrupRow, "actorddd", ds_hidden_main_prcpdetl_prcpdetllist.getColumn(sDetlGrupRow, "actorddd"));
  1308. frsrvtm("15");
  1309. return;
  1310. }
  1311. frsrvtm("15");
  1312. }
  1313. /**
  1314. * @group :
  1315. * @ver : 2007.05.22
  1316. * @by : 신혁춘
  1317. * @---------------------------------------------------
  1318. * @type : function
  1319. * @access : public
  1320. * @desc : 변경내용저장
  1321. * @param :
  1322. * @return :
  1323. * @---------------------------------------------------
  1324. */
  1325. function fChangeSave(flag){
  1326. var iRow = grd_biztrgtman.row;
  1327. var oRow = grd_ordsper.row;
  1328. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist"
  1329. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  1330. var Row = grd_prcpdetl.rows;
  1331. //변경내용저장 시 환자 선택 여부 파악
  1332. if(Row==1){
  1333. messageBox("환자가 선택되지", "E007")
  1334. return;
  1335. }
  1336. var kRow = 0;
  1337. var chek = 0;
  1338. for (i=1; i<Row; i++){
  1339. chek = chek + grd_prcpdetl.textmatrix(i,1);
  1340. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  1341. kRow = kRow +","+ i
  1342. }
  1343. }
  1344. if(chek==0){
  1345. messageBox("하나 이상의 처방내역을", "C002")
  1346. return;
  1347. }
  1348. var kRows = kRow.split(",");
  1349. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1350. var chkactorddd1, drugno;
  1351. //20081223 dhkim
  1352. //약번호의 경우 항암 뿐 아니라 마약의 경우에도 따지 므로 메세지를 구분할 필요가 있음
  1353. var cdnm;
  1354. if(kRows.length >= 3){
  1355. for (i=1; i<kRows.length; i++){
  1356. chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1357. drugno = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  1358. //20081223 dhkim
  1359. cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  1360. if(drugno != "0"){
  1361. if(cdnm == "마약"){
  1362. messageBox("마약 불출신청 접수 후 예약일자 변경을", "E001");
  1363. }else{
  1364. messageBox("특조전송후 예약일자 변경을", "E001");
  1365. }
  1366. return;
  1367. }
  1368. if(chkactorddd != chkactorddd1){
  1369. messageBox("초기 동일한 예약일자가 아니면 저장", "E001");
  1370. return;
  1371. }
  1372. }
  1373. }
  1374. var lRow = 0;
  1375. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1376. for (i=1; i<Row; i++){
  1377. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  1378. if(chkactorddd == chkactorddd1){
  1379. lRow = lRow +","+ i
  1380. }
  1381. }
  1382. var lRows = lRow.split(",");
  1383. for (i=1; i<Row; i++){
  1384. var actordddchk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  1385. var actordddchk1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  1386. if (actordddchk != actordddchk1){
  1387. if (kRow != lRow){
  1388. messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  1389. return;
  1390. }
  1391. }
  1392. }
  1393. var vewactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  1394. for (i=1; i<kRows.length; i++){
  1395. var vewactorddd2 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  1396. if(vewactorddd1 != vewactorddd2){
  1397. messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  1398. return;
  1399. }
  1400. }
  1401. if(flag != "Ant"){
  1402. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  1403. var flag = "Change";
  1404. model.removeNodeset("/root/send");
  1405. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  1406. model.makeValue("/root/send/drugdd",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  1407. model.makeValue("/root/send/ordtm",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  1408. model.makeValue("/root/send/acting",flag);
  1409. model.makeValue("/root/send/prcpexecdeptcd",prcpexecdeptcd);
  1410. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  1411. //변경내용저장실행
  1412. if(submit("TXMNI02027")){
  1413. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  1414. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  1415. alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  1416. }
  1417. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  1418. fbiztrgtman("acting");
  1419. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  1420. //업무대상리스트 다시 조회후 현재 Row의 위치에 선택 실시
  1421. grd_biztrgtman.row = iRow;
  1422. //처방 상세내역
  1423. fBiztrgtClick("acting");
  1424. }else if (oRow != ""){
  1425. grd_ordsper.row = oRow;
  1426. fordsper();
  1427. }
  1428. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  1429. model.copyNode("/root/hidden/main", "/root/main");
  1430. }
  1431. }
  1432. }
  1433. /**
  1434. * @group :
  1435. * @ver : 2007.05.22
  1436. * @by : 신혁춘
  1437. * @---------------------------------------------------
  1438. * @type : function
  1439. * @access : public
  1440. * @desc : 처방전+acting 클릭시
  1441. * @param :
  1442. * @return :
  1443. * @---------------------------------------------------
  1444. */
  1445. function fMpsActing(){
  1446. var mpsacting = ds_main.getColumn(0, "mpsacting");//처방전+acting
  1447. if(mpsacting=="1"){
  1448. group3.group4.button11.enable= false;//acting버튼 비활성화
  1449. }else if( utlf_isNull(mpsacting) ){
  1450. group3.group4.button11.enable = true;//acting버튼 활성화
  1451. }
  1452. }
  1453. /**
  1454. * @group :
  1455. * @ver : 2007.05.30
  1456. * @by : 신혁춘
  1457. * @---------------------------------------------------
  1458. * @type : function
  1459. * @access : public
  1460. * @desc : 미시행 주사내역 부분 클릭시
  1461. * @param :
  1462. * @return :
  1463. * @---------------------------------------------------
  1464. */
  1465. function finjsper(){
  1466. var iRow = ds_main_rghtlist_injsperlist.rowposition;
  1467. var xBizInjSper = "ds_main_rghtlist_injsperlist";
  1468. ds_send.clearData();
  1469. ds_hidden_main_biztrgtman_biztrgtmanlist.clearData();
  1470. ds_hidden_main_biztrgtman_statslist.clearData();
  1471. ds_hidden_main_biztrgtman_endyninfo.clearData();
  1472. ds_hidden_main_leftref.clearData();
  1473. ds_hidden_main_rghtref_rghtreflist.clearData();
  1474. ds_hidden_main_prcpdetl_prcpdetllist.clearData();
  1475. ds_hidden_main_rghtlist_ordsperlist.clearData();
  1476. ds_hidden_main_rghtlist_injsperlist.clearData();
  1477. ds_hidden_main_rghtlist_snwinfolist.clearData();
  1478. ds_hidden_main_rghtlist_ordrsrvlist.clearData();
  1479. ds_hidden_main_rghtlist_testrsrvlist.clearData();
  1480. ds_hidden_main_rghtlist_memolist.clearData();
  1481. ds_hidden_main.clearData();
  1482. ds_hidden_main_userpopupinfo.clearData();
  1483. ds_hidden_main_patinfo_patinfolist.clearData();
  1484. ds_hidden_main_paminfo.clearData();
  1485. ds_hidden_main_cond_list.clearData();
  1486. dsf_makeValue(ds_send,"pid" , "string" , ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  1487. dsf_makeValue(ds_send,"drugdd" , "string" , ds_main_rghtlist_injsperlist.getColumn(iRow, "actorddd"));
  1488. dsf_makeValue(ds_send,"orddd" , "string" , ds_main_rghtlist_injsperlist.getColumn(iRow, "orddd"));
  1489. dsf_makeValue(ds_send,"depthngnm" , "string" , ds_main_rghtlist_injsperlist.getColumn(iRow, "depthngnm"));
  1490. dsf_makeValue(ds_send,"exec" , "string" , ds_main_leftref.getColumn(0, "exec"));
  1491. var kRows = ds_main_rghtlist_ordsperlist.rowcount;
  1492. var xOresperPath = "ds_main_rghtlist_ordsperlist";
  1493. for(p=0; p<kRows; p++){
  1494. var drugdd = ds_send.getColumn(0, "drugdd");
  1495. var depthngnm = ds_send.getColumn(0, "depthngnm");
  1496. var orddd1 = ds_main_rghtlist_ordsperlist.getColumn(p, "actorddd");
  1497. var depthngnm1 = ds_main_rghtlist_ordsperlist.getColumn(p, "depthngnm");
  1498. if(drugdd == orddd1 && depthngnm == depthngnm1){
  1499. ds_main_rghtlist_ordsperlist.rowposition = p;
  1500. }
  1501. }
  1502. fordsper();
  1503. }
  1504. /**
  1505. * @group :
  1506. * @ver : 2007.06.01
  1507. * @by : 신혁춘
  1508. * @---------------------------------------------------
  1509. * @type : function
  1510. * @access : public
  1511. * @desc : 환자번호 조회 돋보기 클릭시
  1512. * @param :
  1513. * @return :
  1514. * @---------------------------------------------------
  1515. */
  1516. function fPatSrch(){
  1517. var objArg = new Object();
  1518. objArg.arg_ds_send = ds_send;
  1519. frmf_modal("SPPMC02500","SPPMC02500", objArg, "", 1, 150, 150, "", "", "", "", "", "M");
  1520. var popupendflag = utlf_transNullToEmpty(frmf_getParameter('SPPMC02500_popupendflag'));
  1521. frmf_clearParameter('SPPMC02500_popupendflag');
  1522. if (popupendflag == "ok"){
  1523. ds_main_rghtref_rghtreflist.setColumn(0,"pid",ds_patinfolist.getColumn(0,"pid"));
  1524. var pid = ds_main_rghtref_rghtreflist.getColumn(0,"pid");
  1525. if (!utlf_isNull(pid) && pid != " " && pid != "-"){
  1526. //20090629 dhkim 7월 고시변경으로 인한 리턴값 추가
  1527. var rtn = fpidref("new");
  1528. if(!rtn){
  1529. return false;
  1530. }
  1531. }
  1532. }
  1533. }
  1534. /**
  1535. * @group :
  1536. * @ver : 2007.05.30
  1537. * @by : 신혁춘
  1538. * @---------------------------------------------------
  1539. * @type : function
  1540. * @access : public
  1541. * @desc : 진료내역 부분 클릭시
  1542. * @param :
  1543. * @return :
  1544. * @---------------------------------------------------
  1545. */
  1546. function fordsper(){
  1547. var actorddd = ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "actorddd"); //진료내역의 처방일
  1548. var pid = ds_main_rghtref_rghtreflist.getColumn(0, "pid"); //등록번호(오른쪽검색)
  1549. var cretno = ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "cretno"); //환자생성번호
  1550. //처방상세내역조회
  1551. fSearchPrcpDetail();
  1552. ds_main_rghtlist_ordsperlist.rowposition = ds_main_rghtlist_ordsperlist.rowposition;
  1553. dsf_makeValue(ds_hidden,"flags", "string", "grd_ordsper");
  1554. }
  1555. /**
  1556. * @group :
  1557. * @ver : 2007.07.27
  1558. * 2008.11.06 dhkim 수정
  1559. * @by : 신혁춘
  1560. * @---------------------------------------------------
  1561. * @type : function
  1562. * @access : public
  1563. * @desc : type2 호출시 base 파라미터 설정
  1564. * @param :
  1565. * @return :
  1566. * @---------------------------------------------------
  1567. */
  1568. function fBaseMakeParameter() {
  1569. /*
  1570. var param = "";
  1571. rowsep = "▩";
  1572. colsep = "▦";
  1573. param = "recflag" + colsep + "dutplaccd" + colsep + "reclnkkey"+ rowsep+"I" + colsep + "012" + colsep + "31900" + rowsep;
  1574. */
  1575. var pid = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(0, "tp2pid"));
  1576. var orddd = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(0, "tp2orddd"));
  1577. var cretno = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(0, "tp2cretno"));
  1578. var instcd = utlf_transNullToEmpty(sysf_getUserInfo("dutplceinstcd"));
  1579. var recflag = "C"; //기록구분 : C (암센터주사실)
  1580. var dutplcecd = "017"; //부서코드 : 017 (암센터주사실)
  1581. //20090602 dhkim bmt주사실 코드추가
  1582. var bmtrecflag = 'F'; //기록구분 : F (BMT주사실)
  1583. var bmtdutplcecd = '023'; //부서코드 : 023 (BMT주사실)
  1584. //20090602 dhkim 암센터/bmt 주사실 여부에 따라 parameter 값을 세팅한다
  1585. if(drprcpetc2 == 'B'){
  1586. recflag = bmtrecflag;
  1587. dutplcecd = bmtdutplcecd;
  1588. }
  1589. //기록연계키 --> PID+”,”+INDD(ORDDD)+”,”+CRETNO+”,”+INSTCD
  1590. var recInkkey = pid + "," + orddd + "," + cretno + "," + instcd;
  1591. var param = "recflag▦dutplaccd▦reclnkkey▩" + recflag + "▦" + dutplcecd + "▦" + recInkkey + "▩";
  1592. return param;
  1593. }
  1594. /**
  1595. * @group :
  1596. * @ver : 2007.07.27
  1597. * @by : 신혁춘
  1598. * @---------------------------------------------------
  1599. * @type : function
  1600. * @access : public
  1601. * @desc : 간호 기록 연결(값있을때)
  1602. * @param :
  1603. * @return :
  1604. * @---------------------------------------------------
  1605. */
  1606. function fMakeParameter() {
  1607. var acptyn ="";
  1608. var prcpflag="";
  1609. var prcpcd = "";
  1610. var prcpnm = "";
  1611. var prcpvol = "";
  1612. var prcpvolunitflag="";
  1613. var prcpqty = "";
  1614. var prcpqtyunitflag = "";
  1615. var prcptims = "";
  1616. var drugmthdspccd = "";
  1617. var abbrnm = "";
  1618. var prcpdeliverfact = "";
  1619. var datagrouplist = "";
  1620. var datagroup = "";
  1621. var param = "prcpflag▦prcpnm▩";
  1622. for(var i = 0; i < ds_main_prcpdetl_prcpdetllist.rowcount; i++) {
  1623. acptyn = ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag"); //체크여부
  1624. if(acptyn == "1") {
  1625. datagrouplist = ds_main_prcpdetl_prcpdetllist.getColumn(i, "datagroup"); //용량/수량/횟수/투여경로 str
  1626. datagroup = utlf_transNullToEmpty(datagrouplist).split("/");
  1627. prcpflag = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "prcpclscd")); //주사 혈액등 구분
  1628. prcpcd = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "prcpcd")); //처방코드
  1629. prcpnm = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "prcpnm")); //처방명
  1630. prcpvol = utlf_transNullToEmpty(datagroup[0]); //용량
  1631. prcpvolunitflag = utlf_transNullToEmpty(datagroup[1]); //단위
  1632. prcpqty = utlf_transNullToEmpty(datagroup[2]); //수량
  1633. prcpqtyunitflag = utlf_transNullToEmpty(datagroup[3]); //단위
  1634. prcptims = utlf_transNullToEmpty(datagroup[4]); //횟수
  1635. abbrnm = utlf_transNullToEmpty(datagroup[5]); //투약경로
  1636. /*
  1637. - 처방구분(prcpflag)
  1638. A : 투약 (A2:경구, A4:외용, A6:주사)
  1639. H : 처치 (F2:재활, G2:RT, H2:수술, H4:처치)
  1640. T : 검사 (B2:진검, B4:수혈, B6:핵의학검체, C2:영상, C4:ANGIO, C6:핵의학영상(체내), D2: 병리, E2:기능)
  1641. */
  1642. // ① 투약 : 처방코드/처방명/일일용량/단위/일일수량/단위/일수/경로/용법
  1643. // * 주사실의 경우 주사에서 내부적으로 구분됨(A7:항암 , A8:예방)
  1644. //20090316 dhkim 무균(A9)추가
  1645. if(prcpflag =="A2" || prcpflag == "A4" ||
  1646. prcpflag == "A6"|| prcpflag == "A7" || prcpflag == "A8" || prcpflag == "A9") {
  1647. //param += prcpflag.substr(0,1) + "▦" + prcpnm + "▩";
  1648. param += "A" + "▦" + prcpcd + "/" + prcpnm + "/" + prcpvol + "/" + prcpvolunitflag + "/" + prcpqty + "/" + prcpqtyunitflag + "/" + prcptims + "/" + abbrnm + "▩";
  1649. // ② 처치 : 처방명/일일수량/Remark(의사처방의 remark)
  1650. } else if(prcpflag=="F2" || prcpflag=="G2" ||
  1651. prcpflag=="H2" || prcpflag=="H4"){
  1652. prcpdelivefact = "";//ds_grd_prcpspec.getColumn(i, "prcpdelivefact");//ds_grd_prcpspec 외래간호..
  1653. param += "H" + "▦" + prcpnm + "/" + prcpqty + prcpdeliverfact + "▩";
  1654. // ③ 검사 : 처방명/일일수량/Remark(의사처방의 remark)
  1655. } else if(prcpflag=="B2" || prcpflag=="B4" || prcpflag=="B6" ||
  1656. prcpflag=="C2" || prcpflag=="C4" || prcpflag=="C6" ||
  1657. prcpflag=="D2" || prcpflag=="E2"){
  1658. prcpdelivefact = "";//ds_grd_prcpspec.getColumn(i, "prcpdelivefact"); //ds_grd_prcpspec 외래간호..
  1659. param += "T" + "▦" + prcpnm + "/" + prcpqty + prcpdeliverfact + "▩";
  1660. }
  1661. }
  1662. }
  1663. return param;
  1664. }
  1665. /**
  1666. * @group :
  1667. * @ver : 2007.09.04
  1668. * @by : 신혁춘
  1669. * @---------------------------------------------------
  1670. * @type : function
  1671. * @access : public
  1672. * @desc : 부위, 차수, LOT, MIX, AST 예약시간동시적용
  1673. * @param :
  1674. * @return :
  1675. * @---------------------------------------------------
  1676. */
  1677. function frsrvtm(flag) {
  1678. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  1679. var jRow= ds_main_prcpdetl_prcpdetllist.rowposition;
  1680. var xhiddenPrcpDetlPath = "ds_hidden_main_prcpdetl_prcpdetllist";
  1681. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  1682. var rsrvtm = group3.grd_prcpdetl.getCellValue(jRow, flag );
  1683. var chek = 0;
  1684. for (i=0; i<Row; i++){
  1685. chek = chek + Number(utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag")));
  1686. }
  1687. if(chek==0){
  1688. return;
  1689. }
  1690. chek3 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(jRow, "actorddd");
  1691. chek5 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(jRow, "mix");
  1692. chek7 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(jRow, "orddd");
  1693. for (i=0; i<Row; i++){
  1694. chek = ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag");
  1695. chek2 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  1696. chek4 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "mix");
  1697. chek6 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "orddd");
  1698. if(chek==1 && flag == 15 && chek2 == chek3){
  1699. ds_main_prcpdetl_prcpdetllist.setColumn(i, "actorddd", rsrvtm);
  1700. }
  1701. if(chek==1 && flag == 16 && chek2 == chek3){
  1702. ds_main_prcpdetl_prcpdetllist.setColumn(i, "rsrvtm", rsrvtm);
  1703. }
  1704. if(chek==1 && flag != 15 && flag != 16){
  1705. if(flag == 8){
  1706. flag= "mix";
  1707. }
  1708. if(flag == 11){
  1709. flag= "ast";
  1710. }
  1711. if(flag == 12){
  1712. flag= "partflag";
  1713. }
  1714. if(flag == 13){
  1715. flag= "dgno";
  1716. }
  1717. if(flag == 14){
  1718. flag= "lotno";
  1719. }
  1720. ds_main_prcpdetl_prcpdetllist.setColumn(i, flag, rsrvtm);
  1721. }
  1722. }
  1723. }
  1724. /**
  1725. * @group :
  1726. * @ver : 2007.09.10
  1727. * @by : 신혁춘
  1728. * @---------------------------------------------------
  1729. * @type : function
  1730. * @access : public
  1731. * @desc : 혈액불출관리 연결
  1732. * @param :
  1733. * @return :
  1734. * @---------------------------------------------------
  1735. */
  1736. function fopr() {
  1737. var pid = group3.group1.ipt_pid.value;
  1738. frmf_setParameter("pid", pid);
  1739. frmf_setParameter("SMMNR010_Param", "OPRC1");
  1740. frmf_open("SMMNR01000","SMMNR01000","","",1,15,128,"","","","","","M");
  1741. }
  1742. /*
  1743. 20090316 dhkim
  1744. 미사용 펑션으로 판단되어 주석처리함
  1745. * @deprecated
  1746. * @group :
  1747. * @ver : 2008.10.31
  1748. * @by :
  1749. * @---------------------------------------------------
  1750. * @type : function
  1751. * @access : public
  1752. * @desc : 처방상세내역 조회
  1753. * @param :
  1754. * @return :
  1755. * @---------------------------------------------------
  1756. function fSearchPrcpDetl(flag){
  1757. //처방전출력완료후
  1758. if(flag == 'print'){
  1759. model.removeNodeset("/root/send");
  1760. model.makeValue("/root/send/pid", model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid"));
  1761. model.makeValue("/root/send/drugdd", model.getValue(xBizTrgtManListPath+"["+iRow+"]/orddd"));
  1762. model.makeValue("/root/send/exec", model.getValue("/root/main/leftref/exec"));
  1763. model.makeValue("/root/send/addoprc", model.getValue('/root/main/addoprc'));//20081030 외래처방포함조회
  1764. //처방상세내역조회3
  1765. if(submit("TRMNI02023")){
  1766. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  1767. var Row = grd_prcpdetl.rows;
  1768. var mixchk = 0;
  1769. var rcptchk; //20090305 dhkim 후수납관련필드추가
  1770. //처방상태 값에 따른 처방상세내역 리스트에 상태값 을 나타내는 로직 시작
  1771. for(i=1; i<Row; i++){
  1772. var execdd = model.getValue(xPrcpDetlPath+"["+i+"]/execrid");
  1773. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat");
  1774. var execprcpstatcd = model.getValue(xPrcpDetlPath+"["+i+"]/execprcpstatcd");
  1775. var prcpclscd = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscd");
  1776. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");
  1777. var cdnm = model.getValue(xPrcpDetlPath+"["+i+"]/cdnm");
  1778. var etcprcpresncd = model.getValue(xPrcpDetlPath+"["+i+"]/etcprcpresncd"); // 수혈반납 및 폐기사유코드
  1779. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat"); // 성분제제상태
  1780. //20090305 dhkim 후수납관련필드추가
  1781. rcptchk = model.getValue(xPrcpDetlPath+"["+i+"]/rcptchk"); // 후수납상태
  1782. //20090305 dhkim
  1783. //특조전송완료 상태로 보여주는 부분 후수납의 경우 230조건 제외할것
  1784. //후수납 : rcptchk값이 V, Y, F일때는 230조건 제외,
  1785. // rcptchk값이 R일때는 230조건
  1786. //20090312 dhkim vip환자의 경우는 수납여부 체크하지 않음
  1787. if(
  1788. (
  1789. (rcptchk == 'R' && execprcpstatcd == "230")
  1790. || (rcptchk == 'V')
  1791. // || (rcptchk == 'Y')
  1792. // || (rcptchk == 'F')
  1793. )
  1794. && drugno != "0" //투약번호 따지고
  1795. && cdnm !="마약" //(마약제외)
  1796. //stat상태값확인할것
  1797. //&& stat != "2" //처방상태 (강제지정시 항암으로 위장된 조제완료된 주사처방을 지정 못하게 하기위함)
  1798. ){
  1799. //alert(rcptchk + ' ' + execprcpstatcd + ' ' + drugno);
  1800. grd_prcpdetl.textmatrix(i, 3) = 13; //전송완료
  1801. }
  1802. /*
  1803. if(drugno != "0" && execprcpstatcd == "230" && cdnm!="마약"){
  1804. grd_prcpdetl.textmatrix(i, 3) = 13 //전송완료
  1805. }
  1806. * /
  1807. if(execprcpstatcd == "300"){
  1808. grd_prcpdetl.textmatrix(i, 3) = 1 //조제보류
  1809. }
  1810. //20090316 dhkim 무균(A9)추가
  1811. if(execprcpstatcd == "310" || execprcpstatcd == "315" && (prcpclscd == "A7"|| prcpclscd == "A9")){
  1812. grd_prcpdetl.textmatrix(i, 3) = 2 //조제완료
  1813. var mixk = model.getValue(xPrcpDetlPath+"["+i+"]/mix")
  1814. var actordddk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd")
  1815. var rsrvtmk = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm")
  1816. var ordddk = model.getValue(xPrcpDetlPath+"["+i+"]/orddd")
  1817. for (r=0; r<Row; r++){
  1818. var mixr = model.getValue(xPrcpDetlPath+"["+r+"]/mix");
  1819. var actordddr = model.getValue(xPrcpDetlPath+"["+r+"]/actorddd")
  1820. var rsrvtmr = model.getValue(xPrcpDetlPath+"["+r+"]/rsrvtm")
  1821. var ordddr = model.getValue(xPrcpDetlPath+"["+r+"]/orddd")
  1822. if(mixk == mixr && actordddr == actordddk && rsrvtmr == rsrvtmk && ordddr == ordddk && rsrvtmr != '000000'){
  1823. grd_prcpdetl.textmatrix(r, 3) = 2 //조제완료
  1824. }
  1825. }
  1826. }
  1827. var printyn = model.getValue(xPrcpDetlPath+"["+i+"]/printyn")
  1828. if(printyn == "Y" && execprcpstatcd != "610"){
  1829. grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#FFFFCC';
  1830. }
  1831. if(execprcpstatcd == "500" || execprcpstatcd == "505" || execprcpstatcd == "510"){
  1832. grd_prcpdetl.textmatrix(i, 3) = 11 //접수
  1833. }
  1834. if(execprcpstatcd == "520" || execprcpstatcd == "525"){
  1835. grd_prcpdetl.textmatrix(i, 3) = 4 //준비완료
  1836. }
  1837. if(execprcpstatcd == "530"){
  1838. if (blodcomstat == "8") {
  1839. grd_prcpdetl.textmatrix(i, 3) = 14 //잔여폐기
  1840. }
  1841. else {
  1842. grd_prcpdetl.textmatrix(i, 3) = 5 //불출
  1843. }
  1844. }
  1845. if(execprcpstatcd == "540"){
  1846. grd_prcpdetl.textmatrix(i, 3) = 7 //반납의뢰
  1847. }
  1848. if(execprcpstatcd == "550"){
  1849. grd_prcpdetl.textmatrix(i, 3) = 8 //반납완료
  1850. }
  1851. if(execprcpstatcd == "560"){
  1852. if (etcprcpresncd == "07" || etcprcpresncd == "12") {
  1853. grd_prcpdetl.textmatrix(i, 3) = 14 //잔여폐기
  1854. }
  1855. else {
  1856. grd_prcpdetl.textmatrix(i, 3) = 9 //폐기의뢰
  1857. }
  1858. }
  1859. if(execprcpstatcd == "570"){
  1860. grd_prcpdetl.textmatrix(i, 3) = 10 //폐기완료
  1861. }
  1862. if(execprcpstatcd == "320"){
  1863. grd_prcpdetl.textmatrix(i, 3) = 5 //출고
  1864. }
  1865. if(prcpclscd =="B4"){
  1866. if(execprcpstatcd == "610"){
  1867. grd_prcpdetl.textmatrix(i, 3) = 12 //실시완료
  1868. }
  1869. }else{
  1870. if(execprcpstatcd == "610"){
  1871. grd_prcpdetl.textmatrix(i, 3) = 6 //시행완료
  1872. }
  1873. }
  1874. var mix = model.getValue(xPrcpDetlPath+"["+i+"]/mix")
  1875. var actorddd = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd")
  1876. var rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm")
  1877. var orddd = model.getValue(xPrcpDetlPath+"["+i+"]/orddd")
  1878. if(prcpclscd == "A7"){
  1879. for (k=0; k<Row; k++){
  1880. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  1881. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd")
  1882. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm")
  1883. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd")
  1884. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd){
  1885. grd_prcpdetl.textmatrix(k, 2) = 'A7'
  1886. }
  1887. }
  1888. }
  1889. //20090316 dhkim 무균(A9)추가
  1890. if(prcpclscd == "A7"){
  1891. for (k=0; k<Row; k++){
  1892. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  1893. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd")
  1894. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm")
  1895. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd")
  1896. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd){
  1897. grd_prcpdetl.textmatrix(k, 2) = 'A7'
  1898. }
  1899. }
  1900. }
  1901. } // for end
  1902. } //처방 상태값을 나타내는 로직 끝
  1903. }
  1904. }
  1905. */
  1906. /**
  1907. * @group :
  1908. * @ver : 2008.10.31
  1909. * @by :
  1910. * @---------------------------------------------------
  1911. * @type : function
  1912. * @access : public
  1913. * @desc : 처방전출력 미리보기
  1914. * @param :
  1915. * @return :
  1916. * @---------------------------------------------------
  1917. */
  1918. function fPrintPreview(){
  1919. var printday = utlf_getCurrentDate();
  1920. var printtime = utlf_getCurrentTime();
  1921. var flags = ds_hidden.getColumn(0, "flags");
  1922. ds_send_report.copyData(ds_main_prcpdetl_prcpdetllist);
  1923. dsf_makeValue(ds_send_report_only,"pid" , "string", ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  1924. dsf_makeValue(ds_send_report_only,"hngnm" , "string", ds_main_rghtref_rghtreflist.getColumn(0, "hngnm"));
  1925. dsf_makeValue(ds_send_report_only,"gndrage" , "string", ds_main_rghtref_rghtreflist.getColumn(0, "gndrage"));
  1926. //20091015 dhkim 주민번호추가
  1927. dsf_makeValue(ds_send_report_only,"rrgstno" , "string", ds_main_rghtref_rghtreflist.getColumn(0, "rrgstno"));
  1928. dsf_makeValue(ds_send_report_only,"termhngnm" , "string", ds_main_rghtlist_snwinfolist.getColumn(0, "termhngnm"));
  1929. dsf_makeValue(ds_send_report_only,"printdaytime", "string", (printday+printtime));
  1930. dsf_makeValue(ds_send_report_only,"mpsacting" , "string", ds_main.getColumn(0, "mpsacting"));
  1931. //부서명, 주치의명 setting
  1932. if(flags == "grd_ordsper"){//진료내역선택시 세팅된값
  1933. dsf_makeValue(ds_send_report_only,"depthngnm" , "string", ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "depthngnm"));
  1934. dsf_makeValue(ds_send_report_only,"usernm" , "string", ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "usernm"));
  1935. }else if(flags == "grd_biztrgtman"){//업무대상자리스트 선택시 세팅된값
  1936. dsf_makeValue(ds_send_report_only,"depthngnm" , "string", ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "depthngnm"));
  1937. dsf_makeValue(ds_send_report_only,"usernm" , "string", ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "usernm"));
  1938. }
  1939. //처방전 출력 미리보기
  1940. //root/send/report/prcpdetllist
  1941. //미리보기출력
  1942. var objDOM = rptf_createDOM();
  1943. rptf_setNodeListToDOM(objDOM, "root/send/report/prcpdetllist", ds_send_report); // 데이터셋 1
  1944. rptf_setNodeListToDOM(objDOM, "root/send/report/only", ds_send_report_only); // 데이터셋 1
  1945. var objParam = new Object();
  1946. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  1947. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  1948. rptf_exeReportPreview30(["RPMNI02020"],[objParam], option);
  1949. }
  1950. /**
  1951. * @group :
  1952. * @ver : 2008.10.31
  1953. * @by :
  1954. * @---------------------------------------------------
  1955. * @type : function
  1956. * @access : public
  1957. * @desc : 처방전출력+acting전 validation체크
  1958. * @param :
  1959. * @return :
  1960. * @---------------------------------------------------
  1961. */
  1962. function fIsPrintValid(){
  1963. var mpsacting = ds_main.getColumn(0, "mpsacting"); // 처방전 + acting
  1964. //model.removenode("/root/send");
  1965. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  1966. var jRow = ds_main_prcpdetl_prcpdetllist.rowposition;
  1967. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  1968. var xrexportPath = "ds_send_report_for";
  1969. //처방전출력 연결 시 환자 선택 여부 파악
  1970. if(Row == 0){
  1971. sysf_messageBox("환자가 선택되지", "E007");
  1972. return false;
  1973. }
  1974. var chek = 0;
  1975. var kRow = 0;
  1976. for (var i=0; i<Row; i++){
  1977. chek = chek + utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag"));//처방상세내역 체크박스 선택/해제 상태
  1978. if(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag") == "1"){
  1979. kRow = kRow +","+ i;
  1980. }
  1981. }
  1982. if(chek==0){
  1983. sysf_messageBox("하나 이상의 처방내역을", "C002");
  1984. return false;
  1985. }
  1986. var kRows = utlf_transNullToEmpty(String(kRow)).split(",");
  1987. var stat, prcpclscd;
  1988. if(mpsacting == "1"){
  1989. for(i=1; i<kRows.length; i++){
  1990. stat = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i],"stat");
  1991. prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i],"prcpclscd");
  1992. if(stat == "6"){
  1993. sysf_messageBox("Acting을 실시한 곳은 처방전+Acting을", "E001")
  1994. return false;
  1995. }
  1996. if(prcpclscd == "B4" && stat != "5"){//혈액 불출
  1997. sysf_messageBox("불출되지 않은 혈액은 처방전+Acting을", "E001")
  1998. return false;
  1999. }
  2000. //20090316 dhkim 무균(A9)추가
  2001. if((prcpclscd == "A7" || prcpclscd == "A9") && stat != "2"){//항암 조제완료
  2002. sysf_messageBox("조제완료되지 않은 항암, 무균은 처방전+Acting을", "E001")
  2003. return false;
  2004. }
  2005. }
  2006. }
  2007. var flag = '';
  2008. var cpCnt = 0;
  2009. //선택한 주사, 항암만 rexpert에 넘기도록 노드를 재구성
  2010. ds_temp_prcpprt_prcpdetl.clearData();
  2011. for(var i = 0; i < Row; i++){
  2012. flag = ds_main_prcpdetl_prcpdetllist.getColumn(i,"flag");
  2013. prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(i,"flag");
  2014. //항암, 주사처방만 출력되도록 rex에 노드를 넘김
  2015. //20090316 dhkim 무균(A9)추가
  2016. if(flag == '1' && (prcpclscd == 'A6' || prcpclscd == 'A7' || prcpclscd == "A9")){
  2017. var cnt = ds_temp_prcpprt_prcpdetl.rowcount;
  2018. if(cnt==0){
  2019. dsf_copyColInfo(ds_temp_prcpprt_prcpdetl, ds_main_prcpdetl_prcpdetllist);
  2020. }
  2021. ds_temp_prcpprt_prcpdetl.addRow();
  2022. ds_temp_prcpprt_prcpdetl.copyRow(cpCnt,ds_main_prcpdetl_prcpdetllist,i);
  2023. cpCnt ++;
  2024. }
  2025. }
  2026. return true;
  2027. }
  2028. /**
  2029. 20090806 dhkim 주석처리
  2030. * @group :
  2031. * @ver : 2007.10.09
  2032. * @by : 신혁춘
  2033. * @---------------------------------------------------
  2034. * @type : function
  2035. * @access : public
  2036. * @desc : 처방전출력 연결
  2037. * @param :
  2038. * @return :
  2039. * @---------------------------------------------------
  2040. function fRexpert() {
  2041. var mpsacting = model.getValue("/root/main/mpsacting");// 처방전 + acting
  2042. //처방전 출력전 valid체크
  2043. if(!fIsPrintValid()){
  2044. return ;
  2045. }
  2046. //처방전출력 미리보기창 open
  2047. fPrintPreview();
  2048. if(mpsacting == "1"){
  2049. fActing("Y");//acting실행
  2050. }else{
  2051. //주사실출력시 엑팅 실시 안하고 출력 여부 저장실시 상태값 update
  2052. model.removenode("/root/send");
  2053. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2054. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  2055. if(submit("TXMNI02025")){
  2056. //처방상세내역조회
  2057. fSearchPrcpDetail();
  2058. }
  2059. }
  2060. var curRow = grd_biztrgtman.row;
  2061. //주사실출력시 엑팅 실시 안하고 출력 여부 저장실시 상태값 update
  2062. model.removenode("/root/send");
  2063. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2064. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  2065. if(submit("TXMNI02025")){
  2066. if(mpsacting == "1"){
  2067. grd_biztrgtman.row = curRow;
  2068. fActing("Y");//acting실행
  2069. }else{
  2070. //처방상세내역조회
  2071. fSearchPrcpDetail();
  2072. }
  2073. }
  2074. }
  2075. */
  2076. /**
  2077. * @group :
  2078. * @ver : 2007.10.15
  2079. * @by : 신혁춘
  2080. * @---------------------------------------------------
  2081. * @type : function
  2082. * @access : public
  2083. * @desc : 환자진료정보 링크
  2084. * @param :
  2085. * @return :
  2086. * @---------------------------------------------------
  2087. */
  2088. function fOpenPrcpSpec() {
  2089. var pid = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "pid");
  2090. var orddd = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "orddd");
  2091. var param = pid;
  2092. frmf_setParameter("SMMMO02500_cond", param);
  2093. frmf_open("SMMMO02500","SMMMO02500","","","","","","","","","","","M");
  2094. }
  2095. /**
  2096. * @group :
  2097. * @ver : 2009.02.24
  2098. * @by : 최영
  2099. * @---------------------------------------------------
  2100. * @type : function
  2101. * @access : public
  2102. * @desc : 환자카드출력
  2103. * @param :
  2104. * @return :
  2105. * @---------------------------------------------------
  2106. */
  2107. function fPreview(btnflag, pid, patnm, age, depthngnm, orddrnm){
  2108. // 20090604 dhkim 환자카드출력 버튼기능 추가로 인해 파라미터값 추가
  2109. if(btnflag != 'btn'){
  2110. var fRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  2111. pid = ds_main_biztrgtman_biztrgtmanlist.getColumn(fRow,"pid");
  2112. patnm = ds_main_biztrgtman_biztrgtmanlist.getColumn(fRow,"hngnm");
  2113. age = ds_main_biztrgtman_biztrgtmanlist.getColumn(fRow,"gndrage");
  2114. depthngnm = ds_main_biztrgtman_biztrgtmanlist.getColumn(fRow,"usernm");
  2115. orddrnm = ds_main_biztrgtman_biztrgtmanlist.getColumn(fRow,"depthngnm");
  2116. }
  2117. //2010.07.06 김달현 - (요청번호14176) [JCI인증대비] 이름 석자 중 가운데 자리는 별표 처리되도록 수정 요청함
  2118. if(utlf_transNullToEmpty(patnm).length > 1){
  2119. patnm = patnm.substring(0, 1) + "*" + patnm.substr(2);
  2120. }
  2121. dsf_makeValue(ds_hidden1_biztrgtman,"pid" , "string", pid);
  2122. dsf_makeValue(ds_hidden1_biztrgtman,"patnm" , "string", patnm);
  2123. dsf_makeValue(ds_hidden1_biztrgtman,"age" , "string", age);
  2124. dsf_makeValue(ds_hidden1_biztrgtman,"depthngnm" , "string", depthngnm);
  2125. dsf_makeValue(ds_hidden1_biztrgtman,"orddrnm" , "string", orddrnm);
  2126. var rid = "RPMNI02021"; // 레포트명
  2127. var dataType = "XMLSTR"; // 연계방법(XMLSTR/ XMLFILE/ XML)
  2128. var paramsXPath = "/root/hidden1/biztrgtman"; // 매개변수필드 XPath
  2129. var submitId = ""; // SubmitID
  2130. var print = ""; // 출력여부(true, false)
  2131. var printDialog = ""; // 인쇄 창 보임 여부(true, false)
  2132. var fileType = ""; // 저장타입(xls/ pdf/ hml/rtf/ html/ bmp/ txt/ xml )
  2133. var fileName = ""; // 파일명(c:\report\레포트명.저장타입)
  2134. var fileDialog = ""; // 파일 저장 창 보임여부(0 : 숨김[기본]/1 : 보임)
  2135. var closeYn = ""; // 미리보기창닫기여부(출력 후 true로 설정한 경우 미리보기 화면 닫기)
  2136. var monNo = ""; // 모니터 번호
  2137. var parentObjId = ""; // 부모객체명(미리 생성한 부모 객체명, 해당 부모 객체에 레포트 데이터를 생성한다.)
  2138. var printPaperBin = ""; // 트레이번호
  2139. var userService = ""; // 데이터 소스
  2140. var showButton = ""; // 툴바버튼보임여부(visible, hidden)
  2141. var printCount = ""; // 프린트장수(1, 2,..)
  2142. var zoomRate = ""; // 미리보기뷰어 비율(0, 50,...)
  2143. var printOption = ""; // 출력시 선택 옵션
  2144. var dataXPath = ""; // 데이터 XPath
  2145. var mainDataXPath = ""; // 메인리포트 반복XPath
  2146. var subDataXPath = ""; // 서브리포트1 반복Xpath
  2147. //미리보기출력
  2148. var objDOM = rptf_createDOM();
  2149. rptf_setNodeListToDOM(objDOM, "/root/hidden1/biztrgtman", ds_hidden1_biztrgtman); // 데이터셋 1
  2150. var objParam = new Object();
  2151. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2152. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  2153. rptf_exeReportPreview30(["RPMNI02021"],[objParam], option);
  2154. //exeReportPreview(rid, dataType, paramsXPath, submitId, print, printDialog, fileType, fileName, fileDialog, closeYn, monNo, parentObjId, printPaperBin, userService, showButton, printCount, zoomRate, printOption, dataXPath, mainDataXPath, subDataXPath);
  2155. }//fPreview END
  2156. /**
  2157. * @desc : 처방 상세보기
  2158. * @param : 전처방, 연속처방, 처방검색 탭버튼 눌렀을 경우 원복 orgflag => Y
  2159. * @id : btn_detlvw
  2160. * @event : DOMActivate
  2161. * @return : void
  2162. * @authur :
  2163. */
  2164. function fDetlVw ( orgflag ) {
  2165. var grdLeft = 827;
  2166. var grdWidht = 367;
  2167. var grdHeight = 128;
  2168. var extnGrdLeft = 0;
  2169. var extnGrdWidht = 1194;
  2170. var extnGrdHeight = 380;
  2171. var prcpcdCol = group3.grd_injsper.getBindCellIndex("body","orddd"); //처방코드 컬럼 index
  2172. var prcpnmCol = group3.grd_injsper.getBindCellIndex("body","depthngnm"); //처방명 컬럼 index
  2173. var prcpengnmCol = group3.grd_injsper.getBindCellIndex("body","prcpcd"); //처방영문명 컬럼 index
  2174. var prcpspecCol = group3.grd_injsper.getBindCellIndex("body","prcpnm"); //처방내역 컬럼 index
  2175. var lineX1 = grdLeft;
  2176. var lineX2 = grdLeft + grdWidht;
  2177. var extnLineX1 = extnGrdLeft;
  2178. var extnLineX2 = lineX2;
  2179. var prcpColsize = 50;
  2180. var prcpnmColsize = 130;
  2181. var prcpengnmColsize = 100;
  2182. var prcpspecColsize = 230;
  2183. if ( ds_init.getColumn(0, "detlvw") == "p" && orgflag != "y" ) {
  2184. group3.grd_injsper.position.left = extnGrdLeft;
  2185. group3.grd_injsper.position.width = extnGrdWidht;
  2186. group3.grd_injsper.position.height = extnGrdHeight;
  2187. group3.line12.position.left = extnLineX1;
  2188. group3.line12.position.width = extnLineX2;
  2189. ds_init.setColumn(0, "detlvw", "m" );
  2190. group3.grd_injsper.setFormatColProperty(prcpcdCol, "size", group3.grd_injsper.getRealColSize(prcpcdCol) + prcpColsize );
  2191. if(group3.grd_injsper.getRealColSize(prcpnmCol) != 0) {
  2192. group3.grd_injsper.setFormatColProperty(prcpnmCol, "size", group3.grd_injsper.getRealColSize(prcpnmCol) + prcpnmColsize );
  2193. }
  2194. if(group3.grd_injsper.getRealColSize(prcpengnmCol) != 0) {
  2195. group3.grd_injsper.setFormatColProperty(prcpengnmCol, "size", group3.grd_injsper.getRealColSize(prcpengnmCol) + prcpengnmColsize );
  2196. }
  2197. group3.grd_injsper.setFormatColProperty(prcpspecCol, "size", group3.grd_injsper.getRealColSize(prcpspecCol) + prcpspecColsize );
  2198. } else {
  2199. group3.grd_injsper.position.left = grdLeft;
  2200. group3.grd_injsper.position.width = grdWidht;
  2201. group3.grd_injsper.position.height = grdHeight;
  2202. group3.line12.position.left = lineX1;
  2203. group3.line12.position.width = lineX2;
  2204. ds_init.setColumn(0, "detlvw", "p" );
  2205. group3.grd_injsper.setFormatColProperty(prcpcdCol , "size", group3.grd_injsper.getRealColSize(prcpcdCol) - prcpColsize );
  2206. group3.grd_injsper.setFormatColProperty(prcpnmCol , "size", group3.grd_injsper.getRealColSize(prcpnmCol) - prcpnmColsize );
  2207. group3.grd_injsper.setFormatColProperty(prcpengnmCol, "size", group3.grd_injsper.getRealColSize(prcpengnmCol) - prcpengnmColsize );
  2208. group3.grd_injsper.setFormatColProperty(prcpspecCol , "size", group3.grd_injsper.getRealColSize(prcpspecCol) - prcpspecColsize );
  2209. }
  2210. }
  2211. /*
  2212. 20090316 dhkim 사용하지 않는 펑션으로 주석처리
  2213. / **
  2214. * @group :
  2215. * @ver : 2007.10.29
  2216. * @by : 신혁춘
  2217. * @---------------------------------------------------
  2218. * @type : function
  2219. * @access : public
  2220. * @desc : 특조전송
  2221. * @param :
  2222. * @return :
  2223. * @---------------------------------------------------
  2224. * /
  2225. function fAnticncr() {
  2226. var oRow = grd_ordsper.row;
  2227. var iRow = grd_biztrgtman.row;
  2228. model.removenode("/root/send");
  2229. var Row = grd_prcpdetl.rows;
  2230. var jRow=grd_prcpdetl.row;
  2231. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  2232. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist"
  2233. //환자 선택 여부 파악
  2234. if(grd_prcpdetl.rows == 1){
  2235. messageBox("환자가 선택되지", "E007")
  2236. return;
  2237. }
  2238. //데이터가 선택여부와 예약시간 설정여부를 체크한다.
  2239. var chek = 0; //선택여부 체크
  2240. var kRow = 0; //예약시간 입력한 rowid
  2241. var rsrvtm;
  2242. for (var i = 1 ; i < grd_prcpdetl.rows ; i++){
  2243. //선택내역 체크
  2244. chek = chek + grd_prcpdetl.textmatrix(i,1);
  2245. //선택한 처방의 예약시간 설정여부 체크
  2246. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  2247. kRow = kRow + "," + i;
  2248. rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm");
  2249. if(rsrvtm == "000000"){
  2250. messageBox("예약시간을", "C002");
  2251. return;
  2252. }
  2253. }
  2254. }
  2255. if(chek==0){
  2256. messageBox("하나 이상의 항암을", "C002");
  2257. return;
  2258. }
  2259. //선택한 처방내역중 항암선택여부 확인
  2260. var kRows = kRow.split(",");//예약시간 입력한 row 정보
  2261. var kchek = 0; //항암선택여부
  2262. var prcpclscd; //항암종류
  2263. for(var i=1; i < kRows.length; i++){ //예약시간 row정보를 돌면서 항암이 선택되었는지를 체크한다.
  2264. prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  2265. if(prcpclscd=="A7"){//항암
  2266. kchek = kchek + 1;
  2267. }
  2268. }
  2269. if(kchek == 0){
  2270. messageBox("하나 이상의 항암을", "C002");
  2271. return;
  2272. }
  2273. //선택된 처방의 acting실시여부를 체크한다.
  2274. //선택된 처방의 특조전송여부를 체크한다.
  2275. var stat;
  2276. var drugnochk;
  2277. for(var i=1; i<kRows.length; i++){
  2278. stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  2279. if (stat == "6"){//시행완료
  2280. messageBox("Acting을 실시한 곳은 특조전송을", "E001");
  2281. return;
  2282. }
  2283. drugnochk = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  2284. if (drugnochk != "0"){
  2285. messageBox("한번 특조전송을 실시한 곳은 특조전송을", "E001");
  2286. return;
  2287. }
  2288. }
  2289. //이게 무슨코딩인지 난 모르겠네 주석달다 포기
  2290. //선택한 처방내역중
  2291. var a = 0;
  2292. for (var i = 1; i < kRows.length; i++){
  2293. if(i == 1){
  2294. a = i;
  2295. }else{
  2296. a = i - 1;
  2297. }
  2298. if(model.getValue(xhiddenPrcpDetlPath+"["+kRows[a]+"]/actorddd") != model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd")){
  2299. var doublek = "dd"
  2300. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");
  2301. }
  2302. }
  2303. //이게무슨코딩인지 난 모르겠네
  2304. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");//예약시간 입력한 처방중 첫 row의 예약일자
  2305. if(kRows.length >= 3){
  2306. for (var i=1; i<kRows.length; i++){
  2307. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2308. var drugno = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  2309. }
  2310. }
  2311. //선택한 처방의 예약일자와 동일한 예약일자의 처방정보 row를 임시저장
  2312. var lRow = 0;
  2313. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");//예약시간 입력한 처방중 첫 row의 예약일자
  2314. var chkactorddd1;
  2315. for (var i = 1; i < grd_prcpdetl.rows; i++){
  2316. chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  2317. if(chkactorddd == chkactorddd1){
  2318. lRow = lRow + "," + i;//첫row의 예약일자와 전체그리드돌면서 예약일자가 같으면 row번호 임시저장.
  2319. }
  2320. }
  2321. //동일한 예약일자를 가진 처방정보 임시저장한
  2322. var lRows = lRow.split(",");//선택한 첫 row와 같은 예약일자의 처방정보
  2323. var actordddchk, actordddchk1;
  2324. for (var i = 1; i < grd_prcpdetl.rows; i++){
  2325. actordddchk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  2326. actordddchk1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  2327. if (actordddchk != actordddchk1){
  2328. if (kRow != lRow){
  2329. messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  2330. return;
  2331. }
  2332. }
  2333. }
  2334. var vewactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2335. var vewactorddd4 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  2336. for (i=1; i<kRows.length; i++){
  2337. var vewactorddd2 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2338. var vewactorddd3 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  2339. if(vewactorddd1 != vewactorddd2 && vewactorddd4==vewactorddd3){
  2340. messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  2341. return;
  2342. }
  2343. }
  2344. //----------------처방을 부분적으로 선택한 상태인지 체크 시작(예약시간지정 체크와 순서변경) [20081120 dhkim]----------------//
  2345. //전송할 항암중 예약일자가 동일한 항암처방의 선택하지 않은 항암이 있는지 확인한다.
  2346. var chkd = 0;
  2347. var flag, prcpclscdnow, actorddd, rsrvtm; //체크값
  2348. var _flag, _prcpclscdnow, _actorddd, _rsrvtm; //체크비교값
  2349. for(var j = 1; j < grd_prcpdetl.rows; j++){
  2350. stat = model.getValue(xPrcpDetlPath+"["+j+"]/stat"); //처방상태
  2351. flag = model.getValue(xPrcpDetlPath+"["+j+"]/flag"); //체크상태
  2352. prcpclscdnow = model.getValue(xPrcpDetlPath+"["+j+"]/prcpclscdnow");//처방종류
  2353. actorddd = model.getValue(xPrcpDetlPath+"["+j+"]/actorddd"); //예약일자 [20081119 dhkim]
  2354. rsrvtm = model.getValue(xPrcpDetlPath+"["+j+"]/rsrvtm"); //예약시간 [20081119 dhkim]
  2355. //항암처방체크해제상태의 항암처방
  2356. if ((flag == "0" || flag == "") && prcpclscdnow == "A7" && stat == ""){
  2357. //[20081119 dhkim] 예약일자까지 체크하는것으로 추가
  2358. for(var i = 1; i < grd_prcpdetl.rows; i++){
  2359. _stat = model.getValue(xPrcpDetlPath+"["+i+"]/stat"); //처방상태비교값
  2360. _flag = model.getValue(xPrcpDetlPath+"["+i+"]/flag"); //체크상태비교값
  2361. _prcpclscdnow = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscdnow"); //처방종류비교값
  2362. _actorddd = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd"); //예약일자비교값
  2363. _rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm"); //예약시간비교값
  2364. if(_flag == '1' && _prcpclscdnow == 'A7' && _stat == "" && actorddd == _actorddd && rsrvtm == _rsrvtm){
  2365. chkd = chkd + 1;
  2366. }
  2367. }
  2368. }
  2369. }
  2370. if(chkd > 0){
  2371. //예약일자가 동일한 처방에 대해서만 메시지를 뿌릴것.
  2372. if(messageBox("예약일시가 동일한 항암처방중 선택되지 않은 항암처방이 있습니다. 전송을 실시 하겠습니까?", "Q") != 6)
  2373. return;
  2374. }
  2375. //----------------처방을 부분적으로 선택한 상태인지 체크 시작(예약시간지정 체크와 순서변경) [20081120 dhkim]----------------//
  2376. if(doublek != "dd"){
  2377. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  2378. var flag = "Change"
  2379. model.removeNodeset("/root/send");
  2380. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2381. model.makeValue("/root/send/drugdd", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  2382. model.makeValue("/root/send/ordtm", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  2383. model.makeValue("/root/send/acting", flag);
  2384. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd);
  2385. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  2386. model.makeValue("/root/send/anticncr/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2387. //예약일시 변경을 위한 변경내용저장처리
  2388. if(submit("TXMNI02027")){
  2389. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  2390. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  2391. alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  2392. }
  2393. //특조전송처리
  2394. if(submit("TXMNI02023")){
  2395. model.makeValue("/root/send/pid", model.getValue("/root/send/anticncr/pid"));
  2396. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  2397. fbiztrgtman("acting");
  2398. if(model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  2399. //업무대상리스트 다시 조회후 현재 Row의 위치에 선택 실시
  2400. grd_biztrgtman.row = iRow;
  2401. //처방 상세내역
  2402. fBiztrgtClick("acting");
  2403. }else if (oRow != ""){
  2404. grd_ordsper.row = oRow;
  2405. fordsper();
  2406. }
  2407. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2408. model.copyNode("/root/hidden/main", "/root/main");
  2409. messageBox("특조전송을", "I002");
  2410. }
  2411. }
  2412. }else{
  2413. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  2414. var flag = "Change";
  2415. model.removeNodeset("/root/send");
  2416. model.makeValue("/root/send/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2417. model.makeValue("/root/send/drugdd", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  2418. model.makeValue("/root/send/ordtm", model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  2419. model.makeValue("/root/send/acting", flag);
  2420. model.makeValue("/root/send/prcpexecdeptcd", prcpexecdeptcd);
  2421. model.makeValue("/root/send/prcpdetl", grd_prcpdetl.getupdatedataAll("i"));
  2422. model.makeValue("/root/send/anticncr/pid", model.getValue("/root/main/rghtref/rghtreflist/pid"));
  2423. //예약일시 변경을 위한 변경내용저장처리
  2424. if(submit("TXMNI02027")){
  2425. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  2426. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  2427. alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  2428. }
  2429. //특조전송처리
  2430. if(submit("TXMNI02023")){
  2431. model.makeValue("/root/send/pid", model.getValue("/root/send/anticncr/pid"));
  2432. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  2433. fbiztrgtman("acting");
  2434. if(model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  2435. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  2436. grd_biztrgtman.row = iRow;
  2437. //처방 상세내역
  2438. fBiztrgtClick("acting");
  2439. }else if (oRow != ""){
  2440. grd_ordsper.row = oRow;
  2441. fordsper();
  2442. }
  2443. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2444. model.copyNode("/root/hidden/main", "/root/main");
  2445. messageBox("특조전송을", "I002");
  2446. }
  2447. }
  2448. }
  2449. }
  2450. */
  2451. /**
  2452. * @group :
  2453. * @ver : 2007.11.14
  2454. * @by : 신혁춘
  2455. * @---------------------------------------------------
  2456. * @type : function
  2457. * @access : public
  2458. * @desc : 당일 업무대상자 리스트 상세보기
  2459. * @param :
  2460. * @return :
  2461. * @---------------------------------------------------
  2462. */
  2463. function fDetlVwa ( orgflag ) {
  2464. var grdLeft = 0;
  2465. var grdWidht = 582;
  2466. var grdHeight = 354;
  2467. var extnGrdLeft = 0;
  2468. var extnGrdWidht = 582;
  2469. var extnGrdHeight = 604;
  2470. if ( ds_init.getColumn(0, "detlvwa") == "p" && orgflag != "y" ) {
  2471. group3.grd_biztrgtman.position.left = extnGrdLeft;
  2472. group3.grd_biztrgtman.position.width = extnGrdWidht;
  2473. group3.grd_biztrgtman.position.height = extnGrdHeight;
  2474. ds_init.setColumn(0, "detlvwa", "m" );
  2475. } else {
  2476. group3.grd_biztrgtman.position.left = grdLeft;
  2477. group3.grd_biztrgtman.position.width = grdWidht;
  2478. group3.grd_biztrgtman.position.height = grdHeight;
  2479. ds_init.setColumn(0, "detlvwa", "p" );
  2480. }
  2481. }
  2482. /**
  2483. * @group :
  2484. * @ver : 2007.11.14
  2485. * @by : 신혁춘
  2486. * @---------------------------------------------------
  2487. * @type : function
  2488. * @access : public
  2489. * @desc : 처방상세 내역 상세보기
  2490. * @param :
  2491. * @return :
  2492. * @---------------------------------------------------
  2493. */
  2494. function fDetlVwb ( orgflag ) {
  2495. var grdLeft = 0;
  2496. var grdTop = 522;
  2497. var grdWidht = 1194;
  2498. var grdHeight = 220;
  2499. var extnGrdLeft = 0;
  2500. var extnGrdTop = 136;
  2501. var extnGrdWidht = 1194;
  2502. var extnGrdHeight = 606;
  2503. var groLeft = 0;
  2504. var groTop = 492;
  2505. var groWidht = 1195;
  2506. var groHeight = 27;
  2507. var extnGroLeft = 0;
  2508. var extnGroTop = 109;
  2509. var extnGroWidht = 1195;
  2510. var extnGroHeight = 27;
  2511. if ( ds_init.getColumn(0, "detlvwb") == "p" && orgflag != "y" ) {
  2512. group3.grd_prcpdetl.position.left = extnGrdLeft;
  2513. group3.grd_prcpdetl.position.top = extnGrdTop;
  2514. group3.grd_prcpdetl.position.width = extnGrdWidht;
  2515. group3.grd_prcpdetl.position.height = extnGrdHeight;
  2516. group3.group4.position.left = extnGroLeft;
  2517. group3.group4.position.top = extnGroTop;
  2518. group3.group4.position.width = extnGroWidht;
  2519. group3.group4.position.height = extnGroHeight;
  2520. group3.grd_injsper.visible = false;
  2521. group3.line12.visible = false;
  2522. group3.grd_biztrgtman.visible = false;
  2523. group3.caption10.visible = false;
  2524. group3.button2.visible = false;
  2525. group3.line7.visible = false;
  2526. ds_init.setColumn(0, "detlvwb", "m" );
  2527. } else {
  2528. group3.grd_prcpdetl.position.left = grdLeft;
  2529. group3.grd_prcpdetl.position.top = grdTop;
  2530. group3.grd_prcpdetl.position.width = grdWidht;
  2531. group3.grd_prcpdetl.position.height = grdHeight;
  2532. group3.group4.position.left = groLeft;
  2533. group3.group4.position.top = groTop;
  2534. group3.group4.position.width = groWidht;
  2535. group3.group4.position.height = groHeight;
  2536. group3.grd_injsper.visible = true;
  2537. group3.line12.visible = true;
  2538. group3.grd_biztrgtman.visible = true;
  2539. group3.caption10.visible = true;
  2540. group3.button2.visible = true;
  2541. group3.line7.visible = true;
  2542. ds_init.setColumn(0, "detlvwb", "p" );
  2543. }
  2544. }
  2545. /**
  2546. * @group :
  2547. * @ver : 2007.11.20
  2548. * @by : 신혁춘
  2549. * @---------------------------------------------------
  2550. * @type : function
  2551. * @access : public
  2552. * @desc : 부위 기준자료 조회
  2553. * @param :
  2554. * @return :
  2555. * @---------------------------------------------------
  2556. */
  2557. function fpartflaginfo(){
  2558. ds_send.clearData();
  2559. dsf_makeValue(ds_send,"baseclsflag" , "string", "J");
  2560. dsf_makeValue(ds_send,"supbasetypecd" , "string", "JSA");
  2561. var oParam = {};
  2562. oParam.id = "TRMNI02026";
  2563. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  2564. oParam.method = "reqGetPartFlagList";
  2565. oParam.inds = "refCond=ds_send";
  2566. oParam.outds = "ds_init_partflaglist=partflaglist";
  2567. oParam.async = false;
  2568. tranf_submit(oParam);
  2569. }
  2570. /**
  2571. * @group :
  2572. * @ver : 2007.11.27
  2573. * @by : 신혁춘
  2574. * @---------------------------------------------------
  2575. * @type : function
  2576. * @access : public
  2577. * @desc : MIX 번호에따른 동시 선택
  2578. * @param :
  2579. * @return :
  2580. * @---------------------------------------------------
  2581. */
  2582. function chkflag(){
  2583. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  2584. var iRow = ds_main_prcpdetl_prcpdetllist.rowposition;
  2585. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  2586. var chk = ds_main_prcpdetl_prcpdetllist.getColumn(iRow, "flag");
  2587. var mix = ds_main_prcpdetl_prcpdetllist.getColumn(iRow, "mix");
  2588. var actorddd = ds_main_prcpdetl_prcpdetllist.getColumn(iRow, "actorddd");
  2589. var orddd = ds_main_prcpdetl_prcpdetllist.getColumn(iRow, "orddd");
  2590. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  2591. var rgstdd = ds_main_prcpdetl_prcpdetllist.getColumn(iRow, "rgstdd");
  2592. var rgsttm = ds_main_prcpdetl_prcpdetllist.getColumn(iRow, "rgsttm");
  2593. if(chk == "1"){
  2594. if(mix == "-"){
  2595. return;
  2596. }else{
  2597. for(var i=0; i<Row; i++){
  2598. var mixs = ds_main_prcpdetl_prcpdetllist.getColumn(i, "mix");
  2599. var actorddds = ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  2600. var orddds = ds_main_prcpdetl_prcpdetllist.getColumn(i, "orddd");
  2601. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  2602. var _rgstdd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rgstdd");
  2603. var _rgsttm = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rgsttm");
  2604. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  2605. if(mix == mixs && actorddd == actorddds && orddd == orddds && rgstdd == _rgstdd && rgsttm == _rgsttm){
  2606. ds_main_prcpdetl_prcpdetllist.setColumn(i, "flag", "1");
  2607. }
  2608. }
  2609. }
  2610. }
  2611. if(chk == "0"){
  2612. if(mix == "-"){
  2613. return;
  2614. }else{
  2615. for(var i=0; i<Row; i++){
  2616. var mixs = ds_main_prcpdetl_prcpdetllist.getColumn(i, "mix");
  2617. var actorddds = ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  2618. var orddds = ds_main_prcpdetl_prcpdetllist.getColumn(i, "orddd");
  2619. //20091112 dhkim 믹스그룹화 기준을 처방시간별로 변경(약제랑 기준 맞춤- 빈센트에서 오류발생함)
  2620. var _rgstdd = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rgstdd");
  2621. var _rgsttm = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rgsttm");
  2622. //20091112 dhkim 믹스그룹화 시 rgstdd, rgsttm 조건 추가
  2623. if(mix == mixs && actorddd == actorddds && orddd == orddds && rgstdd == _rgstdd && rgsttm == _rgsttm){
  2624. ds_main_prcpdetl_prcpdetllist.setColumn(i, "flag", "0");
  2625. }
  2626. }
  2627. }
  2628. }
  2629. }
  2630. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  2631. // 20081217 새로 수정한 acting, acting취소, 변경내용저장 을 호출하기 위한 펑션 시작
  2632. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  2633. /**
  2634. * @ver : 20081217
  2635. * @by : dhkim
  2636. * @---------------------------------------------------
  2637. * @desc : 액팅
  2638. * @---------------------------------------------------
  2639. */
  2640. function fPrcpActing(){
  2641. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  2642. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  2643. var jRow = ds_main_prcpdetl_prcpdetllist.rowposition;
  2644. var oRow = ds_main_rghtlist_ordsperlist.rowposition;
  2645. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  2646. //acting채크 시 환자 선택 여부 파악
  2647. if(Row==0){
  2648. sysf_messageBox("환자가 선택되지", "E007");
  2649. return;
  2650. }
  2651. //처방선택여부 파악
  2652. var chek = 0;
  2653. var kRow = "0";
  2654. for (i=0; i<Row; i++){
  2655. chek = chek + Number(utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag")));
  2656. if( ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag") == "1"){
  2657. kRow = kRow +","+ i;
  2658. }
  2659. //alert('chek : '+chek + ', kRow : ' + kRow);
  2660. }
  2661. if(chek==0){
  2662. sysf_messageBox("하나 이상의 처방내역을", "C002");
  2663. return;
  2664. }
  2665. //선택한 처방에 해당하는 row만 돌면서 acting validation을 체크한다.
  2666. var kRows = kRow.split(",");
  2667. for(i=1; i<kRows.length; i++){
  2668. var exec = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "execdd");
  2669. var prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcpclscd");
  2670. var execchk = utlf_getCurrentDate();
  2671. var execord = exec.substr(0,8);
  2672. var endyn = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "endyn");
  2673. var act50yn = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "act50yn");
  2674. var dracptyn = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "dracptyn");
  2675. var dracptdt = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "dracptdt");
  2676. if(exec != "-"){
  2677. sysf_messageBox("Acting을 실시한 곳은 다시 Acting을", "E001");
  2678. return;
  2679. }
  2680. var stat = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "stat");
  2681. var prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcpclscd");
  2682. var cdnm = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "cdnm");
  2683. //항암, 주사 가 아니면 조회만 가능
  2684. //20090316 dhkim 무균(A9)추가
  2685. if(prcpclscd != "A7" && prcpclscd != "A6" && prcpclscd != "A8" && prcpclscd != "A9"){
  2686. sysf_messageBox("항암, 무균제, 주사만 Acting을 할 수 있습니다.", "E");
  2687. return;
  2688. }
  2689. if(prcpclscd == "B4"){
  2690. sysf_messageBox("혈액은 수혈 기록을 통해서만 Acting을 할 수 있습니다.", "E");
  2691. return;
  2692. }
  2693. //20090316 dhkim 무균(A9)추가
  2694. if(prcpclscd == "A7" || prcpclscd == "A9"){
  2695. if(stat != "2"){
  2696. sysf_messageBox("조제완료 되지 않은 항암, 무균제는 Acting을", "E001");
  2697. return;
  2698. }
  2699. }
  2700. if(cdnm == "마약"){
  2701. if(stat != "5"){
  2702. sysf_messageBox("불출 되지 않은 마약은 Acting을", "E001");
  2703. return;
  2704. }
  2705. }
  2706. }
  2707. //
  2708. if(kRows.length >= 3){
  2709. var chkactorddd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");//맨첫번째 row의 값과 비교
  2710. for (i=1; i<kRows.length; i++){
  2711. var chkactorddd1 = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  2712. if(chkactorddd != chkactorddd1){
  2713. sysf_messageBox("Acting은 동일한 예약일자가 아니면 Acting실시", "E001");
  2714. return;
  2715. }
  2716. }
  2717. }
  2718. // 20081103 dhkim
  2719. // 특수주사실의 경우 외래처방과 입원처방이 동시에 발생가능하고 병동재원환자의 처방에 대해서는 blocking처리함
  2720. ds_send.clearData();
  2721. dsf_makeValue(ds_send,"pid", "string", ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  2722. var oParam = {};
  2723. oParam.id = "TRMNI02028";
  2724. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  2725. oParam.method = "reqGetActingChkData";
  2726. oParam.inds = "refCond=ds_send";
  2727. oParam.outds = "ds_init_acting_chking=chking";
  2728. oParam.async = false;
  2729. oParam.callback = "cf_TRMNI02028";
  2730. tranf_submit(oParam);
  2731. //재원환자의 처방acting을 blocking한다.
  2732. if(arErrorCode.pop("TRMNI02028") > -1){
  2733. if(ds_init_acting_chking.getColumn(0, "actingchk") > 0){
  2734. sysf_messageBox("현재 입원 환자는 Acting을", "E001");
  2735. return;
  2736. }
  2737. }
  2738. var prcpexecdeptcd = ds_main_leftref.getColumn(0, "exec");//세션 부서코드(default)
  2739. var ordddlong = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "orddd"));
  2740. var orddd = ordddlong.substring(0,8);
  2741. // 20090220 dhkim 추가
  2742. var pid = ds_main_rghtref_rghtreflist.getColumn(0, "pid");
  2743. if( utlf_isNull(pid) ){
  2744. pid = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "pid"); // 조회조건에 등록번호 세팅 없을때 그리드에서 등록번호 가져감
  2745. }
  2746. ds_send.clearData();
  2747. dsf_makeValue(ds_send,"acting" , "string", "Y"); // acting : Y, acting취소 : N
  2748. dsf_makeValue(ds_send,"pid" , "string", pid); // 등록번호
  2749. dsf_makeValue(ds_send,"drugdd" , "string", ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd")); // 예정일시
  2750. dsf_makeValue(ds_send,"prcpexecdeptcd" , "string", prcpexecdeptcd); // 실시부서코드
  2751. dsf_makeValue(ds_send,"endyn" , "string", ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "endyn")); // 마감여부
  2752. //dsf_makeValue(ds_send,"prcpdetl", "string", grd_prcpdetl.getupdatedataAll("i")); // 처방상세내역 그리드
  2753. dsf_makeValue(ds_send,"orddd" , "string", orddd);
  2754. dsf_makeValue(ds_send,"act50yn" , "string", ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "act50yn"));
  2755. dsf_makeValue(ds_send,"dracptyn", "string", ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "dracptyn"));
  2756. dsf_makeValue(ds_send,"dracptdt", "string", ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "dracptdt"));
  2757. dsf_createDs("ds_send_prcpdetl");
  2758. ds_main_prcpdetl_prcpdetllist.filter("flag == '1'");
  2759. ds_main_prcpdetl_prcpdetllist.applyChange();
  2760. ds_send_prcpdetl.copyData(ds_main_prcpdetl_prcpdetllist,true);
  2761. ds_main_prcpdetl_prcpdetllist.filter("");
  2762. //dsf_setTypeFormat(ds_send_prcpdetl, "prcpno:INT^prcphistno:INT^execprcpuniqno:INT^dgno:INT");
  2763. var oParam = {};
  2764. oParam.id = "TXMNI02029";
  2765. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  2766. oParam.method = "reqExePrcpActing";
  2767. oParam.inds = "refCond=ds_send_prcpdetl acting=ds_send";
  2768. oParam.outds = "";
  2769. oParam.async = false;
  2770. oParam.callback = "cf_TXMNI02029";
  2771. tranf_submit(oParam);
  2772. //Acting실행
  2773. if(arErrorCode.pop("TXMNI02029") > -1){
  2774. if ( !utlf_isNull(oRow) ){
  2775. ds_main_rghtlist_ordsperlist.rowposition = oRow;
  2776. fordsper();
  2777. }else if (ds_main_rghtref_rghtreflist.getColumn(0, "pid") == ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "pid") ){
  2778. //처방 상세내역
  2779. fBiztrgtClick("acting");
  2780. }else{
  2781. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  2782. fbiztrgtman("acting");
  2783. }
  2784. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2785. ds_hidden_main_biztrgtman_biztrgtmanlist.copyData(ds_main_biztrgtman_biztrgtmanlist);
  2786. ds_hidden_main_biztrgtman_statslist.copyData(ds_main_biztrgtman_statslist);
  2787. ds_hidden_main_biztrgtman_endyninfo.copyData(ds_main_biztrgtman_endyninfo);
  2788. ds_hidden_main_leftref.copyData(ds_main_leftref);
  2789. ds_hidden_main_rghtref_rghtreflist.copyData(ds_main_rghtref_rghtreflist);
  2790. ds_hidden_main_prcpdetl_prcpdetllist.copyData(ds_main_prcpdetl_prcpdetllist);
  2791. ds_hidden_main_rghtlist_ordsperlist.copyData(ds_main_rghtlist_ordsperlist);
  2792. ds_hidden_main_rghtlist_injsperlist.copyData(ds_main_rghtlist_injsperlist);
  2793. ds_hidden_main_rghtlist_snwinfolist.copyData(ds_main_rghtlist_snwinfolist);
  2794. ds_hidden_main_rghtlist_ordrsrvlist.copyData(ds_main_rghtlist_ordrsrvlist);
  2795. ds_hidden_main_rghtlist_testrsrvlist.copyData(ds_main_rghtlist_testrsrvlist);
  2796. ds_hidden_main_rghtlist_memolist.copyData(ds_main_rghtlist_memolist);
  2797. ds_hidden_main.copyData(ds_main);
  2798. ds_hidden_main_userpopupinfo.copyData(ds_main_userpopupinfo);
  2799. ds_hidden_main_patinfo_patinfolist.copyData(ds_main_patinfo_patinfolist);
  2800. ds_hidden_main_paminfo.copyData(ds_main_paminfo);
  2801. ds_hidden_main_cond_list.copyData(ds_main_cond_list);
  2802. }
  2803. }
  2804. /**
  2805. * @ver : 20081217
  2806. * @by : dhkim
  2807. * @---------------------------------------------------
  2808. * @desc : 액팅취소
  2809. * @---------------------------------------------------
  2810. */
  2811. function fPrcpActingCancel(){
  2812. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  2813. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  2814. var jRow = ds_main_prcpdetl_prcpdetllist.rowposition;
  2815. var oRow = ds_main_rghtlist_ordsperlist.rowposition;
  2816. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  2817. //환자 선택 여부 파악
  2818. if(Row==0){
  2819. sysf_messageBox("환자가 선택되지", "E007");
  2820. return;
  2821. }
  2822. //처방선택여부 파악
  2823. var chek = 0;
  2824. var kRow = 0;
  2825. for (i=0; i<Row; i++){
  2826. chek = chek + Number(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag"));
  2827. if(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag") == "1"){
  2828. kRow = kRow +","+ i;
  2829. }
  2830. }
  2831. if(chek==0){
  2832. sysf_messageBox("하나 이상의 처방내역을", "C002");
  2833. return;
  2834. }
  2835. var kRows = utlf_transNullToEmpty(kRow).split(",");
  2836. for(i=1; i < kRows.length; i++){
  2837. var exec = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "execdd");
  2838. var prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcpclscd");
  2839. var execchk = utlf_getCurrentDate();
  2840. var execord = exec.substr(0,8);
  2841. var endyn = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "endyn");
  2842. var act50yn = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "act50yn");
  2843. var dracptyn = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "dracptyn");
  2844. var dracptdt = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "dracptdt");
  2845. if(exec == "-"){
  2846. sysf_messageBox("Acting을 실시하지 처방은 Acting 취소를", "E001");
  2847. return;
  2848. }
  2849. if(execord != execchk){
  2850. sysf_messageBox("당일 Acting한 처방이 아니면 Acting 취소를", "E001");
  2851. return;
  2852. }
  2853. if(prcpclscd == "B4"){
  2854. sysf_messageBox("혈액은 Acting 취소를", "E001");
  2855. return;
  2856. }
  2857. // 마감된 처방을 Acting취소시 마감반환사유 프로세스 입력되도록
  2858. if (endyn == "Y") {
  2859. sysf_messageBox("마감된 Acting처방을 취소하려면 반환사유를 ", "C001");
  2860. //ds_main_cond_list
  2861. dsf_makeValue(ds_main_cond_list,"prcpdd" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcpdd"));
  2862. dsf_makeValue(ds_main_cond_list,"prcpno" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcpno"));
  2863. dsf_makeValue(ds_main_cond_list,"prcphistno", "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcphistno"));
  2864. dsf_makeValue(ds_main_cond_list,"execprcpno", "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "execprcpno"));
  2865. dsf_makeValue(ds_main_cond_list,"instcd" , "string",sysf_getUserInfo("dutplceinstcd"));
  2866. dsf_makeValue(ds_main_cond_list,"ioflag" , "string","O");
  2867. // 반환사유 팝업
  2868. var objArg = new Object();
  2869. objArg.arg_ds_target = ds_main_cond_list;
  2870. frmf_modal("SPPAS03000", "SPPAS03000", objArg, "", 2, 100, 100, "", "", "", "", "", "M");
  2871. }
  2872. } // for end
  2873. if(kRows.length >= 3){
  2874. var chkactorddd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  2875. for (i=1; i<kRows.length; i++){
  2876. var chkactorddd1 = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd");
  2877. if(chkactorddd != chkactorddd1){
  2878. sysf_messageBox("ACting은 동일한 예약일자가 아니면 Acting실시", "E001");
  2879. return;
  2880. }
  2881. }
  2882. }
  2883. var prcpexecdeptcd = ds_main_leftref.getColumn(0, "exec");//세션 부서코드(default)
  2884. var ordddlong = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "orddd"));
  2885. var orddd = ordddlong.substring(0,8);
  2886. // 20090220 dhkim 추가
  2887. var pid = ds_main_rghtref_rghtreflist.getColumn(0, "pid");
  2888. if( utlf_isNull(pid) ){
  2889. pid = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "pid") // 조회조건에 등록번호 세팅 없을때 그리드에서 등록번호 가져감
  2890. }
  2891. ds_send.clearData();
  2892. dsf_makeValue(ds_send,"acting" , "string","N"); // acting : Y, acting취소 : N
  2893. dsf_makeValue(ds_send,"pid" , "string",pid); // 등록번호
  2894. dsf_makeValue(ds_send,"drugdd" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd")); // 예정일시
  2895. dsf_makeValue(ds_send,"prcpexecdeptcd" , "string",prcpexecdeptcd); // 실시부서코드
  2896. dsf_makeValue(ds_send,"endyn" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "endyn")); // 마감여부
  2897. dsf_createDs("ds_send_prcpdetl");
  2898. ds_main_prcpdetl_prcpdetllist.filter("flag == '1'");
  2899. ds_main_prcpdetl_prcpdetllist.applyChange();
  2900. ds_send_prcpdetl.copyData(ds_main_prcpdetl_prcpdetllist,true);
  2901. ds_main_prcpdetl_prcpdetllist.filter("");
  2902. dsf_makeValue(ds_send,"orddd" , "string",orddd);
  2903. dsf_makeValue(ds_send,"act50yn" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "act50yn"));
  2904. dsf_makeValue(ds_send,"dracptyn" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "dracptyn"));
  2905. dsf_makeValue(ds_send,"dracptdt" , "string",ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "dracptdt"));
  2906. //Acting취소 실행
  2907. var oParam = {};
  2908. oParam.id = "TXMNI02030";
  2909. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  2910. oParam.method = "reqExePrcpActingCancel";
  2911. oParam.inds = "refCond=ds_send_prcpdetl acting=ds_send";
  2912. oParam.outds = "";
  2913. oParam.async = false;
  2914. oParam.callback = "cf_TXMNI02030";
  2915. tranf_submit(oParam);
  2916. if(arErrorCode.pop("TXMNI02030") > -1){
  2917. //업무대상리스트 다시 조회 실시
  2918. fbiztrgtman("acting");
  2919. if ( !utlf_isNull(oRow) ){
  2920. ds_main_rghtlist_ordsperlist.rowposition = oRow;
  2921. fordsper();
  2922. }else if(ds_main_rghtref_rghtreflist.getColumn(0, "pid") == ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "pid")){
  2923. //처방 상세내역
  2924. fBiztrgtClick("acting");
  2925. }
  2926. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  2927. ds_hidden_main_biztrgtman_biztrgtmanlist.copyData(ds_main_biztrgtman_biztrgtmanlist);
  2928. ds_hidden_main_biztrgtman_statslist.copyData(ds_main_biztrgtman_statslist);
  2929. ds_hidden_main_biztrgtman_endyninfo.copyData(ds_main_biztrgtman_endyninfo);
  2930. ds_hidden_main_leftref.copyData(ds_main_leftref);
  2931. ds_hidden_main_rghtref_rghtreflist.copyData(ds_main_rghtref_rghtreflist);
  2932. ds_hidden_main_prcpdetl_prcpdetllist.copyData(ds_main_prcpdetl_prcpdetllist);
  2933. ds_hidden_main_rghtlist_ordsperlist.copyData(ds_main_rghtlist_ordsperlist);
  2934. ds_hidden_main_rghtlist_injsperlist.copyData(ds_main_rghtlist_injsperlist);
  2935. ds_hidden_main_rghtlist_snwinfolist.copyData(ds_main_rghtlist_snwinfolist);
  2936. ds_hidden_main_rghtlist_ordrsrvlist.copyData(ds_main_rghtlist_ordrsrvlist);
  2937. ds_hidden_main_rghtlist_testrsrvlist.copyData(ds_main_rghtlist_testrsrvlist);
  2938. ds_hidden_main_rghtlist_memolist.copyData(ds_main_rghtlist_memolist);
  2939. ds_hidden_main.copyData(ds_main);
  2940. ds_hidden_main_userpopupinfo.copyData(ds_main_userpopupinfo);
  2941. ds_hidden_main_patinfo_patinfolist.copyData(ds_main_patinfo_patinfolist);
  2942. ds_hidden_main_paminfo.copyData(ds_main_paminfo);
  2943. ds_hidden_main_cond_list.copyData(ds_main_cond_list);
  2944. }
  2945. }
  2946. /**
  2947. * @ver : 20081217
  2948. * @by : dhkim
  2949. * @---------------------------------------------------
  2950. * @desc : 변경내용저장
  2951. * @---------------------------------------------------
  2952. */
  2953. function fPrcpChangeSave(){
  2954. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  2955. var oRow = ds_main_rghtlist_ordsperlist.rowposition;
  2956. var xhiddenPrcpDetlPath = "ds_hidden_main_prcpdetl_prcpdetllist";
  2957. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist" ;
  2958. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  2959. //변경내용저장 시 환자 선택 여부 파악
  2960. if(Row==0){
  2961. sysf_messageBox("환자가 선택되지", "E007");
  2962. return;
  2963. }
  2964. /*
  2965. 잠시주석처리함
  2966. //20081223 dhkim 잠시 코딩하여 테스트
  2967. var chkflag;
  2968. for(var i = 1; i < grd_prcpdetl.rows; i++){
  2969. chkflag = model.getValue(xPrcpDetlPath + '[' + i + ']/flag');
  2970. if(chkflag == '1'){
  2971. }
  2972. }
  2973. */
  2974. var kRow = 0;
  2975. var chek = 0;
  2976. for (i=0; i<Row; i++){
  2977. chek = chek + Number(utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag")));
  2978. if(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag") == "1"){
  2979. kRow = kRow +","+ i;
  2980. }
  2981. }
  2982. if(chek==0){
  2983. sysf_messageBox("하나 이상의 처방내역을", "C002");
  2984. return;
  2985. }
  2986. var kRows = utlf_transNullToEmpty(kRow).split(",");
  2987. var chkactorddd = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd")
  2988. var chkactorddd1, drugno;
  2989. //20081223 dhkim
  2990. //약번호의 경우 항암 뿐 아니라 마약의 경우에도 따지 므로 메세지를 구분할 필요가 있음
  2991. var cdnm;
  2992. if(kRows.length >= 3){
  2993. for (i=1; i<kRows.length; i++){
  2994. chkactorddd1 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd");
  2995. drugno = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "drugno");
  2996. //20081223 dhkim
  2997. cdnm = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "cdnm");
  2998. if(drugno != "0"){
  2999. if(cdnm == "마약"){
  3000. sysf_messageBox("마약 불출신청 접수 후 예약일자 변경을", "E001");
  3001. }else{
  3002. sysf_messageBox("특조 전송후 예약일자 변경을", "E001");
  3003. }
  3004. return;
  3005. }
  3006. if(chkactorddd != chkactorddd1){
  3007. sysf_messageBox("초기 동일한 예약일자가 아니면 저장", "E001");
  3008. return;
  3009. }
  3010. }
  3011. }
  3012. var lRow = 0;
  3013. var chkactorddd = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  3014. for (i=0; i<Row; i++){
  3015. var chkactorddd1 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  3016. if(chkactorddd == chkactorddd1){
  3017. lRow = lRow +","+ i;
  3018. }
  3019. }
  3020. var lRows = lRow.split(",");
  3021. for (i=0; i<Row; i++){
  3022. var actordddchk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  3023. var actordddchk1 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  3024. if (actordddchk != actordddchk1){
  3025. if (kRow != lRow){
  3026. sysf_messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  3027. return;
  3028. }
  3029. }
  3030. }
  3031. var vewactorddd1 = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  3032. for (i=1; i<kRows.length; i++){
  3033. var vewactorddd2 = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd");
  3034. if(vewactorddd1 != vewactorddd2){
  3035. sysf_messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  3036. return;
  3037. }
  3038. }
  3039. if(flag != "Ant"){
  3040. var prcpexecdeptcd = ds_main_leftref.getColumn(0, "exec");
  3041. var flag = "Change";
  3042. // 20090220 dhkim 추가
  3043. var pid = ds_main_rghtref_rghtreflist.getColumn(0, "pid");
  3044. if(utlf_isNull(pid) ){
  3045. pid = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "pid"); // 조회조건에 등록번호 세팅 없을때 그리드에서 등록번호 가져감
  3046. }
  3047. ds_send.clearData();
  3048. dsf_makeValue(ds_send,"pid" , "string" , pid);
  3049. dsf_makeValue(ds_send,"drugdd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd"));
  3050. dsf_makeValue(ds_send,"ordtm" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "ordtm"));
  3051. // 주사예약변경시 외래예약변경IF 파라미터 추가_20090709
  3052. dsf_makeValue(ds_send,"insukind" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "insukind"));
  3053. dsf_makeValue(ds_send,"suppkind" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "suppkind"));
  3054. dsf_makeValue(ds_send,"insucd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "insucd"));
  3055. dsf_makeValue(ds_send,"suppkindresn" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "suppkindresn"));
  3056. dsf_makeValue(ds_send,"ownbflag" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "ownbflag"));
  3057. dsf_makeValue(ds_send,"spclcd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "spclcd"));
  3058. dsf_makeValue(ds_send,"rareobstflag" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "rareobstflag"));
  3059. dsf_makeValue(ds_send,"acting" , "string" , flag);
  3060. dsf_makeValue(ds_send,"prcpexecdeptcd" , "string" , prcpexecdeptcd);
  3061. dsf_createDs("ds_send_prcpdetl");
  3062. ds_main_prcpdetl_prcpdetllist.filter("flag == '1'");
  3063. ds_main_prcpdetl_prcpdetllist.applyChange();
  3064. ds_send_prcpdetl.copyData(ds_main_prcpdetl_prcpdetllist,true);
  3065. ds_main_prcpdetl_prcpdetllist.filter("");
  3066. //변경내용저장실행
  3067. var oParam = {};
  3068. oParam.id = "TXMNI02031";
  3069. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  3070. oParam.method = "reqExePrcpChangeSave";
  3071. oParam.inds = "refCond=ds_send_prcpdetl acting=ds_send";
  3072. oParam.outds = "ds_savechangeinfo_rcptinfo=rcptinfo";
  3073. oParam.async = false;
  3074. oParam.callback = "cf_TXMNI02031";
  3075. tranf_submit(oParam);
  3076. if(arErrorCode.pop("TXMNI02031") > -1){
  3077. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  3078. if(ds_savechangeinfo_rcptinfo.getColumn(0, "rcptYn") == 'N'){
  3079. alert(ds_savechangeinfo_rcptinfo.getColumn(0, "errMsg"));
  3080. }
  3081. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  3082. fbiztrgtman("acting");
  3083. if (ds_main_rghtref_rghtreflist.getColumn(0, "pid") == ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow , "pid")){
  3084. //업무대상리스트 다시 조회후 현재 Row의 위치에 선택 실시
  3085. ds_main_biztrgtman_biztrgtmanlist.rowposition = iRow;
  3086. //처방 상세내역
  3087. fBiztrgtClick("acting");
  3088. }else if ( !utlf_isNull(oRow) ){
  3089. ds_main_rghtlist_ordsperlist.rowposition = oRow;
  3090. fordsper();
  3091. }
  3092. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  3093. ds_hidden_main_biztrgtman_biztrgtmanlist.copyData(ds_main_biztrgtman_biztrgtmanlist);
  3094. ds_hidden_main_biztrgtman_statslist.copyData(ds_main_biztrgtman_statslist);
  3095. ds_hidden_main_biztrgtman_endyninfo.copyData(ds_main_biztrgtman_endyninfo);
  3096. ds_hidden_main_leftref.copyData(ds_main_leftref);
  3097. ds_hidden_main_rghtref_rghtreflist.copyData(ds_main_rghtref_rghtreflist);
  3098. ds_hidden_main_prcpdetl_prcpdetllist.copyData(ds_main_prcpdetl_prcpdetllist);
  3099. ds_hidden_main_rghtlist_ordsperlist.copyData(ds_main_rghtlist_ordsperlist);
  3100. ds_hidden_main_rghtlist_injsperlist.copyData(ds_main_rghtlist_injsperlist);
  3101. ds_hidden_main_rghtlist_snwinfolist.copyData(ds_main_rghtlist_snwinfolist);
  3102. ds_hidden_main_rghtlist_ordrsrvlist.copyData(ds_main_rghtlist_ordrsrvlist);
  3103. ds_hidden_main_rghtlist_testrsrvlist.copyData(ds_main_rghtlist_testrsrvlist);
  3104. ds_hidden_main_rghtlist_memolist.copyData(ds_main_rghtlist_memolist);
  3105. ds_hidden_main.copyData(ds_main);
  3106. ds_hidden_main_userpopupinfo.copyData(ds_main_userpopupinfo);
  3107. ds_hidden_main_patinfo_patinfolist.copyData(ds_main_patinfo_patinfolist);
  3108. ds_hidden_main_paminfo.copyData(ds_main_paminfo);
  3109. ds_hidden_main_cond_list.copyData(ds_main_cond_list);
  3110. }
  3111. }
  3112. }
  3113. /**
  3114. * @ver : 20081217
  3115. * @by : dhkim
  3116. * @---------------------------------------------------
  3117. * @desc : 특조전송
  3118. * @---------------------------------------------------
  3119. */
  3120. function fPrcpAntiCncr(){
  3121. var oRow = ds_main_rghtlist_ordsperlist.rowposition;
  3122. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  3123. ds_send.clearData();
  3124. var Row = ds_main_prcpdetl_prcpdetllist.rowcount;
  3125. var jRow= ds_main_prcpdetl_prcpdetllist.rowposition;
  3126. var xPrcpDetlPath = "ds_main_prcpdetl_prcpdetllist";
  3127. var xhiddenPrcpDetlPath = "ds_hidden_main_prcpdetl_prcpdetllist";
  3128. //환자 선택 여부 파악
  3129. if(ds_main_prcpdetl_prcpdetllist.rowcount == 0){
  3130. sysf_messageBox("환자가 선택되지", "E007");
  3131. return;
  3132. }
  3133. //데이터가 선택여부와 예약시간 설정여부를 체크한다.
  3134. var chek = 0; //선택여부 체크
  3135. var kRow = 0; //예약시간 입력한 rowid
  3136. var rsrvtm;
  3137. for (var i = 0 ; i < ds_main_prcpdetl_prcpdetllist.rowcount; i++){
  3138. //선택내역 체크
  3139. chek = chek + Number(utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag")));
  3140. //선택한 처방의 예약시간 설정여부 체크
  3141. if( ds_main_prcpdetl_prcpdetllist.getColumn(i, "flag") == "1"){
  3142. kRow = kRow + "," + i;
  3143. rsrvtm = ds_main_prcpdetl_prcpdetllist.getColumn(i, "rsrvtm");
  3144. if(rsrvtm == "000000"){
  3145. sysf_messageBox("예약시간을", "C002");
  3146. return;
  3147. }
  3148. }
  3149. }
  3150. if(chek==0){
  3151. sysf_messageBox("하나 이상의 무균, 항암을", "C002");
  3152. return;
  3153. }
  3154. //선택한 처방내역중 항암선택여부 확인
  3155. var kRows = utlf_transNullToEmpty(kRow).split(",");//예약시간 입력한 row 정보
  3156. var kchek = 0; //항암선택여부
  3157. var prcpclscd; //항암종류
  3158. for(var i=1; i < kRows.length; i++){ //예약시간 row정보를 돌면서 항암이 선택되었는지를 체크한다.
  3159. prcpclscd = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "prcpclscd");
  3160. //20090316 dhkim 무균(A9)추가
  3161. if(prcpclscd=="A7" || prcpclscd =="A9"){//항암, 무균
  3162. kchek = kchek + 1;
  3163. }
  3164. }
  3165. if(kchek == 0){
  3166. sysf_messageBox("하나 이상의 무균, 항암을", "C002");
  3167. return;
  3168. }
  3169. //선택된 처방의 acting실시여부를 체크한다.
  3170. //선택된 처방의 특조전송여부를 체크한다.
  3171. var stat;
  3172. var drugnochk;
  3173. for(var i=1; i<kRows.length; i++){
  3174. stat = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "stat");
  3175. if (stat == "6"){//시행완료
  3176. sysf_messageBox("Acting을 실시한 곳은 특조전송을", "E001");
  3177. return;
  3178. }
  3179. drugnochk = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "drugno");
  3180. if (drugnochk != "0"){
  3181. sysf_messageBox("한번 특조전송을 실시한 곳은 특조전송을", "E001");
  3182. return;
  3183. }
  3184. }
  3185. var chkd = 0;
  3186. for(j=0; j<Row; j++){
  3187. var stat = ds_main_prcpdetl_prcpdetllist.getColumn(j, "stat");
  3188. var flag = ds_main_prcpdetl_prcpdetllist.getColumn(j, "flag");
  3189. var prcpclscdnow = ds_main_prcpdetl_prcpdetllist.getColumn(j, "prcpclscdnow");
  3190. //20090316 dhkim 무균(A9)추가
  3191. if ((flag == "0" || utlf_isNull(flag) ) && (prcpclscdnow == "A7" || prcpclscdnow == "A9") && utlf_isNull(stat) ){
  3192. chkd = chkd + 1;
  3193. }
  3194. }
  3195. if(chkd > 0){
  3196. if(sysf_messageBox("특조전송할 처방이 모두 선택되지 않았습니다. 전송을 실시 하겠습니까?", "Q") != 6) return;
  3197. }
  3198. var a = 0;
  3199. for (var i = 1; i < kRows.length; i++){
  3200. if(i == 1){
  3201. a = i;
  3202. }else{
  3203. a = i - 1;
  3204. }
  3205. if( ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[a], "actorddd") != ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd")){
  3206. var doublek = "dd";
  3207. var drugno = ds_main_prcpdetl_prcpdetllist.getColumn(i, "drugno");
  3208. }
  3209. }
  3210. var kRows = utlf_transNullToEmpty(kRow).split(",");
  3211. var chkactorddd = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  3212. if(kRows.length >= 3){
  3213. for (i=1; i<kRows.length; i++){
  3214. var chkactorddd1 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd");
  3215. var drugno = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "drugno");
  3216. if(drugno != "0"){
  3217. //messageBox("특조전송후 예약일자 변경을", "E001")
  3218. //return;
  3219. }
  3220. }
  3221. }
  3222. //선택한 처방의 예약일자와 동일한 예약일자의 처방정보 row를 임시저장
  3223. var lRow = 0;
  3224. var chkactorddd = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");//예약시간 입력한 처방중 첫 row의 예약일자
  3225. var chkactorddd1;
  3226. for (var i = 0; i < ds_main_prcpdetl_prcpdetllist.rowcount; i++){
  3227. chkactorddd1 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  3228. if(chkactorddd == chkactorddd1){
  3229. lRow = lRow + "," + i;//첫row의 예약일자와 전체그리드돌면서 예약일자가 같으면 row번호 임시저장.
  3230. }
  3231. }
  3232. //동일한 예약일자를 가진 처방정보 임시저장한
  3233. var lRows = utlf_transNullToEmpty(lRow).split(",");//선택한 첫 row와 같은 예약일자의 처방정보
  3234. var actordddchk, actordddchk1;
  3235. for (var i = 0; i < ds_main_prcpdetl_prcpdetllist.rowcount; i++){
  3236. actordddchk = ds_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  3237. actordddchk1 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(i, "actorddd");
  3238. if (actordddchk != actordddchk1){
  3239. if (kRow != lRow){
  3240. sysf_messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  3241. return;
  3242. }
  3243. }
  3244. }
  3245. var vewactorddd1 = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  3246. var vewactorddd4 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd");
  3247. for (i=1; i<kRows.length; i++){
  3248. var vewactorddd2 = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd");
  3249. var vewactorddd3 = ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[i], "actorddd");
  3250. if(vewactorddd1 != vewactorddd2 && vewactorddd4==vewactorddd3){
  3251. sysf_messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  3252. return;
  3253. }
  3254. }
  3255. /*
  3256. //----------------처방을 부분적으로 선택한 상태인지 체크 시작(예약시간지정 체크와 순서변경) [20081120 dhkim]----------------//
  3257. //전송할 항암중 예약일자가 동일한 항암처방의 선택하지 않은 항암이 있는지 확인한다.
  3258. var chkd = 0;
  3259. var flag, prcpclscdnow, actorddd, rsrvtm; //체크값
  3260. var _flag, _prcpclscdnow, _actorddd, _rsrvtm; //체크비교값
  3261. for(var j = 1; j < grd_prcpdetl.rows; j++){
  3262. stat = model.getValue(xPrcpDetlPath+"["+j+"]/stat"); //처방상태
  3263. flag = model.getValue(xPrcpDetlPath+"["+j+"]/flag"); //체크상태
  3264. prcpclscdnow = model.getValue(xPrcpDetlPath+"["+j+"]/prcpclscdnow");//처방종류
  3265. actorddd = model.getValue(xPrcpDetlPath+"["+j+"]/actorddd"); //예약일자 [20081119 dhkim]
  3266. rsrvtm = model.getValue(xPrcpDetlPath+"["+j+"]/rsrvtm"); //예약시간 [20081119 dhkim]
  3267. //항암처방체크해제상태의 항암처방
  3268. if ((flag == "0" || flag == "") && prcpclscdnow == "A7" && stat == ""){
  3269. //[20081119 dhkim] 예약일자까지 체크하는것으로 추가
  3270. for(var i = 1; i < grd_prcpdetl.rows; i++){
  3271. _stat = model.getValue(xPrcpDetlPath+"["+i+"]/stat"); //처방상태비교값
  3272. _flag = model.getValue(xPrcpDetlPath+"["+i+"]/flag"); //체크상태비교값
  3273. _prcpclscdnow = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscdnow"); //처방종류비교값
  3274. _actorddd = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd"); //예약일자비교값
  3275. _rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm"); //예약시간비교값
  3276. if(_flag == '1' && _prcpclscdnow == 'A7' && _stat == "" && actorddd == _actorddd && rsrvtm == _rsrvtm){
  3277. chkd = chkd + 1;
  3278. }
  3279. }
  3280. }
  3281. }
  3282. if(chkd > 0){
  3283. //예약일자가 동일한 처방에 대해서만 메시지를 뿌릴것.
  3284. if(messageBox("예약일시가 동일한 항암처방중 선택되지 않은 항암처방이 있습니다. 전송을 실시 하겠습니까?", "Q") != 6)
  3285. return;
  3286. }
  3287. //----------------처방을 부분적으로 선택한 상태인지 체크 시작(예약시간지정 체크와 순서변경) [20081120 dhkim]----------------//
  3288. */
  3289. if(doublek != "dd"){
  3290. var prcpexecdeptcd = ds_main_leftref.getColumn(0, "exec");
  3291. var flag = "Change";
  3292. // 20090220 dhkim 추가
  3293. var pid = ds_main_rghtref_rghtreflist.getColumn(0, "pid");
  3294. if( utlf_isNull(pid) ){
  3295. pid = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "pid"); // 조회조건에 등록번호 세팅 없을때 그리드에서 등록번호 가져감
  3296. }
  3297. ds_send.clearData();
  3298. ds_savechangeinfo_rcptinfo.clearData();
  3299. dsf_makeValue(ds_send,"pid" , "string" , pid);
  3300. dsf_makeValue(ds_send,"drugdd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd"));
  3301. dsf_makeValue(ds_send,"ordtm" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "ordtm"));
  3302. // 주사예약변경시 외래예약변경IF 파라미터 추가_20090709
  3303. dsf_makeValue(ds_send,"insukind" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "insukind"));
  3304. dsf_makeValue(ds_send,"suppkind" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "suppkind"));
  3305. dsf_makeValue(ds_send,"insucd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "insucd"));
  3306. dsf_makeValue(ds_send,"suppkindresn" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "suppkindresn"));
  3307. dsf_makeValue(ds_send,"ownbflag" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "ownbflag"));
  3308. dsf_makeValue(ds_send,"spclcd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "spclcd"));
  3309. dsf_makeValue(ds_send,"rareobstflag" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "rareobstflag"));
  3310. dsf_makeValue(ds_send,"acting" , "string" , flag);
  3311. dsf_makeValue(ds_send,"prcpexecdeptcd" , "string" , prcpexecdeptcd);
  3312. dsf_createDs("ds_send_prcpdetl");
  3313. ds_main_prcpdetl_prcpdetllist.filter("flag == '1'");
  3314. ds_main_prcpdetl_prcpdetllist.applyChange();
  3315. ds_send_prcpdetl.copyData(ds_main_prcpdetl_prcpdetllist,true);
  3316. ds_main_prcpdetl_prcpdetllist.filter("");
  3317. dsf_makeValue(ds_send_anticncr,"pid" , "string" , ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  3318. //예약일시 변경을 위한 변경내용저장처리
  3319. var oParam = {};
  3320. oParam.id = "TXMNI02031";
  3321. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  3322. oParam.method = "reqExePrcpChangeSave";
  3323. oParam.inds = "refCond=ds_send_prcpdetl acting=ds_send";
  3324. oParam.outds = "ds_savechangeinfo_rcptinfo=rcptinfo";
  3325. oParam.async = false;
  3326. oParam.callback = "cf_TXMNI02031";
  3327. tranf_submit(oParam);
  3328. if(arErrorCode.pop("TXMNI02031") > -1){
  3329. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  3330. if(ds_savechangeinfo_rcptinfo.getColumn(0, "rcptYn") == 'N'){
  3331. alert(ds_savechangeinfo_rcptinfo.getColumn(0, "errMsg"));
  3332. return;//2010.02.17 dhkim
  3333. }
  3334. //특조전송처리
  3335. var oParam = {};
  3336. oParam.id = "TXMNI02203";
  3337. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  3338. oParam.method = "reqExeAnticncr";
  3339. oParam.inds = "refCond=ds_send_prcpdetl refConds=ds_send";
  3340. oParam.outds = "";
  3341. oParam.async = false;
  3342. oParam.callback = "cf_TXMNI02203";
  3343. tranf_submit(oParam);
  3344. if(arErrorCode.pop("TXMNI02203") > -1){
  3345. dsf_makeValue(ds_send,"pid" , "string" , ds_send_anticncr.getColumn(0, "pid"));
  3346. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  3347. fbiztrgtman("acting");
  3348. if(ds_main_rghtref_rghtreflist.getColumn(0, "pid") == ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "pid") ){
  3349. //업무대상리스트 다시 조회후 현재 Row의 위치에 선택 실시
  3350. ds_main_biztrgtman_biztrgtmanlist.rowposition = iRow;
  3351. //처방 상세내역
  3352. fBiztrgtClick("acting");
  3353. }else if ( !utlf_isNull(oRow) ){
  3354. ds_main_rghtlist_ordsperlist.rowposition = oRow;
  3355. fordsper();
  3356. }
  3357. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  3358. ds_hidden_main_biztrgtman_biztrgtmanlist.copyData(ds_main_biztrgtman_biztrgtmanlist);
  3359. ds_hidden_main_biztrgtman_statslist.copyData(ds_main_biztrgtman_statslist);
  3360. ds_hidden_main_biztrgtman_endyninfo.copyData(ds_main_biztrgtman_endyninfo);
  3361. ds_hidden_main_leftref.copyData(ds_main_leftref);
  3362. ds_hidden_main_rghtref_rghtreflist.copyData(ds_main_rghtref_rghtreflist);
  3363. ds_hidden_main_prcpdetl_prcpdetllist.copyData(ds_main_prcpdetl_prcpdetllist);
  3364. ds_hidden_main_rghtlist_ordsperlist.copyData(ds_main_rghtlist_ordsperlist);
  3365. ds_hidden_main_rghtlist_injsperlist.copyData(ds_main_rghtlist_injsperlist);
  3366. ds_hidden_main_rghtlist_snwinfolist.copyData(ds_main_rghtlist_snwinfolist);
  3367. ds_hidden_main_rghtlist_ordrsrvlist.copyData(ds_main_rghtlist_ordrsrvlist);
  3368. ds_hidden_main_rghtlist_testrsrvlist.copyData(ds_main_rghtlist_testrsrvlist);
  3369. ds_hidden_main_rghtlist_memolist.copyData(ds_main_rghtlist_memolist);
  3370. ds_hidden_main.copyData(ds_main);
  3371. ds_hidden_main_userpopupinfo.copyData(ds_main_userpopupinfo);
  3372. ds_hidden_main_patinfo_patinfolist.copyData(ds_main_patinfo_patinfolist);
  3373. ds_hidden_main_paminfo.copyData(ds_main_paminfo);
  3374. ds_hidden_main_cond_list.copyData(ds_main_cond_list);
  3375. sysf_messageBox("특조전송을", "I002");
  3376. }
  3377. }
  3378. }else{
  3379. var prcpexecdeptcd = ds_main_leftref.getColumn(0, "exec");
  3380. var flag = "Change";
  3381. // 20090220 dhkim 추가
  3382. var pid = ds_main_rghtref_rghtreflist.getColumn(0, "pid");
  3383. if( utlf_isNull(pid) ){
  3384. pid = ds_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "pid") // 조회조건에 등록번호 세팅 없을때 그리드에서 등록번호 가져감
  3385. }
  3386. ds_send.clearData();
  3387. ds_savechangeinfo_rcptinfo.clearData();
  3388. dsf_makeValue(ds_send,"pid" , "string" , pid);
  3389. dsf_makeValue(ds_send,"drugdd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "actorddd"));
  3390. dsf_makeValue(ds_send,"ordtm" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "ordtm"));
  3391. dsf_makeValue(ds_send,"acting" , "string" , flag);
  3392. dsf_makeValue(ds_send,"prcpexecdeptcd" , "string" , prcpexecdeptcd);
  3393. dsf_createDs("ds_send_prcpdetl");
  3394. ds_main_prcpdetl_prcpdetllist.filter("flag == '1'");
  3395. ds_main_prcpdetl_prcpdetllist.applyChange();
  3396. ds_send_prcpdetl.copyData(ds_main_prcpdetl_prcpdetllist,true);
  3397. ds_main_prcpdetl_prcpdetllist.filter("");
  3398. dsf_makeValue(ds_send_anticncr,"pid" , "string" , ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  3399. // 주사예약변경시 외래예약변경IF 파라미터 추가_2010.02.17 dhkim
  3400. dsf_makeValue(ds_send,"insukind" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "insukind"));
  3401. dsf_makeValue(ds_send,"suppkind" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "suppkind"));
  3402. dsf_makeValue(ds_send,"insucd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "insucd"));
  3403. dsf_makeValue(ds_send,"suppkindresn" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "suppkindresn"));
  3404. dsf_makeValue(ds_send,"ownbflag" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "ownbflag"));
  3405. dsf_makeValue(ds_send,"spclcd" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "spclcd"));
  3406. dsf_makeValue(ds_send,"rareobstflag" , "string" , ds_hidden_main_prcpdetl_prcpdetllist.getColumn(kRows[1], "rareobstflag"));
  3407. //예약일시 변경을 위한 변경내용저장처리
  3408. var oParam = {};
  3409. oParam.id = "TXMNI02031";
  3410. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  3411. oParam.method = "reqExePrcpChangeSave";
  3412. oParam.inds = "refCond=ds_send_prcpdetl acting=ds_send";
  3413. oParam.outds = "ds_savechangeinfo_rcptinfo=rcptinfo";
  3414. oParam.async = false;
  3415. oParam.callback = "cf_TXMNI02031";
  3416. tranf_submit(oParam);
  3417. if(arErrorCode.pop("TXMNI02031") > -1){
  3418. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  3419. if(ds_savechangeinfo_rcptinfo.getColumn(0, "rcptYn") == 'N'){
  3420. alert(ds_savechangeinfo_rcptinfo.getColumn(0, "errMsg"));
  3421. return;//2010.02.17 dhkim
  3422. }
  3423. //특조전송처리
  3424. var oParam = {};
  3425. oParam.id = "TXMNI02203";
  3426. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  3427. oParam.method = "reqExeAnticncr";
  3428. oParam.inds = "refCond=ds_send_prcpdetl refConds=ds_send";
  3429. oParam.outds = "";
  3430. oParam.async = false;
  3431. oParam.callback = "cf_TXMNI02203";
  3432. tranf_submit(oParam);
  3433. if(arErrorCode.pop("TXMNI02203") > -1){
  3434. dsf_makeValue(ds_send,"pid" , "string" , ds_send_anticncr.getColumn(0, "pid"));
  3435. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  3436. fbiztrgtman("acting");
  3437. if(ds_main_rghtref_rghtreflist.getColumn(0, "pid") == ds_main_biztrgtman_biztrgtmanlist.getColumn(iRow, "pid")){
  3438. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  3439. ds_main_biztrgtman_biztrgtmanlist.rowposition = iRow;
  3440. //처방 상세내역
  3441. fBiztrgtClick("acting");
  3442. }else if ( !utlf_isNull(oRow) ){
  3443. ds_main_rghtlist_ordsperlist.rowposition = oRow;
  3444. fordsper();
  3445. }
  3446. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  3447. ds_hidden_main_biztrgtman_biztrgtmanlist.copyData(ds_main_biztrgtman_biztrgtmanlist);
  3448. ds_hidden_main_biztrgtman_statslist.copyData(ds_main_biztrgtman_statslist);
  3449. ds_hidden_main_biztrgtman_endyninfo.copyData(ds_main_biztrgtman_endyninfo);
  3450. ds_hidden_main_leftref.copyData(ds_main_leftref);
  3451. ds_hidden_main_rghtref_rghtreflist.copyData(ds_main_rghtref_rghtreflist);
  3452. ds_hidden_main_prcpdetl_prcpdetllist.copyData(ds_main_prcpdetl_prcpdetllist);
  3453. ds_hidden_main_rghtlist_ordsperlist.copyData(ds_main_rghtlist_ordsperlist);
  3454. ds_hidden_main_rghtlist_injsperlist.copyData(ds_main_rghtlist_injsperlist);
  3455. ds_hidden_main_rghtlist_snwinfolist.copyData(ds_main_rghtlist_snwinfolist);
  3456. ds_hidden_main_rghtlist_ordrsrvlist.copyData(ds_main_rghtlist_ordrsrvlist);
  3457. ds_hidden_main_rghtlist_testrsrvlist.copyData(ds_main_rghtlist_testrsrvlist);
  3458. ds_hidden_main_rghtlist_memolist.copyData(ds_main_rghtlist_memolist);
  3459. ds_hidden_main.copyData(ds_main);
  3460. ds_hidden_main_userpopupinfo.copyData(ds_main_userpopupinfo);
  3461. ds_hidden_main_patinfo_patinfolist.copyData(ds_main_patinfo_patinfolist);
  3462. ds_hidden_main_paminfo.copyData(ds_main_paminfo);
  3463. ds_hidden_main_cond_list.copyData(ds_main_cond_list);
  3464. sysf_messageBox("특조전송을", "I002");
  3465. }
  3466. }
  3467. }
  3468. }
  3469. /**
  3470. * @ver : 20081217
  3471. * @by : dhkim
  3472. * @---------------------------------------------------
  3473. * @desc : 처방전출력
  3474. * @---------------------------------------------------
  3475. */
  3476. function fPrcpRexpert(){
  3477. var mpsacting = ds_main.getColumn(0, "mpsacting"); // 처방전 + acting
  3478. //처방전 출력전 valid체크
  3479. if(!fIsPrintValid()){
  3480. return ;
  3481. }
  3482. //처방전출력 미리보기창 open
  3483. fPrintPreview();
  3484. if(mpsacting == "1"){
  3485. fPrcpActing("Y");//acting실행
  3486. }else{
  3487. //주사실출력시 엑팅 실시 안하고 출력 여부 저장실시 상태값 update
  3488. ds_send.clearData();
  3489. dsf_makeValue(ds_send,"pid", "string",ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  3490. dsf_createDs("ds_send_prcpdetl");
  3491. ds_main_prcpdetl_prcpdetllist.filter("flag == '1'");
  3492. ds_main_prcpdetl_prcpdetllist.applyChange();
  3493. ds_send_prcpdetl.copyData(ds_main_prcpdetl_prcpdetllist,true);
  3494. ds_main_prcpdetl_prcpdetllist.filter("");
  3495. var oParam = {};
  3496. oParam.id = "TXMNI02025";
  3497. oParam.service = "injspecialroomapp.OutInjSpecialRoomPatMngt";
  3498. oParam.method = "reqExePrint";
  3499. oParam.inds = "refCond=ds_send_prcpdetl print=ds_send";
  3500. oParam.outds = "";
  3501. oParam.async = false;
  3502. oParam.callback = "cf_TXMNI02025";
  3503. tranf_submit(oParam);
  3504. if(arErrorCode.pop("TXMNI02025") > -1){
  3505. //처방상세내역조회
  3506. fSearchPrcpDetail();
  3507. }
  3508. }
  3509. }
  3510. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  3511. // 20081217 새로 수정한 acting, acting취소, 변경내용저장 을 호출하기 위한 펑션 종료
  3512. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  3513. /**
  3514. * 20090401 dhkim
  3515. * 화면상단정보 설정
  3516. **/
  3517. function fSetTopInfo(){
  3518. //화면상단 정보설정
  3519. var iRow = ds_main_biztrgtman_biztrgtmanlist.rowposition;
  3520. //20090227 dhkim ordtype제거 무조건 'O'로 넘김
  3521. //var ordtype = model.getValue(xBizTrgtManListPath+"["+iRow+"]/ordtype");
  3522. var ordtype = 'O';
  3523. //20091029 dhkim
  3524. //상단이 현재선택한 row의 정보로 올라가도록 수정함
  3525. var pid = utlf_transNullToEmpty(ds_main_rghtref_rghtreflist.getColumn(0, "pid"));
  3526. var orddd = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "actorddd"));
  3527. var cretno = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "cretno"));
  3528. var instcd = utlf_transNullToEmpty(sysf_getUserInfo("dutplceinstcd"));
  3529. //20090227 dhkim orgorddd 제거
  3530. //var orgorddd = model.getValue(xBizTrgtManListPath+"["+iRow+"]/orgorddd");
  3531. //var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + orgorddd;
  3532. var param = ordtype + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + '' + "▦" + '';
  3533. //20090212 dhkim 추가
  3534. //상단정보세팅전 서울성모 전환환자인지 조회
  3535. ds_send.clearData();
  3536. dsf_makeValue(ds_send,"pid", "string", pid);
  3537. var oParam = {};
  3538. oParam.id = "TRMNI02030";
  3539. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  3540. oParam.method = "reqGetPidFlagInfo";
  3541. oParam.inds = "req=ds_send";
  3542. oParam.outds = "ds_bmt_bmtinfo=bmtinfo";
  3543. oParam.async = false;
  3544. oParam.callback = "cf_TRMNI02030";
  3545. tranf_submit(oParam);
  3546. if(arErrorCode.pop("TRMNI02030") <= -1){
  3547. sysf_messageBox('상단정보세팅중 전환환자 여부조회를 실패하였습니다.', 'E999');
  3548. }else{
  3549. var pidflag = ds_bmt_bmtinfo.getColumn(0, "pidflag");
  3550. var hngnm = ds_bmt_bmtinfo.getColumn(0, "hngnm");
  3551. if( !utlf_isNull(hngnm) ){
  3552. hngnm = '"' + hngnm + '"님은 ';
  3553. }
  3554. if(pidflag == 'Y'){
  3555. sysf_messageBox(hngnm + '여의도성모에서 서울성모 전환 BMT환자입니다.', 'I999');
  3556. }
  3557. }
  3558. // alert(param);
  3559. //상단정보 세팅
  3560. appf_initPatientInfo(param);
  3561. //frmf_setParameter("condparam", param);
  3562. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  3563. }
  3564. /**
  3565. * @date : 20090724
  3566. * @author : dhkim
  3567. * @desc : 예약변경하기전 진단이 있는지 체크하여 이전 진단이 존재하지 않으면 수진선택하도록 팝업호출
  3568. */
  3569. function fPopDiag(curRow){
  3570. /*
  3571. [fFindDiagInfo() 호출정보]
  3572. 진료일 정보를 이용하여 이전 진단명이 존재 외래수진이력 조회 진단명이 없을 경우
  3573. Parameter 값을 이용하여 수진이력 팝업 호출 및 return RESULT
  3574. @param :
  3575. ex) setParameter("preDiagCond", "Etc▦4189074▦20090715▦▦▦/root");
  3576. - 공통
  3577. , jobgubn : 작업구분 : HomeCare-> 가정간호, InjRoom -> 인공신장, Etc : 기타(외래,주사실,진료지원)
  3578. , pid : 등록번호 -> 필수사항
  3579. , orddd : 진료일자 -> 필수사항, 해당 진료일자 이전의 수진이력을 조회함.
  3580. , orddeptcd : 진료과 -> 진료과가 없을 경우 모든 진료과 정보 조회
  3581. , orddrid : 진료의 -> 진료의가 없을 경우 모든 진료의 정보 조회
  3582. , resultXpath : 조회결과가 설정될 hidden Node Xpath -> ex) /root 로 넘어올 경우
  3583. -> 결과는 /root/hidden/ordinfo 밑의 노드에 생성 됨.
  3584. @return : setParameter()로 전달하므로 getParameter("preDiagResult") 로 받아야 함.
  3585. ex) setParameter("preDiagResult", sPid+"▦"+sOrddd+"▦"+sIndd+"▦"+sCretno);
  3586. 설명 : 등록번호▦진료일자▦입원일자▦cretno
  3587. */
  3588. //파라미터 세팅후 호출
  3589. var pid = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(curRow, "pid"));
  3590. var orddd = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(curRow, "oprc_orddd"));
  3591. var orddeptcd = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(curRow, "oprc_orddeptcd"));
  3592. var orddrid = utlf_transNullToEmpty(ds_main_prcpdetl_prcpdetllist.getColumn(curRow, "oprc_orddrid"));
  3593. var retnPath = "ds";
  3594. var setDiagParam = "Etc▦" + pid + "▦" + orddd + "▦" + orddeptcd + "▦" + orddrid + "▦" + retnPath;
  3595. frmf_setParameter("preDiagCond", setDiagParam);
  3596. fFindDiagInfo();//careCom.js
  3597. //팝업호출 후 리턴값을 진단복사를 위한 수진키에 새로 세팅 (리턴값이 있을 경우만 세팅함)
  3598. var getDiagParam = utlf_transNullToEmpty(frmf_getParameter("preDiagResult")).split("▦");
  3599. var retPid = getDiagParam[0];
  3600. var retOrddd = getDiagParam[1];
  3601. var retIndd = getDiagParam[2];
  3602. var retCretno = getDiagParam[3];
  3603. var retGenrflagcd = getDiagParam[4];
  3604. if( utlf_isNull(retPid) ){
  3605. return;//리턴값이 없으면 빠져나옴.
  3606. }
  3607. //그리드에 리턴값 세팅
  3608. ds_main_prcpdetl_prcpdetllist.setColumn(curRow, "pop_cretno", retCretno);
  3609. ds_main_prcpdetl_prcpdetllist.setColumn(curRow, "pop_genrflagcd", retGenrflagcd);
  3610. if(retGenrflagcd != 'O'){
  3611. ds_main_prcpdetl_prcpdetllist.setColumn(curRow, "pop_orddd", retIndd);
  3612. }else{
  3613. ds_main_prcpdetl_prcpdetllist.setColumn(curRow, "pop_orddd", retOrddd);
  3614. }
  3615. }
  3616. /**
  3617. * 2010.02.25 dhkim
  3618. * 환자라벨출력
  3619. * rghtflag - false: 왼쪽환자그리드리스트클릭
  3620. * true : 오른쪽환자조회화면버튼클릭
  3621. */
  3622. //20100225 dhkim 변경요청사항(요청번호:9796, task:39728)
  3623. function fPrtLabel(rghtflag){
  3624. ds_temp_prtlabel.clearData();
  3625. if(rghtflag == true){
  3626. dsf_makeValue(ds_temp_prtlabel,"rghtflag","string", "T");
  3627. }else{
  3628. dsf_makeValue(ds_temp_prtlabel,"rghtflag","string", "F");
  3629. }
  3630. fOpenLabelPrint_SMMNI02020(rghtflag);
  3631. }
  3632. //2010.02.25 dhkim 추가
  3633. //환자라벨출력
  3634. // rghtflag - false: 왼쪽환자그리드리스트클릭
  3635. // true : 오른쪽환자조회화면버튼클릭
  3636. //20100225 dhkim 변경요청사항(요청번호:9796, task:39728)
  3637. function fOpenLabelPrint_SMMNI02020(rghtflag){
  3638. var left, top, height, width;
  3639. if(rghtflag==true){//라벨출력그룹위치 fix
  3640. left = 650;
  3641. top = 50;
  3642. height = 50;
  3643. width = 194;
  3644. }else{//그리드 포커스에 맞게 이동
  3645. left = system.screenToClientX(group3.grd_biztrgtman,lv_screenx);
  3646. top = system.screenToClientY(group3.grd_biztrgtman,lv_screeny);
  3647. height = 50;
  3648. width = 194;
  3649. }
  3650. ds_main.updatecontrol = false;
  3651. ds_main.deleteColumn("cmpatprtcnt");
  3652. ds_main.updatecontrol = true;
  3653. dsf_makeValue(ds_main,"cmpatprtcnt", "string", "1");
  3654. group3.grp_prtlabel.ipt_cmpatprtcnt.setFocus();
  3655. group3.grp_prtlabel.position.left = left;
  3656. group3.grp_prtlabel.position.top = top;
  3657. group3.grp_prtlabel.position.height = height;
  3658. group3.grp_prtlabel.position.width = width;
  3659. group3.grp_prtlabel.visible = true;
  3660. }
  3661. //2010.02.25 dhkim 추가
  3662. //라벨출력실행
  3663. //20100225 dhkim 변경요청사항(요청번호:9796, task:39728)
  3664. function fPrintLabel_SMMNI02020(){
  3665. var rghtflag = ds_temp_prtlabel.getColumn(0,"rghtflag");
  3666. var pid, patnm, rgstno, sexage;
  3667. var roomcd = "";//외래라 roomcd없음
  3668. var prtcnt = ds_main.getColumn(0,"cmpatprtcnt");
  3669. orddd = utlf_getCurrentDate();//현재일자
  3670. if(rghtflag=="T"){
  3671. pid = ds_main_rghtref_rghtreflist.getColumn(0,"pid");
  3672. patnm = ds_main_rghtref_rghtreflist.getColumn(0,"hngnm");
  3673. sexage = ds_main_rghtref_rghtreflist.getColumn(0,"gndrage");
  3674. rgstno = ds_main_rghtref_rghtreflist.getColumn(0,"rrgstno");
  3675. }else if(rghtflag=="F"){
  3676. pid = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition,"pid");
  3677. patnm = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition,"hngnm");
  3678. sexage = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition,"gndrage");
  3679. rgstno = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition,"rrgstno");
  3680. }
  3681. if(utlf_isNull(pid)){
  3682. sysf_messageBox("등록번호를 입력하세요.", "E999");
  3683. return false;
  3684. }
  3685. // 환자 정보 라벨 출력
  3686. if(prtcnt > 0){
  3687. //1. 바코드 라벨 설정값 조회
  3688. var scrnid = "SMMNR00600";
  3689. ds_barcdprntsetup.clearData();
  3690. dsf_createDsRow("ds_send",
  3691. [{col:"scrnid", val:scrnid}
  3692. ]);
  3693. var oParam = {};
  3694. oParam.id = "TRLLC90101";
  3695. oParam.service = "diagtestapplib.LisCommon";
  3696. oParam.method = "reqGetSetUpInfo";
  3697. oParam.inds = "scrnid=ds_send";
  3698. oParam.outds = "ds_barcdprntsetup=getSetUpInfo";
  3699. oParam.async = false;
  3700. tranf_submit(oParam); // 20090617 SATO 관련 추가
  3701. lf_convertXmlToDs(ds_barcdprntsetup.getColumn(0,"prntsetupinfo"));
  3702. //2. 바코드 라벨 환경설정
  3703. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3704. lzzfMakeBrcdPrntObjHanDo("CommAX");
  3705. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  3706. fPrtCarePatNameLabel(barcdRef, pid, roomcd, patnm, sexage, rgstno, orddd, "",prtcnt, portOpenTF,"","");
  3707. //fPrtCarePatNameLabel(barcdRef, pid+" "+roomcd, patnm, sexage, rgstno, orddd, prtcnt, portOpenTF);
  3708. }
  3709. group3.grp_prtlabel.visible = false;
  3710. ds_temp_prtlabel.updatecontrol = false;
  3711. ds_temp_prtlabel.deleteColumn("rghtflag");
  3712. ds_temp_prtlabel.updatecontrol = true;
  3713. }
  3714. //2010.02.25 dhkim 추가
  3715. function fCancelPrint_SMMNI02020(){
  3716. ds_main.updatecontrol = false;
  3717. ds_main.deleteColumn("cmpatprtcnt");
  3718. ds_main.updatecontrol = true;
  3719. dsf_makeValue(ds_main, "cmpatprtcnt", "string", "1");
  3720. group3.grp_prtlabel.visible = false;
  3721. }
  3722. function group3_grd_ordsper_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  3723. {
  3724. if( e.col > -1 && e.row > -1 ){
  3725. //
  3726. //처방상세조회시 조회조건 setting
  3727. var drugdd = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "actorddd")); //진료내역의 처방일
  3728. var pid = utlf_transNullToEmpty(ds_main_rghtref_rghtreflist.getColumn(0, "pid")); //등록번호(오른쪽검색)
  3729. var orddd = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "orddd")); //진료일자
  3730. var cretno = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "cretno")); //생성번호
  3731. var orddeptcd = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "orddeptcd")); //진료과
  3732. var orddrid = utlf_transNullToEmpty(ds_main_rghtlist_ordsperlist.getColumn(ds_main_rghtlist_ordsperlist.rowposition, "orddrid")); //진료의사아이디
  3733. //20090401 dhkim 상단정보설정
  3734. fSetTopInfo();
  3735. //더블클릭이벤트가 어떤 그리드에서 발생했는지 set
  3736. fSetPrclDetlCond(pid, drugdd, 'grd_ordsper', orddd, cretno, orddeptcd, orddrid);
  3737. //처방상세내역 조회, 오른쪽데이터 조회
  3738. fordsper();
  3739. }
  3740. }
  3741. function group3_grd_biztrgtman_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  3742. {
  3743. if( e.row > -1 && e.col > -1 ){
  3744. //처방상세조회시 조회조건 setting
  3745. var pid = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "pid");
  3746. var drugdd = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "orddd");
  3747. var orddd = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "orddd");
  3748. var cretno = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "cretno");
  3749. var orddeptcd = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "orddeptcd");
  3750. var orddrid = ds_main_biztrgtman_biztrgtmanlist.getColumn(ds_main_biztrgtman_biztrgtmanlist.rowposition, "orddrid");
  3751. //더블클릭이벤트가 어떤 그리드에서 발생했는지 set
  3752. fSetPrclDetlCond(pid, drugdd, 'grd_biztrgtman', orddd, cretno, orddeptcd, orddrid);
  3753. //상단정보설정, 통계조회, 처방상세내역조회, 오른쪽 환자정보 설정후 조회
  3754. fBiztrgtClick();
  3755. }
  3756. }
  3757. function group3_grp_prtlabel_ipt_cmpatprtcnt_onkeydown(obj:MaskEdit, e:KeyEventInfo)
  3758. {
  3759. if(e.keycode == "13") {
  3760. obj.updateToDataset();
  3761. frmf_inputEnterKey("group3.grp_prtlabel.btn_prtlabel", "onclick", new ClickEventInfo);
  3762. }
  3763. }
  3764. function ds_main_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  3765. {
  3766. if( e.columnid == "mpsacting" ){
  3767. obj.setColumn(0, "mpsacting", (e.newvalue == "Y" || e.newvalue == 1) ? "1" : "");
  3768. }
  3769. if( e.columnid == "addoprc" ){
  3770. obj.setColumn(0, "addoprc", (e.newvalue == "Y" || e.newvalue == 1) ? "1" : "");
  3771. }
  3772. }
  3773. function group3_grd_biztrgtman_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  3774. {
  3775. if(e.row < 0 || e.col < 0) return;
  3776. grdf_setSelectedCell(obj, e);
  3777. }
  3778. function group3_grd_biztrgtman_onrbuttonup(obj:Grid, e:GridMouseEventInfo)
  3779. {
  3780. if(e.row < 0 || e.col < 0) return;
  3781. grdf_setSelectedCell(obj, e);
  3782. pmnmenu1.trackPopup(e.screenX,e.screenY);
  3783. }
  3784. function pmnmenu1_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  3785. {
  3786. eval(e.id + "()");
  3787. }
  3788. var lastrow1 = -1;
  3789. var lastcol1 = -1;
  3790. var bDrop1 = false;
  3791. function group3_grd_prcpdetl_oncellclick(obj:Grid, e:GridClickEventInfo)
  3792. {
  3793. lastrow1 = -1;
  3794. lastcol1 = -1;
  3795. grdf_controlGridCalendar(obj, e);
  3796. }
  3797. function group3_grd_prcpdetl_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  3798. {
  3799. obj.showEditor(true);
  3800. }
  3801. function group3_grd_prcpdetl_oncloseup(obj:Grid, e:GridEditEventInfo)
  3802. {
  3803. var dsGridBind = eval(obj.binddataset);
  3804. var preVal = utlf_transNullToEmpty(dsGridBind.getColumn(e.row, e.col));
  3805. var posVal = utlf_transNullToEmpty(e.value);
  3806. if( bDrop1 == true && (!utlf_isNull(posVal) || preVal != posVal) ){
  3807. obj.showEditor(false);
  3808. }else if(e.col == 15){
  3809. obj.showEditor(false);
  3810. }
  3811. bDrop1 = false;
  3812. lastrow1 = e.row;
  3813. lastcol1 = e.col;
  3814. }
  3815. function group3_grd_prcpdetl_onlbuttonup(obj:Grid, e:GridMouseEventInfo)
  3816. {
  3817. grdf_setSelectedCell(obj, e);
  3818. var dsGridBind = eval(obj.binddataset);
  3819. // Combo DropDown Click 처리
  3820. obj.autoenter = "key";
  3821. if( e.fromreferenceobject.name == "dropbutton" ){
  3822. bDrop1 = true;
  3823. }
  3824. if( e.row > -1 && obj.getCellProperty("body", e.col, "edittype") == "combo" ){
  3825. // Combo 선택시 활성화 및 combodatacol 변경
  3826. if( grdf_getSelectedCols(obj).length == 0 && grdf_getSelectedRows(obj).length == 0 && obj.getEditText() == undefined ){
  3827. obj.showEditor(true);
  3828. }else{
  3829. if(!obj.isDropdownCombo() && (lastrow1 != e.row || lastcol1 != e.col)) {
  3830. obj.setCellPos(e.col);
  3831. dsGridBind.rowposition = e.row;
  3832. obj.showEditor(true);
  3833. if(bDrop1) {
  3834. obj.dropdownCombo();
  3835. }
  3836. }
  3837. }
  3838. }else{
  3839. obj.autoenter = "key";
  3840. }
  3841. }
  3842. ]]></Script>