SMLPR01100_검사결과일괄확인.xrw 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLPR01100_검사결과일괄확인.xrw
  4. * 설 명 : 검사결과일괄확인
  5. * 설 계 자 :
  6. * 작 성 자 : 유동철(ACK)
  7. * 작 성 일 : 2007.06.03
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <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">
  13. <xhtml:head>
  14. <xhtml:title>검사결과 일괄확인</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <rsltptno>
  20. <rsltptnolist>
  21. <choi/>
  22. <instcd/>
  23. <ptno/>
  24. <dispptno/>
  25. <pid/>
  26. <patnm/>
  27. <readdrlist/>
  28. <readdrid1/>
  29. <readdrid2/>
  30. <readdrid3/>
  31. <readdrid4/>
  32. <rsltrgstdd/>
  33. <rsltrgstno/>
  34. <doctrgstdd/>
  35. <doctrgstno/>
  36. <workflagcd/>
  37. <prcpgenrflag/>
  38. <extrpartcnts/>
  39. <extrmthdcnts/>
  40. <diagcd/>
  41. <orddd/>
  42. <cretno/>
  43. <orddeptcd/>
  44. <orddrid/>
  45. <bizflagcd/>
  46. <addrsltdg/>
  47. <mpphonno/>
  48. <diagcnts/>
  49. <addreadrslt/>
  50. <relation/>
  51. <relatptno/>
  52. <localdd/>
  53. <localtm/>
  54. <rsltkindflag/>
  55. <delayresncd/>
  56. </rsltptnolist>
  57. </rsltptno>
  58. <testrslt>
  59. <testrsltinfo>
  60. <reptrslt/>
  61. <level/>
  62. <judgmark/>
  63. <tkdt/>
  64. <rsltdd/>
  65. <suppdept/>
  66. <pacsno/>
  67. <spcno/>
  68. </testrsltinfo>
  69. <imginfo/>
  70. </testrslt>
  71. </main>
  72. <send/>
  73. <init>
  74. <hospenv>
  75. <hospenvinfo>
  76. <instcd/>
  77. <lendrtnterm/>
  78. <recvqualmthdcd/>
  79. <plgydeptcd/>
  80. <plgyteamcd/>
  81. <doctjobgradcd/>
  82. <teamjobgradcd/>
  83. </hospenvinfo>
  84. </hospenv>
  85. <sysdt>
  86. <sysdtinfo>
  87. <sysdd/>
  88. <systm/>
  89. </sysdtinfo>
  90. </sysdt>
  91. <userinfo>
  92. <userinfolist>
  93. <userid/>
  94. <usernm/>
  95. <jobkindcd/>
  96. </userinfolist>
  97. </userinfo>
  98. <resncd>
  99. <resncdlist>
  100. <instcd/>
  101. <baseflagcd/>
  102. <resncd/>
  103. <resncnts/>
  104. </resncdlist>
  105. </resncd>
  106. <readid>
  107. <readdrnm1/>
  108. <readdrid1/>
  109. <readdrnm2/>
  110. <readdrid2/>
  111. <readdrnm3/>
  112. <readdrid3/>
  113. <readdrnm4/>
  114. <readdrid4/>
  115. </readid>
  116. <testinfo>
  117. <testitemlist>
  118. <instcd/>
  119. <dispseqno/>
  120. <testcd/>
  121. <testengnm/>
  122. <testengabbr/>
  123. <testhngnm/>
  124. <testhngabbr/>
  125. <basepartcd/>
  126. <basepartnm/>
  127. <detlpartcd/>
  128. <detlpartnm/>
  129. <singletest_cnt/>
  130. </testitemlist>
  131. </testinfo>
  132. <testnmlist/>
  133. <prersltflag>1</prersltflag>
  134. <delayread>
  135. <delayreadtime>
  136. <ptno/>
  137. </delayreadtime>
  138. </delayread>
  139. <delayresn>
  140. <resncdlist>
  141. <instcd/>
  142. </resncdlist>
  143. </delayresn>
  144. <diagwait/>
  145. </init>
  146. <hidden>
  147. <rsltfromdd/>
  148. <rslttodd/>
  149. <userdeptcd/>
  150. <workflagcd/>
  151. <readdrid/>
  152. <popupmenu>
  153. <item>
  154. <name>검사결과등록</name>
  155. <func>fExeRslt</func>
  156. </item>
  157. <item>
  158. <name>HPV결과등록</name>
  159. <func>fExeHPVRslt</func>
  160. </item>
  161. </popupmenu>
  162. </hidden>
  163. </root>
  164. </instance>
  165. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  166. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  167. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  168. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  169. <script type="javascript" src="../../../lis/commonweb/js/LPZ001.js"/>
  170. <script type="javascript" src="../../../emr/carecomweb/js/ENRSignEngine.js"/>
  171. <script type="javascript" ev:event="xforms-ready">
  172. <![CDATA[
  173. fExeInitialize();
  174. ]]>
  175. </script>
  176. <submission id="TRLPZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/hospenv/hospenvinfo"/>
  177. <submission id="TRLPZ00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/sysdt/sysdtinfo"/>
  178. <submission id="TRLPZ00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/resncd/resncdlist"/>
  179. <submission id="TRLPZ00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/userinfo/userinfolist"/>
  180. <submission id="TRLPC00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/testinfo/testitemlist"/>
  181. <submission id="TRLPR01101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/rsltptno/rsltptnolist"/>
  182. <submission id="TRLPZ00107" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testrslt/testrsltinfo"/>
  183. <submission id="TRLPZ00112" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testrslt/patbasicinfo"/>
  184. <submission id="TXLPR01101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/message"/>
  185. <submission id="TXLPR01102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/message"/>
  186. <submission id="TRLPZ00113" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testrslt/testrsltinfo"/>
  187. <submission id="TRLPZ00115" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/testrslt/imginfo"/>
  188. <submission id="TRLPR00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/delayread/delayreadtime"/>
  189. <submission id="TXLPR00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/message"/>
  190. </model>
  191. <script type="javascript">
  192. <![CDATA[
  193. var sWorkflagList = "" // 작업구분 체크 구분을 위해 사용
  194. var gRowSize = 0; // 병리번호 목록 확장 구분
  195. /* @group : 검사결과일괄확인
  196. * @ver : 2007.06.03 (CMCDEV-0001)
  197. * @by : 유동철
  198. * @-----------------------------------
  199. * @type : function
  200. * @access : public
  201. * @desc : 화면 초기화 처리 함수
  202. */
  203. function fExeInitialize() {
  204. var iNodeCnt = -1;
  205. var sWorkFlagCd = "";
  206. var sCurDate = "";
  207. var sAcptFromDD = "";
  208. //------------------------------------------------------
  209. model.removeNodeset("/root/main/rsltptno/rsltptnolist");
  210. //-----------------------
  211. // 병원환경설정 정보 조회
  212. model.removeNodeset("/root/send");
  213. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  214. submit("TRLPZ00101", false);
  215. //---------------------------------------------------------
  216. // 병원환경정보를 취득하여 병리과와 병리팀 코드를 편집한다.
  217. lpzfUserDeptCd("/root/init/hospenv/hospenvinfo", "/root/hidden");
  218. //----------------
  219. // 시스템일시 조회
  220. submit("TRLPZ00102", false);
  221. //----------------------------------------------------------------------------------
  222. model.makeValue("/root/send/userdeptcd", model.getValue("/root/hidden/userdeptcd"));
  223. model.makeValue("/root/send/doctjobgradcd", model.getValue("/root/init/hospenv/hospenvinfo/doctjobgradcd"));
  224. model.makeValue("/root/send/teamjobgradcd", model.getValue("/root/init/hospenv/hospenvinfo/teamjobgradcd"));
  225. submit("TRLPZ00105", false);
  226. //---------------------------------
  227. // 판독의사 전체조회용 Instance생성
  228. iNodeCnt = Number(getNodesetCount("/root/init/userinfo/userinfolist")) + 1;
  229. model.makeValue("/root/init/userinfo/userinfolist[" + iNodeCnt + "]/userid", "99");
  230. model.makeValue("/root/init/userinfo/userinfolist[" + iNodeCnt + "]/usernm", "미지정");
  231. model.makeValue("/root/init/userinfo/userinfolist[" + iNodeCnt + "]/jobkindcd", "1");
  232. //---------------------------------
  233. // 판독의사 전체조회용 Instance생성
  234. iNodeCnt = Number(getNodesetCount("/root/init/userinfo/userinfolist")) + 1;
  235. model.makeValue("/root/init/userinfo/userinfolist[" + iNodeCnt + "]/userid", "00");
  236. model.makeValue("/root/init/userinfo/userinfolist[" + iNodeCnt + "]/usernm", "전체");
  237. model.makeValue("/root/init/userinfo/userinfolist[" + iNodeCnt + "]/jobkindcd", "1");
  238. //--------------
  239. // 지연사유 조회
  240. model.removeNodeset("/root/init/delayresn/resncdlist");
  241. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  242. model.makeValue("/root/send/baseflagcd", "'31'");
  243. submit("TRLPZ00103", false);
  244. model.copyNode("/root/init/delayresn", "/root/init/resncd");
  245. //---------------
  246. // 작업구분 조회
  247. model.removeNodeset("/root/init/resncd/resncdlist");
  248. model.makeValue("/root/send/baseflagcd", "'83'");
  249. submit("TRLPZ00103");
  250. //-----------------------
  251. // 미표시 작업구분은 삭제
  252. model.removeNodeset("/root/init/resncd/resncdlist[resncd='1000']"); // 해당없음
  253. model.removeNodeset("/root/init/resncd/resncdlist[resncd='1011']"); // 기록실
  254. //model.removeNodeset("/root/init/resncd/resncdlist[resncd='ZZZZ']"); // 전체
  255. /*
  256. iNodeCnt = Number(getNodesetCount("/root/init/resncd/resncdlist"));
  257. model.makeValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/instcd", getUserInfo("dutplceinstcd"));
  258. model.makeValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/baseflagcd", "83");
  259. model.makeValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/resncd", "9999");
  260. model.makeValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/resncnts", "추가결과");
  261. */
  262. iNodeCnt = Number(getNodesetCount("/root/init/resncd/resncdlist"));
  263. var nodelist = instance1.selectNodes("/root/init/resncd/resncdlist");
  264. var newNode = instance1.createNode("element", "resncdlist", "");
  265. var childnode1 = instance1.createNode("element", "choi", "");
  266. var childnode2 = instance1.createNode("element", "instcd", "");
  267. var childnode3 = instance1.createNode("element", "baseflagcd", "");
  268. var childnode4 = instance1.createNode("element", "resncd", "");
  269. var childnode5 = instance1.createNode("element", "resncnts", "");
  270. newNode.appendChild(childnode1);
  271. newNode.appendChild(childnode2);
  272. newNode.appendChild(childnode3);
  273. newNode.appendChild(childnode4);
  274. newNode.appendChild(childnode5);
  275. if (nodelist.length > 0) {
  276. var currNode = root.init.resncd.insertBefore(newNode, nodelist.item(iNodeCnt-1));
  277. model.setValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/instcd", getUserInfo("dutplceinstcd"));
  278. model.setValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/baseflagcd", "83");
  279. model.setValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/resncd", "9999");
  280. model.setValue("/root/init/resncd/resncdlist["+iNodeCnt+"]/resncnts", "추가결과");
  281. }
  282. chk_workflagcd.attribute("cellspacing") = 22;
  283. iNodeCnt = Number(getNodesetCount("/root/init/resncd/resncdlist"));
  284. //---------------
  285. sWorkFlagCd = "";
  286. //default 전체 체크
  287. for (var iNo=1; iNo <= iNodeCnt; iNo++) {
  288. switch (model.getValue("/root/init/resncd/resncdlist["+iNo+"]/resncd")) {
  289. //case "1003" :
  290. //case "ZZZZ" :
  291. // break;
  292. default : sWorkFlagCd += model.getValue("/root/init/resncd/resncdlist["+iNo+"]/resncd") + " ";
  293. break;
  294. }
  295. }
  296. model.makeValue("/root/hidden/workflagcd", sWorkFlagCd);
  297. //현재 선택된 작업 구분 저장.
  298. sWorkflagList = model.getValue("/root/hidden/workflagcd").getTrim();
  299. // 현재일자 - 30일.
  300. sCurDate = model.getValue("/root/init/sysdt/sysdtinfo/sysdd");
  301. sAcptFromDD = sCurDate.toDate().getAddDate(-30,"D").getDateFormat();
  302. //------------
  303. // 초기값 설정
  304. model.makeValue("/root/hidden/rsltfromdd", sAcptFromDD); // 결과시작일자
  305. model.makeValue("/root/hidden/rslttodd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd")); // 결과종료일자
  306. //model.makeValue("/root/init/readid/readdrid1", getUserInfo("userid"));
  307. model.makeValue("/root/init/readid/readdrid2", "00");
  308. model.makeValue("/root/init/readid/readdrid3", "00");
  309. model.makeValue("/root/init/readid/readdrid4", "00");
  310. model.makeValue("/root/init/testnmlist", "");
  311. model.makeValue("/root/init/testcdlist", "");
  312. //---------------------------------------------
  313. grd_rsltptnolist.fixedcellcheckbox(0,1) = true;
  314. grd_rsltptnolist.colHidden(25) = true;
  315. //----------------------------
  316. // 의사가 아닌경우 조회만 가능
  317. if ( !lpzfGetDoctorCheck("/root/init/hospenv/hospenvinfo/doctjobgradcd", getUserInfo("jobkindcd")) ) {
  318. //if (model.getValue("/root/init/hospenv/hospenvinfo/doctjobgradcd") != getUserInfo("jobkindcd")) {
  319. model.makeValue("/root/hidden/readdrid", "00");
  320. model.makeValue("/root/init/readid/readdrid1", "00");
  321. cmb_readdr.disabled = false;
  322. btn_lastdiag.disabled = true;
  323. } else {
  324. model.makeValue("/root/hidden/readdrid", getUserInfo("userid"));
  325. model.makeValue("/root/init/readid/readdrid1", getUserInfo("userid"));
  326. cmb_readdr.disabled = false;
  327. btn_lastdiag.disabled = false;
  328. }
  329. //-----------------------------------------
  330. model.makeValue("/root/init/diagwait", ""); // 진단대기
  331. //--------------
  332. fGetTestCdList();
  333. //--------------
  334. fExeEpandGrid("1");
  335. model.refresh();
  336. }
  337. /* @group : 검사결과일괄확인
  338. * @ver : 2007.06.03 (CMCDEV-0001)
  339. * @by : 유동철
  340. * @-----------------------------------
  341. * @type : function
  342. * @access : public
  343. * @desc : 세포 병리번호 목록 조회 처리 함수
  344. */
  345. function fGetRsltPtNoList() {
  346. var re = / /g; // i:1회실행, g:모두실행, gi:전역실행(대소문자 안가림)
  347. var sWorkFlagCd = model.getValue("/root/hidden/workflagcd");
  348. var sNode = "/root/main/rsltptno/rsltptnolist";
  349. //------------------------------------------------
  350. // Regular표현식을 사용하여 공백(" ")문자를 ','로 변환
  351. sWorkFlagCd = "'" + sWorkFlagCd.replace(re, "','") + "'";
  352. //--------------------------------
  353. model.removeNodeset("/root/send");
  354. model.removeNodeset("/root/main/rsltptno/rsltptnolist");
  355. model.removeNodeset("/root/main/testrslt/testrsltinfo");
  356. //---------------------------------------------------------------------
  357. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); // 기관코드
  358. model.makeValue("/root/send/rsltfromdd", model.getValue("/root/hidden/rsltfromdd")); // 접수시작일자
  359. model.makeValue("/root/send/rslttodd", model.getValue("/root/hidden/rslttodd")); // 접수종료일자
  360. model.makeValue("/root/send/workflagcd", sWorkFlagCd); // 작업구분코드
  361. model.makeValue("/root/send/readdrid", model.getValue("/root/init/readid/readdrid1")); // 판독의사ID
  362. model.makeValue("/root/send/readdrid2", model.getValue("/root/init/readid/readdrid2")); // 판독의사ID2
  363. model.makeValue("/root/send/readdrid3", model.getValue("/root/init/readid/readdrid3")); // 판독의사ID3
  364. model.makeValue("/root/send/readdrid4", model.getValue("/root/init/readid/readdrid4")); // 판독의사ID4
  365. model.makeValue("/root/send/testcdlist", model.getValue("/root/init/testcdlist")); // 검사코드목록
  366. model.makeValue("/root/send/prersltflag", model.getValue("/root/init/prersltflag")); // 접수상태까지 포함여부("1" : 불포함, "" : 포함)
  367. model.makeValue("/root/send/diagwait", model.getValue("/root/init/diagwait")); // 진단대기
  368. //-------------------
  369. submit("TRLPR01101");
  370. //--------------------------
  371. fExeRowBackColorChng(sNode);
  372. }
  373. function fExeRowBackColorChng(pNode)
  374. {
  375. var iCnt = 0;
  376. var sValPTNO = "";
  377. var strRelaPTNO = "";
  378. var sChngPTNO = "";
  379. var sOriPtno = "";
  380. var sOriRelaPTNO = "";
  381. // 관계값 : 1. 원처방, 2.추가처방
  382. // 최상단의 관련병리번호 관계값이 '-' 인 경우 '1' 로 변경
  383. // => 원처방이 없는 것은 원처방으로 처리
  384. if(model.getValue(pNode + "[1]/relation") == "-")
  385. {
  386. model.setValue(pNode + "[1]/relation", "1");
  387. }
  388. for (var iNo=1; iNo <= getNodesetCount(pNode); iNo++)
  389. {
  390. // 실제 보여지는 화면에서 관련병리번호가 S_, C_ 로 시작하고
  391. // 병리번호가 IH_ 등의 대표병리번호가 아닌경우 위치를 바꿔 보여주기 위해서.
  392. sOriPtno = model.getValue(pNode+"["+iNo+"]/ptno");
  393. model.setValue(pNode+"["+iNo+"]/ptnocp", (sOriPtno.substr(0, sOriPtno.length-6) + "-"
  394. + sOriPtno.substr(sOriPtno.length-6, 6)));
  395. if (model.getValue(pNode+"["+iNo+"]/readdrid1") == "" ||
  396. model.getValue(pNode+"["+iNo+"]/readdrid1") == "-")
  397. {
  398. if(model.getValue(pNode+"["+iNo+"]/rsltrgstdd") == "" ||
  399. model.getValue(pNode+"["+iNo+"]/rsltrgstdd") == "-")
  400. {
  401. grd_rsltptnolist.rowstyle(iNo, "data", "background-color") = "#FFB937";
  402. }
  403. else
  404. {
  405. grd_rsltptnolist.rowstyle(iNo, "data", "background-color") = "#ffffff";
  406. }
  407. }
  408. else
  409. {
  410. grd_rsltptnolist.rowstyle(iNo, "data", "background-color") = "#98FB98";
  411. }
  412. // 관련병리번호를 트리로 만들기 위해서 relation 값 설정
  413. /* 트리삭제
  414. if(model.getValue(pNode + "[" + iNo + "]/relation") == "-")
  415. {
  416. iCnt = iCnt + 1;
  417. sValPTNO = model.getValue(pNode + "[" + (iNo - iCnt) + "]/ptno");
  418. if( sValPTNO == model.getValue(pNode + "[" + iNo + "]/relatptno") )
  419. {
  420. model.setValue(pNode + "[" + iNo + "]/relation", "2");
  421. }
  422. else
  423. {
  424. model.setValue(pNode + "[" + iNo + "]/relation", "1");
  425. iCnt = 0;
  426. }
  427. }
  428. else
  429. {
  430. iCnt = 0;
  431. }
  432. */
  433. model.setValue(pNode+"["+iNo+"]/bizflagcd", "I");
  434. // sort 추가시...start
  435. strRelaPTNO = model.getValue(pNode + "[" + iNo + "]/relatptno");
  436. if( model.getValue(pNode + "[" + iNo + "]/ptno") == strRelaPTNO )
  437. {
  438. // 병리번호와 관련병리번호 동일 시
  439. model.makeValue(pNode + "[" + iNo + "]/relatptno", "-");
  440. }
  441. else
  442. {
  443. sOriRelaPTNO = model.getValue(pNode+"["+iNo+"]/relatptno");
  444. // 병리번호가 대표 코드가 아니고 관련병리번호가 대표 코드일경우
  445. if ( ( (sOriPtno.substr(0,1) != "S") && (sOriPtno.substr(0,1) != "C")
  446. )
  447. &&
  448. ( ((model.getValue(pNode+"["+iNo+"]/relatptno")).substr(0,1) == "C")
  449. || ((model.getValue(pNode+"["+iNo+"]/relatptno")).substr(0,1) == "S")
  450. )
  451. )
  452. {
  453. sChngPTNO = model.getValue(pNode+"["+iNo+"]/ptnocp");
  454. model.setValue(pNode+"["+iNo+"]/ptnocp", (sOriRelaPTNO.substr(0, sOriRelaPTNO.length-6) + "-"
  455. + sOriRelaPTNO.substr(sOriRelaPTNO.length-6, 6)));
  456. model.setValue(pNode+"["+iNo+"]/relatptnocp", sChngPTNO);
  457. }
  458. else
  459. {
  460. model.setValue(pNode+"["+iNo+"]/relatptnocp", (sOriRelaPTNO.substr(0, sOriRelaPTNO.length-6) + "-"
  461. + sOriRelaPTNO.substr(sOriRelaPTNO.length-6, 6)));
  462. }
  463. }
  464. }
  465. // 병리번호별 트리 설정
  466. //setTree(grd_rsltptnolist, 6, 4, false);
  467. grd_rsltptnolist.refresh();
  468. }
  469. function fExeGridClick() {
  470. var iRowNo = grd_rsltptnolist.row;
  471. var iColNo = grd_rsltptnolist.col;
  472. //------------------------------------------------------------------------------------------------
  473. if (iRowNo > 0 && grd_rsltptnolist.isCell(event.target) && iRowNo >= grd_rsltptnolist.fixedRows) {
  474. fExeGridChoi(iRowNo, iColNo);
  475. grd_testrsltref.resizeCells();
  476. }
  477. }
  478. /* @group : 검사결과일괄확인
  479. * @ver : 2007.06.03 (CMCDEV-0001)
  480. * @by : 유동철
  481. * @-----------------------------------
  482. * @type : function
  483. * @access : public
  484. * @desc : 병리번호 목록 선택 처리 함수
  485. * 2008.12. 병리번호와 관련병리번호가 같은경우 동시에 선택되도록 수정
  486. */
  487. function fExeGridChoi(pRowNo, pColNo)
  488. {
  489. var sSrcNode = "/root/main/rsltptno/rsltptnolist";
  490. var sCheckPTNO = "";
  491. var sBoolVal = "";
  492. //----------------
  493. model.makeValue("/root/send/instcd", model.getValue(sSrcNode + "[" + pRowNo + "]/instcd"));
  494. model.makeValue("/root/send/ptno", model.getValue(sSrcNode + "[" + pRowNo + "]/ptno"));
  495. model.makeValue("/root/send/pid", model.getValue(sSrcNode + "[" + pRowNo + "]/pid"));
  496. model.makeValue("/root/send/workflagcd", model.getValue(sSrcNode + "[" + pRowNo + "]/workflagcd"));
  497. model.makeValue("/root/send/prcpgenrflag", model.getValue(sSrcNode + "[" + pRowNo + "]/prcpgenrflag"));
  498. model.makeValue("/root/send/scrno", "10");
  499. sCheckPTNO = model.getValue(sSrcNode + "[" + pRowNo + "]/ptno");
  500. sBoolVal = model.getValue(sSrcNode + "[" + pRowNo + "]/choi");
  501. // 원처방에 같은 관련병리번호 항목 일괄 선택/삭제 되도록
  502. if (model.getValue(sSrcNode + "[" + pRowNo + "]/relation") == "1")
  503. {
  504. for (var iRowNo=1; iRowNo <= getNodesetCount(sSrcNode); iRowNo++)
  505. {
  506. if(sCheckPTNO == (model.getValue(sSrcNode + "[" + iRowNo + "]/relatptno")).replace("-", ""))
  507. {
  508. model.setValue(sSrcNode + "[" + iRowNo + "]/choi", sBoolVal);
  509. }
  510. }
  511. }
  512. // 변경해서 보여지는 병리번호가 동일할 경우 선택
  513. for (var iRowNo=1; iRowNo <= getNodesetCount(sSrcNode); iRowNo++)
  514. {
  515. if(sCheckPTNO == (model.getValue(sSrcNode + "[" + iRowNo + "]/ptnocp")).replace("-", ""))
  516. {
  517. model.setValue(sSrcNode + "[" + iRowNo + "]/choi", sBoolVal);
  518. }
  519. }
  520. //--------------
  521. // 검사결과 조회
  522. submit("TRLPZ00107", false);
  523. submit("TRLPZ00112");
  524. }
  525. /* @group : 검사결과일괄확인
  526. * @ver : 2007.06.03 (CMCDEV-0001)
  527. * @by : 유동철
  528. * @-----------------------------------
  529. * @type : function
  530. * @access : public
  531. * @desc : 병리번호 목록 선택 처리 함수
  532. * 2008.12. 병리번호와 관련병리번호가 같은경우 동시에 선택되도록 수정
  533. */
  534. function fExeGridChoi2(pRowNo, pColNo)
  535. {
  536. var sSrcNode = "/root/main/rsltptno/rsltptnolist";
  537. var sCheckPTNO = "";
  538. var sBoolVal = "";
  539. //----------------
  540. model.makeValue("/root/send/instcd", model.getValue(sSrcNode + "[" + pRowNo + "]/instcd"));
  541. model.makeValue("/root/send/ptno", model.getValue(sSrcNode + "[" + pRowNo + "]/ptno"));
  542. model.makeValue("/root/send/pid", model.getValue(sSrcNode + "[" + pRowNo + "]/pid"));
  543. model.makeValue("/root/send/workflagcd", model.getValue(sSrcNode + "[" + pRowNo + "]/workflagcd"));
  544. model.makeValue("/root/send/prcpgenrflag", model.getValue(sSrcNode + "[" + pRowNo + "]/prcpgenrflag"));
  545. model.makeValue("/root/send/scrno", "10");
  546. sCheckPTNO = model.getValue(sSrcNode + "[" + pRowNo + "]/ptno");
  547. sBoolVal = model.getValue(sSrcNode + "[" + pRowNo + "]/choi");
  548. //--------------
  549. // 검사결과 조회
  550. submit("TRLPZ00113", false);
  551. submit("TRLPZ00112");
  552. // 등록된 이미지를 인증저장하기위한 이미지 파라미터 조회
  553. submit("TRLPZ00115");
  554. }
  555. /* @group : 검사결과일괄확인
  556. * @ver : 2007.06.03 (CMCDEV-0001)
  557. * @by : 유동철
  558. * @-----------------------------------
  559. * @type : function
  560. * @access : public
  561. * @desc : 결과 일괄적용 처리 함수
  562. */
  563. function fExeKeyPreass(pBizFlag, pControl) {
  564. var sTestRslt;
  565. var sSrcNode = "/root/main/acptptno/acptptnolist";
  566. //-----------
  567. // Return Key
  568. if (event.keyCode == 13) {
  569. sTestRslt = pControl.currentText;
  570. pControl.refresh();
  571. //-----------------------------------------------------------------
  572. for (var iRowNo=1; iRowNo <= getNodesetCount(sSrcNode); iRowNo++) {
  573. if (model.getValue(sSrcNode + "[" + iRowNo + "]/choi") == "true") {
  574. //--------------------
  575. if (pBizFlag == "1") {
  576. if (model.getValue(sSrcNode + "[" + iRowNo + "]/testrslt1") == "") {
  577. model.makeValue(sSrcNode + "[" + iRowNo + "]/testrslt1", sTestRslt);
  578. }
  579. } else {
  580. if (model.getValue(sSrcNode + "[" + iRowNo + "]/readrslt") == "") {
  581. model.makeValue(sSrcNode + "[" + iRowNo + "]/readrslt", sTestRslt);
  582. }
  583. }
  584. }
  585. }
  586. }
  587. }
  588. /* @group : 검사결과일괄확인
  589. * @ver : 2007.06.03 (CMCDEV-0001)
  590. * @by : 유동철
  591. * @-----------------------------------
  592. * @type : function
  593. * @access : public
  594. * @desc : 최종확인 처리 함수
  595. */
  596. function fExeLastDiag() {
  597. var iFindNo = 0;
  598. var bState = true;
  599. var sErrMsg = "";
  600. var sSrcNode = "/root/main/rsltptno/rsltptnolist";
  601. var sTimeNode = "/root/init/delayread/delayreadtime";
  602. var sSysdd = getCurrentDate();
  603. var sSystm = getCurrentTime();
  604. var sCheckReadDr = "N";
  605. var sCheckCnclresn = "";
  606. var iReadTime = 0;
  607. var iDelayTime = 0;
  608. //----------------------------------------------------------------------------------------------------
  609. if ( !lpzfGetDoctorCheck("/root/init/hospenv/hospenvinfo/doctjobgradcd", getUserInfo("jobkindcd")) ) {
  610. messageBox("의사직급만 최종진단이 ", "I006");
  611. return false;
  612. }
  613. //--------------------------------------------------------
  614. if (model.getValue("/root/init/readid/readdrid1") == "") {
  615. messageBox("판독의사1는 반드시 ", "C001");
  616. return false;
  617. }
  618. /* ************************************************
  619. * 2008-02-04 : 유동철
  620. * 최종진단시 인증처리를 위해 처리방법을 Case By Case로 변경
  621. *
  622. //--------------------------------
  623. model.removeNodeset("/root/send");
  624. //-------------------
  625. // 그리드 상태 초기화
  626. grd_rsltptnolist.clearStatus();
  627. //-----------------------------------------------------------------
  628. for (var iRowNo=1; iRowNo <= getNodesetCount(sSrcNode); iRowNo++) {
  629. if (model.getValue(sSrcNode + "[" + iRowNo + "]/choi") == "true") {
  630. grd_rsltptnolist.addStatus(iRowNo, "insert");
  631. }
  632. }
  633. //-----------------------------------------------------------------------
  634. model.makeValue("/root/send/rsltptno", grd_rsltptnolist.getUpdateData());
  635. model.makeNode("/root/send/readid");
  636. model.copyNode("/root/send/readid", "/root/init/readid");
  637. //-----------
  638. setAlertOn();
  639. if (submit("TXLPR01101")) {
  640. model.makeValue("/root/main/testrslt/testrsltinfo/rsltcnts", ""); // 검사결과 초기화
  641. model.removeNodeset(sSrcNode+"[choi='true']");
  642. fExeRowBackColorChng(sSrcNode);
  643. }
  644. ************************************************************************** */
  645. iFindNo = grd_rsltptnolist.findRow("true", 1, 1);
  646. if (Number(iFindNo) <= 0) {
  647. messageBox("최종진단 병리번호를 ", "C002");
  648. return false;
  649. }
  650. //-----------------------------------
  651. // 대상 병리번호에 대한 지연일자 체크
  652. for (var iRowNo=1; iRowNo <= getNodesetCount(sSrcNode); iRowNo++) {
  653. //-----------------------------------------------------------------
  654. if (model.getValue(sSrcNode + "[" + iRowNo + "]/choi") == "true") {
  655. //--------------------------------
  656. model.removeNodeset("/root/send");
  657. model.removeNodeset(sTimeNode);
  658. //-------------------------------------------------------------------------------------
  659. model.makeValue("/root/send/ptno", model.getValue(sSrcNode + "[" + iRowNo + "]/ptno"));
  660. submit("TRLPR00104");
  661. //--------------------------------------------------------
  662. iReadTime = Number(model.getValue(sTimeNode+"/readdaycnts"));
  663. iDelayTime = Number(model.getValue(sTimeNode+"/delayonetime")) + Number(model.getValue(sTimeNode+"/delayaddtime"));
  664. //----------------------------------------------
  665. // 결과시간이 지연시간보다 클 경우 지연사유 선택
  666. if (iReadTime > iDelayTime) {
  667. //-----------------------------------------------------------------------------------------------------------------------------
  668. if (model.getValue(sSrcNode+"["+iRowNo+"]/delayresncd") == "" || model.getValue(sSrcNode+"["+iRowNo+"]/delayresncd") == "-") {
  669. messageBox("병리번호["+ model.getValue(sSrcNode+"["+iRowNo+"]/dispptno") +"]에 대한 지연사유를 입력하여 주십시오! [ 지연시간 : " + (iReadTime - iDelayTime) + "일 ] ", "E000");
  670. return false;
  671. }
  672. }
  673. }
  674. }
  675. //------------------------------------------------------------------
  676. for (var iRowNo=1; iRowNo <= getNodesetCount(sSrcNode); iRowNo++) {
  677. //-------------------
  678. // 그리드 상태 초기화
  679. grd_rsltptnolist.clearStatus();
  680. //-----------------------------------------------------------------
  681. if (model.getValue(sSrcNode + "[" + iRowNo + "]/choi") == "true") {
  682. //--------------------------------
  683. model.removeNodeset("/root/send");
  684. grd_rsltptnolist.addStatus(iRowNo, "insert");
  685. //한번에 최종진단되는 검사들은 최종진단 시간을 동일하게 한다.(2008.12.26 박중규)
  686. model.makeValue(sSrcNode + "[" + iRowNo + "]/localdd", sSysdd);
  687. model.makeValue(sSrcNode + "[" + iRowNo + "]/localtm", sSystm);
  688. //---------------------------------------------------------------------------------------
  689. model.makeValue("/root/send/rsltptno", grd_rsltptnolist.getUpdateData("insert", iRowNo));
  690. model.makeNode("/root/send/readid");
  691. model.copyNode("/root/send/readid", "/root/init/readid");
  692. model.makeValue("/root/send/readid/readdrid1", getUserInfo("userid"));
  693. //------------------------
  694. if(sCheckReadDr == "N") {
  695. if(model.getValue(sSrcNode + "[" + iRowNo + "]/readdrid1") != "" && model.getValue(sSrcNode + "[" + iRowNo + "]/readdrid1") != "-") {
  696. if(model.getValue(sSrcNode + "[" + iRowNo + "]/readdrid1") != getUserInfo("userid")) {
  697. if(messageBox("지정된 판독의사와 로그인 한 판독의사가 다릅니다. ", "Q003") != "6") {
  698. return false;
  699. } else {
  700. sCheckReadDr = "Y";
  701. }
  702. }
  703. }
  704. }
  705. if (Sign.signprocess()) {
  706. //-------------------------
  707. if (submit("TXLPR01101")) {
  708. //model.makeValue("/root/main/testrslt/testrsltinfo/rsltcnts", ""); // 검사결과 초기화
  709. model.removeNodeset("/root/main/testrslt/testrsltinfo");
  710. model.removeNodeset("/root/main/testrslt/patbasicinfo");
  711. //------------------------------
  712. // 최종진단 저장된 전체자료 조회
  713. fExeGridChoi2(iRowNo, 1);
  714. /****************************************************************
  715. * 2010-12-06 : YDC
  716. * 지연사유 등록 부문 추가
  717. ***************************************************************** */
  718. model.removeNodeset("/root/send");
  719. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  720. model.makeValue("/root/send/pid", model.getValue(sSrcNode + "[" + iRowNo + "]/pid"));
  721. model.makeValue("/root/send/ptno", model.getValue(sSrcNode + "[" + iRowNo + "]/ptno"));
  722. model.makeValue("/root/send/baseflagcd", '31');
  723. model.makeValue("/root/send/resncd", model.getValue(sSrcNode + "[" + iRowNo + "]/delayresncd"));
  724. //---------------------------
  725. if (!submit("TXLPR00104")) {
  726. messageBox("지연사유 등록도중 오류가 발생하였습니다!", "E000");
  727. return false;
  728. }
  729. /* ************************************************************** */
  730. /*
  731. //이전 결과에 전송취소 사유가 있으면 최종결과수정으로 생각하여 수정사유를 인증결과에 붙여준다.
  732. if(model.getValue("/root/main/testrslt/patbasicinfo/cnclresn") != "-" && model.getValue("/root/main/testrslt/patbasicinfo/cnclresn") != "") {
  733. var nodelist = instance1.selectNodes("/root/main/testrslt/testrsltinfo");
  734. var newNode = instance1.createNode("element", "testrsltinfo", "");
  735. var childnode1 = instance1.createNode("element", "reptrslt", "");
  736. newNode.appendChild(childnode1);
  737. if (nodelist.length > 0) {
  738. var currNode = root.main.testrslt.insertBefore(newNode, nodelist.item(0));
  739. model.setValue("/root/main/testrslt/testrsltinfo[1]/reptrslt", "* 수정사유 : "+ model.getValue("/root/main/testrslt/patbasicinfo/cnclresn") + " (최종본을 확인 바랍니다.)", true);
  740. }
  741. }
  742. */
  743. //수정사유 삭제
  744. if(model.getValue("/root/main/testrslt/patbasicinfo/cnclresn") != "-" && model.getValue("/root/main/testrslt/patbasicinfo/cnclresn") != "") {
  745. var nodelist = instance1.selectNodes("/root/main/testrslt/testrsltinfo");
  746. for(var i = 1 ; i < nodelist.length+1; i++){
  747. sCheckCnclresn = model.getValue("/root/main/testrslt/testrsltinfo[" + i + "]/reptrslt") ;
  748. if(sCheckCnclresn.substr(11, 6) == "*수정사유:"){
  749. model.setValue("/root/main/testrslt/testrsltinfo[" + i + "]/reptrslt", "");
  750. }
  751. }
  752. }
  753. //-------------------
  754. // 보고서 타이블 설정
  755. switch (model.getValue(sSrcNode+"["+iRowNo+"]/workflagcd")) {
  756. case "1001" :
  757. case "1002" :
  758. model.makeValue("/root/main/testrslt/patbasicinfo/title", "조직 검사보고서");
  759. break;
  760. case "1003" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "세포 검사보고서");
  761. break;
  762. case "1004" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "특수염색 검사보고서");
  763. break;
  764. case "1005" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "면역염색 검사보고서");
  765. break;
  766. case "1006" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "면역형광 검사보고서");
  767. break;
  768. case "1007" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "분자병리 검사보고서");
  769. break;
  770. case "1008" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "전자현미경 검사보고서");
  771. break;
  772. case "1009" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "부검 검사보고서");
  773. break;
  774. case "1012" : model.makeValue("/root/main/testrslt/patbasicinfo/title", "골수조직 검사보고서");
  775. break;
  776. }
  777. //---------------------------------
  778. // 검사결과내용을 기준으로 인증처리
  779. if (!fExeMakeCertPrcs(iRowNo, sSrcNode)) {
  780. //-----------------------------------------
  781. // 전자인증처리 실패시 최종진단을 취소한다.
  782. model.setValue(sSrcNode+"["+iRowNo+"]/bizflagcd", "C");
  783. model.setValue(sSrcNode+"["+iRowNo+"]/choi", "false");
  784. // if (!submit("TXLPR01101")) {
  785. sErrMsg = "서버오류로 인하여 최종진단은 되었으나, 전자인증은 실패하였습니다." + "\n\n";
  786. sErrMsg += "검사결과등록 화면에서 최종진단 취소가 ";
  787. messageBox(sErrMsg, "I006");
  788. return false;
  789. // }
  790. }
  791. } else {
  792. model.setValue(sSrcNode+"["+iRowNo+"]/choi", "false");
  793. }
  794. } else {
  795. messageBox("최종진단이 취소 또는 실패되었습니다! ", "I007");
  796. return false;
  797. }
  798. }
  799. }
  800. /* ******************************************************************************************* */
  801. fGetRsltPtNoList(); // 검사결과 초기화
  802. //--------------------------------------------
  803. //model.makeValue("/root/main/testrslt/testrsltinfo/rsltcnts", ""); // 검사결과 초기화
  804. //model.removeNodeset(sSrcNode+"[choi='true']");
  805. //fExeRowBackColorChng(sSrcNode);
  806. //--------------
  807. model.refresh();
  808. }
  809. /* **********************************
  810. * ENRSignEngine.js에서 함수를 호출함
  811. * **********************************
  812. */
  813. function fMake_SignData(){
  814. Sign.addnode("/root/main/testrslt");
  815. }
  816. function fExeMakeCertPrcs(pRowNo, pNode) {
  817. //-----------------------
  818. if (Sign.signprocess()) {
  819. model.makeNode("/root/send/signdata");
  820. model.makeValue("/root/send/signdata/instcd", model.getValue(pNode+"["+pRowNo+"]/instcd")); // 기관코드
  821. model.makeValue("/root/send/signdata/pid", model.getValue(pNode+"["+pRowNo+"]/pid")); // 등록번호
  822. model.makeValue("/root/send/signdata/ptno", model.getValue(pNode+"["+pRowNo+"]/ptno")); // 병리번호
  823. model.makeValue("/root/send/signdata/orddd", model.getValue(pNode+"["+pRowNo+"]/orddd")); // 입원, 응급 : 입원일자, 외래 : 진료일자
  824. if(model.getValue("/root/main/testrslt/patbasicinfo/signno") == "" || model.getValue("/root/main/testrslt/patbasicinfo/signno") == "-") {
  825. model.makeValue("/root/send/signdata/signno", "0"); // 서명번호
  826. } else {
  827. model.makeValue("/root/send/signdata/signno", model.getValue("/root/main/testrslt/patbasicinfo/signno")); // 서명번호
  828. }
  829. model.makeValue("/root/send/signdata/cretno", model.getValue(pNode+"["+pRowNo+"]/cretno")); // 생성번호
  830. model.makeValue("/root/send/signdata/recdd", getCurrentDate()); // 실제기록이 이루어진 기록일자
  831. model.makeValue("/root/send/signdata/rectm", getCurrentTime()); // 실제기록이 이루어진 기록시간
  832. model.makeValue("/root/send/signdata/recsaveflag", "N"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  833. model.makeValue("/root/send/signdata/signflag", "30"); // 서명자료구분(01 : 진료, 02 : 간호, 30:LIS)
  834. model.makeValue("/root/send/signdata/signgenrflag", model.getValue(pNode+"["+pRowNo+"]/prcpgenrflag")); // 입원, 외래구분
  835. model.makeValue("/root/send/signdata/formcd", "0000002726"); // 각 기록지별 서식코드 0000002916 : BM
  836. model.makeValue("/root/send/signdata/orddeptcd", model.getValue(pNode+"["+pRowNo+"]/orddeptcd")); // 진료과
  837. model.makeValue("/root/send/signdata/orddrid", model.getValue(pNode+"["+pRowNo+"]/orddrid")); // 진료의ID
  838. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보), 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  839. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  840. } else {
  841. return false;
  842. }
  843. //-------------------------
  844. if (submit("TXLPR01102")) {
  845. return true;
  846. } else {
  847. return false;
  848. }
  849. }
  850. function fExeImgView() {
  851. var sPtNo = "";
  852. var aPtNo = "";
  853. var sNode = "/root/main/rsltptno/rsltptnolist";
  854. var iRowNo = grd_rsltptnolist.row;
  855. //----------------
  856. if (iRowNo >= 0) {
  857. sPtNo = model.getValue(sNode+"["+iRowNo+"]/dispptno");
  858. aPtNo = sPtNo.split("-");
  859. //----------------------------------------------
  860. setParameter("SMLPP02000_scrno", "SMLPR01100");
  861. setParameter("SMLPP02000_pid", model.getValue(sNode+"["+iRowNo+"]/pid"));
  862. setParameter("SMLPP02000_rgstdd", getCurrentDate());
  863. // setParameter("SMLPP02000_no", aPtNo[1]);
  864. // setParameter("SMLPP02000_ptnocd", aPtNo[0].substr(0, (aPtNo[0].length-2)));
  865. // setParameter("SMLPP02000_year", aPtNo[0].substr(aPtNo[0].length-2, 2));
  866. setParameter("SMLPP02000_no", "");
  867. setParameter("SMLPP02000_ptnocd", "");
  868. setParameter("SMLPP02000_year", "");
  869. //------------------
  870. modal("SMLPP02000");
  871. }
  872. }
  873. function fExeWorkFlagChng() {
  874. var iFindNo = -1;
  875. var aWorkFlagCd = "";
  876. var aBfWorkFlagCd = "";
  877. var sWorkFlagCd = model.getValue("/root/hidden/workflagcd");
  878. /*
  879. //-----------------------------------
  880. aWorkFlagCd = sWorkFlagCd.split(" ");
  881. for (var iNo=aWorkFlagCd.length-1; iNo >= 0; iNo--) {
  882. if (aWorkFlagCd[iNo].getTrim() == "") {
  883. // Continue
  884. } else if (aWorkFlagCd[iNo].getTrim() == "1003") {
  885. model.makeValue("/root/hidden/workflagcd", "1003 1004 1005");
  886. break;
  887. } else if (aWorkFlagCd[iNo].getTrim() == "9999") {
  888. model.makeValue("/root/hidden/workflagcd", "9999");
  889. break;
  890. } else {
  891. //---------------
  892. sWorkFlagCd = "";
  893. for (var iNo=1; iNo <= getNodesetCount("/root/init/resncd/resncdlist"); iNo++) {
  894. switch (model.getValue("/root/init/resncd/resncdlist["+iNo+"]/resncd")) {
  895. case "1003" :
  896. case "9999" :
  897. break;
  898. default : sWorkFlagCd += model.getValue("/root/init/resncd/resncdlist["+iNo+"]/resncd") + " ";
  899. break;
  900. }
  901. }
  902. model.makeValue("/root/hidden/workflagcd", sWorkFlagCd);
  903. break;
  904. }
  905. }
  906. */
  907. //-----------------------------------
  908. aWorkFlagCd = sWorkFlagCd.split(" ");
  909. aBfWorkFlagCd = sWorkflagList.split(" "); //잡업구분 이전 값.
  910. if(sWorkFlagCd.length > sWorkflagList.length) {
  911. //select 경우
  912. if (!(aWorkFlagCd[(aWorkFlagCd.length-1)].getTrim() == "")) {
  913. if(aWorkFlagCd[(aWorkFlagCd.length-1)].getTrim() == "1001" || aWorkFlagCd[(aWorkFlagCd.length-1)].getTrim() == "1002"){
  914. //조직, 동결절편을 선택한 경우
  915. model.makeValue("/root/hidden/workflagcd", "1001 1002 1004 1005 1006 1007 1008 1009 1012 9999");
  916. } else if(aWorkFlagCd[(aWorkFlagCd.length-1)].getTrim() == "1003"){
  917. //세포를 선택한 경우
  918. model.makeValue("/root/hidden/workflagcd", "1003 1004 1005 1006 1007 1008 1009 1012 9999");
  919. } else if(aWorkFlagCd[(aWorkFlagCd.length-1)].getTrim() == "ZZZZ"){
  920. //전체를 선택한 경우
  921. model.makeValue("/root/hidden/workflagcd", "1001 1002 1003 1004 1005 1006 1007 1008 1009 1012 9999 ZZZZ");
  922. }
  923. }
  924. } else if (sWorkFlagCd.length < sWorkflagList.length) {
  925. //deselect경우("전체"를 Deselect한 경우만 체크 한다.)
  926. if(fCompareArray(aWorkFlagCd, aBfWorkFlagCd) == "ZZZZ") {
  927. model.makeValue("/root/hidden/workflagcd", "");
  928. }
  929. } else if (sWorkFlagCd.length == sWorkflagList.length) {
  930. }
  931. //-------------------------------------------------------
  932. if (model.getValue("/root/hidden/workflagcd") == "9999") {
  933. grd_rsltptnolist.colHidden(25) = false;
  934. } else {
  935. grd_rsltptnolist.colHidden(25) = true;
  936. }
  937. //-----------------------
  938. chk_workflagcd.refresh();
  939. grd_rsltptnolist.refresh();
  940. //변경후 작업구분 값을 저장하여 다음 변경시 사용.
  941. sWorkflagList = model.getValue("/root/hidden/workflagcd");
  942. }
  943. /* @group : 검사결과일괄확인
  944. * @ver : 2008.10.08 (CMCDEV-0001)
  945. * @by : 유동철
  946. * @-----------------------------------
  947. * @type : function
  948. * @access : public
  949. * @desc : 검사목록 팝업창 처리 함수
  950. */
  951. function fExeTestItemChoi() {
  952. var iFindNo = 0;
  953. var sTestCd = "";
  954. var sTestNm = "";
  955. var bState = false;
  956. var sNode = "/root/init/testinfo/testitemlist";
  957. //-------------------------------------------
  958. iFindNo = grd_testlist.findRow("true", 1, 0);
  959. if (Number(iFindNo) <= 0) {
  960. model.makeValue("/root/init/testcdlist", "");
  961. model.makeValue("/root/init/testnmlist", "");
  962. opt_testnmlist.refresh();
  963. grp_testlist.visible = false;
  964. return false;
  965. }
  966. //-----------------------------------------------------
  967. for (var iNo=1; iNo <= getNodesetCount(sNode); iNo++) {
  968. //-----------------------------------------------------
  969. if (model.getValue(sNode+"["+iNo+"]/choi") == "true") {
  970. if (bState) {
  971. sTestCd += ", '" + model.getValue(sNode+"["+iNo+"]/testcd") + "'";
  972. sTestNm += ", " + model.getValue(sNode+"["+iNo+"]/testengnm");
  973. } else {
  974. sTestCd += "'" + model.getValue(sNode+"["+iNo+"]/testcd") + "'";
  975. sTestNm += model.getValue(sNode+"["+iNo+"]/testengnm");
  976. bState = true;
  977. }
  978. }
  979. }
  980. //------------------------------------------------
  981. model.makeValue("/root/init/testcdlist", sTestCd);
  982. model.makeValue("/root/init/testnmlist", sTestNm);
  983. opt_testnmlist.refresh();
  984. grp_testlist.visible = false;
  985. }
  986. /* @group : 검사결과일괄확인
  987. * @ver : 2008.10.08 (CMCDEV-0001)
  988. * @by : 유동철
  989. * @-----------------------------------
  990. * @type : function
  991. * @access : public
  992. * @desc : 검사목록 조회 처리 함수
  993. */
  994. function fGetTestCdList() {
  995. model.removeNodeset("/root/send");
  996. model.removeNodeset("/root/init/testinfo/testitemlist");
  997. model.makeValue("/root/send/delflagcd", "0"); // 조회조건 사용여부구분
  998. model.makeValue("/root/send/refflag", "1"); // 조회조건 조회구분
  999. model.makeValue("/root/send/refval", ""); // 조회조건 조회값
  1000. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); // 기관코드
  1001. submit("TRLPC00401");
  1002. //-----------------------------------------
  1003. grd_testlist.fixedcellcheckbox(0, 0) = true;
  1004. }
  1005. /* @group : 검사결과일괄확인
  1006. * @ver : 2007.06.03 (CMCDEV-0001)
  1007. * @by : 박중규
  1008. * @-----------------------------------
  1009. * @type : function
  1010. * @access : public
  1011. * @desc : 작업구분 체크에 사용할 배열 비교
  1012. */
  1013. function fCompareArray(pAfworklist, pBfworklist) {
  1014. var sWorkflagcd = "";
  1015. var iCount = 0;
  1016. for(var i=0 ; i < pBfworklist.length ; i++) {
  1017. iCount = 0;
  1018. for(var j=0 ; j < pAfworklist.length ; j++) {
  1019. if(pBfworklist[i] == pAfworklist[j]){
  1020. iCount=0;
  1021. } else {
  1022. iCount++;
  1023. }
  1024. }
  1025. if(iCount == pAfworklist.length) {
  1026. return pBfworklist[i];
  1027. }
  1028. }
  1029. return "none";
  1030. }
  1031. function fExeEpandGrid(cnt)
  1032. {
  1033. if ( cnt == "1" )
  1034. {
  1035. grp_ptlist.attribute("width") = 1180;
  1036. grd_rsltptnolist.attribute("width") = 1176;
  1037. }
  1038. else if ( cnt == "2" )
  1039. {
  1040. grp_ptlist.attribute("width") = 274;
  1041. grd_rsltptnolist.attribute("width") = 271;
  1042. }
  1043. }
  1044. /* @group : 세포결과일괄등록
  1045. * @ver : 2008.12.04 (CMCDEV-0001)
  1046. * @by : 하만석(ACK)
  1047. * @-----------------------------------
  1048. * @type : function
  1049. * @access : public
  1050. * @desc : 결과항목을 확인하기 위해서 row 크기 변경
  1051. */
  1052. function fExeResizeRow()
  1053. {
  1054. if (gRowSize == 0) // 초기상태
  1055. {
  1056. grd_rsltptnolist.autoResize = true;
  1057. grd_rsltptnolist.refresh();
  1058. gRowSize = 1;
  1059. }
  1060. else if (gRowSize == 1)
  1061. {
  1062. grd_rsltptnolist.dataHeight = 23;
  1063. grd_rsltptnolist.autoResize = false;
  1064. grd_rsltptnolist.refresh();
  1065. gRowSize = 0;
  1066. }
  1067. }
  1068. /* @group : 팝업메뉴
  1069. * @ver : 2009.01.07 (CMCDEV-0001)
  1070. * @by :
  1071. * @-----------------------------------
  1072. * @type : function
  1073. * @access : public
  1074. * @desc : 병리번호 목록 그리드 팝업
  1075. */
  1076. function fPopUp(){
  1077. if(grd_rsltptnolist.isCell(event.target) && grd_rsltptnolist.mouseRow >= grd_rsltptnolist.fixedrows){
  1078. window.setPopupMenu(true, "/root/hidden/popupmenu/item", "name", "func", false);
  1079. }
  1080. }
  1081. /* @group : 팝업메뉴
  1082. * @ver : 2009.01.07 (CMCDEV-0001)
  1083. * @by :
  1084. * @-----------------------------------
  1085. * @type : function
  1086. * @access : public
  1087. * @desc : 검사결과 등록 팝업 호출
  1088. */
  1089. function fExeRslt(){
  1090. var ptno = model.getValue("/root/main/rsltptno/rsltptnolist[" + grd_rsltptnolist.row + "]/ptno");
  1091. setParameter("opener_parameter_id", ptno);
  1092. modal("SMLPR00100", "", "", "", "", "", "");
  1093. }
  1094. /* @group : 팝업메뉴
  1095. * @ver : 2011.02.08 (CMCDEV-0001)
  1096. * @by :
  1097. * @-----------------------------------
  1098. * @type : function
  1099. * @access : public
  1100. * @desc : HPV검사결과 등록 팝업 호출
  1101. */
  1102. function fExeHPVRslt() {
  1103. var re = /-/g;
  1104. var ptno = model.getValue("/root/main/rsltptno/rsltptnolist[" + grd_rsltptnolist.row + "]/ptno");
  1105. var acptdd = model.getValue("/root/main/rsltptno/rsltptnolist[" + grd_rsltptnolist.row + "]/acptdd");
  1106. var pid = model.getValue("/root/main/rsltptno/rsltptnolist[" + grd_rsltptnolist.row + "]/pid");
  1107. setParameter("opener_parameter_id", ptno);
  1108. setParameter("opener_parameter_acptdd", acptdd.replace(re, ""));
  1109. setParameter("opener_parameter_pid", pid);
  1110. modal("SMLPR00500", "", "", "", "", "", "");
  1111. }
  1112. /* @group : 임상정보조회
  1113. * @ver : 2009.02.03 (CMCDEV-0001)
  1114. * @by :
  1115. * @-----------------------------------
  1116. * @type : function
  1117. * @access : public
  1118. * @desc :
  1119. */
  1120. function fGetIMSInfo(){
  1121. var iRowNo = -1;
  1122. var sScrNode = "/root/main/rsltptno/rsltptnolist";
  1123. if (grd_rsltptnolist.row <= 0) return false;
  1124. iRowNo = grd_rsltptnolist.row;
  1125. var instcd = getUserInfo("dutplceinstcd");
  1126. var ptno = model.getValue(sScrNode + "[" + iRowNo + "]/ptno");
  1127. var pid = model.getValue(sScrNode + "[" + iRowNo + "]/pid");
  1128. var workflagcd = model.getValue(sScrNode + "[" + iRowNo + "]/workflagcd");
  1129. var prcpgenrflag = model.getValue(sScrNode + "[" + iRowNo + "]/prcpgenrflag");
  1130. var scrno = "SPLPP02500";
  1131. var sflag = instcd + "▦" + ptno + "▦" + pid + "▦" + workflagcd + "▦" + prcpgenrflag + "▦" + scrno;
  1132. setParameter("opener_parameter_id", sflag);
  1133. modal("SPLPP02500", "", "", "", "", "", "");
  1134. }
  1135. /* @group : 이미지조회
  1136. * @ver : 2009.01.12 (CMCDEV-0001)
  1137. * @by :
  1138. * @-----------------------------------
  1139. * @type : function
  1140. * @access : public
  1141. * @desc :
  1142. */
  1143. function fExeImgView2() {
  1144. var sPtNo = "";
  1145. var aPtNo = "";
  1146. var sNode = "/root/main/testrslt/testrsltinfo";
  1147. if(grd_testrsltref.row <= 0) return;
  1148. //----------------------------------------
  1149. sPtNo = model.getValue(sNode+ "["+ grd_testrsltref.row +"]/spcno");
  1150. sPtNo = sPtNo.substr(0, sPtNo.length -6) + "-" + sPtNo.substr(sPtNo.length -6, 6);
  1151. aPtNo = sPtNo.split("-");
  1152. //----------------------------------------------
  1153. setParameter("SMLPP02000_scrno", "SMLPR00100");
  1154. //setParameter("SMLPP02000_pid", model.getValue(sNode+"/pid"));
  1155. setParameter("SMLPP02000_pid", "");
  1156. setParameter("SMLPP02000_rgstdd", getCurrentDate());
  1157. setParameter("SMLPP02000_no", aPtNo[1]);
  1158. setParameter("SMLPP02000_ptnocd", aPtNo[0].substr(0, (aPtNo[0].length-2)));
  1159. setParameter("SMLPP02000_year", aPtNo[0].substr(aPtNo[0].length-2, 2));
  1160. //------------------
  1161. modal("SMLPP02000");
  1162. }
  1163. function fSetPopup(){
  1164. if ( (grd_testrsltref.mouseRow >= grd_testrsltref.fixedRows) && (grd_testrsltref.isCell(event.target))) {
  1165. grd_testrsltref.row = grd_testrsltref.mouseRow;
  1166. model.removenode("/root/init/popupmenu");
  1167. if(model.getValue("/root/main/testrslt/testrsltinfo["+ grd_testrsltref.row +"]/judgmark") == "IMP") {
  1168. model.makeValue("/root/init/popupmenu/item/name", "▶ 병리 이미지 보기");
  1169. model.makeValue("/root/init/popupmenu/item/func", "fExeImgView2");
  1170. }
  1171. setPopupMenu("grd_testrsltref", false, "/root/init/popupmenu/item", "name", "func");
  1172. }
  1173. }
  1174. ]]>
  1175. </script>
  1176. </xhtml:head>
  1177. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  1178. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  1179. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">검사결과 일괄확인</caption>
  1180. </group>
  1181. <group id="grp_biz" style="left:0; top:40; width:1195; height:744; ">
  1182. <caption id="caption4" class="tit_2" style="left:5px; top:80px; width:170px; height:14px; ">판독의사 설정</caption>
  1183. <line id="line3" class="line_1" style="x1:0px; y1:95; x2:701; y2:95; "/>
  1184. <group id="grp_sea" style="left:0px; top:10px; width:1195px; height:60; vertical-align:top; ">
  1185. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:59; background-color:#fffbf2; border-color:#ffd799; "/>
  1186. <line id="line13" class="line_4" style="x1:1108px; y1:7px; x2:1108px; y2:51; border-color:#ffe4bb; border-left-style:solid; "/>
  1187. <caption id="caption7" class="search_name" style="left:15; top:9px; width:86px; height:17px; ">결과일자 :</caption>
  1188. <input id="ipt_acpttodd" ref="/root/hidden/rslttodd" class="input_search" navindex="2" inputtype="date" style="left:214px; top:8px; width:90; height:19px; text-align:center; vertical-align:middle; "/>
  1189. <caption id="caption8" class="search_no_b" style="left:200px; top:8px; width:12px; height:17px; ">~</caption>
  1190. <caption id="caption9" class="search_name" visibility="hidden" style="left:889; top:9px; width:86px; height:17px; ">판독의사 :</caption>
  1191. <input id="ipt_acptfromdd" ref="/root/hidden/rsltfromdd" class="input_search" navindex="1" inputtype="date" style="left:108px; top:8px; width:90; height:19px; text-align:center; vertical-align:middle; "/>
  1192. <button id="btn_search" class="btn1_letter2" navindex="5" style="left:1123px; top:19; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  1193. <caption>조회</caption>
  1194. <script type="javascript" ev:event="DOMActivate">
  1195. <![CDATA[
  1196. fGetRsltPtNoList();
  1197. ]]>
  1198. </script>
  1199. </button>
  1200. <caption id="caption20" class="search_name" style="left:15px; top:33px; width:91px; height:17px; ">작업구분 :</caption>
  1201. <select1 id="cmb_readdr" ref="/root/hidden/readdrid" disabled="true" navindex="3" visibility="hidden" appearance="minimal" style="left:978; top:8px; width:115px; height:19px; ">
  1202. <choices>
  1203. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  1204. <label ref="usernm"/>
  1205. <value ref="userid"/>
  1206. </itemset>
  1207. </choices>
  1208. </select1>
  1209. <select id="chk_workflagcd" ref="/root/hidden/workflagcd" navindex="4" overflow="visible" appearance="full" cellspacing="1" cols="20" style="left:108px; top:34px; width:987px; height:20px; border-style:none; ">
  1210. <choices>
  1211. <itemset nodeset="/root/init/resncd/resncdlist">
  1212. <label ref="resncnts"/>
  1213. <value ref="resncd"/>
  1214. </itemset>
  1215. </choices>
  1216. <script type="javascript" ev:event="xforms-value-changed">
  1217. <![CDATA[
  1218. fExeWorkFlagChng();
  1219. ]]>
  1220. </script>
  1221. </select>
  1222. <select id="checkbox1" ref="/root/init/prersltflag" overflow="visible" appearance="full" style="left:555px; top:10px; width:70px; height:15px; border-style:none; ">
  1223. <choices>
  1224. <item>
  1225. <label>예비결과</label>
  1226. <value>1</value>
  1227. </item>
  1228. </choices>
  1229. </select>
  1230. <caption id="caption2" class="search_name" style="left:410px; top:9px; width:140px; height:17px; ">접수상태포함구분 :</caption>
  1231. <select id="chk_diagwait" ref="/root/init/diagwait" overflow="visible" appearance="full" style="left:730px; top:10px; width:70px; height:20px; border-style:none; ">
  1232. <choices>
  1233. <item>
  1234. <label>진단대기</label>
  1235. <value>1</value>
  1236. </item>
  1237. </choices>
  1238. </select>
  1239. </group>
  1240. <select1 id="cmb_readdrid1" ref="/root/init/readid/readdrid1" appearance="minimal" style="left:73; top:101px; width:100px; height:19px; ">
  1241. <choices>
  1242. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  1243. <label ref="usernm"/>
  1244. <value ref="userid"/>
  1245. </itemset>
  1246. </choices>
  1247. <script type="javascript" ev:event="xforms-value-changed">
  1248. <![CDATA[
  1249. fGetRsltPtNoList();
  1250. ]]>
  1251. </script>
  1252. </select1>
  1253. <select1 id="cmb_readdrid2" ref="/root/init/readid/readdrid2" appearance="minimal" style="left:249px; top:101px; width:100px; height:19px; ">
  1254. <choices>
  1255. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  1256. <label ref="usernm"/>
  1257. <value ref="userid"/>
  1258. </itemset>
  1259. </choices>
  1260. <script type="javascript" ev:event="xforms-value-changed">
  1261. <![CDATA[
  1262. fGetRsltPtNoList();
  1263. ]]>
  1264. </script>
  1265. </select1>
  1266. <select1 id="cmb_readdrid4" ref="/root/init/readid/readdrid4" appearance="minimal" style="left:601px; top:101px; width:100px; height:19px; ">
  1267. <choices>
  1268. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  1269. <label ref="usernm"/>
  1270. <value ref="userid"/>
  1271. </itemset>
  1272. </choices>
  1273. <script type="javascript" ev:event="xforms-value-changed">
  1274. <![CDATA[
  1275. fGetRsltPtNoList();
  1276. ]]>
  1277. </script>
  1278. </select1>
  1279. <select1 id="cmb_readdrid3" ref="/root/init/readid/readdrid3" appearance="minimal" style="left:425px; top:101px; width:100px; height:19px; ">
  1280. <choices>
  1281. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  1282. <label ref="usernm"/>
  1283. <value ref="userid"/>
  1284. </itemset>
  1285. </choices>
  1286. <script type="javascript" ev:event="xforms-value-changed">
  1287. <![CDATA[
  1288. fGetRsltPtNoList();
  1289. ]]>
  1290. </script>
  1291. </select1>
  1292. <caption id="caption5" class="tit_2" style="left:5px; top:133; width:170px; height:13px; ">병리번호 목록</caption>
  1293. <line id="line2" class="line_1" style="x1:0px; y1:148px; x2:271px; y2:148px; "/>
  1294. <caption id="caption11" class="tit_2" style="left:281px; top:133px; width:170px; height:14px; ">검사결과</caption>
  1295. <line id="line5" class="line_1" style="x1:276px; y1:148px; x2:1194px; y2:148px; "/>
  1296. <caption id="caption17" class="cell_1" style="left:1057; top:153px; width:64px; height:23px; vertical-align:middle; ">진료의사</caption>
  1297. <output id="opt_orddrnm" ref="/root/main/testrslt/testrsltinfo/orddrnm" class="output_fix" visibility="hidden" style="left:570px; top:75px; width:70px; height:19px; "/>
  1298. <datagrid id="grd_testrsltref" nodeset="/root/main/testrslt/testrsltinfo" autoresize="true" caption="검 사 결 과 내 용^caption2^caption3^caption4^caption5^caption6^caption7^caption8" colsep="^" colwidth="897, 0, 0, 0, 0, 0, 0, 0" mergecellsfixedrows="bycolrec" rowsep="|" style="left:276px; top:153px; width:918px; height:587px; font-family:굴림체; font-size:9pt; ">
  1299. <col ref="reptrslt" style="font-family:굴림체; font-size:9pt; "/>
  1300. <col ref="level"/>
  1301. <col ref="judgmark"/>
  1302. <col ref="tkdt"/>
  1303. <col ref="rsltdd"/>
  1304. <col ref="suppdept"/>
  1305. <col ref="pacsno"/>
  1306. <col ref="spcno"/>
  1307. <script type="javascript" ev:event="DOMFocusOut">
  1308. <![CDATA[
  1309. initPopupMenu();
  1310. ]]>
  1311. </script>
  1312. <script type="javascript" ev:event="onmousedown">
  1313. <![CDATA[
  1314. fSetPopup();
  1315. ]]>
  1316. </script>
  1317. </datagrid>
  1318. <caption id="cap_readdrid1" class="cell_1" style="left:0px; top:100px; width:70; height:23px; vertical-align:middle; ">판독의사1</caption>
  1319. <caption id="cap_readdrid2" class="cell_1" style="left:176px; top:100px; width:70px; height:23px; vertical-align:middle; ">판독의사2</caption>
  1320. <caption id="cap_readdrid3" class="cell_1" style="left:352px; top:100px; width:70px; height:23px; vertical-align:middle; ">판독의사3</caption>
  1321. <caption id="cap_readdrid4" class="cell_1" style="left:528px; top:100px; width:70px; height:23px; vertical-align:middle; ">판독의사4</caption>
  1322. <line id="line1" class="line_3" style="x1:0px; y1:122px; x2:701; y2:122px; "/>
  1323. <button id="btn_imgview" class="btn2_letter5" visibility="visible" style="left:1119px; top:128px; width:75px; height:19px; ">
  1324. <caption>이미지보기</caption>
  1325. <script type="javascript" ev:event="DOMActivate">
  1326. <![CDATA[
  1327. fExeImgView();
  1328. ]]>
  1329. </script>
  1330. </button>
  1331. <button id="btn_pop" class="btn2_letter6" visibility="visible" style="left:1030px; top:128px; width:75px; height:19px; ">
  1332. <caption>임상정보조회</caption>
  1333. <script type="javascript" ev:event="DOMActivate">
  1334. <![CDATA[
  1335. // 임상정보 조회
  1336. fGetIMSInfo();
  1337. ]]>
  1338. </script>
  1339. </button>
  1340. <caption id="caption1" class="tit_2" style="left:710px; top:80px; width:170px; height:13px; ">선택 검사목록</caption>
  1341. <line id="line4" class="line_1" style="x1:705px; y1:95px; x2:1190px; y2:95px; "/>
  1342. <output id="opt_testnmlist" ref="/root/init/testnmlist" style="left:705px; top:101px; width:465px; height:19px; border-color:#000000; border-style:solid; "/>
  1343. <button id="btn_bloc" style="left:1175px; top:101px; width:14px; height:16px; background-image:../../../com/commonweb/images/icon_search.gif; ">
  1344. <caption/>
  1345. <script type="javascript" ev:event="DOMActivate">
  1346. <![CDATA[
  1347. grp_testlist.visible = true;
  1348. ]]>
  1349. </script>
  1350. </button>
  1351. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:710px; width:272px; height:30px; background-color:transparent; border-color:#7cbbdd; border-style:solid; "/>
  1352. <caption id="caption51" style="left:118px; top:718px; width:62px; height:14px; vertical-align:middle; ">판독의지정</caption>
  1353. <caption id="caption53" class="color_7" style="left:195px; top:717px; width:15px; height:15px; vertical-align:middle; "/>
  1354. <caption id="caption55" style="left:213px; top:718px; width:50px; height:14px; ">접수상태</caption>
  1355. <caption id="caption47" class="cell_2" style="left:10px; top:715px; width:70px; height:20px; ">범 례</caption>
  1356. <caption id="caption49" class="color_9" style="left:100px; top:717px; width:15px; height:15px; "/>
  1357. <button id="button103" class="icon_right" style="left:245px; top:128px; width:26px; height:19px; ">
  1358. <caption/>
  1359. <script type="javascript" ev:event="onclick">
  1360. <![CDATA[
  1361. fExeEpandGrid("1");
  1362. ]]>
  1363. </script>
  1364. </button>
  1365. <button id="button102" class="icon_left" style="left:217px; top:128px; width:26px; height:19px; ">
  1366. <caption/>
  1367. <script type="javascript" ev:event="onclick">
  1368. <![CDATA[
  1369. fExeEpandGrid("2");
  1370. ]]>
  1371. </script>
  1372. </button>
  1373. <button id="button1" class="btn2_letter3" visibility="visible" style="left:162px; top:128px; width:53px; height:19px; ">
  1374. <caption>확 장</caption>
  1375. <script type="javascript" ev:event="DOMActivate">
  1376. <![CDATA[
  1377. fExeResizeRow();
  1378. ]]>
  1379. </script>
  1380. </button>
  1381. <group id="grp_ptlist" style="left:0px; top:152px; width:274px; height:558px; ">
  1382. <datagrid id="grd_rsltptnolist" nodeset="/root/main/rsltptno/rsltptnolist" class="datagrid2" autoresize="false" caption="^기관코드^ptno^병리번호^관련병리번호^병리번호^관련병리번호^관계^환자명^등록번호^readdrlist^readdrid1^readdrid2^readdrid3^readdrid4^rsltrgstno^doctrgstdd^doctrgstno^workflagcd^prcpgenrflag^extrpartcd^extrmthdcd^diagcd^orddd^cretno^orddeptcd^orddrid^bizflagcd^차수^mpphonno^diagcnts^addreadrslt^M코드^진단^대표검체^처방명^처방일자^접수일자^결과&#xA;등록일자^육안&#xA;검사자^판독의^사진^조직^진료과^주치의^rsltkindflag^localdd^localtm^지연사유" colsep="^" colwidth="25, 0, 0, 0, 0, 78, 78, 0, 68, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 260, 100, 260, 70, 70, 70, 50, 50, 30, 30, 70, 50, 100, 0, 0, 150" dataheight="23" ellipsis="true" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" navindex="6" style="left:0px; top:1px; width:271px; height:554px; ">
  1383. <col ref="choi" type="checkbox"/>
  1384. <col ref="instcd"/>
  1385. <col ref="ptno"/>
  1386. <col ref="dispptno"/>
  1387. <col ref="relatptno"/>
  1388. <col ref="ptnocp" style="text-align:center; "/>
  1389. <col ref="relatptnocp" style="text-align:center; "/>
  1390. <col ref="relation"/>
  1391. <col ref="patnm" style="text-align:center; "/>
  1392. <col ref="pid"/>
  1393. <col ref="readdrlist"/>
  1394. <col ref="readdrid1"/>
  1395. <col ref="readdrid2"/>
  1396. <col ref="readdrid3"/>
  1397. <col ref="readdrid4"/>
  1398. <col ref="rsltrgstno"/>
  1399. <col ref="doctrgstdd"/>
  1400. <col ref="doctrgstno"/>
  1401. <col ref="workflagcd"/>
  1402. <col ref="prcpgenrflag"/>
  1403. <col ref="extrpartcnts"/>
  1404. <col ref="extrmthdcnts"/>
  1405. <col ref="diagcd"/>
  1406. <col ref="orddd"/>
  1407. <col ref="cretno"/>
  1408. <col ref="orddeptcd"/>
  1409. <col ref="orddrid"/>
  1410. <col ref="bizflagcd"/>
  1411. <col ref="addrsltdg"/>
  1412. <col ref="mpphonno"/>
  1413. <col ref="diagcnts"/>
  1414. <col ref="addreadrslt"/>
  1415. <col ref="pdiagcnt"/>
  1416. <col ref="cntrsltcnts"/>
  1417. <col ref="spccd" style="text-align:left; "/>
  1418. <col ref="extrmthdcnts2"/>
  1419. <col ref="prcpdd" style="text-align:center; "/>
  1420. <col ref="acptdd" style="text-align:center; "/>
  1421. <col ref="rsltrgstdd" style="text-align:center; "/>
  1422. <col ref="grosdrid" style="text-align:center; "/>
  1423. <col ref="readnm" style="text-align:center; "/>
  1424. <col ref="grospic" style="text-align:center; "/>
  1425. <col ref="chogic" style="text-align:center; "/>
  1426. <col ref="orddeptnm"/>
  1427. <col ref="orddrnm" style="text-align:center; "/>
  1428. <col ref="rsltkindflag" visibility="hidden"/>
  1429. <col ref="localdd"/>
  1430. <col ref="localtm"/>
  1431. <col itemcount="20" ref="delayresncd" type="combo">
  1432. <choices>
  1433. <itemset nodeset="/root/init/delayresn/resncdlist">
  1434. <label ref="resncnts"/>
  1435. <value ref="resncd"/>
  1436. </itemset>
  1437. </choices>
  1438. </col>
  1439. <script type="javascript" ev:event="onclick">
  1440. <![CDATA[
  1441. fExeGridClick(grd_rsltptnolist.row, grd_rsltptnolist.col);
  1442. ]]>
  1443. </script>
  1444. <script type="javascript" ev:event="onaftersort">
  1445. <![CDATA[
  1446. grd_rsltptnolist.gridToInstance();
  1447. ]]>
  1448. </script>
  1449. <script type="javascript" ev:event="xforms-select">
  1450. <![CDATA[
  1451. fExeGridClick(grd_rsltptnolist.row, grd_rsltptnolist.col);
  1452. ]]>
  1453. </script>
  1454. <script type="javascript" ev:event="DOMFocusOut">
  1455. <![CDATA[
  1456. window.setPopupMenu(false);
  1457. ]]>
  1458. </script>
  1459. <script type="javascript" ev:event="onmousedown">
  1460. <![CDATA[
  1461. fPopUp();
  1462. ]]>
  1463. </script>
  1464. </datagrid>
  1465. </group>
  1466. <group id="grp_testlist" visibility="hidden" style="left:705; top:125; width:460px; height:463px; ">
  1467. <button id="btn_cls" class="btn4_letter2" style="left:404px; top:440px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  1468. <caption>닫기</caption>
  1469. <script type="javascript" ev:event="DOMActivate">
  1470. <![CDATA[
  1471. grp_testlist.visible = false;
  1472. ]]>
  1473. </script>
  1474. </button>
  1475. <button id="btn_cfm" class="btn4_letter2" style="left:345px; top:440px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  1476. <caption>확인</caption>
  1477. <script type="javascript" ev:event="DOMActivate">
  1478. <![CDATA[
  1479. fExeTestItemChoi();
  1480. ]]>
  1481. </script>
  1482. </button>
  1483. <datagrid id="grd_testlist" nodeset="/root/init/testinfo/testitemlist" caption="선택^기관코드^코드^명칭^약어" colsep="^" colwidth="56, 0, 80, 300, 0" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:0px; width:460px; height:437px; ">
  1484. <col ref="choi" type="checkbox"/>
  1485. <col ref="instcd"/>
  1486. <col ref="testcd"/>
  1487. <col ref="testengnm"/>
  1488. <col ref="testengabbr"/>
  1489. <script type="javascript" ev:event="onaftersort">
  1490. <![CDATA[
  1491. grd_testlist.gridToInstance();
  1492. ]]>
  1493. </script>
  1494. </datagrid>
  1495. </group>
  1496. <line id="line6" class="line_3" style="x1:705px; y1:122px; x2:1190px; y2:122px; "/>
  1497. </group>
  1498. <group id="grp_btn" scroll="auto" style="left:0px; top:13; width:1195px; height:27px; ">
  1499. <line id="line9" class="line_6" style="x1:0px; y1:25; x2:1194px; y2:25; "/>
  1500. <button id="btn_lastdiag" class="btn4_letter4" disabled="false" navindex="7" style="left:1114px; top:3px; width:80px; height:22px; ">
  1501. <caption>최종진단</caption>
  1502. <script type="javascript" ev:event="DOMActivate">
  1503. <![CDATA[
  1504. fExeLastDiag();
  1505. ]]>
  1506. </script>
  1507. </button>
  1508. <button id="button2" style="left:55px; top:5px; width:65px; height:15px; ">
  1509. <caption/>
  1510. <script type="javascript" ev:event="DOMActivate">
  1511. <![CDATA[
  1512. lpzfExeSaveToExcel(grd_rsltptnolist, "확인목록");
  1513. ]]>
  1514. </script>
  1515. </button>
  1516. </group>
  1517. </xhtml:body>
  1518. </xhtml:html>