MRF04300.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  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 : ?????? Enable / Disable
  11. * @param :
  12. * @return :
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize() {
  16. // model.removeNodeset("/root/main/recinfo");
  17. // grd_diaglist.col = 4;
  18. // grd_diaglist.row = grd_diaglist.rows - 1;
  19. dispOnLoadComplete("", "0000000900");
  20. lf_setSrchData(this);
  21. }
  22. /**
  23. * @group :
  24. * @ver : 2007.03.20
  25. * @by : ??????
  26. * @---------------------------------------------------
  27. * @type : function
  28. * @access : public
  29. * @desc : ?????? Enable / Disable
  30. * @param :
  31. * @return :
  32. * @---------------------------------------------------
  33. */
  34. function fGrdDelRow(){
  35. var grdDs = this.objects[grd_diaglist.binddataset];
  36. var nRow = grdDs.rowposition;
  37. var nLastRow = grdDs.getRowCount() - 1;
  38. var smmcnts = grdDs.getColumn(nRow, "수술명");
  39. var smmcntcd = grdDs.getColumn(nRow, "수술코드");
  40. var degnno = 1;
  41. if( nLastRow > 0 && (!utlf_isNull(smmcnts) || !utlf_isNull(smmcntcd)) ){
  42. // 행삭제
  43. if( grdDs.deleteRow(nRow) )
  44. {
  45. //sFstlevlcd = ds_data_recitem.lookupExpr("degnitemkind == 'GRD' && degnitemno == '"+degnno+"' && rowno == '0' && colno == '-1'", "fstlevlitemcd");
  46. ds_data_recitem.filter("rowno=='"+nRow+"'");
  47. var nRowCnt = ds_data_recitem.getRowCount();
  48. for(var i=(nRowCnt-1);i>=0; i--)
  49. {
  50. ds_data_recitem.deleteRow(i);
  51. }
  52. ds_data_recitem.filter("");
  53. // rowno 재정렬
  54. ds_data_recitem.filter("rowno > '"+nRow+"'");
  55. nRowCnt = ds_data_recitem.getRowCount();
  56. for(var j=0; j < nRowCnt; j++)
  57. {
  58. var nSelfRowno = ds_data_recitem.getColumn(j, "rowno");
  59. ds_data_recitem.setColumn(j, "rowno", nSelfRowno - 1);
  60. }
  61. ds_data_recitem.filter("");
  62. }
  63. }else{
  64. return;
  65. }
  66. }
  67. /**
  68. * @group :
  69. * @ver : 2007.03.20
  70. * @by : ??????
  71. * @---------------------------------------------------
  72. * @type : function
  73. * @access : public
  74. * @desc : ?????? Enable / Disable
  75. * @param :
  76. * @return :
  77. * @---------------------------------------------------
  78. */
  79. function fAfterSrch()
  80. {
  81. var grdDs = this.objects[grd_diaglist.binddataset];// ds_grid_grd_cclist
  82. var nLastRow = grdDs.getRowCount() -1;
  83. var smmcnts = grdDs.getColumn(parseInt(nLastRow), 1);
  84. //sysf_trace("smmcnts : " + smmcnts + " nLastRow : " + nLastRow);
  85. var sTmpdiagcd = "";
  86. var sTmpdiagengnm = "";
  87. grdDs.enableevent = false;
  88. if( utlf_isNull(smmcnts) ){
  89. // row delete
  90. if( grdDs.deleteRow(nLastRow) )
  91. {
  92. //sFstlevlcd = ds_data_recitem.lookupExpr("degnitemkind == 'GRD' && degnitemno == '1' && rowno == '0' && colno == '-1'", "fstlevlitemcd");
  93. ds_data_recitem.filter("rowno=='"+nLastRow+"'"); // && fstlevlitemcd == '"+sFstlevlcd+"'
  94. var nRowCnt = ds_data_recitem.getRowCount();
  95. for(var i=(nRowCnt-1);i>=0; i--)
  96. {
  97. ds_data_recitem.deleteRow(i);
  98. }
  99. ds_data_recitem.filter("");
  100. }
  101. }
  102. // add Row
  103. if( isValidObject("ds_tmpop_selectoplist") && ds_tmpop_selectoplist.getRowCount() > 0 ){
  104. for(var k=0; k<ds_tmpop_selectoplist.getRowCount(); k++){
  105. sTmpdiagcd = ds_tmpop_selectoplist.getColumn(k, "opcd");
  106. sTmpdiagengnm = ds_tmpop_selectoplist.getColumn(k, "opengnm");
  107. var nDupRow = grdDs.findRowExpr("수술코드 == '"+sTmpdiagcd+"'");
  108. if( nDupRow < 0 ){
  109. var nRowno = grdDs.addRow();
  110. if(nRowno > -1){
  111. var degnno = 1;
  112. var gridTempNm = "ds_temp_recitem";
  113. var nAddRow, nCellPos;
  114. var nTempCnt = eval(gridTempNm).getRowCount();
  115. for(var i=0; i<nTempCnt; i++)
  116. {
  117. nAddRow = ds_data_recitem.addRow();
  118. ds_data_recitem.copyRow(nAddRow, eval(gridTempNm), i);
  119. ds_data_recitem.setColumn(nAddRow, "rowno", nRowno);
  120. }
  121. }
  122. if (sTmpdiagengnm == "-"){
  123. sTmpdiagengnm = "";
  124. }
  125. grdDs.setColumn(nRowno, "수술코드", sTmpdiagcd); //rectermcd
  126. grdDs.setColumn(nRowno, "수술명", sTmpdiagengnm); //rectermnm
  127. grdDs.setColumn(nRowno, "Comments", ""); //reccnts -> cccnts
  128. // var nRow = ds_data_recitem.findRowExpr("degnitemkind == 'GSU' && degnitemno == '3' && rowno == '"+ nRowno +"' && colno == '0'");
  129. // ds_data_recitem.setColumn(nRow, "rectermcd", sTmpdiagcd);
  130. // ds_data_recitem.setColumn(nRow, "rectermnm", sTmpdiagengnm);
  131. // ds_data_recitem.setColumn(nRow, "reccnts", "");
  132. // ds_data_recitem.setColumn(nRow, "rectermflag", "003");
  133. }
  134. }
  135. }
  136. fAddrow();
  137. grdDs.enableevent = true;
  138. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermcd", sTmpdiagcd);
  139. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/reccnts", sTmpdiagengnm);
  140. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/cntsyn", "N");
  141. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/comp", "true");
  142. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/colno", "0");
  143. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermflag", "003");
  144. }
  145. /**
  146. * @desc : 줄추가
  147. * @
  148. * @param :
  149. * @return :
  150. * @---------------------------------------------------
  151. */
  152. function fAddrow()
  153. {
  154. var grdDs = this.objects[grd_diaglist.binddataset];// ds_grid_grd_cclist
  155. var nLastRow = grdDs.getRowCount();
  156. var smmcnts = grdDs.getColumn(parseInt(nLastRow) - 1 , 1);
  157. if( !utlf_isNull(smmcnts) || nLastRow == 0 ){
  158. var nRowno = grdDs.addRow();
  159. if(nRowno > -1){
  160. var gridTempNm = "ds_temp_recitem";
  161. var nAddRow, nCellPos;
  162. var nTempCnt = eval(gridTempNm).getRowCount();
  163. for(var i=0; i<nTempCnt; i++)
  164. {
  165. if( nRowno > 0 && i == 0 )
  166. continue;
  167. nAddRow = ds_data_recitem.addRow();
  168. ds_data_recitem.copyRow(nAddRow, eval(gridTempNm), i);
  169. ds_data_recitem.setColumn(nAddRow, "rowno", nRowno);
  170. }
  171. }
  172. }
  173. }
  174. /**
  175. * @desc : 편집 후 termcd가 없는 경우 '-'를 넣어줌(저장문제)
  176. * @
  177. * @param :
  178. * @return :
  179. * @---------------------------------------------------
  180. */
  181. function fEndEdit()
  182. {
  183. var grdDs = this.objects[grd_diaglist.binddataset];
  184. var nRow = grdDs.rowposition;
  185. var nLastRow = grdDs.getRowCount() - 1;
  186. var smmcnts = grdDs.getColumn(nLastRow, "수술명");
  187. var termcd = grdDs.getColumn(nLastRow, "수술코드");
  188. if( !utlf_isNull(smmcnts) && utlf_isNull(termcd) )
  189. grdDs.setColumn(nLastRow, "수술코드", "-");
  190. var sOprnm = grdDs.getColumn(nRow, "수술명");
  191. if( utlf_isNull(sOprnm) )
  192. fGrdDelRow();
  193. }
  194. function fSrchOprlist(paminfo:Dataset)
  195. {
  196. var nFindRow = ds_temp_recitem.findRow("orgdegnitemkind", "OPN");
  197. var degnlvcd = ds_temp_recitem.getColumn(nFindRow, "degnitemlevlcd").substring(0, 7);
  198. //fSetOpNmbyDegnItemLevlCd(paminfo, degnlvcd);
  199. if( ds_temp_recitem.getCaseCount("orgdegnitemkind=='OPN'") == 0 )
  200. return;
  201. //model.removeNodeset(pageInfo.RecinfoGridrecItemRef + "[orgdegnitemkind = 'OPN']");
  202. var sPid = paminfo.getColumn(0, "pid");
  203. var sCretno = paminfo.getColumn(0, "cretno");
  204. var sOrddeptcd = paminfo.getColumn(0, "orddeptcd");
  205. var sIoflag = paminfo.getColumn(0, "chosflag");
  206. var sOrddd = paminfo.getColumn(0, "orddd");
  207. var operation = sysf_getGlobalVariable("operation").split("▩")[1]; //수술정보 가져옴
  208. var sOprsrvno = ""; //수술예약번호
  209. if(!utlf_isNull(operation)){
  210. sOprsrvno = operation.split("▦")[0];
  211. }
  212. var sSrchmode = "";
  213. if (utlf_isNull(sOprsrvno))
  214. {
  215. sSrchmode = "opr"; //조회조건 opr : 환자 원무정보기준, dr : 수술예약번호 + pid
  216. }
  217. else
  218. {
  219. sSrchmode = "dr"; //조회조건 opr : 환자 원무정보기준, dr : 수술예약번호 + pid
  220. }
  221. // 환자번호, 진료(입원)일, 생성번호, 수술예약번호, 조회구분
  222. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"pid", type:"string", size:256, val:sPid}
  223. , {col:"orddd", type:"string", size:256, val:sOrddd}
  224. , {col:"cretno", type:"INT" , size:256, val:sCretno}
  225. , {col:"oprsrvno", type:"string", size:256, val:sOprsrvno}
  226. , {col:"srchmode", type:"string", size:256, val:sSrchmode}]);
  227. var objSandDS:Dataset = new Dataset;
  228. objSendDS = this.objects[sSendDsNm];
  229. var sRtnDsNm = dsf_createDs("ds_temp_selectoplist", [{col:"opcd", type:"string", size:256}
  230. , {col:"opengnm", type:"string", size:256}]);
  231. var objRtnDS:Dataset = new Dataset;
  232. objRtnDS = this.objects[sRtnDsNm];
  233. var oParam = {};
  234. oParam.id = "TRMRF04301";
  235. oParam.service = "formmngtapp.FormIfMngt";
  236. oParam.method = "reqGetOprList";
  237. oParam.inds = "req="+sSendDsNm;
  238. oParam.outds = sRtnDsNm+"=selectoplist";
  239. oParam.async = false;
  240. //oParam.callback = "cf_TRMRF04301";
  241. tranf_submit(oParam);
  242. for(var i = 0; i < objRtnDS.getRowCount; i++)
  243. {
  244. var opcd = "";
  245. var opnm = "";
  246. opnm = objRtnDS.getColumn(i, "opengnm");
  247. opcd = objRtnDS.getColumn(i, "opcd");
  248. //if(getNodesetCnt(model, pageInfo.RecinfoGridrecItemRef + "[contains(degnitemlevlcd, '" + degnlvcd + "') and contains(degnitemcd, '0000509')]/recitem[rectermcd='" + opcd + "']") > 0)
  249. if( ds_data_recitem.getCaseCount("degnitemlevlcd.toString().indexOf('" + degnlvcd + "') >= 0 && degnitemcd.toString().indexOf('0000960') >= 0 && rectermcd =='" + opcd+ "'") > 0 )
  250. continue;
  251. var objDs = this.objects[grd_diaglist.binddataset];
  252. var nRow = objDs.addRow();
  253. objDs.setColumn(nRow, "수술코드", opcd);
  254. objDs.setColumn(nRow, "수술명", opnm);
  255. }
  256. // Temp로 사용한 Dataset을 삭제
  257. var objDs = this.removeChild(sSendDsNm);
  258. delete objDs;
  259. objDs = null;
  260. objDs = this.removeChild(sRtnDsNm);
  261. delete objDs;
  262. objDs = null;
  263. fAddrow();
  264. }
  265. //삭제예정(해당기록지에서 직접 조회하여 데이터 넘김) 2008.05.20 박종훈
  266. function fSrchOprPerfDrlist(oprsrvno, cOdt1)
  267. {
  268. model.removeNodeset("/root/tmpop/selectoplist");
  269. model.removeNodeset("/root/main/paminfo/list");
  270. var node = getGlobalVariable("paminfo");
  271. if(node != "" && node != null){
  272. setCSVToNode("/root/main/paminfo", node);
  273. model.makeValue("/root/send/pid", model.getValue("/root/main/paminfo/list/pid"));
  274. model.makeValue("/root/send/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  275. if (model.getValue("/root/main/paminfo/list/ioflag") == "O")
  276. {
  277. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  278. }
  279. else
  280. {
  281. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/indd"));
  282. }
  283. model.makeValue("/root/send/oprsrvno", oprsrvno);
  284. model.makeValue("/root/send/srchmode", "dr");
  285. model.removeNodeset("/root/main/recinfo/recitem[degnitemno = '1']");
  286. if ( submit("TRMRF04301") )
  287. {
  288. fAfterSrch();
  289. }
  290. if ( submit("TRMRF04302") )
  291. {
  292. var perfdrid = model.getValue("/root/tmp/perfdr/perfdrid");
  293. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + cOdt1 + "']/recrefcd", perfdrid);
  294. }
  295. }
  296. }
  297. function fSrchOprPerfDrlist_loc(oprsrvno, cOdt1)
  298. {
  299. model.removeNodeset("/root/tmpop/selectoplist");
  300. // model.makeValue("/root/send/pid", pid);
  301. // model.makeValue("/root/send/orddd", orddd);
  302. // model.makeValue("/root/send/cretno", cretno);
  303. model.makeValue("/root/send/oprsrvno", oprsrvno);
  304. model.makeValue("/root/send/pid", "00005726");
  305. model.makeValue("/root/send/orddd", "20070105");
  306. model.makeValue("/root/send/cretno", 1);
  307. model.makeValue("/root/send/oprsrvno", oprsrvno);
  308. model.makeValue("/root/send/srchmode", "dr");
  309. model.removeNodeset("/root/main/recinfo/recitem[degnitemno = '1']");
  310. if ( submit("TRMRF04301") ) {
  311. fAfterSrch();
  312. }
  313. if ( submit("TRMRF04302") )
  314. {
  315. var perfdrid = model.getValue("/root/tmp/perfdr/perfdrid");
  316. parent.model.setValue("/root/main/recinfo/recitem[degnitemno='" + cOdt1 + "']/recrefcd", perfdrid);
  317. }
  318. }
  319. function fSrchOprlist_loc()
  320. {
  321. model.removeNodeset("/root/tmpop/selectoplist");
  322. // model.makeValue("/root/send/pid", pid);
  323. // model.makeValue("/root/send/orddd", orddd);
  324. // model.makeValue("/root/send/cretno", cretno);
  325. model.makeValue("/root/send/pid", "00005726");
  326. model.makeValue("/root/send/orddd", "20070105");
  327. model.makeValue("/root/send/cretno", 1);
  328. model.makeValue("/root/send/srchmode", "opr");
  329. model.removeNodeset("/root/main/recinfo/recitem[degnitemno = '1']");
  330. if ( submit("TRMRF04301") ) {
  331. fAfterSrch();
  332. }
  333. }
  334. function fInitPage(colhide, heig, wid, ivwID)
  335. {
  336. this.position.height = heig;
  337. this.position.width = wid;
  338. grd_diaglist.position.height = heig - 2;
  339. grd_diaglist.position.width = wid - 4;
  340. //grd_diaglist.extendLastCol = "scroll";
  341. if(colhide)
  342. {
  343. grd_diaglist.setRealColSize(0, 0, true); //20
  344. //grd_diaglist.colhidden(0) = colhide;
  345. btn_pop.visible = false;
  346. }
  347. if (!utlf_isNull(ivwID))
  348. gSendParentCallID = ivwID;
  349. }
  350. /**
  351. * @desc : Comments 기록 존재 여부에 따른 컬럼 표시
  352. * @
  353. * @param :
  354. * @return :
  355. * @---------------------------------------------------
  356. */
  357. function fIsCommentExist()
  358. {
  359. var iFndRow = ds_data_recitem.getCaseCount("degnitemcd=='0000509001' && degnitemkind=='GSU' && !utlf_isNull(reccnts)");
  360. if (iFndRow > 0)
  361. {
  362. grd_diaglist.setRealColSize(grd_diaglist.getBindCellIndex("body", "Comments"), 0, true); //79
  363. //grd_diaglist.colhidden(grd_diaglist.colref("recitem[colno='0']/reccnts")) = false;
  364. }
  365. else
  366. {
  367. grd_diaglist.setRealColSize(grd_diaglist.getBindCellIndex("body", "Comments"), 79, true); //79
  368. }
  369. }]]></Script>