SMMNP01800.js 209 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220
  1. /* ---------------------------------------------------------------------
  2. 수술마취간호처방 (SMMNP01800.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var ExCount = 0;
  9. var wJobKindCd = "";
  10. var sSIGNDATA_PATH = "/root/main/signdata/signprcplist"; //인증데이터
  11. // var wJobKindCd = getUserInfo("dutplceinstcd");
  12. // userInfoKeyStr= userid|usernm|
  13. // posinstcd|posinstnm|
  14. // posdeptcd|posdeptnm|
  15. // dutplceinstcd|dutplceinstnm|
  16. // dutplcecd|dutplcenm|
  17. // jobkindcd|jobkindnm|
  18. // jobposcd|jobposnm|
  19. // jobrespcd|jobrespnm|
  20. // prfshipflagcd|prfshipflagnm|
  21. // licnsno|specordyn|deptabbr|orddeptflag|wardflag|systemcd|systemnm|systeminstcd|systeminstnm|logindt|kmiip|kmiport|usergrp|ipaddr|dutinstcd|dutinstnm|dutunitcd|dutunitnm|mpphonno";
  22. //
  23. // Global Main Path
  24. var gPathName = "/root/main/MnphcagoLists" + " " // 0 Cart물품
  25. + "/root/main/MnpmcartList" + " " // 1 CartCode
  26. + "/root/main/MmbhppdsLists" + " " // 2 처치처방
  27. + "/root/init/WorkData/DelMnphcagoListss" + " " // 3 삭제Cart물품
  28. + "/root/init/WorkData/codelists" + " " // 4 Save Cart Master
  29. + "/root/init/WorkData/MnphcagoLists" + " " // 5 Save 물품 내역
  30. + "/root/main/MmohoprsLists/mmohoprslist" + " " // 6 예약정보 Path
  31. + "/root/main/operation/list" + " " // 7 수술예약 상단정보
  32. + "/root/main/CartOrdData" ; // 8 Cart Order Display Data Instance Path
  33. var gPathNode = gPathName.split(" ");
  34. // Cart Order Display Data Instance Path
  35. var tCartPath = "ListSupplies" + " " // 2 공급물품
  36. + "ListDrug" + " " // 3 약재료
  37. + "ListInstrument" + " " // 4 기구
  38. + "ListOpsupply" + " " // 6 수술소모품
  39. + "ListDiposit" ; // 7 가납물품
  40. var tPathCart = tCartPath.split(" "); //
  41. // Cart Gride Name
  42. //2009-03-05 ycd 삭제처리
  43. /*
  44. var tCartName = "sutures" + " " //
  45. + "sutures" + " " // 봉합사
  46. + "supplies" + " " // 공급물품
  47. + "drug" + " " // 약재료
  48. + "instrument" + " " // 기구
  49. + "curecode" + " " // 처치
  50. + "opsupply" + " " // 수술소모품
  51. + "diposit" ;
  52. */
  53. var tCartName = "supplies" + " " // 공급물품 1
  54. + "drug" + " " // 약재료 2
  55. + "instrument" + " " // 기구 3
  56. + "opsupply" + " " // 수술소모품 4
  57. + "diposit" ; // 가납물품 5
  58. var tNameCart = tCartName.split(" "); //
  59. // Grid Control Data
  60. var tColWidth = "18*80*195*80*80*70*50*50*40*56#18*79*560*60";
  61. var tWidth = tColWidth.split("#");
  62. var rColWidth = "18*0*212*0*0*0*50*50*0*0#18*0*262*50";
  63. var rWidth = rColWidth.split("#");
  64. var SwFalg = 0;
  65. var LargeIdx = 0;
  66. var LargeGrd = 0;
  67. var CaptionNm = "Supplies*Sutures*Drug*처치처방";
  68. var sCaption = CaptionNm.split("*");
  69. var GridName = "grd_supplies*grd_drug*grd_instrument*grd_opsupply*grd_diposit";
  70. var sGridNm = GridName.split("*");
  71. // style="left:0px; top:25px; width:763px; height:570px;
  72. var lStyle = "6*19*754*526";
  73. var rStyleData = "006*019*375*304#" // Supplies style=left:006px; top:019px; width:375px; height:304px;
  74. + "390*019*370*304#" // Sutures style=left:390px; top:019px; width:370px; height:304px;
  75. + "006*355*375*182#" // Drug style=left:006px; top:355px; width:375px; height:182px;
  76. + "390*355*370*182#" ; // Curecode style=left:390px; top:355px; width:370px; height:182px;
  77. var rStyle = rStyleData.split("#");
  78. var GoodCopy = "/root/init/WorkData/cartlist";
  79. var sAlertMsgFlag = "S"; //최초 화면 open시 메시지 플래그
  80. var vOprsrvno = ""; // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  81. var vCartgubn = ""; // 02 Cart구분 (O:수술,A:마취)
  82. var vOrdseq = ""; // 03 처방순번
  83. var vInstcd = ""; // 04 병원기관코드(코드정의서 Z0007 참조)
  84. var vGoodcd = ""; // 05 물품코드
  85. var vAllsizespecid = ""; // 06 ALLSIZE규격ID
  86. var vGoodcls = ""; // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  87. var vGoodqty = ""; // 08 물품수량
  88. var vAddreductqty = ""; // 09 가감수량
  89. var vPayflagcd = ""; // 10 급여구분코드 (코드정의서 M0029 참조)
  90. var vOproomcd = ""; // 11 수술실코드
  91. var vPrcpdd = ""; // 12 처방일자
  92. var vPrcpno = ""; // 13 처방일자별 일련번호
  93. var vPrcphistno = ""; // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  94. var vPid = ""; // 15 등록번호
  95. var vSaveqty = ""; // 16 변경Check 수량 (물품수량 + 가감수량)
  96. var vOutqty = ""; // 17 변경할 수량 (물품수량 + 가감수량)
  97. var vGoodengnm = ""; // 18 물품(처방)명
  98. var vGoodspec = ""; // 19 규격명
  99. var vProdcmpynm = ""; // 20 제조사
  100. var vGoodmodel = ""; // 21 모델
  101. var vDeliveunit = ""; // 22 단위
  102. var vOproomnm = ""; // 23 수술실명
  103. var vOproomdeptcd = ""; // 24 수술실부서코드
  104. var vRecflag = ""; // 25 U:수정,I:입력구분
  105. var vDelcheck = ""; // 26 삭제 CHECK
  106. var vDeleteyn = ""; // 27 삭제 여부
  107. var gRvStat = "4"; // 회복실 처방상태
  108. var sLoginDeptcd = ""; //로그인 사용자 부서정보
  109. //2008-09-02 오전 10:36:02 taebum DSC 외래(입원정보 생성전)관련 Flag
  110. //2008-09-30 오전 12:08:27 DSC정보뿐 아니라 퇴원환자일 경우도 처리하는 파라미터
  111. var bDSCOFlag = false;
  112. var sOprsXpath = "/root/main/MmohoprsLists/mmohoprslist";
  113. // var gAnStat = "4"; // 회복실 처방상태
  114. // --------------------------------------------------
  115. // Grid 속성변경 처리하는 함수
  116. // --------------------------------------------------
  117. function fSetLargeGrid(pIdx, pGidx) {
  118. return;
  119. Cp_Hide.attribute("visibility") ="visible";
  120. Line_Hide.attribute("visibility") ="visible";
  121. cpd_supplies.attribute("visibility") ="hidden" ;
  122. cpd_sutures.attribute("visibility") ="hidden" ;
  123. Cp_Hide.text = sCaption[pGidx];
  124. for (i = 0; i < sGridNm.length; i++) {
  125. if (i == pGidx) {
  126. eval(sGridNm[i]).attribute("visibility")="visible";
  127. } else {
  128. eval(sGridNm[i]).attribute("visibility")="hidden" ;
  129. }
  130. }
  131. fSetAttribute(eval(sGridNm[pGidx]), lStyle, tWidth[pIdx]);
  132. LargeIdx = pIdx;
  133. LargeGrd = pGidx;
  134. }
  135. // --------------------------------------------------
  136. // Grid 속성변경 처리하는 함수
  137. // --------------------------------------------------
  138. function fSetSmallGrid() {
  139. return;
  140. Cp_Hide.attribute("visibility") = "hidden" ;
  141. Line_Hide.attribute("visibility") = "hidden" ;
  142. cpd_supplies.attribute("visibility") = "visible";
  143. cpd_sutures.attribute("visibility") = "visible";
  144. fSetAttribute(eval(sGridNm[LargeGrd]), rStyle[LargeGrd], rWidth[LargeIdx]);
  145. for (i = 0; i < sGridNm.length; i++) {
  146. eval(sGridNm[i]).attribute("visibility")="visible";
  147. }
  148. }
  149. // --------------------------------------------------
  150. // Grid 속성변경 처리하는 함수
  151. // --------------------------------------------------
  152. function fSetAttribute(pGrid, pSytle, pWidth) {
  153. var sStyle = pSytle.split("*");
  154. pGrid.attribute("left" ) = sStyle[0];
  155. pGrid.attribute("top" ) = sStyle[1];
  156. pGrid.attribute("width" ) = sStyle[2];
  157. pGrid.attribute("height") = sStyle[3];
  158. var cIdx = 1;
  159. var sWidth = pWidth.split("*");
  160. for (i = 0; i < sWidth.length; i++) {
  161. pGrid.colwidth(cIdx) = sWidth[i];
  162. cIdx++;
  163. }
  164. }
  165. // --------------------------------------------------
  166. // Switch 속성변경 처리하는 함수
  167. // --------------------------------------------------
  168. function fSetSwitch() {
  169. if (SwFalg == 0) {
  170. SwFalg = 1;
  171. sw_ord.attribute("width" ) = "210";
  172. grp_ord.attribute("left" ) = "214"; //424 - 210
  173. grp_ord.attribute("width" ) = "976"; //766 + 210
  174. grp_search.attribute("left" ) = "215";
  175. grp_search.attribute("width" ) = "980";
  176. shp_round.attribute("width" ) = "980";
  177. // 2009-03-04 ycd 삭제처리
  178. //grp_mgood.attribute("left" ) = "212";
  179. //grp_mgood.attribute("width" ) = "982";
  180. // grp_dgood.attribute("left" ) = "214";
  181. // grp_dgood.attribute("width" ) = "973";
  182. } else {
  183. SwFalg = 0;
  184. sw_ord.attribute("width" ) = "420";
  185. grp_ord.attribute("left" ) = "424";
  186. grp_ord.attribute("width" ) = "766";
  187. grp_search.attribute("left" ) = "425";
  188. grp_search.attribute("width" ) = "770";
  189. shp_round.attribute("width" ) = "770";
  190. // 2009-03-04 ycd 삭제처리
  191. //grp_mgood.attribute("left" ) = "422";
  192. //grp_mgood.attribute("width" ) = "772";
  193. // grp_dgood.attribute("left" ) = "424";
  194. // grp_dgood.attribute("width" ) = "763";
  195. }
  196. }
  197. // --------------------------------------------------
  198. // 화면 Loading시 처리하는 함수
  199. // --------------------------------------------------
  200. function fInitScreen() {
  201. //삭제처방제외 기본(20151008) 이윤주 추가
  202. //model.makeValue("/root/main/cond/srchdelprcp","Y");
  203. model.makeValue("/root/send/reqdata/cdgrupid", "OP");
  204. submit("TRMND03901");
  205. addComboItem("rdo_grupcd", "전체", "", "above");
  206. model.makeValue("/root/send/reqdata/cdgrupid", "'T16'");
  207. model.makeValue("/root/send/reqdata/srchdd", getCurrentDate());
  208. submit("TRMNW00001");
  209. if(button8.selected == true){
  210. grp_cartonly.visible = true;
  211. }else{
  212. grp_cartonly.visible = false;
  213. }
  214. wJobKindCd = getUserInfo("jobkindcd");
  215. // Cart 복사
  216. //// grd_good.attribute("height") = "349"; //"552";
  217. //// grp_cartmain.attribute("height") = "705";
  218. //// // 처방 복사
  219. //// grp_stemain.attribute("height") = "705";
  220. //// grd_setcode.attribute("height") = "400"; //"552";
  221. // 물품찾기
  222. //// grp_main.attribute("height") = "705";
  223. //// grd_prcplist.attribute("height") = "517"; //"552";
  224. //// grd_goodlist.attribute("height") = "517"; //"552";
  225. //**공통코드 가져오기**//
  226. zbcfGetCodeList( new Array ( "M0029" // 급여구분에 대한 종류
  227. )
  228. , new Array ( "/root/init/M0029list" )
  229. );
  230. var node = getGlobalVariable("operation");
  231. setCSVToNode("/root/main/operation", node);
  232. var sPid = model.getValue("/root/main/operation/list/pid");
  233. ProgramCls = "P"; // C:CCR MAIN, P:간호처방
  234. AloneFlag = "N"; // 단독실행여부
  235. //// fInit1802(); // Cart정보 가져오기
  236. //// fInit1801(); // 약속처방
  237. //// fGoodInit(); // 물품찾기
  238. // ---Test 시 막고하는 부분 ----------------------
  239. if (sPid == "") {
  240. // var mainObj = getMainViewer();
  241. bbt_tSave.disabled = true; // 임시처방입력
  242. bbt_cSave.disabled = true; // 임시처방저장
  243. bbt_prcpconfirm.disabled = true; // 확정처방저장
  244. bbt_delete.disabled = true;
  245. btn_erreqsave.disabled = true;//응급청구저장
  246. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  247. var sOprsrvno = model.getAttribute("SuSulOrder_Oprsinfo_oprsrvno");
  248. var sInstcd = model.getAttribute("SuSulOrder_Oprsinfo_instcd" );
  249. var sOphistno = model.getAttribute("SuSulOrder_Oprsinfo_ophistno");
  250. var sOphistcd = model.getAttribute("SuSulOrder_Oprsinfo_ophistcd");
  251. model.setAttribute("SuSulOrder_Oprsinfo_oprsrvno" , "");
  252. model.setAttribute("SuSulOrder_Oprsinfo_instcd" , "");
  253. model.setAttribute("SuSulOrder_Oprsinfo_ophistno" , "");
  254. model.setAttribute("SuSulOrder_Oprsinfo_ophistcd" , "");
  255. if(sOprsrvno != null && sOprsrvno != "" && sOprsrvno != "undefined") {
  256. model.makeValue(gPathNode[7]+"/oprsrvno" , sOprsrvno);
  257. model.makeValue(gPathNode[7]+"/instcd" , sInstcd);
  258. model.makeValue(gPathNode[7]+"/ophistno" , sOphistno);
  259. model.makeValue(gPathNode[7]+"/ophistcd" , sOphistcd);
  260. bDSCOFlag = true;
  261. }else{
  262. messageBox("수술 환자를 ", "C002");
  263. window.close();
  264. // mainObj.javascript.navigate("SMMNP00100"); // 수술마취메인
  265. return;
  266. }
  267. }
  268. //2008-08-18 오전 10:55:28 taebum Login한 부서정보로 Cart 구분 정보 입력
  269. sLoginDeptcd = getUserInfo("dutplcecd");
  270. var sCartGubnCd = "";
  271. // 2009-03-25 ycd 부서 하드코딩 제어 부분(화면 권한 설정 정보 가져오기) EMR.MNWMCODE 테이블에서 관리 하기로함
  272. model.removenode("/root/send");
  273. model.makeValue("/root/send/cdgrupid", "038");
  274. submit("TRMNP00323", false);
  275. if(getNodesetCount("/root/viewctrl/viewctrllist/viewctrlinfo") > 0){
  276. sCartGubnCd = model.getValue("/root/viewctrl/viewctrllist/viewctrlinfo/cdnm");
  277. vCartgubn = model.getValue("/root/viewctrl/viewctrllist/viewctrlinfo/cdnm");
  278. }
  279. //2009-06-22 K.J.M 병원별 Display 여부
  280. model.removenode("/root/send");
  281. model.makeValue("/root/send/reqdata/cdgrupid", "106");//병원별 Display 여부
  282. model.makeValue("/root/send/reqdata/supcdid", "");//서브구분
  283. model.makeValue("/root/send/reqdata/cdid", "");//서브구분
  284. submit("TRMNP04903", false);
  285. // model.setValue("/root/main/cond/scnopenyn", model.getValue("/root/init/hardcodeinfo/cdid").substr(0, 1));//반납상세내역버튼 display 여부
  286. //if( model.getValue("/root/main/cond/scnopenyn") == "Y" ) {
  287. //2010.04.19 K. J. M 카트 사용하는 병원만 임시처방시 수량 0인 처방 저장시 삭제처리
  288. model.setValue("/root/main/cond/cartuseyn", model.getValue("/root/init/hardcodeinfo/cdid").substr(2, 1));
  289. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(0, 1) == "Y" ) {//반납상세내역버튼 display 여부
  290. btn_rtn.disabled = "false";
  291. }else {
  292. btn_rtn.disabled = "true";
  293. }
  294. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(1, 1) == "Y" ) {//응급청구버튼 display 여부
  295. btn_erreqsave.visible = true;
  296. }else {
  297. btn_erreqsave.visible = false;
  298. }
  299. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(9, 1) == "Y" ) {//마취카트복사 사용 여부
  300. model.setValue("/root/init/WorkData/cond/anstcartyn", "Y");
  301. }else {
  302. model.setValue("/root/init/WorkData/cond/anstcartyn", "N");
  303. }
  304. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(2, 1) == "Y" ) {//임시Cart List 버튼 display 여부
  305. btn_tempcart.visible = true;
  306. //bbt_tSave.attribute("class") = "btn4_letter9";
  307. //bbt_tSave.attribute("text") = "확정Cart List저장";
  308. //bbt_tSave.attribute("style") = "left:842px; top:2px; width:140px; height:22px; background-image:../../../com/commonweb/images/btn4_letter7.gif; ";
  309. btn_goodsrch.attribute("style") = "left:657px; top:3px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn5_letter4.gif; ";
  310. btn_cartcopy.attribute("style") = "left:591px; top:3px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn5_letter4.gif; ";
  311. //grp_cartonly.attribute("style") = "left:250px; top:3px; width:340px; height:19px; ";
  312. grp_cartonly.attribute("style") = "left:310px; top:3px; width:295px; height:19px; ";
  313. }else {
  314. //bbt_tSave.attribute("style") = "left:866px; top:2px; width:116px; height:22px; background-image:../../../com/commonweb/images/btn4_letter7.gif; ";
  315. btn_goodsrch.attribute("style") = "left:800px; top:3px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn5_letter4.gif; ";
  316. btn_cartcopy.attribute("style") = "left:734px; top:3px; width:64px; height:19px; background-image:../../../com/commonweb/images/btn5_letter4.gif; ";
  317. //grp_cartonly.attribute("style") = "left:393px; top:3px; width:340px; height:19px; ";
  318. grp_cartonly.attribute("style") = "left:338px; top:3px; width:395px; height:19px; ";
  319. btn_tempcart.visible = false;
  320. //bbt_tSave.attribute("class") = "btn4_letter7";
  321. //bbt_tSave.attribute("text") = "Cart List저장";
  322. }
  323. if(sLoginDeptcd == "3070000000" || sLoginDeptcd == "3072700000" ){ // 수술실, 수술실 안과
  324. sCartGubnCd = "O";
  325. vCartgubn = "O";
  326. }else if(sLoginDeptcd == "2470000000"){ //마취부서
  327. sCartGubnCd = "A";
  328. vCartgubn = "A";
  329. }else if(sLoginDeptcd == "3073300000" || sLoginDeptcd == "2411205000" ){ //회복실부서 2009-03-12 sLoginDeptcd == "2411205000" 추가<회복실>
  330. sCartGubnCd = "R";
  331. vCartgubn = "R";0
  332. }// 2008-08-18 오후 3:15:18 현재 부서코드가 명확하지않기 때문에 관련 부서코드 전부 삽입함. taebum
  333. else{
  334. if(sLoginDeptcd == "3074700000"){ //수술실 A Unit
  335. sCartGubnCd = "O";
  336. vCartgubn = "O";
  337. }else if(sLoginDeptcd == "3074800000"){ //수술실 B Unit
  338. sCartGubnCd = "O";
  339. vCartgubn = "O";
  340. }else if(sLoginDeptcd == "2100304000"){ //분만실 회복실
  341. sCartGubnCd = "R";
  342. vCartgubn = "R";
  343. }else if(sLoginDeptcd == "3073300000" || sLoginDeptcd == "2411205000" ){ //수술실 회복실 2009-03-12 sLoginDeptcd == "2411205000" 추가<회복실>
  344. sCartGubnCd = "R";
  345. vCartgubn = "R";
  346. }else if(sLoginDeptcd == "3074900000"){ // 마취간호Unit
  347. sCartGubnCd = "R";
  348. vCartgubn = "R";
  349. }
  350. }
  351. // cart 정보가 존재하지 않을 경우 return 처리
  352. if(sCartGubnCd == "" || sCartGubnCd == null || sCartGubnCd == "undefined" || sCartGubnCd == "W"){
  353. messageBox("조회 권한이 없습니다.", "");
  354. bbt_tSave.disabled = true; // 임시처방입력
  355. bbt_cSave.disabled = true; // 임시처방저장
  356. bbt_prcpconfirm.disabled = true; // 확정처방저장
  357. // 2009-03-04 ycd 삭제처리
  358. //bbt_other.disabled = true;
  359. grp_search.disabled = true;
  360. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  361. return;
  362. }else{
  363. model.setValue("/root/init/WorkData/cond/cartgubn", sCartGubnCd); // Cart구분 O:수술, A:마취 , R:회복
  364. rdo_cartgubn1.refresh();
  365. rdo_cartgubn2.refresh();
  366. }
  367. // ---Test 시 막고하는 부분 마지막 ---------------
  368. // 운영환경에서는 주석처리해야됨
  369. /*
  370. if (sPid == "") {
  371. model.makeNode( gPathNode[7]); // /root/main/operation/list
  372. model.makeValue(gPathNode[7]+"/instcd" , model.getValue("/root/init/instcd" )); // 기관코드
  373. model.makeValue(gPathNode[7]+"/oprsrvno", model.getValue("/root/init/MmohoprsKey/oprsrvno")); // 수술예약(의뢰)번호 (년도 + 일련번호)
  374. model.makeValue(gPathNode[7]+"/ophistno", model.getValue("/root/init/MmohoprsKey/ophistno")); // 예약번호에따른이력번호
  375. model.makeValue(gPathNode[7]+"/ophistcd", model.getValue("/root/init/MmohoprsKey/ophistcd")); // 수술예약의이력코드
  376. }
  377. */
  378. // AllCheck 구분
  379. grd_diposit.fixedcellcheckbox(0,1) = true;
  380. grd_drug.fixedcellcheckbox(0,1) = true;
  381. grd_supplies.fixedcellcheckbox(0,1) = true;
  382. // 2009-03-05 YCD 삭제처리
  383. //grd_sutures.fixedcellcheckbox(0,1) = true;
  384. //grd_instrument.fixedcellcheckbox(0,1) = true;
  385. grd_opsupply.fixedcellcheckbox(0,1) = true;
  386. grd_diposit.explorerbar = "sortshow";
  387. grd_supplies.explorerbar = "sortshow";
  388. //2009-03-05 YCD 삭제처리
  389. //grd_sutures.explorerbar = "sortshow";
  390. grd_drug.explorerbar = "sortshow";
  391. grd_instrument.explorerbar = "sortshow";
  392. grd_opsupply.explorerbar = "sortshow";
  393. for (i = 1; i <= 6; i++) {
  394. model.removeNodeset(gPathNode[8]+"/"+tPathCart[i]);
  395. }
  396. fGridSizeChng("Base"); // 화면 그리드 크기 조정
  397. fQueryData(); // 조회버튼 Click시 보여주기
  398. if( model.getValue("/root/init/hardcodeinfo/cdid").substr(5, 1) == "Y" ) {//응급카트불출 버튼
  399. if( (model.getValue("/root/main/operation/list/opflagcd") == "2")&&(model.getValue("/root/main/operation/list/ccrtstat") < "3") ) {//응급수술일 경우 응급카트불출 활성
  400. btn_eroutcart.disabled = false;
  401. }else {
  402. btn_eroutcart.disabled = true;
  403. }
  404. }else {
  405. btn_eroutcart.disabled = true;
  406. }
  407. //grp_search 수정하지 못하도록 처리
  408. grp_search.disabled = true;
  409. model.setAttribute("SuSulOrder_Temp_oprsrvno", model.getValue("/root/main/MmohoprsLists/mmohoprslist/oprsrvno"));
  410. model.setAttribute("SuSulOrder_Temp_pid", model.getValue("/root/main/MmohoprsLists/mmohoprslist/pid"));
  411. model.setAttribute("SuSulOrder_Temp_hngnm", model.getValue("/root/main/MmohoprsLists/mmohoprslist/patname"));
  412. /*
  413. // 마감 작업 관련 fButtonControl() 으로 이동
  414. var prcpendflag = model.getValue("/root/main/MmohoprsLists/mmohoprslist/prcpendflag");
  415. var cartgubn = model.getValue("/root/init/WorkData/cond/cartgubn");
  416. if( cartgubn == "O" ) {//수술실
  417. if( ( prcpendflag == "1" )||( prcpendflag == "4" )||( prcpendflag == "5" )||( prcpendflag == "7" ) ) {
  418. group3.disabled = true;
  419. }else {
  420. group3.disabled = false;
  421. }
  422. }else if( cartgubn == "A" ) {//마취실
  423. if( ( prcpendflag == "2" )||( prcpendflag == "4" )||( prcpendflag == "6" )||( prcpendflag == "7" ) ) {
  424. group3.disabled = true;
  425. }else {
  426. group3.disabled = false;
  427. }
  428. }if( cartgubn == "R" ) {//회복실
  429. if( ( prcpendflag == "3" )||( prcpendflag == "5" )||( prcpendflag == "6" )||( prcpendflag == "7" ) ) {
  430. group3.disabled = true;
  431. }else {
  432. group3.disabled = false;
  433. }
  434. }
  435. */
  436. // 2009-03-03 YCD 삭제처리
  437. //button1.disabled = false;
  438. //button1.refresh();
  439. //20101123_KNUH_Start
  440. //grd_diposit.colDisabled (grd_diposit.colRef("grupcd")) = true;
  441. //grd_supplies.colDisabled (grd_supplies.colRef("grupcd")) = true;
  442. //grd_drug.colDisabled (grd_drug.colRef("grupcd")) = true;
  443. //grd_instrument.colDisabled (grd_instrument.colRef("grupcd")) = true;
  444. //grd_opsupply.colDisabled (grd_opsupply.colRef("grupcd")) = true;
  445. //20101123_KNUH_End
  446. var CartStat = model.getValue("/root/init/WorkData/cond/cartstat");
  447. if(CartStat == "9") {
  448. bbt_prcpconfirm.disabled = false;
  449. btn_cartcopy.disabled = true;
  450. btn_setprcp.disabled = true;
  451. }
  452. if(grd_diposit.rows > grd_diposit.fixedRows || grd_supplies.rows > grd_supplies.fixedRows || grd_drug.rows > grd_drug.fixedRows) {
  453. btn_return.visible = false;
  454. } else {
  455. if(vCartgubn == "A" && CartStat == "2") {
  456. btn_return.visible = true;
  457. }
  458. }
  459. //20110316 이선경 (경북대) : 다빈치(로봇)수술여부 가져와서 화면에 보여줌
  460. model.setValue("/root/init/robotopflag", model.getValue("/root/main/MmohoprsLists/mmohoprslist/robotopflag"));
  461. chk_robot.refresh();
  462. }
  463. // --------------------------------------------------
  464. // 화면 Query 시 처리하는 함수
  465. // --------------------------------------------------
  466. function fQueryData() {
  467. fMmohoprsData_Read(); // 수술예약정보를 가져온다.
  468. var CRT = model.getValue("/root/init/WorkData/cond/cartstat");
  469. if( eval(CRT) < 3 ) {//불출전에는 삭제할 수 있음
  470. grd_instrument.fixedcellcheckbox(0,1) = true;
  471. grd_instrument.colDisabled(1) = false;
  472. }else {
  473. grd_instrument.fixedcellcheckbox(0,1) = false;
  474. grd_instrument.colDisabled(1) = true;
  475. }
  476. fCartOrdData_Read(); // Case Cart 처방내역 조회
  477. // fGridColConrol();
  478. var CartStat = model.getValue("/root/init/WorkData/cond/cartstat");
  479. fButtonControl();
  480. }
  481. //--------------------------------------------------
  482. // 처방 출력
  483. //--------------------------------------------------
  484. function fPrntPrcpList() {
  485. var node = instance1.selectSingleNode("/root/main/MmohoprsLists/mmohoprslist/prnti");
  486. if( node == null ) {
  487. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prnti", model.getValue("/root/main/cond/prnti"));
  488. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntii", model.getValue("/root/main/cond/prntii"));
  489. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiii", model.getValue("/root/main/cond/prntiii"));
  490. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiv", model.getValue("/root/main/cond/prntiv"));
  491. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/cartgubn", model.getValue("/root/init/WorkData/cond/cartgubn"));
  492. }else {
  493. model.setValue("/root/main/MmohoprsLists/mmohoprslist/prnti", model.getValue("/root/main/cond/prnti"));
  494. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntii", model.getValue("/root/main/cond/prntii"));
  495. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiii", model.getValue("/root/main/cond/prntiii"));
  496. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiv", model.getValue("/root/main/cond/prntiv"));
  497. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/cartgubn", model.getValue("/root/init/WorkData/cond/cartgubn"));
  498. }
  499. model.removeNode("/root/main/prtinfo");
  500. model.makeNode("/root/main/prtinfo/MmohoprsLists");
  501. model.copyNode("/root/main/prtinfo/MmohoprsLists", "/root/main/MmohoprsLists");
  502. model.makeValue("/root/main/prtinfo/MmohoprsLists/mmohoprslist/cartstat", cmb_cartstat.label);
  503. model.makeNode("/root/main/prtinfo/CartOrdData/ListSupplies");
  504. model.makeNode("/root/main/prtinfo/CartOrdData/ListDrug");
  505. model.makeNode("/root/main/prtinfo/CartOrdData/ListDiposit");
  506. //model.makeNode("/root/main/prtinfo/CartOrdData");
  507. //model.copyNode("/root/main/prtinfo/CartOrdData", "/root/main/CartOrdData");
  508. copyNodesetType("/root/main/prtinfo/CartOrdData/ListDiposit", "/root/main/CartOrdData/ListDiposit[deleteyn!='X']");
  509. copyNodesetType("/root/main/prtinfo/CartOrdData/ListSupplies", "/root/main/CartOrdData/ListSupplies[deleteyn!='X']", "after");
  510. copyNodesetType("/root/main/prtinfo/CartOrdData/ListDrug", "/root/main/CartOrdData/ListDrug[deleteyn!='X']", "after");
  511. // 동명이인 표시명 위하여 .patnanm2 의 값을 patname 값으로_손성훈.
  512. var patnmprt = model.getValue("/root/main/prtinfo/MmohoprsLists/mmohoprslist/patname2");
  513. model.setValue("/root/main/prtinfo/MmohoprsLists/mmohoprslist/patname", patnmprt);
  514. exeReportPreview("RPMNP01800", "XMLSTR", "/root/main/prtinfo", "", "true", "", "", "", "", "true", "", "", "", ""); // 20110104_경북대_TEST용 미리보기있음
  515. //exeReportPreview("RPMNP01800", "XMLSTR", "/root/main/MmohoprsLists/mmohoprslist", "", "", "", "", "", "", "true", "", "", "", "emr");
  516. //exeReportPreview("RPMNP01800", "XML", "/root/main/MmohoprsLists/mmohoprslist", "", "", "", "", "", "", "true", "", "", "", "emr");
  517. }
  518. //---------------------------------------
  519. function fGridColConrol(){
  520. var sDelYn = "";
  521. var dGrid = "";
  522. // datagrid.cellstyle("background-color", 1, 1, 3, 3) = "#FFF000";
  523. // String name : 스타일 이름
  524. // Integer row1 : 셀들의 범위를 지정할 때 시작점이 될 좌상단 셀의 행 인덱스
  525. // Integer col1 : 셀들의 범위를 지정할 때 시작점이 될 좌상단 셀의 열 인덱스
  526. // [Integer row2] : 셀들의 범위를 지정할 때 끝점이 될 우하단 셀의 행 인덱스
  527. // [Integer col2] : 셀들의 범위를 지정할 때 끝점이 될 우하단 셀의 열 인덱스
  528. for (Idx = 0; Idx < 5; Idx++) {
  529. wCartPath = gPathNode[8]+"/"+tPathCart[Idx];
  530. dGrid = eval("grd_"+tNameCart[Idx]);
  531. sRowCnt = getNodesetCount(wCartPath);
  532. for (var i=1; i<= sRowCnt; i++) {
  533. sDelYn = model.getValue(wCartPath + "[" + (i) +"]/deleteyn" ); // 삭제구분
  534. dGrid.row = i;
  535. if (i == 1) {
  536. dGrid.colAttribute(1, "disabled" ) = "true";
  537. }
  538. } // End Of for (var i=1; i<= sRowCnt; i++)
  539. } // End Of for (Idx = 1; Idx < 7; Idx++) {
  540. } //--- End Of function fDataSave(pStat){
  541. // --------------------------------------------------
  542. // 화면 Query 시 처리하는 함수
  543. // --------------------------------------------------
  544. function fCheckCartGubn() {
  545. var CartStat = "";
  546. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn"); // Cart구분 O:수술, A:마취 , R:회복
  547. // alert(sCartGubn);
  548. if (sCartGubn == "O") {
  549. CartStat = model.getValue(gPathNode[6]+"/ccrtstat");
  550. if (CartStat == "" || CartStat == "-") {
  551. CartStat = "1";
  552. model.setValue(gPathNode[6]+"/ccrtstat", "1");
  553. }
  554. } else if (sCartGubn == "A") { // 2008-08-18 오후 1:14:21 taebum 마취 Cart도 발생되기 때문에 수정.
  555. CartStat = model.getValue(gPathNode[6]+"/anstccrtstat");
  556. if (CartStat == "" || CartStat == "-") {
  557. CartStat = "1";
  558. model.setValue(gPathNode[6]+"/anstccrtstat", "1");
  559. }
  560. } else if (sCartGubn == "R") {
  561. CartStat = model.getValue(gPathNode[6]+"/rcvccrtstat");
  562. if (CartStat == "" || CartStat == "-") {
  563. CartStat = "4";
  564. model.setValue(gPathNode[6]+"/rcvccrtstat", "4");
  565. }
  566. }
  567. //
  568. cmb_cartstat.value = CartStat;
  569. cmb_cartstat.refresh();
  570. fButtonControl();
  571. for (i = 1; i <= 6; i++) {
  572. model.removeNodeset(gPathNode[8]+"/"+tPathCart[i]);
  573. }
  574. fCartOrdData_Read();
  575. }
  576. // --------------------------------------------------
  577. // Button 활성화 처리하는 함수
  578. // --------------------------------------------------
  579. function fButtonControl(){
  580. var CartStat = model.getValue("/root/init/WorkData/cond/cartstat");
  581. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn"); // Cart구분 O:수술, A:마취 , R:회복
  582. var goodstat = model.getValue("/root/main/MmohoprsLists/mmohoprslist/delivegoodflag"); //물품상태
  583. var instrstat = model.getValue("/root/main/MmohoprsLists/mmohoprslist/deliveinstrflag"); //기구상태
  584. var sAlertMsg = "입실전에는 Cart List 저장만 가능합니다.";
  585. var opstatcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/opstatcd");
  586. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  587. btn_erreqsave.disabled = false; //불출이상이면 응급청구 가능(2009.08.03)
  588. if(model.getValue("/root/main/MmohoprsLists/mmohoprslist/opstatcd") == "10" && model.getValue("/root/main/MmohoprsLists/mmohoprslist/opcnfmdd") > getCurrentDate()) {
  589. bbt_cSave.disabled = true;
  590. bbt_prcpconfirm.disabled = true;
  591. // 2009-03-04 ycd 삭제처리
  592. //bbt_other.disabled = true;
  593. bbt_tSave.disabled = true;
  594. //btn_tempcart.disabled = true; // 임시 Cart List저장
  595. bbt_delete.disabled = true;
  596. btn_cartcopy.disabled = true;
  597. btn_goodsrch.disabled = true;
  598. btn_setprcp.disabled = true;
  599. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  600. btn_erccd.disabled = true;
  601. btn_tempcart.disabled = true;
  602. messageBox("수술의뢰 상태에서는 수술당일에만 수술/마취 간호처방을 사용하실 수 있습니다.", "E");
  603. return;
  604. } else {
  605. if( (cartgubn == "O" && (( prcpendflag == "1" )||( prcpendflag == "4" )||( prcpendflag == "5" )||( prcpendflag == "7" ))) ||
  606. (cartgubn == "A" && (( prcpendflag == "2" )||( prcpendflag == "4" )||( prcpendflag == "6" )||( prcpendflag == "7" )))) {
  607. switch1.disabled = true;
  608. btn_cartcopy.disabled = true;
  609. btn_goodsrch.disabled = false;
  610. btn_setprcp.disabled = true;
  611. bbt_delete.disabled = true;
  612. bbt_tSave.disabled = true;
  613. //btn_tempcart.disabled = true; // 임시 Cart List저장
  614. bbt_cSave.disabled = true;
  615. bbt_prcpconfirm.disabled = true;
  616. btn_erreqsave.disabled = true;
  617. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  618. // 2009-03-04 ycd 삭제처리
  619. //button3.disabled = true;
  620. //bbt_other.disabled = true;
  621. } else {
  622. btn_cartcopy.disabled = false;
  623. btn_setprcp.disabled = false;
  624. if(CartStat >= "3") {
  625. bbt_tSave.disabled = true;
  626. btn_erccd.disabled = true;
  627. if(CartStat == "9") {
  628. var sjobposcd = getUserInfo("jobposcd"); // 직위
  629. var ssflag = "";
  630. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  631. //경북대가 아니면
  632. if( sjobposcd == "1110"){
  633. ssflag = "Y";
  634. }else{
  635. ssflag = "N";
  636. }
  637. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  638. //경북대이면 03%로 체크한다.
  639. if( sjobposcd == "75"){
  640. ssflag = "Y";
  641. }else{
  642. ssflag = "N";
  643. }
  644. }
  645. //if (getUserInfo("jobposcd") == "1110") { // 직위가 수간호사 이면
  646. if(ssflag=="Y") {
  647. //---------(20101204) 경북대
  648. bbt_prcpconfirm.attribute("text") = "처방반납저장";
  649. } else {
  650. bbt_cSave.disabled = true; // 임시처방저장
  651. bbt_prcpconfirm.disabled = true; // 확정처방저장
  652. }
  653. grd_supplies.colDisabled(grd_supplies.colRef("delcheck")) = true;
  654. grd_supplies.colDisabled(grd_supplies.colRef("grupcd")) = true;
  655. grd_supplies.colDisabled(grd_supplies.colRef("prcpdelivefact")) = true;
  656. grd_supplies.colDisabled(grd_supplies.colRef("outqty")) = true;
  657. grd_supplies.colDisabled(grd_supplies.colRef("anamneflag")) = true;
  658. grd_supplies.colDisabled(grd_supplies.colRef("payflagcd")) = true;
  659. grd_supplies.fixedcellcheckbox(0,1) = false;
  660. grd_supplies.fixedcellcheckbox(0,1) = false;
  661. bbt_prcpconfirm.disabled = false;
  662. btn_cartcopy.disabled = true;
  663. btn_setprcp.disabled = true;
  664. bbt_prcpconfirm.text = "가납확정저장";
  665. chk_robot.disabled = true;
  666. } else {
  667. grd_supplies.colDisabled(grd_supplies.colRef("delcheck")) = false;
  668. grd_supplies.colDisabled(grd_supplies.colRef("grupcd")) = false;
  669. grd_supplies.colDisabled(grd_supplies.colRef("prcpdelivefact")) = false;
  670. grd_supplies.colDisabled(grd_supplies.colRef("outqty")) = false;
  671. //grd_supplies.colDisabled(grd_supplies.colRef("erprcpflag")) = false;
  672. grd_supplies.colDisabled(grd_supplies.colRef("anamneflag")) = false;
  673. grd_supplies.colDisabled(grd_supplies.colRef("payflagcd")) = false;
  674. grd_supplies.fixedcellcheckbox(0,1) = true;
  675. if (model.getValue(gPathNode[6]+"/patinroomdt") == "") {
  676. bbt_cSave.disabled = true; // 임시처방저장
  677. bbt_prcpconfirm.disabled = true; // 확정처방저장
  678. } else {
  679. if(opstatcd >= "40") {
  680. bbt_cSave.disabled = false; // 임시처방저장
  681. bbt_prcpconfirm.disabled = false; // 확정처방저장
  682. } else {
  683. bbt_cSave.disabled = true; // 임시처방저장
  684. bbt_prcpconfirm.disabled = true; // 확정처방저장
  685. }
  686. }
  687. if(CartStat >= "5") {
  688. bbt_prcpconfirm.text = "처방수정";
  689. bbt_cSave.disabled = true;
  690. chk_robot.disabled = true;
  691. } else {
  692. bbt_prcpconfirm.text = "확정처방저장";
  693. }
  694. }
  695. } else {
  696. var roomcd = model.getValue("/root/main/operation/list/oproomcd");
  697. var room = model.getValue("/root/tmp/codeinfo/codelist[cdgrupid='T16' and cdid='" + roomcd + "']/cdid");
  698. var patinrmdt = model.getValue(gPathNode[6]+"/patinroomdt");
  699. bbt_cSave.disabled = true;
  700. bbt_prcpconfirm.disabled = true;
  701. bbt_tSave.disabled = false;
  702. if(CartStat == "2") {
  703. btn_tempcart.disabled = true;
  704. if(vCartgubn == "A" && (grd_diposit.rows == grd_diposit.fixedRows && grd_supplies.rows == grd_supplies.fixedRows && grd_drug.rows == grd_drug.fixedRows) ) {
  705. btn_return.visible = true;
  706. } else {
  707. btn_return.visible = false;
  708. }
  709. } else {
  710. btn_tempcart.disabled = false;
  711. }
  712. if(room != null && room != "") {
  713. if(patinrmdt != "") {
  714. bbt_cSave.disabled = false; // 임시처방저장
  715. bbt_prcpconfirm.disabled = false; // 확정처방저장
  716. bbt_prcpconfirm.text = "확정처방저장";
  717. btn_tempcart.disabled = true;
  718. bbt_tSave.disabled = true;
  719. } else {
  720. btn_tempcart.disabled = false; // 임시처방저장
  721. bbt_tSave.disabled = false; // 확정처방저장
  722. }
  723. }
  724. }
  725. }
  726. }
  727. return;
  728. if (model.getValue("/root/main/MmohoprsLists/mmohoprslist/opstatcd") < "40" || bDSCOFlag == true) {
  729. //*** 2008-07-29 오전 9:16:18 taebum 입실 전일 경우 Cart상태가 불출전 일경우 CartList만 저장 및 삭제 할 수 있도록 수정
  730. //물품, 기구 불출 분할로 각각의 상태값으로 처리 if( goodstat >= "3" ) {//물품상태값
  731. if(CartStat != "-" || eval(CartStat) >= 3){
  732. bbt_tSave.disabled = false; // Cart List 저장
  733. bbt_delete.disabled = false; // 삭제
  734. btn_eroutcart.disabled = false; // 응급 CartBag 불출
  735. //btn_tempcart.disabled = false; // 임시 Cart List저장
  736. btn_erreqsave.disabled = false; //응급청구저장
  737. }
  738. bbt_cSave.disabled = true; // 임시처방저장
  739. bbt_prcpconfirm.disabled = true; // 확정처방저장
  740. //bbt_append1.disabled = "true"; //2008-07-24 오후 3:44:17 taebum 활성화 되도록 수정
  741. //bbt_append2.disabled = "true";
  742. // 2009-03-04 ycd 삭제처리
  743. //bbt_other.disabled = true;
  744. //bbt_choice.disabled = true; // 물품선택 버튼
  745. //2008-08-28 오전 8:26:00 taebum 입실전에도 마취/회복일 경우 combo 활성화 추가
  746. if(sCartGubn == "A" || sCartGubn == "R"){
  747. rdo_cartgubn1.disabled = true;
  748. rdo_cartgubn2.disabled = true;
  749. //2009-04-14 YCD 로그인한 근무지 부서로 처방이 발생. 회복/마취 선택 기능 삭제
  750. //rdo_cartgubn2.disabled = false;
  751. rdo_cartgubn1.refresh();
  752. rdo_cartgubn2.refresh();
  753. }else if(sCartGubn == "O"){
  754. rdo_cartgubn1.disabled = true;
  755. rdo_cartgubn2.disabled = true;
  756. rdo_cartgubn1.refresh();
  757. rdo_cartgubn2.refresh();
  758. }
  759. if(sCartGubn == "R" && bDSCOFlag == true){ //회복일 경우 입실전일 경우 모든 버튼 비활성화 처리
  760. bbt_cSave.disabled = true;
  761. bbt_prcpconfirm.disabled = true;
  762. // 2009-03-04 ycd 삭제처리
  763. //bbt_other.disabled = true;
  764. bbt_tSave.disabled = true;
  765. //btn_tempcart.disabled = true; // 임시 Cart List저장
  766. bbt_delete.disabled = true;
  767. btn_cartcopy.disabled = true;
  768. btn_goodsrch.disabled = true;
  769. btn_setprcp.disabled = true;
  770. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  771. }else{
  772. //2008-09-30 오전 12:04:16 taebum 퇴원환자를 외래로 상단을 올릴 경우를 위한 추가 구문
  773. //카트상태가 불출이상일 경우 전체 disable 처리한다.
  774. //2009.07.10 K. J. M 각각의 불출상태로 처리변경
  775. if(bDSCOFlag == true && CartStat != "-" && eval(CartStat) >= 3){
  776. bbt_tSave.disabled = true; // Cart List 저장
  777. //btn_tempcart.disabled = true; // 임시 Cart List저장
  778. bbt_delete.disabled = true; // 삭제
  779. btn_cartcopy.disabled = true; // 카트복사
  780. btn_goodsrch.disabled = true; // 물품복사
  781. btn_setprcp.disabled = true; // 약속처방
  782. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  783. return;
  784. }else{
  785. if(bDSCOFlag == true){
  786. bbt_tSave.disabled = false; // Cart List 저장
  787. //btn_tempcart.disabled = false; // 임시 Cart List저장
  788. btn_eroutcart.disabled = false; // 응급 CartBag 불출
  789. }
  790. if(eval(CartStat) >= 3){
  791. // 수술시작전 일반임시처방... 불출이상일 경우
  792. bbt_tSave.disabled = true; // Cart List 저장
  793. //btn_tempcart.disabled = true; // 임시 Cart List저장
  794. btn_cartcopy.disabled = true;
  795. btn_goodsrch.disabled = true;
  796. btn_setprcp.disabled = true;
  797. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  798. btn_erreqsave.disabled = false; //불출이상이면 응급청구 가능(2009.08.03)
  799. return false;
  800. }
  801. if(CartStat != "-" && eval(CartStat) < 3){
  802. bbt_tSave.disabled = false; // Cart List저장
  803. //btn_tempcart.disabled = false; // 임시 Cart List저장
  804. bbt_delete.disabled = false;
  805. btn_erreqsave.disabled = true; //불출이하이면 2009.08.03
  806. btn_eroutcart.disabled = false; // 응급 CartBag 불출
  807. }
  808. }
  809. }
  810. if(sAlertMsgFlag == "S"){
  811. //messageBox(sAlertMsg, "I000");
  812. sAlertMsgFlag = "R";
  813. return;
  814. }
  815. }
  816. //2008-09-30 오전 12:06:09 taebum 퇴원환자 상단 올린후 조회용으로 추가된 구문.
  817. else{
  818. if(bDSCOFlag == true && eval(CartStat) >= 3){
  819. bbt_cSave.disabled = true;
  820. bbt_prcpconfirm.disabled = true;
  821. // 2009-03-04 ycd 삭제처리
  822. //bbt_other.disabled = true;
  823. bbt_tSave.disabled = true;
  824. //btn_tempcart.disabled = true; // 임시 Cart List저장
  825. bbt_delete.disabled = true;
  826. btn_erreqsave.disabled = true;
  827. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  828. return;
  829. }
  830. }
  831. // ----------------------------------------------------------------
  832. // if (getUserInfo("jobposcd") == "1140" || getUserInfo("jobposcd") == "1110") { // 직위가 간호사, 수간호사
  833. // } else {
  834. // bbt_tSave.disabled = "true"; // 임시처방입력
  835. // bbt_cSave.disabled = "true"; // 임시처방저장
  836. // bbt_prcpconfirm.disabled = "true"; // 확정처방저장
  837. //
  838. // bbt_delete.disabled = "true";
  839. // bbt_append1.disabled = "true";
  840. // bbt_append2.disabled = "true";
  841. // bbt_other.disabled = "true";
  842. // bbt_choice.disabled = "true"; // 물품선택 버튼
  843. //
  844. // alert("수술마취 간호처방은 간호사 선생님만 처방가능합니다.("+getUserInfo("jobkindnm")+")");
  845. // return;
  846. // }
  847. cmb_cartstat.attribute("visibility") ="visible";
  848. cap_cartstat.attribute("visibility") ="visible" ;
  849. //----
  850. if (model.getValue("/root/init/WorkData/cond/cartgubn") != "O") {
  851. //bbt_cSave.disabled = "true"; // 임시처방저장
  852. //2008-08-18 오후 2:44:19 taebum 주석처리
  853. //bbt_carttab.disabled = "true";
  854. //cmb_cartstat.attribute("visibility") ="hidden";
  855. //cap_cartstat.attribute("visibility") ="hidden" ;
  856. }
  857. // else {
  858. if (CartStat != "-" && CartStat != "" && (CartStat == "1" || CartStat == "2")) {
  859. if (model.getValue("/root/main/MmohoprsLists/mmohoprslist/opflagcd") == "1") {
  860. bbt_tSave.disabled = false;
  861. //btn_tempcart.disabled = false; // 임시 Cart List저장
  862. btn_eroutcart.disabled = false; // 응급 CartBag 불출
  863. } else {
  864. if(sCartGubn == "A" && getUserInfo("dutplceinstcd") == "032") {
  865. bbt_cSave.disabled = true;
  866. bbt_prcpconfirm.disabled = true;
  867. }
  868. }
  869. } else if (CartStat > "4") {
  870. bbt_prcpconfirm.attribute("text") = "처방수정";
  871. //20110314 이선경 (경북대) : 처방수정일때는 다빈치 체크 disabled
  872. chk_robot.disabled = true;
  873. if (CartStat == "9") {
  874. //---------(20101204) 경북대
  875. //추가
  876. var sjobposcd = getUserInfo("jobposcd"); // 직위
  877. var ssflag = "";
  878. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  879. //경북대가 아니면
  880. if( sjobposcd == "1110"){
  881. ssflag = "Y";
  882. }else{
  883. ssflag = "N";
  884. }
  885. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  886. //경북대이면 03%로 체크한다.
  887. if( sjobposcd == "75"){
  888. ssflag = "Y";
  889. }else{
  890. ssflag = "N";
  891. }
  892. }
  893. //if (getUserInfo("jobposcd") == "1110") { // 직위가 수간호사 이면
  894. if(ssflag=="Y") {
  895. //---------(20101204) 경북대
  896. bbt_prcpconfirm.attribute("text") = "처방반납저장";
  897. } else {
  898. bbt_tSave.disabled = true; // Cart List 저장
  899. //btn_tempcart.disabled = true; // 임시 Cart List저장
  900. bbt_cSave.disabled = true; // 임시처방저장
  901. bbt_prcpconfirm.disabled = true; // 확정처방저장
  902. bbt_delete.disabled = true; //삭제
  903. btn_erreqsave.disabled = false; //응급청구저장
  904. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  905. //bbt_find.disabled = "true";
  906. //bbt_append1.disabled = "true";
  907. //bbt_append2.disabled = "true";
  908. // 2009-03-04 ycd 삭제처리
  909. //bbt_other.disabled = "true";
  910. //bbt_choice.disabled = "true"; // 물품선택 버튼
  911. }
  912. }
  913. // 추가처방
  914. if (CartStat == "5") {
  915. bbt_cSave.disabled = true; // 임시처방저장
  916. }
  917. }
  918. model.setValue("/root/init/WorkData/cond/oldcartstat", CartStat);
  919. //-----------------------------------------------------------
  920. // 환자가 수술실 입실일시로 버튼 제어
  921. // 2007.10.18 수술,회복,마취합의
  922. //-----------------------------------------------------------
  923. if (model.getValue(gPathNode[6]+"/patinroomdt") == "") {
  924. bbt_cSave.disabled = true; // 임시처방저장
  925. bbt_prcpconfirm.disabled = true; // 확정처방저장
  926. } else {
  927. bbt_tSave.disabled = true; // Cart처방입력
  928. //btn_tempcart.disabled = true; // 임시 Cart List저장
  929. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  930. }
  931. //bbt_tSave.refresh(); // 임시처방입력
  932. //bbt_cSave.refresh(); // 임시처방저장
  933. //bbt_prcpconfirm.refresh(); // 확정처방저장
  934. //2009-03-04 ycd 삭제처리
  935. //bbt_other.refresh();
  936. //2008-07-29 오전 10:29:59 taebum 수술실 마감 작업 proccess -- 진명씨 source 위치 이동
  937. //============================================================================================================
  938. var prcpendflag = model.getValue("/root/main/MmohoprsLists/mmohoprslist/prcpendflag");
  939. var cartgubn = model.getValue("/root/init/WorkData/cond/cartgubn");
  940. if( cartgubn == "O" ) {//수술실
  941. if( ( prcpendflag == "1" )||( prcpendflag == "4" )||( prcpendflag == "5" )||( prcpendflag == "7" ) ) {
  942. //group3.disabled = true;
  943. switch1.disabled = true;
  944. btn_cartcopy.disabled = true;
  945. btn_goodsrch.disabled = false;
  946. btn_setprcp.disabled = true;
  947. bbt_delete.disabled = true;
  948. bbt_tSave.disabled = true;
  949. //btn_tempcart.disabled = true; // 임시 Cart List저장
  950. bbt_cSave.disabled = true;
  951. bbt_prcpconfirm.disabled = true;
  952. btn_erreqsave.disabled = true;
  953. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  954. // 2009-03-04 ycd 삭제처리
  955. //button3.disabled = true;
  956. //bbt_other.disabled = true;
  957. } else {
  958. //2008-09-20 오후 8:36:10 taebum 회복일 경우 Cart복사 disable 처리
  959. btn_cartcopy.disabled = false;
  960. btn_setprcp.disabled = false;
  961. }
  962. }else if( cartgubn == "A" ) {//마취실
  963. if( ( prcpendflag == "2" )||( prcpendflag == "4" )||( prcpendflag == "6" )||( prcpendflag == "7" ) ) {
  964. switch1.disabled = true;
  965. btn_cartcopy.disabled = true;
  966. btn_goodsrch.disabled = false;
  967. btn_setprcp.disabled = true;
  968. bbt_delete.disabled = true;
  969. bbt_tSave.disabled = true;
  970. bbt_cSave.disabled = true;
  971. bbt_prcpconfirm.disabled = true;
  972. btn_erreqsave.disabled = true;
  973. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  974. // 2009-03-04 ycd 삭제처리
  975. //button3.disabled = true;
  976. //bbt_other.disabled = true;
  977. }
  978. else {
  979. //2008-09-20 오후 8:36:10 taebum 회복일 경우 Cart복사 disable 처리
  980. btn_cartcopy.disabled = false;
  981. btn_setprcp.disabled = false;
  982. }
  983. }else if( cartgubn == "R" ) {//회복실
  984. if( ( prcpendflag == "3" )||( prcpendflag == "5" )||( prcpendflag == "6" )||( prcpendflag == "7" ) ) {
  985. switch1.disabled = true;
  986. btn_cartcopy.disabled = true;
  987. btn_goodsrch.disabled = false;
  988. btn_setprcp.disabled = true;
  989. bbt_delete.disabled = true;
  990. bbt_tSave.disabled = true;
  991. bbt_cSave.disabled = true;
  992. bbt_prcpconfirm.disabled = true;
  993. btn_erreqsave.disabled = true;
  994. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  995. // 2009-03-04 ycd 삭제처리
  996. //button3.disabled = true;
  997. //bbt_other.disabled = true;
  998. }
  999. else {
  1000. //2008-09-20 오후 8:36:10 taebum 회복일 경우 Cart복사 disable 처리
  1001. btn_cartcopy.disabled = false;
  1002. btn_setprcp.disabled = false;
  1003. }
  1004. }
  1005. //============================================================================================================
  1006. //2008-08-19 오전 10:15:48 taebum 불출한 상태에서 대기상태 이상일 경우 Cart List 저장 버튼 비활성화
  1007. if(model.getValue("/root/main/MmohoprsLists/mmohoprslist/opstatcd") >= "30" && CartStat >= "3"){
  1008. bbt_tSave.disabled = true;
  1009. btn_eroutcart.disabled = true; // 응급 CartBag 불출
  1010. }
  1011. //마취 또는 회복간호사가 로그인 할 경우 마취/회복 콤보박스 활성화
  1012. if(sCartGubn == "A" || sCartGubn == "R"){
  1013. rdo_cartgubn1.disabled = true;
  1014. //2009-04-14 YCD 로그인한 근무지 부서로 처방이 발생. 회복/마취 선택 기능 삭제
  1015. //rdo_cartgubn2.disabled = false;
  1016. rdo_cartgubn1.refresh();
  1017. rdo_cartgubn2.refresh();
  1018. }else if(sCartGubn == "O"){
  1019. rdo_cartgubn1.disabled = true;
  1020. rdo_cartgubn2.disabled = true;
  1021. rdo_cartgubn1.refresh();
  1022. rdo_cartgubn2.refresh();
  1023. }
  1024. if( button9.selected == true && ( grd_instrument.findRow("N", grd_instrument.findRow("E", 1, grd_instrument.colRef("goodcrflag")) , grd_instrument.colRef("deliveyn")) > 0 ||
  1025. grd_opsupply.findRow("N", grd_opsupply.findRow("E", 1, grd_opsupply.colRef("goodcrflag")) , grd_opsupply.colRef("deliveyn")) > 0 )){
  1026. btn_eroutcart.disabled = false;
  1027. }
  1028. var CartStat = model.getValue("/root/init/WorkData/cond/cartstat");
  1029. if(CartStat == "9") {
  1030. grd_supplies.colDisabled(grd_supplies.colRef("delcheck")) = true;
  1031. grd_supplies.colDisabled(grd_supplies.colRef("grupcd")) = true;
  1032. grd_supplies.colDisabled(grd_supplies.colRef("prcpdelivefact")) = true;
  1033. grd_supplies.colDisabled(grd_supplies.colRef("outqty")) = true;
  1034. //grd_supplies.colDisabled(grd_supplies.colRef("erprcpflag")) = true;
  1035. grd_supplies.colDisabled(grd_supplies.colRef("anamneflag")) = true;
  1036. grd_supplies.colDisabled(grd_supplies.colRef("payflagcd")) = true;
  1037. grd_supplies.fixedcellcheckbox(0,1) = false;
  1038. //grd_drug.colDisabled(grd_drug.colRef("delcheck")) = true;
  1039. //grd_drug.colDisabled(grd_drug.colRef("grupcd")) = true;
  1040. //grd_drug.colDisabled(grd_drug.colRef("drugmthdspccd")) = true;
  1041. //grd_drug.colDisabled(grd_drug.colRef("outqty")) = true;
  1042. //grd_drug.colDisabled(grd_drug.colRef("anamneflag")) = true;
  1043. //grd_drug.colDisabled(grd_drug.colRef("payflagcd")) = true;
  1044. grd_supplies.fixedcellcheckbox(0,1) = false;
  1045. //grd_drug.fixedcellcheckbox(0,1) = false;
  1046. bbt_prcpconfirm.disabled = false;
  1047. btn_cartcopy.disabled = true;
  1048. btn_setprcp.disabled = true;
  1049. bbt_prcpconfirm.text = "가납확정저장";
  1050. } else {
  1051. grd_supplies.colDisabled(grd_supplies.colRef("delcheck")) = false;
  1052. grd_supplies.colDisabled(grd_supplies.colRef("grupcd")) = false;
  1053. grd_supplies.colDisabled(grd_supplies.colRef("prcpdelivefact")) = false;
  1054. grd_supplies.colDisabled(grd_supplies.colRef("outqty")) = false;
  1055. //grd_supplies.colDisabled(grd_supplies.colRef("erprcpflag")) = false;
  1056. grd_supplies.colDisabled(grd_supplies.colRef("anamneflag")) = false;
  1057. grd_supplies.colDisabled(grd_supplies.colRef("payflagcd")) = false;
  1058. //grd_drug.colDisabled(grd_drug.colRef("delcheck")) = false;
  1059. //grd_drug.colDisabled(grd_drug.colRef("grupcd")) = false;
  1060. //grd_drug.colDisabled(grd_drug.colRef("drugmthdspccd")) = false;
  1061. //grd_drug.colDisabled(grd_drug.colRef("outqty")) = false;
  1062. //grd_drug.colDisabled(grd_drug.colRef("anamneflag")) = false;
  1063. //grd_drug.colDisabled(grd_drug.colRef("payflagcd")) = false;
  1064. grd_supplies.fixedcellcheckbox(0,1) = true;
  1065. //grd_drug.fixedcellcheckbox(0,1) = true;
  1066. //bbt_prcpconfirm.disabled = false;
  1067. bbt_prcpconfirm.text = "처방수정";
  1068. }
  1069. }
  1070. // --------------------------------------------------
  1071. // 수술예약정보 가져오기
  1072. // --------------------------------------------------
  1073. function fMmohoprsData_Read(pFlag) {
  1074. model.removenode("/root/send");
  1075. model.makeValue("/root/send/instcd" , model.getValue(gPathNode[7]+"/instcd" )); // 기관코드
  1076. model.makeValue("/root/send/oprsrvno" , model.getValue(gPathNode[7]+"/oprsrvno")); // 수술예약(의뢰)번호 (년도 + 일련번호)
  1077. model.makeValue("/root/send/ophistno" , model.getValue(gPathNode[7]+"/ophistno")); // 예약번호에따른이력번호
  1078. model.makeValue("/root/send/ophistcd" , model.getValue(gPathNode[7]+"/ophistcd")); // 수술예약의이력코드
  1079. //2008-08-18 오전 10:07:06 taebum 협진수술도 Cart를 발생 시킨다고 함.
  1080. submit("TRMNP01800"); // 수술예약정보를 가져온다.
  1081. var oPath = "/root/main/MmohoprsLists/mmohoprslist";
  1082. var sPatInfo = model.getValue(oPath+"/wardnm" ) + " " // 병동 2008-11-28 오후 2:11:28 taebum modify
  1083. + model.getValue(oPath+"/roomcd" ) + " " // 병실
  1084. + model.getValue(oPath+"/patname2" ) + " " // 환자명
  1085. + model.getValue(oPath+"/sa" ) + " " // SA
  1086. + model.getValue(oPath+"/pid" ) ; // 등록번호
  1087. var sPatInfo2= model.getValue(oPath+"/depthngnm" ) + " " // 진료과
  1088. + model.getValue(oPath+"/oproomnm" ) + " " // 수술실명
  1089. + model.getValue(oPath+"/perfdridnm" ) + " " // 집도의
  1090. + model.getValue(oPath+"/opcdnm" ) // 수술명
  1091. + " (수술번호: " + model.getValue(oPath+"/oprsrvno") + ")"; //수술예약번호
  1092. model.setValue("/root/init/MmohoprsKey/patinfo" ,sPatInfo);
  1093. model.setValue("/root/init/MmohoprsKey/patinfo2",sPatInfo2);
  1094. opt_patinfo.refresh();
  1095. opt_patinfo2.refresh();
  1096. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn"); // Cart구분 O:수술, A:마취 , R:회복
  1097. //2008-08-02 오후 5:55:17 taebum add
  1098. //2009-03-10 ycd sLoginDeptcd 전역변수 처리 하여 삭제 처리
  1099. //var sLoginDeptcd = getUserInfo("dutplcecd");
  1100. sCartGubnCd = model.getValue("/root/viewctrl/viewctrllist/viewctrlinfo/cdnm");
  1101. model.setValue("/root/init/WorkData/cond/cartgubn", sCartGubnCd);
  1102. if (sCartGubn == "O") {
  1103. CartStat = model.getValue(gPathNode[6]+"/ccrtstat");
  1104. if (CartStat == "" || CartStat == "-") {
  1105. CartStat = "1";
  1106. model.setValue(gPathNode[6]+"/ccrtstat", "1");
  1107. }
  1108. } else if (sCartGubn == "A") { //2008-08-18 오전 11:29:49 기존에 마취Cart가 안흐르는 Case에서 4로 Setting 1로 변경
  1109. CartStat = model.getValue(gPathNode[6]+"/anstccrtstat");
  1110. if (CartStat == "" || CartStat == "-") {
  1111. CartStat = "1";
  1112. model.setValue(gPathNode[6]+"/anstccrtstat", "1");
  1113. }
  1114. } else if (sCartGubn == "R") {
  1115. CartStat = model.getValue(gPathNode[6]+"/rcvccrtstat");
  1116. if (CartStat == "" || CartStat == "-") {
  1117. CartStat = "4";
  1118. model.setValue(gPathNode[6]+"/rcvccrtstat", "4");
  1119. }
  1120. }
  1121. if( pFlag == "P" ) {//물품조회, 약속처방, 카트복사일때만 체크
  1122. if( (model.getValue("/root/init/WorkData/cond/cartstat") == "4")&&(CartStat >= "5") ) {
  1123. messageBox("이미 확정 처방 저장 내역이 있습니다. 재조회 후 진행합니다.!", "E000");
  1124. model.setValue("/root/init/WorkData/cond/cartstat", CartStat);
  1125. fQueryData();
  1126. }
  1127. }
  1128. model.setValue("/root/init/WorkData/cond/cartstat", CartStat);
  1129. cmb_cartstat.refresh();
  1130. //2008-08-19 오전 10:08:18 taebum 진명씨 요청 주석처리
  1131. //cart 자동 불출
  1132. /*
  1133. var sTmpOprsrvno = model.getValue("/root/main/MmohoprsLists/mmohoprslist/oprsrvno");
  1134. var sTmpOproomcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/oproomcd");
  1135. var cartbaglist = "m▦rownum▦oprsrvno▦oproomcd▦cartgubn";
  1136. var sTmpOpstatcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/opstatcd");
  1137. if( (parseInt(sTmpOpstatcd) > 29) && (parseInt(CartStat) < 3) && (sCartGubn != "R")){ //2008-07-31 오후 8:03:05 회복Cart X 수술대기 이상 Cart 불출이하 자동불출 go
  1138. cartbaglist = cartbaglist + "▩" + "u" + "▦" + "1" + "▦" + sTmpOprsrvno + "▦" + sTmpOproomcd + "▦" + sCartGubn;
  1139. model.removenode("/root/send");
  1140. model.makeValue("/root/send/cartsend" , cartbaglist );
  1141. if(submit("TXMNP03401")){
  1142. model.setValue("/root/init/WorkData/cond/cartstat", "3");
  1143. cmb_cartstat.refresh();
  1144. }
  1145. }else{
  1146. model.setValue("/root/init/WorkData/cond/cartstat", CartStat);
  1147. cmb_cartstat.refresh();
  1148. }
  1149. */
  1150. //2009-04-14 YCD 수술방명 설정
  1151. if(sCartGubnCd == "A"){
  1152. vOproomnm = model.getValue(sOprsXpath +"/oproomnm" );
  1153. }else if(sCartGubnCd == "R"){
  1154. vOproomnm = "회복실";
  1155. }else{
  1156. vOproomnm = model.getValue(sOprsXpath +"/oproomnm" );
  1157. }
  1158. }
  1159. // --------------------------------------------------
  1160. // Case Cart 처방내역 조회
  1161. // --------------------------------------------------
  1162. function fCartOrdData_Read() {
  1163. var TabCls = "C";
  1164. if (model.getValue("/root/init/WorkData/cond/cartstat") == "") {
  1165. return;
  1166. } else if (model.getValue("/root/init/WorkData/cond/cartstat") == "1" ||
  1167. model.getValue("/root/init/WorkData/cond/cartstat") == "2" ) { // 2 임시 저장, 3: 불출 ,4:임시처방, 5:처방확정, 9:불출
  1168. TabCls = "T";
  1169. }
  1170. model.removenode("/root/send");
  1171. model.makeValue("/root/send/instcd" , model.getValue(gPathNode[7]+"/instcd" )); // 기관코드
  1172. model.makeValue("/root/send/oprsrvno", model.getValue(gPathNode[7]+"/oprsrvno")); // 수술예약(의뢰)번호 (년도 + 일련번호)
  1173. model.makeValue("/root/send/ophistno", model.getValue(gPathNode[7]+"/ophistno")); // 예약번호에따른이력번호
  1174. model.makeValue("/root/send/ophistcd", model.getValue(gPathNode[7]+"/ophistcd")); // 수술예약의이력코드
  1175. model.makeValue("/root/send/instcd" , model.getValue(gPathNode[7] +"/instcd" )); // 기관코드
  1176. model.makeValue("/root/send/oprsrvno" , model.getValue(gPathNode[7] +"/oprsrvno" )); // 수술예약(의뢰)번호 (년도 + 일련번호)
  1177. // model.makeValue("/root/send/ophistno" , model.getValue(gPathNode[7] +"/ophistno" )); // 예약번호에따른이력번호
  1178. //2009.12.28 환자 보험 유형에 따른 급비로 설정 K.J.M
  1179. model.makeValue("/root/send/insukind" , model.getValue(gPathNode[6] +"/insukindcd" )); // 환자 보험 유형
  1180. //2008-08-02 오후 6:25:12 taebum add 회복은 수술카트 사용
  1181. var tempCartGb = model.getValue("/root/init/WorkData/cond/cartgubn");
  1182. /*
  1183. //2008-08-18 오후 1:16:45 taebum 회복은 R로 기존처럼 처리
  1184. if(tempCartGb == "R"){
  1185. tempCartGb = "O";
  1186. }
  1187. */
  1188. model.makeValue("/root/send/cartgubn" , tempCartGb); // Cart구분 O:수술, A:마취
  1189. // model.makeValue("/root/send/ordseq" , model.getValue("" ); // 처방순번
  1190. model.makeValue("/root/send/reqtabcls", TabCls ); // 테이블구 T:임시처방, C: 확정처방
  1191. //2008-08-02 오후 6:19:17 taebum R add
  1192. if (model.getValue("/root/init/WorkData/cond/cartgubn")=="O") { //2008-08-18 오후 1:18:03 taebum || model.getValue("/root/init/WorkData/cond/cartgubn") == "R"
  1193. model.makeValue("/root/send/ccrtno",model.getValue(gPathNode[6] + "/ccrtno")); // Cart구분 O:수술, A:마취
  1194. } else {
  1195. model.makeValue("/root/send/ccrtno",model.getValue(gPathNode[6] + "/anstccrtno")); // Cart구분 O:수술, A:마취
  1196. }
  1197. model.makeValue("/root/send/srchdelprcp" , model.getValue("/root/main/cond/srchdelprcp")); // 조회(삭제처방)
  1198. model.makeValue("/root/send/srchcalcflag" , model.getValue("/root/main/cond/srchcalcflag")); // 조회(수가물품)
  1199. model.makeValue("/root/send/grupcd", model.getValue(rdo_grupcd.attribute("ref")));
  1200. submit("TRMNP01801"); // CaseCart처방내역 정보를 가져온다.
  1201. //2008-08-18 오후 10:14:47 taebum 약/주사 처방일 경우 조회된 내역의 복용방법 컬럼 read-only 상태 처리
  1202. var iDrugCnt = getNodesetCount("/root/main/CartOrdData/ListDrug");
  1203. //2008-10-03 오후 11:21:49 taebum 약/주사 처방일 경우 확정 처방저장을 하였을 경우에만 용법을 read-only상태처리
  1204. var CartStat = model.getValue("/root/init/WorkData/cond/cartstat");
  1205. if(iDrugCnt > 0){
  1206. for(var i = 1; i <= iDrugCnt; i++ ){
  1207. grd_drug.rebuildStyle(i);
  1208. if(grd_drug.valueMatrix(i,grd_drug.colRef("addinfoflag")) == "★"){
  1209. grd_drug.cellstyle("color", i, grd_drug.colRef("addinfoflag"), i, grd_drug.colRef("addinfoflag")) = "#FF0000";
  1210. }else if(grd_drug.valueMatrix(i,grd_drug.colRef("addinfoflag")) == "☆"){
  1211. grd_drug.cellstyle("color", i, grd_drug.colRef("addinfoflag"), i, grd_drug.colRef("addinfoflag")) = "#000000";
  1212. }else if(grd_drug.valueMatrix(i,grd_drug.colRef("addinfoflag")) == "●"){
  1213. grd_drug.cellstyle("color", i, grd_drug.colRef("addinfoflag"), i, grd_drug.colRef("addinfoflag")) = "#0000FF";
  1214. }else{
  1215. grd_drug.cellstyle("color", i, grd_drug.colRef("addinfoflag"), i, grd_drug.colRef("addinfoflag")) = "#000000";
  1216. }
  1217. if(grd_drug.valueMatrix(i,grd_drug.colRef("deleteyn")) == "X"){
  1218. grd_drug.isReadOnly(i, grd_drug.colRef("delcheck"), i, grd_drug.colRef("reqmthd")) = true;
  1219. }else{
  1220. if(CartStat >= "5"){
  1221. grd_drug.isReadOnly(i, grd_drug.colRef("delcheck"), i, grd_drug.colRef("reqmthd")) = false;
  1222. grd_drug.isReadOnly(i, grd_drug.colRef("drugmthdspccd")) = true; //용법 read-only 처리
  1223. }
  1224. }
  1225. if(grd_drug.valueMatrix(i,grd_drug.colRef("expnyn")) == "●"){
  1226. grd_drug.cellstyle("color", i, grd_drug.colRef("expnyn"), i, grd_drug.colRef("expnyn")) = "#fee580";
  1227. }else{
  1228. grd_drug.cellstyle("color", i, grd_drug.colRef("expnyn"), i, grd_drug.colRef("expnyn")) = "#000000";
  1229. }
  1230. //2009-03-10 YCD 급여정보는 콤보선택으로 수정할 수 없도록 처리함
  1231. grd_drug.isReadOnly(i, grd_drug.colRef("payflagcd"), i, grd_drug.colRef("payflagcd"))= true;
  1232. //20110629 wify 경북대 저장된처방은 기왕증유무 변경할수 없음.
  1233. if(grd_drug.valueMatrix(i,grd_drug.colRef("prcpno")) > 0 ){
  1234. // grd_drug.isReadOnly(i, grd_drug.colRef("anamneflag"), i, grd_drug.colRef("anamneflag"))= true;
  1235. }
  1236. }
  1237. grd_drug.refresh();
  1238. }
  1239. //2008-09-05 오후 8:38:53 taebum 삭제일 경우 disable 되도록 처리함.
  1240. var iTmpCnt = getNodesetCount("/root/main/CartOrdData/ListSupplies");
  1241. if(iTmpCnt > 0){
  1242. for(var i = 1; i <= iTmpCnt; i++ ){
  1243. grd_supplies.rebuildStyle(i);
  1244. if(grd_supplies.valueMatrix(i,grd_supplies.colRef("addinfoflag")) == "★"){
  1245. grd_supplies.cellstyle("color", i, grd_supplies.colRef("addinfoflag"), i, grd_supplies.colRef("addinfoflag")) = "#FF0000";
  1246. }else if(grd_supplies.valueMatrix(i,grd_supplies.colRef("addinfoflag")) == "☆"){
  1247. grd_supplies.cellstyle("color", i, grd_supplies.colRef("addinfoflag"), i, grd_supplies.colRef("addinfoflag")) = "#000000";
  1248. }else if(grd_supplies.valueMatrix(i,grd_supplies.colRef("addinfoflag")) == "●"){
  1249. grd_supplies.cellstyle("color", i, grd_supplies.colRef("addinfoflag"), i, grd_supplies.colRef("addinfoflag")) = "#0000FF";
  1250. }else{
  1251. grd_supplies.cellstyle("color", i, grd_supplies.colRef("addinfoflag"), i, grd_supplies.colRef("addinfoflag")) = "#000000";
  1252. }
  1253. if(grd_supplies.valueMatrix(i, grd_supplies.colRef("deleteyn")) == "X"){
  1254. grd_supplies.isReadOnly(i, grd_supplies.colRef("delcheck"), i, grd_supplies.colRef("reqmthd")) = true;
  1255. }else{
  1256. grd_supplies.isReadOnly(i, grd_supplies.colRef("delcheck"), i, grd_supplies.colRef("reqmthd")) = false;
  1257. }
  1258. if(grd_supplies.valueMatrix(i,grd_supplies.colRef("expnyn")) == "●"){
  1259. grd_supplies.cellstyle("color", i, grd_supplies.colRef("expnyn"), i, grd_supplies.colRef("expnyn")) = "#fee580";
  1260. }else{
  1261. grd_supplies.cellstyle("color", i, grd_supplies.colRef("expnyn"), i, grd_supplies.colRef("expnyn")) = "#000000";
  1262. }
  1263. //2009-03-10 YCD 급여정보는 콤보선택으로 수정할 수 없도록 처리함
  1264. grd_supplies.isReadOnly(i, grd_supplies.colRef("payflagcd"), i, grd_supplies.colRef("payflagcd"))= true;
  1265. //20110325 이선경(경북대) : 재료(물품)처방 외엔 응급체크 Disable = True
  1266. if(grd_supplies.valueMatrix(i,grd_supplies.colRef("prcpclscd")) != "M2"){
  1267. grd_supplies.isReadOnly(i, grd_supplies.colRef("erprcpflag"), i, grd_supplies.colRef("erprcpflag"))= true;
  1268. }
  1269. //20110328 이선경(경북대) : 저장된 처방은 응급처방체크 변경할수 없음
  1270. //20110407 이선경(경북대) : 저장된 처방중에도 임시처방이 아닌 경우만 비활성화
  1271. //20110407 이선경(경북대) : 저장된 처방중에도 임시처방이 아닌 경우 또는 추가처방이 아닌경우는 비활성화
  1272. //20110629 wify 경북대 : 저장된 처방은 기왕증유무 변경할수 없음
  1273. if(grd_supplies.valueMatrix(i,grd_supplies.colRef("prcpno")) > 0 || grd_supplies.valueMatrix(i,grd_supplies.colRef("goodcrflag")) != "E"){
  1274. grd_supplies.isReadOnly(i, grd_supplies.colRef("erprcpflag"), i, grd_supplies.colRef("erprcpflag"))= true;
  1275. // grd_supplies.isReadOnly(i, grd_supplies.colRef("anamneflag"), i, grd_supplies.colRef("anamneflag"))= true;
  1276. }
  1277. }
  1278. grd_supplies.refresh();
  1279. }
  1280. //2008-09-05 오후 8:38:53 taebum 삭제일 경우 disable 되도록 처리함.
  1281. //iTmpCnt = getNodesetCount("/root/main/CartOrdData/ListCurecode");
  1282. iTmpCnt = getNodesetCount("/root/main/CartOrdData/ListDiposit");
  1283. if(iTmpCnt > 0){
  1284. for(var i = 1; i <= iTmpCnt; i++ ){
  1285. grd_diposit.rebuildStyle(i);
  1286. if(grd_diposit.valueMatrix(i, grd_diposit.colRef("addinfoflag")) == "★"){
  1287. grd_diposit.cellstyle("color", i, grd_diposit.colRef("addinfoflag"), i, grd_diposit.colRef("addinfoflag")) = "#FF0000";
  1288. }else if(grd_diposit.valueMatrix(i, grd_diposit.colRef("addinfoflag")) == "☆"){
  1289. grd_diposit.cellstyle("color", i, grd_diposit.colRef("addinfoflag"), i, grd_diposit.colRef("addinfoflag")) = "#000000";
  1290. }else if(grd_diposit.valueMatrix(i, grd_diposit.colRef("addinfoflag")) == "●"){
  1291. grd_diposit.cellstyle("color", i, grd_diposit.colRef("addinfoflag"), i, grd_diposit.colRef("addinfoflag")) = "#0000FF";
  1292. }else{
  1293. grd_diposit.cellstyle("color", i, grd_diposit.colRef("addinfoflag"), i, grd_diposit.colRef("addinfoflag")) = "#000000";
  1294. }
  1295. if(grd_diposit.valueMatrix(i, grd_diposit.colRef("deleteyn")) == "X"){
  1296. grd_diposit.isReadOnly(i, grd_diposit.colRef("delcheck"), i, grd_diposit.colRef("reqmthd")) = true;
  1297. }else{
  1298. grd_diposit.isReadOnly(i, grd_diposit.colRef("delcheck"), i, grd_diposit.colRef("reqmthd")) = false;
  1299. }
  1300. if(grd_diposit.valueMatrix(i,grd_diposit.colRef("expnyn")) == "●"){
  1301. grd_diposit.cellstyle("color", i, grd_diposit.colRef("expnyn"), i, grd_diposit.colRef("expnyn")) = "#fee580";
  1302. }else{
  1303. grd_diposit.cellstyle("color", i, grd_diposit.colRef("expnyn"), i, grd_diposit.colRef("expnyn")) = "#000000";
  1304. }
  1305. //2009-03-10 YCD 급여정보는 콤보선택으로 수정할 수 없도록 처리함
  1306. grd_diposit.isReadOnly(i, grd_diposit.colRef("payflagcd"), i, grd_diposit.colRef("payflagcd"))= true;
  1307. //20110629 wify 경북대 저장된처방은 기왕증유무 변경할수 없음.
  1308. if(grd_diposit.valueMatrix(i,grd_diposit.colRef("prcpno")) > 0 ){
  1309. // grd_diposit.isReadOnly(i, grd_diposit.colRef("anamneflag"), i, grd_diposit.colRef("anamneflag"))= true;
  1310. }
  1311. }
  1312. //grd_diposit.refresh(); grd_diposit -> grd_diposit 변경
  1313. grd_diposit.refresh();
  1314. }
  1315. //2008-09-05 오후 8:38:53 taebum 삭제일 경우 disable 되도록 처리함.
  1316. iTmpCnt = getNodesetCount("/root/main/CartOrdData/ListInstrument");
  1317. if(iTmpCnt > 0){
  1318. for(var i = 1; i <= iTmpCnt; i++ ){
  1319. grd_instrument.rebuildStyle(i);
  1320. if(grd_instrument.valueMatrix(i, grd_instrument.colRef("addinfoflag")) == "★"){
  1321. grd_instrument.cellstyle("color", i, grd_instrument.colRef("addinfoflag"), i, grd_instrument.colRef("addinfoflag")) = "#FF0000";
  1322. }else if(grd_instrument.valueMatrix(i,grd_instrument.colRef("addinfoflag")) == "☆"){
  1323. grd_instrument.cellstyle("color", i, grd_instrument.colRef("addinfoflag"), i, grd_instrument.colRef("addinfoflag")) = "#000000";
  1324. }else if(grd_instrument.valueMatrix(i,grd_instrument.colRef("addinfoflag")) == "●"){
  1325. grd_instrument.cellstyle("color", i, grd_instrument.colRef("addinfoflag"), i, grd_instrument.colRef("addinfoflag")) = "#0000FF";
  1326. }else{
  1327. grd_instrument.cellstyle("color", i, grd_instrument.colRef("addinfoflag"), i, grd_instrument.colRef("addinfoflag")) = "#000000";
  1328. }
  1329. if(grd_instrument.valueMatrix(i,grd_instrument.colRef("deleteyn")) == "X"){
  1330. grd_instrument.isReadOnly(i, grd_instrument.colRef("delcheck"), i, grd_instrument.colRef("reqmthd")) = true;
  1331. }else{
  1332. grd_instrument.isReadOnly(i, grd_instrument.colRef("delcheck"), i, grd_instrument.colRef("reqmthd")) = false;
  1333. }
  1334. if(grd_instrument.valueMatrix(i,grd_instrument.colRef("expnyn")) == "●"){
  1335. grd_instrument.cellstyle("color", i, grd_instrument.colRef("expnyn"), i, grd_instrument.colRef("expnyn")) = "#fee580";
  1336. }else{
  1337. grd_instrument.cellstyle("color", i, grd_instrument.colRef("expnyn"), i, grd_instrument.colRef("expnyn")) = "#000000";
  1338. }
  1339. //2009-03-10 YCD 급여정보는 콤보선택으로 수정할 수 없도록 처리함(Instrument는 급여 선택 필요없음)
  1340. //grd_instrument.isReadOnly(i, grd_instrument.colRef("payflagcd"), i, grd_instrument.colRef("payflagcd"))= true;
  1341. grd_instrument.isReadOnly(i, grd_instrument.colRef("goodcrflag"), i, grd_instrument.colRef("goodcrflag"))= true;
  1342. if(grd_instrument.valueMatrix(i,grd_instrument.colRef("goodcrflag")) == "S" ){
  1343. grd_instrument.cellstyle("background-color", i, grd_instrument.colRef("goodcrflag"), i, grd_instrument.colRef("goodcrflag")) = "#FFFFFF";
  1344. grd_instrument.cellstyle("background-color", i, grd_instrument.colRef("outqty"), i, grd_instrument.colRef("outqty")) = "#ccffcc";
  1345. if(grd_instrument.valueMatrix(i,grd_instrument.colRef("deliveyn")) == "Y"){
  1346. grd_instrument.isReadOnly(i, grd_instrument.colRef("outqty"), i, grd_instrument.colRef("outqty"))= true;
  1347. }
  1348. }else{
  1349. if(grd_instrument.valueMatrix(i,grd_instrument.colRef("deliveyn")) == "N"){
  1350. grd_instrument.cellstyle("background-color", i, grd_instrument.colRef("goodcrflag"), i, grd_instrument.colRef("goodcrflag")) = "#FF0000";
  1351. grd_instrument.cellstyle("background-color", i, grd_instrument.colRef("outqty"), i, grd_instrument.colRef("outqty")) = "#FFFFFF";
  1352. }else{
  1353. grd_instrument.isReadOnly(i, grd_instrument.colRef("outqty"), i, grd_instrument.colRef("outqty"))= true;
  1354. grd_instrument.cellstyle("background-color", i, grd_instrument.colRef("goodcrflag"), i, grd_instrument.colRef("goodcrflag")) = "#FFFFFF";
  1355. grd_instrument.cellstyle("background-color", i, grd_instrument.colRef("outqty"), i, grd_instrument.colRef("outqty")) = "#FFFFFF";
  1356. }
  1357. }
  1358. //20110629 wify 경북대 저장된처방은 기왕증유무 변경할수 없음.
  1359. // if(grd_instrument.valueMatrix(i,grd_instrument.colRef("prcpno")) > 0 ){
  1360. // grd_instrument.isReadOnly(i, grd_instrument.colRef("anamneflag"), i, grd_instrument.colRef("anamneflag"))= true;
  1361. // }
  1362. }
  1363. grd_instrument.refresh();
  1364. }
  1365. //2008-09-05 오후 8:38:53 taebum 삭제일 경우 disable 되도록 처리함.
  1366. iTmpCnt = getNodesetCount("/root/main/CartOrdData/ListOpsupply");
  1367. if(iTmpCnt > 0){
  1368. for(var i = 1; i <= iTmpCnt; i++ ){
  1369. grd_opsupply.rebuildStyle(i);
  1370. if(grd_opsupply.valueMatrix(i, grd_opsupply.colRef("addinfoflag")) == "★"){
  1371. grd_opsupply.cellstyle("color", i, grd_opsupply.colRef("addinfoflag"), i, grd_opsupply.colRef("addinfoflag")) = "#FF0000";
  1372. }else if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("addinfoflag")) == "☆"){
  1373. grd_opsupply.cellstyle("color", i, grd_opsupply.colRef("addinfoflag"), i, grd_opsupply.colRef("addinfoflag")) = "#000000";
  1374. }else if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("addinfoflag")) == "●"){
  1375. grd_opsupply.cellstyle("color", i, grd_opsupply.colRef("addinfoflag"), i, grd_opsupply.colRef("addinfoflag")) = "#0000FF";
  1376. }else{
  1377. grd_opsupply.cellstyle("color", i, grd_opsupply.colRef("addinfoflag"), i, grd_opsupply.colRef("addinfoflag")) = "#000000";
  1378. }
  1379. if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("deleteyn")) == "X"){
  1380. grd_opsupply.isReadOnly(i, grd_opsupply.colRef("delcheck"), i, grd_opsupply.colRef("reqmthd")) = true;
  1381. }else{
  1382. grd_opsupply.isReadOnly(i, grd_opsupply.colRef("delcheck"), i, grd_opsupply.colRef("reqmthd")) = false;
  1383. }
  1384. if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("expnyn")) == "●"){
  1385. grd_opsupply.cellstyle("color", i, grd_opsupply.colRef("expnyn"), i, grd_opsupply.colRef("expnyn")) = "#fee580";
  1386. }else{
  1387. grd_opsupply.cellstyle("color", i, grd_opsupply.colRef("expnyn"), i, grd_opsupply.colRef("expnyn")) = "#000000";
  1388. }
  1389. //2009-03-10 YCD 급여정보는 콤보선택으로 수정할 수 없도록 처리함(Instrument는 급여 선택 필요없음)
  1390. //grd_opsupply.isReadOnly(i, grd_opsupply.colRef("payflagcd"), i, grd_opsupply.colRef("payflagcd"))= true;
  1391. grd_opsupply.isReadOnly(i, grd_opsupply.colRef("goodcrflag"), i, grd_opsupply.colRef("goodcrflag"))= true;
  1392. if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("goodcrflag")) == "S" ){
  1393. grd_opsupply.cellstyle("background-color", i, grd_opsupply.colRef("goodcrflag"), i, grd_opsupply.colRef("goodcrflag")) = "#FFFFFF";
  1394. grd_opsupply.cellstyle("background-color", i, grd_opsupply.colRef("outqty"), i, grd_opsupply.colRef("outqty")) = "#ccffcc";
  1395. if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("deliveyn")) == "Y"){
  1396. grd_opsupply.isReadOnly(i, grd_opsupply.colRef("outqty"), i, grd_opsupply.colRef("outqty"))= true;
  1397. }
  1398. }else{
  1399. if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("deliveyn")) == "N"){
  1400. grd_opsupply.cellstyle("background-color", i, grd_opsupply.colRef("goodcrflag"), i, grd_opsupply.colRef("goodcrflag")) = "#FF0000";
  1401. grd_opsupply.cellstyle("background-color", i, grd_opsupply.colRef("outqty"), i, grd_opsupply.colRef("outqty")) = "#FFFFFF";
  1402. }else{
  1403. grd_opsupply.isReadOnly(i, grd_opsupply.colRef("outqty"), i, grd_opsupply.colRef("outqty"))= true;
  1404. grd_opsupply.cellstyle("background-color", i, grd_opsupply.colRef("goodcrflag"), i, grd_opsupply.colRef("goodcrflag")) = "#FFFFFF";
  1405. grd_opsupply.cellstyle("background-color", i, grd_opsupply.colRef("outqty"), i, grd_opsupply.colRef("outqty")) = "#FFFFFF";
  1406. }
  1407. }
  1408. //20110629 wify 경북대 저장된처방은 기왕증유무 변경할수 없음.
  1409. // if(grd_opsupply.valueMatrix(i,grd_opsupply.colRef("prcpno")) > 0 ){
  1410. // grd_opsupply.isReadOnly(i, grd_opsupply.colRef("anamneflag"), i, grd_opsupply.colRef("anamneflag"))= true;
  1411. // }
  1412. }
  1413. grd_opsupply.refresh();
  1414. }
  1415. }
  1416. // --------------------------------------------------
  1417. // 수술방별 안전재고와 재고량 내역 조회
  1418. // --------------------------------------------------
  1419. function fMnprdrugData_Read() {
  1420. var RoomPath = "/root/main/MnprdrugLists/mnprdruglist";
  1421. model.removeNodeset(RoomPath);
  1422. model.removenode("/root/send");
  1423. model.makeValue("/root/send/instcd" , model.getValue("/root/init/instcd" )); // 기관코드
  1424. model.makeValue("/root/send/goodcd" , model.getValue("/root/init/WorkData/InputGood/goodcd" )); // 물품코드
  1425. model.makeValue("/root/send/allsizespecid", model.getValue("/root/init/WorkData/InputGood/allsizespecid" )); // ALLSIZE규격ID
  1426. model.makeValue("/root/send/ordseq" , model.getValue("/root/init/WorkData/InputGood/ordseq" )); // 처방순번
  1427. model.makeValue("/root/send/oprsrvno" , model.getValue(gPathNode[6] + "/oprsrvno")); // 수술예약(의뢰)번호
  1428. model.makeValue("/root/send/cartgubn" , model.getValue("/root/init/WorkData/cond/cartgubn"));
  1429. // model.makeValue("/root/send/oproomcd" , model.getValue(gPathNode[6] + "/oproomcd")); // 수술방
  1430. // 2009-03-04 ycd 삭제처리
  1431. //bbt_other.disabled = true;
  1432. if (submit("TRMNP01802")) { // 수술예약정보를 가져온다.
  1433. if (getNodesetCount(RoomPath) > 0) {
  1434. // 2009-03-04 ycd 삭제처리
  1435. //bbt_other.disabled = false;
  1436. }
  1437. }
  1438. var RoomData = fRoomQtyCheck();
  1439. model.setValue("/root/init/WorkData/InputGood/roomdata",fRoomQtyCheck());
  1440. out_roomdata.refresh();
  1441. }
  1442. //
  1443. // 수술방별 안전재고와 재고량 내역 합하기
  1444. //
  1445. function fRoomQtyCheck(){
  1446. var RoomDisp = "";
  1447. var RoomData = "";
  1448. var DrugPath = "/root/main/MnprdrugLists";
  1449. var xNode = instance1.selectSingleNode(DrugPath+"/mnprdruglist");
  1450. var nLen = 0;
  1451. if (xNode != null) {
  1452. nLen = (xNode.length == 0) ? 1 : xNode.length;
  1453. }
  1454. var dRoomCd = model.getValue(gPathNode[6] + "/oproomcd"); // 수술방
  1455. var DrugNode = DrugPath + "/mnprdruglist";
  1456. for (i = 1; i <= nLen; i++) {
  1457. if (model.getValue(DrugNode + "["+i+"]/oproomcd") == dRoomCd) {
  1458. // model.setValue("/root/init/WorkData/InputGood/stocqty",model.getValue(DrugNode + "["+i+"]/stocqty"));
  1459. model.removenode(DrugNode + "["+i+"]");
  1460. } else {
  1461. RoomDisp = model.getValue(DrugNode + "["+i+"]/oproomnm") + " ["
  1462. + model.getValue(DrugNode + "["+i+"]/stocqty") + " / "
  1463. + model.getValue(DrugNode + "["+i+"]/safestocqty") + "] " ;
  1464. // model.setValue(DrugNode + "["+i+"]/dispnm", RoomDisp);
  1465. RoomData += RoomDisp;
  1466. }
  1467. }
  1468. return RoomData;
  1469. }
  1470. //
  1471. function fDeleteCheck(pIdx, pRow){
  1472. var wCartPath = gPathNode[8]+"/"+tPathCart[pIdx]+ "[" + (pRow) +"]";
  1473. if ( model.getValue(wCartPath+"/deleteyn") =='X') {
  1474. alert("삭제된 처방입니다!!" );
  1475. model.setValue(wCartPath+"/delcheck","false");
  1476. }
  1477. }
  1478. // 물품 추가 Check
  1479. function fGoodClick(pIdx, pGrid){
  1480. var pRow = pGrid.row;
  1481. var GoodNode = "/root/init/WorkData/InputGood";
  1482. // var wCartPath = gPathNode[8]+"/"+tPathCart[pIdx]+ "[" + (pRow) +"]";
  1483. wGoodCd = pGrid.valueMatrix(pGrid.row, pGrid.colRef("goodcd"));
  1484. wGoodSz = pGrid.valueMatrix(pGrid.row, pGrid.colRef("allsizespecid"));
  1485. //2008-09-21 오후 3:02:14 taebum 해당 seq에 대한 물품 정보 조회하도록 변경.
  1486. var sTmpOrdseq = pGrid.valueMatrix(pGrid.row, pGrid.colRef("ordseq"));
  1487. var wCartPath = gPathNode[8]+"/"+tPathCart[pIdx]+ "[goodcd='"+ wGoodCd+"' and allsizespecid='"+wGoodSz+"' and ordseq = '"+sTmpOrdseq+"']";
  1488. // alert(wGoodCd+"==>"+model.getValue(wCartPath2+"/goodengnm"));
  1489. model.setValue(GoodNode + "/oprsrvno" , model.getValue(wCartPath + "/oprsrvno" )); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  1490. model.setValue(GoodNode + "/cartgubn" , model.getValue(wCartPath + "/cartgubn" )); // 02 Cart구분 (O:수술,A:마취)
  1491. model.setValue(GoodNode + "/ordseq" , model.getValue(wCartPath + "/ordseq" )); // 03 처방순번
  1492. model.setValue(GoodNode + "/instcd" , model.getValue(wCartPath + "/instcd" )); // 04 병원기관코드(코드정의서 Z0007 참조)
  1493. model.setValue(GoodNode + "/goodcd" , model.getValue(wCartPath + "/goodcd" )); // 05 물품코드
  1494. model.setValue(GoodNode + "/allsizespecid" , model.getValue(wCartPath + "/allsizespecid" )); // 06 ALLSIZE규격ID
  1495. model.setValue(GoodNode + "/goodcls" , model.getValue(wCartPath + "/goodcls" )); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  1496. model.setValue(GoodNode + "/goodqty" , model.getValue(wCartPath + "/goodqty" )); // 08 물품수량
  1497. model.setValue(GoodNode + "/addreductqty" , model.getValue(wCartPath + "/addreductqty" )); // 09 가감수량
  1498. model.setValue(GoodNode + "/payflagcd" , model.getValue(wCartPath + "/payflagcd" )); // 10 급여구분코드 (코드정의서 M0029 참조)
  1499. model.setValue(GoodNode + "/oproomcd" , model.getValue(wCartPath + "/oproomcd" )); // 11 수술실코드
  1500. model.setValue(GoodNode + "/prcpdd" , model.getValue(wCartPath + "/prcpdd" )); // 12 처방일자
  1501. model.setValue(GoodNode + "/prcpno" , model.getValue(wCartPath + "/prcpno" )); // 13 처방일자별 일련번호
  1502. model.setValue(GoodNode + "/prcphistno" , model.getValue(wCartPath + "/prcphistno" )); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  1503. model.setValue(GoodNode + "/pid" , model.getValue(wCartPath + "/pid" )); // 15 등록번호
  1504. model.setValue(GoodNode + "/saveqty" , model.getValue(wCartPath + "/saveqty" )); // 16 변경Check 수량 (물품수량 + 가감수량)
  1505. model.setValue(GoodNode + "/outqty" , model.getValue(wCartPath + "/outqty" )); // 17 변경할 수량 (물품수량 + 가감수량)
  1506. model.setValue(GoodNode + "/goodengnm" , model.getValue(wCartPath + "/goodengnm" )); // 18 물품(처방)명
  1507. model.setValue(GoodNode + "/goodspec" , model.getValue(wCartPath + "/goodspec" )); // 19 규격명
  1508. model.setValue(GoodNode + "/prodcmpynm" , model.getValue(wCartPath + "/prodcmpynm" )); // 20 제조사
  1509. model.setValue(GoodNode + "/goodmodel" , model.getValue(wCartPath + "/goodmodel" )); // 21 모델
  1510. model.setValue(GoodNode + "/prcpunit" , model.getValue(wCartPath + "/prcpunit" )); // 22 단위
  1511. model.setValue(GoodNode + "/deliveunit" , model.getValue(wCartPath + "/deliveunit" )); // 22-1 단위
  1512. model.setValue(GoodNode + "/oproomnm" , model.getValue(wCartPath + "/oproomnm" )); // 23 수술실명
  1513. model.setValue(GoodNode + "/oproomdeptcd" , model.getValue(wCartPath + "/oproomdeptcd" )); // 24 수술실부서코드
  1514. model.setValue(GoodNode + "/recflag" , model.getValue(wCartPath + "/recflag" )); // 25 U:수정,I:입력구분
  1515. model.setValue(GoodNode + "/drugmthdspccd" , model.getValue(wCartPath + "/drugmthdspccd" )); // 28 투여방법 및 검체코드
  1516. // 29 재고량
  1517. model.setValue(GoodNode + "/acmlbaseqty" , model.getValue(wCartPath + "/acmlbaseqty" )); // 30 기준수량
  1518. model.setValue(GoodNode + "/prcpclscd" , model.getValue(wCartPath + "/prcpclscd" )); // 31 처방구분
  1519. model.setValue(GoodNode + "/reqmthd" , model.getValue(wCartPath + "/reqmthd" )); // 32 청구방법
  1520. // 33 처방발행구분(S : 정규, E : 응급 )
  1521. model.setValue(GoodNode + "/purcflag" , model.getValue(wCartPath + "/purcflag" )); // 34 구매구분
  1522. // model.setValue(GoodNode + "/recflagnm" , model.getValue(wCartPath + "/recflagnm" )); // 추가구분명 추
  1523. //2008-07-16 오후 3:33:40 taebum 보험단가, 보험정보, 사용구분, 입고구분, 청구방법 추가.
  1524. model.setValue(GoodNode + "/limresn" , model.getValue(wCartPath + "/limresn" )); // limresn
  1525. model.setValue(GoodNode + "/insucost" , model.getValue(wCartPath + "/insucost" )); // insucost
  1526. model.setValue(GoodNode + "/useflagnm" , model.getValue(wCartPath + "/useflagnm" )); // useflagnm
  1527. model.setValue(GoodNode + "/winflagnm" , model.getValue(wCartPath + "/winflagnm" )); // winflagnm
  1528. model.setValue(GoodNode + "/reqmthdnm" , model.getValue(wCartPath + "/reqmthdnm" )); // reqmthdnm
  1529. model.setValue(GoodNode + "/goodpurccost" , model.getValue(wCartPath + "/goodpurccost" )); // 구입단가
  1530. model.setValue(GoodNode + "/prcpunit" , model.getValue(wCartPath + "/prcpunit" )); // 처방단위
  1531. model.setValue(GoodNode + "/calcscorcd" , model.getValue(wCartPath + "/calcscorcd" )); // 수가코드
  1532. model.setValue(GoodNode + "/reqprid" , model.getValue(wCartPath + "/reqprid" )); // 청구주기
  1533. //2009-03-04 YCD 추가 사항
  1534. model.setValue(GoodNode + "/edicd" , model.getValue(wCartPath + "/edicd" )); // EDI코드
  1535. model.setValue(GoodNode + "/oldcd" , model.getValue(wCartPath + "/oldcd" )); // 구코드
  1536. model.setValue(GoodNode + "/insupynpy1" , model.getValue(wCartPath + "/insupynpy1" )); // 급여구분
  1537. model.setValue(GoodNode + "/setplceordflag" , model.getValue(wCartPath + "/setplceordflag" )); // SET처방
  1538. model.setValue(GoodNode + "/prcpqty" , model.getValue(wCartPath + "/prcpqty" )); // 처방수량
  1539. model.setValue(GoodNode + "/deliveqty" , model.getValue(wCartPath + "/deliveqty" )); // 청구수량
  1540. model.setValue(GoodNode + "/calcyn" , model.getValue(wCartPath + "/calcyn" )); // 수가여부
  1541. model.setValue(GoodNode + "/mngtflag" , model.getValue(wCartPath + "/mngtflag" )); // set여부
  1542. model.setValue(GoodNode + "/bothaddrate" , model.getValue(wCartPath + "/bothaddrate" )); // 최소처방
  1543. model.setValue(GoodNode + "/goodunitcost" , model.getValue(wCartPath + "/goodunitcost" )); // 구매단가
  1544. model.setValue(GoodNode + "/old_payflagcd" , model.getValue(wCartPath + "/payflagcd" )); // 10 급여구분코드 (코드정의서 M0029 참조)
  1545. model.setValue(GoodNode + "/calculyn" , model.getValue(wCartPath + "/calculyn" )); // 산정여부
  1546. model.setValue(GoodNode + "/todd" , model.getValue(wCartPath + "/todd" )); // 처방종료
  1547. model.setValue(GoodNode + "/listodd" , model.getValue(wCartPath + "/listodd" )); // 진료지원종료
  1548. model.setValue(GoodNode + "/spcmtodd" , model.getValue(wCartPath + "/spcmtodd" )); // 진검종료
  1549. model.setValue(GoodNode + "/goodinfo" , model.getValue(wCartPath + "/goodinfo" )); // 물품정보
  1550. model.setValue(GoodNode + "/prcpinfo" , model.getValue(wCartPath + "/prcpinfo" )); // 처방정보
  1551. //2009-03-04 ycd 삭제처리
  1552. //inp_good.currentText = model.getValue(wCartPath +"/goodcd"); // 물품코드
  1553. //model.setValue(GoodNode + "/goodcd" , model.getValue(wCartPath + "/goodcd" )); // 물품코드
  1554. fMnprdrugData_Read(); //수술방별 안전재고와 재고량 내역 조회
  1555. //grp_good.refresh();
  1556. model.refresh();
  1557. }
  1558. /**
  1559. *
  1560. * 수술마취 약속처방에서 추가 버튼을 눌렀을 경우 이벤트
  1561. * @ param : pSendData
  1562. * goodcd + "▥" + allsizespecid + "▥" + goodcls + "▥" + goodqty + "▥" + payflagcd + "▥" +
  1563. * goodqty + "▥" + goodengnm + "▥" + goodspec + "▥" + makernm + "▥" + goodmodel + "▥" +
  1564. * deliveunit + "▥" + drugmthdspccd + "▧" ;
  1565. * @ 2008-08-21 오전 4:11:17 taebum STOCQTY(해당 수술방에 대한 실재고량) 추가
  1566. */
  1567. function fNurseOrderMake(pSendData){
  1568. //fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  1569. var vOprsrvno = model.getValue(sOprsXpath + "/oprsrvno" ); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  1570. //2008-08-02 오후 6:25:12 taebum add 회복은 수술카트 사용
  1571. //var vCartgubn = model.getValue("/root/init/WorkData/cond/cartgubn"); // 02 Cart구분 (O:수술,A:마취, R:회복) //이전
  1572. var tempCartGb = model.getValue("/root/init/WorkData/cond/cartgubn");
  1573. /*
  1574. //2008-08-18 오후 1:22:56 taebum 기존처럼 R로 처리
  1575. if(tempCartGb == "R"){
  1576. tempCartGb = "O";
  1577. }
  1578. */
  1579. //2008-10-28 오후 5:16:21 taebum add 카트상태 추가
  1580. var sTmpCartstat = model.getValue("/root/init/WorkData/cond/cartstat");
  1581. var vCartgubn = tempCartGb; // 02 Cart구분 (O:수술,A:마취, R:회복)
  1582. var vOrdseq = "" ; // 03 처방순번
  1583. var vInstcd = model.getValue(sOprsXpath +"/instcd" ); // 04 병원기관코드(코드정의서 Z0007 참조)
  1584. var vGoodcd = ""; // goodcd // 05 물품코드
  1585. var vAllsizespecid = ""; // allsizespecid // 06 ALLSIZE규격ID
  1586. var vGoodcls = ""; // goodcls // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  1587. var vGoodqty = "0"; // 08 물품수량
  1588. //2008-09-06 오후 2:23:05 taebum
  1589. var vAddreductqty = "0"; // goodqty vAddreductqty ""에서 "0"으로 변경 // 09 가감수량
  1590. var vPayflagcd = ""; // payflagcd // 10 급여구분코드 (코드정의서 M0029 참조)
  1591. var vOproomcd = model.getValue(sOprsXpath +"/oproomcd" ); // 11 수술실코드
  1592. var vPrcpdd = "" ; // 12 처방일자
  1593. var vPrcpno = "0" ; // 13 처방일자별 일련번호
  1594. var vPrcphistno = "0" ; // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  1595. var vPid = model.getValue(sOprsXpath + "/pid" ); // 15 등록번호
  1596. var vSaveqty = "0"; // 16 변경Check 수량 (물품수량 + 가감수량)
  1597. var vOutqty = ""; // goodqty // 17 변경할 수량 (물품수량 + 가감수량)
  1598. var vGoodengnm = ""; // goodengnm // 18 물품(처방)명
  1599. var vGoodspec = ""; // goodspec // 19 규격명
  1600. var vProdcmpynm = ""; // makernm // 20 제조사
  1601. var vGoodmodel = ""; // goodmodel // 21 모델
  1602. var vDeliveunit = ""; // deliveunit // 22 단위
  1603. //2009-04-14 ycd 전역별수로 설정
  1604. //var vOproomnm = model.getValue(sOprsXpath +"/oproomnm" ); // 23 수술실명
  1605. var vOproomdeptcd = model.getValue(sOprsXpath +"/oproomdeptcd" ); // 24 수술실부서코드
  1606. var vRecflag = "I" ; // 25 U:수정,I:입력구분
  1607. var vRecflagnm = ""; // 26 추가구분명 추
  1608. var vDrugmthdspccd = ""; //drugmthdspccd // 28 투여방법 및 검체코드
  1609. var vStocqty = ""; // 29 재고수량
  1610. var vAcmlbaseqty = ""; // 30 기준수량
  1611. var vPrcpclscd = ""; // 처방분류코드
  1612. var vReqmthd = ""; // 청구방법
  1613. var vPurcflag = ""; // 구매구분
  1614. var vCalculyn = ""; // 산정여부
  1615. var vInsuyn = ""; // 수가대상여부
  1616. var vCalcscorcd = ""; // 수가코드
  1617. var sTmp2Cartgubn = model.getValue("/root/init/WorkData/cond/cartgubn");
  1618. var vGoodCrFlag = "E";
  1619. // var vAnamneFlag = "";
  1620. // var vSubCretNo = "";
  1621. var vErbgcd = "";
  1622. var cGrupcd = "";
  1623. if(bbt_tSave.disabled == false){
  1624. vGoodCrFlag = "S";
  1625. }
  1626. if(pSendData != "" && pSendData != null && pSendData != "undefined"){
  1627. var aRowParamArr = pSendData.split("▧");
  1628. var sInsertXpath = "";
  1629. var sTempCartXpathCnt = "";
  1630. if(aRowParamArr.length > 0){
  1631. for(var j = 0; j < aRowParamArr.length; j++){
  1632. var aColParamArr = aRowParamArr[j].split("▥");
  1633. if(aColParamArr[0] != null && aColParamArr[0] != "" && aColParamArr[0] != "undefined"){ //물품코드
  1634. vGoodcd = aColParamArr[0]; // goodcd
  1635. vAllsizespecid = aColParamArr[1]; // allsizespecid
  1636. vGoodcls = aColParamArr[2]; // goodcls
  1637. vGoodqty = "0"; // goodqty
  1638. vPayflagcd = aColParamArr[4]; // payflagcd
  1639. vOutqty = aColParamArr[3]; // goodqty
  1640. vGoodengnm = aColParamArr[6]; // goodengnm
  1641. vGoodspec = aColParamArr[7]; // goodspec
  1642. vProdcmpynm = aColParamArr[8]; // makernm
  1643. vGoodmodel = aColParamArr[9]; // goodmodel
  1644. vDeliveunit = aColParamArr[10]; // deliveunit 처방단위
  1645. //drugmthdspccd 는 aColParamArr[11] 로 넘기고 있음.
  1646. vStocqty = aColParamArr[12]; // 재고량
  1647. vAcmlbaseqty = aColParamArr[13]; // 기준수량
  1648. vPrcpclscd = aColParamArr[14]; // 처방구분
  1649. vReqmthd = aColParamArr[15]; // 청구방법
  1650. vPurcflag = aColParamArr[16]; // 구매구분
  1651. vCalculyn = aColParamArr[17]; // 산정여부
  1652. vInsuyn = aColParamArr[18]; // 수가대상여부
  1653. vCalcscorcd = aColParamArr[19]; // 수가코드
  1654. vGrupcd = aColParamArr[20]; // 그룹코드
  1655. // vAnamneflag = aColParamArr[21]; // 그룹코드
  1656. // vSubCretNo = aColParamArr[22]; // 그룹코드
  1657. vErbgcd = aColParamArr[23]; // 응급CCD BAG 번호
  1658. /* 2009-03-05 YCD 삭제처리
  1659. sTempCartXpathCnt = vGoodcls;
  1660. if(sTempCartXpathCnt == ""){
  1661. sTempCartXpathCnt = "1";
  1662. }
  1663. */
  1664. // 2009-03-05 YCD 물품 세팅 변경으로 인하여 세팅 노드 변경 처리
  1665. sTempCartXpathCnt = fChngNodeValue(vGoodcls, vPurcflag);
  1666. sInsertXpath = "/root/main/CartOrdData/"+tPathCart[sTempCartXpathCnt];
  1667. var tGood = "/root/init/WorkData/"+tPathCart[sTempCartXpathCnt];
  1668. var xNode = instance1.selectSingleNode(tGood);
  1669. if (xNode == null) {
  1670. model.makeNode(tGood );
  1671. model.copyNode(tGood, GoodCopy);
  1672. }
  1673. //data setValue
  1674. //node copy
  1675. xNode = instance1.selectSingleNode(tGood);
  1676. if (xNode == null) {
  1677. model.makeNode(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt] );
  1678. model.copyNode(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt], tGood);
  1679. } else {
  1680. //기존에 등록되어 있는지 확인하고, 상태가 I일 경우에는 return 한다.
  1681. var iRowCnt = getNodesetCount(sInsertXpath);
  1682. var bInsertFlag = false;
  1683. for(var k = 1; k <= iRowCnt; k++ ){
  1684. var sTempRecflag = model.getValue(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt]+"["+k+"]/recflag");
  1685. var sTempGoodcd = model.getValue(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt]+"["+k+"]/goodcd");
  1686. var sTempSize = model.getValue(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt]+"["+k+"]/allsizespecid");
  1687. if(sTempRecflag == "I" && sTempGoodcd ==vGoodcd && sTempSize == vAllsizespecid){
  1688. /*
  1689. var addOutqty = parseInt(model.getValue(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt]+"["+k+"]/outqty"))+parseInt(vAddreductqty);
  1690. model.setValue(gPathNode[8]+"/"+tPathCart[sTempCartXpathCnt]+"["+k+"]/outqty", addOutqty);
  1691. */
  1692. bInsertFlag = true;
  1693. }
  1694. }
  1695. //2008-10-03 오후 11:42:31 taebum 중복 처방 발생시 알림 처리
  1696. if(bInsertFlag == true){
  1697. if (window.alert(vGoodcd+"는 중복된 처방입니다. 추가 하시겠습니까? " ,"중복처방 확인", 1 | 32) != 1){
  1698. messageBox("취소 되었습니다.", "I000");
  1699. bInsertFlag = true;
  1700. }else{
  1701. bInsertFlag = false;
  1702. }
  1703. }
  1704. if(bInsertFlag == false){
  1705. if(sTmpCartstat == "-" || sTmpCartstat == "1" || sTmpCartstat == "2"){
  1706. vGoodqty = vGoodqty;
  1707. }else{
  1708. vGoodqty = "0";
  1709. }
  1710. //data insert
  1711. model.setValue(tGood + "/oprsrvno" , vOprsrvno ); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  1712. model.setValue(tGood + "/cartgubn" , vCartgubn ); // 02 Cart구분 (O:수술,A:마취)
  1713. model.setValue(tGood + "/ordseq" , vOrdseq ); // 03 처방순번
  1714. model.setValue(tGood + "/instcd" , vInstcd ); // 04 병원기관코드(코드정의서 Z0007 참조)
  1715. model.setValue(tGood + "/goodcd" , vGoodcd ); // 05 물품코드
  1716. model.setValue(tGood + "/allsizespecid" , vAllsizespecid ); // 06 ALLSIZE규격ID
  1717. model.setValue(tGood + "/goodcls" , vGoodcls ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  1718. model.setValue(tGood + "/goodqty" , vGoodqty ); // 08 물품수량
  1719. model.setValue(tGood + "/addreductqty" , "0" ); // 09 가감수량
  1720. model.setValue(tGood + "/payflagcd" , vPayflagcd ); // 10 급여구분코드 (코드정의서 M0029 참조)
  1721. model.setValue(tGood + "/oproomcd" , vOproomcd ); // 11 수술실코드
  1722. model.setValue(tGood + "/prcpdd" , vPrcpdd ); // 12 처방일자
  1723. model.setValue(tGood + "/prcpno" , vPrcpno ); // 13 처방일자별 일련번호
  1724. model.setValue(tGood + "/prcphistno" , vPrcphistno ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  1725. model.setValue(tGood + "/pid" , vPid ); // 15 등록번호
  1726. model.setValue(tGood + "/saveqty" , vSaveqty ); // 16 변경Check 수량 (물품수량 + 가감수량)
  1727. model.setValue(tGood + "/outqty" , vOutqty ); // 17 변경할 수량 (물품수량 + 가감수량)
  1728. //model.setValue(tGood + "/outqty" , "0" ); // 17 변경할 수량 (물품수량 + 가감수량)
  1729. model.setValue(tGood + "/goodengnm" , vGoodengnm ); // 18 물품(처방)명
  1730. model.setValue(tGood + "/goodspec" , vGoodspec ); // 19 규격명
  1731. model.setValue(tGood + "/prodcmpynm" , vProdcmpynm ); // 20 제조사
  1732. model.setValue(tGood + "/goodmodel" , vGoodmodel ); // 21 모델
  1733. //model.setValue(tGood + "/deliveunit" , vDeliveunit ); // 22 단위
  1734. model.setValue(tGood + "/prcpunit" , vDeliveunit ); // 22 단위
  1735. model.setValue(tGood + "/oproomnm" , vOproomnm ); // 23 수술실명
  1736. model.setValue(tGood + "/oproomdeptcd" , vOproomdeptcd ); // 24 수술실부서코드
  1737. model.setValue(tGood + "/recflag" , vRecflag ); // 25 U:수정,I:입력구분
  1738. model.setValue(tGood + "/drugmthdspccd" , vDrugmthdspccd ); // 28 투여방법 및 검체코드
  1739. model.setValue(tGood + "/stocqty" , vStocqty ); // 29 재고량
  1740. model.setValue(tGood + "/acmlbaseqty" , vAcmlbaseqty ); // 30 기준수량
  1741. model.setValue(tGood + "/prcpclscd" , vPrcpclscd ); // 31 처방구분
  1742. model.setValue(tGood + "/reqmthd" , vReqmthd ); // 32 청구방법
  1743. // 2009-03-09 ycd 추가 (정규, 응급 구분)
  1744. model.setValue(tGood + "/goodcrflag" , vGoodCrFlag ); // 33 처방발행구분(S : 정규, E : 응급 )
  1745. model.setValue(tGood + "/purcflag" , vPurcflag ); // 34 구매구분
  1746. model.setValue(tGood + "/old_payflagcd" , vPayflagcd ); // 10 급여구분코드 (코드정의서 M0029 참조)
  1747. model.setValue(tGood + "/calculyn" , vCalculyn ); // 산정여부
  1748. model.setValue(tGood + "/insuyn" , vInsuyn ); // 수가대상여부
  1749. model.setValue(tGood + "/calcscorcd" , vCalcscorcd ); // 수가코드
  1750. model.setValue(tGood + "/todd" , "99991231" ); // 종료일자
  1751. model.setValue(tGood + "/listodd" , "99991231" ); // 종료일자
  1752. model.setValue(tGood + "/spcmtodd" , "99991231" ); // 종료일자
  1753. model.setValue(tGood + "/grupcd" , vGrupcd );
  1754. model.setValue(tGood + "/anamneflag" , "N" ); // 기왕증유무
  1755. model.setValue(tGood + "/subcretno" , "0" ); // 부유형
  1756. model.setValue(tGood + "/erbgcd" , vErbgcd ); // 응급CCD Bag번호
  1757. model.duplicate(gPathNode[8], tGood);
  1758. }
  1759. }
  1760. }
  1761. }
  1762. for(var k = 0 ; k < 5 ; k++){
  1763. eval("grd_"+tNameCart[k]).refresh();
  1764. eval("grd_"+tNameCart[k]).row = eval("grd_"+tNameCart[k]).rows - eval("grd_"+tNameCart[k]).fixedRows;;
  1765. eval("grd_"+tNameCart[k]).topRow = eval("grd_"+tNameCart[k]).row;
  1766. }
  1767. //2009-03-05 YCD 삭제처리
  1768. //grd_sutures.refresh(); // 1 봉합사
  1769. //grd_supplies.refresh(); // 2 공급물품
  1770. //grd_drug.refresh(); // 3 약재료
  1771. //grd_instrument.refresh(); // 4 기구
  1772. //grd_diposit.refresh(); // 7 가납물품
  1773. //grd_opsupply.refresh(); // 6 수술소모품
  1774. }
  1775. model.refresh();
  1776. //20110418 이선경(경북대) : 정규처방이면 응급처방구분은 비활성화
  1777. if(vGoodCrFlag == "S") {
  1778. for(var idx = grd_supplies.rows - aRowParamArr.length; idx < grd_supplies.rows; idx++){
  1779. grd_supplies.isReadOnly(idx, grd_supplies.colRef("erprcpflag"), idx, grd_supplies.colRef("erprcpflag"))= true;
  1780. }
  1781. }
  1782. }
  1783. }
  1784. /*
  1785. // 2008-07-29 오후 5:45:56 taebum PopUp으로 UI 전면 수정요청으로 주석 처리함.
  1786. // 물품 추가 Check
  1787. function fCopyGood(pCls, pIdx){
  1788. var sIdx = 1;
  1789. var DataList = "/mnphcagolist" + "*"
  1790. + "/orddeptcd" + "*"
  1791. + "/mmbhppdslist" ;
  1792. var dList = DataList.split("*") ;
  1793. var GoodCd = "";
  1794. var sNode = instance1.selectSingleNode(gPathNode[pIdx]);
  1795. if (sNode == null) {
  1796. messageBox("Cart물품이 ", "I004");
  1797. return;
  1798. }
  1799. var nIdx = sNode.childNodes.length;
  1800. var cNode = gPathNode[pIdx] + dList[pIdx];
  1801. for (n = 1; n <= nIdx; n++) {
  1802. CagoNode = cNode + "["+ n + "]";
  1803. GoodCd = model.getValue(CagoNode +"/goodcd" );
  1804. sIdx = model.getValue(CagoNode +"/goodcls" );
  1805. if (sIdx == "") {
  1806. sIdx = 1;
  1807. }
  1808. if (fCheckGoodCd(sIdx, GoodCd)) {
  1809. GoodNode = "/root/init/WorkData/"+tPathCart[sIdx];
  1810. //iCartNode = gPathNode[8]+"/"+tPathCart[cIdx]; , /root/main/CartOrdData/ListSutures
  1811. if (pCls == "C") {
  1812. if (model.getValue(CagoNode+"/fcheck")=="true") {
  1813. fNodeDuplicate(sIdx, GoodNode, CagoNode, GoodCopy);
  1814. eval("grd_"+tNameCart[sIdx]).refresh();
  1815. }
  1816. } else {
  1817. fNodeDuplicate(sIdx, GoodNode, CagoNode, GoodCopy);
  1818. eval("grd_"+tNameCart[sIdx]).refresh();
  1819. }
  1820. }
  1821. } // -- End Of for (n = 1; n <= nIdx; n++) --
  1822. // grd_sutures.refresh(); // 1 봉합사
  1823. // grd_supplies.refresh(); // 2 공급물품
  1824. // grd_drug.refresh(); // 3 약재료
  1825. // grd_instrument.refresh(); // 4 기구
  1826. // grd_diposit.refresh(); // 5 처치
  1827. // grd_opsupply.refresh(); // 6 수술소모품
  1828. // eval("grd_"+tNameCart[sIdx]).refresh();
  1829. }
  1830. */
  1831. //
  1832. // 물품 중복 Check
  1833. //
  1834. function fCheckGoodCd(cIdx, pGood){
  1835. var GoodCd = "";
  1836. var GoodChk = true;
  1837. // model.setValue("/root/init/WorkData/InputGood/goodidx", "");
  1838. iCartNode = gPathNode[8]+"/"+tPathCart[cIdx];
  1839. iNode = instance1.selectSingleNode(iCartNode);
  1840. if (iNode == null) {
  1841. return GoodChk;
  1842. }
  1843. //
  1844. var iLen = (iNode.length == 0) ? 1 : iNode.length;
  1845. for (i = 1; i <= iLen; i++) {
  1846. GoodCd = model.getValue(iCartNode + "["+i+"]/goodcd");
  1847. if (pGood == GoodCd) {
  1848. GoodChk = false ;
  1849. // model.setValue("/root/init/WorkData/InputGood/goodidx", i);
  1850. break;
  1851. }
  1852. }
  1853. return GoodChk;
  1854. }
  1855. /*
  1856. // 물품 복사
  1857. function fNodeDuplicate(pIdx, pGood, pCago, pCopy){
  1858. var xNode = instance1.selectSingleNode(pGood);
  1859. if (xNode == null) {
  1860. model.makeNode(pGood );
  1861. model.copyNode(pGood, pCopy);
  1862. }
  1863. var vOprsrvno = model.getValue(gPathNode[6] + "/oprsrvno" ); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  1864. var vCartgubn = model.getValue("/root/init/WorkData/cond/cartgubn"); // 02 Cart구분 (O:수술,A:마취, R:회복)
  1865. var vOrdseq = "" ; // 03 처방순번
  1866. var vInstcd = model.getValue(gPathNode[6] +"/instcd" ); // 04 병원기관코드(코드정의서 Z0007 참조)
  1867. var vGoodcd = model.getValue(pCago +"/goodcd" ); // 05 물품코드
  1868. var vAllsizespecid = model.getValue(pCago +"/allsizespecid"); // 06 ALLSIZE규격ID
  1869. var vGoodcls = model.getValue(pCago +"/goodcls" ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  1870. var vGoodqty = "0"; // 08 물품수량
  1871. var vAddreductqty = model.getValue(pCago +"/goodqty" ); // 09 가감수량
  1872. var vPayflagcd = model.getValue(pCago +"/payflagcd" ); // 10 급여구분코드 (코드정의서 M0029 참조)
  1873. var vOproomcd = model.getValue(gPathNode[6] +"/oproomcd" ); // 11 수술실코드
  1874. var vPrcpdd = "" ; // 12 처방일자
  1875. var vPrcpno = "" ; // 13 처방일자별 일련번호
  1876. var vPrcphistno = "" ; // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  1877. var vPid = model.getValue(gPathNode[6] + "/pid" ); // 15 등록번호
  1878. var vSaveqty = "0"; // 16 변경Check 수량 (물품수량 + 가감수량)
  1879. var vOutqty = model.getValue(pCago +"/goodqty" ); // 17 변경할 수량 (물품수량 + 가감수량)
  1880. var vGoodengnm = model.getValue(pCago +"/goodengnm" ); // 18 물품(처방)명
  1881. var vGoodspec = model.getValue(pCago +"/goodspec" ); // 19 규격명
  1882. var vProdcmpynm = model.getValue(pCago +"/makernm" ); // 20 제조사
  1883. var vGoodmodel = model.getValue(pCago +"/goodmodel" ); // 21 모델
  1884. var vDeliveunit = model.getValue(pCago +"/deliveunit" ); // 22 단위
  1885. var vOproomnm = model.getValue(gPathNode[6] +"/oproomnm" ); // 23 수술실명
  1886. var vOproomdeptcd = model.getValue(gPathNode[6] +"/oproomdeptcd" ); // 24 수술실부서코드
  1887. var vRecflag = "I" ; // 25 U:수정,I:입력구분
  1888. var vRecflagnm = ""; // 26 추가구분명 추
  1889. var vDrugmthdspccd = model.getValue(pCago +"/drugmthdspccd" ); // 28 투여방법 및 검체코드
  1890. // 3070000000 : 수술
  1891. if (vCartgubn == "A") {
  1892. //vOproomcd = "3073100000"; // 11 마취코드
  1893. vOproomnm = "마취"; // 23 마취과명
  1894. vOproomdeptcd = "3073100000"; // 24 마취부서코드
  1895. } else if (vCartgubn == "R") {
  1896. //vOproomcd = "3073300000"; // 11 회복실코드
  1897. vOproomnm = "회복실"; // 23 회복실명
  1898. vOproomdeptcd = "3073300000"; // 24 회복실부서코드
  1899. }
  1900. //
  1901. model.setValue(pGood + "/oprsrvno" , vOprsrvno ); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  1902. model.setValue(pGood + "/cartgubn" , vCartgubn ); // 02 Cart구분 (O:수술,A:마취)
  1903. model.setValue(pGood + "/ordseq" , vOrdseq ); // 03 처방순번
  1904. model.setValue(pGood + "/instcd" , vInstcd ); // 04 병원기관코드(코드정의서 Z0007 참조)
  1905. model.setValue(pGood + "/goodcd" , vGoodcd ); // 05 물품코드
  1906. model.setValue(pGood + "/allsizespecid", vAllsizespecid ); // 06 ALLSIZE규격ID
  1907. model.setValue(pGood + "/goodcls" , vGoodcls ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  1908. model.setValue(pGood + "/goodqty" , vGoodqty ); // 08 물품수량
  1909. model.setValue(pGood + "/addreductqty" , vAddreductqty ); // 09 가감수량
  1910. model.setValue(pGood + "/payflagcd" , vPayflagcd ); // 10 급여구분코드 (코드정의서 M0029 참조)
  1911. model.setValue(pGood + "/oproomcd" , vOproomcd ); // 11 수술실코드
  1912. model.setValue(pGood + "/prcpdd" , vPrcpdd ); // 12 처방일자
  1913. model.setValue(pGood + "/prcpno" , vPrcpno ); // 13 처방일자별 일련번호
  1914. model.setValue(pGood + "/prcphistno" , vPrcphistno ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  1915. model.setValue(pGood + "/pid" , vPid ); // 15 등록번호
  1916. model.setValue(pGood + "/saveqty" , vSaveqty ); // 16 변경Check 수량 (물품수량 + 가감수량)
  1917. model.setValue(pGood + "/outqty" , vOutqty ); // 17 변경할 수량 (물품수량 + 가감수량)
  1918. model.setValue(pGood + "/goodengnm" , vGoodengnm ); // 18 물품(처방)명
  1919. model.setValue(pGood + "/goodspec" , vGoodspec ); // 19 규격명
  1920. model.setValue(pGood + "/prodcmpynm" , vProdcmpynm ); // 20 제조사
  1921. model.setValue(pGood + "/goodmodel" , vGoodmodel ); // 21 모델
  1922. model.setValue(pGood + "/deliveunit" , vDeliveunit ); // 22 단위
  1923. model.setValue(pGood + "/oproomnm" , vOproomnm ); // 23 수술실명
  1924. model.setValue(pGood + "/oproomdeptcd" , vOproomdeptcd ); // 24 수술실부서코드
  1925. model.setValue(pGood + "/recflag" , vRecflag ); // 25 U:수정,I:입력구분
  1926. // model.setValue(pGood + "/recflagnm" , vRecflagnm ); // 26 추가구분명 추
  1927. model.setValue(pGood + "/drugmthdspccd", vDrugmthdspccd ); // 28 투여방법 및 검체코드
  1928. xNode = instance1.selectSingleNode(gPathNode[8]+"/"+tPathCart[pIdx]);
  1929. if (xNode == null) {
  1930. model.makeNode(gPathNode[8]+"/"+tPathCart[pIdx] );
  1931. model.copyNode(gPathNode[8]+"/"+tPathCart[pIdx], pGood);
  1932. } else {
  1933. model.duplicate(gPathNode[8] , pGood);
  1934. }
  1935. }
  1936. */
  1937. //
  1938. // 물품 삭제
  1939. // 2008-07-30 taebum 오후 5:18:41 사용안하는것 으로 판단됨
  1940. function fDeleteGood(){
  1941. var sIdx = grd_good.row;
  1942. if (sIdx < 1) {
  1943. return;
  1944. }
  1945. var wCcrtNo = model.getValue("/root/init/WorkData/scond/ccrtno");
  1946. fNodeDuplicate(sIdx, "D", wCcrtNo, gPathNode[0], gPathNode[3]);
  1947. model.removeNodeset(gPathNode[0] + "/mnphcagolist["+sIdx+"]");
  1948. grd_good.deleteRow(sIdx);
  1949. }
  1950. // 물품 UPDATE
  1951. function fUpdateGood(){
  1952. var sIdx = grd_good.row;
  1953. if (sIdx < 1) {
  1954. return;
  1955. }
  1956. model.setValue(gPathNode[0] + "/mnphcagolist["+sIdx+"]/goodqty",model.getValue("/root/init/WorkData/InputGood/goodqty"));
  1957. if (model.getValue("/root/init/WorkData/InputGood/recstat") == "N") {
  1958. model.setValue(gPathNode[0] + "/mnphcagolist["+sIdx+"]/recstat", "U");
  1959. }
  1960. grd_good.refresh();
  1961. grd_good.row = sIdx;
  1962. }
  1963. function fOpCodePopup() {
  1964. var xpos = event.screenX;
  1965. var ypos = event.screenY-300;
  1966. modal("SMMNP04460", 1, xpos, ypos);
  1967. var iProperties = getParameter("SendData");
  1968. var iSplit_Value = iProperties.split("|");
  1969. if (iSplit_Value.length > 0) {
  1970. model.setValue("/root/init/WorkData/InputGood/goodengnm", iSplit_Value[3]);
  1971. model.setValue("/root/init/WorkData/InputGood/makernm" , iSplit_Value[6]);
  1972. model.setValue("/root/init/WorkData/InputGood/sizecd" , iSplit_Value[4]);
  1973. model.setValue("/root/init/WorkData/InputGood/goodcd" , iSplit_Value[0]);
  1974. }
  1975. }
  1976. //
  1977. function fTitleCreate(){
  1978. var TitleData = "oprsrvno" + "▦" // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  1979. + "cartgubn" + "▦" // 02 Cart구분 (O:수술,A:마취)
  1980. + "ordseq" + "▦" // 03 처방순번
  1981. + "instcd" + "▦" // 04 병원기관코드(코드정의서 Z0007 참조)
  1982. + "goodcd" + "▦" // 05 물품코드
  1983. + "allsizespecid" + "▦" // 06 ALLSIZE규격ID
  1984. + "goodcls" + "▦" // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  1985. + "goodqty" + "▦" // 08 물품수량
  1986. + "addreductqty" + "▦" // 09 가감수량
  1987. + "payflagcd" + "▦" // 10 급여구분코드 (코드정의서 M0029 참조)
  1988. + "oproomcd" + "▦" // 11 수술실코드
  1989. + "prcpdd" + "▦" // 12 처방일자
  1990. + "prcpno" + "▦" // 13 처방일자별 일련번호
  1991. + "prcphistno" + "▦" // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  1992. + "pid" + "▦" // 15 등록번호
  1993. + "reqtabcls" + "▦" // 16 테이블구 T:임시처방, C: 확정처방
  1994. + "recflag" + "▩"; // 17 U:수정,I:입력구분
  1995. return TitleData;
  1996. }
  1997. //
  1998. // 수술중에 사용한 처방중 다른 수술방의 재료를 사용(수술처방 등록) 저장
  1999. //
  2000. function fMnphcrusSave(){
  2001. fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2002. model.removenode("/root/send");
  2003. var SaveData = "oprsrvno" + "▦" // 01 수술예약(의뢰)번호(년도+일련번호)
  2004. + "ordseq" + "▦" // 02 처방순번
  2005. + "instcd" + "▦" // 03 병원기관코드(코드정의서Z0007참조)
  2006. + "oproomcd" + "▦" // 04 수술실에대한코드
  2007. + "goodcd" + "▦" // 05 물품코드
  2008. + "allsizespecid" + "▦" // 06 Size코드
  2009. + "goodqty" + "▦" // 07 물품수량
  2010. + "stocrefltyn" + "▦" // 08 재고반영여부
  2011. + "recflag" + "▦" // 09 U:수정,I:입력구분
  2012. + "prcpclscd" + "▩"; // 10 처방분류코드
  2013. ExCount = 0 ;
  2014. var sRowCnt = getNodesetCount("/root/main/MnprdrugLists/mnprdruglist");
  2015. var TabCls = "C"; // 테이블구 T:임시처방, C: 확정처방
  2016. var UseQty = "";
  2017. var TotQty = 0.0;
  2018. var cPath = "/root/main/MnprdrugLists/mnprdruglist";
  2019. var gPath = "/root/init/WorkData/InputGood" ;
  2020. var GoodCd = model.getValue(gPath +"/goodcd" );
  2021. var sIdx = model.getValue(gPath +"/goodcls" );
  2022. var sPurc = model.getValue(gPath +"/purcflag" );
  2023. if (sIdx == "") {
  2024. sIdx = 0;
  2025. }else{
  2026. sIdx = fChngNodeValue(sIdx, sPurc);
  2027. }
  2028. var gIdx = "0";
  2029. var sOrdSeq = "0";
  2030. var iCartNode = gPathNode[8]+"/"+tPathCart[sIdx];
  2031. var GoodCheck = true;
  2032. // if (fCheckGoodCd(sIdx, GoodCd)) {
  2033. // gIdx = 1 ;
  2034. // GoodCheck = true;
  2035. // } else {
  2036. // GoodCheck = false;
  2037. // gIdx = model.getValue("/root/init/WorkData/InputGood/goodidx");
  2038. // sOrdSeq = model.getValue(iCartNode + "["+gIdx+"]/ordseq");
  2039. // } ;
  2040. //
  2041. if (model.getValue("/root/init/WorkData/cond/cartstat") == "1") {
  2042. TabCls = "T";
  2043. }
  2044. var StkQty = 0.0;
  2045. var deptflag = "";
  2046. for (var i=1; i <= sRowCnt; i++) {
  2047. StkQty = parseFloat(model.getValue(cPath + "[" + i +"]/stocqty"));
  2048. var sTmpStkQty = StkQty;
  2049. UseQty = parseFloat(model.getValue(cPath + "[" + i +"]/currqty"));
  2050. deptflag = model.getValue(cPath + "[" + i +"]/deptflag");
  2051. // UseQty = (UseQty == "" ) ? "0" : UseQty; // 사용수량
  2052. if (UseQty != 0) {
  2053. //2009.01.02 taebum 안전재고 사용하도록 수정
  2054. //2009.01.06 yanggun 재고량이 0 이여도 저장 가능하게 재고량 0 체크 주석처리
  2055. // if (StkQty == 0) {
  2056. // alert(model.getValue(cPath + "[" + i +"]/oproomnm")+"번 방의 재고가 없습니다.");
  2057. // return;
  2058. // }
  2059. TotQty = TotQty + UseQty; // 총수량
  2060. StkQty = StkQty - UseQty; // 재고량
  2061. SaveData += model.getValue(gPathNode[6]+"/oprsrvno" ) + "▦"; // 01 수술예약(의뢰)번호(년도+일련번호)
  2062. SaveData += model.getValue(cPath + "[" + i + "]/ordseq" ) + "▦"; // 02 처방순번
  2063. SaveData += model.getValue(gPathNode[6]+"/instcd" ) + "▦"; // 03 병원기관코드(코드정의서Z0007참조)
  2064. SaveData += model.getValue(cPath + "[" + i + "]/oproomcd" ) + "▦"; // 04 수술실에대한코드
  2065. SaveData += model.getValue(gPath + "/goodcd" ) + "▦"; // 05 물품코드
  2066. SaveData += model.getValue(gPath + "/allsizespecid" ) + "▦"; // 06 Size코드
  2067. SaveData += model.getValue(cPath + "[" + i + "]/currqty" ) + "▦"; // 07 물품수량
  2068. SaveData += "N" + "▦"; // 08 재고반영여부
  2069. SaveData += model.getValue(cPath + "[" + i + "]/recflag" ) + "▦"; // 09 U:수정,I:입력구분
  2070. SaveData += model.getValue(gPath + "/prcpclscd" ) + "▩"; // 10 처방분류코드
  2071. //2009.01.02 taebum 안전재고 관련 수정
  2072. if(StkQty > 0){
  2073. model.setValue(cPath + "[" + i + "]/currqty", 0 );
  2074. model.setValue(cPath + "[" + i + "]/stocqty", StkQty);
  2075. }
  2076. model.setValue(gPath + "/ordseq" , "" ); // 03 처방순번
  2077. model.setValue(gPath + "/goodqty" , "0" ); // 08 물품수량
  2078. model.setValue(gPath + "/addreductqty" , "0" ); // 09 가감수량
  2079. model.setValue(gPath + "/prcpdd" , "" ); // 12 처방일자
  2080. model.setValue(gPath + "/prcpno" , "0" ); // 13 처방일자별 일련번호
  2081. model.setValue(gPath + "/prcphistno" , "0" ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  2082. model.setValue(gPath + "/saveqty" , "0" ); // 16 변경Check 수량 (물품수량 + 가감수량)
  2083. model.setValue(gPath + "/outqty" , UseQty ); // 17 변경할 수량 (물품수량 + 가감수량)
  2084. model.setValue(gPath + "/recflag" , "I" ); // 25 U:수정,I:입력구분
  2085. // model.setValue(gPath + "/recflagnm" , "추" ); // 26 추가구분명 추
  2086. model.setValue(gPath + "/oproomcd" , model.getValue(cPath+ "[" + i + "]/oproomcd" )); // 11 수술실코드
  2087. model.setValue(gPath + "/oproomnm" , model.getValue(cPath+ "[" + i + "]/oproomnm" )); // 23 수술실명
  2088. model.setValue(gPath + "/oproomdeptcd" , model.getValue(cPath+ "[" + i + "]/oproomdeptcd" )); // 24 수술실부서코드
  2089. model.setValue(gPath + "/stocqty" , sTmpStkQty ); // 25 재고량
  2090. //model.setValue(gPath + "/reqmthd" , model.getValue(cPath+ "[" + i + "]/reqmthd" )); // 32 청구방법
  2091. vOproomnm = model.getValue(cPath+ "[" + i + "]/oproomnm");
  2092. fAddGood(sIdx, sOrdSeq, TotQty, deptflag);
  2093. ExCount += 1 ;
  2094. }
  2095. }
  2096. // 2009-03-04 ycd 삭제처리
  2097. //grd_roomcd.refresh();
  2098. // alert("mnphcruslist==>>"+SaveData);
  2099. model.makeValue("/root/send/mnphcruslist",SaveData);
  2100. //---------
  2101. var sOrdSeq = "0";
  2102. var GoodNode = "/root/init/WorkData/"+tPathCart[sIdx];
  2103. eval("grd_"+tNameCart[sIdx]).refresh();
  2104. eval("grd_"+tNameCart[sIdx]).row = eval("grd_"+tNameCart[sIdx]).rows - eval("grd_"+tNameCart[sIdx]).fixedRows;
  2105. eval("grd_"+tNameCart[sIdx]).topRow = eval("grd_"+tNameCart[sIdx]).row;
  2106. //
  2107. if (ExCount > 0) {
  2108. // if (submit("TXMNP01801")){ // 정보저장
  2109. //sOrdSeq = model.getValue("root/init/WorkData/cartordkey/ordseq");
  2110. //GoodCd = model.getValue("root/init/WorkData/cartordkey/goodcd");
  2111. //model.setValue(iCartNode+"[goodcd='"+ GoodCd + "']/ordseq" , sOrdSeq); // 처방순번
  2112. //model.setValue(iCartNode+"[goodcd='"+ GoodCd + "']/recflag", "U" ); // U:수정,I:입력구분
  2113. //=====확인 12.03 CHOI=======================================
  2114. // fSave(); // Cart 물품 저장 (TXMNP01800) 10/12 추가
  2115. // messageBox("자료 저장이", "I002");
  2116. // }
  2117. }
  2118. }
  2119. //
  2120. // 물품코드 추가
  2121. //
  2122. function fAddGoodCode(){
  2123. var TotQty = 0.0;
  2124. var gPath = "/root/init/WorkData/InputGood" ;
  2125. var GoodCd = model.getValue(gPath +"/goodcd" );
  2126. var sIdx = model.getValue(gPath +"/cureflag" );
  2127. var sPurcflag = model.getValue(gPath +"/purcflag" );
  2128. if (GoodCd == "") {
  2129. messageBox("물품을 ", "C001");
  2130. return;
  2131. }
  2132. if (sIdx == "") {
  2133. sIdx = 0;
  2134. }else{
  2135. sIdx = fChngNodeValue(sIdx, sPurcflag);
  2136. }
  2137. var sOrdSeq = "0";
  2138. if (fCheckGoodCd(sIdx, GoodCd)) {
  2139. fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2140. fAddGood(sIdx, sOrdSeq, TotQty);
  2141. }
  2142. eval("grd_"+tNameCart[sIdx]).refresh();
  2143. eval("grd_"+tNameCart[sIdx]).row = eval("grd_"+tNameCart[sIdx]).rows - eval("grd_"+tNameCart[sIdx]).fixedRows;;
  2144. eval("grd_"+tNameCart[sIdx]).topRow = eval("grd_"+tNameCart[sIdx]).row;
  2145. }
  2146. //
  2147. // 물품코드 추가
  2148. //
  2149. function fAddGood(pIdx, pOrdSeq, pQty, deptflag){
  2150. //---------
  2151. var gPath = "/root/init/WorkData/InputGood";
  2152. var gCls = model.getValue(gPath + "/goodcls");
  2153. var gPurcFlag = model.getValue(gPath + "/purcflag");
  2154. if (gCls =="") return;
  2155. gCls = fChngNodeValue(gCls, gPurcFlag);
  2156. var iCartNode = gPathNode[8] + "/" + tPathCart[gCls];
  2157. var GoodNode = "/root/init/WorkData/" + tPathCart[gCls];
  2158. var xNode = instance1.selectSingleNode(GoodNode);
  2159. if (xNode == null) {
  2160. model.makeNode(GoodNode );
  2161. model.copyNode(GoodNode, GoodCopy);
  2162. }
  2163. model.setValue(GoodNode + "/oprsrvno" , model.getValue(gPath + "/oprsrvno" )); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  2164. //2008-08-02 오후 6:44:31 taebum add
  2165. var tempCartGb = model.getValue(gPath + "/cartgubn" );
  2166. if(deptflag != "") {
  2167. tempCartGb = deptflag;
  2168. }
  2169. /*
  2170. //2008-08-18 오후 1:27:50 taebum 회복은 기존처럼 R로 적용
  2171. if(tempCartGb == "R"){
  2172. tempCartGb = "O";
  2173. }
  2174. */
  2175. var vGoodCrFlag = "E";
  2176. if(bbt_tSave.disabled == false){
  2177. vGoodCrFlag = "S";
  2178. }
  2179. model.setValue(GoodNode + "/cartgubn" , tempCartGb); // 02 Cart구분 (O:수술,A:마취)
  2180. model.setValue(GoodNode + "/ordseq" , model.getValue(gPath + "/ordseq" )); // 03 처방순번
  2181. model.setValue(GoodNode + "/instcd" , model.getValue(gPath + "/instcd" )); // 04 병원기관코드(코드정의서 Z0007 참조)
  2182. model.setValue(GoodNode + "/goodcd" , model.getValue(gPath + "/goodcd" )); // 05 물품코드
  2183. model.setValue(GoodNode + "/allsizespecid" , model.getValue(gPath + "/allsizespecid")); // 06 ALLSIZE규격ID
  2184. model.setValue(GoodNode + "/goodcls" , model.getValue(gPath + "/goodcls" )); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  2185. model.setValue(GoodNode + "/goodqty" , model.getValue(gPath + "/goodqty" )); // 08 물품수량
  2186. model.setValue(GoodNode + "/addreductqty" , model.getValue(gPath + "/addreductqty" )); // 09 가감수량
  2187. model.setValue(GoodNode + "/payflagcd" , model.getValue(gPath + "/payflagcd" )); // 10 급여구분코드 (코드정의서 M0029 참조)
  2188. model.setValue(GoodNode + "/oproomcd" , model.getValue(gPath + "/oproomcd" )); // 11 수술실코드
  2189. model.setValue(GoodNode + "/prcpdd" , model.getValue(gPath + "/prcpdd" )); // 12 처방일자
  2190. model.setValue(GoodNode + "/prcpno" , model.getValue(gPath + "/prcpno" )); // 13 처방일자별 일련번호
  2191. model.setValue(GoodNode + "/prcphistno" , model.getValue(gPath + "/prcphistno" )); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  2192. model.setValue(GoodNode + "/pid" , model.getValue(gPath + "/pid" )); // 15 등록번호
  2193. model.setValue(GoodNode + "/saveqty" , model.getValue(gPath + "/saveqty" )); // 16 변경Check 수량 (물품수량 + 가감수량)
  2194. model.setValue(GoodNode + "/outqty" , model.getValue(gPath + "/outqty" )); // 17 변경할 수량 (물품수량 + 가감수량)
  2195. //model.setValue(GoodNode + "/outqty" , "0" ); // 17 변경할 수량 (물품수량 + 가감수량)
  2196. model.setValue(GoodNode + "/goodengnm" , model.getValue(gPath + "/goodengnm" )); // 18 물품(처방)명
  2197. model.setValue(GoodNode + "/goodspec" , model.getValue(gPath + "/goodspec" )); // 19 규격명
  2198. model.setValue(GoodNode + "/prodcmpynm" , model.getValue(gPath + "/prodcmpynm" )); // 20 제조사
  2199. model.setValue(GoodNode + "/goodmodel" , model.getValue(gPath + "/goodmodel" )); // 21 모델
  2200. model.setValue(GoodNode + "/prcpunit" , model.getValue(gPath + "/prcpunit" )); // 22 단위
  2201. //model.setValue(GoodNode + "/oproomnm" , model.getValue(gPath + "/oproomnm" )); // 23 수술실명
  2202. model.setValue(GoodNode + "/oproomnm" , vOproomnm ); // 23 수술실명
  2203. model.setValue(GoodNode + "/oproomdeptcd" , model.getValue(gPath + "/oproomdeptcd" )); // 24 수술실부서코드
  2204. model.setValue(GoodNode + "/recflag" , "I" ); // 25 U:수정,I:입력구분
  2205. //model.setValue(GoodNode + "/recflagnm" , model.getValue(gPath + "/recflagnm" )); // 26 추가구분명 추
  2206. model.setValue(GoodNode + "/drugmthdspccd" , model.getValue(gPath + "/drugmthdspccd" )); // 28 투여방법 및 검체코드
  2207. model.setValue(GoodNode + "/stocqty" , model.getValue(gPath + "/stocqty" )); // 29 재고량
  2208. model.setValue(GoodNode + "/acmlbaseqty" , model.getValue(gPath + "/acmlbaseqty" )); // 30 기준수량
  2209. model.setValue(GoodNode + "/prcpclscd" , model.getValue(gPath + "/prcpclscd" )); // 31 처방구분
  2210. model.setValue(GoodNode + "/reqmthd" , model.getValue(gPath + "/reqmthd" )); // 32 청구방법
  2211. // 2009-03-09 ycd 추가 (정규, 응급 구분)
  2212. model.setValue(GoodNode + "/goodcrflag" , vGoodCrFlag ); // 33 처방발행구분(S : 정규, E : 응급 )
  2213. model.setValue(GoodNode + "/purcflag" , model.getValue(gPath + "/purcflag" )); // 34 구매구분
  2214. model.setValue(GoodNode + "/old_payflagcd" , model.getValue(gPath + "/payflagcd" )); // 10 급여구분코드 (코드정의서 M0029 참조)
  2215. model.setValue(GoodNode + "/calculyn" , model.getValue(gPath + "/calculyn" )); // 산정여부
  2216. model.setValue(GoodNode + "/todd" , model.getValue(gPath + "/todd" )); // 38 종료일자
  2217. model.setValue(GoodNode + "/listodd" , model.getValue(gPath + "/listodd" )); // 39 진료지원종료일자
  2218. model.setValue(GoodNode + "/spcmtodd" , model.getValue(gPath + "/spcmtodd" )); // 40 진검종료일자
  2219. model.setValue(GoodNode + "/anamneflag" , 'N' ); // 40 기왕력.
  2220. xNode = instance1.selectSingleNode(iCartNode);
  2221. if (xNode == null) {
  2222. model.makeNode(iCartNode );
  2223. model.copyNode(iCartNode , GoodNode);
  2224. } else {
  2225. model.duplicate(gPathNode[8], GoodNode);
  2226. }
  2227. //eval("grd_"+tNameCart[gCls]).refresh();
  2228. //eval("grd_"+tNameCart[gCls]).row = eval("grd_"+tNameCart[gCls]).rows - eval("grd_"+tNameCart[gCls]).fixedRows;
  2229. //eval("grd_"+tNameCart[gCls]).topRow = eval("grd_"+tNameCart[gCls]).row;
  2230. model.refresh();
  2231. //20110418 이선경(경북대) : 정규처방이면 응급처방구분은 비활성화
  2232. if(vGoodCrFlag == "S") {
  2233. grd_supplies.isReadOnly(grd_supplies.rows-1, grd_supplies.colRef("erprcpflag"), grd_supplies.rows-1, grd_supplies.colRef("erprcpflag"))= true;
  2234. }
  2235. }
  2236. /**
  2237. * @group :
  2238. * @ver : 2009.03.05
  2239. * @by : 양천덕
  2240. * @---------------------------------------------------
  2241. * @type : function
  2242. * @access : public
  2243. * @desc : 물품코드 추가(행추가 처리로 물품 추가시)
  2244. * @param :
  2245. * @return :
  2246. * @---------------------------------------------------
  2247. */
  2248. function fAddGoodRowCopy(){
  2249. fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2250. //---------
  2251. var gPath = "/root/init/WorkData/InputGood";
  2252. var gChngCls = "";
  2253. var gCls = model.getValue(gPath + "/goodcls");
  2254. var gPurcFlag = model.getValue(gPath + "/purcflag");
  2255. if (gCls =="") return;
  2256. gCls = fChngNodeValue(gCls, gPurcFlag);
  2257. var iCartNode = gPathNode[8] + "/" + tPathCart[gCls];
  2258. var GoodNode = "/root/init/WorkData/" + tPathCart[gCls];
  2259. var xNode = instance1.selectSingleNode(GoodNode);
  2260. if (xNode == null) {
  2261. model.makeNode(GoodNode );
  2262. model.copyNode(GoodNode, GoodCopy);
  2263. }
  2264. model.setValue(GoodNode + "/oprsrvno" , model.getValue(gPath + "/oprsrvno" )); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  2265. //2008-08-02 오후 6:44:31 taebum add
  2266. var tempCartGb = model.getValue(gPath + "/cartgubn" );
  2267. /*
  2268. //2008-08-18 오후 1:27:50 taebum 회복은 기존처럼 R로 적용
  2269. if(tempCartGb == "R"){
  2270. tempCartGb = "O";
  2271. }
  2272. */
  2273. var vGoodCrFlag = "E";
  2274. if(bbt_tSave.disabled == false){
  2275. vGoodCrFlag = "S";
  2276. }
  2277. model.setValue(GoodNode + "/cartgubn" , tempCartGb); // 02 Cart구분 (O:수술,A:마취)
  2278. //model.setValue(GoodNode + "/ordseq" , model.getValue(gPath + "/ordseq" )); // 03 처방순번
  2279. model.setValue(GoodNode + "/instcd" , model.getValue(gPath + "/instcd" )); // 04 병원기관코드(코드정의서 Z0007 참조)
  2280. model.setValue(GoodNode + "/goodcd" , model.getValue(gPath + "/goodcd" )); // 05 물품코드
  2281. model.setValue(GoodNode + "/allsizespecid" , model.getValue(gPath + "/allsizespecid")); // 06 ALLSIZE규격ID
  2282. model.setValue(GoodNode + "/goodcls" , model.getValue(gPath + "/goodcls" )); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  2283. //model.setValue(GoodNode + "/goodqty" , model.getValue(gPath + "/goodqty" )); // 08 물품수량
  2284. model.setValue(GoodNode + "/goodqty" , "0" ); // 08 물품수량
  2285. model.setValue(GoodNode + "/addreductqty" , model.getValue(gPath + "/addreductqty" )); // 09 가감수량
  2286. model.setValue(GoodNode + "/payflagcd" , model.getValue(gPath + "/payflagcd" )); // 10 급여구분코드 (코드정의서 M0029 참조)
  2287. model.setValue(GoodNode + "/oproomcd" , model.getValue(gPath + "/oproomcd" )); // 11 수술실코드
  2288. model.setValue(GoodNode + "/prcpdd" , model.getValue(gPath + "/prcpdd" )); // 12 처방일자
  2289. model.setValue(GoodNode + "/prcpno" , model.getValue(gPath + "/prcpno" )); // 13 처방일자별 일련번호
  2290. model.setValue(GoodNode + "/prcphistno" , model.getValue(gPath + "/prcphistno" )); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  2291. model.setValue(GoodNode + "/pid" , model.getValue(gPath + "/pid" )); // 15 등록번호
  2292. model.setValue(GoodNode + "/saveqty" , model.getValue(gPath + "/saveqty" )); // 16 변경Check 수량 (물품수량 + 가감수량)
  2293. //model.setValue(GoodNode + "/outqty" , model.getValue(gPath + "/outqty" )); // 17 변경할 수량 (물품수량 + 가감수량)
  2294. model.setValue(GoodNode + "/outqty" , "1" ); // 17 변경할 수량 (물품수량 + 가감수량)
  2295. model.setValue(GoodNode + "/goodengnm" , model.getValue(gPath + "/goodengnm" )); // 18 물품(처방)명
  2296. model.setValue(GoodNode + "/goodspec" , model.getValue(gPath + "/goodspec" )); // 19 규격명
  2297. model.setValue(GoodNode + "/prodcmpynm" , model.getValue(gPath + "/prodcmpynm" )); // 20 제조사
  2298. model.setValue(GoodNode + "/goodmodel" , model.getValue(gPath + "/goodmodel" )); // 21 모델
  2299. model.setValue(GoodNode + "/deliveunit" , model.getValue(gPath + "/deliveunit" )); // 22 단위
  2300. model.setValue(GoodNode + "/oproomnm" , model.getValue(gPath + "/oproomnm" )); // 23 수술실명
  2301. model.setValue(GoodNode + "/oproomdeptcd" , model.getValue(gPath + "/oproomdeptcd" )); // 24 수술실부서코드
  2302. model.setValue(GoodNode + "/stocqty" , model.getValue(gPath + "/stocqty" )); // 25 수술실부서코드
  2303. model.setValue(GoodNode + "/acmlbaseqty" , model.getValue(gPath + "/acmlbaseqty" )); // 26 기준수량
  2304. model.setValue(GoodNode + "/recflag" , "I" ); // 27 U:수정,I:입력구분
  2305. model.setValue(GoodNode + "/prcpqty" , model.getValue(gPath + "/prcpqty" )); // 28 처방수량
  2306. model.setValue(GoodNode + "/prcpunit" , model.getValue(gPath + "/prcpunit" )); // 29 처방단위
  2307. //model.setValue(GoodNode + "/recflagnm" , model.getValue(gPath + "/recflagnm" )); // 26 추가구분명 추
  2308. model.setValue(GoodNode + "/prcpclscd" , model.getValue(gPath + "/prcpclscd" )); // 31 처방구분
  2309. // 2009-03-09 ycd 추가 (정규, 응급 구분)
  2310. model.setValue(GoodNode + "/reqmthd" , model.getValue(gPath + "/reqmthd" )); // 32 청구방법
  2311. model.setValue(GoodNode + "/goodcrflag" , vGoodCrFlag ); // 33 처방발행구분(S : 정규, E : 응급 )
  2312. model.setValue(GoodNode + "/purcflag" , model.getValue(gPath + "/purcflag" )); // 34 구매구분
  2313. model.setValue(GoodNode + "/old_payflagcd" , model.getValue(gPath + "/payflagcd" )); // 10 급여구분코드 (코드정의서 M0029 참조)
  2314. model.setValue(GoodNode + "/calculyn" , model.getValue(gPath + "/calculyn" )); // 산정여부
  2315. model.setValue(GoodNode + "/todd" , model.getValue(gPath + "/todd" )); // 38 종료일자
  2316. model.setValue(GoodNode + "/listodd" , model.getValue(gPath + "/listodd" )); // 39 진료지원종료일자
  2317. model.setValue(GoodNode + "/spcmtodd" , model.getValue(gPath + "/spcmtodd" )); // 40 진검종료일자
  2318. //20110328 이선경(경북대) : 응급처방구분추가
  2319. model.setValue(GoodNode + "/erprcpflag" , model.getValue(gPath + "/erprcpflag" )); // 41 응급처방구분
  2320. //20110714 박상훈(경북대) : 기왕력 추가
  2321. model.setValue(GoodNode + "/anamneflag" , "N" ); // 기왕증유무 default
  2322. // model.setValue(GoodNode + "/subcretno" , "0" ); // subcretno default
  2323. xNode = instance1.selectSingleNode(iCartNode);
  2324. if (xNode == null) {
  2325. model.makeNode(iCartNode );
  2326. model.copyNode(iCartNode , GoodNode);
  2327. } else {
  2328. model.duplicate(gPathNode[8], GoodNode);
  2329. }
  2330. eval("grd_"+tNameCart[gCls]).refresh();
  2331. eval("grd_"+tNameCart[gCls]).row = eval("grd_"+tNameCart[gCls]).rows - eval("grd_"+tNameCart[gCls]).fixedRows;
  2332. eval("grd_"+tNameCart[gCls]).topRow = eval("grd_"+tNameCart[gCls]).row;
  2333. model.refresh();
  2334. //20110418 이선경(경북대) : 정규처방이면 응급처방구분은 비활성화
  2335. if(vGoodCrFlag == "S") {
  2336. grd_supplies.isReadOnly(grd_supplies.rows-1, grd_supplies.colRef("erprcpflag"), grd_supplies.rows-1, grd_supplies.colRef("erprcpflag"))= true;
  2337. }
  2338. }
  2339. // 물품코드 popup
  2340. function fGoodCodePopup() {
  2341. var xpos = event.screenX;
  2342. var ypos = event.screenY-300;
  2343. var xpos = 1;
  2344. var ypos = 1;
  2345. modal("SMMNP04460", 1, xpos, ypos);
  2346. var iProperties = getParameter("SendData");
  2347. //-------------------------------------------------------------------------
  2348. // iParam = iParam_goodcd +"|" 0 :: goodcd 물품코드
  2349. // + iParam_goodnm +"|" 1 :: goodnm 물품명
  2350. // + iParam_allsizespecid +"|" 2 :: allsizespecid SIZE
  2351. // + iParam_goodhngnm +"|" 3 :: goodhngnm 물품한글명
  2352. // + iParam_goodengnm +"|" 4 :: goodengnm 물품영문명
  2353. // + iParam_goodsize +"|" 5 :: allsizespecid SIZE
  2354. // + iParam_prodcmpycd +"|" 6 :: prodcmpycd 제조회사코드
  2355. // + iParam_prodcmpynm ; 7 :: prodcmpynm 제조회사
  2356. //-------------------------------------------------------------------------
  2357. var iSplit_Value = iProperties.split("|");
  2358. if (iSplit_Value.length > 0) {
  2359. var GoodNode = "/root/init/WorkData/InputGood";
  2360. model.setValue(GoodNode + "/goodcd" , iSplit_Value[0]); // 물품코드
  2361. model.setValue(GoodNode + "/goodengnm" , iSplit_Value[3]); // 물품명
  2362. model.setValue(GoodNode + "/goodspec" , iSplit_Value[5]); // 규격
  2363. model.setValue(GoodNode + "/makernm" , "" ); // 제조원
  2364. model.setValue(GoodNode + "/goodmodel" , "" ); // 모델
  2365. model.setValue(GoodNode + "/deliveunit" , "" ); // 단위
  2366. model.setValue(GoodNode + "/allsizespecid", iSplit_Value[2]); // SizeCode
  2367. //2009-03-04 ycd 삭제처리
  2368. //inp_good.currentText = model.getValue(GoodNode + "/goodcd"); // 물품코드
  2369. fRscdgoodData_Read(); // 물품코드 상세 내역 조회
  2370. fMnprdrugData_Read(); // 수술방별 안전재고와 재고량 내역 조회
  2371. //grp_good.refresh();
  2372. model.refresh();
  2373. }
  2374. }
  2375. // 물품코드 popup
  2376. function fGoodFindPopup() {
  2377. var xpos = event.screenX;
  2378. var ypos = event.screenY-300;
  2379. var xpos = 1;
  2380. var ypos = 1;
  2381. // SPMNP01600_처방(물품)찾기.xrw
  2382. modal("SPMNP01600", 1, xpos, ypos); // SMMNP04460
  2383. var iProperties = getParameter("SendData");
  2384. var iParamData = iProperties.split("▩");
  2385. // iParamList += model.getValue(iNode + "[" + i + "]/" + wCode) + "|" // 00 처방코드
  2386. // + model.getValue(iNode + "[" + i + "]/" + wName) + "|" // 01 처방명
  2387. // + model.getValue(iNode + "[" + i + "]/allsizespecid")) + "|" // 02 사이즈
  2388. // + model.getValue(iNode + "[" + i + "]/prodcmpynm" )) + "|" // 03 제조회사명
  2389. // + model.getValue(iNode + "[" + i + "]/cureflag" )) + "|" // 04 처치구분
  2390. // + model.getValue(iNode + "[" + i + "]/goodspec" )) + "|" // 05 물품규격
  2391. // + model.getValue(iNode + "[" + i + "]/goodmodel" )) + "|" // 06 물품모델
  2392. // + "" + "▩"; // 07 처방단위 model.getValue(iNode + "[" + i + "]/prcpunit" ))
  2393. var sIdx = 0;
  2394. //2008-08-02 오후 6:44:31 taebum add
  2395. var tempCartGb = model.getValue("/root/init/WorkData/cond/cartgubn");
  2396. /*
  2397. //2008-08-18 오후 1:29:02 taebum 회복은 기존처럼 R로 처리
  2398. if(tempCartGb == "R"){
  2399. tempCartGb = "O";
  2400. }
  2401. */
  2402. for (ii = 0; ii < iParamData.length; ii++) {
  2403. pData = iParamData[ii];
  2404. var iSplit_Value = pData.split("|");
  2405. if (iSplit_Value[0] != "") {
  2406. var GoodCd = iSplit_Value[0];
  2407. if (fCheckGoodCd(GoodCd)) {
  2408. sIdx = iSplit_Value[4];
  2409. if (sIdx == "") { // 2009-03-06 수정 해야 할 부분 purcflag 값을 받아오지 못하여 처리 못함
  2410. sIdx = 0;
  2411. }
  2412. var iCartNode = gPathNode[8]+"/"+tPathCart[sIdx] ;
  2413. var GoodNode = "/root/init/WorkData/"+tPathCart[sIdx];
  2414. var xNode = instance1.selectSingleNode(GoodNode);
  2415. if (xNode == null) {
  2416. model.makeNode(GoodNode );
  2417. model.copyNode(GoodNode, GoodCopy);
  2418. }
  2419. model.setValue(GoodNode + "/oprsrvno" , model.getValue(gPathNode[6] + "/oprsrvno" )); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  2420. model.setValue(GoodNode + "/cartgubn" , tempCartGb); // 02 Cart구분 (O:수술,A:마취,R:회복)
  2421. model.setValue(GoodNode + "/ordseq" , "" ); // 03 처방순번
  2422. model.setValue(GoodNode + "/instcd" , "" ); // 04 병원기관코드(코드정의서 Z0007 참조)
  2423. model.setValue(GoodNode + "/goodcd" , iSplit_Value[0] ); // 05 물품코드
  2424. model.setValue(GoodNode + "/allsizespecid" , iSplit_Value[2] ); // 06 ALLSIZE규격ID
  2425. model.setValue(GoodNode + "/goodcls" , iSplit_Value[4] ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  2426. model.setValue(GoodNode + "/goodqty" , "0" ); // 08 물품수량
  2427. model.setValue(GoodNode + "/addreductqty" , "0" ); // 09 가감수량
  2428. model.setValue(GoodNode + "/payflagcd" , iSplit_Value[9] ); // 10 급여구분코드 (코드정의서 M0029 참조)
  2429. model.setValue(GoodNode + "/oproomcd" , model.getValue(gPathNode[6] + "/oproomcd" ) ); // 11 수술실코드
  2430. model.setValue(GoodNode + "/prcpdd" , "" ); // 12 처방일자
  2431. model.setValue(GoodNode + "/prcpno" , "" ); // 13 처방일자별 일련번호
  2432. model.setValue(GoodNode + "/prcphistno" , "" ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  2433. model.setValue(GoodNode + "/pid" , model.getValue(gPathNode[6] + "/pid" ) ); // 15 등록번호
  2434. model.setValue(GoodNode + "/saveqty" , "0" ); // 16 변경Check 수량 (물품수량 + 가감수량)
  2435. model.setValue(GoodNode + "/outqty" , "0" ); // 17 변경할 수량 (물품수량 + 가감수량)
  2436. model.setValue(GoodNode + "/goodengnm" , iSplit_Value[1] ); // 18 물품(처방)명
  2437. model.setValue(GoodNode + "/goodspec" , iSplit_Value[5] ); // 19 규격명
  2438. model.setValue(GoodNode + "/prodcmpynm" , iSplit_Value[3] ); // 20 제조사
  2439. model.setValue(GoodNode + "/goodmodel" , iSplit_Value[6] ); // 21 모델
  2440. model.setValue(GoodNode + "/deliveunit" , iSplit_Value[7] ); // 22 단위
  2441. //model.setValue(GoodNode + "/oproomnm" , model.getValue(gPathNode[6] +"/oproomnm" ) ); // 23 수술실명
  2442. model.setValue(GoodNode + "/oproomnm" , vOproomnm ); // 23 수술실명
  2443. model.setValue(GoodNode + "/oproomdeptcd" , model.getValue(gPathNode[6] +"/oproomdeptcd") ); // 24 수술실부서코드
  2444. model.setValue(GoodNode + "/recflag" , "I" ); // 25 U:수정,I:입력구분
  2445. //model.setValue(GoodNode + "/recflagnm" , "추" ); // 26 추가구분명 추
  2446. model.setValue(GoodNode + "/prcpclscd" , iSplit_Value[10] ); // 27 처방구분
  2447. model.setValue(GoodNode + "/old_payflagcd" , iSplit_Value[9] ); // 10 급여구분코드 (코드정의서 M0029 참조)
  2448. model.setValue(GoodNode + "/calculyn" , iSplit_Value[11] ); // 산정여부
  2449. model.setValue(GoodNode + "/todd" , "99991231" ); // 38 종료일자
  2450. model.setValue(GoodNode + "/listodd" , "99991231" ); // 39 진료지원종료일자
  2451. model.setValue(GoodNode + "/spcmtodd" , "99991231" ); // 40 진검종료일자
  2452. xNode = instance1.selectSingleNode(iCartNode);
  2453. if (xNode == null) {
  2454. model.makeNode(iCartNode );
  2455. model.copyNode(iCartNode , GoodNode);
  2456. } else {
  2457. model.duplicate(gPathNode[8], GoodNode);
  2458. }
  2459. // eval("grd_"+tNameCart[sIdx]).rowStyle(i, "data", "color") = "#ff00ff";
  2460. eval("grd_"+tNameCart[sIdx]).refresh();
  2461. eval("grd_"+tNameCart[sIdx]).row = eval("grd_"+tNameCart[sIdx]).rows - eval("grd_"+tNameCart[sIdx]).fixedRows;
  2462. eval("grd_"+tNameCart[sIdx]).topRow = eval("grd_"+tNameCart[sIdx]).row;
  2463. }
  2464. }
  2465. }
  2466. }
  2467. // --------------------------------------------------
  2468. // Copy Cart Instance Clear
  2469. // --------------------------------------------------
  2470. function fClearCopyCart() {
  2471. model.setValue(GoodCopy + "/oprsrvno" , "" ); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  2472. model.setValue(GoodCopy + "/cartgubn" , "" ); // 02 Cart구분 (O:수술,A:마취)
  2473. model.setValue(GoodCopy + "/ordseq" , "" ); // 03 처방순번
  2474. model.setValue(GoodCopy + "/instcd" , "" ); // 04 병원기관코드(코드정의서 Z0007 참조)
  2475. model.setValue(GoodCopy + "/goodcd" , "" ); // 05 물품코드
  2476. model.setValue(GoodCopy + "/allsizespecid" , "" ); // 06 ALLSIZE규격ID
  2477. model.setValue(GoodCopy + "/goodcls" , "" ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  2478. model.setValue(GoodCopy + "/goodqty" , "" ); // 08 물품수량
  2479. model.setValue(GoodCopy + "/addreductqty" , "" ); // 09 가감수량
  2480. model.setValue(GoodCopy + "/payflagcd" , "" ); // 10 급여구분코드 (코드정의서 M0029 참조)
  2481. model.setValue(GoodCopy + "/oproomcd" , "" ); // 11 수술실코드
  2482. model.setValue(GoodCopy + "/prcpdd" , "" ); // 12 처방일자
  2483. model.setValue(GoodCopy + "/prcpno" , "" ); // 13 처방일자별 일련번호
  2484. model.setValue(GoodCopy + "/prcphistno" , "" ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  2485. model.setValue(GoodCopy + "/pid" , "" ); // 15 등록번호
  2486. model.setValue(GoodCopy + "/saveqty" , "" ); // 16 변경Check 수량 (물품수량 + 가감수량)
  2487. model.setValue(GoodCopy + "/outqty" , "" ); // 17 변경할 수량 (물품수량 + 가감수량)
  2488. model.setValue(GoodCopy + "/goodengnm" , "" ); // 18 물품(처방)명
  2489. model.setValue(GoodCopy + "/goodspec" , "" ); // 19 규격명
  2490. model.setValue(GoodCopy + "/prodcmpynm" , "" ); // 20 제조사
  2491. model.setValue(GoodCopy + "/goodmodel" , "" ); // 21 모델
  2492. model.setValue(GoodCopy + "/deliveunit" , "" ); // 22 단위
  2493. model.setValue(GoodCopy + "/oproomnm" , "" ); // 23 수술실명
  2494. model.setValue(GoodCopy + "/oproomdeptcd" , "" ); // 24 수술실부서코드
  2495. model.setValue(GoodCopy + "/recflag" , "" ); // 25 U:수정,I:입력구분
  2496. model.setValue(GoodCopy + "/delcheck" , "" ); // 26 삭제 CHECK
  2497. model.setValue(GoodCopy + "/deleteyn" , "" ); // 27 삭제 여부
  2498. model.setValue(GoodCopy + "/old_payflagcd" , "" ); // 10 급여구분코드 (코드정의서 M0029 참조)
  2499. model.setValue(GoodCopy + "/calculyn" , "" ); // 산정여부
  2500. model.setValue(GoodCopy + "/todd" , "" ); // 38 종료일자
  2501. model.setValue(GoodCopy + "/listodd" , "" ); // 39 진료지원종료일자
  2502. model.setValue(GoodCopy + "/spcmtodd" , "" ); // 40 진검종료일자
  2503. //20110328 이선경(경북대): 응급처방구분추가
  2504. model.setValue(GoodCopy + "/erprcpflag" , "" ); // 41 응급처방구분추가
  2505. }
  2506. // --------------------------------------------------
  2507. // 물품코드 상세 내역 조회
  2508. // --------------------------------------------------
  2509. function fRscdgoodData_Read() {
  2510. model.removenode("/root/send");
  2511. var sInstcd = model.getValue("/root/init/instcd" ); // 기관코드
  2512. var sGoodcd = model.getValue("/root/init/WorkData/InputGood/goodcd" ); // 물품코드
  2513. var sAllsizespecid = model.getValue("/root/init/WorkData/InputGood/allsizespecid"); // ALLSIZE규격ID
  2514. if (sGoodcd == "" ) {
  2515. return;
  2516. }
  2517. model.makeValue("/root/send/instcd" , sInstcd ); // 기관코드
  2518. model.makeValue("/root/send/goodcd" , sGoodcd ); // 물품코드
  2519. model.makeValue("/root/send/allsizespecid", sAllsizespecid); // ALLSIZE규격ID
  2520. if (submit("TRMNP01803")) { // 물품코드 상세 내역 조회
  2521. var GoodNode = "/root/init/WorkData/InputGood";
  2522. var RsGood = "root/main/MnprdrugLists/rscdgoodlist";
  2523. model.setValue(GoodNode + "/goodcd" , model.getValue(RsGood + "/goodcd" )); // 물품코드
  2524. model.setValue(GoodNode + "/allsizespecid", model.getValue(RsGood + "/allsizespecid" )); // ALLSIZE규격ID
  2525. model.setValue(GoodNode + "/goodengnm" , model.getValue(RsGood + "/goodhngnm" )); // 물품명
  2526. model.setValue(GoodNode + "/makernm" , model.getValue(RsGood + "/prodcmpynm" )); // 제조회사명
  2527. model.setValue(GoodNode + "/goodspec" , model.getValue(RsGood + "/goodspec" )); // 물품규격
  2528. model.setValue(GoodNode + "/goodmodel" , model.getValue(RsGood + "/goodmodel" )); // 모델
  2529. model.setValue(GoodNode + "/deliveunit" , model.getValue(RsGood + "/deliveunit" )); // 수불단위(R0039)
  2530. model.setValue(GoodNode + "/reuseyn" , model.getValue(RsGood + "/reuseyn" )); // -:None,1:재사용,2:분할사용
  2531. model.setValue(GoodNode + "/divusenvalqty", model.getValue(RsGood + "/divusenvalqty" )); // 분할사용수치
  2532. model.setValue(GoodNode + "/ordseq" , model.getValue(RsGood + "/cureflag" )); // 1:suture,2:supplies, 3:instrument, 4: drug 5:처치구분
  2533. fMnprdrugData_Read(); //수술방별 안전재고와 재고량 내역 조회
  2534. grp_good.refresh();
  2535. }
  2536. }
  2537. // 물품수량변경 사유추가
  2538. function fPopupMemo(pIdx, pGrid){
  2539. var pRow = pGrid.row;
  2540. var GoodNode = "/root/init/WorkData/InputGood";
  2541. wGoodCd = pGrid.valueMatrix(pGrid.row, pGrid.colRef("goodcd"));
  2542. wGoodSz = pGrid.valueMatrix(pGrid.row, pGrid.colRef("allsizespecid"));
  2543. wGoodSq = pGrid.valueMatrix(pGrid.row, pGrid.colRef("ordseq"));
  2544. var wCartPath = gPathNode[8]+"/"+tPathCart[pIdx]+ "[goodcd='"+ wGoodCd+"' and allsizespecid='"+wGoodSz+"' and ordseq='"+wGoodSq+"']";
  2545. if(wGoodSq == ""){
  2546. wCartPath = gPathNode[8]+"/"+tPathCart[pIdx]+ "["+pRow+"]";
  2547. }
  2548. // alert(wGoodCd+"==>"+model.getValue(wCartPath2+"/goodengnm"));
  2549. setParameter("goodcd" , model.getValue(wCartPath + "/goodcd" )); // 01 물품코드
  2550. setParameter("allsizespecid", model.getValue(wCartPath + "/allsizespecid")); // 02 ALLSIZE규격ID
  2551. setParameter("goodengnm" , model.getValue(wCartPath + "/goodengnm" )); // 03 물품(처방)명
  2552. setParameter("goodspec" , model.getValue(wCartPath + "/goodspec" )); // 04 규격명
  2553. setParameter("goodmodel" , model.getValue(wCartPath + "/goodmodel" )); // 05 모델
  2554. setParameter("prodcmpynm" , model.getValue(wCartPath + "/prodcmpynm" )); // 06 제조사
  2555. setParameter("deliveunit" , model.getValue(wCartPath + "/deliveunit" )); // 07 단위
  2556. setParameter("outqty" , model.getValue(wCartPath + "/outqty" )); // 08 변경전 수량
  2557. setParameter("aftqty" , model.getValue(wCartPath + "/outqty" )); // 09 변경할 수량
  2558. setParameter("prcpmemo" , model.getValue(wCartPath + "/prcpmemo" )); // 10 변경사유
  2559. modal("SPMNP01800" ,"", "100", "100", "SPMNP01800", "", "");
  2560. var sAfterQty = getParameter("aftqty" );
  2561. var sPrcpMemo = getParameter("prcpmemo");
  2562. if(sPrcpMemo == "") return;
  2563. model.setValue(wCartPath + "/outqty" , sAfterQty); // 09 변경할 수량
  2564. model.setValue(wCartPath + "/prcpmemo" , sPrcpMemo); // 10 변경사유
  2565. pGrid.refresh();
  2566. }
  2567. /**
  2568. *
  2569. * 약속 처방 조회 PopUp Click시 이벤트
  2570. */
  2571. function fOnClickNurOrderPopUp(){
  2572. fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2573. var xpos = 200; //event.screenX;
  2574. var ypos = 300; //event.screenY-300;
  2575. //modal("SPMNP01801" ,"", xpos, ypos, "SPMNP01801", "", "");
  2576. //2008-08-21 오전 12:28:09 taebum 약속 처방 조회시 현재 수술방의 방재고를 함께 조회하기 위한 파라미터 설정 추가
  2577. var sOproomcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/oproomcd");
  2578. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn");
  2579. var sInsuKind = model.getValue("/root/main/MmohoprsLists/mmohoprslist/insukindcd");
  2580. setParameter("SMMNP01801_oproomcd", sOproomcd);
  2581. setParameter("SMMNP01801_cartgubn", sCartGubn);
  2582. setParameter("SMMNP01801_insukindcd", sInsuKind);
  2583. open("SPMNP01801" ,"", xpos, ypos, "SPMNP01801", "", "");
  2584. }
  2585. /**
  2586. *
  2587. * Cart 복사 조회 PopUp Click시 이벤트
  2588. */
  2589. function fOnClickCartCopyPopUp(){
  2590. fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2591. var xpos = 200; //event.screenX;
  2592. var ypos = 300; //event.screenY-300;
  2593. //2008-08-21 오전 12:28:09 taebum 약속 처방 조회시 현재 수술방의 방재고를 함께 조회하기 위한 파라미터 설정 추가
  2594. var sOproomcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/oproomcd");
  2595. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn");
  2596. var sAnstCart = model.getValue("/root/init/WorkData/cond/anstcartyn");
  2597. var sInsuKind = model.getValue("/root/main/MmohoprsLists/mmohoprslist/insukindcd");
  2598. setParameter("SPMNP01802_oproomcd", sOproomcd);
  2599. setParameter("SPMNP01802_cartgubn", sCartGubn);
  2600. setParameter("SPMNP01802_insukindcd", sInsuKind);
  2601. if( (sCartGubn == "A"||sCartGubn == "R")&&(sAnstCart == "Y") ){//마취, 회복이면서 마취카트 사용여부 Y이면 마취카트 복사 팝업으로
  2602. open("SPMNP01805" ,"", xpos, ypos, "SPMNP01805", "", "");
  2603. }else {
  2604. open("SPMNP01802" ,"", xpos, ypos, "SPMNP01802", "", "");
  2605. }
  2606. }
  2607. /**
  2608. *
  2609. * 물품 찾기 조회 PopUp Click시 이벤트
  2610. */
  2611. function fOnClickSearchGoodPopUp(){
  2612. fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2613. var xpos = 200; //event.screenX;
  2614. var ypos = 300; //event.screenY-300;
  2615. //2008-08-21 오전 12:28:09 taebum 약속 처방 조회시 현재 수술방의 방재고를 함께 조회하기 위한 파라미터 설정 추가
  2616. var sOproomcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/oproomcd");
  2617. var sCartGubn = model.getValue("/root/init/WorkData/cond/cartgubn");
  2618. var sInsuKind = model.getValue("/root/main/MmohoprsLists/mmohoprslist/insukindcd");
  2619. var CartStat = model.getValue("/root/init/WorkData/cond/cartstat");
  2620. var oprsrvno = model.getValue("/root/main/MmohoprsLists/mmohoprslist/oprsrvno");
  2621. setParameter("SPMNP01601_ccrtstat", CartStat);
  2622. setParameter("SPMNP01601_oproomcd", sOproomcd);
  2623. setParameter("SPMNP01601_cartgubn", sCartGubn);
  2624. setParameter("SPMNP01601_insukindcd", sInsuKind);
  2625. setParameter("SPMNP01601_oprsrvno", oprsrvno);
  2626. open("SPMNP01601" ,"", xpos, ypos, "SPMNP01601", "", "");
  2627. }
  2628. // 물품코드 popup Data Display - SPMNP01601.js에서 옮겨옴. taebum 2008-07-31 오전 10:15:05
  2629. function fGoodDataDisplay(pParamList) {
  2630. //fReSrchOpState(); // 수술진행상태 재조회 + 버튼 컨트로 처리
  2631. var iParamData = pParamList.split("▩");
  2632. var closeyn = getParameter("SPMNP01601_closeyn");
  2633. var sIdx = 0; //물품분류
  2634. var idx = ""; //물품입력 노드 index
  2635. var sPurcFlag = ""; //물품청구구분
  2636. var cnt0idx = 0;
  2637. var cnt1idx = 0;
  2638. var cnt2idx = 0;
  2639. var cnt3idx = 0;
  2640. var cnt4idx = 0;
  2641. var cnt5idx = 0;
  2642. var tempCartGb = model.getValue("/root/init/WorkData/cond/cartgubn");
  2643. /*
  2644. //2008-08-18 오후 1:30:21 taebum 회복은 R로 처리
  2645. if(tempCartGb == "R"){
  2646. tempCartGb = "O";
  2647. }
  2648. */
  2649. var vGoodCrFlag = "E";
  2650. if(bbt_tSave.disabled == false){
  2651. vGoodCrFlag = "S";
  2652. }
  2653. for (ii = 0; ii < iParamData.length; ii++) {
  2654. pData = iParamData[ii];
  2655. var iSplit_Value = pData.split("|");
  2656. if (iSplit_Value[0] != "") {
  2657. var GoodCd = iSplit_Value[0];
  2658. if (fCheckGoodCd(GoodCd)) {
  2659. sIdx = iSplit_Value[4];
  2660. sPurcFlag = iSplit_Value[12];
  2661. if (sIdx == "") {
  2662. idx = 0;
  2663. } else {
  2664. idx = fChngNodeValue(sIdx, sPurcFlag);
  2665. if(idx == "0"){
  2666. cnt0idx++;
  2667. }else if(idx == "1"){
  2668. cnt1idx++;
  2669. }else if(idx == "2"){
  2670. cnt2idx++;
  2671. }else if(idx == "3"){
  2672. cnt3idx++;
  2673. }else if(idx == "4"){
  2674. cnt4idx++;
  2675. }
  2676. }
  2677. //2008-10-07 오전 11:45:43 taebum
  2678. //var iCartNode = gPathNode[8]+"/"+tPathCart[sIdx] ;
  2679. var iCartNode = gPathNode[8]+"/"+tPathCart[idx] ;
  2680. var GoodNode = "/root/init/WorkData/"+tPathCart[idx];
  2681. var xNode = instance1.selectSingleNode(GoodNode);
  2682. if (xNode == null) {
  2683. model.makeNode(GoodNode );
  2684. model.copyNode(GoodNode, GoodCopy);
  2685. }
  2686. model.setValue(GoodNode + "/oprsrvno" , model.getValue(gPathNode[6] + "/oprsrvno" )); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  2687. model.setValue(GoodNode + "/cartgubn" , tempCartGb); // 02 Cart구분 (O:수술,A:마취)
  2688. model.setValue(GoodNode + "/ordseq" , "" ); // 03 처방순번
  2689. model.setValue(GoodNode + "/instcd" , "" ); // 04 병원기관코드(코드정의서 Z0007 참조)
  2690. model.setValue(GoodNode + "/goodcd" , iSplit_Value[0] ); // 05 물품코드
  2691. model.setValue(GoodNode + "/allsizespecid" , iSplit_Value[2] ); // 06 ALLSIZE규격ID
  2692. model.setValue(GoodNode + "/goodcls" , iSplit_Value[4] ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  2693. //20101123KNUH_김병국, goodqty, addreductqty, saveqty, outqty
  2694. //20110107KNUH_김병국 goodqty = 0으로 수정.
  2695. model.setValue(GoodNode + "/goodqty" , "0" ); // 08 물품수량
  2696. if(closeyn == "Y") {
  2697. model.setValue(GoodNode + "/addreductqty" , iSplit_Value[19] ); // 09 가감수량
  2698. model.setValue(GoodNode + "/saveqty" , iSplit_Value[19] ); // 16 변경Check 수량 (물품수량 + 가감수량)
  2699. model.setValue(GoodNode + "/outqty" , iSplit_Value[19] ); // 17 변경할 수량 (물품수량 + 가감수량)
  2700. } else {
  2701. model.setValue(GoodNode + "/addreductqty" , "1" ); // 09 가감수량
  2702. model.setValue(GoodNode + "/saveqty" , "1" ); // 16 변경Check 수량 (물품수량 + 가감수량)
  2703. model.setValue(GoodNode + "/outqty" , "1" ); // 17 변경할 수량 (물품수량 + 가감수량)
  2704. }
  2705. model.setValue(GoodNode + "/payflagcd" , iSplit_Value[14] ); // 10 급여구분코드 (코드정의서 M0029 참조)
  2706. if(closeyn == "Y") {
  2707. model.setValue(GoodNode + "/oproomcd" , iSplit_Value[18] ); // 11 수술실코드
  2708. } else {
  2709. model.setValue(GoodNode + "/oproomcd" , model.getValue(gPathNode[6] + "/oproomcd" ) ); // 11 수술실코드
  2710. }
  2711. model.setValue(GoodNode + "/prcpdd" , "" ); // 12 처방일자
  2712. model.setValue(GoodNode + "/prcpno" , "0" ); // 13 처방일자별 일련번호
  2713. model.setValue(GoodNode + "/prcphistno" , "0" ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  2714. model.setValue(GoodNode + "/pid" , model.getValue(gPathNode[6] + "/pid" ) ); // 15 등록번호
  2715. model.setValue(GoodNode + "/goodengnm" , iSplit_Value[1] ); // 18 물품(처방)명
  2716. model.setValue(GoodNode + "/goodspec" , iSplit_Value[5] ); // 19 규격명
  2717. model.setValue(GoodNode + "/prodcmpynm" , iSplit_Value[3] ); // 20 제조사
  2718. model.setValue(GoodNode + "/goodmodel" , iSplit_Value[6] ); // 21 모델
  2719. model.setValue(GoodNode + "/deliveunit" , iSplit_Value[7] ); // 22 불출단위
  2720. //model.setValue(GoodNode + "/oproomnm" , model.getValue(gPathNode[6] +"/oproomnm" ) ); // 23 수술실명
  2721. if(closeyn == "Y") {
  2722. model.setValue(GoodNode + "/oproomnm" , iSplit_Value[20] ); // 23 수술실명
  2723. } else {
  2724. model.setValue(GoodNode + "/oproomnm" , vOproomnm ); // 23 수술실명
  2725. }
  2726. model.setValue(GoodNode + "/oproomdeptcd" , model.getValue(gPathNode[6] +"/oproomdeptcd") ); // 24 수술실부서코드
  2727. model.setValue(GoodNode + "/recflag" , "I" ); // 25 U:수정,I:입력구분
  2728. model.setValue(GoodNode + "/drugmthdspccd" , iSplit_Value[8] ); // 28 투여방법 및 검체코드
  2729. //2008-08-21 오전 8:09:46 taebum add
  2730. model.setValue(GoodNode + "/stocqty" , iSplit_Value[9] ); // 29 실재고량
  2731. model.setValue(GoodNode + "/acmlbaseqty" , iSplit_Value[10] ); // 29 기준수량
  2732. model.setValue(GoodNode + "/reqmthd" , iSplit_Value[11] ); // 30 청구방법
  2733. //2009-03-09 ycd 물품발생구분(정규 : S , 응급 : E )
  2734. model.setValue(GoodNode + "/goodcrflag" , vGoodCrFlag ); // 31 물품발생구분(S : 정규, E : 응급 )
  2735. model.setValue(GoodNode + "/prcpunit" , iSplit_Value[7] ); // 22 처방단위
  2736. model.setValue(GoodNode + "/purcflag" , iSplit_Value[12] ); // 32 청구방법
  2737. model.setValue(GoodNode + "/prcpclscd" , iSplit_Value[13] ); // 33 처방구분
  2738. model.setValue(GoodNode + "/old_payflagcd" , iSplit_Value[14] ); // 10 급여구분코드 (코드정의서 M0029 참조)
  2739. model.setValue(GoodNode + "/calculyn" , iSplit_Value[15] ); // 34 산정여부
  2740. model.setValue(GoodNode + "/insuyn" , iSplit_Value[16] ); // 36 수가대상여부
  2741. model.setValue(GoodNode + "/calcscorcd" , iSplit_Value[17] ); // 37 수가코드
  2742. model.setValue(GoodNode + "/todd" , "99991231" ); // 38 종료일자
  2743. model.setValue(GoodNode + "/listodd" , "99991231" ); // 39 진료지원종료일자
  2744. model.setValue(GoodNode + "/spcmtodd" , "99991231" ); // 40 진검종료일자
  2745. model.setValue(GoodNode + "/anamneflag" , "N" ); // 기왕증유무
  2746. model.setValue(GoodNode + "/subcretno" , "0" ); // 부유형(subcretno)
  2747. model.setValue(GoodNode + "/erbgcd" , "" ); // 부유형(subcretno)
  2748. //중복된 내역이 있을 경우 insert하지 않는다.
  2749. var iDataCnt = getNodesetCount(iCartNode);
  2750. var bSameFlag = false;
  2751. if(iDataCnt > 0){
  2752. var sTempRecflag = "";
  2753. var sTempGoodcd = "";
  2754. var sTempAllsize = "";
  2755. for(var k = 1; k <= iDataCnt; k++){
  2756. sTempRecflag = model.getValue(iCartNode+"["+k+"]/recflag");
  2757. sTempGoodcd = model.getValue(iCartNode+"["+k+"]/goodcd");
  2758. sTempAllsize = model.getValue(iCartNode+"["+k+"]/allsizespecid");
  2759. if(sTempRecflag == "I" && iSplit_Value[0] == sTempGoodcd && iSplit_Value[2] == sTempAllsize){
  2760. bSameFlag = true;
  2761. }
  2762. }
  2763. }
  2764. //2008-10-03 오후 11:42:31 taebum 중복 처방 발생시 알림 처리
  2765. if(bSameFlag == true){
  2766. if (window.alert(iSplit_Value[0]+"는 중복된 처방입니다. 추가 하시겠습니까? " ,"중복처방 확인", 1 | 32) != 1){
  2767. messageBox("취소 되었습니다.", "I000");
  2768. bSameFlag = true;
  2769. }else{
  2770. bSameFlag = false;
  2771. }
  2772. }
  2773. if(bSameFlag == false){
  2774. xNode = instance1.selectSingleNode(iCartNode);
  2775. if (xNode == null) {
  2776. model.makeNode(iCartNode );
  2777. model.copyNode(iCartNode , GoodNode);
  2778. } else {
  2779. model.duplicate(gPathNode[8], GoodNode);
  2780. }
  2781. // eval("grd_"+tNameCart[sIdx]).rowStyle(i, "data", "color") = "#ff00ff";
  2782. //eval("grd_"+tNameCart[idx]).refresh();
  2783. //eval("grd_"+tNameCart[idx]).row = eval("grd_"+tNameCart[idx]).rows - eval("grd_"+tNameCart[idx]).fixedRows;
  2784. //eval("grd_"+tNameCart[idx]).topRow = eval("grd_"+tNameCart[idx]).row;
  2785. }
  2786. }
  2787. }
  2788. }
  2789. for(var k = 0 ; k < 5 ; k++){
  2790. if(eval("cnt" + "" + k + "" + "idx") > 0){
  2791. eval("grd_"+tNameCart[k]).refresh();
  2792. eval("grd_"+tNameCart[k]).row = eval("grd_"+tNameCart[k]).rows - eval("grd_"+tNameCart[k]).fixedRows;
  2793. eval("grd_"+tNameCart[k]).topRow = eval("grd_"+tNameCart[k]).row;
  2794. }
  2795. }
  2796. model.refresh();
  2797. //20110418 이선경(경북대) : 정규처방이면 응급처방구분은 비활성화
  2798. if(vGoodCrFlag == "S") {
  2799. for (var idx = grd_supplies.rows - iParamData.length; idx < grd_supplies.rows ; idx++) {
  2800. grd_supplies.isReadOnly(idx, grd_supplies.colRef("erprcpflag"), idx, grd_supplies.colRef("erprcpflag"))= true;
  2801. }
  2802. }
  2803. }
  2804. /**
  2805. * @group :
  2806. * @ver : 2009.03.05
  2807. * @by : 양천덕
  2808. * @---------------------------------------------------
  2809. * @type : function
  2810. * @access : public
  2811. * @desc : 물품분류와 청구구분에 따른 세팅 Node Index 설정
  2812. * @param : pFlag1 => 물품분류
  2813. * pFlag2 => 청구구분(purcflag)
  2814. * @return : idx => 세팅 Node Index
  2815. * @---------------------------------------------------
  2816. */
  2817. function fChngNodeValue(pFlag1, pFlag2){
  2818. if(pFlag2 == "3" ){ //가납물품
  2819. idx = "4";
  2820. }else{ //가납물품이 아닐 경우
  2821. if(pFlag1 == "6"||pFlag1 == "10"){//수술소모품, 린넨
  2822. idx = "3";
  2823. }else if(pFlag1 == "3"){ //DRUG
  2824. idx = "1";
  2825. }else if(pFlag1 == "4"){ //INSTRUMENT
  2826. idx = "2";
  2827. }else{
  2828. idx = "0"; //봉합사, 공급물품, 처치, Sheet, Glove, 일반물품
  2829. }
  2830. }
  2831. return idx;
  2832. }
  2833. /**
  2834. * @group :
  2835. * @ver : 2009.03.06
  2836. * @by : 양천덕
  2837. * @---------------------------------------------------
  2838. * @type : function
  2839. * @access : public
  2840. * @desc : 화면 오른쪽 마우스 팝업 설정
  2841. * @param : pData => 1 : NodeIndex
  2842. * 2 : ProcValue
  2843. * @param :
  2844. * @return :
  2845. * @---------------------------------------------------
  2846. */
  2847. function fShowPopup(pData){
  2848. var pDataArray = pData.split("*");
  2849. if(pDataArray.length < 3){
  2850. messageBox("실행할 처방을 선택하십시오.", "I000");
  2851. return;
  2852. }
  2853. var pNodeIdx = pDataArray[0]; //물품분류
  2854. var pProcIdx = pDataArray[1]; //처리코드
  2855. var pSrow = pDataArray[2]; //선택Row
  2856. fGoodClick(pNodeIdx, eval(sGridNm[pNodeIdx]));
  2857. var xpos = 200; //event.screenX;
  2858. var ypos = 300;
  2859. switch(pProcIdx) {
  2860. case "0": //행추가
  2861. fAddGoodRowCopy();
  2862. break;
  2863. case "1": //다른방 재고 사용 처리
  2864. open("SPMNP01803", "", xpos, ypos, "SPMNP01803", "/root/main/MnprdrugLists", "/root/main/MnprdrugLists");
  2865. //fMnphcrusSave(); // SPMNP01803 화면 종료시 실행되므로 주석처리
  2866. break;
  2867. case "2": //급비변경 처리
  2868. modal("SPMNP01804", "", xpos, ypos, "SPMNP01804", gPathNode[8]+"/"+tPathCart[pNodeIdx]+"["+pSrow+"]", "/root/main/CartOrdData/ChngInfo");
  2869. if(model.getValue(gPathNode[8]+"/"+tPathCart[pNodeIdx]+"["+pSrow+"]/payflagcd") != getParameter("SPMNP01804_Return") &&
  2870. getParameter("SPMNP01804_Return") != "" ){
  2871. model.setValue(gPathNode[8]+"/"+tPathCart[pNodeIdx]+"["+pSrow+"]/payflagcd", getParameter("SPMNP01804_Return") );
  2872. }
  2873. eval(sGridNm[pNodeIdx]).refresh();
  2874. break;
  2875. default :
  2876. break;
  2877. }
  2878. }
  2879. /**
  2880. * @group :
  2881. * @ver : 2009.03.06
  2882. * @by : 양천덕
  2883. * @---------------------------------------------------
  2884. * @type : function
  2885. * @access : public
  2886. * @desc : 수술 야간응급 지정/취소 설정
  2887. * @param : sParam => Y : 야간응급 , N : 일반
  2888. * @return :
  2889. * @---------------------------------------------------
  2890. */
  2891. function fChngNigtOpYn(sParam){
  2892. var NigtOpYnMsg = "";
  2893. if(sParam == "Y"){
  2894. NigtOpYnMsg = messageBox("야간응급 지정을", "Q004");
  2895. }else{
  2896. NigtOpYnMsg = messageBox("야간응급 지정 취소를", "Q004");
  2897. }
  2898. if(NigtOpYnMsg == "6"){
  2899. model.removenode("/root/send");
  2900. model.makeValue("/root/send/instcd" , model.getValue(gPathNode[7]+"/instcd" )); // 기관코드
  2901. model.makeValue("/root/send/oprsrvno" , model.getValue(gPathNode[7]+"/oprsrvno")); // 수술예약(의뢰)번호 (년도 + 일련번호)
  2902. model.makeValue("/root/send/ophistno" , model.getValue(gPathNode[7]+"/ophistno")); // 예약번호에따른이력번호
  2903. model.makeValue("/root/send/ophistcd" , model.getValue(gPathNode[7]+"/ophistcd")); // 수술예약의이력코드
  2904. model.makeValue("/root/send/prcpamtaddyn" , sParam ); // 야간응급지정구분
  2905. if(submit("TXMNP01807", false) == true){
  2906. if(model.getValue("/root/temp/rtninfo/rtnflag") != "1"){
  2907. messageBox("실행을", "E009");
  2908. if(model.getValue(gPathNode[6]+"/prcpamtaddyn") == ""){
  2909. model.setValue(gPathNode[6]+"/prcpamtaddyn", "Y");
  2910. }else{
  2911. model.setValue(gPathNode[6]+"/prcpamtaddyn", "");
  2912. }
  2913. }
  2914. }else{
  2915. if(model.getValue(gPathNode[6]+"/prcpamtaddyn") == ""){
  2916. model.setValue(gPathNode[6]+"/prcpamtaddyn", "Y");
  2917. }else{
  2918. model.setValue(gPathNode[6]+"/prcpamtaddyn", "");
  2919. }
  2920. }
  2921. chk_prcpamtaddyn.refresh();
  2922. }else{
  2923. if(sParam == "Y"){
  2924. model.setValue("/root/main/MmohoprsLists/mmohoprslist/prcpamtaddyn", "");
  2925. }else{
  2926. model.setValue("/root/main/MmohoprsLists/mmohoprslist/prcpamtaddyn", "Y");
  2927. }
  2928. chk_prcpamtaddyn.refresh();
  2929. return;
  2930. }
  2931. }
  2932. /**
  2933. * @desc : 수술간호처방 SignData 생성
  2934. * @
  2935. * @param : signbfcnts - 인증 전 데이터
  2936. * : signuserid - 인증자ID
  2937. * : signcnfmflag - 인증확인여부
  2938. * @return :
  2939. * @author : 양천덕 2009. 3. 11
  2940. * @---------------------------------------------------
  2941. */
  2942. function fMakeSignData(signbfcnts, userid, signcnfmflag){
  2943. return zesfSignData(signbfcnts, userid, signcnfmflag);
  2944. }
  2945. /**
  2946. * @desc : 수술진행상태 재조회
  2947. * @
  2948. * @param :
  2949. * @return :
  2950. * @author : 양천덕 2009. 3. 16
  2951. * @---------------------------------------------------
  2952. */
  2953. function fReSrchOpState(){
  2954. fMmohoprsData_Read("P");
  2955. fButtonControl();
  2956. }
  2957. /**
  2958. * @desc : 화면 그리드 크기 조정
  2959. * @
  2960. * @param :
  2961. * @return :
  2962. * @author : 양천덕 2009. 3. 16
  2963. * @---------------------------------------------------
  2964. */
  2965. function fGridSizeChng(pParam){
  2966. /*
  2967. ====> case 1
  2968. 1 caption : style="left:5px; top:7px; width:74px; height:13px; background-image:../../../com/commonweb/images/tit_bullet2.gif; "
  2969. 1 line : style="x1:5px; y1:23px; x2:1185px; y2:23px; "
  2970. 1 grid : style="left:5px; top:28px; width:1180px; height:170px; "
  2971. T =>
  2972. B => t : X h : 517px
  2973. 2 c : 551px 3 c : top:575px;
  2974. 2 l : 567px 3 l : 591px;
  2975. 2 bt : 549px 3 bt : top:573px;
  2976. 2 tt : 549px 3 tt : top:573px;
  2977. 2 caption : style="left:5px; top:204px; width:114px; height:13px; background-image:../../../com/commonweb/images/tit_bullet2.gif; "
  2978. 2 line : style="x1:5px; y1:220px; x2:1185px; y2:220px; "
  2979. 2 grid : style="left:5px; top:225px; width:1180px; height:170px; "
  2980. T =>
  2981. B => t : 54px h : 516px
  2982. 2 c : 33px 3 c : top:575px;
  2983. 2 l : 49px 3 l : 591px;
  2984. 2 bt : 31px 3 bt : top:573px;
  2985. 2 tt : 31px 3 tt : top:573px;
  2986. 3 caption : style="left:5px; top:402px; width:89px; height:13px; background-image:../../../com/commonweb/images/tit_bullet2.gif; "
  2987. 3 line : style="x1:5px; y1:418px; x2:1185px; y2:418px; "
  2988. 3 grid : style="left:5px; top:423px; width:1180px; height:170px; "
  2989. T =>
  2990. B => t : 79px h : 515px
  2991. 2 c : 33px 3 c : top:58px;
  2992. 2 l : 49px 3 l : 74px;
  2993. 2 bt : 31px 3 bt : top:56px;
  2994. 2 tt : 31px 3 tt : top:56px;
  2995. ====> case 2
  2996. 1 caption :
  2997. 1 line :
  2998. 1 grid :
  2999. 2 caption :
  3000. 2 line :
  3001. 2 grid :
  3002. */
  3003. switch(pParam){
  3004. case "T1" :
  3005. btn_resizeT1.attribute("visibility") = "hidden";
  3006. btn_resizeT2.attribute("visibility") = "hidden";
  3007. btn_resizeT3.attribute("visibility") = "hidden";
  3008. btn_resizeB1.attribute("visibility") = "visible";
  3009. btn_resizeB2.attribute("visibility") = "visible";
  3010. btn_resizeB3.attribute("visibility") = "visible";
  3011. grd_diposit.attribute("visibility") = "visible";
  3012. grd_diposit.attribute("height") = "170";
  3013. grd_supplies.attribute("visibility") = "visible";
  3014. grd_supplies.attribute("top") = "225";
  3015. grd_supplies.attribute("height") = "170";
  3016. cpd_supplies.attribute("top") = "204";
  3017. line20.attribute("y1") = "220";
  3018. line20.attribute("y2") = "220";
  3019. btn_resizeT2.attribute("top") = "202";
  3020. btn_resizeB2.attribute("top") = "202";
  3021. grd_drug.attribute("visibility") = "visible";
  3022. grd_drug.attribute("top") = "423";
  3023. grd_drug.attribute("height") = "170";
  3024. caption17.attribute("top") = "402";
  3025. line1.attribute("y1") = "418";
  3026. line1.attribute("y2") = "418";
  3027. btn_resizeT3.attribute("top") = "400";
  3028. btn_resizeB3.attribute("top") = "400";
  3029. break;
  3030. case "T2" :
  3031. btn_resizeT1.attribute("visibility") = "hidden";
  3032. btn_resizeT2.attribute("visibility") = "hidden";
  3033. btn_resizeT3.attribute("visibility") = "hidden";
  3034. btn_resizeB1.attribute("visibility") = "visible";
  3035. btn_resizeB2.attribute("visibility") = "visible";
  3036. btn_resizeB3.attribute("visibility") = "visible";
  3037. grd_diposit.attribute("visibility") = "visible";
  3038. grd_diposit.attribute("height") = "170";
  3039. grd_supplies.attribute("visibility") = "visible";
  3040. grd_supplies.attribute("top") = "225";
  3041. grd_supplies.attribute("height") = "170";
  3042. cpd_supplies.attribute("top") = "204";
  3043. line20.attribute("y1") = "220";
  3044. line20.attribute("y2") = "220";
  3045. btn_resizeT2.attribute("top") = "202";
  3046. btn_resizeB2.attribute("top") = "202";
  3047. grd_drug.attribute("visibility") = "visible";
  3048. grd_drug.attribute("top") = "423";
  3049. grd_drug.attribute("height") = "170";
  3050. caption17.attribute("top") = "402";
  3051. line1.attribute("y1") = "418";
  3052. line1.attribute("y2") = "418";
  3053. btn_resizeT3.attribute("top") = "400";
  3054. btn_resizeB3.attribute("top") = "400";
  3055. break;
  3056. case "T3" :
  3057. btn_resizeT1.attribute("visibility") = "hidden";
  3058. btn_resizeT2.attribute("visibility") = "hidden";
  3059. btn_resizeT3.attribute("visibility") = "hidden";
  3060. btn_resizeB1.attribute("visibility") = "visible";
  3061. btn_resizeB2.attribute("visibility") = "visible";
  3062. btn_resizeB3.attribute("visibility") = "visible";
  3063. grd_diposit.attribute("visibility") = "visible";
  3064. grd_diposit.attribute("height") = "170";
  3065. grd_supplies.attribute("visibility") = "visible";
  3066. grd_supplies.attribute("top") = "225";
  3067. grd_supplies.attribute("height") = "170";
  3068. cpd_supplies.attribute("top") = "204";
  3069. line20.attribute("y1") = "220";
  3070. line20.attribute("y2") = "220";
  3071. btn_resizeT2.attribute("top") = "202";
  3072. btn_resizeB2.attribute("top") = "202";
  3073. grd_drug.attribute("visibility") = "visible";
  3074. grd_drug.attribute("top") = "423";
  3075. grd_drug.attribute("height") = "170";
  3076. caption17.attribute("top") = "402";
  3077. line1.attribute("y1") = "418";
  3078. line1.attribute("y2") = "418";
  3079. btn_resizeT3.attribute("top") = "400";
  3080. btn_resizeB3.attribute("top") = "400";
  3081. break;
  3082. case "T4" :
  3083. btn_resizeT4.attribute("visibility") = "hidden";
  3084. btn_resizeT5.attribute("visibility") = "hidden";
  3085. btn_resizeB4.attribute("visibility") = "visible";
  3086. btn_resizeB5.attribute("visibility") = "visible";
  3087. grd_instrument.attribute("visibility") = "visible";
  3088. grd_instrument.attribute("height") = "267";
  3089. grd_opsupply.attribute("visibility") = "visible";
  3090. grd_opsupply.attribute("top") = "326";
  3091. grd_opsupply.attribute("height") = "267";
  3092. caption5.attribute("top") = "305";
  3093. line9.attribute("y1") = "321";
  3094. line9.attribute("y2") = "321";
  3095. btn_resizeT5.attribute("top") = "303";
  3096. btn_resizeB5.attribute("top") = "303";
  3097. break;
  3098. case "T5" :
  3099. btn_resizeT4.attribute("visibility") = "hidden";
  3100. btn_resizeT5.attribute("visibility") = "hidden";
  3101. btn_resizeB4.attribute("visibility") = "visible";
  3102. btn_resizeB5.attribute("visibility") = "visible";
  3103. grd_instrument.attribute("visibility") = "visible";
  3104. grd_instrument.attribute("height") = "267";
  3105. grd_opsupply.attribute("visibility") = "visible";
  3106. grd_opsupply.attribute("top") = "326";
  3107. grd_opsupply.attribute("height") = "267";
  3108. caption5.attribute("top") = "305";
  3109. line9.attribute("y1") = "321";
  3110. line9.attribute("y2") = "321";
  3111. btn_resizeT5.attribute("top") = "303";
  3112. btn_resizeB5.attribute("top") = "303";
  3113. break;
  3114. case "B1" :
  3115. btn_resizeT1.attribute("visibility") = "visible";
  3116. btn_resizeT2.attribute("visibility") = "hidden";
  3117. btn_resizeT3.attribute("visibility") = "hidden";
  3118. btn_resizeB1.attribute("visibility") = "hidden";
  3119. btn_resizeB2.attribute("visibility") = "visible";
  3120. btn_resizeB3.attribute("visibility") = "visible";
  3121. grd_diposit.attribute("visibility") = "visible";
  3122. grd_diposit.attribute("height") = "517";
  3123. grd_supplies.attribute("visibility") = "hidden";
  3124. cpd_supplies.attribute("top") = "551";
  3125. line20.attribute("y1") = "567";
  3126. line20.attribute("y2") = "567";
  3127. btn_resizeT2.attribute("top") = "549";
  3128. btn_resizeB2.attribute("top") = "549";
  3129. grd_drug.attribute("visibility") = "hidden";
  3130. caption17.attribute("top") = "575";
  3131. line1.attribute("y1") = "591";
  3132. line1.attribute("y2") = "591";
  3133. btn_resizeT3.attribute("top") = "573";
  3134. btn_resizeB3.attribute("top") = "573";
  3135. break;
  3136. case "B2" :
  3137. btn_resizeT1.attribute("visibility") = "hidden";
  3138. btn_resizeT2.attribute("visibility") = "visible";
  3139. btn_resizeT3.attribute("visibility") = "hidden";
  3140. btn_resizeB1.attribute("visibility") = "visible";
  3141. btn_resizeB2.attribute("visibility") = "hidden";
  3142. btn_resizeB3.attribute("visibility") = "visible";
  3143. grd_diposit.attribute("visibility") = "hidden";
  3144. grd_supplies.attribute("visibility") = "visible";
  3145. grd_supplies.attribute("top") = "52";
  3146. grd_supplies.attribute("height") = "517";
  3147. cpd_supplies.attribute("top") = "31";
  3148. line20.attribute("y1") = "47";
  3149. line20.attribute("y2") = "47";
  3150. btn_resizeT2.attribute("top") = "29";
  3151. btn_resizeB2.attribute("top") = "29";
  3152. grd_drug.attribute("visibility") = "hidden";
  3153. caption17.attribute("top") = "575";
  3154. line1.attribute("y1") = "591";
  3155. line1.attribute("y2") = "591";
  3156. btn_resizeT3.attribute("top") = "573";
  3157. btn_resizeB3.attribute("top") = "573";
  3158. break;
  3159. case "B3" :
  3160. btn_resizeT1.attribute("visibility") = "hidden";
  3161. btn_resizeT2.attribute("visibility") = "hidden";
  3162. btn_resizeT3.attribute("visibility") = "visible";
  3163. btn_resizeB1.attribute("visibility") = "visible";
  3164. btn_resizeB2.attribute("visibility") = "visible";
  3165. btn_resizeB3.attribute("visibility") = "hidden";
  3166. grd_diposit.attribute("visibility") = "hidden";
  3167. grd_supplies.attribute("visibility") = "hidden";
  3168. cpd_supplies.attribute("top") = "31";
  3169. line20.attribute("y1") = "47";
  3170. line20.attribute("y2") = "47";
  3171. btn_resizeT2.attribute("top") = "29";
  3172. btn_resizeB2.attribute("top") = "29";
  3173. grd_drug.attribute("visibility") = "visible";
  3174. grd_drug.attribute("top") = "76";
  3175. grd_drug.attribute("height") = "517";
  3176. caption17.attribute("top") = "55";
  3177. line1.attribute("y1") = "71";
  3178. line1.attribute("y2") = "71";
  3179. btn_resizeT3.attribute("top") = "53";
  3180. btn_resizeB3.attribute("top") = "53";
  3181. break;
  3182. case "B4" :
  3183. btn_resizeT4.attribute("visibility") = "visible";
  3184. btn_resizeT5.attribute("visibility") = "hidden";
  3185. btn_resizeB4.attribute("visibility") = "hidden";
  3186. btn_resizeB5.attribute("visibility") = "visible";
  3187. grd_instrument.attribute("visibility") = "visible";
  3188. grd_instrument.attribute("height") = "541";
  3189. grd_opsupply.attribute("visibility") = "hidden";
  3190. caption5.attribute("top") = "575";
  3191. line9.attribute("y1") = "591";
  3192. line9.attribute("y2") = "591";
  3193. btn_resizeT5.attribute("top") = "573";
  3194. btn_resizeB5.attribute("top") = "573";
  3195. break;
  3196. case "B5" :
  3197. btn_resizeT4.attribute("visibility") = "hidden";
  3198. btn_resizeT5.attribute("visibility") = "visible";
  3199. btn_resizeB4.attribute("visibility") = "visible";
  3200. btn_resizeB5.attribute("visibility") = "hidden";
  3201. grd_instrument.attribute("visibility") = "hidden";
  3202. grd_opsupply.attribute("visibility") = "visible";
  3203. grd_opsupply.attribute("top") = "52";
  3204. grd_opsupply.attribute("height") = "541";
  3205. caption5.attribute("top") = "31";
  3206. line9.attribute("y1") = "47";
  3207. line9.attribute("y2") = "47";
  3208. btn_resizeT5.attribute("top") = "29";
  3209. btn_resizeB5.attribute("top") = "29";
  3210. break;
  3211. case "Base" :
  3212. btn_resizeT1.attribute("visibility") = "hidden";
  3213. btn_resizeT2.attribute("visibility") = "hidden";
  3214. btn_resizeT3.attribute("visibility") = "hidden";
  3215. btn_resizeT4.attribute("visibility") = "hidden";
  3216. btn_resizeT5.attribute("visibility") = "hidden";
  3217. btn_resizeB1.attribute("visibility") = "visible";
  3218. btn_resizeB2.attribute("visibility") = "visible";
  3219. btn_resizeB3.attribute("visibility") = "visible";
  3220. btn_resizeB4.attribute("visibility") = "visible";
  3221. btn_resizeB5.attribute("visibility") = "visible";
  3222. break;
  3223. }
  3224. }
  3225. //--------------------------------------------------
  3226. // Cart 상세내역 출력
  3227. //--------------------------------------------------
  3228. function fPrntCartDetailCnts(){
  3229. fReSrchOpState(); // 처방및 진행 상태 재조회
  3230. var rtnflag, oprsrvno, oproomcd, ophistno, cartgubn, prntgoodstat, prntinstrstat, prntcststat;
  3231. var cnt = 0, cnt2 = 0; cnt3 = 0; cnt4 = 0;
  3232. var prntgood = "G"; //model.getValue("/root/init/querykey/prntgood");
  3233. var prntinstr = ""; //model.getValue("/root/init/querykey/prntinstr");
  3234. var prntcst = ""; //model.getValue("/root/init/querykey/prntcst");
  3235. var prntpad = "";
  3236. var sPatOPRSInfoPath = gPathNode[6];
  3237. var cartbaglist = "m▦rownum▦oprsrvno▦oproomcd▦cartgubn▦deliveflag▦prntgood▦prntinstr▦prntcst▦varcureflag▦goodcrflag▦callflag";
  3238. var sSaveFlag = false;
  3239. var sSaveData = "cartstat▦oprsrvno▦ophistno▦cartgubn▩";
  3240. var deptflagnm = "";
  3241. var sVarcureflag = "'1', '2', '3', '5', '7', '8', '9'";
  3242. var deptflag = vCartgubn;
  3243. var sPid = model.getValue(sPatOPRSInfoPath + "/pid");
  3244. var ccrtstat;
  3245. if(bbt_tSave.disabled == true){
  3246. messageBox("응급 CartBag 불출을 할 수 없습니다.", "C000");
  3247. return;
  3248. }
  3249. for(var i = 0 ; i < tPathCart.length ; i++){
  3250. cnt3 = eval(cnt3) + eval(getNodesetCount(gPathNode[8] + "/" + tPathCart[i]));
  3251. for(var k = 1 ; k <= getNodesetCount(gPathNode[8] + "/" + tPathCart[i]) ; k++){
  3252. if(model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/recflag") == "I" &&
  3253. model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/ordseq") == "" ){
  3254. cnt4++;
  3255. }
  3256. }
  3257. }
  3258. if(cnt4 > 0){
  3259. messageBox("신규 등록한 물품 정보가 존재합니다.\n\nCart List 저장후 응급 CartBag 불출 요청을 하십시요.", "I000");
  3260. return;
  3261. }
  3262. if(cnt3 < 1 ){
  3263. messageBox("응급 CartBag 불출할 물품 정보가 존재하지 않습니다.", "I000");
  3264. return;
  3265. }
  3266. if( prntgood == "" && prntinstr == "" && prntcst == "" ) {
  3267. messageBox("출력할 구분을 선택하세요.", "E000");
  3268. return;
  3269. }
  3270. if( deptflag == "O" ) {
  3271. deptflagnm = "수술 Cart 청구리스트 [응급]";
  3272. }else if( deptflag == "A" ) {
  3273. deptflagnm = "마취 Cart 청구리스트 [응급]";
  3274. }
  3275. if ( sPid == "" ){
  3276. messageBox("환자를 먼저","C002");
  3277. return;
  3278. }
  3279. cnt2 += 1;
  3280. //if( parseInt(model.getValue(sPatOPRSInfoPath+"["+i+"]/opstatcd")) > 39 ) {//수술부터는 출력안됨.
  3281. // messageBox("응급 CartBag 불출을 할 수 없습니다.","C000");
  3282. // return;
  3283. //}
  3284. if(sCartGubnCd == "O") {
  3285. ccrtstat = model.getValue(sPatOPRSInfoPath+"/ccrtstat");
  3286. } else if(sCartGubnCd == "A") {
  3287. ccrtstat = model.getValue(sPatOPRSInfoPath+"/anstccrtstat");
  3288. }
  3289. if( ( ccrtstat == "1" ) ||
  3290. ( ccrtstat == "2" ) ){ //임시, 저장 CART 불출
  3291. //Cart 불출
  3292. oprsrvno = model.getValue(sPatOPRSInfoPath + "/oprsrvno");
  3293. oproomcd = model.getValue(sPatOPRSInfoPath + "/oproomcd");
  3294. ophistno = model.getValue(sPatOPRSInfoPath + "/ophistno");
  3295. //cartgubn = model.getValue("/root/init/querykey/cartgubn");
  3296. cartgubn = sCartGubnCd;
  3297. sSaveData += "3" + "▦"
  3298. + oprsrvno + "▦"
  3299. + ophistno + "▦"
  3300. + cartgubn + "▩";
  3301. sSaveFlag = true;
  3302. if( prntgood == "G" ) {
  3303. prntgoodstat = "G3";
  3304. }else {
  3305. prntgoodstat = "G1";
  3306. }
  3307. if( prntinstr == "I" ) {
  3308. prntinstrstat = "I3";
  3309. }else {
  3310. prntinstrstat = "I1";
  3311. }
  3312. if( prntcst == "C" ) {
  3313. prntcststat = "C3";
  3314. }else {
  3315. prntcststat = "C1";
  3316. }
  3317. cnt += 1;
  3318. cartbaglist = cartbaglist + "▩" + "u" + "▦" + cnt + "▦" + oprsrvno + "▦" + oproomcd + "▦" + cartgubn
  3319. + "▦" + prntgoodstat + prntinstrstat + prntcststat + "▦" + prntgood + "▦" + prntinstr
  3320. + "▦" + prntcst + "▦" + sVarcureflag + "▦" + "S" + "▦" + "CCR" ;
  3321. }
  3322. prntMsg = messageBox("응급 CartBag 불출을", "Q004");
  3323. if(prntMsg != 6){
  3324. return;
  3325. }
  3326. //model.removenodeset(sPatOPRSInfoPath);
  3327. model.makeValue(sPatOPRSInfoPath+"/oproomcdnm" , model.getValue(sPatOPRSInfoPath+"/oproomnm"));
  3328. model.makeValue(sPatOPRSInfoPath+"/orddeptcdnm" , model.getValue(sPatOPRSInfoPath+"/depthngnm"));
  3329. model.makeValue(sPatOPRSInfoPath+"/opfromtmcdnm", model.getValue(sPatOPRSInfoPath+"/opfromtmcd"));
  3330. model.makeValue(sPatOPRSInfoPath+"/hngnm" , model.getValue(sPatOPRSInfoPath+"/patname"));
  3331. model.makeValue(sPatOPRSInfoPath+"/sexage" , model.getValue(sPatOPRSInfoPath+"/sa"));
  3332. model.makeValue(sPatOPRSInfoPath+"/cartgubn" , deptflag);
  3333. model.makeValue(sPatOPRSInfoPath+"/deptflagnm" , deptflagnm);
  3334. model.makeValue(sPatOPRSInfoPath+"/roomcd" , model.getValue(sPatOPRSInfoPath+"/roomcd"));
  3335. model.makeValue(sPatOPRSInfoPath+"/pid" , model.getValue(sPatOPRSInfoPath+"/pid"));
  3336. model.makeValue(sPatOPRSInfoPath+"/diagcdnm" , model.getValue(sPatOPRSInfoPath+"/diagcdnm"));
  3337. model.makeValue(sPatOPRSInfoPath+"/opcdnm" , model.getValue(sPatOPRSInfoPath+"/opcdnm"));
  3338. model.makeValue(sPatOPRSInfoPath+"/perfdridnm" , model.getValue(sPatOPRSInfoPath+"/perfdridnm"));
  3339. model.makeValue(sPatOPRSInfoPath+"/opcnfmdd" , model.getValue(sPatOPRSInfoPath+"/opcnfmdd"));
  3340. model.makeValue(sPatOPRSInfoPath+"/oprsrvno" , model.getValue(sPatOPRSInfoPath+"/oprsrvno"));
  3341. model.makeValue(sPatOPRSInfoPath+"/instcd" , model.getValue(sPatOPRSInfoPath+"/instcd"));
  3342. model.makeValue(sPatOPRSInfoPath+"/prntgood" , prntgood);
  3343. model.makeValue(sPatOPRSInfoPath+"/prntinstr" , prntinstr);
  3344. model.makeValue(sPatOPRSInfoPath+"/prntcst" , prntcst);
  3345. model.makeValue(sPatOPRSInfoPath+"/prntpad" , prntpad);
  3346. model.makeValue(sPatOPRSInfoPath+"/goodcrflag" , "S");
  3347. model.makeValue(sPatOPRSInfoPath+"/usernm" , getUserInfo("usernm"));
  3348. if( model.getValue(sPatOPRSInfoPath+"/ccrtstat") < "3" ) {//임시, 저장일 경우만 출력
  3349. if( prntgood == "G" ) {
  3350. // exeReportPreview("RPMNP03001", "XMLSTR", sPatOPRSInfoPath, "", "true", "", "", "", "", "true", "", "", "", "emr");
  3351. }
  3352. if( prntinstr == "I" ) {
  3353. //exeReportPreview("RPMNP03004", "XML", sPatOPRSInfoPath, "", "true", "", "", "", "", "true", "", "", "", "emr");
  3354. }
  3355. if( prntcst == "C" ) {
  3356. //exeReportPreview("RPMNP03005", "XML", sPatOPRSInfoPath, "", "true", "", "", "", "", "true", "", "", "", "emr");
  3357. }
  3358. }
  3359. if( cnt2 < 1 ) {
  3360. messageBox("환자를 먼저","C002");
  3361. return;
  3362. }
  3363. if( cnt > 0 ) { //카트 불출(공급)
  3364. model.removenodeset("/root/send");
  3365. model.makeValue("/root/send/cartsend", cartbaglist);
  3366. submit("TXMNP03401", false);
  3367. }
  3368. fQueryData();
  3369. //group5.visible = false;
  3370. //fOpDataQuery();
  3371. }
  3372. function fCSRErDelive(){
  3373. var cnt3 = 0 ;
  3374. var cnt4 = 0 ;
  3375. var sErDeliveInfo = "";
  3376. for(var i = 0 ; i < tPathCart.length ; i++){
  3377. cnt3 = eval(cnt3) + eval(getNodesetCount(gPathNode[8] + "/" + tPathCart[i]));
  3378. for(var k = 1 ; k <= getNodesetCount(gPathNode[8] + "/" + tPathCart[i]) ; k++){
  3379. if(model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/recflag") == "I" &&
  3380. model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/ordseq") == "" ){
  3381. cnt4++;
  3382. }
  3383. if((i == 2 || i == 3) && model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/deliveyn") == "N" && model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/goodcrflag") == "E" ){
  3384. sErDeliveInfo += model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/oprsrvno") + "▦"
  3385. + model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/goodcd") + "▦"
  3386. + model.getValue(gPathNode[8] + "/" + tPathCart[i]+"["+k+"]/ordseq") + "▦"
  3387. + sCartGubnCd + "▩"
  3388. }
  3389. }
  3390. }
  3391. if(cnt4 > 0){
  3392. messageBox("신규 등록한 물품 정보가 존재합니다.\n\저장후 응급 CartBag 불출 요청을 하십시요.", "I000");
  3393. return;
  3394. }
  3395. if(cnt3 < 1 ){
  3396. messageBox("응급 CartBag 불출할 물품 정보가 존재하지 않습니다.", "I000");
  3397. return;
  3398. }
  3399. var sErDeliveHeader = "oprsrvno▦goodcd▦ordseq▦cartgubn▩";
  3400. if(messageBox("응급 불출을", "Q004") == "6"){
  3401. model.removenodeset("/root/send");
  3402. model.makeValue("/root/send/erdelivelist", sErDeliveHeader + sErDeliveInfo);
  3403. submit("TXMNP01808", false);
  3404. fQueryData();
  3405. }
  3406. }
  3407. //KNUH, 삭제 취소, 마우스 우측메뉴를 통한 한건 단위 처리 (2011.01.31 JJE)
  3408. function fCnclDeleteRow(pNodeIdx, pSrow){
  3409. //pNodeIdx (4:물품, 0:drug)
  3410. //pSrow (선택한 row)
  3411. //fGoodClick(4, grd_diposit);
  3412. var sCcrtStat = model.getValue("/root/init/WorkData/cond/cartstat");
  3413. if(sCcrtStat >= 5 ){ //5(확정) or 9(반납)
  3414. messageBox("처방 상태가 " + cmb_cartstat.lable + " 입니다.\n삭제 취소할 수","I004");
  3415. return;
  3416. }
  3417. model.removeNode("/root/send/savedeldata");
  3418. var pathNode = "";
  3419. if(pNodeIdx == "0") pathNode = "/root/main/CartOrdData/ListSupplies";
  3420. else pathNode = "/root/main/CartOrdData/ListDiposit";
  3421. var pid = model.getValue("/root/main/MmohoprsLists/mmohoprslist/pid");
  3422. if( model.getValue(pathNode+"["+pSrow+"]/deleteyn") == "D" ){
  3423. if( messageBox("삭제 처리를","Q007") == 6 ){
  3424. model.setValue(pathNode+"["+pSrow+"]/deleteyn", "");
  3425. model.setValue(pathNode+"["+pSrow+"]/delcheck", "");
  3426. model.setValue(pathNode+"["+pSrow+"]/pid", pid);
  3427. model.setValue(pathNode+"["+pSrow+"]/saveqty", "0");
  3428. var WkOutQty = model.getValue(pathNode+"["+pSrow+"]/outqty");
  3429. var WkGoodQty = model.getValue(pathNode+"["+pSrow+"]/goodqty");
  3430. var WkAddQty = "";
  3431. WkNewAddQty = parseFloat(WkOutQty) - parseFloat(WkGoodQty) ; // 변경후증감수량
  3432. model.setValue(pathNode+"["+pSrow+"]/addreductqty", WkNewAddQty);
  3433. model.makeNode("/root/send/savedeldata/savedata");
  3434. model.copyNode("/root/send/savedeldata/savedata", pathNode + "["+pSrow+"]");
  3435. //return;
  3436. if( submit("TXMNP01810", false) ){
  3437. fQueryData(); // 조회
  3438. }
  3439. model.removeNode("/root/send/savedeldata");
  3440. }
  3441. }else{
  3442. messageBox("삭제 처방이 아닙니다.","");
  3443. return;
  3444. }
  3445. }
  3446. //KNUH, 삭제 취소, 임시저장 버튼을 통한 여러건 처리 (2011.01.31 JJE)
  3447. function fCnclDeleteRows(){
  3448. //pNodeIdx (4:물품, 0:drug)
  3449. //pSrow (선택한 row)
  3450. var sCcrtStat = model.getValue("/root/init/WorkData/cond/cartstat");
  3451. if(sCcrtStat >= 5 ){ //5(확정) or 9(반납)
  3452. //messageBox("처방 상태가 " + cmb_cartstat.lable + " 입니다.\n삭제 취소할 수","I004");
  3453. return;
  3454. }
  3455. model.removeNode("/root/send/savedeldata");
  3456. model.makeNode("/root/send/savedeldata");
  3457. var pid = model.getValue("/root/main/MmohoprsLists/mmohoprslist/pid");
  3458. var sPrcpDataPat = "/root/main/patinfocond/patinfo";
  3459. var wCartPath = "";
  3460. var sRowCnt = 0;
  3461. var iRow = 0;
  3462. for( Idx = 0; Idx < 5; Idx++ ) {
  3463. wCartPath = gPathNode[8]+"/"+tPathCart[Idx]; // gPathNode[8] : "root/main/CartOrdData"
  3464. sRowCnt = eval("grd_"+tNameCart[Idx]).rows - eval("grd_"+tNameCart[Idx]).fixedrows;
  3465. for (var pSrow=1; pSrow<=sRowCnt; pSrow++) {
  3466. var tempDeleteyn = model.getValue(wCartPath + "["+pSrow+"]/deleteyn");
  3467. var delTempPid = model.getValue(wCartPath + "["+pSrow+"]/pid" ); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
  3468. var delTempSaveqty = model.getValue(wCartPath + "["+pSrow+"]/saveqty" ); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
  3469. var delTempOutqty = model.getValue(wCartPath + "["+pSrow+"]/outqty" ); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
  3470. if(delTempPid == "DELETE" && tempDeleteyn == "D" && delTempSaveqty == 0 && delTempOutqty > 0){
  3471. model.setValue(wCartPath+"["+pSrow+"]/deleteyn", "");
  3472. model.setValue(wCartPath+"["+pSrow+"]/delcheck", "");
  3473. model.setValue(wCartPath+"["+pSrow+"]/pid", pid);
  3474. model.setValue(wCartPath+"["+pSrow+"]/saveqty", "0");
  3475. var WkOutQty = model.getValue(wCartPath+"["+pSrow+"]/outqty");
  3476. var WkGoodQty = model.getValue(wCartPath+"["+pSrow+"]/goodqty");
  3477. var WkAddQty = "";
  3478. WkNewAddQty = parseFloat(WkGoodQty) - parseFloat(WkOutQty) ; // 변경후증감수량
  3479. model.setValue(wCartPath+"["+pSrow+"]/addreductqty", WkNewAddQty);
  3480. iRow++;
  3481. model.makeNode("/root/send/savedeldata/savedata["+iRow+"]");
  3482. model.copyNode("/root/send/savedeldata/savedata["+iRow+"]", wCartPath + "["+pSrow+"]");
  3483. }
  3484. } //end for pSrow
  3485. } //end for Idx
  3486. //return;
  3487. if( instance1.selectSingleNode("/root/send/savedeldata/savedata") != null ){
  3488. if( !submit("TXMNP01810", false) ){
  3489. messageBox("삭제 취소 처리를 실패했습니다.\n다시 저장해주시기바랍니다.","");
  3490. return;
  3491. }
  3492. }
  3493. //model.removeNode("/root/send/savedeldata");
  3494. }
  3495. /* ------------------------------------------------- */
  3496. /* desc : 사용자이름 불러오기 */
  3497. /* param : pNodeID - UserId Node */
  3498. /* pNodeNM - UserNm Node */
  3499. /* return : */
  3500. /* -------------------------------------------------- */
  3501. //function fUserEnter(pPath, pNodeID,pNodeNM, pNodeDept, pNodeDeptNM, pDOC) {
  3502. //
  3503. // var pParam = fUseridPopupData("TRMNP00304","SMMNP00301", pDOC.currentText);
  3504. //
  3505. // fUserDataSet(pParam, pPath+pNodeID,pPath+pNodeNM, pPath+pNodeDept, pPath+pNodeDeptNM, pDOC);
  3506. // grp_input.refresh();
  3507. //}
  3508. //
  3509. //
  3510. //function fUseridPopup(pPath, pNodeID, pNodeNM, pNodeDept, pNodeDeptNM, pDOC) {
  3511. //
  3512. // var pParam = fShowModal("SMMNP00301");
  3513. //
  3514. // fUserDataSet(pParam, pPath+pNodeID,pPath+pNodeNM, pPath+pNodeDept, pPath+pNodeDeptNM, pDOC);
  3515. // grp_input.refresh();
  3516. //
  3517. // }
  3518. //
  3519. //[설 명]
  3520. // nodeName : 현재 노드의 노드 명을 얻거나 변경한다.
  3521. // nodeType : 현재 노드의 노드 타입을 얻거나 변경한다.
  3522. // nodeTypedValue : 저장은 없음 -> text 를 이용해야한다.
  3523. // nodeValue : 현재 노드의 노드 값을 얻거나 변경한다.
  3524. // text : 현재 노드와 그 자식 노드에서 텍스트 노드의 컨텐츠를 얻거나 변경한다.
  3525. //
  3526. //[구현]
  3527. // var ins = document.models( 0 ).instances( 0 );
  3528. // var node = ins.selectSingleNode( "/root/example" );
  3529. // input1.text= node.nodeName ;
  3530. // input2.text= node.nodeType;
  3531. // input3.text= node.nodeValue;
  3532. // input4.text= node.nodeTypedValue;
  3533. // input5.text= node.text ;
  3534. /* ------------------------------------------------- */
  3535. /* ------End Of List ------------------------------- */
  3536. /* -------------------------------------------------- */