SMMNS02000.xjs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[ /*
  3. 전문간호 SMS전송 관리(SMMNS02000.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. 2) : Ver.1.10.01 - 2008.02.04(dhkim)
  7. */
  8. var instcd = sysf_getUserInfo("dutplceinstcd"); // 근무지기관코드
  9. var xPatPath = ds_main_opatlist_opatlist; //환자그리드
  10. var xSmsPath = ds_main_basecodelist_basecodelistinfo; //메세지그리드
  11. var xSendPath = '/root/send'; //메세지전송컴포넌트
  12. /*
  13. carecom.js의 내용(삭제예정)
  14. */
  15. /**
  16. * @group :
  17. * @ver : 2007.05.15
  18. * @by :
  19. * @---------------------------------------------------
  20. * @type : function
  21. * @access : public
  22. * @desc : 구분자로 분리된 특정자료를 Reading
  23. * @param : pData : 원본데이터
  24. * @param : pRow : 찾고자 하는 위치의 row
  25. * @param : pCol : 찾고자 하는 위치의 column
  26. * @return : 해당 row, column의 문자열
  27. * @---------------------------------------------------
  28. */
  29. function getArrayData(pData, pRow, pCol){
  30. var rowSep = "▩"; // row 구분자
  31. var colSep = "▦"; // column 구분자
  32. var arrRow = pData.split(rowSep);
  33. if(arrRow.length <= pRow) return "";
  34. var arrCol = arrRow[pRow].split(colSep);
  35. if(arrCol.length <= pCol) return "";
  36. return arrCol[pCol];
  37. }
  38. /**
  39. * @group :
  40. * @ver : 2007.07.04
  41. * 2008.02.04 - (dhkim)
  42. * @by : 정경화
  43. * @---------------------------------------------------
  44. * @type : function
  45. * @access : public
  46. * @desc : 화면 초기화(관리환자목록에서 체크된 환자들의 휴대폰 번호를 환자리스트 그리드에 리스트업한다.
  47. * 팝업이 아닐경우 화면을 강제 close한다.
  48. * 전문간호의 상용문구를 불러온다.
  49. * @param : SMMNS02000_Param을 key로 string value를 받아옴(pid, cretno, hngnm, hpno)
  50. * @---------------------------------------------------
  51. */
  52. function fInitialize(){
  53. //var node = getGlobalVariable("paminfo");
  54. //setCSVToNode("/root/temp/paminfo", node);
  55. var xPamInfoPath = 'ds_temp_paminfo'
  56. var node = appf_getPatientInfoDetails(xPamInfoPath) ;
  57. //alert(getPatientInfo("pid"));
  58. //alert(getPatientInfo("telno"));
  59. //alert(getPatientInfos());
  60. if(frmf_checkOpener()){
  61. opener.frmf_setParameter("SMMNS02000_ReturnFlag","");
  62. var sParamMsg = utlf_transNullToEmpty(opener.frmf_getParameter("SMMNS02000_Param"));
  63. //메뉴에서 팝업을 띄운경우 상단환자를 세팅
  64. if(utlf_isNull(sParamMsg)){
  65. sParamMsg += utlf_transNullToEmpty(ds_temp_paminfo.getColumn(0, "pid")) +"▦";
  66. sParamMsg += utlf_transNullToEmpty(ds_temp_paminfo.getColumn(0, "cretno"))+"▦";
  67. sParamMsg += utlf_transNullToEmpty(ds_temp_paminfo.getColumn(0, "hngnm")) +"▦";
  68. sParamMsg += utlf_transNullToEmpty(appf_getPatientInfo("telno")) +"▩";
  69. }
  70. //환자그리드 초기화
  71. ds_main_opatlist_opatlist.clearData()
  72. var sStmtList = sParamMsg.split("▩");
  73. var sCretno = 0; var sPid = ""; var sHngNm = ""; var sMpphonTel = "";
  74. var iAttrInptRow = 0;
  75. for(var i=0; i < sStmtList.length-1; i++){
  76. sPid = getArrayData(sParamMsg, i, 0);
  77. sCretno = getArrayData(sParamMsg, i, 1);
  78. sHngNm = getArrayData(sParamMsg, i, 2);
  79. sMpphonTel = getArrayData(sParamMsg, i, 3);
  80. dsf_makeValue(ds_main_opatlist_opatlist, "pid", "string", utlf_transNullToEmpty(sPid), iAttrInptRow); // 등록번호
  81. dsf_makeValue(ds_main_opatlist_opatlist, "hngnm", "string", utlf_transNullToEmpty(sHngNm), iAttrInptRow); // 성명
  82. dsf_makeValue(ds_main_opatlist_opatlist, "mpphontel", "string", utlf_transNullToEmpty(sMpphonTel), iAttrInptRow); // 수신자 전화번호
  83. dsf_makeValue(ds_main_opatlist_opatlist, "cretno", "string", utlf_transNullToEmpty(sCretno), iAttrInptRow); // 생성번호
  84. iAttrInptRow++;
  85. }
  86. // 상용문구 조회
  87. fBaseCodeSearch();
  88. } else {
  89. alert("본 화면은 팝업으로만 사용할수 있습니다.");
  90. this.close();
  91. }
  92. }
  93. /**
  94. * @group :
  95. * @ver : 2007.07.04
  96. * @by : 정경화
  97. * @---------------------------------------------------
  98. * @type : function
  99. * @access : public
  100. * @desc : 상용문구 조회
  101. * @param :
  102. * @return :
  103. * @---------------------------------------------------
  104. */
  105. function fBaseCodeSearch(){
  106. ds_main_cond.clearData();
  107. ds_main_cond.addRow();
  108. ds_main_cond.setColumn(0, "rsrvyn", "0"); // 즉시전송여부
  109. ds_main_cond.setColumn(0, "baseclsflag", "S"); // 전문간호 상용구
  110. ds_main_cond.setColumn(0, "supbasetypecd", "S1"); // 전문간호의 상용문구는 'S1'로 고정
  111. ds_main_cond.setColumn(0, "orddeptcd", "ALL");
  112. ds_send_req.clearData();
  113. ds_send_req.addRow();
  114. ds_send_req.copyRow(0, ds_main_cond, 0);
  115. var oParam = {};
  116. oParam.id = "TRMNS02001";
  117. oParam.service = "spclcareapp.SpclCarePatMngt";
  118. oParam.method = "reqGetSMS";
  119. oParam.inds = "req=ds_send_req";
  120. oParam.outds = "ds_main_basecodelist_basecodelistinfo=basecodelistinfo";
  121. oParam.async = false;
  122. //oParam.callback = "cf_TRMNS02001";
  123. tranf_submit(oParam);
  124. }
  125. /**
  126. * @group :
  127. * @ver : 2007.07.04
  128. * @by : 정경화
  129. * @---------------------------------------------------
  130. * @type : function
  131. * @access : public
  132. * @desc : 전송일시 선택에 따라 데이터 활성 여부
  133. * @param :
  134. * @return :
  135. * @---------------------------------------------------
  136. */
  137. function fAutoSeldt(){
  138. var sel = group3.rdo_dt.value;
  139. switch (sel)
  140. {
  141. case '0': //즉시전송
  142. group3.ipt_rsvdd.enable = false;
  143. group3.ipt_rsvtm.enable = false;
  144. group3.ipt_rsvdd.value = "";
  145. group3.ipt_rsvtm.value = "";
  146. break;
  147. case '1': //예약전송
  148. group3.ipt_rsvdd.enable = true;
  149. group3.ipt_rsvtm.enable = true;
  150. group3.ipt_rsvdd.value = utlf_getCurrentDate();
  151. group3.ipt_rsvtm.value = utlf_getCurrentTime();
  152. //button10.dispatch("DOMActivate");
  153. break;
  154. }
  155. }
  156. /**
  157. * @group :
  158. * @ver : 2007.07.04
  159. * @by : 정경화
  160. * @---------------------------------------------------
  161. * @type : function
  162. * @access : public
  163. * @desc : 전문간호의 SMS 상용구의 저장
  164. * @param :
  165. * @return :
  166. * @---------------------------------------------------
  167. */
  168. function fSave(gubn){
  169. var isUpdate;
  170. for(var i = 0; i < ds_main_basecodelist_basecodelistinfo.rowcount; i++){
  171. }
  172. ds_send_msgdata.clearData();
  173. if(gubn == "I"){
  174. ds_main_basecodelist_basecodelistinfo.enableevent = false;
  175. ds_main_basecodelist_basecodelistinfo.updatecontrol = false;
  176. grdf_setStatusColumn(ds_main_basecodelist_basecodelistinfo, "status");
  177. ds_main_basecodelist_basecodelistinfo.updatecontrol = true;
  178. ds_main_basecodelist_basecodelistinfo.enableevent = true;
  179. ds_send_msgdata.assign(grdf_getGridUpdateData(group3.grd_baselist, "all"));
  180. }else{
  181. return false;
  182. }
  183. var oParam = {};
  184. oParam.id = "TXMNS02002";
  185. oParam.service = "spclcareapp.SpclCarePatMngt";
  186. oParam.method = "setSMS";
  187. oParam.inds = "basecodelistinfo=ds_send_msgdata:A";
  188. oParam.outds = "";
  189. oParam.async = false;
  190. oParam.callback = "cf_TXMNS02002";
  191. tranf_submit(oParam);
  192. if(arErrorCode.pop("TXMNS02002") < 0){
  193. sysf_messageBox('저장을', 'E009');
  194. }else{
  195. fBaseCodeSearch();
  196. }
  197. }
  198. function cf_TXMNS02002(sSvcId, nErrorCode, sErrorMsg) {
  199. arErrorCode.push(sSvcId, nErrorCode);
  200. }
  201. /**
  202. * @group :
  203. * @ver : 2008.02.05
  204. * @by : dhkim
  205. * @---------------------------------------------------
  206. * @type : function
  207. * @access : public
  208. * @desc : 전문간호의 SMS 선택한 상용구삭제
  209. * @param :
  210. * @return :
  211. * @---------------------------------------------------
  212. */
  213. function fDelete(curRow){
  214. if(curRow < 0) {
  215. sysf_messageBox("삭제할 상용문구대상이 ", "I004")
  216. return;
  217. }
  218. if(ds_main_basecodelist_basecodelistinfo.getRowType(curRow) == 2){
  219. ds_main_basecodelist_basecodelistinfo.deleteRow(curRow);
  220. }else{
  221. if(sysf_messageBox('선택하신 상용문구를', 'Q001') == 6){
  222. ds_main_basecodelist_basecodelistinfo.enableevent = false;
  223. ds_main_basecodelist_basecodelistinfo.updatecontrol = false;
  224. ds_main_basecodelist_basecodelistinfo.setRowType(curRow, 8);
  225. grdf_setStatusColumn(ds_main_basecodelist_basecodelistinfo, "status");
  226. ds_main_basecodelist_basecodelistinfo.updatecontrol = true;
  227. ds_main_basecodelist_basecodelistinfo.enableevent = true;
  228. ds_send_msgdata.assign(grdf_getGridUpdateData(group3.grd_baselist, "all"));
  229. var oParam = {};
  230. oParam.id = "TXMNS02002";
  231. oParam.service = "spclcareapp.SpclCarePatMngt";
  232. oParam.method = "setSMS";
  233. oParam.inds = "basecodelistinfo=ds_send_msgdata:A";
  234. oParam.outds = "";
  235. oParam.async = false;
  236. oParam.callback = "cf_TXMNS02002";
  237. tranf_submit(oParam);
  238. if(arErrorCode.pop("TXMNS02002") < 0){
  239. sysf_messageBox('삭제를', 'E009');
  240. }else{
  241. fBaseCodeSearch();
  242. }
  243. }
  244. }
  245. }
  246. /**
  247. * @group :
  248. * @ver : 2008.02.05
  249. * @by : dhkim
  250. * @---------------------------------------------------
  251. * @type : function
  252. * @access : public
  253. * @desc : 전문간호의 SMS 상용구의 저장전 유효성체크
  254. * @param :
  255. * @return :
  256. * @---------------------------------------------------
  257. */
  258. function fIsValid(){
  259. var status, msg;
  260. for(var i = 1; i <= grd_baselist.rows; i++){
  261. status = grd_baselist.rowStatus(i);
  262. msg = model.getValue(xSmsPath + '[' + i + ']/typenm');
  263. if((status != 0 || status != 4) && msg == ''){
  264. messageBox(i + '번째의 상용문구를', 'C001');
  265. return false;
  266. }
  267. }
  268. }
  269. /**
  270. * @group :
  271. * @ver : 2008.01.29
  272. * @by : dhkim
  273. * @---------------------------------------------------
  274. * @type : function
  275. * @access : public
  276. * @desc : 전문간호의 SMS 상용구의 추가
  277. * @param :
  278. * @return :
  279. * @---------------------------------------------------
  280. */
  281. function fAddRowSave(){
  282. ds_main_basecodelist_basecodelistinfo.addRow();
  283. var iRow = ds_main_basecodelist_basecodelistinfo.rowposition;
  284. ds_main_basecodelist_basecodelistinfo.setColumn(iRow, "basetypecd", 'S'); // 기준형태코드
  285. ds_main_basecodelist_basecodelistinfo.setColumn(iRow, "baseclsflag", 'S'); // 기준분류코드
  286. ds_main_basecodelist_basecodelistinfo.setColumn(iRow, "supbasetypecd", 'S1'); // 분류상위코드
  287. ds_main_basecodelist_basecodelistinfo.setColumn(iRow, "cdcls", 'S1'); // 코드분류
  288. ds_main_basecodelist_basecodelistinfo.setColumn(iRow, "orddeptcd", 'ALL'); // 진료부서코드
  289. }
  290. /**
  291. * @group :
  292. * @ver : 2008.02.05
  293. * @by : dhkim
  294. * @---------------------------------------------------
  295. * @type : function
  296. * @access : public
  297. * @desc : 상용구를 전송할 텍스트박스에 이동
  298. * @param :
  299. * @return :
  300. * @---------------------------------------------------
  301. */
  302. function fMoveMsg(){
  303. var iRow = ds_main_basecodelist_basecodelistinfo.rowposition;
  304. var status = ds_main_basecodelist_basecodelistinfo.getRowType(iRow);
  305. if(status == 1){
  306. if(iRow < 0)
  307. return;
  308. ds_item.setColumn(0, "item", ds_main_basecodelist_basecodelistinfo.getColumn(iRow, "typenm"));
  309. }
  310. }
  311. /**
  312. * @group :
  313. * @ver : 2007.07.04
  314. * @by : 정경화
  315. * @---------------------------------------------------
  316. * @type : function
  317. * @access : public
  318. * @desc : SMS 자료 전송
  319. * @param :
  320. * @return :
  321. * @---------------------------------------------------
  322. */
  323. function fCallMngtInfo(){
  324. if(utlf_isNull(ds_item.getColumn(0, "item"))){
  325. sysf_messageBox("전송내용을 입력하지 ","E007");
  326. return;
  327. }
  328. for(var iRow = 0; iRow < ds_main_opatlist_opatlist.rowcount ; iRow++){
  329. if(utlf_transNullToEmpty(ds_main_opatlist_opatlist.getColumn(iRow, "mpphontel")).length < 10){
  330. sysf_messageBox( iRow + '번째의 ' + ds_main_opatlist_opatlist.getColumn(iRow, "hngnm") + "님의 휴대전화번호를","C001");
  331. return;
  332. }
  333. }
  334. var sRtnMsg = sysf_messageBox("SMS 전송을 ", "Q003");
  335. if(sRtnMsg != 6) return;
  336. var updatedata = grdf_getGridUpdateData(group3.grd_manalist, "all");
  337. ds_send_opatinfo.clearData();
  338. ds_send_opatinfo.assign(updatedata);
  339. ds_send_req.setColumn(0, "msgparam", ds_item.getColumn(0, "item"));
  340. ds_send_req.setColumn(0, "rsrvyn", ds_main_cond.getColumn(0, "rsrvyn"));
  341. ds_send_req.setColumn(0, "rsrvdate", ds_main_cond.getColumn(0, "rsrvdate"));
  342. ds_send_req.setColumn(0, "rsrvtime", ds_main_cond.getColumn(0, "rsrvtime"));
  343. ds_send_req.setColumn(0, "supbasetypecd", ds_main_cond.getColumn(0, "supbasetypecd"));
  344. var oParam = {};
  345. oParam.id = "TXMNS02001";
  346. oParam.service = "outcareapp.OutCareMngt";
  347. oParam.method = "reqExeSpclCallMngtInfo";
  348. oParam.inds = "reqdata=ds_send_opatinfo:A opatref=ds_send_req";
  349. oParam.outds = "";
  350. oParam.async = false;
  351. oParam.callback = "cf_TXMNS02001";
  352. tranf_submit(oParam);
  353. if(arErrorCode.pop("TXMNS02001") > -1){
  354. opener.frmf_setParameter("SMMNS02000_ReturnFlag","Y");
  355. this.close();
  356. } else {
  357. opener.frmf_setParameter("SMMNS02000_ReturnFlag","");
  358. }
  359. }
  360. function cf_TXMNS02001(sSvcId, nErrorCode, sErrorMsg) {
  361. arErrorCode.push(sSvcId, nErrorCode);
  362. }
  363. ]]></Script>