SMMNR022.xjs 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 약물계산식관리(SMMNR02200.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. /**
  8. * @group :
  9. * @ver : 2007.05.29
  10. * @by : 이은영
  11. * @---------------------------------------------------
  12. * @type : function
  13. * @access : public
  14. * @desc : 화면 초기화
  15. * @param : pFlag
  16. * @return :
  17. * @---------------------------------------------------
  18. */
  19. function fInitialize(){
  20. fSrchItemList("item");
  21. }
  22. /**
  23. * @group :
  24. * @ver : 2007.05.29
  25. * @by : 이은영
  26. * @---------------------------------------------------
  27. * @type : function
  28. * @access : public
  29. * @desc : 항목 추가
  30. * @param :
  31. * @return :
  32. * @---------------------------------------------------
  33. */
  34. function fAddItem(){
  35. var iRow = ds_grid_grd_itemlist.addRow();
  36. ds_grid_grd_itemlist.setColumn(iRow,"supcd","*");
  37. ds_grid_grd_itemlist.setColumn(iRow,"refseq","0");
  38. }
  39. /**
  40. * @group :
  41. * @ver : 2007.05.29
  42. * @by : 이은영
  43. * @---------------------------------------------------
  44. * @type : function
  45. * @access : public
  46. * @desc : 항목 삭제
  47. * @param :
  48. * @return :
  49. * @---------------------------------------------------
  50. */
  51. function fDelItem(){
  52. var iRow = grd_itemlist.currentrow;
  53. if(iRow < 0) return;
  54. var sStatus = ds_grid_grd_itemlist.getRowType(iRow);
  55. if(sStatus != 2 && sStatus != 4){
  56. ds_grid_grd_itemlist.deleteRow(iRow);
  57. }else{
  58. ds_grid_grd_itemlist.deleteRow(iRow);
  59. }
  60. }
  61. /**
  62. * @group :
  63. * @ver : 2007.05.29
  64. * @by : 이은영
  65. * @---------------------------------------------------
  66. * @type : function
  67. * @access : public
  68. * @desc : 요소 추가
  69. * @param :
  70. * @return :
  71. * @---------------------------------------------------
  72. */
  73. function fAddElmt(){
  74. var iItemRow = grd_itemlist.currentrow;
  75. if(iItemRow<0){
  76. sysf_messageBox("항목을 먼저","C002");
  77. return;
  78. }
  79. var sItemCD = ds_grid_grd_itemlist.getColumn(iItemRow,"itemcd");
  80. if(utlf_isNull(sItemCD)){
  81. sysf_messageBox( "계산항목을 먼저 저장해야 합니다. 요소를 추가할 수", "I004");
  82. return;
  83. }
  84. var iRow = ds_grid_grd_elmtlist.addRow();
  85. ds_grid_grd_elmtlist.setColumn(iRow,"supcd",sItemCD);
  86. ds_grid_grd_elmtlist.setColumn(iRow,"refseq",0);
  87. }
  88. /**
  89. * @group :
  90. * @ver : 2007.05.29
  91. * @by : 이은영
  92. * @---------------------------------------------------
  93. * @type : function
  94. * @access : public
  95. * @desc : 요소 삭제
  96. * @param :
  97. * @return :
  98. * @---------------------------------------------------
  99. */
  100. function fDelElmt(){
  101. var iRow = grd_elmtlist.currentrow;
  102. if(iRow < 0) return;
  103. var sStatus = ds_grid_grd_elmtlist.getRowType(iRow);
  104. if(sStatus == 1 || sStatus == 3){
  105. ds_grid_grd_elmtlist.updatecontrol = false;
  106. ds_grid_grd_elmtlist.setRowType(ds_grid_grd_elmtlist.rowposition, Dataset.ROWTYPE_DELETE);
  107. ds_grid_grd_elmtlist.updatecontrol = true;
  108. }else{
  109. ds_grid_grd_elmtlist.deleteRow(iRow);
  110. }
  111. }
  112. /**
  113. * @group :
  114. * @ver : 2007.05.29
  115. * @by : 이은영
  116. * @---------------------------------------------------
  117. * @type : function
  118. * @access : public
  119. * @desc : 항목 조회
  120. * @param : pFlag (item : 항목, elmt : 요소)
  121. * @return :
  122. * @---------------------------------------------------
  123. */
  124. function fSrchItemList(pFlag){
  125. if(pFlag == "item"){
  126. ds_grid_grd_elmtlist.clearData();
  127. ds_temp.setColumn(0,"supcd","*");
  128. tranf_submit({
  129. id: "TRMNR02201"
  130. , service: "carerecapp.ClincObsRec"
  131. , method: "reqGetDrugCalcItemList"
  132. , inds : "refCond=ds_temp"
  133. , outds : "ds_grid_grd_itemlist=itemlist"
  134. //, callback: "cbf_TRMNR02201"
  135. , async : false
  136. });
  137. ds_init.setColumn(0,"itemcalform","");
  138. /*
  139. var nRow = ds_grid_grd_itemlist.findRow("itemcd",lfv_itemnm);
  140. if(nRow < 0) nRow = ds_grid_grd_itemlist.findRow("itemnm",lfv_itemnm);
  141. ds_grid_grd_itemlist.rowposition = (nRow<0?0:nRow);
  142. ds_init.setColumn(0,"itemcalform","");
  143. if(ds_grid_grd_itemlist.rowposition >= 0)
  144. {
  145. fSrchItemList("elmt");
  146. }
  147. */
  148. }
  149. else{
  150. var iRow = grd_itemlist.currentrow;
  151. var sItemCD = ds_grid_grd_itemlist.getColumn(iRow,"itemcd");
  152. if(sItemCD == ""){
  153. ds_grid_grd_elmtlist.clearData();
  154. return ;
  155. }
  156. ds_temp.setColumn(0,"supcd", ds_grid_grd_itemlist.getColumn(iRow,"itemcd"));
  157. tranf_submit({
  158. id: "TRMNR02202"
  159. , service: "carerecapp.ClincObsRec"
  160. , method: "reqGetDrugCalcItemList"
  161. , inds : "refCond=ds_temp"
  162. , outds : "ds_grid_grd_elmtlist=elmtlist"
  163. // , callback: "cbf_TRMNR02202"
  164. , async : false
  165. });
  166. ds_init.setColumn(0,"itemcalform",ds_grid_grd_itemlist.getColumn(iRow,"calform"));
  167. }
  168. }
  169. /**
  170. * @group :
  171. * @ver : 2007.05.29
  172. * @by : 이은영
  173. * @---------------------------------------------------
  174. * @type : function
  175. * @access : public
  176. * @desc : 항목 저장
  177. * @param : pFlag (item : 항목, elmt : 요소)
  178. * @return :
  179. * @---------------------------------------------------
  180. */
  181. function fSaveItemList(pFlag){
  182. var iItemRow = ds_grid_grd_itemlist.rowposition;
  183. lfv_itemnm = ds_grid_grd_itemlist.getColumn(iItemRow,"itemcd"); //검색할 항목코드 또는 명
  184. if(utlf_isNull(lfv_itemnm)) lfv_itemnm = ds_grid_grd_itemlist.getColumn(iItemRow,"itemnm");
  185. switch(pFlag){
  186. case "item" :
  187. if(fChkItemInfo(pFlag)) return;
  188. tranf_submit({
  189. id: "TXMNR02201"
  190. , service: "carerecapp.ClincObsRec"
  191. , method: "reqExeDrugCalcItemList"
  192. , inds : "refCond=ds_temp itemlist=ds_grid_grd_itemlist:U"
  193. , outds : "ds_grid_grd_itemlist=itemlist"
  194. // , callback: "cbf_TXMNR02201"
  195. });
  196. fSrchItemList("item"); //재조회
  197. break;
  198. case "elmt" :
  199. var iItemRow = grd_itemlist.currentrow;
  200. var sItemCD = ds_grid_grd_itemlist.getColumn(iItemRow,"itemcd");
  201. var sStatus = ds_grid_grd_itemlist.getRowType(iItemRow);
  202. sysf_trace("sStatus : " + sStatus);
  203. var iElmtStatus = 0;
  204. if(sStatus == 2){
  205. sysf_messageBox( "계산항목을 먼저 저장해야 합니다. 요소 저장을 할 수", "I004");
  206. return;
  207. }
  208. var sItemCalForm = ds_init.getColumn(0,"itemcalform");
  209. if(utlf_isNull(sItemCalForm))
  210. {
  211. sysf_messageBox( "항목별 계산식이 없습니다. 요소 저장을 할 수", "I004");
  212. return;
  213. }
  214. var sTmpItemCalForm = sItemCalForm;
  215. var sElmtNM = "";
  216. for(var iRow=0; iRow<=grd_elmtlist.rowcount;iRow++){
  217. iElmtStatus = ds_grid_grd_elmtlist.getRowType(iRow);
  218. if(iElmtStatus == 8) continue;
  219. sElmtNM = utlf_transNullToEmpty(ds_grid_grd_elmtlist.getColumn(iRow,"itemnm"));
  220. sysf_trace("sElmtNM : " + sElmtNM);
  221. if(!utlf_isNull(sElmtNM))
  222. {
  223. while(sTmpItemCalForm.indexOf(utlf_transNullToEmpty(sElmtNM)) > 0)
  224. {
  225. sTmpItemCalForm = sTmpItemCalForm.replace(sElmtNM,1);
  226. }
  227. }
  228. }
  229. if(sTmpItemCalForm.replace(/[\+,\-,\/,\*,\(,\),a-z,0-9,\n]/g,"") != ""){
  230. sysf_messageBox( "계산식이 잘못 되었습니다. 다시", "C001");
  231. return;
  232. }
  233. sTmpItemCalForm = sTmpItemCalForm.replace(/\n/g,"");
  234. if(ds_grid_grd_itemlist.getColumn(iItemRow,"calform") != sItemCalForm){
  235. if(sStatus == 0 || sStatus == 8){
  236. ds_grid_grd_itemlist.setRowType = 4;
  237. }
  238. ds_grid_grd_itemlist.setColumn(iItemRow,"calform",sItemCalForm);
  239. }
  240. tranf_submit({
  241. id: "TXMNR02202"
  242. , service: "carerecapp.ClincObsRec"
  243. , method: "reqExeDrugCalcElmtList"
  244. , inds : "refCond=ds_temp itemlist=ds_grid_grd_itemlist:U elmtlist=ds_grid_grd_elmtlist:U"
  245. , outds : "ds_grid_grd_itemlist=itemlist ds_grid_grd_elmtlist=elmtlist"
  246. // , callback: "cbf_TXMNR02202"
  247. });
  248. var pos = ds_grid_grd_itemlist.findRow("itemcd",sItemCD);
  249. ds_grid_grd_itemlist.rowposition = pos;
  250. ds_init.setColumn(0,"itemcalform",ds_grid_grd_itemlist.getColumn(iItemRow,"calform"));
  251. fSrchItemList("elmt");
  252. break;
  253. }
  254. }
  255. /**
  256. * @group :
  257. * @ver : 2007.05.29
  258. * @by : 이은영
  259. * @---------------------------------------------------
  260. * @type : function
  261. * @access : public
  262. * @desc : 빈 항목명이 있는지 체크
  263. * @param : pFlag (item : 항목, elmt : 요소)
  264. * @return :
  265. * @---------------------------------------------------
  266. */
  267. function fChkItemInfo(pFlag){
  268. switch(pFlag){
  269. case "item" :
  270. for(var iRow=0; iRow<=grd_itemlist.rowcount; iRow++){
  271. if(ds_grid_grd_itemlist.getColumn(iRow,"itemnm") == ""){
  272. sysf_messageBox("항목명은","I003");
  273. return true;
  274. }
  275. }
  276. break;
  277. }
  278. return false;
  279. }
  280. function fChangedGridRow(pFlag){
  281. var iRow = 0;
  282. var iStatus = 0;
  283. switch(pFlag){
  284. case "item" :
  285. iRow = grd_itemlist.row;
  286. iStatus = grd_itemlist.rowstatus(iRow);
  287. if(iStatus == 1 || iStatus == 3) return;
  288. grd_itemlist.rowstatus(iRow) = 2;
  289. break;
  290. }
  291. }
  292. ]]></Script>