MRF04000.xjs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[var pageInfo = new PAGEINFO();
  3. /**
  4. * @group :
  5. * @ver : 2007.03.20
  6. * @by :
  7. * @---------------------------------------------------
  8. * @type : function
  9. * @access : public
  10. * @desc :
  11. * @param :
  12. * @return :
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize()
  16. {
  17. // model.removeNodeset("/root/main/selectdiaglist");
  18. // grd_diaglist.col = 4;
  19. // grd_diaglist.row = grd_diaglist.rows - 1;
  20. dispOnLoadComplete("", "0000000899");
  21. //lf_setRecData(this);
  22. lf_setSrchData(this);
  23. }
  24. /**
  25. * @group :
  26. * @ver : 2007.03.20
  27. * @by :
  28. * @---------------------------------------------------
  29. * @type : function
  30. * @access : public
  31. * @desc :
  32. * @param :
  33. * @return :
  34. * @---------------------------------------------------
  35. */
  36. function fCheckChange()
  37. {
  38. var iLeng = 0;
  39. var objDs = this.objects[grd_diaglist.binddataset];
  40. var nRow = objDs.rowposition;
  41. var degnitemcd = ds_data_recitem.lookupExpr("rowno=='"+nRow+"' && degnitemno=='13' && degnitemkind=='GSU'", "degnitemcd");
  42. var dgnm = "";
  43. //2010.02.05 dhkim - 진단명 코드변경
  44. if( !utlf_isNull(degnitemcd)){
  45. if(degnitemcd.substring(0, 7) == '0000960'){
  46. dgnm = objDs.getColumn(nRow, "진단명");
  47. }
  48. }
  49. if (utlf_isNull(dgnm))
  50. {
  51. objDs.setColumn(nRow, "주", 0);
  52. objDs.setColumn(nRow, "R/O", 0);
  53. return false;
  54. }
  55. //주/부 비교 및 주가 맨위로
  56. if ( objDs.getColumn(nRow, "주") == 1 && grd_diaglist.currentcol == "2" )
  57. {
  58. for ( var i = 0; i < objDs.getRowCount(); i++ )
  59. {
  60. if ( objDs.getColumn(i, "주") == 1 && i != grd_diaglist.currentrow )
  61. {
  62. objDs.setColumn(i, "주", 0);
  63. }
  64. }
  65. var iRow = objDs.rowposition;
  66. if (iRow > 0)
  67. {
  68. //objDs.enableevent = false;
  69. objDs.exchangeRow(0, iRow);
  70. var sArrNo = objExt.findRows(ds_data_recitem, "rowno", iRow); //선택된 행의 rowno
  71. for( var k = 0; k < sArrNo.length; k++ ){
  72. ds_data_recitem.exchangeRow(k + 1, sArrNo[k]);
  73. ds_data_recitem.setColumn(k+1, "rowno", 0);
  74. ds_data_recitem.setColumn(sArrNo[k], "rowno", iRow);
  75. }
  76. //objDs.enableevent = true;
  77. // exchagerow apply
  78. ds_data_recitem.applyChange();
  79. }
  80. }
  81. else if ( objDs.getColumn(nRow, "주") == "0" && grd_diaglist.currentcol == "2" )
  82. {
  83. var chkmskind = false;
  84. if( objDs.getCaseCount("주==1") > 0 )
  85. chkmskind = true;
  86. if(chkmskind)
  87. {
  88. objDs.setColumn(nRow, "주", 0);
  89. }
  90. else
  91. {
  92. sysf_messageBox("하나의 주진단은 필수 ", "I009");
  93. objDs.setColumn(nRow, "주", 1);
  94. return false;
  95. }
  96. }
  97. }
  98. /**
  99. * @group :
  100. * @ver : 2007.03.20
  101. * @by : ??????
  102. * @---------------------------------------------------
  103. * @type : function
  104. * @access : public
  105. * @desc : ?????? Enable / Disable
  106. * @param :
  107. * @return :
  108. * @---------------------------------------------------
  109. */
  110. function fGrdDelRow()
  111. {
  112. var grdDs = this.objects[grd_diaglist.binddataset];// ds_grid_grd_cclist
  113. var nLastRow = grdDs.getRowCount() -1;
  114. var nRow = grdDs.rowposition;
  115. if( grdDs.getColumn(nRow, "주") == 1 ){
  116. sysf_messageBox("주진단은 삭제", "E001");
  117. return;
  118. }
  119. else
  120. {
  121. var smmcnts = grdDs.getColumn(nRow, "진단명");
  122. var smmcntcd = grdDs.getColumn(nRow, "진단코드");
  123. if(nRow > -1 && (!utlf_isNull(smmcnts) || !utlf_isNull(smmcntcd))){
  124. if( grdDs.deleteRow(nRow) )
  125. {
  126. ds_data_recitem.filter("rowno=='"+nRow+"'");
  127. var nRowCnt = ds_data_recitem.getRowCount();
  128. for(var i=(nRowCnt-1);i>=0; i--)
  129. {
  130. ds_data_recitem.deleteRow(i);
  131. }
  132. ds_data_recitem.filter("");
  133. }
  134. // rowno 재정렬
  135. ds_data_recitem.filter("rowno > '"+nRow+"'");
  136. nRowCnt = ds_data_recitem.getRowCount();
  137. for(var j=0; j < nRowCnt; j++)
  138. {
  139. var nSelfRowno = ds_data_recitem.getColumn(j, "rowno");
  140. ds_data_recitem.setColumn(j, "rowno", nSelfRowno - 1);
  141. }
  142. ds_data_recitem.filter("");
  143. }
  144. else
  145. {
  146. return;
  147. }
  148. }
  149. }
  150. function fClickPopUp()
  151. {
  152. frmf_setParameter("SPMMO3200_param_nodepath", "ds_tmpdiag_selectdiaglist");
  153. frmf_modal("SPMMO03200", "SPMMO03200", null, null, 1, 0, 0, null, null, null, null, null, "M");
  154. var smmcnts = "";
  155. var grdDs = this.objects[grd_diaglist.binddataset];// ds_grid_grd_cclist
  156. var nLastRow = grdDs.getRowCount() -1;
  157. var iRow = grdDs.rowposition;
  158. //2010.02.05 dhkim - 진단명 코드변경
  159. var degnitemcd = ds_data_recitem.lookupExpr("degnitemno == '13' && degnitemkind == 'GSU' && rowno == '"+ iRow +"'", "degnitemcd");
  160. if(!utlf_isNull( degnitemcd )){
  161. if(degnitemcd.substring(0, 7) == '0000960'){
  162. smmcnts = grdDs.getColumn(nLastRow, "진단명");
  163. }
  164. }
  165. grdDs.enableevent = false;
  166. if (utlf_isNull(smmcnts))
  167. {
  168. // row delete
  169. if( grdDs.deleteRow(nLastRow) )
  170. {
  171. //sFstlevlcd = ds_data_recitem.lookupExpr("degnitemkind == 'GRD' && degnitemno == '1' && rowno == '0' && colno == '-1'", "fstlevlitemcd");
  172. ds_data_recitem.filter("rowno=='"+nLastRow+"'");
  173. var nRowCnt = ds_data_recitem.getRowCount();
  174. for(var i=(nRowCnt-1);i>=0; i--)
  175. {
  176. ds_data_recitem.deleteRow(i);
  177. }
  178. ds_data_recitem.filter("");
  179. }
  180. }
  181. // add Row
  182. var sTmpdiagcd = "";
  183. var sTmpdiagengnm = "";
  184. if( isValidObject("ds_tmpdiag_selectdiaglist") && ds_tmpdiag_selectdiaglist.getRowCount() > 0 ){
  185. for(var k=0; k<ds_tmpdiag_selectdiaglist.getRowCount(); k++){
  186. sTmpdiagcd = ds_tmpdiag_selectdiaglist.getColumn(k, "diagcd");
  187. sTmpdiagengnm = ds_tmpdiag_selectdiaglist.getColumn(k, "diagengnm");
  188. var nDupRow = grdDs.findRowExpr("진단코드 == '"+sTmpdiagcd+"'");
  189. if( nDupRow < 0 ){
  190. var nRowno = grdDs.addRow();
  191. if(nRowno > -1){
  192. var degnno = 1;
  193. var gridTempNm = "ds_temp_recitem";
  194. var nAddRow, nCellPos;
  195. var nTempCnt = eval(gridTempNm).getRowCount();
  196. for(var i=0; i<nTempCnt; i++)
  197. {
  198. nAddRow = ds_data_recitem.addRow();
  199. ds_data_recitem.copyRow(nAddRow, eval(gridTempNm), i);
  200. ds_data_recitem.setColumn(nAddRow, "rowno", nRowno);
  201. }
  202. }
  203. if (sTmpdiagengnm == "-"){
  204. sTmpdiagengnm = "";
  205. }
  206. grdDs.setColumn(nRowno, "R/O", 0 );
  207. grdDs.setColumn(nRowno, "주", 0 );
  208. grdDs.setColumn(nRowno, "진단코드", sTmpdiagcd); //recte rmcd
  209. grdDs.setColumn(nRowno, "진단명", sTmpdiagengnm); //rectermnm
  210. }
  211. }
  212. }
  213. fAddrow();
  214. grdDs.enableevent = true;
  215. }
  216. /**
  217. * @desc : 줄추가
  218. * @
  219. * @param :
  220. * @return :
  221. * @---------------------------------------------------
  222. */
  223. function fAddrow()
  224. {
  225. var grdDs = this.objects[grd_diaglist.binddataset];// ds_grid_grd_cclist
  226. var nLastRow = grdDs.getRowCount();
  227. var smmcnts = grdDs.getColumn(parseInt(nLastRow) -1 , "진단명");
  228. if( !utlf_isNull(smmcnts) || nLastRow == 0 ){
  229. var nRowno = grdDs.addRow();
  230. if(nRowno > -1){
  231. var degnno = 1;
  232. var gridTempNm = "ds_temp_recitem";
  233. var nAddRow, nCellPos;
  234. var nTempCnt = eval(gridTempNm).getRowCount();
  235. for(var i=0; i<nTempCnt; i++)
  236. {
  237. if( nRowno > 0 && i == 0 )
  238. continue;
  239. nAddRow = ds_data_recitem.addRow();
  240. ds_data_recitem.copyRow(nAddRow, eval(gridTempNm), i);
  241. ds_data_recitem.setColumn(nAddRow, "rowno", nRowno);
  242. }
  243. }
  244. }
  245. }
  246. /**
  247. * @desc : 편집 후 termcd가 없는 경우 '-'를 넣어줌(저장문제)
  248. * @
  249. * @param :
  250. * @return :
  251. * @---------------------------------------------------
  252. */
  253. function fEndEdit()
  254. {
  255. var grdDs = this.objects[grd_diaglist.binddataset];
  256. var nRow = grdDs.rowposition;
  257. var nLastRow = grdDs.getRowCount() - 1;
  258. var smmcnts = grdDs.getColumn(nLastRow, "진단명");
  259. var termcd = grdDs.getColumn(nLastRow, "진단코드");
  260. if( !utlf_isNull(smmcnts) && utlf_isNull(termcd) )
  261. grdDs.setColumn(nLastRow, "진단코드", "-");
  262. var sDisgnm = grdDs.getColumn(nRow, "진단명");
  263. if( utlf_isNull(sDisgnm) )
  264. fGrdDelRow();
  265. }
  266. function fInitPage(colhide, heig, wid, ivwID, initnm)
  267. {
  268. this.position.height = heig;
  269. this.position.width = wid;
  270. grd_diaglist.position.height = heig - 2;
  271. grd_diaglist.position.width = wid - 4;
  272. //grd_diaglist.extendLastCol = "scroll";
  273. if(colhide)
  274. {
  275. grd_diaglist.setRealColSize(0, 0, true); //20
  276. //grd_diaglist.colhidden(0) = colhide;
  277. btn_pop.visible = false;
  278. }
  279. if (!utlf_isNull(ivwID))
  280. gSendParentCallID = ivwID;
  281. if (!utlf_isNull(initnm))
  282. grd_diaglist.setCellProperty("Head", 4, "text", initnm);
  283. }
  284. /**
  285. * @group :
  286. * @ver : 2007.03.20
  287. * @by : ??????
  288. * @---------------------------------------------------
  289. * @type : function
  290. * @access : public
  291. * @desc : ?????? Enable / Disable
  292. * @param :
  293. * @return :
  294. * @---------------------------------------------------
  295. */
  296. function fGetDiagNm(paminfo:Dataset)
  297. {
  298. var degnlvcd = ds_temp_recitem.lookup("orgdegnitemkind", "DGN", "degnitemlevlcd").substring(0, 7);
  299. if(!utlf_isNull(paminfo))
  300. {
  301. var pid = paminfo.getColumn(0, "pid");
  302. var cretno = paminfo.getColumn(0, "cretno");
  303. var orddd = paminfo.getColumn(0, "orddd");
  304. var orddeptcd = paminfo.getColumn(0, "orddeptcd");
  305. var ioflag = paminfo.getColumn(0, "chosflag");
  306. // fSetDiagNmbyDegnItemLevlCd(pid, cretno, orddd, orddeptcd, ioflag, degnlvcd);
  307. //function fSetDiagNmbyDegnItemLevlCd(pid, cretno, orddd, orddeptcd, ioflag, degnlvcd, mediflag)
  308. var iNodeCnt = ds_temp_recitem.getCaseCount("orgdegnitemkind == 'DGN'");
  309. if(iNodeCnt == 0)
  310. return;
  311. //model.removeNodeset(pageInfo.RecinfoGridrecItemRef + "[orgdegnitemkind = 'DGN']");
  312. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"cond1", type:"string", size:256, val:pid}
  313. , {col:"cond2", type:"string", size:256, val:orddd}
  314. , {col:"cond3", type:"INT" , size:256, val:cretno}
  315. , {col:"cond4", type:"string", size:256, val:orddeptcd}
  316. , {col:"cond5", type:"string", size:256, val:ioflag}
  317. , {col:"cond6", type:"string", size:256, val:""}
  318. , {col:"cond7", type:"string", size:256, val:""}
  319. , {col:"cond8", type:"string", size:256, val:""}
  320. , {col:"mediflag", type:"string", size:256, val:"Y"}]);
  321. var objSandDS:Dataset = new Dataset;
  322. objSendDS = this.objects[sSendDsNm];
  323. var sRtnDsNm = dsf_createDs("ds_data_diaginfo", [{col:"status" , type:"string", size:256}
  324. ,{col:"diagdd" , type:"string", size:256}
  325. ,{col:"diagno" , type:"string", size:256}
  326. ,{col:"diaghistno" , type:"string", size:256}
  327. ,{col:"instcd", type:"string", size:256}
  328. ,{col:"pid", type:"string", size:256}
  329. ,{col:"orddd" , type:"string", size:256}
  330. ,{col:"cretno" , type:"string", size:256}
  331. ,{col:"orddeptcd" , type:"string", size:256}
  332. ,{col:"orddrid" , type:"string", size:256}
  333. ,{col:"genrflagcd" , type:"string", size:256}
  334. ,{col:"diaghistcd" , type:"string", size:256}
  335. ,{col:"diagcd" , type:"string", size:256}
  336. ,{col:"diagtypecd" , type:"string", size:256}
  337. ,{col:"diagkindcd" , type:"string", size:256}
  338. ,{col:"diagkindcdflag" , type:"string", size:256}
  339. ,{col:"anamneflag" , type:"string", size:256}
  340. ,{col:"tootflagcd" , type:"string", size:256}
  341. ,{col:"diagsignflag" , type:"string", size:256}
  342. ,{col:"tootfact" , type:"string", size:256}
  343. ,{col:"diagengnm" , type:"string", size:256}
  344. ,{col:"diaghngnm" , type:"string", size:256}
  345. ,{col:"icd10cd" , type:"string", size:256}
  346. ,{col:"spclinfo" , type:"string", size:256}
  347. ,{col:"diagremfact" , type:"string", size:256}
  348. ,{col:"diagcmtcnts", type:"string", size:256}]);
  349. var objRtnDS:Dataset = new Dataset;
  350. objRtnDS = this.objects[sRtnDsNm];
  351. var oParam = {};
  352. oParam.id = "TRMMO00105";
  353. oParam.service = "prcpmngtapp.PrcpMngt";
  354. oParam.method = "reqGetPatDiagInfo";
  355. oParam.inds = "req="+sSendDsNm;
  356. oParam.outds = sRtnDsNm+"=diagcdlist";
  357. oParam.async = false;
  358. //oParam.callback = "cf_TRMMO00105";
  359. tranf_submit(oParam);
  360. var diagnm = "";
  361. var diagcd = "";
  362. for(var i = 0; i < objRtnDS.getRowCount(); i++)
  363. {
  364. diagcd = "";
  365. diagnm = "";
  366. if(ds_data_formmast.getColumn(0, "langflag") == "EN" || ds_data_formmast.getColumn(0, "formprogflag") != "PROF")
  367. diagnm = objRtnDS.getColumn(i, "diagengnm");
  368. else
  369. diagnm = objRtnDS.getColumn(i, "diaghngnm");
  370. if(utlf_isNull(diagnm))
  371. diagnm = objRtnDS.getColumn(i, "diagengnm");
  372. var diagcd = objRtnDS.getColumn(i, "icd10cd");
  373. var ro = objRtnDS.getColumn(i, "diagkindcd");
  374. var mskind = objRtnDS.getColumn(i, "diagkindcdflag");
  375. if (mskind == "M")
  376. {
  377. parent.parent.frmf_setParameter("SSMRF04000_diagnm", diagnm);
  378. }
  379. //if(getNodesetCnt(model, pageInfo.RecinfoGridrecItemRef + "[contains(degnitemlevlcd, '" + degnlvcd + "') and contains(degnitemcd, '0000960')]/recitem[rectermcd='" + diagcd + "']") > 0)
  380. if( ds_data_recitem.getCaseCount("degnitemlevlcd.toString().indexOf('" + degnlvcd + "') >= 0 && degnitemcd.toString().indexOf('0000960') >= 0 && rectermcd =='" + diagcd + "'") > 0 )
  381. continue;
  382. var objDs = this.objects[grd_diaglist.binddataset];
  383. var nRow = objDs.addRow();
  384. objDs.setColumn(nRow, "R/O", ro=="R"?1:0 );
  385. objDs.setColumn(nRow, "주", mskind=="M"?1:0 );
  386. objDs.setColumn(nRow, "진단명", diagnm);
  387. objDs.setColumn(nRow, "진단코드", diagcd);
  388. /*
  389. var grdNode = instance1.selectSingleNode("/root/temp/recinfo/grid");
  390. grdNode = grdNode.cloneNode(true);
  391. //grd rowno를 갱신한다.
  392. var rowno = getNodesetCnt(model, pageInfo.RecinfoGridrecItemRef + "[contains(degnitemlevlcd, '" + degnlvcd + "') and contains(degnitemcd, '0000960') and degnitemkind = 'GRD']");
  393. //grdNode.selectSingleNode("rowno").text = rowno;
  394. var recitemList = grdNode.selectNodes("recitem");
  395. for(var j = 0; j < recitemList.length; j++)
  396. {
  397. var recitemNode = recitemList.item(j);
  398. recitemNode.selectSingleNode("rowno").text = rowno;
  399. if(j == 1) //R/O
  400. {
  401. if(ro == "R")
  402. {
  403. recitemNode.selectSingleNode("rectermcd").text = ro;
  404. recitemNode.selectSingleNode("rectermnm").text = "R/O";
  405. }
  406. else
  407. {
  408. recitemNode.selectSingleNode("rectermcd").text = "";
  409. }
  410. }
  411. else if(j == 2) //주부유형
  412. {
  413. recitemNode.selectSingleNode("rectermcd").text = mskind;
  414. if(mskind == "M")
  415. {
  416. recitemNode.selectSingleNode("rectermnm").text = "주";
  417. }
  418. else
  419. {
  420. recitemNode.selectSingleNode("rectermnm").text = "부";
  421. }
  422. }
  423. else if(j == 3) //진단코드, 진단명
  424. {
  425. recitemNode.selectSingleNode("rectermcd").text = diagcd;
  426. recitemNode.selectSingleNode("rectermnm").text = diagnm;
  427. }
  428. }
  429. var recNode = instance1.selectSingleNode(pageInfo.recRef);
  430. if(recNode == null)
  431. {
  432. model.makeNode(pageInfo.recRef);
  433. recNode = instance1.selectSingleNode(pageInfo.recRef);
  434. }
  435. recNode.appendChild(grdNode);
  436. */
  437. }
  438. // Temp로 사용한 Dataset을 삭제
  439. var objDs = this.removeChild(sSendDsNm);
  440. delete objDs;
  441. objDs = null;
  442. objDs = this.removeChild(sRtnDsNm);
  443. delete objDs;
  444. objDs = null;
  445. fAddrow();
  446. }
  447. }
  448. var gDegnItemNm = null;
  449. function fSetDiagNmInstance()
  450. {
  451. var diagcdlistDs:Dataset = parent.parent.objects["ds_data_diagcdlist"];
  452. var dsNm = grd_diaglist.binddataset;
  453. var nAddRow;
  454. var sRectermcd, sRectermnm, sReccnts;
  455. var sChkMain, sChkRO, sChkSP;
  456. var arrColID = ["R/O", "주", "진단명"];
  457. var nColCnt = arrColID.length;
  458. var sDiagkindcd, sDiagkindcdflag, sTmpdiagcd, sTmpdiagengnm;
  459. if(diagcdlistDs.getRowCount() > 0){
  460. eval(dsNm).enableevent = false;
  461. eval(dsNm).clearData();
  462. for(var i = 0; i < diagcdlistDs.getRowCount(); i++)
  463. {
  464. sDiagkindcd = diagcdlistDs.getColumn(i, "diagkindcd");
  465. sDiagkindcdflag = diagcdlistDs.getColumn(i, "diagkindcdflag");
  466. sTmpdiagcd = diagcdlistDs.getColumn(i, "icd10cd");
  467. sTmpdiagengnm = diagcdlistDs.getColumn(i, "diagengnm");
  468. nAddRow = eval(dsNm).addRow();
  469. for(var j=0; j<nColCnt; j++)
  470. {
  471. if(arrColID[j]=="R/O")
  472. {
  473. sChkRO = diagcdlistDs.getColumn(i, "diagkindcd");
  474. sRectermcd = sChkRO;
  475. sChkRO = sChkRO=="R"?1:0;
  476. eval(dsNm).setColumn(nAddRow, arrColID[j], sChkRO);
  477. }
  478. else if(arrColID[j]=="주")
  479. {
  480. sChkMain = diagcdlistDs.getColumn(i, "diagkindcdflag");
  481. sRectermcd = sChkMain;
  482. sChkMain = sChkMain=="M"?1:0;
  483. eval(dsNm).setColumn(nAddRow, arrColID[j], sChkMain);
  484. }
  485. else if(arrColID[j]=="진단명")
  486. {
  487. sRectermcd = diagcdlistDs.getColumn(i, "icd10cd");
  488. sRectermnm = diagcdlistDs.getColumn(i, "diagengnm");
  489. sReccnts = "";
  490. eval(dsNm).setColumn(nAddRow, arrColID[j], sRectermnm);
  491. eval(dsNm).setColumn(nAddRow, "진단코드", sRectermcd);
  492. eval(dsNm).setColumn(nAddRow, "Comments", sReccnts);
  493. }
  494. }
  495. if (sDiagkindcdflag == "M")
  496. {
  497. parent.frmf_setParameter("SSMRF04000_diagnm", sTmpdiagengnm);
  498. }
  499. }
  500. eval(dsNm).enableevent = true;
  501. }
  502. fAddrow();
  503. }
  504. /**
  505. * @desc : 수술예약번호를 통한 진단명, 마취종류 조회삭제예정
  506. (해당기록지에서 직접 조회하여 데이터 넘김) 2008.05.20 박종훈
  507. * @
  508. * @param :
  509. * @return :
  510. * @---------------------------------------------------
  511. */
  512. function fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm)
  513. {
  514. if(oprsrvno != ""){
  515. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  516. model.makeValue("/root/send/oprsrvno", oprsrvno);
  517. //model.makeValue("/root/send/oprsrvno", "2007000009");
  518. submit("TRMRF04001", false);
  519. var anstmthdcd = model.getValue("/root/main/diaginfo/anstlist/anstmthdcd");
  520. var mcdnm = model.getValue("/root/main/diaginfo/anstlist/mcdnm");
  521. var anstmthdcdsub = model.getValue("/root/main/diaginfo/anstlist/anstmthdcdsub");
  522. var scdnm = model.getValue("/root/main/diaginfo/anstlist/scdnm");
  523. //주마취
  524. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iMcdnm + "']/recrefcd", anstmthdcd);
  525. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iMcdnm + "']/recitemnm", mcdnm);
  526. //부마취
  527. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iScdnm + "']/recrefcd", anstmthdcdsub);
  528. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iScdnm + "']/recitemnm", scdnm);
  529. fSetDiagNmInstance();
  530. return true;
  531. }else{
  532. alert("해당환자는 수술환자가 아닙니다!");
  533. parent.grup_base.disabled = true;
  534. //parent.window.javascript.fBtnDisable();
  535. return false;
  536. }
  537. // var diagcdlistNode = instance1.selectSingleNode("/root/main/diaginfo");
  538. //
  539. // if((diagcdlistNode.childNodes).length > 0){
  540. //
  541. // var selectNode = ivw_0007983001.instance1.selectSingleNode("/root/main/diaginfo");
  542. //
  543. // if(selectNode == null){
  544. // ivw_0007983001.model.makeNode("/root/main/diaginfo");
  545. // }
  546. //
  547. // copyNode(ivw_0007983001.model, model, "/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist");
  548. // ivw_0007983001.window.javascript.fSetDiagNmInstance();
  549. //
  550. // var anstmthdcd = model.getValue("/root/main/diaginfo/diagcdlist/anstmthdcd");
  551. // var mcdnm = model.getValue("/root/main/diaginfo/diagcdlist/mcdnm");
  552. // var anstmthdcdsub = model.getValue("/root/main/diaginfo/diagcdlist/anstmthdcdsub");
  553. // var scdnm = model.getValue("/root/main/diaginfo/diagcdlist/scdnm");
  554. // //주마취
  555. // model.setValue("/root/main/recinfo/recitem[degnitemno='" + iMcdnm + "']/recrefcd", anstmthdcd);
  556. // model.setValue("/root/main/recinfo/recitem[degnitemno='" + iMcdnm + "']/recitemnm", mcdnm);
  557. // //부마취
  558. // model.setValue("/root/main/recinfo/recitem[degnitemno='" + iScdnm + "']/recrefcd", anstmthdcdsub);
  559. // model.setValue("/root/main/recinfo/recitem[degnitemno='" + iScdnm + "']/recitemnm", scdnm);
  560. //
  561. // model.refresh();
  562. // }
  563. }
  564. /**
  565. * @desc : 수술예약번호를 통한 진단명, 마취종류 조회
  566. * @
  567. * @param :
  568. * @return :
  569. * @---------------------------------------------------
  570. */
  571. function fGetdiagFormOprsrvno_loc(tmp, iMcdnm, iMcdnm, iScdnm, iScdnm)
  572. {
  573. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  574. //model.makeValue("/root/send/oprsrvno", oprsrvno);
  575. model.makeValue("/root/send/oprsrvno", tmp);
  576. submit("TRMRF04001", false);
  577. var anstmthdcd = model.getValue("/root/main/diaginfo/anstlist/anstmthdcd");
  578. var mcdnm = model.getValue("/root/main/diaginfo/anstlist/mcdnm");
  579. var anstmthdcdsub = model.getValue("/root/main/diaginfo/anstlist/anstmthdcdsub");
  580. var scdnm = model.getValue("/root/main/diaginfo/anstlist/scdnm");
  581. //주마취
  582. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iMcdnm + "']/recrefcd", anstmthdcd);
  583. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iMcdnm + "']/recitemnm", mcdnm);
  584. //부마취
  585. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iScdnm + "']/recrefcd", anstmthdcdsub);
  586. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + iScdnm + "']/recitemnm", scdnm);
  587. fSetDiagNmInstance();
  588. return true;
  589. }
  590. function clearData()
  591. {
  592. model.removeNodeset("/root/main/recinfo");
  593. model.refresh();
  594. }
  595. /**
  596. * @desc : Comments 기록 존재 여부에 따른 컬럼 표시
  597. * @
  598. * @param :
  599. * @return :
  600. * @---------------------------------------------------
  601. */
  602. function fIsCommentExist()
  603. {
  604. var grdDs = this.objects[grd_diaglist.binddataset];
  605. var nRow = grdDs.rowposition;
  606. var iFndRow = 0;
  607. //2010.02.05 dhkim - 진단명 코드변경
  608. var degnitemcd = ds_data_recitem.lookupExpr("rowno=='"+nRow+"' && degnitemno == '13' && degnitemkind == 'GSU'", "degnitemcd");
  609. if( !utlf_isNull(degnitemcd) ){
  610. if(degnitemcd.substring(0, 7) == '0000960'){
  611. iFndRow = ds_data_recitem.getCaseCount("degnitemcd == '" + degnitemcd + "' && degnitemkind == 'GSU' && !utlf_isNull(reccnts)");
  612. }
  613. }
  614. if (iFndRow > 0)
  615. {
  616. grd_diaglist.setRealColSize(grd_diaglist.getBindCellIndex("body", "Comments"), 0, true); //100
  617. //grd_diaglist.colhidden(grd_diaglist.colref("recitem[colno='2']/reccnts")) = false;
  618. }
  619. else
  620. {
  621. grd_diaglist.setRealColSize(grd_diaglist.getBindCellIndex("body", "Comments"), 100, true); //79
  622. }
  623. }
  624. /**
  625. * @desc : 저장전 검사
  626. * : 2010.01.18 dhkim - 추가(isChk가 true일때만 체크함)
  627. * @
  628. * @param : 추가
  629. * @return :
  630. * @---------------------------------------------------
  631. */
  632. function fChkGrdPreSave(isChk, itemNm)
  633. {
  634. if(utlf_isNull(isChk) || isChk == false){
  635. return false;
  636. }
  637. if(isChk){
  638. }
  639. }
  640. /**
  641. * @desc : 저장전 검사(입퇴원요약기록_MMR00800에서만 사용)
  642. * : 2010.01.27 dhkim - 추가(isChk가 true일때만 체크함)
  643. * @
  644. * @param : 추가
  645. * @return :
  646. * @---------------------------------------------------
  647. */
  648. function fChkGrdPreSave_MMR00800(isChk, itemNm)
  649. {
  650. if(utlf_isNull(isChk) || isChk == false){
  651. return false;
  652. }
  653. if(isChk){
  654. sysf_trace("MRF04000.js fChkGrdPreSave_MMR00800내부 == ");
  655. //2010.01.27 dhkim
  656. //1. 주진단체크
  657. //2. 진단이 1건일 경우 부진단이 있는지 여부를 물어봄
  658. //3. 부진단이 있다고 하면 저장안하고 리턴시킴
  659. if(utlf_isNull(itemNm)){
  660. itemNm = ds_data_formdegn.lookup("degnitemkind", "GRD", "itemnm");
  661. }
  662. var grdDs = this.objects[grd_diaglist.binddataset];
  663. var nodelength = grdDs.getRowCount();
  664. var msFlag, diagnm, diagcd;
  665. var isMChk = false;//주진단체크여부
  666. var isSChk = false;//부진단체크여부
  667. for(var i = 0; i < nodelength; i++){
  668. msFlag = grdDs.getColumn(i, "주");//주부체크
  669. diagnm = grdDs.getColumn(i, "진단명");//진단명
  670. diagcd = grdDs.getColumn(i, "진단코드");//진단코드
  671. if(!utlf_isNull(diagcd)){
  672. if(msFlag == "1"){ //M
  673. isMChk = true;
  674. }else if(msFlag == "0"){//S
  675. isSChk = true;
  676. }
  677. }
  678. if(diagcd == "-" && utlf_isNull(diagnm)){
  679. sysf_messageBox(i + "행에 진단명을 입력하십시요", "E");
  680. return false;
  681. }
  682. }
  683. //주진단체크여부
  684. if(isMChk == false){
  685. sysf_messageBox("하나의 주진단은 필수 ", "I009");
  686. return false;
  687. }
  688. //부진단체크여부 -
  689. //부진단입력확인메세지에 "예" 클릭하는 경우 리턴(예:6, 아니오:7)
  690. if(isSChk == false){
  691. //2010.02.11 dhkim - 메세지변경요청
  692. /*
  693. 김은미 02-11 11:07
  694. 부진단미입력시, 메세지내용을 변경하려고 합니다.
  695. 김은미 02-11 11:09
  696. (기존)부진단이 없습니다. 부진단을 입력하시겠습니까? ->(변경요청내용) 부진단은 JCI 필수입력항목입니다. 해당환자에게 입력된 부진단이 없습니다. 입력하시겠습니까?
  697. 김은미 02-11 11:09
  698. 로 변경해주세요....
  699. */
  700. //if(messageBox("부진단이 없습니다. 부진단을 입력하시겠습니까?", "Q") == 6){
  701. if(sysF_messageBox("부진단은 JCI 필수입력항목입니다. 해당환자에게 입력된 부진단이 없습니다. 입력하시겠습니까?", "Q") == 6){
  702. return false;
  703. }
  704. }
  705. return true;
  706. }
  707. } ]]></Script>