SPMNR06001_SJH.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
  1. /*
  2. Item확장명설정(수액)_SJH(SPMNR06001_SJH.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var sViewFlag = "None";
  7. var sControlFlag = "N";
  8. var flag = "1";
  9. /**
  10. * @group :
  11. * @ver : 2008.07.28
  12. * @by : 양천덕
  13. * @---------------------------------------------------
  14. * @type : function
  15. * @access : public
  16. * @desc : 화면 초기화
  17. * @param :
  18. * @return :
  19. * @---------------------------------------------------
  20. */
  21. function finit(){
  22. // 간호하드코딩 테이블 조회_20090415(ByJA)
  23. var pCode = "'S02'"; // 조회할 CdGrupID 코드정보
  24. var pDate = getCurrentDate(); //조회기준일자
  25. fGetNursHardCdInfo(pCode, pDate);
  26. fSettingRecItem("init");
  27. model.removenodeSet("/root/main/iteminfo/itemlist");
  28. model.removeNodeset("/root/main/druginfo/druglist");
  29. model.removeNodeset("/root/main/prcpdateinfo/prcpdatelist");
  30. model.removeNodeset("/root/main/prcpdetlinfo/prcpdetllist");
  31. var sParamMsgItem = "";
  32. var sParamFalg = "";
  33. var sParamItemCd = "";
  34. var sParamMsgItemList = "";
  35. var sParamListInfo = "";
  36. var sParamInfo = "";
  37. //사용구분 1: 약, 2: 일반검사, 3: 응급검사
  38. model.setValue("/root/cond/useflag", "1");
  39. //약품정보 조회값 초기 세팅
  40. model.setValue("/root/cond/drugtype", "ALL");
  41. //조회구분 초기 세팅
  42. model.setValue("/root/cond/srchtype", "ALL");
  43. model.setValue("/root/cond/srchtext", "");
  44. //처방내역 입력시 입력 정보 설정
  45. rdo_prcpinsflag.value = "1";
  46. //약,주사 기록 마스터 정보 조회
  47. //fSrchData();
  48. //FlowSheet에서 Item을 바로 등록하기 위함.
  49. var sPopupParam = opener.javascript.getParameter("SPMNR06001_Param");
  50. if( sPopupParam != "" ) sViewFlag = sPopupParam;
  51. if( getArrayData(sViewFlag,1,0) == "Flow" ){
  52. model.removeNodeset("/root/send");
  53. model.makeValue("/root/send/lnkbizcd", getArrayData(sViewFlag,1,7));
  54. if(submit("TRMNR06003_SJH", false)){
  55. fMakeItemSelect();
  56. }
  57. }else{
  58. sParamMsgItem = opener.javascript.getParameter("SPMNR06000_ParamFlag");
  59. model.removeNodeset("/root/send");
  60. model.makeValue("/root/send/lnkbizcd", getArrayData(sParamMsgItem,1,6));
  61. if(submit("TRMNR06003_SJH", false)){
  62. fMakeNoneItemSelect(getArrayData(sParamMsgItem,1,1));
  63. }
  64. }
  65. if( sViewFlag == "None" ){
  66. sParamMsgItem = opener.javascript.getParameter("SPMNR06000_ParamFlag");
  67. model.setValue("/root/cond/pid", getArrayData(sParamMsgItem,1,3));
  68. model.setValue("/root/cond/orddd", getArrayData(sParamMsgItem,1,4));
  69. model.setValue("/root/cond/cretno", getArrayData(sParamMsgItem,1,5));
  70. }else{
  71. sParamMsgItem = opener.javascript.getParameter("SPMNR06001_Param");
  72. model.setValue("/root/cond/pid", getArrayData(sParamMsgItem,1,3));
  73. model.setValue("/root/cond/orddd", getArrayData(sParamMsgItem,1,4));
  74. model.setValue("/root/cond/cretno", getArrayData(sParamMsgItem,1,5));
  75. model.setValue("/root/cond/ordtype", getArrayData(sParamMsgItem,1,6));
  76. }
  77. model.removeNodeset("/root/send");
  78. model.makeNode("/root/send");
  79. model.copyNode("/root/send", "/root/cond");
  80. submit("TRMNR06001_SJH", false);
  81. sParamFalg = getArrayData(sParamMsgItem,1,0);
  82. sParamItemCd = getArrayData(sParamMsgItem,1,1);
  83. //약/주사 또는 Fluid 아이템 선택에 따른 설정 변경
  84. fCtrlView(sParamItemCd);
  85. //화면에 Item 명 세팅
  86. if(sParamFalg == "duplextitem"){
  87. sParamMsgItemList = opener.javascript.getParameter("SPMNR06000_Param");
  88. sParamListInfo = sParamMsgItemList.split("▩");
  89. for(var i = 1 ; i < sParamListInfo.length-1 ; i++){
  90. sParamInfo = sParamListInfo[i].split("▦");
  91. model.makeValue("/root/main/iteminfo/itemlist["+i+"]/itemnm", sParamInfo[1]);
  92. model.makeValue("/root/main/iteminfo/itemlist["+i+"]/chngitemnm", sParamInfo[2]);
  93. }
  94. }else if(sParamFalg == "dupllocitem"){
  95. sParamMsgItemList = opener.javascript.getParameter("SPMNR06000_Param");
  96. sParamListInfo = sParamMsgItemList.split("▩");
  97. for(var i = 1 ; i < sParamListInfo.length-1 ; i++){
  98. sParamInfo = sParamListInfo[i].split("▦");
  99. model.makeValue("/root/main/iteminfo/itemlist["+i+"]/itemnm", sParamInfo[1]);
  100. model.makeValue("/root/main/iteminfo/itemlist["+i+"]/chngitemnm", sParamInfo[2]);
  101. }
  102. }
  103. model.refresh();
  104. model.setFocus("ipt_chngitemnm");
  105. }
  106. /**
  107. * @group :
  108. * @ver : 2008.07.28
  109. * @by : 양천덕
  110. * @---------------------------------------------------
  111. * @type : function
  112. * @access : public
  113. * @desc : 입력 정보 Item 전체 조회 화면으로 보냄
  114. * @param :
  115. * @return :
  116. * @---------------------------------------------------
  117. */
  118. function fSaveExtNm(){
  119. var sChkVal = true;
  120. //특정화면에서 호출하지 않고 Item 전체 조회 화면에서 Open했을 경우 처리
  121. if( sViewFlag == "None" ){
  122. if(model.getValue("/root/main/chngitemnm").getTrim() == ""){
  123. var msg = messageBox(caption2.value + " 입력없이 등록하시겠습니까?","Q");
  124. if(msg == "6"){
  125. opener.javascript.setParameter("SPMNR06000_RtrnParam", "&empty");
  126. window.close();
  127. }else{
  128. return;
  129. }
  130. }else{
  131. for(var i = 1 ; i <= getNodesetCount("/root/main/iteminfo/itemlist") ; i++){
  132. if( model.getValue("/root/main/chngitemnm") == model.getValue("/root/main/iteminfo/itemlist["+i+"]/chngitemnm") ){
  133. sChkVal = false;
  134. }
  135. }
  136. if(sChkVal == false){
  137. messageBox("중복 정보가 존재합니다. 다시 입력하십시요","I");
  138. ipt_chngitemnm.value = "";
  139. model.setFocus("ipt_chngitemnm");
  140. return;
  141. }else{
  142. opener.javascript.setParameter("SPMNR06000_RtrnParam",model.getValue("/root/main/chngitemnm") + "▦" + model.getValue("/root/main/recfluidunit") +"▩");
  143. window.close();
  144. }
  145. }
  146. }
  147. //특정화면에서 호출할 경우 처리
  148. else{
  149. if( rdo_itemlist.value == "" ){
  150. messageBox("기록 항목 유형이 선택되지 않았습니다.", "E");
  151. model.setFocus("rdo_itemlist");
  152. return;
  153. }
  154. if(model.getValue("/root/main/chngitemnm").getTrim() == ""){
  155. messageBox("기록 항목 입력값이 없어 등록 할 수 없습니다.", "E");
  156. model.setFocus("ipt_chngitemnm");
  157. return;
  158. }
  159. var sSateData = "status▦pid▦orddd▦cretno▦itemfromdt▦itemtodt▦refseq▦itemcd▦patseqno▦recflag▦prcpyn▦grupcd▦ordtype▦carerecseqno▦itemorigincd▦chngitemnm▦supsetno▦recfluidunit▩";
  160. var sItemCd = rdo_itemlist.value;
  161. var sRecFlag = model.getValue("/root/init/fluiditeminfo/fluiditemlist[itemcd='"+sItemCd+"']/recflag");
  162. var recnm;
  163. var recvol;
  164. var recvolunit;
  165. var recfluidunit;
  166. if(flag == "1") {
  167. for(var i = grd_recitemlist.fixedRows; i < grd_recitemlist.rows; i++) {
  168. recnm = grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recnm"));
  169. recvol = grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recvol"));
  170. recvolunit = grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recvolunit"));
  171. recfluidunit = grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recfluidunit"));
  172. sSateData += "i" + "▦"
  173. + model.getValue("/root/cond/pid") + "▦"
  174. + model.getValue("/root/cond/orddd") + "▦"
  175. + model.getValue("/root/cond/cretno") + "▦"
  176. + getCurrentDate()+getCurrentTime() + "▦"
  177. + "99991231235959" + "▦"
  178. + 0 + "▦"
  179. + sItemCd + "▦"
  180. + "" + "▦"
  181. + sRecFlag + "▦"
  182. + "N" + "▦"
  183. + 1 + "▦"
  184. + model.getValue("/root/cond/ordtype") + "▦"
  185. + "" + "▦"
  186. + "04" + "▦"
  187. + recnm + " " + recvol + recvolunit + "▦"
  188. + "" + "▦"
  189. + recfluidunit + "▩";
  190. }
  191. } else {
  192. sSateData += "i" + "▦"
  193. + model.getValue("/root/cond/pid") + "▦"
  194. + model.getValue("/root/cond/orddd") + "▦"
  195. + model.getValue("/root/cond/cretno") + "▦"
  196. + getCurrentDate()+getCurrentTime() + "▦"
  197. + "99991231235959" + "▦"
  198. + 0 + "▦"
  199. + sItemCd + "▦"
  200. + "" + "▦"
  201. + sRecFlag + "▦"
  202. + "N" + "▦"
  203. + 1 + "▦"
  204. + model.getValue("/root/cond/ordtype") + "▦"
  205. + "" + "▦"
  206. + "04" + "▦"
  207. + ipt_chngitemnm.value + "▦"
  208. + "" + "▦"
  209. + model.getValue("/root/main/recfluidunit") + "▩";
  210. }
  211. model.removenode("/root/send");
  212. model.makeValue("/root/send/patitemlist", sSateData);
  213. if(submit("TXMNR06001_SJH", false)){
  214. opener.javascript.setParameter("SPMNR06000_ReturnSaveInfo", "Refresh");
  215. }
  216. window.close();
  217. }
  218. }
  219. /**
  220. * @group :
  221. * @ver : 2010.03.05
  222. * @by : 양천덕
  223. * @---------------------------------------------------
  224. * @type : function
  225. * @access : public
  226. * @desc : 약, 주사 기록약품마스터 정보 조회
  227. * @param :
  228. * @return :
  229. * @---------------------------------------------------
  230. */
  231. function fSrchData(){
  232. if( ipt_srchtext.value.getTrim().length< 1 ){
  233. ipt_srchtext.value = "";
  234. }
  235. //얌품정보 리스트 초기화
  236. //model.removenodeset("/root/main/druginfo");
  237. model.removenodeset("/root/send");
  238. model.makeNode("/root/send");
  239. model.copyNode("/root/send", "/root/cond");
  240. submit("TRMNR10501", false);
  241. }
  242. /**
  243. * @group :
  244. * @ver : 2010.03.06
  245. * @by : 양천덕
  246. * @---------------------------------------------------
  247. * @type : function
  248. * @access : public
  249. * @desc : 환자 처방 정보 상세 조회
  250. * @param :
  251. * @return :
  252. * @---------------------------------------------------
  253. */
  254. function fSrchPrcpDetlInfo(pRow){
  255. if( pRow == "" || pRow < 1 ) return;
  256. model.removenodeset("/root/send");
  257. model.makeValue("/root/send/pid", model.getValue("/root/cond/pid"));
  258. model.makeValue("/root/send/orddd", model.getValue("/root/cond/orddd"));
  259. model.makeValue("/root/send/cretno", model.getValue("/root/cond/cretno"));
  260. model.makeValue("/root/send/prcphopedd", grd_prcpdatelist.valueMatrix(pRow, grd_prcpdatelist.colRef("prcphopedd")));
  261. model.makeValue("/root/send/prcpkindcd", grd_prcpdatelist.valueMatrix(pRow, grd_prcpdatelist.colRef("prcpkindcd")));
  262. submit("TRMNR06002_SJH", false);
  263. }
  264. /**
  265. * @group :
  266. * @ver : 2010.03.06
  267. * @by : 양천덕
  268. * @---------------------------------------------------
  269. * @type : function
  270. * @access : public
  271. * @desc : 기록 항목 설정 리스트에 기록정보 입력
  272. * @param :
  273. * @return :
  274. * @---------------------------------------------------
  275. */
  276. function fSettingRecItem(pFlag, pRecRow, pSelRow, pSubFlag){
  277. if( pFlag == "" ) return;
  278. var sInsRow = "";
  279. var sMsg = "";
  280. var sRecNm = "";
  281. var sRecVol = "";
  282. var sRecUnit = "";
  283. switch(pFlag){
  284. case "prcpdetllist":
  285. if( pRecRow < 1 ){
  286. grd_recitemlist.addRow();
  287. sInsRow = grd_recitemlist.rows - grd_recitemlist.fixedRows;
  288. }else{
  289. grd_recitemlist.insertRow(pRecRow, "below");
  290. sInsRow = pRecRow+1;
  291. }
  292. if( pSelRow < 1 ) return;
  293. if( grd_prcpdetllist.valueMatrix(pSelRow, grd_recitemlist.colRef("recyn")) == "Y" ){
  294. sMsg = messageBox("Alias 정보가 존재합니다. Alias 정보로 추가를 하시겠습니까?", "Q000");
  295. }
  296. if( sMsg == "6" ){
  297. sRecNm = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("recnm"));
  298. sRecVol = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("prcpvol"));
  299. sRecUnit = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("prcpvolunitflag"));
  300. }else{
  301. if( rdo_prcpinsflag.value == "1" ){
  302. sRecNm = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("prcpcd"));
  303. }else{
  304. sRecNm = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("prcpnm"));
  305. }
  306. sRecVol = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("prcpvol"));
  307. sRecUnit = grd_prcpdetllist.valueMatrix(pSelRow, grd_prcpdetllist.colRef("prcpvolunitflag"));
  308. }
  309. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recnm")) = sRecNm;
  310. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recvol")) = sRecVol;
  311. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recvolunit")) = sRecUnit;
  312. break;
  313. case "druglist":
  314. if( pRecRow < 1 ){
  315. grd_recitemlist.addRow();
  316. sInsRow = grd_recitemlist.rows - grd_recitemlist.fixedRows;
  317. }else{
  318. grd_recitemlist.insertRow(pRecRow, "below");
  319. sInsRow = pRecRow+1;
  320. }
  321. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recnm")) = grd_druglist.valueMatrix(pSelRow, grd_druglist.colRef("recnm"));
  322. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recvol")) = grd_druglist.valueMatrix(pSelRow, grd_druglist.colRef("recvol"));
  323. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recvolunit")) = grd_druglist.valueMatrix(pSelRow, grd_druglist.colRef("recunit"));
  324. grd_recitemlist.valueMatrix(sInsRow, grd_recitemlist.colRef("recfluidunit")) = grd_druglist.valueMatrix(pSelRow, grd_druglist.colRef("recfluidunit"));
  325. break;
  326. case "textadd":
  327. if( pRecRow < 1 ){
  328. grd_recitemlist.addRow();
  329. }else{
  330. grd_recitemlist.insertRow(pRecRow, "above");
  331. }
  332. break;
  333. case "textdel":
  334. grd_recitemlist.deleteRow(pRecRow);
  335. break;
  336. case "init":
  337. model.removeNodeset(grd_recitemlist.attribute("nodeset"));
  338. grd_recitemlist.refresh();
  339. break;
  340. }
  341. btn_refresh.dispatch("DOMActivate");
  342. }
  343. /**
  344. * @group :
  345. * @ver : 2010.03.06
  346. * @by : 양천덕
  347. * @---------------------------------------------------
  348. * @type : function
  349. * @access : public
  350. * @desc : 기록 항목 설정 리스트에 기록정보 입력
  351. * @param :
  352. * @return :
  353. * @---------------------------------------------------
  354. */
  355. function fMakeRecItemNm(){
  356. var sSettingNm = "";
  357. if( grd_recitemlist.rows < 1 ) return;
  358. for( var i = grd_recitemlist.fixedRows ; i <= grd_recitemlist.rows ; i++ ){
  359. if( grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recnm")) != "" ){
  360. if( sSettingNm == "" ){
  361. sSettingNm += grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recnm")) + " "
  362. + grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recvol"))
  363. + grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recvolunit"));
  364. }else{
  365. sSettingNm += " , ";
  366. sSettingNm += grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recnm")) + " "
  367. + grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recvol"))
  368. + grd_recitemlist.valueMatrix(i, grd_recitemlist.colRef("recvolunit"));
  369. }
  370. }
  371. }
  372. return sSettingNm;
  373. }
  374. /**
  375. * @group :
  376. * @ver : 2010.03.26
  377. * @by : 양천덕
  378. * @---------------------------------------------------
  379. * @type : function
  380. * @access : public
  381. * @desc : 약/주사 선택 Radio Button 생성
  382. * @param :
  383. * @return :
  384. * @---------------------------------------------------
  385. */
  386. function fMakeItemSelect(){
  387. if( getNodesetCount("/root/init/fluiditeminfo/fluiditemlist") > 0 ){
  388. rdo_itemlist.attribute("cols") = getNodesetCount("/root/init/fluiditeminfo/fluiditemlist");
  389. rdo_itemlist.visible = true;
  390. }
  391. }
  392. /**
  393. * @group :
  394. * @ver : 2010.06.01
  395. * @by : 양천덕
  396. * @---------------------------------------------------
  397. * @type : function
  398. * @access : public
  399. * @desc : 약/주사 선택 Radio Button 생성(아이템 전체조회 화면에서 Open 했을 경우)
  400. * @param :
  401. * @return :
  402. * @---------------------------------------------------
  403. */
  404. function fMakeNoneItemSelect(pItemcd){
  405. if( getNodesetCount("/root/init/fluiditeminfo/fluiditemlist") > 0 ){
  406. rdo_itemlist.choices.itemset.attribute("nodeset") = "/root/init/fluiditeminfo/fluiditemlist[itemcd='"+pItemcd+"']";
  407. rdo_itemlist.value = pItemcd;
  408. rdo_itemlist.visible = true;
  409. }
  410. }
  411. /**
  412. * @group :
  413. * @ver : 2010.06.01
  414. * @by : 양천덕
  415. * @---------------------------------------------------
  416. * @type : function
  417. * @access : public
  418. * @desc : 약/주사 또는 Fluid 아이템 선택에 따른 설정 변경
  419. * @param :
  420. * @return :
  421. * @---------------------------------------------------
  422. */
  423. function fCtrlView(pFlag){
  424. //Stype 정보로 화면 Control 설정
  425. if( "01" == model.getValue("/root/init/fluiditeminfo/fluiditemlist[itemcd ='"+pFlag+"']/style") ){
  426. sControlFlag = "Y";
  427. }
  428. if( "Y" == sControlFlag ){
  429. caption6.visible = true;
  430. cmb_recunit.visible = true;
  431. chk_autosetflag.visible = true;
  432. }
  433. }