SMLBT80600_혈액준비관리상세(간소화).xrw 123 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLBT80200_혈액준비관리상세.xrw
  4. * 설 명 : 혈액준비관리상세
  5. * 설 계 자 : (주)에이씨케이 -
  6. * 작 성 자 : (주)에이씨케이 - 박정은
  7. * 작 성 일 : 2009.04.11
  8. * 수정이력 : 2009.07.29 장현식 선생님 요청 (변경요청번호 1951)
  9. - 보관검체가 없는경우(보관검체등록안된것) 메시지 출력
  10. * 기 타 : 111
  11. -->
  12. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  13. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  14. <xhtml:head>
  15. <xhtml:title>혈액준비관리상세</xhtml:title>
  16. <model id="model1">
  17. <instance id="instance1">
  18. <root xmlns="">
  19. <main>
  20. <getblodprcplist>
  21. <pid/>
  22. <patnm/>
  23. <tclsscrnnm/>
  24. <abo/>
  25. <iryn/>
  26. <no/>
  27. <erprcpflag/>
  28. <prcphopedd/>
  29. <tnsreqacptdt/>
  30. <h/>
  31. <blodcomcd/>
  32. <tnsreqacptno/>
  33. <blodbarcd/>
  34. <prcperflag/>
  35. <prcpgenrflag/>
  36. <keep/>
  37. <prcpdd/>
  38. <abrnblodyn/>
  39. <kabo/>
  40. <keepspcno/>
  41. <orddeptnm/>
  42. <dnorcnt/>
  43. <wbcnt/>
  44. <cstat/>
  45. <mstat/>
  46. <keepspcbcno/>
  47. </getblodprcplist>
  48. <getbloodinfo>
  49. <getblooddetllist>
  50. <prcphopedd/>
  51. <blodcomnm/>
  52. <aborh/>
  53. <iryn/>
  54. <reqqty/>
  55. <cno/>
  56. <dno/>
  57. <tclsnmabbr/>
  58. <blodcomcd/>
  59. <tnsreqacptno/>
  60. <blodbarcd/>
  61. </getblooddetllist>
  62. <getpatinfo>
  63. <pid/>
  64. <patnm/>
  65. <sexage/>
  66. <rstno/>
  67. <prcpgenrflag/>
  68. <orddeptnm/>
  69. <wardroom/>
  70. <aborh/>
  71. <orddrnm/>
  72. <reqqnt/>
  73. <blodcomcd/>
  74. <f1/>
  75. <f2/>
  76. <f3/>
  77. <abrnblodyn/>
  78. <tnssideeffect/>
  79. </getpatinfo>
  80. <getpatcmt>
  81. <rgstdt/>
  82. <patcmt/>
  83. </getpatcmt>
  84. <getbloodinfo>
  85. <ast/>
  86. <id>ANTI - I</id>
  87. <coomsd>NEGATIVE</coomsd>
  88. <coomsid>POSITIVE (+)</coomsid>
  89. </getbloodinfo>
  90. <getbloodinfo>
  91. <ast>2007-07-10</ast>
  92. <id>2007-07-10</id>
  93. <coomsd>2007-07-10</coomsd>
  94. <coomsid>2007-07-10</coomsid>
  95. </getbloodinfo>
  96. <blodrslthistory>
  97. <rsltdd>20070505</rsltdd>
  98. <rsltval>A+</rsltval>
  99. </blodrslthistory>
  100. <getcomment/>
  101. <getbloodcom>
  102. <blodcomnm/>
  103. <fromno/>
  104. <tono/>
  105. <pcnt/>
  106. <blodcomcd/>
  107. </getbloodcom>
  108. <getblodinfolist>
  109. <dt/>
  110. <rslt/>
  111. <tclsnm/>
  112. <testcd/>
  113. <unit/>
  114. </getblodinfolist>
  115. <getblodinforslt>
  116. <row>
  117. <a1/>
  118. </row>
  119. <row>
  120. <a1/>
  121. </row>
  122. <hearder/>
  123. </getblodinforslt>
  124. <blodrslthistory>
  125. <rsltdt/>
  126. <rslt/>
  127. </blodrslthistory>
  128. <getASTRsltYN>
  129. <astrsltyn/>
  130. </getASTRsltYN>
  131. </getbloodinfo>
  132. <gettestpsnnm>
  133. <testpsnnm/>
  134. </gettestpsnnm>
  135. <temp>
  136. <getprepbloodlisth>
  137. <chk/>
  138. <pno/>
  139. <blodno/>
  140. <blodbarcd/>
  141. <blodcomcd/>
  142. <blodcomnm/>
  143. <abo/>
  144. <iryn/>
  145. <blodstat/>
  146. <validt/>
  147. <blodcmt/>
  148. <execprcpuniqno/>
  149. <tnsrpid/>
  150. <donflag/>
  151. </getprepbloodlisth>
  152. <getapntselfinfo>
  153. <blodno/>
  154. <blodbarcd/>
  155. <blodstat/>
  156. <blodkind/>
  157. <btype/>
  158. <blodcomcd/>
  159. <blodcomnm/>
  160. <tnsrpid/>
  161. <dnornm/>
  162. <dnorpid/>
  163. <execprcpuniqno/>
  164. <donflag/>
  165. </getapntselfinfo>
  166. </temp>
  167. <temp2>
  168. <getprepbloodlist>
  169. <chk/>
  170. <pno/>
  171. <blodno/>
  172. <blodbarcd/>
  173. <blodcomcd/>
  174. <blodcomnm/>
  175. <abo/>
  176. <iryn/>
  177. <prepdt/>
  178. <blodstat/>
  179. <blodcmt/>
  180. <tnsreqacptno/>
  181. </getprepbloodlist>
  182. </temp2>
  183. <barcdprntsetup>
  184. <prntsetupinfo>
  185. <setupinfo/>
  186. </prntsetupinfo>
  187. </barcdprntsetup>
  188. <temp3>
  189. <rsltlist/>
  190. </temp3>
  191. <temp4>
  192. <getprepbloodlist>
  193. <chk/>
  194. <pno/>
  195. <blodno/>
  196. <blodcomnm/>
  197. <abo/>
  198. <rh/>
  199. <iryn/>
  200. <blodcomcd/>
  201. <blodbarcd/>
  202. <blodstat/>
  203. <blodcmt/>
  204. <tnsreqacptno/>
  205. <prepdt/>
  206. <testdt/>
  207. <delivedt/>
  208. <cmrslt/>
  209. <rsltlist/>
  210. <testid/>
  211. <rslt/>
  212. <blodcomstat/>
  213. <tnsreqseq/>
  214. <pid/>
  215. <prcpblodbarcd/>
  216. <prcpblodcomcd/>
  217. </getprepbloodlist>
  218. </temp4>
  219. <getKeepnoBlodcnt>
  220. <bno/>
  221. <keepno/>
  222. </getKeepnoBlodcnt>
  223. <comment>
  224. <pid/>
  225. <regdd/>
  226. <cmt/>
  227. </comment>
  228. <KeepBcnoPrint/>
  229. <getUsernm>
  230. <usernm/>
  231. </getUsernm>
  232. </main>
  233. <send>
  234. <fromdd/>
  235. <todd/>
  236. <fromtm/>
  237. <totm/>
  238. <testpsnid/>
  239. <pid/>
  240. <blodno/>
  241. <tnsreqacptno/>
  242. <spclyn/>
  243. <send/>
  244. <blodcomcd/>
  245. <gbn/>
  246. <prcpblodbarcd/>
  247. <blodcd/>
  248. <barcdflag/>
  249. <tclscd/>
  250. <erflag/>
  251. <prcpdd/>
  252. <iogbn/>
  253. <aborh/>
  254. <blodnolist/>
  255. <cancelflag/>
  256. <blodbarcd/>
  257. <abrnblodyn/>
  258. <dispflag/>
  259. <cmt/>
  260. <blodcmt/>
  261. <codeflag/>
  262. <clickflag/>
  263. <prcphopedd/>
  264. <acptnolist/>
  265. <prepblod/>
  266. <apntselyn/>
  267. <iryn/>
  268. <preplog/>
  269. <tnsrsrv>
  270. <pid/>
  271. <tnsreqacptno/>
  272. <blodcomcd/>
  273. <rsrvdd/>
  274. <rsrvtm/>
  275. </tnsrsrv>
  276. <prcpgenrflag/>
  277. </send>
  278. <init>
  279. <prcpinfo>
  280. <execprcpuniqno/>
  281. <prcpdd/>
  282. <instcd/>
  283. </prcpinfo>
  284. </init>
  285. <hidden>
  286. <ref>
  287. <reffromdd/>
  288. <reffromtm/>
  289. <reftodd/>
  290. <reftotm/>
  291. <testpsnid/>
  292. <testpsnnm/>
  293. <pid/>
  294. <bloodno/>
  295. <spclblood/>
  296. <cmend/>
  297. </ref>
  298. <prepimport/>
  299. <temp>
  300. <rsltlist/>
  301. </temp>
  302. <barcd/>
  303. <todd/>
  304. <totm/>
  305. <cancel>
  306. <cancelgbn/>
  307. <prepLog/>
  308. </cancel>
  309. <barcode>
  310. <barcodeinfo/>
  311. </barcode>
  312. <eventtarget/>
  313. <popupmenu>
  314. <grid>
  315. <item/>
  316. </grid>
  317. </popupmenu>
  318. <rsrvinfo>
  319. <rsrvdd/>
  320. <rsrvtm/>
  321. </rsrvinfo>
  322. <cmrslt/>
  323. <rslt/>
  324. </hidden>
  325. </root>
  326. </instance>
  327. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  328. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  329. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  330. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  331. <script type="javascript" src="../../../lis/commonweb/js/LLZ001.js"/>
  332. <script type="javascript" src="../../../lis/commonweb/js/LZZ001.js"/>
  333. <script type="javascript" src="../../../lis/commonweb/js/LPZ001.js"/>
  334. <script type="javascript" ev:event="xforms-ready">
  335. <![CDATA[
  336. model.setValue("/root/send/codeflag", "0122|1201|"); // 0122 수혈 반납/폐기 사유
  337. submit("TRLZZ00101");
  338. model.setValue("/root/hidden/todd", getCurrentDate());
  339. model.setValue("/root/hidden/totm", getCurrentTime());
  340. delPatientInfos(); //환자정보 전체 삭제
  341. lzzfMakeBrcdPrntObjHanDo("CommAX");
  342. // 그리드 전체 선택 기능
  343. grd_prepblood.fixedcellcheckbox(0,1)=true;
  344. ]]>
  345. </script>
  346. <submission id="TRLLC90101" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/barcdprntsetup"/>
  347. <submission id="TRLZZ00101" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/LB0122"/>
  348. <submission id="TRLZZ00107" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/init/prcpinfo"/>
  349. <submission id="TXLLB00101" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  350. <submission id="TRLBT10608" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/gettestpsnnm"/>
  351. <submission id="TRLBT10406" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/hidden/barcd"/>
  352. <submission id="TRLBT10601" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/getblodprcplist"/>
  353. <submission id="TRLBT10602" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/getbloodinfo"/>
  354. <submission id="TRLBT10603" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/getbloodinfo/blodrslthistory"/>
  355. <submission id="TRLBT10604" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/temp2"/>
  356. <submission id="TRLBT10605" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/temp3/rsltlist"/>
  357. <submission id="TRLBT10606" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/temp/getapntselfinfo"/>
  358. <submission id="TRLBT10607" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/temp/getprepbloodlisth"/>
  359. <submission id="TXLBT10601" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  360. <submission id="TXLBT10602" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  361. <submission id="TXLBT10603" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  362. <submission id="TXLBT10604" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  363. <submission id="TXLBT10605" ref="/root/send/tnsrsrv" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  364. <submission id="TXLBT10606" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  365. <submission id="TXLBT10607" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance"/>
  366. <submission id="TRLBT10906" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/KeepBcnoPrint"/>
  367. <submission id="TRLZZ00104" ref="/root/send" method="post" mediatype="application/x-www-form-urlencoded" replace="instance" resultref="/root/main/getUsernm"/>
  368. </model>
  369. <script type="javascript">
  370. <![CDATA[
  371. // 프린터 설정 초기정보 조회
  372. function fPrinterRef(){
  373. model.makeValue("/root/send/scrnid", getScreenID());
  374. submit("TRLLC90101");
  375. }
  376. // 준비관리 화면 구분
  377. function fSetPrepImport(ref){
  378. if(ref == "SAME"){
  379. model.setValue("/root/hidden/prepimport", "SAME");
  380. }else if(ref == "DIFF"){
  381. model.setValue("/root/hidden/prepimport", "DIFF");
  382. }
  383. }
  384. // 초기화 버튼
  385. function fSetClear(){
  386. model.reset();
  387. }
  388. // 조회 버튼 클릭시
  389. function fGetBloodPrcpList(ref){
  390. //준비중인 혈액이 있는지 체크
  391. var prepTF = fPrepBlodYN(ref);
  392. if(prepTF){
  393. return;
  394. }else if(!prepTF){
  395. model.setValue("/root/send/fromdd", model.getValue("/root/hidden2/ref/reffromdd"));
  396. model.setValue("/root/send/todd", model.getValue("/root/hidden2/ref/reftodd"));
  397. model.setValue("/root/send/fromtm", model.getValue("/root/hidden2/ref/reffromtm"));
  398. model.setValue("/root/send/totm", model.getValue("/root/hidden2/ref/reftotm"));
  399. model.setValue("/root/send/testpsnid", model.getValue("/root/hidden2/ref/testpsnid"));
  400. model.setValue("/root/send/pid", model.getValue("/root/hidden2/ref/pid"));
  401. model.setValue("/root/send/spclyn", model.getValue("/root/hidden2/ref/spclblood"));
  402. model.setValue("/root/send/gbn", ref);
  403. //if(submit("TRLBT10201")==true){ // 지우지마세요
  404. if(submit("TRLBT10601")==true){
  405. //조회한뒤 혈액성분,수혈내역 초기화가 안되어서..초기화..
  406. if(getNodesetCount("/root/main/getblodprcplist") == 0){
  407. model.removeNodeset("/root/main/getbloodinfo/getbloodcom");
  408. model.removeNodeset("/root/main/getbloodinfo/getblooddetllist");
  409. grd_com.refresh();
  410. grd_detllist.refresh();
  411. }
  412. grd_prcplist.rebuildStyle();
  413. // er 처방에서 erprcpflag '1' 로 왔을때 readonly
  414. for(i=1; i<grd_prcplist.rows; i++){
  415. var pcnt = model.getValue("/root/main/getblodprcplist["+i+"]/no");
  416. var reqcnt = model.getValue("/root/main/getblodprcplist["+i+"]/h");
  417. if(model.getValue("/root/main/getblodprcplist["+i+"]/prcperflag")=="1"){
  418. grd_prcplist.isReadOnly(i, 7) = true;
  419. }else{
  420. grd_prcplist.isReadOnly(i, 7) = false;
  421. }
  422. // 접수, 준비, 완료 섞여있을때 // 일부준비 녹색
  423. if(model.getValue("/root/main/getblodprcplist["+i+"]/cstat") != model.getValue("/root/main/getblodprcplist["+i+"]/mstat")){
  424. grd_prcplist.cellstyle("color", i,1, i, 11) = "#03830c";
  425. }
  426. //이형 type 빨간색으로 표시되게
  427. if(model.getValue("/root/main/getblodprcplist["+i+"]/abrnblodyn")=="Y"){
  428. grd_prcplist.cellStyle("color", i, 4, i, 4) = "#EE0000";
  429. }
  430. if(model.getValue("/root/main/getblodprcplist["+i+"]/iryn")=="Y"){
  431. grd_prcplist.cellStyle("color", i, 5, i, 5) = "#EE0000";
  432. }
  433. if(model.getValue("/root/main/getblodprcplist["+i+"]/cstat") != "1"){
  434. grd_prcplist.cellStyle("color", i, 1, i, 11) = "#0000EE";
  435. }
  436. if(model.getValue("/root/main/getblodprcplist["+i+"]/dnorcnt") > 0){
  437. grd_prcplist.cellstyle("background-color",i,1,i,11) = "#99cf16";
  438. }
  439. }
  440. if(grd_prcplist.rows >1){
  441. var pid = "";
  442. if(ref == "bcd" || ref == "cancel"){
  443. grd_prcplist.row = 1;
  444. // 혈액정보조회
  445. if(ref == "bcd"){
  446. pid = model.getValue("/root/hidden2/ref/pid");
  447. fGetBloodInfo(pid , "bcd");
  448. }else{
  449. pid = model.getValue("/root/main/getblodprcplist[1]/pid");
  450. fGetBloodInfo(pid , "Auto");
  451. }
  452. }
  453. //----------------------------------------------------------
  454. //처방목록이 없으면 기존 수혈내역 바로 조회
  455. }else{
  456. if(ref == "bcd"|| ref == "cancel"){
  457. var pid = model.getValue("/root/hidden2/ref/pid");
  458. // 혈액정보조회
  459. if(ref == "bcd"){
  460. fGetBloodInfo(pid , "bcd");
  461. }else{
  462. fGetBloodInfo(pid , "Auto");
  463. }
  464. }
  465. }
  466. }
  467. //조회 된 후에 현재시간으로 셋팅.
  468. fSettingDate();
  469. if(ref == "btn"){
  470. model.setFocus("ipt_testpsn");
  471. //탑정보 초기화.
  472. delPatientInfos();
  473. }else if(ref == "bcd"){
  474. model.setFocus("ipt_bloodno");
  475. }
  476. }
  477. }
  478. //키이벤트 엔터키 입력시
  479. function fKeyEvent(){
  480. if(event.keyCode == "13"){
  481. // 검사자 바코드 리딩시
  482. if(event.target == "ipt_testpsn"){
  483. model.setvalue("/root/hidden2/ref/testpsnid", (ipt_testpsn.currentText).toUpperCase());
  484. fGetTestPsn();
  485. model.setFocus("ipt_pid");
  486. ipt_testpsn.selBegin = 0;
  487. ipt_testpsn.selEnd = ipt_testpsn.currentText.length;
  488. }
  489. // 등록번호 바코드 리딩시
  490. if(event.target == "ipt_pid"){
  491. model.setValue("/root/hidden2/ref/pid", ipt_pid.currentText);
  492. //자동접수- 혈액준비관리 화면만....이형준비관리는 자동접수 안함.
  493. if(getScreenID() == "SMLBT10200"){
  494. fAutoAcpt("N");
  495. }
  496. fGetBloodPrcpList("bcd");
  497. model.setFocus("ipt_bloodno");
  498. ipt_pid.selBegin = 0;
  499. ipt_pid.selEnd = ipt_pid.currentText.length;
  500. }
  501. // 혈액번호 바코드 리딩시
  502. if(event.target=="ipt_bloodno"){
  503. if(model.getValue("/root/hidden2/ref/pid") == ""){
  504. messageBox("등록번호를 " , "C001", ""); //등록번호를 입력하십시오
  505. model.setFocus("ipt_pid");
  506. return;
  507. }
  508. if(grd_prcplist.row < 1){
  509. messageBox("처방을 선택하세요. ", "I");
  510. return;
  511. }
  512. model.setValue("/root/hidden2/ref/bloodno", "");
  513. model.setValue("/root/hidden2/ref/bloodno", (ipt_bloodno.currentText).substr(0,10));
  514. fGetPrepBlodList();
  515. model.setValue("/root/hidden2/ref/bloodno", "");
  516. ipt_bloodno.refresh();
  517. //model.setFocus("ipt_bloodno");
  518. ipt_bloodno.selBegin = 0;
  519. ipt_bloodno.selEnd = ipt_bloodno.currentText.length;
  520. }
  521. }
  522. }
  523. //검사자 조회
  524. function fGetTestPsn(){
  525. //model.setValue("/root/send/testpsnid", model.getValue("/root/hidden2/ref/testpsnid"));
  526. //submit("TRLBT10204"); // 지우지마세요
  527. //submit("TRLBT10608");
  528. model.makeValue("/root/send/userid" , model.getValue("/root/hidden2/ref/testpsnid"));
  529. submit("TRLZZ00104");
  530. model.setValue("/root/hidden2/ref/tmptestpsnid", model.getValue("/root/hidden2/ref/testpsnid"));
  531. model.setValue("/root/hidden2/ref/testpsnnm", model.getValue("/root/main/getUsernm/usernm"));
  532. opt_testpsn.refresh();
  533. }
  534. // 준비완료 버튼
  535. function fSetReady(){
  536. if(model.getValue("/root/hidden2/ref/testpsnid")=="" || model.getValue("/root/hidden2/ref/testpsnnm") == ""){
  537. messageBox("접수자를 " , "C001", ""); //접수자를 입력하십시오
  538. model.setFocus("ipt_testpsn");
  539. return;
  540. }
  541. if(model.getValue("/root/hidden2/ref/testpsnid") != model.getValue("/root/hidden2/ref/tmptestpsnid")
  542. || model.getValue("/root/main/getUsernm/usernm") != model.getValue("/root/hidden2/ref/testpsnnm") ){
  543. messageBox("접수자를 확인해주세요.", "I");
  544. return;
  545. }
  546. //등록번호를 반드시 입력해야지만 입력완료 할 수 있게 수정 - 2007.10.20 장현식 선생님 요청
  547. if(model.getValue("/root/hidden2/ref/pid")==""){
  548. messageBox("등록번호를 " , "C001", ""); //등록번호를 입력하십시오
  549. model.setFocus("ipt_pid");
  550. return;
  551. }
  552. // 준비 혈액 내역 리스트 없을때
  553. if(grd_prepblood.rows < 2){
  554. messageBox("준비된 혈액이 " , "I004", ""); //준비된 혈액이 없습니다
  555. return;
  556. }
  557. var pBlodno = "";
  558. var pBlodcd = "";
  559. var pBlodcmt = "";
  560. //경북대 준비완료 버튼 클릭 시 cm 완료 까지 진행 하기 위한 변수 선언
  561. var tnsreqacptno_str = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno");
  562. // ffp,cryo 예약시간 두시간전 start
  563. var prcpcd = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodcomcd");
  564. var realtime = getCurrentDate() + getCurrentTime(); // 현재일시
  565. var hopedd = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcphopedd").substr(0,8); // <prcphopedd>20081002000000</prcphopedd>
  566. var hopetm = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcphopedd").substr(8,14); // 예약시간 안정하면 시간 000000으로 들어옴
  567. if(hopedd =="00000000"){
  568. hopedd = getCurrentDate(); // 예약일자 없으면 현재일자
  569. }
  570. if(hopetm == "000000"){
  571. hopetm = getCurrentTime(); // 예약시간 없으면 현재시간
  572. }
  573. var newhopeddtm = hopedd + hopetm;
  574. var hopem2tm = newhopeddtm.toDate("YYYYMMDDhhmmss").getAddDate(-2, "h"); // 2시간전 // Wed Oct 8 13:48:17 UTC+0900 2008
  575. var hopem2tm2 = hopem2tm.getDateFormat("YYYYMMDDhhmmss"); // 20081008134817
  576. // ★ 수정중입니다. 2008-10-08
  577. if( (prcpcd == "LBT20432") || (prcpcd == "LBT20440") || (prcpcd == "LBT20632") || (prcpcd == "LBT20640") ){ // FFP = LBT20432, LBT20440 cryo =LBT20632, LBT20640
  578. if(hopem2tm2 > realtime){
  579. var rtn = messageBox("지금녹이면 안되는 처방입니다 시간을 확인하십시오", "Q003" );
  580. if(rtn == "7" ){
  581. return;
  582. }
  583. }
  584. }
  585. // ffp,cryo 예약시간 두시간전 end
  586. // 준비혈액 번호 가져가기
  587. for(i=1; i<grd_prepblood.rows; i++){
  588. // 준비번호 없을때
  589. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/pno") == ""){
  590. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/testpsnid", model.getValue("/root/hidden2/ref/testpsnid"));
  591. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcmt")==""){
  592. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcmt", " ");
  593. }
  594. }
  595. }
  596. //var grdprepblood = grd_prepblood.getUpdateData();
  597. model.makeValue("/root/send/prepblod", grd_prepblood.getUpdateData());
  598. //if(submit("TXLBT10201")==true){ // 지우지 마세요
  599. if(submit("TXLBT10602")==true){
  600. fExeBarcdPrnt("prep");
  601. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  602. grd_prepblood.rebuild();
  603. //model.setValue("/root/hidden2/ref/pid", ""); 경북대 준비완료하면 cm 완료 까지 진행
  604. fGetBloodPrcpList("btn");
  605. delPatientInfos();
  606. if(grd_prcplist.rows > 1){
  607. model.resetInstanceNode("/root/main/getbloodinfo");
  608. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  609. grd_prepblood.rebuild();
  610. }else{
  611. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  612. grd_prepblood.rebuild();
  613. }
  614. //model.reset();
  615. //준비완료 후 등록번호, 혈액번호 초기화 - 2007.10.20 장현식 선생님 요청
  616. model.setValue("/root/hidden2/ref/pid", "");
  617. model.setValue("/root/hidden2/ref/bloodno", "");
  618. model.removeNodeset("/root/main/getbloodinfo/getblooddetllist");
  619. grd_detllist.refresh();
  620. model.refresh();
  621. var prepimport = model.getValue("/root/hidden/prepimport");
  622. if(prepimport == "DIFF"){
  623. window.opener.javascript.fGetBloodPrcpList("btn");
  624. window.close();
  625. }
  626. for(var pRow = 1 ; pRow < grd_prcplist.rows ; pRow++){
  627. if(model.getValue("/root/main/getblodprcplist["+pRow+"]/tnsreqacptno") == tnsreqacptno_str){
  628. grd_prcplist.row = pRow;
  629. fGetPrcpList();
  630. for(qRow = 1 ; qRow < grd_prepblood.rows ; qRow++){
  631. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+qRow+"]/chk", "Y");
  632. grd_prepblood.rowStatus(qRow) = 2;
  633. }
  634. //fExeCMRslt();
  635. //return;
  636. }
  637. }
  638. fExeCMRslt();
  639. }
  640. }
  641. //바코드출력fKeyEvent
  642. function fExeBarcdPrnt(ref) {
  643. model.removeNodeset("/root/hidden/barcode");
  644. var blodno = "";
  645. var blodbarcd = "";
  646. if(ref=="prep"){
  647. for(i=1; i<grd_prepblood.rows; i++){
  648. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+ i +"]/pno") == ""){
  649. blodno += model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+ i +"]/blodno");
  650. blodbarcd += model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+ i +"]/blodbarcd");
  651. if(i< (grd_prepblood.rows-1)){
  652. blodno = blodno + "','";
  653. blodbarcd = blodbarcd + "','";
  654. }
  655. }
  656. }
  657. }else if (ref=="reprnt"){
  658. blodno = model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/blodno");
  659. blodbarcd = model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/blodbarcd");
  660. }
  661. model.setValue("/root/send/pid", model.getValue("/root/hidden2/ref/pid"));
  662. model.setValue("/root/send/blodno", "'" + blodno + "'");
  663. model.setValue("/root/send/blodbarcd", "'" + blodbarcd + "'");
  664. model.setValue("/root/send/barcdflag", "1");
  665. submit("TRLBT10406"); // 바코드출력 liscommonweb에 있음
  666. var vInstance = document.models(0).instances(0);
  667. var cntHR = vInstance.selectNodes("/root/hidden/barcode/barcodeinfo").length;
  668. for(i= 1; i <= cntHR; i++) {
  669. model.makeNode("/root/hidden/barcode/barcodeinfo["+ i +"]/prtdd");
  670. model.makeNode("/root/hidden/barcode/barcodeinfo["+ i +"]/prttm");
  671. if(ref=="prep"){
  672. model.setValue("/root/hidden/barcode/barcodeinfo["+ i +"]/prtdd", model.getValue("/root/hidden/barcode/barcodeinfo["+ i +"]/rprtdd")); // lislib쿼리고치고 수정해야함
  673. model.setValue("/root/hidden/barcode/barcodeinfo["+ i +"]/prttm", model.getValue("/root/hidden/barcode/barcodeinfo["+ i +"]/rprttm")); // lislib쿼리고치고 수정해야함
  674. }else if(ref=="reprnt"){
  675. model.setValue("/root/hidden/barcode/barcodeinfo["+ i +"]/prtdd", model.getValue("/root/hidden/barcode/barcodeinfo["+ i +"]/rprtdd")); // lislib쿼리고치고 수정해야함
  676. model.setValue("/root/hidden/barcode/barcodeinfo["+ i +"]/prttm", model.getValue("/root/hidden/barcode/barcodeinfo["+ i +"]/rprttm")); // lislib쿼리고치고 수정해야함
  677. }
  678. }
  679. var prtkind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind");
  680. copyNodeType("/root/hidden/barcode/barcodeinfo", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo", "after");
  681. if( prtkind == "2" || prtkind == "6" || prtkind == "7"){
  682. //fLisTnsrBarcodePrint2("/root/hidden/barcode/barcodeinfo"); // 뻗어요
  683. var prntinstcd = getUserInfo("dutplceinstcd");
  684. if(prntinstcd == "017"){ // 임시로 병원코드 하드코딩
  685. fLisTnsrBarcodePrint3("/root/hidden/barcode/barcodeinfo"); // 뻗어요
  686. }else{
  687. fLisTnsrBarcodePrint2("/root/hidden/barcode/barcodeinfo"); // 뻗어요
  688. }
  689. }else{
  690. fLisTnsrBarcodePrint("/root/hidden/barcode/barcodeinfo"); // 뻗어요
  691. }
  692. }
  693. //준비중인 혈액이 있는지 체크
  694. function fPrepBlodYN(Ref){
  695. var prepCnt = getNodesetCount("/root/main/getbloodinfo/blod/getprepbloodlist"); //준비혈액내역의 노드 갯수
  696. var redCnt = 0;
  697. var returnValue = "";
  698. var yesMsg = "";
  699. var noMsg = "";
  700. var prepPid = "";
  701. //-------------------------------------------------------------------
  702. //수혈내역 그리드 클릭, 등록번호 바코드 리딩, 조회 버튼 클릭시
  703. //-------------------------------------------------------------------
  704. if(Ref == "detllist" || Ref == "bcd" || Ref == "btn" ){
  705. redCnt = 0;
  706. //준비혈액내역 그리드에 준비완료 버튼 누르지 않은 혈액 존재 여부
  707. for(iNo = 1; iNo <= prepCnt; iNo++){
  708. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist[" +iNo+"]/pno") == ""){
  709. redCnt++;
  710. }
  711. }
  712. //준비혈액내역 그리드에 준비완료 버튼 누르지 않은 혈액이 있다면
  713. //메시지창 띄워서 확인
  714. if(redCnt > 0){
  715. //Q010=초기화 하시겠습니까? retrun yes=6, no=7
  716. returnValue = messageBox("준비중인 혈액이 있습니다. \n준비중인 혈액을","Q010");
  717. }
  718. //-------------------------------------------------------------------
  719. if(returnValue == "7"){ //취소하지 않는다면 혈액준비 계속 진행
  720. return true;
  721. }else if(returnValue == "6" || redCnt == 0){ //준비중인 혈액이 없거나, 취소할거면 그리드 초기화
  722. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  723. grd_prepblood.refresh();
  724. return false;
  725. }
  726. //-------------------------------------------------------------------
  727. //혈액은행 처방 목록 클릭시
  728. //-------------------------------------------------------------------
  729. }else if(Ref == "prcplist"){
  730. redCnt = 0;
  731. var pidTF = false;
  732. var prcpPid = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid");
  733. //초기화 하겠느냐는 메시지 띄울때 아니오 누르면 이전 선택했던 row로 돌아가기 위해.
  734. var tnsreqacptno = model.getValue("/root/main/blod/getprepbloodlist["+prepCnt+"]/tnsreqacptno");
  735. var rowNum = grd_prcplist.findRow(tnsreqacptno, 1, grd_prcplist.colRef("tnsreqacptno"), false, true);
  736. for(iNo = 1; iNo <= prepCnt; iNo++){
  737. prepPid = model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+iNo+"]/pid");
  738. //준비중인 혈액내역의 환자와 선택한 환자가 같은 환자인지 체크
  739. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist[" +iNo+"]/pno") == ""){
  740. if(prcpPid != prepPid){
  741. redCnt++;
  742. }else if(prcpPid == prepPid){
  743. pidTF = true;
  744. }
  745. }
  746. }//end for
  747. //같은환자가 아니라면
  748. if(redCnt > 0){
  749. //Q010=초기화 하시겠습니까? retrun yes=6, no=7
  750. returnValue = messageBox("준비중인 환자와 다른 환자입니다. \n준비중인 혈액을","Q010");
  751. }
  752. //-------------------------------------------------------------------
  753. //if(returnValue == "7" || prcpPid == prepPid){ //no 이거나 같은환자이면 혈액준비 계속 진행
  754. if(returnValue == "7" || pidTF){ //no 이거나 같은환자이면 혈액준비 계속 진행
  755. //초기화 하겠느냐는 메시지 띄울때 아니오 누르면 이전 선택했던 row로 돌아가기 위해.
  756. grd_prcplist.row = rowNum;
  757. return true;
  758. }else if(returnValue == "6" || redCnt == 0 ){ //yes 이거나 준비중인것이 없으면 초기화
  759. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  760. grd_prepblood.refresh();
  761. return false;
  762. }
  763. }//end if
  764. }
  765. // 혈액은행 처방 목록에서 선택시
  766. // 혈액 상세 내역 조회, 환자정보 조회
  767. function fGetBloodInfo(Ref, txt){
  768. if(Ref != ""){
  769. model.setValue("/root/send/send", txt);
  770. model.setValue("/root/send/pid", Ref);
  771. model.setValue("/root/send/fromdd", model.getValue("/root/hidden2/ref/reffromdd"));
  772. model.setValue("/root/send/todd", model.getValue("/root/hidden2/ref/reftodd"));
  773. model.setValue("/root/send/fromtm", model.getValue("/root/hidden2/ref/reffromtm"));
  774. model.setValue("/root/send/totm", model.getValue("/root/hidden2/ref/reftotm"));
  775. var iryn = "";
  776. // 처방리스트에서 선택시 성분제제코드 보내기
  777. if(txt == "Select"){
  778. model.setValue("/root/send/blodcomcd", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodcomcd"));
  779. model.setValue("/root/send/tnsreqacptno", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno")); //수혈접수번호
  780. model.setValue("/root/send/aborh", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/abo"));
  781. model.setValue("/root/send/blodbarcd", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodbarcd"));
  782. model.setValue("/root/send/abrnblodyn", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/abrnblodyn")); //이형혈액여부
  783. model.setValue("/root/hidden2/ref/pid", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid"));
  784. ipt_pid.refresh();
  785. model.makeValue("/root/send/prcphopedd", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcphopedd").substr(0,8));
  786. if(model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/iryn") =="Y"){
  787. iryn = "Y";
  788. }else{
  789. iryn = "N";
  790. }
  791. model.makeValue("/root/send/iryn", iryn);
  792. //조회버튼클릭시
  793. }else if(txt == "Auto"){
  794. model.setValue("/root/send/blodcomcd", model.getValue("/root/main/getblodprcplist[1]/blodcomcd"));
  795. model.setValue("/root/send/tnsreqacptno", model.getValue("/root/main/getblodprcplist[1]/tnsreqacptno")); //수혈접수번호
  796. model.setValue("/root/send/aborh", model.getValue("/root/main/getblodprcplist[1]/abo"));
  797. model.setValue("/root/send/blodbarcd", model.getValue("/root/main/getblodprcplist[1]/blodbarcd"));
  798. model.setValue("/root/send/abrnblodyn", model.getValue("/root/main/getblodprcplist[1]/abrnblodyn")); //이형혈액여부
  799. model.setValue("/root/hidden2/ref/pid", Ref);
  800. model.makeValue("/root/send/prcphopedd", model.getValue("/root/main/getblodprcplist[1]/prcphopedd").substr(0,8));
  801. if(model.getValue("/root/main/getblodprcplist[1]/iryn") =="Y"){
  802. iryn = "Y";
  803. }else{
  804. iryn = "N";
  805. }
  806. model.makeValue("/root/send/iryn", iryn);
  807. }else if(txt == "bcd"){
  808. model.setValue("/root/send/blodcomcd", model.getValue("/root/main/getblodprcplist[1]/blodcomcd"));
  809. model.setValue("/root/send/tnsreqacptno", model.getValue("/root/main/getblodprcplist[1]/tnsreqacptno")); //수혈접수번호
  810. model.setValue("/root/send/aborh", model.getValue("/root/main/getblodprcplist[1]/abo"));
  811. model.setValue("/root/send/blodbarcd", model.getValue("/root/main/getblodprcplist[1]/blodbarcd"));
  812. model.setValue("/root/send/abrnblodyn", model.getValue("/root/main/getblodprcplist[1]/abrnblodyn")); //이형혈액여부
  813. model.makeValue("/root/send/prcphopedd", model.getValue("/root/main/getblodprcplist[1]/prcphopedd").substr(0,8));
  814. if(model.getValue("/root/main/getblodprcplist[1]/iryn") =="Y"){
  815. iryn = "Y";
  816. }else{
  817. iryn = "N";
  818. }
  819. model.makeValue("/root/send/iryn", iryn);
  820. }
  821. }else{
  822. // 안써요
  823. model.setValue("/root/send/pid", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid")); // 등록번호
  824. model.setValue("/root/send/tnsreqacptno", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno")); //수혈접수번호
  825. }
  826. //--------------------------------------------------------------------
  827. // 처방리스트 있을시 탑정보 조회.
  828. if(grd_prcplist.rows >1){
  829. if(getPatientInfo("pid") != model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid")){
  830. fGetTopInfo();
  831. }
  832. }
  833. //--------------------------------------------------------------------
  834. // 혈액 상세내역, 환자정보, 혈액정보, 혈액성분 조회
  835. //submit("TRLBT10202"); // 지우지마세요
  836. model.setValue("/root/send/prcpgenrflag", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcpgenrflag"));
  837. submit("TRLBT10602");
  838. //===========================================================================
  839. //AST 1달 이내에 접수, 결과 내역이 없으면 메시지(입원은 입원 기간내에)
  840. //===========================================================================
  841. if(model.getValue("/root/main/getbloodinfo/getASTRsltYN/astrsltyn") == "N"){
  842. messageBox("AST 접수 및 결과가 없습니다.", "I");
  843. }
  844. var aborh = model.getValue("/root/main/getbloodinfo/getpatinfo/aborh").substring(0,1);
  845. var abrnblodyn = model.getValue("/root/main/getbloodinfo/getpatinfo/abrnblodyn"); //이형혈액여부
  846. var aborhValue = model.getValue("/root/main/getbloodinfo/getpatinfo/aborh");
  847. var aborhLen = aborhValue.length;
  848. var ecnt = getNodesetCount("/root/main/getbloodinfo/blod/getprepbloodlist");
  849. model.makeValue("/root/hidden/endcnt", ecnt);
  850. //이형혈액인경우
  851. if(abrnblodyn == "Y"){
  852. if(aborhLen > 3){
  853. opt_abo.attribute("font-size") = 20;
  854. opt_abo.attribute("color") = "red";
  855. }else{
  856. opt_abo.attribute("font-size") = 40;
  857. opt_abo.attribute("color") = "red";
  858. }
  859. }else{
  860. if(aborh=="A"){
  861. opt_abo.attribute("font-size") = 48;
  862. if(model.getValue("/root/main/getbloodinfo/getpatinfo/aborh").substring(0,2)=="AB"){
  863. opt_abo.attribute("class") = "font_ab";
  864. }else{
  865. opt_abo.attribute("class") = "font_a";
  866. }
  867. }else if(aborh=="B"){
  868. opt_abo.attribute("font-size") = 48;
  869. opt_abo.attribute("class") = "font_b";
  870. }else if(aborh=="O"){
  871. opt_abo.attribute("font-size") = 48;
  872. opt_abo.attribute("class") = "font_o";
  873. }else{
  874. // 기타 혈액형
  875. opt_abo.attribute("font-size") = 28;
  876. opt_abo.attribute("class") = "font_b";
  877. }
  878. }
  879. // 최근결과내역 표시
  880. fGetBlodRslt(txt);
  881. //grd_prepblood.rebuildStyle(1,2,(grd_prepblood.rows-1),8);
  882. //준비혈액내역
  883. for(i=1; i<grd_prepblood.rows ; i++){
  884. if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt")=="-") || (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt")=="")){
  885. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", "5");
  886. //model.setValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+i+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ "); // 이거 없애면 에러나요 2byte 공백임 조심하셈
  887. grd_prepblood.cellStyle("font-weight", i, 2, i, 8) = "bold";
  888. grd_prepblood.cellStyle("font-size", i, 2, i, 8) = 14;
  889. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt")=="6"){ // 보류, 적합(응급) 은 결과수정할수 있어야함
  890. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", "6");
  891. //model.setValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+i+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ "); // 이거 없애면 에러나요 2byte 공백임 조심하셈
  892. grd_prepblood.cellStyle("color", i, 2, i, 8) = "#aaaaaa";
  893. grd_prepblood.cellStyle("font-weight", i, 2, i, 8) = "normal";
  894. grd_prepblood.cellStyle("font-size", i, 2, i, 8) = 12;
  895. grd_prepblood.isReadOnly(i, 8) = false;
  896. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt")=="3"){
  897. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", "3");
  898. //model.setValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+i+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ "); // 이거 없애면 에러나요 2byte 공백임 조심하셈
  899. grd_prepblood.cellStyle("color", i, 2, i, 8) = "#aaaaaa";
  900. grd_prepblood.cellStyle("font-weight", i, 2, i, 8) = "normal";
  901. grd_prepblood.cellStyle("font-size", i, 2, i, 8) = 12;
  902. grd_prepblood.isReadOnly(i, 8) = false;
  903. }else{
  904. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt"));
  905. grd_prepblood.cellStyle("color", i, 2, i, 8) = "#aaaaaa";
  906. grd_prepblood.cellStyle("font-weight", i, 2, i, 8) = "normal";
  907. grd_prepblood.cellStyle("font-size", i, 2, i, 8) = 12;
  908. grd_prepblood.isReadOnly(i, 8) = true;
  909. }
  910. model.makeValue("/root/hidden/cmrslt", "");
  911. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="3" ){ // 준비
  912. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#0000EE"; // 파랑
  913. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="5" ){ // CM완료
  914. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#FF00FF"; // 분홍
  915. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="6" ){ // 불출
  916. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#EE0000"; // 빨강
  917. }
  918. }
  919. // 준비혈액내역 상태 표시
  920. if(grd_prepblood.rows > 1){
  921. setRowStyle("grd_prepblood", "1", "3", "blodstat", "equal"); // 혈액상태 준비일때 노란색
  922. setRowStyle("grd_prepblood", "11","4", "blodstat", "equal"); // 혈액상태 CM일때 연두색
  923. setRowStyle("grd_prepblood", "3", "5", "blodstat", "equal"); // 혈액상태 불출대기일때 녹색
  924. }
  925. var sss= grd_prepblood.rowStatus(1);
  926. // 보관검체, 재고수량 setting *** start
  927. model.setValue("/root/hidden2/keepnoblodcnt/bno", model.getValue("/root/main/getbloodinfo/getKeepnoBlodcnt/bno"));
  928. model.setValue("/root/hidden2/keepnoblodcnt/keepno", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/kabo") + model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/keepspcno"));
  929. //model.setValue("/root/hidden2/keepnoblodcnt/keepno", model.getValue("/root/main/getbloodinfo/getKeepnoBlodcnt/keepno"));
  930. cap_blodcnt.refresh();
  931. cap_keep.refresh();
  932. // 보관검체, 재고수량 setting *** end
  933. if(txt == "Select"){
  934. model.setFocus("ipt_bloodno");
  935. }
  936. }
  937. // 임시 최근결과
  938. function fGetBlodRslt(txt){
  939. //model.removeNodeset("/root/main/getbloodinfo/getblodinforslt");
  940. //grd_lastrslt.rebuild();
  941. for(i=1; i<=grd_lastrslt.cols; i++){
  942. grd_lastrslt.colHidden(i) = true;
  943. }
  944. var rsltrow = getNodesetCount("/root/main/getbloodinfo/getblodinfolist");
  945. var newcap = "";
  946. for(i=0; i< rsltrow; i++){
  947. grd_lastrslt.colHidden(i) = false;
  948. //newcap += "^" + model.getValue("/root/main/getbloodinfo/getblodinfolist["+(i+1)+"]/tclsnm");
  949. newcap += "^" + model.getValue("/root/main/getbloodinfo/getblodinfolist["+(i+1)+"]/tclsnmabbr");
  950. }
  951. grd_lastrslt.addRow(false);
  952. grd_lastrslt.addRow(false);
  953. for(i=1; i<= rsltrow; i++){
  954. //model.makeValue("/root/main/getbloodinfo/getblodinforslt/row[1]/a"+i, model.getValue("/root/main/getbloodinfo/getblodinfolist["+i+"]/rslt") + " " + model.getValue("/root/main/getbloodinfo/getblodinfolist["+i+"]/unit"));
  955. model.makeValue("/root/main/getbloodinfo/getblodinforslt/row[1]/a"+i, model.getValue("/root/main/getbloodinfo/getblodinfolist["+i+"]/rslt"));
  956. model.makeValue("/root/main/getbloodinfo/getblodinforslt/row[2]/a"+i, model.getValue("/root/main/getbloodinfo/getblodinfolist["+i+"]/dt"));
  957. grd_lastrslt.colWidth((i-1)) = 90;
  958. }
  959. newcap = newcap.substring(1);
  960. grd_lastrslt.caption = newcap;
  961. grd_lastrslt.rebuild();
  962. //결과값 Positive일경우 혈액준비화면 AST, C/S ID 결과 양성인 경우 환자혈액형정보 부분 글씨색 빨간색 및 팝업창 글씨 크고 굵게 빨간색
  963. //변경요청 12589
  964. for(i = 0; i < grd_lastrslt.cols ; i++){
  965. if(isSearchString((grd_lastrslt.valueMatrix(1, i)).toUpperCase(), "POSITIVE")){
  966. grd_lastrslt.cellstyle("color", 1, i) = "#ff0000";
  967. grd_lastrslt.cellstyle("font-weight", 1, i) = "bold";
  968. }else{
  969. grd_lastrslt.cellstyle("color", 1, i) = "#000000";
  970. grd_lastrslt.cellstyle("font-weight", 1, i) = "normal";
  971. }
  972. }
  973. if(txt != "Auto"){
  974. var strCheckTFAST = false;
  975. for(i=1; i<= rsltrow; i++){
  976. var strCheckTF = "";
  977. var strTestcd = model.getValue("/root/main/getbloodinfo/getblodinfolist["+i+"]/testcd");
  978. var strRslt = model.getValue("/root/main/getbloodinfo/getblodinfolist["+i+"]/rslt");
  979. //isSearchString(전체 문장, 찾을문장); - stringHelper.js
  980. //"positve" 가 들어간것은 모두 양성자 팝업 처리, toUpperCase -> 대문자로 치환
  981. strCheckTF = isSearchString(strRslt.toUpperCase(), "positive".toUpperCase());
  982. if(strTestcd == "LBR106" && strCheckTF == true){
  983. //alert("전 = >"+strCheckTFAST);
  984. strCheckTFAST = true;
  985. //alert("후 = >"+strCheckTFAST);
  986. messageBox("AST 검사결과 Positive입니다.", "I");
  987. }
  988. if(strTestcd == "LBR107" && strCheckTF == true){
  989. messageBox("Ab ID 검사결과 Positive입니다.", "I");
  990. }
  991. /* - 2009.06.02 혈액은행 요청사항으로 LBR109만 팝업창 생성.
  992. if(strTestcd == "LBR108" && strCheckTF == true){
  993. messageBox("C/S D 검사결과 Positive입니다.", "I");
  994. }*/
  995. if(strTestcd == "LBR109" && strCheckTF == true){
  996. messageBox("C/S ID 검사결과 Positive입니다.", "I");
  997. }
  998. }//end for
  999. //===========================================================================
  1000. //AST 이전 검사결과에 Positive 여부 체크 추가 : 최근결과에 Positive 없을경우만 실행
  1001. //===========================================================================
  1002. var tclsnm = grd_lastrslt.caption;
  1003. var tnm = tclsnm.split("^");
  1004. if(tnm[0] == "AST" && strCheckTFAST == false){
  1005. var rsltrow = getNodesetCount("/root/main/getbloodinfo/getblodinfolist");
  1006. model.setValue("/root/send/tclscd", "LBR106");
  1007. model.setValue("/root/send/pid", model.getValue("/root/main/getbloodinfo/getpatinfo/pid"));
  1008. //submit("TRLBT10407"); // 지우지마세요
  1009. submit("TRLBT10603");
  1010. if(getNodesetCount("/root/main/getbloodinfo/blodrslthistory") > 0){
  1011. var findRow = datagrid1.findRow("positive",1, 1, false, false);
  1012. if( findRow > 0){
  1013. messageBox("AST 이전 검사결과에 Positive 결과가 존재합니다.", "I");
  1014. }
  1015. }
  1016. }
  1017. //===========================================================================
  1018. //수혈부작용여부- 2009.06.02 혈액은행 요청사항으로 수혈부작용 팝업 생성 안함.
  1019. //===========================================================================
  1020. /*var strTnssideeffect = model.getValue("/root/main/getbloodinfo/getpatinfo/tnssideeffect");
  1021. if(strTnssideeffect > 0){
  1022. messageBox("수혈부작용 환자입니다.", "I");
  1023. }*/
  1024. }
  1025. }
  1026. // 최근결과내역 표시
  1027. function fGetBlodLastRslt(){
  1028. model.removeNodeset("/root/main/temp3/getblodinforslt");
  1029. model.removeNodeset("/root/main/getbloodinfo/getblodinforslt/row");
  1030. grd_lastrslt.colHidden(0) = true;
  1031. for( var i = 0; i <=grd_lastrslt.cols; i++ ) {
  1032. grd_lastrslt.removeColumn(false);
  1033. grd_lastrslt.colHidden(i) = true;
  1034. }
  1035. grd_lastrslt.rebuild();
  1036. //submit("TRLBT10206"); // 지우지마세요
  1037. submit("TRLBT10605");
  1038. var gridCaption = model.getValue("/root/main/temp3/getblodinforslt/header/caption");
  1039. if(gridCaption == ""){
  1040. return;
  1041. }
  1042. var gridColRef = model.getValue("/root/main/temp3/getblodinforslt/header/colref");
  1043. var gridColRefArray = gridColRef.split("^");
  1044. var gridColType = model.getValue("/root/main/temp3/getblodinforslt/header/type");
  1045. var gridColTypeArray = gridColType.split("^");
  1046. var cnt = model.getValue("/root/main/temp3/getblodinforslt/row/cnt");
  1047. for(var i=1; i<= cnt; i++){
  1048. grd_lastrslt.addColumn("ref:" + gridColRefArray[i] + "; type:"+gridColTypeArray[i]+"; ", false);
  1049. }
  1050. grd_lastrslt.caption = gridCaption;
  1051. grd_lastrslt.rebuild();
  1052. }
  1053. // 2008.07.28 김성희 수정
  1054. // 준비 혈액 내역에 혈액내역 표시
  1055. function fGetPrepBlodList(){
  1056. //-------------------------------------------------------------------------
  1057. //수혈내역 클릭하여 준비혈액내역 조회했을시. 준비혈액내역 클리어.
  1058. if(model.getValue("/root/send/clickflag") == "03"){
  1059. model.removeNodeset("/root/main/getbloodinfo/blod");
  1060. model.setValue("/root/send/clickflag", "");
  1061. grd_prepblood.refresh();
  1062. }
  1063. //-------------------------------------------------------------------------
  1064. var blodno = model.getValue("/root/hidden2/ref/bloodno"); // 입력한 혈액번호
  1065. var aboinfo = model.getValue("/root/main/getbloodinfo/getpatinfo/aborh"); // 환자정보 혈액형
  1066. var prcpBlodbarcd = model.getValue("/root/main/getblodprcplist["+ grd_prcplist.row +"]/blodbarcd"); //처방리스트의 blodbarcd
  1067. if(grd_com.row > 0){
  1068. prcpBlodbarcd = model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/blodbarcd"); //처방리스트의 blodbarcd
  1069. }
  1070. //-------------------------------------------------------------------------
  1071. // 혈액번호 10자리 미만은 메세지 띄우기
  1072. if(blodno.length < 10){
  1073. messageBox("정확한 혈액번호를" , "C001", ""); //정확한 혈액번호를 입력하십시오.
  1074. model.setValue("/root/hidden2/ref/bloodno", "");
  1075. return;
  1076. }else if(blodno.length > 10){
  1077. blodno = blodno.substring(0,10);
  1078. model.setValue("/root/hidden/ref/bloodno", blodno);
  1079. model.refresh();
  1080. }
  1081. //-------------------------------------------------------------------------
  1082. // 혈액번호 입력한거 준비혈액내역에 있는지 검색
  1083. var findrow = grd_prepblood.findRow(blodno, 1, 3 , true, true);
  1084. if(findrow >0 ) {
  1085. messageBox("이미 추가하신 혈액" , "E008", ""); //이미 추가하신 혈액입니다
  1086. model.setValue("/root/hidden2/ref/bloodno", "");
  1087. return;
  1088. }
  1089. model.setValue("/root/send/blodno", blodno);
  1090. model.setValue("/root/send/blodbarcd", prcpBlodbarcd); //처방리스트의 blodbarcd
  1091. //--------------------------------------
  1092. //지정헌혈/자가혈액이 있는지 체크
  1093. // submit("TRLBT10208"); // 지우지 마세요
  1094. submit("TRLBT10606");
  1095. var apntselfrow = getNodesetCount("/root/main/temp/getapntselfinfo");
  1096. var apntselfyn = ""; //지정헌혈,자가헌혈 여부
  1097. var blodbarcdA = ""; //"A" 로 시작하는 혈액바코드 여부
  1098. var apntselfBlodbarcd = model.getValue("/root/main/temp/getapntselfinfo/blodbarcd");
  1099. var apntDonFlag = model.getValue("/root/main/temp/getapntselfinfo/donflag");
  1100. if(apntselfrow > 0 && apntDonFlag != ""){
  1101. if(apntselfBlodbarcd.substring(0,1) == "A"){
  1102. blodbarcdA = "Y";
  1103. }else{
  1104. blodbarcdA = "N";
  1105. }
  1106. apntselfyn = "Y";
  1107. }else{
  1108. apntselfyn = "N";
  1109. blodbarcdA = "N";
  1110. }
  1111. model.setValue("/root/send/apntselyn", blodbarcdA);
  1112. // apntselyn 화면에선 요렇게 보내고 매퍼에서 apntselfyn 요렇게 받아서 에러났음 매퍼를 수정함 2008-09-05
  1113. //-------------------------------------------------------------------------
  1114. //입력한 혈액번호의 정보 조회
  1115. //if(submit("TRLBT10203") == true){ // 지우지마세요
  1116. if(submit("TRLBT10607") == true){
  1117. var imp = model.getValue("/root/hidden/prepimport");
  1118. var prepdonflag = model.getValue("/root/main/temp/getprepbloodlisth/donflag"); //입력한 혈액의 헌혈구분(01:성분헌혈지정,자가,WB 02:간호지정헌혈등록), ""이면 일반혈액
  1119. var prepblodbarcd = model.getValue("/root/main/temp/getprepbloodlisth/blodbarcd"); //입력한 혈액의 blodbarcd
  1120. var tnsrpid = model.getValue("/root/main/temp/getprepbloodlisth/tnsrpid"); //입력한 혈액의 수혜자 id
  1121. var prcppid = model.getValue("/root/main/getblodprcplist["+ grd_prcplist.row +"]/pid"); //선택한 처방의 환자번호
  1122. // 일반 혈액준비관리
  1123. //if(imp == "SAME"){
  1124. var prepabo = model.getValue("/root/main/temp/getprepbloodlisth/abo");
  1125. if(prepabo == ""){
  1126. messageBox("입고된 혈액이 아닙니다.", "I"); //입고된 혈액이 아닙니다.
  1127. return;
  1128. }
  1129. var blodstat = model.getValue("/root/main/temp/getprepbloodlisth/blodstat");
  1130. if(blodstat == "0"){
  1131. messageBox("삭제된 혈액입니다.", "I");
  1132. return;
  1133. }else if(blodstat == "3"){
  1134. messageBox("준비된 혈액입니다.", "I");
  1135. return;
  1136. }else if(blodstat =="4"){
  1137. messageBox("검사중인 혈액입니다.", "I");
  1138. return;
  1139. }else if(blodstat =="5"){
  1140. messageBox("불출대기중인 혈액입니다.", "I");
  1141. return;
  1142. }else if(blodstat =="6"){
  1143. messageBox("불출된 혈액입니다.", "I");
  1144. return;
  1145. }else if(blodstat =="7"){
  1146. messageBox("폐기된 혈액입니다.", "I");
  1147. return;
  1148. }
  1149. //혈액준비관리에서만 혈액형 체크 2009.01.13 김성희 수정
  1150. if(imp == "SAME"){
  1151. if(prepabo != aboinfo){
  1152. messageBox("혈액형이 다릅니다.", "I"); //혈액형이 다릅니다.
  1153. return;
  1154. }
  1155. }
  1156. //----------------------------------------------------------------------------
  1157. //자가,지정혈액이 입고가 된 후 처방이 나는 걸 기본 전제로 처리.
  1158. //지정헌혈 혈액이 입고 되어있고..준비 한 혈액이 일반혈액(prepdonflag == "")인 경우
  1159. if(apntselfyn == "Y" && prepdonflag == ""){
  1160. messageBox("자가,지정헌혈혈액이 아닙니다.", "I");
  1161. return;
  1162. }
  1163. //자가 혈액이 입고 되어있고..준비 한 혈액이 일반혈액(prepdonflag == "")인 경우
  1164. //if(apntselfyn == "Y" && prepdonflag == ""){
  1165. // messageBox("자가헌혈혈액이 아닙니다.", "I");
  1166. // return;
  1167. //}
  1168. //자가,지정 혈액이 입고 되어있고..준비 한 혈액이 자가,지정헌혈이고, 수혜자가 일치 하지 않을때..
  1169. if(apntselfyn == "Y" && prepdonflag != "" && tnsrpid != prcppid){
  1170. messageBox("수혜자가 일치하지 않습니다.", "I");
  1171. return;
  1172. }
  1173. //자가,지정 혈액이 입고 되어있고...준비 한 혈액이 자가,지정헌혈이고, 처방과 준비한 혈액이 일치 하지 않으면 준비 안함.
  1174. if(apntselfyn == "Y" && prepdonflag != ""){
  1175. if(prcpBlodbarcd.substring(0,1) == "A"){
  1176. if(prcpBlodbarcd != prepblodbarcd){
  1177. messageBox("혈액 성분이 일치하지 않습니다.", "I");
  1178. return;
  1179. }
  1180. }else{
  1181. if(prcpBlodbarcd.substring(0,4) != prepblodbarcd.substring(0,4)){
  1182. messageBox("혈액 성분이 일치하지 않습니다.", "I");
  1183. return;
  1184. }
  1185. }
  1186. }
  1187. //}// 이형 혈액준비관리
  1188. //else if(imp == "DIFF"){
  1189. //
  1190. //}
  1191. //-------------------------------------------------------------------------
  1192. //유효일시 체크
  1193. var toddtm = getCurrentDate() + getCurrentTime();
  1194. if(model.getValue("/root/main/temp/getprepbloodlisth/validt") < toddtm){
  1195. messageBox("유효일시가 지난 혈액 ", "E008",""); // 입니다.
  1196. return;
  1197. }
  1198. //-------------------------------------------------------------------------
  1199. // 처방 혈액바코드, 준비혈액 혈액바코드 비교
  1200. var bbarcd = model.getValue("/root/main/temp/getprepbloodlisth/blodbarcd"); // 현재입력한 혈액정보
  1201. //var bbarcd2 = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodbarcd");
  1202. var bbarcd2 = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodbarcd"); // 처방에서 선택한거
  1203. if(grd_com.row> 0 ){
  1204. bbarcd2 = model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/blodbarcd"); // 혈액성분에서 선택한 성분제제
  1205. }
  1206. var prepCnt = 0;
  1207. //지정,자가헌혈이 아닌경우 용량 변경 처리 , 지정,자가헌혈인 경우 용량변경 안됨.
  1208. //if((prepdonflag == "" && bbarcd2.substring(0,4) == bbarcd.substr(0,4)) || (prepdonflag != "" && bbarcd2 == bbarcd)){
  1209. ////"A"로 시작하는 혈액바코드가 아닌경우만 용량변경 가능 2009.06.29 김성희 수정
  1210. if(bbarcd.substring(0,1) != "A" &&bbarcd2.substring(0,4) == bbarcd.substr(0,4)){
  1211. var seqqnt = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/no");
  1212. var tnsreqacptno1 = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno");
  1213. var blodbarcd1 = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodbarcd");
  1214. var iryn1 = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/iryn");
  1215. var tnsreqacptno2 = "";
  1216. var blodbarcd2 = "";
  1217. var blodbarcd3 = "";
  1218. var blodbarcd4 = "";
  1219. var iryn2 = "";
  1220. //----------------------------------------------------
  1221. for(iCnt = 1; iCnt <= grd_prepblood.rows; iCnt++){
  1222. tnsreqacptno2 = model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+iCnt+"]/tnsreqacptno");
  1223. blodbarcd2 = model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+iCnt+"]/blodbarcd");
  1224. iryn2 = model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+iCnt+"]/iryn");
  1225. blodbarcd3 = blodbarcd1.substring(0,4); //용량변경
  1226. blodbarcd4 = blodbarcd2.substring(0,4); //용량변경
  1227. //선택한 처방목록의 수혈접수일련번호,성분제제, irr 과 준비혈액내역 수혈접수일련번호, 성분제제, irr 이 같으면 prepCnt++
  1228. if(tnsreqacptno1 == tnsreqacptno2
  1229. && ((blodbarcd3 == blodbarcd4 && blodbarcd3.substring(0,1) != "A" && blodbarcd4.substring(0,1) != "A") ||
  1230. (blodbarcd1 == blodbarcd2 && blodbarcd1.substring(0,1) == "A" && blodbarcd2.substring(0,1) == "A"))
  1231. && iryn1 == iryn2){
  1232. prepCnt++;
  1233. }
  1234. }
  1235. //------------------------------------------------------
  1236. //선택한 처방목록의 수혈접수일련번호의 남은 수량과
  1237. //준비혈액내역 수혈접수일련번호 준비수량이 같으면 더이상 준비 못함.
  1238. if(seqqnt == prepCnt){
  1239. messageBox("처방된 수량만 준비하십시오.", "I"); //처방된 수량만 준비하십시오
  1240. return;
  1241. }
  1242. }else if(bbarcd.substring(0,1) == "A" && bbarcd2 != bbarcd){
  1243. messageBox("혈액 성분이 " , "E004", ""); //혈액 성분이 일치하지 않습니다.
  1244. return;
  1245. } // 변경후
  1246. grd_prepblood.addRow();
  1247. if(grd_com.row> 0){ // 혈액성분 클릭시 혈액성분에서 가져오기
  1248. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/tnsreqacptno" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/tnsreqacptno"));
  1249. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/prcpblodbarcd" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/blodbarcd")); //처방 혈액바코드
  1250. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/prcpblodcomcd" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/blodcomcd")); //처방 코드
  1251. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/iryn" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/iryn"));
  1252. }else{ // 혈액성분 없을때 처방데이터 가져오기
  1253. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/tnsreqacptno" ,model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno"));
  1254. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/prcpblodbarcd" ,model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodbarcd")); //처방 혈액바코드
  1255. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/prcpblodcomcd" ,model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodcomcd")); //처방 코드
  1256. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/iryn" ,model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/iryn"));
  1257. }
  1258. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/chk" ,"Y");
  1259. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/pid" ,model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid"));
  1260. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodno" ,model.getValue("/root/main/temp/getprepbloodlisth/blodno"));
  1261. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodcomnm" ,model.getValue("/root/main/temp/getprepbloodlisth/blodcomnm"));
  1262. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/abo" ,model.getValue("/root/main/temp/getprepbloodlisth/abo"));
  1263. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodcomcd" ,model.getValue("/root/main/temp/getprepbloodlisth/blodcomcd"));
  1264. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodbarcd" ,model.getValue("/root/main/temp/getprepbloodlisth/blodbarcd"));
  1265. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodstat" ,model.getValue("/root/main/temp/getprepbloodlisth/blodstat"));
  1266. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodcmt" ,model.getValue("/root/main/temp/getprepbloodlisth/blodcmt"));
  1267. //grd_prepblood.gridToInstance();
  1268. }
  1269. grd_prepblood.row = (grd_prepblood.rows-1);
  1270. var gridRow = grd_prepblood.rows; //===
  1271. grd_prepblood.topRow = gridRow;
  1272. }// end of fGetPrepBlodList()
  1273. // 준비 혈액 내역에 혈액내역 표시
  1274. function fGetPrepBlodList_backup(){
  1275. var blodno = model.getValue("/root/hidden2/ref/bloodno"); // 입력한 혈액번호
  1276. var aboinfo = model.getValue("/root/main/getbloodinfo/getpatinfo/aborh"); // 환자정보 혈액형
  1277. // 혈액번호 10자리 미만은 메세지 띄우기
  1278. if(blodno.length < 10){
  1279. messageBox("정확한 혈액번호를" , "C001", ""); //정확한 혈액번호를 입력하십시오.
  1280. model.setValue("/root/hidden2/ref/bloodno", "");
  1281. //ipt_bloodno.refresh();
  1282. //model.setFocus("ipt_bloodno");
  1283. return;
  1284. }else if(blodno.length > 10){
  1285. blodno = blodno.substring(0,10);
  1286. model.setValue("/root/hidden/ref/bloodno", blodno);
  1287. model.refresh();
  1288. }
  1289. //수혈내역 클릭하여 준비혈액내역 조회했을시.
  1290. //준비혈액내역 클리어.
  1291. if(model.getValue("/root/send/clickflag") == "03"){
  1292. model.removeNodeset("/root/main/getbloodinfo/blod");
  1293. model.setValue("/root/send/clickflag", "");
  1294. grd_prepblood.refresh();
  1295. }
  1296. var findrow = grd_prepblood.findRow(blodno, 1, 3 , true, true); // 혈액번호 입력한거 준비혈액내역에 있는지 검색
  1297. if(findrow >0 ) {
  1298. messageBox("이미 추가하신 혈액" , "E008", ""); //이미 추가하신 혈액입니다
  1299. model.setValue("/root/hidden2/ref/bloodno", "");
  1300. return;
  1301. }
  1302. model.setValue("/root/send/blodno", blodno);
  1303. model.setValue("/root/send/blodbarcd", model.getValue("/root/main/getblodprcplist["+ grd_prcplist.row +"]/blodbarcd")); //==
  1304. // if(submit("TRLBT10203") == true){ // 지우지마세요
  1305. if(submit("TRLBT10607") == true){
  1306. var imp = model.getValue("/root/hidden/prepimport");
  1307. // 일반 혈액준비관리
  1308. if(imp == "SAME"){
  1309. var prepabo = model.getValue("/root/main/temp/getprepbloodlisth/abo");
  1310. if(prepabo == ""){
  1311. messageBox("입고된 혈액이 아닙니다.", "I"); //입고된 혈액이 아닙니다.
  1312. return;
  1313. }
  1314. var blodstat = model.getValue("/root/main/temp/getprepbloodlisth/blodstat");
  1315. if(blodstat == "0"){
  1316. messageBox("삭제된 혈액입니다.", "I");
  1317. return;
  1318. }else if(blodstat == "3"){
  1319. messageBox("준비된 혈액입니다.", "I");
  1320. return;
  1321. }else if(blodstat =="4"){
  1322. messageBox("검사중인 혈액입니다.", "I");
  1323. return;
  1324. }else if(blodstat =="5"){
  1325. messageBox("불출대기중인 혈액입니다.", "I");
  1326. return;
  1327. }else if(blodstat =="6"){
  1328. messageBox("불출된 혈액입니다.", "I");
  1329. return;
  1330. }else if(blodstat =="7"){
  1331. messageBox("폐기된 혈액입니다.", "I");
  1332. return;
  1333. }
  1334. if(prepabo != aboinfo){
  1335. messageBox("혈액형이 다릅니다.", "I"); //혈액형이 다릅니다.
  1336. return;
  1337. }
  1338. }// 이형 혈액준비관리
  1339. else if(imp == "DIFF"){
  1340. }
  1341. var toddtm = getCurrentDate() + getCurrentTime();
  1342. if(model.getValue("/root/main/temp/getprepbloodlisth/validt") < toddtm){
  1343. messageBox("유효일시가 지난 혈액 ", "E008",""); // 입니다.
  1344. return;
  1345. }
  1346. // 처방 성분제제 준비혈액 성분제제 비교
  1347. var bbarcd = model.getValue("/root/main/temp/getprepbloodlisth/blodbarcd");
  1348. var bbarcd2 = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodbarcd");
  1349. if(bbarcd2.substring(0,4) == bbarcd.substr(0,4)){
  1350. var seqqnt = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/h");
  1351. if(seqqnt < grd_prepblood.rows){
  1352. messageBox("처방된 수량만 준비하십시오.", "I"); //처방된 수량만 준비하십시오
  1353. return;
  1354. }
  1355. }else{
  1356. messageBox("혈액 성분이 " , "E004", ""); //혈액 성분이 일치하지 않습니다.
  1357. return;
  1358. } // 변경후
  1359. grd_prepblood.addRow(false);
  1360. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodno", model.getValue("/root/main/temp/getprepbloodlisth/blodno"));
  1361. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodcomnm", model.getValue("/root/main/temp/getprepbloodlisth/blodcomnm"));
  1362. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/abo", model.getValue("/root/main/temp/getprepbloodlisth/abo"));
  1363. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/iryn", model.getValue("/root/main/temp/getprepbloodlisth/iryn"));
  1364. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodcomcd", model.getValue("/root/main/temp/getprepbloodlisth/blodcomcd"));
  1365. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodbarcd", model.getValue("/root/main/temp/getprepbloodlisth/blodbarcd"));
  1366. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodstat", model.getValue("/root/main/temp/getprepbloodlisth/blodstat"));
  1367. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+(grd_prepblood.rows-1)+"]/blodcmt", model.getValue("/root/main/temp/getprepbloodlisth/blodcmt"));
  1368. }
  1369. grd_prepblood.row = (grd_prepblood.rows-1);
  1370. var gridRow = grd_prepblood.rows; //===
  1371. grd_prepblood.topRow = gridRow;
  1372. }// end of fGetPrepBlodList()
  1373. // 환자별 comment 행추가
  1374. function fSetCmtAdd(){
  1375. grd_comment.addRow();
  1376. grd_comment.rowStatus(0) = 1;
  1377. }
  1378. // comment 삭제 - 바로삭제 이력관리 안함
  1379. function fCmtDel(){
  1380. //grd_comment.deleteRow(grd_comment.row);
  1381. grd_comment.rowStatus(grd_comment.row) = 4;
  1382. var cmt = grd_comment.getUpdateData();
  1383. var pid = model.getValue("/root/main/getbloodinfo/getpatinfo/pid");
  1384. model.setValue("/root/send/pid", pid);
  1385. model.setValue("/root/send/cmt", cmt);
  1386. // submit("TXLBT10303"); // 지우지마세요
  1387. submit("TXLBT10603");
  1388. fGetBloodInfo(pid, "Select");
  1389. }
  1390. // comment 저장
  1391. function fCmtSave(){
  1392. var cmt = grd_comment.getUpdateData();
  1393. var pid = model.getValue("/root/main/getbloodinfo/getpatinfo/pid");
  1394. model.setValue("/root/send/pid", pid);
  1395. model.setValue("/root/send/cmt", cmt);
  1396. // submit("TXLBT10303"); // 지우지마세요
  1397. submit("TXLBT10603");
  1398. fGetBloodInfo(pid, "Select");
  1399. }
  1400. /****************************************************************************************
  1401. * 수혈내역 "클릭시" 준비혈액 내역 조회
  1402. * 2008.07.08 김성희
  1403. * 1. 처방리스트가 없어도 환자 등록번호 입력하여 조회시엔
  1404. * 그 환자의 기존 수혈내역 존재시 수혈내역을 클릭하여 조회한다.
  1405. *****************************************************************************************/
  1406. function fGetPrepBlodSpec(){
  1407. //var comcd = "";
  1408. //var blodbarcd = "";
  1409. //var pid = "";
  1410. //var acptno = "";
  1411. //var prcphopedd = "";
  1412. var blodbarcd = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/blodbarcd");
  1413. var blodcomcd = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/blodcomcd");
  1414. var pid = model.getValue("/root/hidden2/ref/pid");
  1415. //var pid = model.getValue("/root/main/getbloodinfo/getpatinfo/pid");
  1416. var prcphopedd = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/prcphopedd");
  1417. var iryn = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/iryn");
  1418. var tnsreqacptno = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/tnsreqacptno");
  1419. if(iryn == ""){
  1420. iryn = "N";
  1421. }
  1422. model.setValue("/root/send/blodbarcd" ,blodbarcd);
  1423. model.setValue("/root/send/blodcomcd" ,blodcomcd);
  1424. model.setValue("/root/send/pid" ,pid);
  1425. model.setValue("/root/send/prcphopedd" ,prcphopedd);
  1426. model.setValue("/root/send/clickflag" ,"03");
  1427. model.setValue("/root/send/iryn" ,iryn);
  1428. model.setValue("/root/send/tnsreqacptno" ,tnsreqacptno);
  1429. //submit("TRLBT10205"); // 지우지마세요
  1430. submit("TRLBT10604");
  1431. copyNodeType("/root/main/getbloodinfo/blod", "/root/main/temp2", "replace");
  1432. grd_prepblood.refresh();
  1433. grd_prepblood.rebuildStyle();
  1434. // 이미 준비된 혈액 체크박스 비활성화
  1435. for(i=1; i< grd_prepblood.rows; i++){
  1436. //alert(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodno"));
  1437. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") > 3 ){
  1438. /*if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "3") || (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "6")){
  1439. grd_prepblood.isReadOnly(i, 1) = false;
  1440. }else{
  1441. grd_prepblood.isReadOnly(i, 1) = true;
  1442. }*/
  1443. //if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "3") || (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "6") ){ // 적합(응급), 보류 는 수정할수있어야함
  1444. if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="6") && (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "3" )){ // 불출&적합응급 선택되야함
  1445. grd_prepblood.isReadOnly(i, 1) = false;
  1446. }else if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat")) =="6" && (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "6")){ //불출&보류 선택되야함
  1447. grd_prepblood.isReadOnly(i, 1) = false;
  1448. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="5"){ // 불출대기 선택되야함
  1449. grd_prepblood.isReadOnly(i, 1) = false;
  1450. }else{ //
  1451. grd_prepblood.isReadOnly(i, 1) = true;
  1452. }
  1453. }else{
  1454. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt") == "-" || model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt") == ""){
  1455. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", "5");
  1456. }
  1457. grd_prepblood.isReadOnly(i, 1) = false;
  1458. }
  1459. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="3" ){ // 준비
  1460. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#0000EE"; // 파랑
  1461. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="5" ){ // CM완료
  1462. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#FF00FF"; // 분홍
  1463. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="6" ){ // 불출
  1464. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#EE0000"; // 빨강
  1465. }
  1466. }
  1467. if(grd_prepblood.rows > 1){
  1468. setRowStyle("grd_prepblood", "1", "3", "blodstat", "equal"); // 혈액상태 준비일때 노란색
  1469. setRowStyle("grd_prepblood", "11","4", "blodstat", "equal"); // 혈액상태 CM일때 연두색
  1470. setRowStyle("grd_prepblood", "3", "5", "blodstat", "equal"); // 혈액상태 불출대기일때 녹색
  1471. setRowStyle("grd_prepblood", "0", "6", "blodstat", "equal"); // 혈액상태 불출일때 붉은색
  1472. }
  1473. grd_prepblood.row = (grd_prepblood.rows-1);
  1474. var gridRow = grd_prepblood.rows;
  1475. grd_prepblood.topRow = gridRow;
  1476. grd_prepblood.refresh();
  1477. }
  1478. // 장현식 선생님이 혈액성분 클릭시엔 필요없다고 하셨음. 삭제예정
  1479. // 혈액성분 클릭하면 준비혈액내역 조회- param : "01","02" -
  1480. // 수혈내역 클릭하면 준비혈액내역 조회- param : "03"
  1481. function fGetPrepBloodCom(r, param){
  1482. //r ==1 조회버튼 클릭 또는 처방목록 그리드 클릭시
  1483. if (r == 1){
  1484. grd_com.row= 1;
  1485. }
  1486. var comcd = "";
  1487. var blodbarcd = "";
  1488. var pid = "";
  1489. var acptno = "";
  1490. var prcphopedd = "";
  1491. //param 에 따라 준비혈액내역 조회 되는 조건이 다르다.
  1492. //01,02 ==> blodcomstat = '2' (준비상태) , 03 ==> bloodcomstat IN ('4','5') (불출대기, 혈액불출)
  1493. if(param == "01" || param == "02"){ //조회버튼 클릭, 처방목록 그리드 클릭, 혈액성분 그리드 클릭
  1494. comcd = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodcomcd");
  1495. pid = model.getValue("/root/main/getbloodinfo/getpatinfo/pid");
  1496. acptno = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno");
  1497. model.setValue("/root/send/blodcomcd", comcd);
  1498. model.setValue("/root/send/pid", pid);
  1499. model.setValue("/root/send/tnsreqacptno", acptno);
  1500. model.setValue("/root/send/clickflag", param);
  1501. }else if(param == "03"){ //수혈내역클릭
  1502. blodbarcd = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/blodbarcd");
  1503. pid = model.getValue("/root/main/getbloodinfo/getpatinfo/pid");
  1504. prcphopedd = model.getValue("/root/main/getbloodinfo/getblooddetllist["+grd_detllist.row+"]/prcphopedd");
  1505. model.setValue("/root/send/blodbarcd", blodbarcd);
  1506. model.setValue("/root/send/pid", pid);
  1507. model.setValue("/root/send/prcphopedd", prcphopedd);
  1508. model.setValue("/root/send/clickflag", param);
  1509. }
  1510. // submit("TRLBT10205"); //지우지마세요
  1511. submit("TRLBT10604");
  1512. copyNodeType("/root/main/getbloodinfo/blod", "/root/main/temp2", "replace");
  1513. grd_prepblood.refresh();
  1514. // 이미 준비된 혈액 체크박스 비활성화
  1515. for(i=0; i< grd_prepblood.rows; i++){
  1516. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") > 3 ){
  1517. if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "3") && (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "6") ){
  1518. grd_prepblood.isReadOnly(i, 1) = false;
  1519. }else{
  1520. grd_prepblood.isReadOnly(i, 1) = true;
  1521. }
  1522. }else{
  1523. grd_prepblood.isReadOnly(i, 1) = false;
  1524. }
  1525. }
  1526. grd_prepblood.row =
  1527. (grd_prepblood.rows-1);
  1528. var gridRow = grd_prepblood.rows;
  1529. grd_prepblood.topRow = gridRow;
  1530. }
  1531. /************************************
  1532. // 수혈내역 클릭하면 준비혈액내역에
  1533. // 선택한 처방일자의 혈액성분별 준비혈액내역을 조회
  1534. // 만약 준비중인 혈액이 있는데 준비완료 하지않고 수혈 내역을 클릭했을때..
  1535. // 메시지 출력
  1536. // 2008-07-18 김성희
  1537. ************************************/
  1538. function fGetPrepBloodDetllist(row){
  1539. var prepTF = fPrepBlodYN("detllist");
  1540. if(prepTF){
  1541. return;
  1542. }else if(!prepTF){
  1543. //준비혈액내역조회
  1544. fGetPrepBlodSpec();
  1545. }
  1546. }
  1547. /************************************
  1548. // 처방내역 클릭시
  1549. // 준비중인 혈액 내역이 있고, 선택한 환자 번호와 준비중인 환자 번호가 다를때
  1550. // 메시지 출력
  1551. // 2008-07-29 김성희
  1552. ************************************/
  1553. function fGetPrcpList(){
  1554. var pid = "";
  1555. var keepspcno = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/keepspcno");
  1556. var pida = model.getValue("/root/hidden2/ref/pid").getTrim();
  1557. if(pida == ""){
  1558. pid = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid");
  1559. }else{
  1560. pid = pida;
  1561. }
  1562. //준비중인 혈액이 있는지 체크
  1563. var prepTF = fPrepBlodYN("prcplist");
  1564. if(prepTF){
  1565. return;
  1566. }else if(!prepTF){
  1567. // 혈액정보조회
  1568. fGetBloodInfo(pid, "Select");
  1569. }
  1570. //선택한 처방이 WB일때 자가혈액 있는 경우 팝업창
  1571. if(model.getValue("/root/main/getblodprcplist["+ grd_prcplist.row +"]/wbcnt") > 0){
  1572. messageBox("자가혈액이 있습니다.","I");
  1573. }
  1574. //2009.07.29 수정 변경요청번호 1951
  1575. if(keepspcno.getTrim()== ""){
  1576. messageBox("보관검체가 없습니다.", "I");
  1577. }
  1578. // 박정은 변경요청번호 9948 우선순위 SY
  1579. if(model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/jjno") != ""){
  1580. messageBox("지정헌혈 정보가 있습니다. \n" + model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/jjno"), "I");
  1581. }
  1582. }
  1583. // 혈액정보 결과값 더블 클릭시 검사항목 결과 히스토리 보여주기
  1584. function fGetBlodInfoHistory(){
  1585. //grp_history.visible = true;
  1586. var rsltrow = getNodesetCount("/root/main/getbloodinfo/getblodinfolist");
  1587. var tclsnm = grd_lastrslt.caption;
  1588. var tnm = tclsnm.split("^");
  1589. for(i=0; i< rsltrow; i++){
  1590. if(grd_lastrslt.col == i){
  1591. if(tnm[i] == model.getValue("/root/main/getbloodinfo/getblodinfolist["+(i+1)+"]/tclsnmabbr")){
  1592. model.setValue("/root/send/tclscd", model.getValue("/root/main/getbloodinfo/getblodinfolist["+(i+1)+"]/testcd"));
  1593. model.setValue("/root/send/pid", model.getValue("/root/main/getbloodinfo/getpatinfo/pid"));
  1594. //submit("TRLBT10407"); // 지우지마세요
  1595. submit("TRLBT10603");
  1596. for(j = 1; j < datagrid1.rows ; j++){
  1597. if(isSearchString((datagrid1.valueMatrix(j, datagrid1.colRef("rslt"))).toUpperCase(), "POSITIVE")){
  1598. datagrid1.cellstyle("color", j, datagrid1.colRef("rslt")) = "#ff0000";
  1599. datagrid1.cellstyle("font-weight", j, datagrid1.colRef("rslt")) = "bold";
  1600. }else{
  1601. datagrid1.cellstyle("color", j, datagrid1.colRef("rslt")) = "#000000";
  1602. datagrid1.cellstyle("font-weight", j, datagrid1.colRef("rslt")) = "normal";
  1603. }
  1604. }
  1605. grp_history.visible = true;
  1606. }
  1607. }
  1608. }
  1609. }
  1610. // 프린트 설정
  1611. function fPrintSet(){
  1612. var count = getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  1613. if(count == 0) {
  1614. model.makeNode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  1615. }
  1616. open("SPLLC90100_바코드프린터설정.xrw", "", "", "", "", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  1617. }
  1618. // 응급 체크시 lis.lbthtnsr erprcpflag 2로 변경
  1619. function fSetErprcpflag(){
  1620. var erchk = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/erprcpflag");
  1621. var errow = grd_prcplist.row;
  1622. if(erchk == "Y" ){
  1623. model.setValue("/root/send/erflag", "2");
  1624. }else{
  1625. model.setValue("/root/send/erflag", "0");
  1626. }
  1627. model.setValue("/root/send/pid", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid"));
  1628. model.setValue("/root/send/tnsreqacptno", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno"));
  1629. //submit("TXLBT10203"); // 지우지 마세요
  1630. submit("TXLBT10601");
  1631. fGetBloodPrcpList("btn");
  1632. }
  1633. // 준비취소
  1634. function fPrepCancel(){
  1635. var cancelYN = "";
  1636. for(i=0; i<grd_prepblood.rows; i++){
  1637. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/chk")== "Y"){
  1638. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcomstat") == "5"){
  1639. messageBox("불출된 혈액은 취소 할 수 없습니다. 불출된 혈액을 선택해제 하십시오.", "I");
  1640. return;
  1641. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcomstat") == "4"){
  1642. messageBox("불출대기인 혈액은 불출관리화면에서 취소 가능합니다. 불출대기인 혈액을 선택해제 하십시오.", "I");
  1643. return;
  1644. }
  1645. cancelYN = cancelYN + i;
  1646. }
  1647. }
  1648. if(cancelYN == ""){
  1649. messageBox("취소 할 혈액을 선택하십시오.", "I");
  1650. return;
  1651. }
  1652. //alert("aa= " + grd_prepblood.getUpdateData());
  1653. model.makeValue("/root/send/canceldata", grd_prepblood.getUpdateData()); // 취소할 데이터 보내기
  1654. model.makeValue("/root/send/cancelgbn", model.getValue("/root/hidden/cancel/cancelgbn")); // ㅁ접수취소 일때 1
  1655. if(submit("TXLBT10607")){
  1656. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  1657. var pid = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid");
  1658. fGetBloodInfo(pid , "Auto");
  1659. }
  1660. }
  1661. // 탑정보 위한 조회
  1662. function fGetTopInfo(){
  1663. model.setValue("/root/send/pid", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid"));
  1664. model.setValue("/root/send/prcpdd", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcpdd"));
  1665. model.setValue("/root/send/iogbn", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcpgenrflag"));
  1666. submit("TRLZZ00107");
  1667. fUpPatinfo();
  1668. }
  1669. // 탑정보
  1670. function fUpPatinfo(){
  1671. if(grd_prcplist.rows> 1){
  1672. if(model.getValue("/root/init/prcpinfo/prcpdd")!=""){
  1673. setParameter("errflag", "Y");
  1674. setParameter("condparam", "S" + "▦" + model.getvalue("/root/init/prcpinfo/prcpdd")+ "▦"
  1675. + model.getvalue("/root/init/prcpinfo/execprcpuniqno") + "▦"
  1676. + model.getvalue("/root/init/prcpinfo/instcd") );
  1677. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  1678. }
  1679. var paminfo = getGlobalVariable("paminfo");
  1680. if(paminfo.length < 1){ //상단정보가 없는 경우
  1681. delPatientInfos(); //환자정보 전체 삭제
  1682. var pid = model.getValue("/root/main/getbloodinfo/getpatinfo/pid");
  1683. var hngnm = model.getValue("/root/main/getbloodinfo/getpatinfo/patnm");
  1684. //상단에 올릴 수 있는 정보가 있으면 아래와 같이 설정해 주시면 됩니다. 없으면 안 해주셔도 되구요..
  1685. setPatientInfo("pid" , pid); //등록번호
  1686. setPatientInfo("pname" , pid + "|" + hngnm); //환자명
  1687. }
  1688. }
  1689. }
  1690. // 간호부전송 버튼 보이기
  1691. function fSetNurseBtn(){
  1692. btn_nurse2.visible = false;
  1693. if(model.getValue("/root/hidden2/ref/spclblood") == "1"){
  1694. btn_nurse2.visible = true;
  1695. }
  1696. }
  1697. // 처방목록에서 준비 and 접수 취소
  1698. function fExeAcptPrepCancel(){
  1699. if(grd_prcplist.row < 1){
  1700. messageBox("접수 취소할 처방을 선택하십시오.", "I");
  1701. return;
  1702. }
  1703. if(model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/cstat") != "1"){
  1704. messageBox("혈액준비된 처방이 있습니다. 준비취소후 접수취소 하십시오.", "I");
  1705. return;
  1706. }
  1707. //model.setValue("/root/send/preplog", model.getValue("/root/hidden/cancel/prepLog")); // prep 로그로 남길지
  1708. model.makeValue("/root/send/tnsreqacptno", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno"));
  1709. model.makeValue("/root/send/pid", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid"));
  1710. model.makeValue("/root/send/prcpdd", model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcpdd"));
  1711. //if(submit("TXLBT10206")==true){ // 지우지마세요
  1712. if(submit("TXLBT10604")==true){
  1713. fGetBloodPrcpList("btn");
  1714. }
  1715. }
  1716. //수혈예약일시 변경 메뉴
  1717. function fGetMouseDown(){
  1718. model.removeNodeset("/root/hidden/popupmenu");
  1719. model.makeNode("/root/hidden/popupmenu/grid");
  1720. model.makeNode("/root/hidden/popupmenu/grid/item");
  1721. var rowNum = 1;
  1722. //외래인경우만 띄움
  1723. if(model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcpgenrflag") == "O"){
  1724. //window.setPopupMenu(true , "/root/hidden/popupmenu/grid/item" , "name", "func" , false);
  1725. model.makeValue("/root/hidden/popupmenu/grid/item["+rowNum+"]/name" , "▶예약일시변경");
  1726. model.makeValue("/root/hidden/popupmenu/grid/item["+rowNum+"]/func" , "fGetTnsRsrv");
  1727. rowNum++;
  1728. }
  1729. //보관검체 재출력 기능 2009.09.23 김성희 추가 - 변경요청번호 : 3335
  1730. model.makeValue("/root/hidden/popupmenu/grid/item["+rowNum+"]/name" , "▶보관검체 재출력");
  1731. model.makeValue("/root/hidden/popupmenu/grid/item["+rowNum+"]/func" , "fGetKeepSpcno");
  1732. if(grd_prcplist.isCell(event.target) && grd_prcplist.mouseRow >= grd_prcplist.fixedrows){
  1733. window.setPopupMenu(true , "/root/hidden/popupmenu/grid/item" , "name", "func" , false);
  1734. }else{
  1735. window.setPopupMenu(false);
  1736. }
  1737. }
  1738. //수혈예약일시 변경 그리드 보이기
  1739. function fGetTnsRsrv(){
  1740. var prcphopedd = model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/prcphopedd");
  1741. var rsrvdd = prcphopedd.substring(0,8);
  1742. var rsrvtm = prcphopedd.substring(8);
  1743. model.setValue("/root/hidden/rsrvinfo/rsrvdd", rsrvdd);
  1744. model.setValue("/root/hidden/rsrvinfo/rsrvtm", rsrvtm);
  1745. grp_rsrv.visible = true;
  1746. grp_rsrv.refresh();
  1747. }
  1748. //수혈예약일시 변경
  1749. function fSetTnsRsrvDT(){
  1750. model.setValue("/root/send/tnsrsrv/pid" , model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid")); //등록번호
  1751. model.setValue("/root/send/tnsrsrv/tnsreqacptno" , model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/tnsreqacptno")); //접수번호
  1752. model.setValue("/root/send/tnsrsrv/blodcomcd" , model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/blodcomcd")); //성분제제(처방코드)
  1753. model.setValue("/root/send/tnsrsrv/rsrvdd" , model.getValue("/root/hidden/rsrvinfo/rsrvdd")); //예약일자
  1754. model.setValue("/root/send/tnsrsrv/rsrvtm" , model.getValue("/root/hidden/rsrvinfo/rsrvtm")); //예약시간
  1755. //if(submit("TXLBT10207")==true){ // 지우지마세요
  1756. if(submit("TXLBT10605")==true){
  1757. fGetBloodPrcpList("bcd");
  1758. }
  1759. grp_rsrv.visible = false;
  1760. }
  1761. // 준비혈액에 CM입력 버튼 클릭시
  1762. function fExeCMRslt(){
  1763. if(model.getValue("/root/hidden2/ref/testpsnid")=="" || model.getValue("/root/hidden2/ref/testpsnnm") == ""){
  1764. messageBox("접수자를 " , "C001", ""); //접수자를 입력하십시오
  1765. model.setFocus("ipt_testpsn");
  1766. return;
  1767. }
  1768. //등록번호를 반드시 입력해야지만 입력완료 할 수 있게 수정 - 2007.10.20 장현식 선생님 요청
  1769. if(model.getValue("/root/hidden2/ref/pid")==""){
  1770. messageBox("등록번호를 " , "C001", ""); //등록번호를 입력하십시오
  1771. model.setFocus("ipt_pid");
  1772. return;
  1773. }
  1774. var cmRslt = "";
  1775. var cmRsltList = "";
  1776. var blodcmt = "";
  1777. for(i=1; i<grd_prepblood.rows; i++){
  1778. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/chk")=="Y"){ // 준비혈액내역에서 선택된혈액만 CM할때
  1779. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcomstat") >= "2" ){ // 준비된 혈액만 CM가능
  1780. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt")=="5"){ // 검사중
  1781. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", "1"); //적합으로 바꾸고
  1782. ////if(model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/coombsyn")=="Y"){ // Coomb's Y면 적,적,적으로
  1783. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cs")=="Y"){ // Coomb's Y면 적,적,적으로
  1784. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rsltlist", "▦적합▦적합▦적합▦ ▦ ▦ "); //공백 꼭 넣어야함.
  1785. }else{
  1786. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ "); //공백 꼭 넣어야함.
  1787. }
  1788. }
  1789. cmRslt += "▦" + model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt");
  1790. cmRsltList += "★" + model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rsltlist");
  1791. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcmt")==""){
  1792. blodcmt += "▦" + " ";
  1793. }else{
  1794. blodcmt += "▦" + model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodcmt");
  1795. }// ▦0300000001▦0300000002 ...
  1796. } // blodcomstat = 2일때만 준비
  1797. }// chk 체크된것만
  1798. }
  1799. if(cmRslt == ""){
  1800. messageBox("결과저장할 혈액을 선택하십시오.", 'E');
  1801. return;
  1802. }
  1803. model.makeValue("/root/send/pid", model.getValue("/root/hidden2/ref/pid"));
  1804. model.makeValue("/root/send/testid", model.getValue("/root/hidden2/ref/testpsnid"));
  1805. model.makeValue("/root/send/cmrslt", cmRslt);
  1806. model.makeValue("/root/send/cmrsltlist", cmRsltList);
  1807. model.makeValue("/root/send/blodcmt", blodcmt);
  1808. model.makeValue("/root/send/cmdata", grd_prepblood.getUpdateData());
  1809. if(submit("TXLBT10606")){
  1810. // 처방정보 다시 조회
  1811. //fGetBloodPrcpList("bcd");
  1812. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  1813. grd_prepblood.rebuild();
  1814. model.setValue("/root/hidden2/ref/pid", "");
  1815. fGetBloodPrcpList("btn");
  1816. delPatientInfos();
  1817. if(grd_prcplist.rows > 1){
  1818. model.resetInstanceNode("/root/main/getbloodinfo");
  1819. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  1820. grd_prepblood.rebuild();
  1821. }else{
  1822. model.removeNodeset("/root/main/getbloodinfo/blod/getprepbloodlist");
  1823. grd_prepblood.rebuild();
  1824. }
  1825. //model.reset();
  1826. //준비완료 후 등록번호, 혈액번호 초기화 - 2007.10.20 장현식 선생님 요청
  1827. model.setValue("/root/hidden2/ref/pid", "");
  1828. model.setValue("/root/hidden2/ref/bloodno", "");
  1829. model.removeNodeset("/root/main/getbloodinfo/getblooddetllist");
  1830. grd_detllist.refresh();
  1831. model.refresh();
  1832. var prepimport = model.getValue("/root/hidden/prepimport");
  1833. if(prepimport == "DIFF"){
  1834. window.opener.javascript.fGetBloodPrcpList("btn");
  1835. window.close();
  1836. }
  1837. }
  1838. }
  1839. // 준비혈액내역 CS 체크박스 선택하면 팝업 띄우기
  1840. function fSetCMRslt(){
  1841. if(model.getValue("/root/hidden/ref/cmend")=="1"){ // 완료된것
  1842. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt") == "3"
  1843. || model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt") == "6"
  1844. ){ // 적합(응급),보류
  1845. //alert("11= " + model.getValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+grd_prepblood.row+"]/rsltlist"));
  1846. model.setValue("/root/hidden/cmrslt", model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist"));
  1847. modal("SPLBT90100","","300","300","","/root/hidden","/root/hidden");
  1848. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", model.getValue("/root/hidden/cmrslt"));
  1849. //model.setValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+grd_prepblood.row+"]/rslt", "2");
  1850. //alert("22= " + model.getValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+grd_prepblood.row+"]/rsltlist"));
  1851. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦ ▦ ▦ ▦ ▦ ▦ "){
  1852. // 적합응급 일때는 부적합으로 안바꿈
  1853. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt") == "3"){
  1854. }else if( (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦적합▦적합▦적합▦ ▦ ▦ ") &&
  1855. (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦적합▦ ▦ ▦ ▦ ▦ ") &&
  1856. (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦-▦-▦-▦ ▦ ▦ ") &&
  1857. (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦-▦ ▦ ▦ ▦ ▦ ") ){
  1858. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt", "2"); // CS에 값 넣으면 부적합으로 바꾸기
  1859. }
  1860. }
  1861. }
  1862. }else{ // 미완료
  1863. model.setValue("/root/hidden/cmrslt", model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist"));
  1864. model.setValue("/root/hidden/rslt", model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt"));
  1865. modal("SPLBT90100","","300","300","","/root/hidden","/root/hidden");
  1866. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", model.getValue("/root/hidden/cmrslt"));
  1867. //model.setValue("/root/main/getbloodinfo/getprepblood/getprepbloodlist["+grd_prepblood.row+"]/rslt", "2");
  1868. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦ ▦ ▦ ▦ ▦ ▦ "){
  1869. // 적합응급일때는 부적합으로 안바꿈
  1870. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt") == "3"){
  1871. //최소적합일때
  1872. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt") == "7"){
  1873. }else if( (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦적합▦적합▦적합▦ ▦ ▦ ") &&
  1874. (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦적합▦ ▦ ▦ ▦ ▦ ") &&
  1875. (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦-▦-▦-▦ ▦ ▦ ") &&
  1876. (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist") != "▦-▦ ▦ ▦ ▦ ▦ ")
  1877. ){
  1878. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt", "2"); // CS에 값 넣으면 부적합으로 바꾸기
  1879. }
  1880. }
  1881. }
  1882. }
  1883. /************************************
  1884. // 혈액성분 클릭하면 준비혈액내역에
  1885. // 준비혈액내역을 조회
  1886. // 만약 준비중인 혈액이 있는데 준비완료 하지않고 수혈 내역을 클릭했을때..
  1887. // 메시지 출력
  1888. // 2009-04-17 박정은
  1889. ************************************/
  1890. function fGetPrepBloodDetllist2(row){
  1891. var prepTF = fPrepBlodYN("detllist"); // 준비혈액내역에 준비중인 혈액 있는지 체크
  1892. if(prepTF){
  1893. return;
  1894. }else if(!prepTF){
  1895. //준비혈액내역조회
  1896. fGetPrepBlodSpec2();
  1897. }
  1898. }
  1899. /****************************************************************************************
  1900. * 수혈내역 "클릭시" 준비혈액 내역 조회
  1901. * 2008.07.08 김성희
  1902. * 1. 처방리스트가 없어도 환자 등록번호 입력하여 조회시엔
  1903. * 그 환자의 기존 수혈내역 존재시 수혈내역을 클릭하여 조회한다.
  1904. *****************************************************************************************/
  1905. function fGetPrepBlodSpec2(){
  1906. var pid = model.getValue("/root/hidden2/ref/pid");
  1907. var iryn = model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/iryn")
  1908. if(iryn == ""){
  1909. iryn = "N";
  1910. }
  1911. model.setValue("/root/send/blodbarcd" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/blodbarcd"));
  1912. model.setValue("/root/send/blodcomcd" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/blodcomcd"));
  1913. model.setValue("/root/send/pid" ,model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid"));
  1914. model.setValue("/root/send/prcphopedd" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/prcphopedd"));
  1915. model.setValue("/root/send/iryn" ,iryn);
  1916. model.setValue("/root/send/tnsreqacptno" ,model.getValue("/root/main/getbloodinfo/getbloodcom["+grd_com.row+"]/tnsreqacptno"));
  1917. //submit("TRLBT10205"); // 지우지마세요
  1918. submit("TRLBT10604");
  1919. copyNodeType("/root/main/getbloodinfo/blod", "/root/main/temp2", "replace");
  1920. grd_prepblood.refresh();
  1921. grd_prepblood.rebuildStyle();
  1922. // 이미 준비된 혈액 체크박스 비활성화
  1923. for(i=1; i< grd_prepblood.rows; i++){
  1924. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") > 3 ){
  1925. //if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "3") || (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "6") ){ // 적합(응급), 보류 는 수정할수있어야함
  1926. if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="6") && (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "3" )){ // 불출&적합응급 선택되야함
  1927. grd_prepblood.isReadOnly(i, 1) = false;
  1928. }else if((model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat")) =="6" && (model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt") == "6")){ //불출&보류 선택되야함
  1929. grd_prepblood.isReadOnly(i, 1) = false;
  1930. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="5"){ // 불출대기 선택되야함
  1931. grd_prepblood.isReadOnly(i, 1) = false;
  1932. }else{ //
  1933. grd_prepblood.isReadOnly(i, 1) = true;
  1934. }
  1935. }else{ // 준비상태 체크할수있음
  1936. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt") == "-" || model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/cmrslt") == ""){
  1937. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/rslt", "5");
  1938. }
  1939. grd_prepblood.isReadOnly(i, 1) = false;
  1940. }
  1941. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="3" ){ // 준비
  1942. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#0000EE"; // 파랑
  1943. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="5" ){ // CM완료
  1944. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#FF00FF"; // 분홍
  1945. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/blodstat") =="6" ){ // 불출
  1946. grd_prepblood.cellStyle("color", i, 1, i, 15) = "#EE0000"; // 빨강
  1947. }
  1948. }
  1949. if(grd_prepblood.rows > 1){
  1950. setRowStyle("grd_prepblood", "1", "3", "blodstat", "equal"); // 혈액상태 준비일때 노란색
  1951. setRowStyle("grd_prepblood", "11","4", "blodstat", "equal"); // 혈액상태 CM일때 연두색
  1952. setRowStyle("grd_prepblood", "3", "5", "blodstat", "equal"); // 혈액상태 불출대기일때 녹색
  1953. setRowStyle("grd_prepblood", "0", "6", "blodstat", "equal"); // 혈액상태 불출일때 붉은색
  1954. }
  1955. grd_prepblood.row = (grd_prepblood.rows-1);
  1956. var gridRow = grd_prepblood.rows;
  1957. grd_prepblood.topRow = gridRow;
  1958. }
  1959. // 준비혈액 내역에 적합콤보 적합 선택시 결과값 셋팅
  1960. function fSetCMRsltFit(){
  1961. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="1"){ // 적합
  1962. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/cs") == "Y"){
  1963. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦-▦-▦-▦ ▦ ▦ "); // 2byte 값 들어가있음 조심하세요
  1964. }else{
  1965. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1966. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ "); // 2byte 값 들어가있음 조심하세요
  1967. }
  1968. }
  1969. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="2"){ // 부적합
  1970. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1971. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦부적합▦ ▦ ▦ ▦ ▦ ");
  1972. }
  1973. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="3"){ // 적합(응급)
  1974. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1975. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦-▦ ▦ ▦ ▦ ▦ ");
  1976. }
  1977. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="4"){ // 준비
  1978. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1979. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ ");
  1980. }
  1981. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="5"){ // 검사중
  1982. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1983. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ ");
  1984. }
  1985. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="6"){ // 보류
  1986. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1987. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ ");
  1988. }
  1989. }else if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rslt")=="7"){ // 최소적합
  1990. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/cs") == "Y"){
  1991. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦-▦ ▦ ▦ ▦ ▦ "); // 2byte 값 들어가있음 조심하세요
  1992. }else{
  1993. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist")=="▦ ▦ ▦ ▦ ▦ ▦ "){ // 다른값들어있으면 안바뀌게
  1994. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist", "▦ ▦ ▦ ▦ ▦ ▦ "); // 2byte 값 들어가있음 조심하세요
  1995. }
  1996. }
  1997. }
  1998. model.setValue("/root/hidden/cmrslt", model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/rsltlist"));
  1999. }
  2000. //보관검체 재출력 - 2009.09.23 김성희 추가 (변경요청번호 : 3335)
  2001. function fGetKeepSpcno(){
  2002. if(model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/keepspcno").getTrim() == ""){
  2003. messageBox("보관검체 등록이 되어있지 않습니다.", "I");
  2004. return;
  2005. }else{
  2006. model.removeNodeset("/root/main/KeepBcnoPrint");
  2007. if(grd_prcplist.row < 1 ){
  2008. messageBox("재출력할 보관검체를 선택하십시오.","I");
  2009. return;
  2010. }
  2011. model.makeValue("root/send/repid" , model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/pid")); //등록번호
  2012. model.makeValue("root/send/rekeepspcno" , model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/keepspcno")); //보관검체번호
  2013. model.makeValue("root/send/rebcno" , model.getValue("/root/main/getblodprcplist["+grd_prcplist.row+"]/keepspcbcno")); //보관검체바코드번호
  2014. submit("TRLBT10906");
  2015. if(getNodesetCount("/root/main/KeepBcnoPrint/printinfo") > 0){
  2016. var prtkind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind");
  2017. if( prtkind == "2" || prtkind == "6" || prtkind == "7"){
  2018. fKeLabel2("/root/main/KeepBcnoPrint/printinfo");
  2019. }else{
  2020. fKeLabel("/root/main/KeepBcnoPrint/printinfo");
  2021. }
  2022. }
  2023. model.removeNodeset("/root/main/KeepBcnoPrint");
  2024. }
  2025. }
  2026. ]]>
  2027. </script>
  2028. </xhtml:head>
  2029. <xhtml:body pagewidth="1200" pageheight="710" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  2030. <group id="group3" scroll="auto" style="left:0px; top:0px; width:1193px; height:695px; ">
  2031. <datagrid id="grd_comment" nodeset="/root/main/getbloodinfo/getpatcmt" caption="등록일자^Comment" colwidth="119, 410" dataheight="23" defaultrows="1" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" colsep="^" style="left:620px; top:259px; width:573px; height:48px; ">
  2032. <col ref="rgstdt" format="yyyy-mm-dd hh:nn"/>
  2033. <col ref="patcmt" type="combo" editmode="input">
  2034. <choices>
  2035. <itemset nodeset="/root/init/LB0122">
  2036. <label ref="nm"/>
  2037. <value ref="nm"/>
  2038. </itemset>
  2039. </choices>
  2040. </col>
  2041. </datagrid>
  2042. <datagrid id="grd_com" nodeset="/root/main/getbloodinfo/getbloodcom" caption="혈액성분^From No^To No^준비수량^comcd^tnsreqacptno^blodbarcd^iryn^prcphopedd" colwidth="198, 110, 120, 80, 0, 0, 0, 0, 0" dataheight="23" defaultrows="1" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" colsep="^" style="left:620px; top:337px; width:573px; height:71px; ">
  2043. <col ref="blodcomnm"/>
  2044. <col ref="fromno"/>
  2045. <col ref="tono"/>
  2046. <col ref="pcnt"/>
  2047. <col ref="blodcomcd"/>
  2048. <col ref="tnsreqacptno"/>
  2049. <col ref="blodbarcd"/>
  2050. <col ref="iryn"/>
  2051. <col ref="prcphopedd"/>
  2052. <script type="javascript" ev:event="onclick">
  2053. <![CDATA[
  2054. if(isDataCell("grd_com")){
  2055. fGetPrepBloodDetllist2(grd_com.row);
  2056. }
  2057. ]]>
  2058. </script>
  2059. </datagrid>
  2060. <group id="group100" scroll="auto" style="left:0px; top:0px; width:617px; height:695px; ">
  2061. <datagrid id="grd_prcplist" nodeset="/root/main/getblodprcplist" caption="등록번호^환자명^처방^Type^Irr^수량^E^보관^처방부서^예약일시^접수시간^reqqnt^성분제제 히든^접수번호^erhidden^barcd^prcpgenrflag^prcpdd^abrnblodyn^kabo^keepspcno^dnorcnt^wbcnt^cstat^mstat^keepspcbcno" colwidth="70, 64, 70, 70, 30, 30, 30, 40, 85, 102, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0" dataheight="23" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" frozencols="4" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" colsep="^" tooltip="true" style="left:0px; top:25px; width:615px; height:503px; ">
  2062. <col ref="pid"/>
  2063. <col ref="patnm"/>
  2064. <col ref="tclsscrnnm"/>
  2065. <col ref="abo"/>
  2066. <col ref="iryn" type="output" style="font-weight:bold; color:#ff0000; text-align:center; "/>
  2067. <col ref="no" style="text-align:center; "/>
  2068. <col ref="erprcpflag" type="checkbox" checkvalue="Y,N" style="font-weight:bold; color:#ff0000; "/>
  2069. <col ref="keep"/>
  2070. <col ref="orddeptnm"/>
  2071. <col ref="prcphopedd" format="yyyy-mm-dd hh:nn"/>
  2072. <col ref="tnsreqacptdt" format="yyyy-mm-dd hh:nn:ss"/>
  2073. <col ref="h"/>
  2074. <col ref="blodcomcd"/>
  2075. <col ref="tnsreqacptno"/>
  2076. <col ref="prcperflag"/>
  2077. <col ref="blodbarcd"/>
  2078. <col ref="prcpgenrflag"/>
  2079. <col ref="prcpdd"/>
  2080. <col ref="abrnblodyn"/>
  2081. <col ref="kabo"/>
  2082. <col ref="keepspcno"/>
  2083. <col ref="dnorcnt"/>
  2084. <col ref="wbcnt"/>
  2085. <col ref="cstat"/>
  2086. <col ref="mstat"/>
  2087. <col ref="keepspcbcno"/>
  2088. <script type="javascript" ev:event="onclick">
  2089. <![CDATA[
  2090. if(grd_prcplist.isCell(event.target) && grd_prcplist.row >= grd_prcplist.fixedRows){
  2091. if(grd_prcplist.col ==7){
  2092. // 응급 체크시 lis.lbthtnsr erprcpflag 변경
  2093. fSetErprcpflag();
  2094. }else{
  2095. fGetPrcpList();
  2096. }
  2097. }
  2098. //클릭시 예약일시 변경 숨기기
  2099. grp_rsrv.visible = false;
  2100. ]]>
  2101. </script>
  2102. <script type="javascript" ev:event="onmousedown">
  2103. <![CDATA[
  2104. //메뉴띄우기
  2105. fGetMouseDown();
  2106. ]]>
  2107. </script>
  2108. <script type="javascript" ev:event="DOMFocusOut">
  2109. <![CDATA[
  2110. window.setPopupMenu(false);
  2111. ]]>
  2112. </script>
  2113. <script type="javascript" ev:event="onmouseout">
  2114. <![CDATA[
  2115. window.setPopupMenu(false);
  2116. ]]>
  2117. </script>
  2118. <script type="javascript" ev:event="onaftersort">
  2119. <![CDATA[
  2120. grd_prcplist.gridToInstance();
  2121. ]]>
  2122. </script>
  2123. </datagrid>
  2124. <caption id="caption8" style="left:461px; top:529px; width:35px; height:20px; text-align:center; border-style:solid; ">접수</caption>
  2125. <caption id="caption16" style="left:498px; top:529px; width:60px; height:20px; color:#0000ff; text-align:center; border-style:solid; ">준비완료</caption>
  2126. <caption id="caption19" style="left:560px; top:529px; width:55px; height:20px; color:#03830c; text-align:center; border-style:solid; ">일부준비</caption>
  2127. <select id="checkbox1" ref="/root/hidden/ref/cmend" visibility="hidden" overflow="visible" appearance="full" style="left:175px; top:535px; width:100px; height:20px; border-style:none; ">
  2128. <choices>
  2129. <item>
  2130. <label>cm완료포함</label>
  2131. <value>1</value>
  2132. </item>
  2133. </choices>
  2134. </select>
  2135. </group>
  2136. <datagrid id="grd_detllist" nodeset="/root/main/getbloodinfo/getblooddetllist" caption="처방일자^혈액성분^Type^I^처방수량^준비수량^불출수량^혈액성분코드^blodbarcd^tnsreqacptno" colwidth="100, 100, 75, 30, 90, 90, 90, 0, 0, 0" dataheight="23" defaultrows="1" ellipsis="true" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" colsep="^" style="left:0px; top:556px; width:615px; height:138px; ">
  2137. <col ref="prcphopedd" format="yyyy-mm-dd"/>
  2138. <col ref="blodcomnm"/>
  2139. <col ref="aborh"/>
  2140. <col ref="iryn" type="output" style="font-weight:bold; text-align:center; "/>
  2141. <col ref="reqqty" style="text-align:center; "/>
  2142. <col ref="cno" style="text-align:center; "/>
  2143. <col ref="dno" style="text-align:center; "/>
  2144. <col ref="blodcomcd"/>
  2145. <col ref="blodbarcd"/>
  2146. <col ref="tnsreqacptno"/>
  2147. <script type="javascript" ev:event="onclick">
  2148. <![CDATA[
  2149. // 수혈내역 클릭하면 준비혈액내역 조회
  2150. //datagrid click or dbclick 시점에 현재 click target이 data 영역인지 check
  2151. if(isDataCell("grd_detllist")){
  2152. fGetPrepBloodDetllist(grd_detllist.row);
  2153. }
  2154. ]]>
  2155. </script>
  2156. <script type="javascript" ev:event="onaftersort">
  2157. <![CDATA[
  2158. grd_detllist.gridToInstance();
  2159. ]]>
  2160. </script>
  2161. </datagrid>
  2162. <datagrid id="grd_prepblood" nodeset="/root/main/getbloodinfo/blod/getprepbloodlist" caption="^No^혈액번호^혈액성분^검사일시^검사자^적합^CS^혈액형^Comment^I^준비일자^불출일자^성분제제코드^blodbarcd^blodstat^pid^tnsreqacptno^prcpblodbarcd^prcpblodcomcd^testpsnid^tnsreqseq^caption1^rsltlist^cmrslt" colwidth="23, 50, 80, 98, 105, 50, 65, 40, 63, 60, 30, 74, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0" dataheight="23" defaultrows="1" ellipsis="true" explorerbar="sortshow" frozencols="4" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" colsep="^" tooltip="true" style="left:620px; top:438px; width:573px; height:256px; ">
  2163. <col ref="chk" type="checkbox" checkvalue="Y,N"/>
  2164. <col ref="pno"/>
  2165. <col ref="blodno"/>
  2166. <col ref="blodcomnm"/>
  2167. <col ref="testdt" format="yyyy-mm-dd hh:mm"/>
  2168. <col ref="testid" style="text-align:center; "/>
  2169. <col ref="rslt" type="combo">
  2170. <choices>
  2171. <item>
  2172. <label>적합</label>
  2173. <value>1</value>
  2174. </item>
  2175. <item>
  2176. <label>부적합</label>
  2177. <value>2</value>
  2178. </item>
  2179. <item>
  2180. <label>적합(응급)</label>
  2181. <value>3</value>
  2182. </item>
  2183. <item>
  2184. <label>준비</label>
  2185. <value>4</value>
  2186. </item>
  2187. <item>
  2188. <label>검사중</label>
  2189. <value>5</value>
  2190. </item>
  2191. <item>
  2192. <label>보류</label>
  2193. <value>6</value>
  2194. </item>
  2195. <item>
  2196. <label>최소적합</label>
  2197. <value>7</value>
  2198. </item>
  2199. </choices>
  2200. </col>
  2201. <col ref="cs" type="checkbox" checkvalue="Y,N" disabled="true"/>
  2202. <col ref="abo"/>
  2203. <col ref="blodcmt" type="input"/>
  2204. <col ref="iryn" type="output" style="font-weight:bold; text-align:center; "/>
  2205. <col ref="prepdt" format="yyyy-mm-dd"/>
  2206. <col ref="delivedt" format="yyyy-mm-dd"/>
  2207. <col ref="blodcomcd"/>
  2208. <col ref="blodbarcd"/>
  2209. <col ref="blodstat"/>
  2210. <col ref="pid"/>
  2211. <col ref="tnsreqacptno"/>
  2212. <col ref="prcpblodbarcd"/>
  2213. <col ref="prcpblodcomcd"/>
  2214. <col ref="testpsnid"/>
  2215. <col ref="tnsreqseq"/>
  2216. <col ref="blodcomstat"/>
  2217. <col ref="rsltlist"/>
  2218. <col ref="cmrslt"/>
  2219. <script type="javascript" ev:event="onaftersort">
  2220. <![CDATA[
  2221. grd_prepblood.gridToInstance();
  2222. ]]>
  2223. </script>
  2224. <script type="javascript" ev:event="ondblclick">
  2225. <![CDATA[
  2226. if(grd_prepblood.isCell(event.target) && grd_prepblood.row >= grd_prepblood.fixedRows){
  2227. if(grd_prepblood.col == grd_prepblood.colRef("cs")){
  2228. fSetCMRslt();
  2229. }
  2230. }
  2231. ]]>
  2232. </script>
  2233. <script type="javascript" ev:event="xforms-value-changed">
  2234. <![CDATA[
  2235. if(grd_prepblood.col == 1 ){
  2236. for(i=0; i<grd_prepblood.rows; i++){
  2237. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/chk") =="Y"){ // 선택된것
  2238. grd_prepblood.rowStatus(i) = 2;
  2239. }else{
  2240. grd_prepblood.rowStatus(i) = 0;
  2241. }
  2242. }
  2243. }else if(grd_prepblood.col == grd_prepblood.colRef("rslt")){
  2244. model.setValue("/root/main/getbloodinfo/blod/getprepbloodlist["+grd_prepblood.row+"]/chk", "Y");
  2245. }
  2246. ]]>
  2247. </script>
  2248. <script type="javascript" ev:event="xforms-select">
  2249. <![CDATA[
  2250. //alert("col= " + grd_prepblood.col + " row= " + grd_prepblood.row);
  2251. /*if(grd_prepblood.col == "1" && grd_prepblood.row =="0"){
  2252. alert("Y");
  2253. }else{
  2254. alert("N");
  2255. }
  2256. */
  2257. if(grd_prepblood.col != 1){
  2258. fSetCMRsltFit();
  2259. }
  2260. for(i=0; i<grd_prepblood.rows; i++){
  2261. if(model.getValue("/root/main/getbloodinfo/blod/getprepbloodlist["+i+"]/chk")=="Y"){
  2262. grd_prepblood.rowStatus(i) = 2;
  2263. }
  2264. }
  2265. ]]>
  2266. </script>
  2267. </datagrid>
  2268. <caption id="caption2" class="tit_2" style="left:5px; top:5px; width:141px; height:13px; ">혈액은행 처방 목록</caption>
  2269. <line id="line2" class="line_1" style="x1:620px; y1:132px; x2:1193px; y2:132px; "/>
  2270. <line id="line1" class="line_1" style="x1:0px; y1:22px; x2:615px; y2:22px; "/>
  2271. <line id="line6" class="line_3" style="x1:620px; y1:228px; x2:1193px; y2:228px; "/>
  2272. <caption id="caption9" class="tit_2" style="left:625px; top:5px; width:80px; height:13px; ">환자정보</caption>
  2273. <caption id="caption13" class="tit_2" style="left:625px; top:239px; width:139px; height:13px; ">환자별 Comment</caption>
  2274. <line id="line8" class="line_1" style="x1:620px; y1:254px; x2:1193px; y2:254px; "/>
  2275. <caption id="caption14" class="tit_2" style="left:5px; top:536px; width:91px; height:13px; ">수혈 내역</caption>
  2276. <line id="line9" class="line_1" style="x1:0px; y1:551px; x2:615px; y2:551px; "/>
  2277. <caption id="caption15" class="tit_2" style="left:625px; top:418px; width:121px; height:13px; ">준비 혈액 내역</caption>
  2278. <line id="line10" class="line_1" style="x1:620px; y1:433px; x2:1193px; y2:433px; "/>
  2279. <caption id="caption17" class="tit_2" style="left:625px; top:117px; width:100px; height:13px; ">환자 혈액정보</caption>
  2280. <line id="line16" class="line_1" style="x1:620px; y1:332px; x2:1193px; y2:332px; "/>
  2281. <caption id="caption7" class="tit_2" style="left:625px; top:317px; width:91px; height:13px; ">혈액성분</caption>
  2282. <button id="btn_addrow" class="btn2_letter3" style="left:1038px; top:234px; width:53px; height:19px; ">
  2283. <caption>행추가</caption>
  2284. <script type="javascript" ev:event="DOMActivate">
  2285. <![CDATA[
  2286. fSetCmtAdd();
  2287. ]]>
  2288. </script>
  2289. </button>
  2290. <button id="button1" class="btn2_letter3" style="left:1094px; top:234px; width:53px; height:19px; ">
  2291. <caption>행삭제</caption>
  2292. <script type="javascript" ev:event="DOMActivate">
  2293. <![CDATA[
  2294. fCmtDel();
  2295. ]]>
  2296. </script>
  2297. </button>
  2298. <button id="btn_save" class="btn2_letter2" style="left:1150px; top:234px; width:42px; height:19px; ">
  2299. <caption>저장</caption>
  2300. <script type="javascript" ev:event="DOMActivate">
  2301. <![CDATA[
  2302. fCmtSave();
  2303. ]]>
  2304. </script>
  2305. </button>
  2306. <output id="opt_pid" ref="/root/main/getbloodinfo/getpatinfo/pid" class="font_pid" style="left:620px; top:20px; width:300px; height:65px; text-align:left; "/>
  2307. <output id="opt_patnm" ref="/root/main/getbloodinfo/getpatinfo/patnm" class="font_pid" style="left:922px; top:20px; width:270px; height:65px; font-size:34ptpt; text-align:left; "/>
  2308. <output id="opt_abo" ref="/root/main/getbloodinfo/getpatinfo/aborh" class="font_ab" style="left:620px; top:157px; width:150px; height:75px; font-size:44pt; word-wrap:word; "/>
  2309. <line id="line3" class="line_2" style="x1:920px; y1:24px; x2:920px; y2:81px; "/>
  2310. <output id="output2" ref="/root/main/getbloodinfo/getpatinfo/reqqnt" visibility="hidden" style="left:1080px; top:5px; width:30px; height:19px; "/>
  2311. <output id="output3" ref="/root/main/getbloodinfo/getpatinfo/blodcomcd" visibility="hidden" style="left:1125px; top:5px; width:30px; height:19px; "/>
  2312. <output id="output4" ref="/root/main/getbloodinfo/getprepcnt/prepcnt" visibility="hidden" style="left:920px; top:420px; width:50px; height:19px; "/>
  2313. <button id="button2" class="btn2_letter3" style="left:1140px; top:412px; width:53px; height:19px; ">
  2314. <caption>재출력</caption>
  2315. <script type="javascript" ev:event="DOMActivate">
  2316. <![CDATA[
  2317. //fExeBarcdPrnt();
  2318. fExeBarcdPrnt("reprnt");
  2319. ]]>
  2320. </script>
  2321. </button>
  2322. <!--<object id="CommAX" visibility="hidden" clsid="{35cc9cfa-e6f8-4b22-b6d2-fe7cd108f943}" style="left:165px; top:275px; width:60px; height:35px; "/>-->
  2323. <datagrid id="grd_lastrslt" nodeset="/root/main/getbloodinfo/getblodinforslt/row" visibility="visible" caption="a^b^c^d^e^f^g" colwidth="0, 0, 0, 0, 0, 0, 0" dataheight="23" defaultrows="2" ellipsis="true" mergecellsfixedrows="bycolrec" selectionmode="free" rowsep="|" colsep="^" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:773px; top:137px; width:420px; height:89px; ">
  2324. <col ref="a1"/>
  2325. <col ref="a2"/>
  2326. <col ref="a3"/>
  2327. <col ref="a4"/>
  2328. <col ref="a5"/>
  2329. <col ref="a6"/>
  2330. <col ref="a7"/>
  2331. <script type="javascript" ev:event="ondblclick">
  2332. <![CDATA[
  2333. if(grd_lastrslt.isCell(event.target) && grd_lastrslt.row >= grd_lastrslt.fixedRows){
  2334. fGetBlodInfoHistory();
  2335. }
  2336. ]]>
  2337. </script>
  2338. </datagrid>
  2339. <group id="grp_history" visibility="hidden" style="left:980px; top:135px; width:213px; height:189px; border-color:#5abaff; border-width:1px; border-style:solid; ">
  2340. <datagrid id="datagrid1" nodeset="/root/main/getbloodinfo/blodrslthistory" caption="일자^결과" colwidth="100, 88" mergecellsfixedrows="bycolrec" rowsep="|" colsep="^" style="left:0px; top:0px; width:211px; height:163px; ">
  2341. <col ref="rsltdt" format="yyyy-mm-dd"/>
  2342. <col ref="rslt"/>
  2343. </datagrid>
  2344. <button id="button3" class="btn2_letter2" style="left:168px; top:166px; width:42px; height:19px; ">
  2345. <caption>닫기</caption>
  2346. <script type="javascript" ev:event="DOMActivate">
  2347. <![CDATA[
  2348. grp_history.visible = false;
  2349. ]]>
  2350. </script>
  2351. </button>
  2352. </group>
  2353. <button id="button4" class="btn2_letter5" visibility="hidden" style="left:805px; top:0px; width:75px; height:19px; ">
  2354. <caption>탑정보(숨)</caption>
  2355. <script type="javascript" ev:event="DOMActivate">
  2356. <![CDATA[
  2357. fGetTopInfo();
  2358. ]]>
  2359. </script>
  2360. </button>
  2361. <select id="checkbox2" ref="/root/hidden/cancel/cancelgbn" overflow="visible" appearance="full" style="left:958px; top:414px; width:70px; height:15px; border-style:none; ">
  2362. <choices>
  2363. <item>
  2364. <label>접수취소</label>
  2365. <value>1</value>
  2366. </item>
  2367. </choices>
  2368. </select>
  2369. <button id="button5" class="btn2_letter2" style="left:1026px; top:412px; width:42px; height:19px; ">
  2370. <caption>취소</caption>
  2371. <script type="javascript" ev:event="DOMActivate">
  2372. <![CDATA[
  2373. fPrepCancel();
  2374. ]]>
  2375. </script>
  2376. </button>
  2377. <button id="btn_nurse2" class="btn2_letter7" style="left:450px; top:0px; width:97px; height:19px; ">
  2378. <caption>특수 간호부전송</caption>
  2379. <script type="javascript" ev:event="DOMActivate">
  2380. <![CDATA[
  2381. open("SPLBT90200_특수혈액간호부전송.xrw");
  2382. ]]>
  2383. </script>
  2384. </button>
  2385. <button id="button6" class="btn2_letter4" style="left:550px; top:0px; width:64px; height:19px; ">
  2386. <caption>접수취소</caption>
  2387. <script type="javascript" ev:event="DOMActivate">
  2388. <![CDATA[
  2389. // 처방목록에서 준비 and 접수 취소
  2390. fExeAcptPrepCancel();
  2391. ]]>
  2392. </script>
  2393. </button>
  2394. <select id="checkbox3" ref="/root/hidden/cancel/prepLog" visibility="hidden" overflow="visible" appearance="full" style="left:750px; top:5px; width:50px; height:15px; border-style:none; ">
  2395. <choices>
  2396. <item>
  2397. <label>신청</label>
  2398. <value>1</value>
  2399. </item>
  2400. </choices>
  2401. </select>
  2402. <group id="grp_rsrv" visibility="hidden" style="left:140px; top:0px; width:300px; height:20px; ">
  2403. <input id="ipt_rsrvtm" ref="/root/hidden/rsrvinfo/rsrvtm" class="input_search" format="hh:nn" style="left:169px; top:1px; width:35px; height:19px; "/>
  2404. <input id="ipt_rsrvdd" ref="/root/hidden/rsrvinfo/rsrvdd" class="input_s_essential" inputtype="date" style="left:79px; top:1px; width:91px; height:19px; "/>
  2405. <caption id="caption3" class="cell_1" style="left:3px; top:0px; width:72px; height:20px; ">예약일시 :</caption>
  2406. <button id="button9" class="btn2_letter2" style="left:255px; top:0px; width:42px; height:19px; ">
  2407. <caption>닫기</caption>
  2408. <script type="javascript" ev:event="DOMActivate">
  2409. <![CDATA[
  2410. grp_rsrv.visible = false;
  2411. ]]>
  2412. </script>
  2413. </button>
  2414. <button id="button10" class="btn2_letter2" style="left:210px; top:0px; width:42px; height:19px; ">
  2415. <caption>변경</caption>
  2416. <script type="javascript" ev:event="DOMActivate">
  2417. <![CDATA[
  2418. fSetTnsRsrvDT();
  2419. ]]>
  2420. </script>
  2421. </button>
  2422. </group>
  2423. <button id="button7" class="btn2_letter4" style="left:1073px; top:412px; width:64px; height:19px; ">
  2424. <caption>CM입력</caption>
  2425. <script type="javascript" ev:event="DOMActivate">
  2426. <![CDATA[
  2427. fExeCMRslt();
  2428. ]]>
  2429. </script>
  2430. </button>
  2431. <caption id="caption4" style="left:735px; top:412px; width:55px; height:20px; color:#0000EE; text-align:center; background-color:#ffe79d; border-width:1px; border-style:solid; ">혈액준비</caption>
  2432. <caption id="caption6" style="left:793px; top:412px; width:55px; height:20px; color:#ff00ff; text-align:center; background-color:#7BE6B7; border-width:1px; border-style:solid; ">CM입력</caption>
  2433. <caption id="caption20" style="left:851px; top:412px; width:35px; height:20px; color:#ee0000; text-align:center; background-color:#fcd2c1; border-width:1px; border-style:solid; ">불출</caption>
  2434. <caption id="caption12" class="cell_1" style="left:620px; top:137px; width:150px; height:23px; vertical-align:middle; ">환자혈액형</caption>
  2435. <line id="line7" class="line_1" style="x1:620px; y1:20px; x2:1193px; y2:20px; "/>
  2436. <output id="output11" class="output_fix" style="left:1108px; top:85px; width:85px; height:19px; "/>
  2437. <output id="output13" class="output_fix" style="left:905px; top:85px; width:60px; height:19px; "/>
  2438. <caption id="caption10" class="cell_1" style="left:1069px; top:84px; width:35px; height:23px; vertical-align:middle; ">일시</caption>
  2439. <caption id="caption5" class="cell_1" style="left:824px; top:84px; width:40px; height:23px; vertical-align:middle; ">BMT</caption>
  2440. <caption id="caption11" class="cell_1" style="left:968px; top:84px; width:35px; height:23px; vertical-align:middle; ">Do</caption>
  2441. <output id="opt_regno" ref="/root/main/getbloodinfo/getpatinfo/rstno" class="output_fix" style="left:708px; top:85px; width:110px; height:19px; "/>
  2442. <caption id="caption18" class="cell_1" style="left:620px; top:84px; width:85px; height:23px; vertical-align:middle; ">주민등록번호</caption>
  2443. <line id="line5" class="line_2" style="x1:620px; y1:81px; x2:1193px; y2:81px; "/>
  2444. <caption id="caption21" class="cell_1" style="left:867px; top:84px; width:35px; height:23px; vertical-align:middle; ">Pt</caption>
  2445. <output id="output1" class="output_fix" style="left:1006px; top:85px; width:60px; height:19px; "/>
  2446. <line id="line12" class="line_3" style="x1:620px; y1:106px; x2:1193px; y2:106px; "/>
  2447. </group>
  2448. <script type="javascript" ev:event="onkeypress">
  2449. <![CDATA[
  2450. fKeyEvent();
  2451. ]]>
  2452. </script>
  2453. </xhtml:body>
  2454. </xhtml:html>