SPMMR06600.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. FreeText확장(추가기록) ( SPMMMR06600_FreeText확장.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. var etcsuplevlcd = opener.window.javascript.getParameter("lastdiag_supdegnitemcd");
  9. var instance = document.models(0).instances(0);
  10. var pageInfo = new PAGEINFO();
  11. var g_openMode = "";
  12. /**
  13. * @desc : 초기 화면 설정
  14. * @id :
  15. * @event : xforms-ready
  16. * @return : void
  17. * @authur : 강지훈
  18. */
  19. function fFormReady_06600()
  20. {
  21. model.removeNodeset("/root/main/selectdiaglist");
  22. grd_diaglist.col = 4;
  23. grd_diaglist.row = grd_diaglist.rows - 1;
  24. opener.window.javascript.clearParameter("lastdiag_saveflag_" + etcsuplevlcd);
  25. var lastdiagNodes = opener.opener.instance1.selectNodes(pageInfo.recItemRef + "[formcd = '1000007943']");
  26. if (lastdiagNodes.length > 0) // 신규작성이 아닐때
  27. {
  28. model.removeNodeset("/root/hidden/recinfo");
  29. copyNodeset(pageInfo.recItemRef2, pageInfo.recItemRef + "[formcd = '1000007943']", "replace", model, opener.opener.model);
  30. InitPgmFormData();
  31. var lastrecopin = model.getValue("/root/hidden/recinfo/recitem[degnitemcd = '0023470001']/reccnts");
  32. var srchPointChr = lastrecopin.lastIndexOf("\n ※");
  33. var lastrecopin = lastrecopin.substring(0, srchPointChr);
  34. model.setValue("/root/main/lastdiagrec" , lastrecopin);
  35. model.setValue("/root/temp/openMode", "M");
  36. model.refresh();
  37. btn_del.visible = true;
  38. tar_extn.refresh();
  39. model.setFocus("tar_extn");
  40. }
  41. else{ //신규작성일때
  42. model.setValue("/root/temp/openMode", "C");
  43. //fGetDiagNm(parent.parent.instance1.selectSingleNode("/root/main/recinfo/formrec")); //환자 진단 가져온다.
  44. //fSetLastDiagRec("/root/hidden/recinfo", false);
  45. btn_del.visible = false;
  46. }
  47. fIsCommentExist();
  48. }
  49. /**
  50. * @desc : 인증저장 클릭
  51. * @id :
  52. * @event : DOMActivate
  53. * @return : void
  54. * @authur : 강지훈
  55. */
  56. function fConfirm()
  57. {
  58. //main node의 기록정보를 send node에 셋팅
  59. var saveFlag = fSetLastDiagRec("/root/send/recinfo"); //false는 값을 비교하기위해, true는 저장용
  60. if(saveFlag == "D") {
  61. opener.window.javascript.setParameter("lastdiag_saveflag_" + etcsuplevlcd, "D");
  62. }
  63. else{
  64. //send node data를 로더에 setting
  65. copyNodeset(pageInfo.lastdiagItemRef, "/root/send/recinfo", "replace", opener.model, model);
  66. opener.window.javascript.setParameter("lastdiag_saveflag_" + etcsuplevlcd, "S");
  67. }
  68. window.close();
  69. }
  70. /**
  71. * @desc : 닫기
  72. * @id :
  73. * @event : DOMActivate
  74. * @return : void
  75. * @authur : 강지훈
  76. */
  77. function fClose()
  78. {
  79. var saveParaFlag = opener.window.javascript.getParameter("lastdiag_saveflag_" + etcsuplevlcd); //파라메터로 넘길기록
  80. //D : 삭제 , S : 저장, C : 취소
  81. if(saveParaFlag == ""){
  82. var saveFlag = fSetLastDiagRec("/root/send/recinfo");
  83. if(saveFlag == "C"){
  84. opener.window.javascript.setParameter("lastdiag_saveflag_" + etcsuplevlcd, "C");
  85. }
  86. else{
  87. var rtnmsg = messageBox("기록내용 중 저장되지 않은 내용이 있습니다.", "Q002");
  88. if (rtnmsg == 6)
  89. {
  90. //fSetLastDiagRec("/root/send/recinfo", true);
  91. opener.window.javascript.setParameter("lastdiag_saveflag_" + etcsuplevlcd, saveFlag);
  92. }
  93. }
  94. }
  95. }
  96. /**
  97. * @desc : 상용구 팝업
  98. * @id :
  99. * @event : DOMActivate
  100. * @return : void
  101. * @authur : 강지훈
  102. */
  103. function fPopCommUse()
  104. {
  105. try
  106. {
  107. setParameter("comn_chosflag", "C") // C : 상용구
  108. setParameter("comn_formprogflag", "B") // A: Summary, B : 주호소
  109. setParameter("openmode", "select");
  110. //modal("SPMRF04700");
  111. //modal("SPMRF04900");
  112. var txtSelPos = tar_extn.selBegin;
  113. var curText = tar_extn.currentText;
  114. var curTextBefore = curText.substr(0, txtSelPos);
  115. var curTextAfter = curText.substr(txtSelPos, curText.length);
  116. modalForComnUse("SPMRF04900",1 ,50, 50);
  117. var rtn = getParameter("comncnts"); //내용
  118. setParameter("comncnts", "");
  119. var reccnts = tar_extn.currentText;
  120. var SetEndCursorPos = txtSelPos;
  121. SetEndCursorPos += rtn.length;
  122. if (rtn == "")
  123. {
  124. return;
  125. }
  126. if (reccnts == "")
  127. {
  128. model.setValue("/root/main/lastdiagrec", rtn);
  129. }
  130. else
  131. {
  132. model.setValue("/root/main/lastdiagrec", reccnts + "\n" + rtn);
  133. SetEndCursorPos += 1; // "\n" 문자길이를 추가로 더함.
  134. }
  135. tar_extn.refresh();
  136. model.setFocus("tar_extn");
  137. tar_extn.selBegin = SetEndCursorPos;
  138. tar_extn.selEnd = SetEndCursorPos;
  139. }
  140. catch(e)
  141. {
  142. }
  143. }
  144. /**
  145. * @desc : 잘라내기
  146. * @id :
  147. * @event :
  148. * @return : void
  149. * @authur : 2009-09-24 오후 4:27:33 강지훈
  150. */
  151. function fselectCutMenu()
  152. {
  153. window.clipBoardData = tar_extn.selectionText;
  154. tar_extn.selectionText = "";
  155. }
  156. /**
  157. * @desc : 복사
  158. * @id :
  159. * @event :
  160. * @return : void
  161. * @authur : 2009-09-24 오후 4:27:33 강지훈
  162. */
  163. function fselectCopyMenu()
  164. {
  165. window.clipBoardData = tar_extn.selectionText;
  166. }
  167. /**
  168. * @desc : 붙여넣기
  169. * @id :
  170. * @event :
  171. * @return : void
  172. * @authur : 2009-09-24 오후 4:27:33 강지훈
  173. */
  174. function fselectPasteMenu()
  175. {
  176. tar_extn.dispatch("xforms-value-changed");
  177. tar_extn.selectionText = "";
  178. var txtSelPos = tar_extn.selBegin;
  179. var curText = tar_extn.currentText;
  180. var curTextBefore = curText.substr(0, txtSelPos);
  181. var curTextAfter = curText.substr(txtSelPos, curText.length);
  182. var dataType = window.clipBoardDataType;
  183. if (dataType == "TEXT")
  184. {
  185. var comncnts = escape(window.clipBoardData);
  186. comncnts = comncnts.setReplaceWord("%0D%0A", "%0A");
  187. tar_extn.currentText = curTextBefore + unescape(comncnts) + curTextAfter;
  188. }
  189. }
  190. /**
  191. * @desc : 삭제
  192. * @id :
  193. * @event :
  194. * @return : void
  195. * @authur : 2009-09-24 오후 4:27:33 강지훈
  196. */
  197. function fselectDeleteMenu()
  198. {
  199. tar_extn.selectionText = "";
  200. }
  201. /**
  202. * @desc : 모두선택
  203. * @id :
  204. * @event :
  205. * @return : void
  206. * @authur : 2009-09-24 오후 4:27:33 강지훈
  207. */
  208. function fselectSelAllMenu()
  209. {
  210. tar_extn.selBegin = 0;
  211. tar_extn.selEnd = (tar_extn.currentText).length;
  212. }
  213. function fCheckChange()
  214. {
  215. var iLeng = 0;
  216. var degnitemcd = model.getValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemno = '8' and degnitemkind = 'GSU']/degnitemcd");
  217. var dgnm = "";
  218. //진단명 코드변경
  219. if(degnitemcd.substring(0, 7) == '0000960'){
  220. dgnm = model.getValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd = '" + degnitemcd + "' and degnitemkind = 'GSU']/rectermnm");
  221. }
  222. if (dgnm == "")
  223. {
  224. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0015528001' and degnitemkind = 'GSU']/rectermnm", "");
  225. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0015528001' and degnitemkind = 'GSU']/rectermcd", "S");
  226. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0004249001' and degnitemkind = 'GSU']/rectermnm", "");
  227. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0004249001' and degnitemkind = 'GSU']/rectermcd", "C");
  228. return false;
  229. }
  230. //주/부 비교 및 주가 맨위로
  231. if ( grd_diaglist.valueMatrix ( grd_diaglist.row,2 ) == "M" && grd_diaglist.col == "2" )
  232. {
  233. for ( var i = 1; i < grd_diaglist.rows; i++ )
  234. {
  235. if ( grd_diaglist.valueMatrix ( i, 2 ) == "M" && i != grd_diaglist.row )
  236. {
  237. grd_diaglist.valueMatrix ( i, 2 ) = "S";
  238. model.setValue("/root/main/recinfo/grid[" + i + "]/recitem[degnitemcd='" + '0015528001' + "']/rectermnm", "");
  239. }
  240. }
  241. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0015528001']/rectermnm", "주");
  242. model.refresh();
  243. var iRow = grd_diaglist.row;
  244. if (iRow != 1)
  245. {
  246. var sNodeRowNo = ""; //선택된 행의 rowno
  247. var fNodeRowNo = ""; //첫번째 행의 rowno
  248. fNodeRowNo = model.getValue("/root/main/recinfo/grid[" + 1 + "]/recitem[" + 1 + "]/rowno");
  249. sNodeRowNo = model.getValue("/root/main/recinfo/grid[" + iRow + "]/recitem[" + 1 + "]/rowno");
  250. //첫번째 행의 rowno를 선택된 행의 rowno로 바꾼다
  251. var fnodelist = model.instance1.selectNodes("/root/main/recinfo/grid[" + 1 + "]/recitem");
  252. for(var i = 0; i < fnodelist.length; i++)
  253. {
  254. var node = fnodelist.item(i);
  255. var path1 = node.selectSingleNode("rowno");
  256. path1.text = sNodeRowNo;
  257. }
  258. //선택된 행의 rowno를 첫번째 행의 rowno로 바꾼다
  259. var snodelist = model.instance1.selectNodes("/root/main/recinfo/grid[" + iRow + "]/recitem");
  260. for(var i = 0; i < snodelist.length; i++)
  261. {
  262. var node = snodelist.item(i);
  263. var path1 = node.selectSingleNode("rowno");
  264. path1.text = fNodeRowNo;
  265. }
  266. model.makeValue("root/hidden/temp", "");
  267. model.copyNode("root/hidden/temp", "/root/main/recinfo/grid[" + iRow + "]");
  268. model.copyNode("/root/main/recinfo/grid[" + iRow + "]", "/root/main/recinfo/grid[" + 1 + "]");
  269. model.copyNode("/root/main/recinfo/grid[" + 1 + "]", "root/hidden/temp");
  270. model.removeNodeset("root/hidden/temp");
  271. }
  272. }
  273. else if ( grd_diaglist.valueMatrix ( grd_diaglist.row,2 ) == "S" && grd_diaglist.col == "2" )
  274. {
  275. var chkmskind = false;
  276. for ( var i = 1; i < grd_diaglist.rows; i++ )
  277. {
  278. if ( grd_diaglist.valueMatrix ( i, 2 ) == "M")
  279. {
  280. chkmskind = true;
  281. }
  282. }
  283. if(chkmskind)
  284. {
  285. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='" + '0015528001' + "']/rectermnm", "");
  286. }
  287. else
  288. {
  289. messageBox("하나의 주진단은 필수 ", "I009");
  290. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0015528001']/rectermcd", "M");
  291. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0015528001']/rectermnm", "주");
  292. return false;
  293. }
  294. }
  295. //R/O비교
  296. if ( grd_diaglist.valueMatrix ( grd_diaglist.row,1 ) == "R" && grd_diaglist.col == "1" )
  297. {
  298. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='0004249001']/rectermnm", "R/O");
  299. model.refresh();
  300. }
  301. else if ( grd_diaglist.valueMatrix ( grd_diaglist.row,1 ) == "C" && grd_diaglist.col == "1" )
  302. {
  303. model.setValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemcd='" + '0004249001' + "']/rectermnm", "");
  304. }
  305. model.refresh();
  306. }
  307. function fGrdDelRow()
  308. {
  309. if ( grd_diaglist.valueMatrix ( grd_diaglist.row,2 ) == "M")
  310. {
  311. messageBox("주진단은 삭제", "E001");
  312. return;
  313. }
  314. else
  315. {
  316. var iRow = grd_diaglist.row;
  317. var smmcnts = model.getValue("/root/main/recinfo/grid[" + iRow + "]/recitem[colno='2']/rectermnm");
  318. var smmcntcd = model.getValue("/root/main/recinfo/grid[" + iRow + "]/recitem[colno='2']/rectermcd");
  319. if(iRow > 0 && (smmcnts != "" || smmcntcd != "")){
  320. model.removeNodeset("/root/main/recinfo/grid[" + iRow + "]");
  321. model.removeNodeset("/root/main/selectdiaglist[" + iRow + "]");
  322. model.removeNodeset("/root/tmpdiag/selectdiaglist[" + iRow + "]");
  323. }
  324. else
  325. {
  326. return;
  327. }
  328. var nodelist = model.instance1.selectNodes("/root/main/recinfo/grid");
  329. var totrow = nodelist.length;
  330. var irowcnt = 0;
  331. for(var i = 0; i < totrow; i++)
  332. {
  333. var node = nodelist.item(i);
  334. var tmpnode = node.selectNodes("recitem");
  335. for(var j = 0; j < tmpnode.length; j++)
  336. {
  337. var node = tmpnode.item(j);
  338. var path1 = node.selectSingleNode("rowno");
  339. path1.text = irowcnt;
  340. }
  341. irowcnt++;
  342. }
  343. grd_diaglist.rebuild();
  344. }
  345. }
  346. function fClickPopUp()
  347. {
  348. setParameter("SPMMO3200_param_nodepath", "/root/tmpdiag");
  349. modal("../../../emr/prcpmngtweb/xrw/SPMMO03200_진단팝업.xrw", 1, 0, 0, "", "", "");
  350. var nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  351. var nodelistTemp = instance.selectNodes("/root/tmpdiag/selectdiaglist");
  352. var iRow = grd_diaglist.row;
  353. var path = "/root/main/recinfo/grid";
  354. var nodelistJuh = instance.selectNodes(path);
  355. var nodelength = nodelistJuh.length;
  356. var smmcnts = "";
  357. var degnitemcd = model.getValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemno = '8' and degnitemkind = 'GSU']/degnitemcd");
  358. if(degnitemcd.substring(0, 7) == '0000960'){
  359. smmcnts = model.getValue(path + "[" + nodelength + "]/recitem[degnitemcd = '" + degnitemcd + "' and degnitemkind = 'GSU']/rectermnm");
  360. }
  361. if (smmcnts == ""){
  362. model.removeNodeset("/root/main/recinfo/grid[" + nodelength + "]");
  363. model.removeNodeset("/root/main/selectdiaglist[" + nodelength + "]");
  364. grd_diaglist.refresh();
  365. }
  366. var iLeng = 0;
  367. var sTmpdiagcd = "";
  368. var sTmpdiagengnm = "";
  369. var iMainleng = nodelistMain.length;
  370. if(nodelistTemp.length >= 1)
  371. {
  372. for(var i = 1; i <= nodelistTemp.length; i++)
  373. {
  374. sTmpdiagcd = model.getValue("/root/tmpdiag/selectdiaglist[" + i + "]/diagcd");
  375. sTmpdiagengnm = model.getValue("/root/tmpdiag/selectdiaglist[" + i + "]/diagengnm");
  376. var iFndRow = getNodesetCnt(model, "/root/main/recinfo/grid/recitem[rectermcd='" + sTmpdiagcd + "']");
  377. if(iFndRow > 0){
  378. iMainleng = iMainleng - 1;
  379. }else if(iFndRow <= 0){
  380. iLeng = i + iMainleng;
  381. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermcd", "C");
  382. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/reccnts", "");
  383. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/comp", "false");
  384. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/colno", "0");
  385. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/rectermcd", "S");
  386. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/reccnts", "부");
  387. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/comp", "false");
  388. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/colno", "1");
  389. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 3 + "]/rectermcd", sTmpdiagcd);
  390. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 3 + "]/reccnts", sTmpdiagengnm);
  391. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 3 + "]/cntsyn", "N");
  392. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 3 + "]/comp", "true");
  393. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 3 + "]/colno", "2");
  394. }
  395. }
  396. }
  397. makeProgInstance(pageInfo, instance, nodelistMain);
  398. fAddrow();
  399. }
  400. /**
  401. * @desc : 줄추가
  402. * @
  403. * @param :
  404. * @return :
  405. * @---------------------------------------------------
  406. */
  407. function fAddrow()
  408. {
  409. var path1 = "/root/main/recinfo/grid[degnitemno = '1']";
  410. var nodelistDGN = instance.selectNodes(path1);
  411. var nodelength = nodelistDGN.length;
  412. var path2 = "/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]";
  413. copyNodeset("/root/tmp", path2, "replace", model, model);
  414. var smmcnts = model.getValue("/root/tmp/recitem[colno='2']/rectermnm");
  415. if(smmcnts != "" || nodelength == 0)
  416. {
  417. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/rectermcd", "C");
  418. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/reccnts", "");
  419. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/comp", "false");
  420. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/colno", "0");
  421. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/rectermcd", "S");
  422. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/reccnts", "");
  423. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/comp", "false");
  424. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/colno", "1");
  425. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 3 + "]/rectermcd", "");
  426. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 3 + "]/reccnts", "-");
  427. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 3 + "]/cntsyn", "N");
  428. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 3 + "]/comp", "true");
  429. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 3 + "]/colno", "2");
  430. nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  431. makeProgInstance(pageInfo, instance, nodelistMain);
  432. grd_diaglist.refresh();
  433. }
  434. }
  435. /**
  436. * @desc : 편집 후 termcd가 없는 경우 '-'를 넣어줌(저장문제)
  437. * @
  438. * @param :
  439. * @return :
  440. * @---------------------------------------------------
  441. */
  442. function fEndEdit()
  443. {
  444. //debugger;
  445. var path1 = "/root/main/recinfo/grid[degnitemno = '1']";
  446. var nodelistJuh = instance.selectNodes(path1);
  447. var nodelength = nodelistJuh.length;
  448. var smmcnts = model.getValue("/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]/recitem[colno='2']/rectermnm");
  449. var termcd = model.getValue("/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]/recitem[colno='2']/rectermcd");
  450. if(smmcnts != "" && termcd == ""){
  451. model.setValue("/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]/recitem[colno='2']/rectermcd", "-");
  452. }
  453. var sDisgnm = model.getValue("/root/main/recinfo/grid[degnitemno = '1'][" + grd_diaglist.row + "]/recitem[colno='2']/rectermnm");
  454. if (sDisgnm == ""){
  455. fGrdDelRow();
  456. }
  457. }
  458. /**
  459. * @group :
  460. * @ver : 2007.03.20
  461. * @by : ??????
  462. * @---------------------------------------------------
  463. * @type : function
  464. * @access : public
  465. * @desc : ?????? Enable / Disable
  466. * @param :
  467. * @return :
  468. * @---------------------------------------------------
  469. */
  470. function fGetDiagNm(paminfo)
  471. {
  472. var degnlvcd = model.getValue(pageInfo.initRecinfoGridrecItemRef + "[orgdegnitemkind='DGN']/degnitemlevlcd").substring(0, 7);
  473. if(paminfo != null){
  474. var pid = paminfo.selectSingleNode("pid").text
  475. var cretno = paminfo.selectSingleNode("cretno").text
  476. var orddd = paminfo.selectSingleNode("orddd").text
  477. var orddeptcd = paminfo.selectSingleNode("orddeptcd").text
  478. var ioflag = paminfo.selectSingleNode("chosflag").text
  479. fSetDiagNmbyDegnItemLevlCd(pid, cretno, orddd, orddeptcd, ioflag, degnlvcd);
  480. fAddrow();
  481. }
  482. }
  483. var gDegnItemNm = null;
  484. function fSetDiagNmInstance()
  485. {
  486. var nodelistDiaginfo = instance.selectNodes("/root/main/diaginfo/diagcdlist");
  487. var nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  488. var ro = "";
  489. var ms = "";
  490. var sDiagkindcd = "";
  491. var sDiagkindcdflag = "";
  492. if(nodelistDiaginfo.length >= 1){
  493. for(var i = 1; i <= nodelistDiaginfo.length; i++)
  494. {
  495. sDiagkindcd = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/diagkindcd");
  496. sDiagkindcdflag = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/diagkindcdflag");
  497. sTmpdiagcd = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/icd10cd");
  498. sTmpdiagengnm = model.getValue("/root/main/diaginfo/diagcdlist[" + i + "]/diagengnm");
  499. if (sDiagkindcd == "R")
  500. {
  501. ro = "R/O";
  502. }
  503. else
  504. {
  505. ro = "";
  506. sDiagkindcd = "C";
  507. }
  508. if (sDiagkindcdflag == "M")
  509. {
  510. ms = "주";
  511. }
  512. else
  513. {
  514. ms = "부";
  515. sDiagkindcdflag = "S";
  516. }
  517. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 1 + "]/rectermcd", sDiagkindcd);
  518. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 1 + "]/reccnts", ro);
  519. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 1 + "]/comp", "false");
  520. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 1 + "]/colno", "0");
  521. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 2 + "]/rectermcd", sDiagkindcdflag);
  522. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 2 + "]/reccnts", ms);
  523. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 2 + "]/comp", "false");
  524. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 2 + "]/colno", "1");
  525. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 3 + "]/rectermcd", sTmpdiagcd);
  526. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 3 + "]/reccnts", sTmpdiagengnm);
  527. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 3 + "]/comp", "true");
  528. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 3 + "]/colno", "2");
  529. model.makeValue("/root/main/selectdiaglist[" + i + "]/col["+ 3 + "]/rectermflag", "002");
  530. //2010-03-19 오전 11:17:15 강지훈 필요없음?
  531. //if (sDiagkindcdflag == "M")
  532. //{
  533. // parent.window.javascript.setParameter("SSMRF04000_diagnm", sTmpdiagengnm);
  534. //}
  535. }
  536. makeProgInstance(pageInfo, instance, nodelistMain, gDegnItemNm);
  537. }
  538. fAddrow();
  539. model.refresh();
  540. }
  541. function clearData()
  542. {
  543. model.removeNodeset("/root/main/recinfo");
  544. model.refresh();
  545. }
  546. /**
  547. * @desc : Comments 기록 존재 여부에 따른 컬럼 표시
  548. * @
  549. * @param :
  550. * @return :
  551. * @---------------------------------------------------
  552. */
  553. function fIsCommentExist()
  554. {
  555. var iFndRow = 0;
  556. //진단명 코드변경
  557. var degnitemcd = model.getValue("/root/main/recinfo/grid[" + grd_diaglist.row + "]/recitem[degnitemno = '8' and degnitemkind = 'GSU']/degnitemcd");
  558. if(degnitemcd.substring(0, 7) == '0000960'){
  559. iFndRow = getNodesetCnt(model, "/root/main/recinfo/grid/recitem[degnitemcd = '" + degnitemcd + "' and degnitemkind = 'GSU' and reccnts != '']");
  560. }
  561. if (iFndRow > 0)
  562. {
  563. grd_diaglist.colhidden(grd_diaglist.colref("recitem[colno='2']/reccnts")) = false;
  564. }
  565. else
  566. {
  567. grd_diaglist.colhidden(grd_diaglist.colref("recitem[colno='2']/reccnts")) = true;
  568. }
  569. }
  570. /**
  571. * @desc : 화면상의 최종진단명 요약 정보를 로더에 data setting
  572. * @authur : 강지훈
  573. * @param :
  574. * @return : void
  575. * @---------------------------------------------------
  576. */
  577. function fSetLastDiagRec(targetNode, lastDiagOpinFlag){
  578. var openMode = model.getValue("/root/temp/openMode");
  579. var lastDiagRec = model.getValue("/root/main/lastdiagrec");
  580. //if(openMode == "M"){
  581. lastDiagRec = lastDiagRec + "\n ※퇴원후 결과에 의하여 최종진단명이 추가되었습니다."; //요청사항에 의해 붙여진 문구(여의도 조은실선생님 요청)
  582. //}
  583. var instcd = instance1.createElement("instcd" );
  584. var rechistseq = instance1.createElement("rechistseq" );
  585. var recitemno = instance1.createElement("recitemno" );
  586. var fstlevlitemcd = instance1.createElement("fstlevlitemcd" );
  587. var formcd = instance1.createElement("formcd" );
  588. var formdegnseq = instance1.createElement("formdegnseq" );
  589. var degnitemno = instance1.createElement("degnitemno" );
  590. var degnitemcd = instance1.createElement("degnitemcd" );
  591. var degnitemkind = instance1.createElement("degnitemkind" );
  592. var degnitemlevlno = instance1.createElement("degnitemlevlno" );
  593. var degnitemnm = instance1.createElement("degnitemnm" );
  594. var degnitemlevlcd = instance1.createElement("degnitemlevlcd" );
  595. var rectermcd = instance1.createElement("rectermcd" );
  596. var rectermnm = instance1.createElement("rectermnm" );
  597. var recrefcd = instance1.createElement("recrefcd" );
  598. var recitemnm = instance1.createElement("recitemnm" );
  599. var reccnts = instance1.createElement("reccnts" );
  600. var unitnm = instance1.createElement("unitnm" );
  601. var recimge = instance1.createElement("recimge" );
  602. var rowno = instance1.createElement("rowno" );
  603. var colno = instance1.createElement("colno" );
  604. //MRFMFORM에 있는 DATA SETTING
  605. fstlevlitemcd.text = etcsuplevlcd;
  606. formcd.text = "1000007943";
  607. formdegnseq.text = "1000058019";
  608. degnitemno .text = "2";
  609. degnitemcd .text = "0023470001";
  610. degnitemkind .text = "MTX";
  611. degnitemlevlno.text = "1";
  612. degnitemnm.text = "최종진단에 대한 소견";
  613. degnitemlevlcd.text = "0023470";
  614. reccnts.text = lastDiagRec;
  615. var recitem = instance1.createElement("recitem" );
  616. recitem.appendChild(instcd );
  617. recitem.appendChild(rechistseq );
  618. recitem.appendChild(recitemno );
  619. recitem.appendChild(fstlevlitemcd );
  620. recitem.appendChild(formcd );
  621. recitem.appendChild(formdegnseq );
  622. recitem.appendChild(degnitemno );
  623. recitem.appendChild(degnitemcd );
  624. recitem.appendChild(degnitemkind );
  625. recitem.appendChild(degnitemlevlno );
  626. recitem.appendChild(degnitemnm );
  627. recitem.appendChild(degnitemlevlcd );
  628. recitem.appendChild(rectermcd );
  629. recitem.appendChild(rectermnm );
  630. recitem.appendChild(recrefcd );
  631. recitem.appendChild(recitemnm );
  632. recitem.appendChild(reccnts );
  633. recitem.appendChild(unitnm );
  634. recitem.appendChild(recimge );
  635. recitem.appendChild(rowno );
  636. recitem.appendChild(colno );
  637. // CDATA 섹션으로 묶어줌
  638. var node = recitem.selectSingleNode("reccnts");
  639. model.setValue(node, node.text, true);
  640. node = recitem.selectSingleNode("recimge");
  641. model.setValue(node, node.text, true);
  642. //sendNode에 recitemNode모으기
  643. //sendNode 초기화
  644. model.removeNodeSet(targetNode);
  645. model.makeNode(targetNode);
  646. model.removenodeset("/root/main/recinfo/recitem[degnitemcd = '0023470001']");
  647. var parentNode = instance1.selectSingleNode("/root/main/recinfo");
  648. parentNode.appendChild(recitem);
  649. getSaveData(targetNode +"/recitem", "replace", model, pageInfo);
  650. var lastrecSaveCnt = instance1.selectNodes(targetNode +"/recitem").length;
  651. if(lastrecSaveCnt > 0){
  652. var oldRecNodes = fGetCSV("/root/hidden/recinfo/recitem");
  653. var newRecNodes = fGetCSV("/root/send/recinfo/recitem");
  654. //alert(oldRecNodes + "////////" + newRecNodes);
  655. if(oldRecNodes != newRecNodes){
  656. //alert(oldRecNodes + "////////" + newRecNodes);
  657. return "S"; // 저장
  658. }
  659. else{
  660. return "C"; // 취소
  661. }
  662. }
  663. else{
  664. return "D"; // 삭제
  665. }
  666. }
  667. function fGetCSV( path )
  668. {
  669. var nodes = model.instances(0).selectNodes( path + "[rectermcd != '' or reccnts != '' ]" );
  670. var saveRgstInfo = "";
  671. for (var i=0; i<nodes.length; i++)
  672. {
  673. saveRgstInfo = saveRgstInfo.concat(nodes.item(i).getXPathString("rectermcd"));
  674. saveRgstInfo = saveRgstInfo.concat(nodes.item(i).getXPathString("rectermnm"));
  675. saveRgstInfo = saveRgstInfo.concat(nodes.item(i).getXPathString("reccnts"));
  676. saveRgstInfo = saveRgstInfo.concat(".");
  677. }
  678. return saveRgstInfo;
  679. }
  680. function fDelLastRec(){
  681. var rtnmsg = messageBox("", "Q001");
  682. if (rtnmsg == 6)
  683. {
  684. opener.window.javascript.setParameter("lastdiag_saveflag_" + etcsuplevlcd, "D");
  685. }
  686. window.close();
  687. }