SMLPR02100_환자별결과등록.xrw 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLPR00500_분자결과일괄등록.xrw
  4. * 설 명 : 분자결과 일괄등록
  5. * 설 계 자 : (주)에이씨케이 - 황상미
  6. * 작 성 자 : (주)에이씨케이 - 황상미
  7. * 작 성 일 : 2006.12.13
  8. * 수정이력 : 2007.06.07
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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. <moleptno>
  20. <moleptnolist>
  21. <instcd/>
  22. <ptno/>
  23. <dispptno/>
  24. <acptdd/>
  25. <pid/>
  26. <patnm/>
  27. <testcd/>
  28. <testnmlist/>
  29. <scrn/>
  30. <scanyn/>
  31. <formcd/>
  32. <cretno/>
  33. <specdrnm/>
  34. </moleptnolist>
  35. </moleptno>
  36. <molerslt>
  37. <bfptnolist>
  38. <instcd/>
  39. <ptno/>
  40. <dispptno/>
  41. <rsltrgstdd/>
  42. <testrslt/>
  43. </bfptnolist>
  44. <prcplist>
  45. <instcd/>
  46. <ptno/>
  47. <dispptno/>
  48. <testnm/>
  49. <spcnm/>
  50. <pid/>
  51. <patnm/>
  52. <bftestrslt/>
  53. <testrslt/>
  54. <sexage/>
  55. <orddeptcd/>
  56. <orddeptnm/>
  57. <orddrid/>
  58. <orddrnm/>
  59. <wardroom/>
  60. <prcpdd/>
  61. <prcptm/>
  62. <acptdd/>
  63. <acpttm/>
  64. <rsltrgstdd/>
  65. <rsltrgsttm/>
  66. <acptno/>
  67. <orgprcpstatcd/>
  68. <testcd/>
  69. <spccd/>
  70. <prcpno/>
  71. <execprcpuniqno/>
  72. <rsltrgstno/>
  73. <rgstnm/>
  74. <orgtestrslt/>
  75. <inptdd/>
  76. <inpttm/>
  77. <extrpartcd/>
  78. <extrmthdcd/>
  79. <diagcd/>
  80. <cmtcnts/>
  81. <spckeepflagcd/>
  82. <conccaseflagcd/>
  83. <rslthideflagcd/>
  84. <preprsltflagcd/>
  85. <workflagcd/>
  86. <trandd/>
  87. <tranno/>
  88. <choi/>
  89. <rsltrgstid/>
  90. <acptitemno/>
  91. <orgacptstatcd/>
  92. <prcpgenrflag/>
  93. </prcplist>
  94. </molerslt>
  95. </main>
  96. <send/>
  97. <init>
  98. <pid/>
  99. <readdrid/>
  100. <acptfromdd/>
  101. <acpttodd/>
  102. <ptnocode/>
  103. <fromyear/>
  104. <fromptno/>
  105. <toyear/>
  106. <toptno/>
  107. <rsltflagcd>1</rsltflagcd>
  108. <sysdt>
  109. <sysdtinfo>
  110. <sysdd/>
  111. <systm/>
  112. </sysdtinfo>
  113. </sysdt>
  114. <hospenv>
  115. <hospenvinfo>
  116. <instcd/>
  117. <lendrtnterm/>
  118. <recvqualmthdcd/>
  119. <plgydeptcd/>
  120. <plgyteamcd/>
  121. <doctjobgradcd/>
  122. <teamjobgradcd/>
  123. </hospenvinfo>
  124. </hospenv>
  125. <userinfo>
  126. <userinfolist>
  127. <userid/>
  128. <usernm/>
  129. <jobkindcd/>
  130. </userinfolist>
  131. </userinfo>
  132. <ptnocd>
  133. <ptnocdlist>
  134. <instcd/>
  135. <ptnocd/>
  136. <ptnonm/>
  137. </ptnocdlist>
  138. </ptnocd>
  139. <testnmlist/>
  140. <testinfo>
  141. <testitemlist>
  142. <instcd/>
  143. <dispseqno/>
  144. <testcd/>
  145. <testengnm/>
  146. <testengabbr/>
  147. <testhngnm/>
  148. <testhngabbr/>
  149. <basepartcd/>
  150. <basepartnm/>
  151. <detlpartcd/>
  152. <detlpartnm/>
  153. <singletest_cnt/>
  154. </testitemlist>
  155. </testinfo>
  156. <testcdlist/>
  157. </init>
  158. <hidden>
  159. <readdrlist>
  160. <readdrid/>
  161. </readdrlist>
  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/stringHelper.js"/>
  168. <script type="javascript" src="../../../lis/commonweb/js/LPZ001.js"/>
  169. <script type="javascript" ev:event="xforms-ready">
  170. <![CDATA[
  171. fExeInitialize();
  172. ]]>
  173. </script>
  174. <submission id="TRLPZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/hospenv/hospenvinfo"/>
  175. <submission id="TRLPZ00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/sysdt/sysdtinfo"/>
  176. <submission id="TRLPZ00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/userinfo/userinfolist"/>
  177. <submission id="TRLPZ00109" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/ptnocd/ptnocdlist"/>
  178. <submission id="TRLPC00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/testinfo/testitemlist"/>
  179. <submission id="TRLPR00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/moleptno/moleptnolist"/>
  180. <submission id="TRLPR01901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/molerslt/prcplist"/>
  181. <submission id="TXLPR00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/message"/>
  182. </model>
  183. <script type="javascript">
  184. <![CDATA[
  185. /* @group : 분자결과등록
  186. * @ver : 2007.06.07 (CMCDEV-0001)
  187. * @by : 유동철(ACK)
  188. * @-----------------------------------
  189. * @type : function
  190. * @access : public
  191. * @desc : 화면초기화 함수
  192. */
  193. function fExeInitialize() {
  194. var sCurDate = "";
  195. model.removeNodeset("/root/main/moleptno/moleptnolist");
  196. //----------------
  197. // 시스템일시 조회
  198. model.removeNodeset("/root/send");
  199. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  200. submit("TRLPZ00101", false);
  201. submit("TRLPZ00102", false);
  202. submit("TRLPZ00109", false);
  203. //---------------------------------------------------------
  204. // 병원환경정보를 취득하여 병리과와 병리팀 코드를 편집한다.
  205. lpzfUserDeptCd("/root/init/hospenv/hospenvinfo", "/root/hidden");
  206. //----------------------------------------------------------------------------------
  207. model.makeValue("/root/send/userdeptcd", model.getValue("/root/hidden/userdeptcd"));
  208. model.makeValue("/root/send/doctjobgradcd", model.getValue("/root/init/hospenv/hospenvinfo/doctjobgradcd"));
  209. model.makeValue("/root/send/teamjobgradcd", model.getValue("/root/init/hospenv/hospenvinfo/teamjobgradcd"));
  210. submit("TRLPZ00105");
  211. //------------
  212. // 초기값 설정
  213. sCurDate = model.getValue("/root/init/sysdt/sysdtinfo/sysdd");
  214. model.makeValue("/root/init/pid", ""); // 등록번호
  215. model.makeValue("/root/init/readdrid", ""); // 판독의사
  216. model.makeValue("/root/init/rsltflagcd", "1"); // 결과구분(0:전체,1:미검사,2:미확인,3:결과확인)
  217. model.makeValue("/root/init/acptfromdd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd")); // 접수시작일자
  218. model.makeValue("/root/init/acpttodd", model.getValue("/root/init/sysdt/sysdtinfo/sysdd")); // 접수종료일자
  219. model.makeValue("/root/init/ptnocode", "");
  220. model.makeValue("/root/init/fromyear", sCurDate.substr(2,2));
  221. model.makeValue("/root/init/toyear", sCurDate.substr(2,2));
  222. model.makeValue("/root/init/fromptno", "");
  223. model.makeValue("/root/init/toptno", "");
  224. cmb_readdrid.disabled = true;
  225. //---------------
  226. fGetTestCdList();
  227. //--------------
  228. model.refresh();
  229. }
  230. /* @group : 분자결과등록
  231. * @ver : 2008.03.03 (CMCDEV-0001)
  232. * @by : 유동철(ACK)
  233. * @-----------------------------------
  234. * @type : function
  235. * @access : public
  236. * @desc : 분자검사목록 조회 함수
  237. */
  238. function fGetTestCdList() {
  239. model.removeNodeset("/root/send");
  240. model.removeNodeset("/root/init/testinfo/testitemlist");
  241. model.makeValue("/root/send/delflagcd", "0"); // 조회조건 사용여부구분
  242. model.makeValue("/root/send/refflag", "1"); // 조회조건 조회구분
  243. model.makeValue("/root/send/refval", "PM"); // 조회조건 조회값
  244. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); // 기관코드
  245. submit("TRLPC00401");
  246. //-----------------------------------------
  247. grd_testlist.fixedcellcheckbox(0,0) = true;
  248. }
  249. /* @group : 분자결과등록
  250. * @ver : 2007.06.07 (CMCDEV-0001)
  251. * @by : 유동철(ACK)
  252. * @-----------------------------------
  253. * @type : function
  254. * @access : public
  255. * @desc : 분자병리 접수목록 조회 함수
  256. */
  257. function fGetMolePtNoList() {
  258. var sTemp = "";
  259. var sFromDD = model.getValue("/root/init/acptfromdd");
  260. var sToDD = model.getValue("/root/init/acpttodd");
  261. //--------------------------------
  262. model.removeNodeset("/root/send");
  263. model.removeNodeset("/root/main/molerslt/bfptnolist");
  264. model.removeNodeset("/root/main/molerslt/molersltlist");
  265. model.removeNodeset("/root/main/highrisk1/molersltlist");
  266. model.removeNodeset("/root/main/highrisk2/molersltlist");
  267. model.removeNodeset("/root/main/highrisk3/molersltlist");
  268. model.removeNodeset("/root/main/lowrisk1/molersltlist");
  269. model.removeNodeset("/root/main/lowrisk2/molersltlist");
  270. //------------------------------------------------
  271. if (model.getValue("/root/init/ptnocode") != "") {
  272. //------------------------------------------------
  273. if (model.getValue("/root/init/fromyear") == "") {
  274. model.makeValue("/root/init/fromyear", sFromDD.substr(2,2));
  275. } else {
  276. sTemp = model.getValue("/root/init/fromyear");
  277. model.makeValue("/root/init/fromyear", sTemp.getLeftPad(2, "0"));
  278. }
  279. //----------------------------------------------
  280. if (model.getValue("/root/init/toyear") == "") {
  281. model.makeValue("/root/init/toyear", sToDD.substr(2,2));
  282. } else {
  283. sTemp = model.getValue("/root/init/toyear");
  284. model.makeValue("/root/init/toyear", sTemp.getLeftPad(2, "0"));
  285. }
  286. //------------------------------------------------
  287. if (model.getValue("/root/init/fromptno") == "") {
  288. model.makeValue("/root/init/fromptno", "000000");
  289. } else {
  290. sTemp = model.getValue("/root/init/fromptno");
  291. model.makeValue("/root/init/fromptno", sTemp.getLeftPad(6, "0"));
  292. }
  293. //----------------------------------------------
  294. if (model.getValue("/root/init/toptno") == "") {
  295. model.makeValue("/root/init/toptno", "999999");
  296. } else {
  297. sTemp = model.getValue("/root/init/toptno");
  298. model.makeValue("/root/init/toptno", sTemp.getLeftPad(6, "0"));
  299. }
  300. }
  301. //--------------------------------------------
  302. sTemp = model.getValue("/root/init/ptnocode");
  303. //---------------------------------------------------------------------
  304. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  305. model.makeValue("/root/send/pid", model.getValue("/root/init/pid"));
  306. model.makeValue("/root/send/ptno", model.getValue("/root/init/ptno"));
  307. model.makeValue("/root/send/readdrid", model.getValue("/root/init/readdrid"));
  308. model.makeValue("/root/send/acptfromdd", model.getValue("/root/init/acptfromdd"));
  309. model.makeValue("/root/send/acpttodd", model.getValue("/root/init/acpttodd"));
  310. model.makeValue("/root/send/rsltflagcd", model.getValue("/root/init/rsltflagcd"));
  311. model.makeValue("/root/send/workflagcd", "'1007'");
  312. model.makeValue("/root/send/ptnocode", sTemp.replace("-", ""));
  313. model.makeValue("/root/send/fromyear", model.getValue("/root/init/fromyear"));
  314. model.makeValue("/root/send/fromptno", model.getValue("/root/init/fromptno"));
  315. model.makeValue("/root/send/toyear", model.getValue("/root/init/toyear"));
  316. model.makeValue("/root/send/toptno", model.getValue("/root/init/toptno"));
  317. model.makeValue("/root/send/workflagcd", "'1007'");
  318. model.makeValue("/root/send/bizflagcd", "M");
  319. model.makeValue("/root/send/testcdlist", model.getValue("/root/init/testcdlist"));
  320. submit("TRLPR00501");
  321. }
  322. /* @group : 분자결과등록
  323. * @ver : 2007.06.07 (CMCDEV-0001)
  324. * @by : 유동철(ACK)
  325. * @-----------------------------------
  326. * @type : function
  327. * @access : public
  328. * @desc : 분자병리 접수목록 그리드 클릭 처리 함수
  329. */
  330. function fExePtNoGridClick(pRowNo) {
  331. if(pRowNo > 0 && grd_moleptnolist.isCell(event.target) && pRowNo >= grd_moleptnolist.fixedRows) {
  332. fExePtNoChoi(pRowNo);
  333. }
  334. }
  335. /* @group : 분자결과등록
  336. * @ver : 2008.02.22 (CMCDEV-0001)
  337. * @by : 유동철(ACK)
  338. * @-----------------------------------
  339. * @type : function
  340. * @access : public
  341. * @desc : 병리번호 선택 처리 함수
  342. */
  343. function fExePtNoChoi(pRowNo) {
  344. var sTestCd = "";
  345. var sTestCdList = "";
  346. var vTestCd = "";
  347. var sSrcNode = "/root/main/molerslt/molersltlist";
  348. var sNode = "/root/main/moleptno/moleptnolist";
  349. //----------------------------
  350. if (pRowNo <= 0) return false;
  351. //------------------------------------------------------------
  352. sTestCdList = model.getValue(sNode+"[" + pRowNo + "]/testcd");
  353. vTestCd = sTestCdList.split("▨");
  354. //---------------------------------------------------------
  355. for (var iRowNo=0; iRowNo < (vTestCd.length-1); iRowNo++) {
  356. sTestCd = "'" + vTestCd[iRowNo] + "', ";
  357. }
  358. //------------------
  359. if (sTestCd != "") {
  360. sTestCd = sTestCd.substr(0, (sTestCd.length-2));
  361. }
  362. //--------------
  363. // 상단정보 표시
  364. lpzfExeTopInfoDisp(model.getValue(sNode+"[" + pRowNo + "]/prcpdd"),
  365. model.getValue(sNode+"[" + pRowNo + "]/execprcpuniqno"),
  366. getUserInfo("dutplceinstcd"));
  367. //----------------------------------------------------
  368. model.removeNodeset("/root/main/molerslt/bfptnolist");
  369. model.removeNodeset("/root/main/molerslt/molersltlist");
  370. //-------------------------------------------------------------------------
  371. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd")); // 기관코드
  372. model.makeValue("/root/send/ptnocode", "");
  373. model.makeValue("/root/send/fromyear", "");
  374. model.makeValue("/root/send/fromptno", "");
  375. model.makeValue("/root/send/toyear", "");
  376. model.makeValue("/root/send/toptno", "");
  377. model.makeValue("/root/send/ptno", model.getValue(sNode+"[" + pRowNo + "]/ptno")); // 병리번호
  378. model.makeValue("/root/send/acptfromdd", model.getValue(sNode+"[" + pRowNo + "]/acptdd")); // 접수시작일자
  379. model.makeValue("/root/send/acpttodd", model.getValue(sNode+"[" + pRowNo + "]/acptdd")); // 접수종료일자
  380. model.makeValue("/root/send/refmthdcd", "2");
  381. model.makeValue("/root/send/pid", model.getValue(sNode+"[" + pRowNo + "]/pid")); // 등록번호
  382. model.makeValue("/root/send/testcdlist", sTestCd); // 검사코드목록
  383. submit("TRLPR01901");
  384. grd_prcplist.colstyle(7, "data", "background-color") = "#ffff99";
  385. //판독의사 set
  386. model.setValue("/root/hidden/readdrlist/readdrid", model.getValue("/root/main/molerslt/prcplist/readdrid"));
  387. cmb_readdr.refresh();
  388. }
  389. /* @group : 분자결과등록
  390. * @ver : 2007.06.07 (CMCDEV-0001)
  391. * @by : 유동철(ACK)
  392. * @-----------------------------------
  393. * @type : function
  394. * @access : public
  395. * @desc : 분자병리 결과등록 처리 함수
  396. */
  397. function fExeRsltSave() {
  398. var sNode = "/root/main/molerslt/prcplist";
  399. var iMaxRowCnt = 0;
  400. //-------------------------
  401. grd_prcplist.clearStatus();
  402. //----------------------------------
  403. iMaxRowCnt = getNodesetCount(sNode);
  404. for (var iNo=1; iNo <= iMaxRowCnt; iNo++) {
  405. //------------------------------------------------------------------------------------------------
  406. if (model.getValue(sNode+"["+iNo+"]/testrslt") != model.getValue(sNode+"["+iNo+"]/orgtestrslt")) {
  407. grd_prcplist.addStatus(iNo, "insert");
  408. model.setValue(sNode+"["+iNo+"]/choi", "true");
  409. model.setValue(sNode+"["+iNo+"]/rsltrgstid", getUserInfo("userid"));
  410. model.makeValue(sNode+"["+iNo+"]/scrnid", "SMLPR02100");
  411. bState = true;
  412. if(model.getValue("/root/hidden/readdrlist/readdrid") != "" &&
  413. model.getValue("/root/hidden/readdrlist/readdrid") != "-" &&
  414. model.getValue("/root/hidden/readdrlist/readdrid") != "A0" ) {
  415. model.makeValue(sNode+"["+iNo+"]/readdrid", model.getValue("/root/hidden/readdrlist/readdrid"));
  416. } else {
  417. model.makeValue(sNode+"["+iNo+"]/readdrid", "-");
  418. }
  419. }
  420. }
  421. //------------
  422. if (!bState) {
  423. messageBox("변경된 결과가 없습니다! 저장", "E001");
  424. return false;
  425. }
  426. //--------------------------------
  427. model.removeNodeset("/root/send");
  428. model.makeValue("/root/send/moletestlist", grd_prcplist.getUpdateData());
  429. //-------------------------
  430. if (submit("TXLPR00103")) {
  431. model.removeNodeset(sNode+"[choi='true']");
  432. }
  433. //---------------------
  434. grd_prcplist.refresh();
  435. }
  436. /* @group : 분자결과등록
  437. * @ver : 2007.06.08 (CMCDEV-0001)
  438. * @by : 유동철(ACK)
  439. * @-----------------------------------
  440. * @type : function
  441. * @access : public
  442. * @desc : 결과구분 변경 처리 함수
  443. */
  444. function fExeRsltFlagChange() {
  445. switch (model.getValue("/root/init/rsltflagcd")) {
  446. case "0" : cmb_readdrid.disabled = false;
  447. break;
  448. case "1" : cmb_readdrid.disabled = true;
  449. break;
  450. case "2" : cmb_readdrid.disabled = true;
  451. break;
  452. case "3" : cmb_readdrid.disabled = false;
  453. break;
  454. }
  455. }
  456. function fExeRefValKeyPress() {
  457. if(event.keyCode == 13) {
  458. model.setValue("/root/init/pid", ipt_pid.currentText);
  459. ipt_pid.refresh();
  460. //-----------------
  461. fGetMolePtNoList();
  462. }
  463. }
  464. function fExeTestItemChoi() {
  465. var iFindNo = 0;
  466. var sTestCd = "";
  467. var sTestNm = "";
  468. var bState = false;
  469. var sNode = "/root/init/testinfo/testitemlist";
  470. //-------------------------------------------
  471. iFindNo = grd_testlist.findRow("true", 1, 0);
  472. if (Number(iFindNo) <= 0) {
  473. model.makeValue("/root/init/testcdlist", "");
  474. model.makeValue("/root/init/testnmlist", "");
  475. opt_testnmlist.refresh();
  476. grp_testlist.visible = false;
  477. return false;
  478. }
  479. //-----------------------------------------------------
  480. for (var iNo=1; iNo <= getNodesetCount(sNode); iNo++) {
  481. //-----------------------------------------------------
  482. if (model.getValue(sNode+"["+iNo+"]/choi") == "true") {
  483. if (bState) {
  484. sTestCd += ", '" + model.getValue(sNode+"["+iNo+"]/testcd") + "'";
  485. sTestNm += ", " + model.getValue(sNode+"["+iNo+"]/testengnm");
  486. } else {
  487. sTestCd += "'" + model.getValue(sNode+"["+iNo+"]/testcd") + "'";
  488. sTestNm += model.getValue(sNode+"["+iNo+"]/testengnm");
  489. bState = true;
  490. }
  491. }
  492. }
  493. //------------------------------------------------
  494. model.makeValue("/root/init/testcdlist", sTestCd);
  495. model.makeValue("/root/init/testnmlist", sTestNm);
  496. opt_testnmlist.refresh();
  497. grp_testlist.visible = false;
  498. }
  499. /* @group : 환자별 결과등록
  500. * @ver : 2008.03.03 (CMCDEV-0001)
  501. * @by : 유동철(ACK)
  502. * @-----------------------------------
  503. * @type : function
  504. * @access : public
  505. * @desc : 검사결과 입력 시 처리 Function
  506. */
  507. function fExeRsltInptKeyPress() {
  508. if (event.keyCode == 13) {
  509. //--------------------
  510. fExeRsltChangeColor();
  511. //------------------------------------------------------------------------
  512. if (grd_prcplist.row == getNodesetCount("/root/main/molerslt/prcplist")) {
  513. return false;
  514. } else {
  515. grd_prcplist.row = Number(grd_prcplist.row) + 1;
  516. }
  517. }
  518. }
  519. /* @group : 환자별 결과등록
  520. * @ver : 2008.03.03 (CMCDEV-0001)
  521. * @by : 유동철(ACK)
  522. * @-----------------------------------
  523. * @type : function
  524. * @access : public
  525. * @desc : 검사결과 입력 시 줄 색 변경 처리 Function
  526. */
  527. function fExeRsltChangeColor() {
  528. var iRowNo = grd_prcplist.row;
  529. var iColNo = grd_prcplist.col;
  530. var sNode = "/root/main/molerslt/prcplist";
  531. //---------------
  532. switch (iColNo) {
  533. case 8 :
  534. break;
  535. }
  536. //------------------------------------------------------------------------------------------------------
  537. if (model.getValue(sNode+"["+iRowNo+"]/testrslt") != model.getValue(sNode+"["+iRowNo+"]/orgtestrslt")) {
  538. grd_prcplist.rowstyle(iRowNo, "data", "background-color") = "#99ffcc";
  539. } else {
  540. grd_prcplist.rowstyle(iRowNo, "data", "background-color") = "#ffffff";
  541. }
  542. //---------------------
  543. grd_prcplist.refresh();
  544. }
  545. ]]>
  546. </script>
  547. </xhtml:head>
  548. <xhtml:body guideline="1,1194;2,784;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  549. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  550. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:140px; height:14px; ">환자별 결과등록</caption>
  551. </group>
  552. <group id="grp_biz" scroll="auto" style="left:0px; top:40; width:1195px; height:744px; ">
  553. <group id="group2" style="left:0px; top:10px; width:1194px; height:60px; vertical-align:top; ">
  554. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:60px; background-color:#fffbf2; border-color:#ffd799; "/>
  555. <caption id="caption1" class="search_name" style="left:16px; top:9px; width:86px; height:17px; ">등록번호 :</caption>
  556. <line id="line1" class="line_4" style="x1:1108px; y1:7px; x2:1108px; y2:53px; border-color:#ffe4bb; border-left-style:solid; "/>
  557. <caption id="caption13" class="search_name" style="left:780px; top:33px; width:86px; height:17px; ">결과구분 :</caption>
  558. <caption id="caption15" class="search_name" style="left:780px; top:9px; width:86px; height:17px; ">판독의사 :</caption>
  559. <button id="btn_search" class="btn1_letter2" navindex="7" style="left:1123px; top:19px; width:56px; height:22px; ">
  560. <caption>조회</caption>
  561. <script type="javascript" ev:event="DOMActivate">
  562. <![CDATA[
  563. fGetMolePtNoList();
  564. ]]>
  565. </script>
  566. </button>
  567. <input id="ipt_pid" ref="/root/init/pid" class="input_search" navindex="1" style="left:107px; top:8px; width:100px; height:19px; ">
  568. <script type="javascript" ev:event="onkeypress">
  569. <![CDATA[
  570. fExeRefValKeyPress();
  571. ]]>
  572. </script>
  573. </input>
  574. <select1 id="cmb_readdrid" ref="/root/init/readdrid" class="combo_search" navindex="3" appearance="minimal" style="left:868px; top:8px; width:100px; height:19px; ">
  575. <choices>
  576. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  577. <label ref="usernm"/>
  578. <value ref="userid"/>
  579. </itemset>
  580. </choices>
  581. </select1>
  582. <select1 id="rdo_rsltflagcd" ref="/root/init/rsltflagcd" class="radio_search" navindex="6" appearance="full" cols="4" rows="1" overflow="visible" style="left:868px; top:34px; width:225px; height:16px; border-style:none; ">
  583. <choices>
  584. <item>
  585. <label>전체</label>
  586. <value>0</value>
  587. </item>
  588. <item>
  589. <label>미검사</label>
  590. <value>1</value>
  591. </item>
  592. <item>
  593. <label>미확인</label>
  594. <value>2</value>
  595. </item>
  596. <item>
  597. <label>결과완료</label>
  598. <value>3</value>
  599. </item>
  600. </choices>
  601. <script type="javascript" ev:event="xforms-value-changed">
  602. <![CDATA[
  603. fExeRsltFlagChange();
  604. ]]>
  605. </script>
  606. </select1>
  607. <select1 id="cbo_ptnocd" ref="/root/init/ptnocode" navindex="1" appearance="minimal" editmode="search" style="left:107px; top:33px; width:151px; height:19px; ">
  608. <choices>
  609. <itemset nodeset="/root/init/ptnocd/ptnocdlist">
  610. <label ref="ptnonm"/>
  611. <value ref="ptnocd"/>
  612. </itemset>
  613. </choices>
  614. </select1>
  615. <input id="ipt_fromptno" ref="/root/init/fromptno" class="text_center" navindex="3" maxlength="6" style="left:291px; top:33px; width:50px; height:19px; "/>
  616. <caption id="caption12" class="search_no_b" style="left:648px; top:8px; width:12px; height:17px; ">~</caption>
  617. <caption id="caption14" class="search_name" style="left:16px; top:34px; width:86px; height:17px; ">병리번호 :</caption>
  618. <input id="input1" ref="/root/init/toptno" class="text_center" navindex="5" maxlength="6" style="left:389px; top:33px; width:50px; height:19px; "/>
  619. <input id="ipt_acpttodd" ref="/root/init/acpttodd" class="input_s_essential" navindex="5" inputtype="date" style="left:663px; top:8px; width:100px; height:19px; ">
  620. <script type="javascript" ev:event="xforms-value-changed">
  621. <![CDATA[
  622. lpzfExeDateChange(ipt_toyear, "/root/init/acpttodd", "/root/init/toyear");
  623. ]]>
  624. </script>
  625. </input>
  626. <caption id="caption17" class="search_no_b" style="left:344px; top:33px; width:12px; height:17px; ">~</caption>
  627. <caption id="caption9" class="search_name" style="left:456px; top:9px; width:86px; height:17px; ">접수일자 :</caption>
  628. <input id="ipt_fromyear" ref="/root/init/fromyear" class="text_center" navindex="2" maxlength="2" style="left:261px; top:33px; width:27px; height:19px; "/>
  629. <input id="ipt_acptfromdd" ref="/root/init/acptfromdd" class="input_s_essential" navindex="4" inputtype="date" style="left:545px; top:8px; width:100px; height:19px; ">
  630. <script type="javascript" ev:event="xforms-value-changed">
  631. <![CDATA[
  632. lpzfExeDateChange(ipt_fromyear, "/root/init/acptfromdd", "/root/init/fromyear");
  633. ]]>
  634. </script>
  635. </input>
  636. <input id="ipt_toyear" ref="/root/init/toyear" class="text_center" navindex="4" maxlength="2" style="left:359px; top:33px; width:27px; height:19px; "/>
  637. <caption id="caption18" class="search_name" style="left:456px; top:34px; width:86px; height:17px; ">검사코드 :</caption>
  638. <output id="opt_testnmlist" ref="/root/init/testnmlist" style="left:545px; top:33px; width:200px; height:19px; border-color:#000000; border-style:solid; "/>
  639. <button id="btn_bloc" style="left:749px; top:33px; width:14px; height:16px; background-image:../../../com/commonweb/images/icon_search.gif; ">
  640. <caption/>
  641. <script type="javascript" ev:event="DOMActivate">
  642. <![CDATA[
  643. grp_testlist.visible = true;
  644. ]]>
  645. </script>
  646. </button>
  647. </group>
  648. <datagrid id="grd_moleptnolist" nodeset="/root/main/moleptno/moleptnolist" caption="instcd^ptno^병리번호^동의서^접수일^등록번호^환자명^검사코드^검사종목^scanyn^formcd^cretno^선택진료의" colsep="^" colwidth="0, 0, 80, 84, 72, 72, 72, 0, 204, 0, 0, 0, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" navindex="8" style="left:0px; top:100px; width:540px; height:642px; ">
  649. <col ref="instcd"/>
  650. <col ref="ptno"/>
  651. <col class="text_center" ref="dispptno"/>
  652. <col ref="scrn"/>
  653. <col class="text_center" ref="acptdd" format="yyyy-mm-dd" mask="exclude" showmask="true"/>
  654. <col class="text_center" ref="pid"/>
  655. <col class="text_center" ref="patnm"/>
  656. <col ref="testcd"/>
  657. <col ref="testnmlist"/>
  658. <col ref="sacnyn"/>
  659. <col ref="formcd"/>
  660. <col ref="cretno"/>
  661. <col ref="specdrnm"/>
  662. <script type="javascript" ev:event="onclick">
  663. <![CDATA[
  664. //동의서 컬럼을 클릭하였을 경우 스캔한 동의서가 있을 경우 스캔 이미지를 조회한다.
  665. if ( (grd_moleptnolist.row >= grd_moleptnolist.fixedRows) && (grd_moleptnolist.isCell(event.target)) && grd_moleptnolist.col == grd_moleptnolist.colRef("scrn")) {
  666. //스캔한 동의서가 있을 경우 스캔 이미지를 조회한다.
  667. if(model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/scanyn") == "Y"){
  668. //================================================================================================
  669. //pid : 환자번호
  670. //orddeptcd : 진료과 코드
  671. //indd : 입(내)원일
  672. //docucd : 서식코드
  673. //ioflag : 입원/외래
  674. //cmc_cretno : 생성번호
  675. //================================================================================================
  676. model.resetInstanceNode("/root/send/iemr");
  677. var prcpgenrflag = model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/prcpgenrflag");
  678. /* if((prcpgenrflag == "O") ||(prcpgenrflag == "S")) {
  679. prcpgenrflag = "O";
  680. } else {
  681. prcpgenrflag = "I";
  682. }*/
  683. model.makeValue("/root/send/iemr/pid", model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/pid"));
  684. model.makeValue("/root/send/iemr/orddeptcd", model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/orddeptcd"));
  685. model.makeValue("/root/send/iemr/indd", model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/orddd"));
  686. model.makeValue("/root/send/iemr/docucd", model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/formcd"));
  687. model.makeValue("/root/send/iemr/ioflag", prcpgenrflag);
  688. model.makeValue("/root/send/iemr/cmc_cretno", model.getValue("/root/main/moleptno/moleptnolist["+ grd_moleptnolist.row +"]/cretno"));
  689. model.makeValue("/root/send/iemr/cmc_spcid", "");
  690. model.makeValue("/root/send/iemr/cmc_orddate", "");
  691. model.makeValue("/root/send/iemr/cmc_orderseqno", "");
  692. if(window.children.item("imgemrviewer") == null) {
  693. open("SSMRC03110", "", "", "", "imgemrviewer", "/root/send/iemr", "/root/hidden/temp")
  694. //window.load("SSMRC03110.xrw", "modeless", "imgemrviewer", "", "/root/send/iemr", "/root/hidden/temp");
  695. }
  696. else
  697. {
  698. // 팝업 EMR Viewer 사용중인 상태에서 리로드 기능 추가 - 20080416
  699. var iemrNode = instance1.selectSingleNode("/root/send/iemr");
  700. window.children.item("imgemrviewer").javascript.reloadChart(iemrNode);
  701. // 팝업 EMR Viewer 화면 맨 앞으로 가져오기
  702. window.children.item("imgemrviewer").modelesstopmost = true;
  703. window.children.item("imgemrviewer").modelesstopmost = false;
  704. }
  705. } else {
  706. fExePtNoGridClick(grd_moleptnolist.row);
  707. }
  708. } else {
  709. fExePtNoGridClick(grd_moleptnolist.row);
  710. }
  711. ]]>
  712. </script>
  713. </datagrid>
  714. <caption id="caption2" class="tit_2" style="left:5px; top:80px; width:111px; height:14px; ">병리번호 목록</caption>
  715. <line id="line2" class="line_1" style="x1:0px; y1:95; x2:540px; y2:95; "/>
  716. <output id="output1" ref="/root/init/testcdlist" visibility="hidden" style="left:325px; top:75px; width:270px; height:19px; "/>
  717. <datagrid id="grd_bfrsltlist" nodeset="/root/main/molerslt/bfptnolist" caption="instcd^ptno^병리번호^결과일자^결과값" colsep="^" colwidth="0, 0, 80, 80, 449" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" navindex="17" style="left:544px; top:558px; width:649px; height:184px; ">
  718. <col ref="instcd"/>
  719. <col ref="ptno"/>
  720. <col ref="dispptno"/>
  721. <col class="text_center" ref="rsltrgstdd" format="yyyy-mm-dd" mask="exclude" showmask="true"/>
  722. <col ref="testrslt"/>
  723. </datagrid>
  724. <line id="line11" class="line_1" style="x1:544px; y1:553px; x2:1193px; y2:553px; "/>
  725. <caption id="caption16" class="tit_2" style="left:549px; top:539px; width:128px; height:13px; ">이전결과</caption>
  726. <line id="line3" class="line_1" style="x1:544px; y1:95px; x2:1193px; y2:95px; "/>
  727. <caption id="caption3" class="tit_2" style="left:549px; top:81px; width:128px; height:14px; ">검사별 결과</caption>
  728. <datagrid id="grd_prcplist" nodeset="/root/main/molerslt/prcplist" class="datagrid2" caption="instcd^ptno^병리번호^검사명^검체명^등록번호^성명^이전결과^결과^cncrjudgflagcd^성별&#xA;나이^orddeptcd^진료과^orddrid^진료의^병동/병실^처방일자^처방시간^접수일자^접수시간^결과일자^결과시간^접수번호^orgprcpstatcd^testcd^spccd^prcpno^execprcpuniqno^rsltrgstno^등록자^orgtestrslt^inptdd^inpttm^caption1^caption2^caption3^caption4^caption5^caption6^caption7^caption8^caption9^caption10^caption11^choi^rsltrgstid^acptitemno^orgacptstatcd^prcpgenrflag^caption12^caption13^rsltcnts5^scrnid^readdrid" colsep="^" colwidth="0, 0, 0, 326, 0, 0, 0, 150, 150, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0" dataheight="25" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowsep="|" navindex="9" style="left:544px; top:100px; width:649px; height:430px; ">
  729. <col ref="instcd"/>
  730. <col ref="ptno"/>
  731. <col class="text_center" ref="dispptno"/>
  732. <col ref="testnm"/>
  733. <col ref="spcnm"/>
  734. <col class="text_center" ref="pid"/>
  735. <col ref="patnm"/>
  736. <col class="text_right" ref="bftestrslt"/>
  737. <col class="text_right" ref="testrslt" type="input"/>
  738. <col ref="cncrjudgflagcd" visibility="hidden"/>
  739. <col class="text_center" ref="sexage"/>
  740. <col ref="orddeptcd"/>
  741. <col class="text_center" ref="orddeptnm"/>
  742. <col ref="orddrid"/>
  743. <col class="text_center" ref="orddrnm"/>
  744. <col class="text_center" ref="wardroom"/>
  745. <col ref="prcpdd"/>
  746. <col ref="prcptm"/>
  747. <col class="text_center" ref="acptdd" format="yyyy-mm-dd"/>
  748. <col class="text_center" ref="acpttm" format="hh:nn:ss"/>
  749. <col class="text_center" ref="rsltrgstdd" format="yyyy-mm-dd"/>
  750. <col class="text_center" ref="rsltrgsttm" format="hh:nn:ss"/>
  751. <col ref="acptno"/>
  752. <col ref="orgprcpstatcd"/>
  753. <col ref="testcd"/>
  754. <col ref="spccd"/>
  755. <col ref="prcpno"/>
  756. <col ref="execprcpuniqno"/>
  757. <col ref="rsltrgstno"/>
  758. <col class="text_center" ref="rgstnm"/>
  759. <col ref="orgtestrslt"/>
  760. <col ref="inptdd"/>
  761. <col ref="inpttm"/>
  762. <col ref="extrpartcd"/>
  763. <col ref="extrmthdcd"/>
  764. <col ref="diagcd"/>
  765. <col ref="cmtcnts"/>
  766. <col ref="spckeepflagcd"/>
  767. <col ref="conccaseflagcd"/>
  768. <col ref="rslthideflagcd"/>
  769. <col ref="preprsltflagcd"/>
  770. <col ref="workflagcd"/>
  771. <col ref="trandd"/>
  772. <col ref="tranno"/>
  773. <col ref="choi"/>
  774. <col ref="rsltrgstid"/>
  775. <col ref="acptitemno"/>
  776. <col ref="orgacptstatcd"/>
  777. <col ref="prcpgenrflag"/>
  778. <col ref="rsltcnts3"/>
  779. <col ref="rsltcnts4"/>
  780. <col ref="rsltcnts5"/>
  781. <col ref="scrnid"/>
  782. <col ref="readdrid"/>
  783. <script type="javascript" ev:event="onaftersort">
  784. <![CDATA[
  785. grd_prcplist.gridToInstance();
  786. ]]>
  787. </script>
  788. <script type="javascript" ev:event="onkeypress">
  789. <![CDATA[
  790. fExeRsltInptKeyPress();
  791. ]]>
  792. </script>
  793. <script type="javascript" ev:event="onrowchanged">
  794. <![CDATA[
  795. ]]>
  796. </script>
  797. </datagrid>
  798. <select1 id="cmb_readdr" ref="/root/hidden/readdrlist/readdrid" class="input_s_essential" appearance="minimal" style="left:730px; top:75px; width:110px; height:19px; ">
  799. <choices>
  800. <itemset nodeset="/root/init/userinfo/userinfolist[jobkindcd='1']">
  801. <label ref="usernm"/>
  802. <value ref="userid"/>
  803. </itemset>
  804. </choices>
  805. </select1>
  806. <caption id="caption48" class="cell_1" style="left:655px; top:75px; width:75px; height:19px; vertical-align:middle; ">판독의 지정</caption>
  807. <group id="grp_testlist" visibility="hidden" style="left:545px; top:65px; width:555px; height:463px; ">
  808. <datagrid id="grd_testlist" nodeset="/root/init/testinfo/testitemlist" caption="선택^기관코드^코드^명칭^약어" colsep="^" colwidth="56, 0, 80, 200, 200" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:0px; width:555px; height:437px; ">
  809. <col ref="choi" type="checkbox"/>
  810. <col ref="instcd"/>
  811. <col ref="testcd"/>
  812. <col ref="testengnm"/>
  813. <col ref="testengabbr"/>
  814. <script type="javascript" ev:event="onaftersort">
  815. <![CDATA[
  816. grd_testlist.gridToInstance();
  817. ]]>
  818. </script>
  819. </datagrid>
  820. <button id="btn_cls" class="btn4_letter2" style="left:499px; top:440px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  821. <caption>닫기</caption>
  822. <script type="javascript" ev:event="DOMActivate">
  823. <![CDATA[
  824. grp_testlist.visible = false;
  825. ]]>
  826. </script>
  827. </button>
  828. <button id="btn_cfm" class="btn4_letter2" style="left:440px; top:440px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  829. <caption>확인</caption>
  830. <script type="javascript" ev:event="DOMActivate">
  831. <![CDATA[
  832. fExeTestItemChoi();
  833. ]]>
  834. </script>
  835. </button>
  836. </group>
  837. </group>
  838. <group id="grp_btn" scroll="auto" style="left:0px; top:13; width:1195px; height:27px; ">
  839. <line id="line14" class="line_6" style="x1:0px; y1:25; x2:1194px; y2:25; "/>
  840. <button id="btn_save" class="btn4_letter2" navindex="18" style="left:1138; top:3; width:56px; height:22px; ">
  841. <caption>저장</caption>
  842. <script type="javascript" ev:event="DOMActivate">
  843. <![CDATA[
  844. fExeRsltSave();
  845. ]]>
  846. </script>
  847. </button>
  848. </group>
  849. </xhtml:body>
  850. </xhtml:html>