SMMMB00900.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[//변수선언
  3. var prcpclscd = 2;
  4. var prcpKindCdCol = 3; //처방종류 index
  5. var prcpnmCol = 5; //처방명 컬럼 index
  6. var prcpVolCol = 6; //용량 컬럼 index
  7. var prcpQtyCol = 8; //수량 컬럼 index
  8. var prcpTimsCol = 10; //횟수 컬럼 index
  9. var prcpDayNoCol = 11; //일수 컬럼 index
  10. var prcpDeliveFactCol = 15; //전달사항 컬럼 index
  11. var prcpHopeHdCol = 18; //희망일자 컬럼 index
  12. var ContPrcpDdRow = 6; //지정일 instance row
  13. var prcpNode = ds_main_prcplist;
  14. var diagNode = "/root/main/diaginfo/diagcdlist";
  15. var prcpgenrflag = ""; //외래입원구분
  16. /**
  17. * @desc : 처방화면 초기화
  18. * @param :
  19. * @id : model1
  20. * @event : xforms-ready
  21. * @return : void
  22. * @authur : 마정민 2007. 3. 14
  23. * @---------------------------------------------------
  24. */
  25. function fInitializeReady() {
  26. model.recalculate();
  27. model.setfocus( "grd_prcplist" );
  28. grd_prcplist.dispatch("onentercell");
  29. }
  30. function fDirecPrcpSrch(srchflag) {
  31. if ( ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpflag") == "2" && ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "drugmastspec") =="Y" ){
  32. return;
  33. }
  34. var prcpnm = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpnm" );
  35. if ( srchflag == "prcpcd") {
  36. prcpnm = ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "prcpcd" );
  37. }
  38. var isHangul = utlf_isHangul(prcpnm);
  39. //한글일때는 1글자만 넣어도 검색가능
  40. if ( utlf_isNull(prcpnm)) {
  41. sysf_messageBox ( "검색어를", "C001" );
  42. return;
  43. } else if ( isHangul == "E" ){
  44. //영문,숫자일때는 3글자 넣어야 검색가능
  45. if ( prcpnm.length < 2 ){
  46. sysf_messageBox ( "2글자 이상", "C001" );
  47. return;
  48. }
  49. } else if ( isHangul == "H" ) {
  50. if ( prcpnm.length < 2 ){
  51. sysf_messageBox ( "한글은 2글자 이상", "C001" );
  52. return;
  53. }
  54. }
  55. if (prcpnm.charAt ( 0 ) == "/"){
  56. if ( prcpnm.length == 1 ){
  57. sysf_messageBox ( "검색할 수술명이", "I004" );
  58. return;
  59. }
  60. var curRow = ds_main_prcplist.rowposition;
  61. var srchRow = ds_main_prcplist.rowcount -1;
  62. var mon = sysf_getCurrentMonitorNumber();
  63. frmf_modal("SPMMO05100", "SPMMO05100", null, false, mon, 180, 80, null, null, null, null, null, "M");
  64. //fPrcpModal ( "SPMMO05100", 180, 80 );
  65. } else {
  66. if ( srchflag == "prcpcd") {
  67. lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd" ), ds_paminfo.getColumn(0, "insukind"), "TRMMB00201", "", false, "getPrcpCdOldSrchInfo", isHangul );
  68. } else if ( srchflag == "prcpnm") {
  69. lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd" ), ds_paminfo.getColumn(0, "insukind"), "TRMMB00201", "", false, "getPrcpNmSrchInfo", isHangul );
  70. } else {
  71. lf_prcpSrchCom ( prcpnm, ds_init.getColumn(0, "prcpdd" ), ds_paminfo.getColumn(0, "insukind"), "TRMMB00201", "", false, "getPrcpSrchInfo", isHangul );
  72. }
  73. var srchLength = ds_prcpsrch_prcplist.rowcount;
  74. var curRow = ds_main_prcplist.rowposition;
  75. var nextRow = ds_main_prcplist.rowposition + 1;
  76. if( srchLength > 1) {
  77. ivw_prcp.grd_prcpsrchlist.position.height = 278;
  78. ivw_prcp.btn_copy.position.top = 281;
  79. ivw_prcp.btn_copy.position.height = 20;
  80. import1.btn_cancel.position.top = 281;
  81. import1.btn_cancel.position.height = 20;
  82. if ( ds_main_prcplist.rowposition < 12) {
  83. import1.position.top = 71 + ( ds_main_prcplist.rowposition) * 23;
  84. } else if ( ds_main_prcplist.rowposition < 25) {
  85. import1.position.top = (ds_main_prcplist.rowposition) * 23 - 260;
  86. } else if ( ds_main_prcplist.rowposition >= 25 ) {
  87. import1.position.top = 24 * 23 - 247;
  88. }
  89. import1.position.height = 306;
  90. import1.visible = true;
  91. ds_prcpsrch_prcplist.rowposition = 0;
  92. ivw_prcp.grd_prcpsrchlist.setCellPos(0);
  93. ivw_prcp.grd_prcpsrchlist.setFocus();
  94. } else if( srchLength == 1) {
  95. srchRow = lf_addPrcpDetl ( "import" , "ds_prcpsrch_prcplist" , "ds_main_prcplist" , 0 , ds_main_prcplist.rowposition, "00" );
  96. if (srchRow !=0 ) {
  97. lf_focusMain ( srchRow );
  98. }
  99. } else {
  100. sysf_messageBox ( "검색된 내용이", "I004" );
  101. btn_editcell_onclick();
  102. }
  103. }
  104. }
  105. function fGetDirecPrcp() {
  106. ds_send.setColumn(0, "cond1", ds_init.getColumn(0, "prcpno" ));
  107. var oParam = {};
  108. oParam.id = "TRMMB00911";
  109. oParam.service = "prcpbaseapp.OrdPrcpMngt";
  110. oParam.method = "reqGetDirecPrcpDetlSetList";
  111. oParam.inds = "req=ds_send";
  112. oParam.outds = "ds_main_prcplist=prcplist";
  113. oParam.async = false;
  114. //oParam.callback = "cf_TRMMB00911";
  115. tranf_submit(oParam);
  116. if( utlf_isNull(ds_main_prcplist.getColumnInfo("tempcol6")) ){
  117. ds_main_prcplist.addColumn("tempcol6", "string");
  118. }
  119. if( utlf_isNull(ds_main_prcplist.getColumnInfo("prcpsignflag")) ){
  120. ds_main_prcplist.addColumn("prcpsignflag", "string");
  121. }
  122. if( utlf_isNull(ds_main_prcplist.getColumnInfo("etcprcpflag")) ){
  123. ds_main_prcplist.addColumn("etcprcpflag", "string");
  124. }
  125. if( utlf_isNull(ds_main_prcplist.getColumnInfo("prcpauthflag")) ){
  126. ds_main_prcplist.addColumn("prcpauthflag", "string");
  127. }
  128. if( utlf_isNull(ds_main_prcplist.getColumnInfo("prcphopedd")) ){
  129. ds_main_prcplist.addColumn("prcphopedd", "string");
  130. }
  131. dsf_setDefaultVal(ds_main_prcplist, "hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,drgacptflag:-");
  132. lf_appendChildPrcp ( "ds_reset_prcplist", "ds_main_prcplist", "main" ); //검색라인추가
  133. }
  134. /**
  135. * @desc : 처방수정.
  136. * @ : 신규일때는 수정표시 안함.
  137. * @ : 삭제,D/C 상태일때는 취소후 수정.
  138. * @param :
  139. * @id : grd_prcplist
  140. * @event : xforms-value-changed
  141. * @return : void
  142. * @authur : 마정민 2007. 6. 4
  143. * @---------------------------------------------------
  144. */
  145. function fPrcpUpdate() {
  146. var status = model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status" );
  147. if (status=="-") {
  148. model.setValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row+ "]/status", "U" );
  149. model.refresh();
  150. model.recalculate();
  151. }
  152. }
  153. /**
  154. * @desc : 오른쪽 마우스 클릭 삭제
  155. * @ : 신규일 때는 removeNode
  156. * @ : 수정중일 때 원복시킨 후 삭제, D/C 표시
  157. * @ : 삭제, D/C 원복시킬려면 ? 오른쪽 마우스에 삭제 및 D/C 원복
  158. * @ : D/C 후 삭제는 불가
  159. * @param :
  160. * @id : grd_prcplist
  161. * @event : 오른쪽 마우스 클릭 삭제
  162. * @return : void
  163. * @authur : 마정민 2007. 6. 4
  164. * @---------------------------------------------------
  165. */
  166. function fDirecDeleteRow() {
  167. for( var i=div_all.grd_prcplist.selectcount-1 ; i>=0 ; i-- ){
  168. for( var j=div_all.grd_prcplist.selectendrow[i] ; j>=div_all.grd_prcplist.selectstartrow[i] ; j-- ){
  169. var status = ds_main_prcplist.getColumn(j, "status" );
  170. if (status=="-") {
  171. ds_main_prcplist.setColumn(j, "status", "D" );
  172. } else if ( status =="I" ) {
  173. //신규입력(I)은 removeNode 이다.
  174. ds_main_prcplist.deleteRow(j);
  175. //삭제시 데이터를
  176. } else if (status=="S") {
  177. ds_main_prcplist.setColumn(j, "prcpnm", "" );
  178. } else if (status=="D") {
  179. ds_main_prcplist.setColumn(j, "status", "-" );
  180. } else if (status=="U") {
  181. ds_main_prcplist.setColumn(j, "status", "D" );
  182. }
  183. }
  184. }
  185. }
  186. function fDirecPrcpSave() {
  187. for ( var i=0; i < ds_main_prcplist.rowcount-1; i++ ) {
  188. if ( ds_main_prcplist.getColumn(i, "status" ) == "I" || ds_main_prcplist.getColumn(i, "status" ) == "U" ) {
  189. ds_main_prcplist.setColumn(i, "prcpkindcd", "20" );
  190. ds_main_prcplist.setColumn(i, "srchcondcnts", ds_init.getColumn(0, "prcpno" ));
  191. ds_main_prcplist.setColumn(i, "prcpsetcd", opener.frmf_getParameter("SMMMB02100_cond2" ));
  192. }
  193. }
  194. var savePrcpInfo = ds_main_prcplist;
  195. ds_send_cond1.assign(ds_main_prcplist);
  196. ds_send.setColumn(0, "cond2", "2" );
  197. ds_send.setColumn(0, "inptflag", "2" );
  198. dsf_setDefaultVal(ds_send_cond1, "hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:N,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,matrallsizespecid:-,rehbprcpcurepartcd:-,tfdtlcd:N,exptmthdfact:-,diagtestconttestcdspec:-,nullcolumncd:-,nullvalexistyn:N,rehbprcpenddd:-,drgacptflag:-");
  199. ds_send_cond1.enableevent = false;
  200. ds_send_cond1.updatecontrol = false;
  201. if( ds_send_cond1.getColumn(ds_send_cond1.rowcount-1, "status") == "S" ){
  202. ds_send_cond1.setRowType(ds_send_cond1.rowcount-1, 1);
  203. }
  204. ds_send_cond1.updatecontrol = true;
  205. ds_send_cond1.enableevent = true;
  206. var oParam = {};
  207. oParam.id = "TRMMB00203";
  208. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  209. oParam.method = "reqGetPrcpSaveChk";
  210. oParam.inds = "saveFlagInfo=ds_send savePrcpInfo=ds_send_cond1:A";
  211. oParam.outds = "ds_result_prcperrlist=prcperrlist";
  212. oParam.async = false;
  213. oParam.callback = "cf_TRMMB00203";
  214. tranf_submit(oParam);
  215. if ( arErrorCode.pop("TRMMB00203") < 0){
  216. ds_send.clearData();
  217. ds_send.addRow();
  218. return;
  219. }
  220. var prcpErrList = ds_result_prcperrlist;
  221. var xpt = system.clientToScreenX(this, this.position.left) + 100;
  222. var ypt = system.clientToScreenY(this, this.position.top) + 50;
  223. //var coord = getRelativeCoordinate ( xpt, ypt );
  224. var mon = sysf_getCurrentMonitorNumber();
  225. //xpt = coord[1];
  226. //ypt = coord[2];
  227. if ( ds_result_prcperrlist.rowcount > 0 ) {
  228. if ( !utlf_isNull(ds_result_prcperrlist.getColumn(0, "prcpcd"))){
  229. var objArgs = new Object();
  230. objArgs.arg_ds_result_prcperrlist = ds_result_prcperrlist;
  231. frmf_modal("SPMMO00600", "SPMMO00600", objArgs, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오류팝업
  232. ds_result_prcperrlist.clearData();
  233. }
  234. return;
  235. }
  236. var oParam = {};
  237. oParam.id = "TXMMB00911";
  238. oParam.service = "prcpbaseapp.OrdPrcpMngt";
  239. oParam.method = "reqExeSaveDirecPrcpDetl";
  240. oParam.inds = "saveDirecPrcpInfo=ds_send_cond1:A";
  241. oParam.outds = "ds_main_prcplist=prcplist";
  242. oParam.async = false;
  243. oParam.callback = "cf_TXMMB00911";
  244. tranf_submit(oParam);
  245. if( utlf_isNull(ds_main_prcplist.getColumnInfo("tempcol6")) ){
  246. ds_main_prcplist.addColumn("tempcol6", "string");
  247. }
  248. if( utlf_isNull(ds_main_prcplist.getColumnInfo("prcpsignflag")) ){
  249. ds_main_prcplist.addColumn("prcpsignflag", "string");
  250. }
  251. if( utlf_isNull(ds_main_prcplist.getColumnInfo("etcprcpflag")) ){
  252. ds_main_prcplist.addColumn("etcprcpflag", "string");
  253. }
  254. if( utlf_isNull(ds_main_prcplist.getColumnInfo("prcpauthflag")) ){
  255. ds_main_prcplist.addColumn("prcpauthflag", "string");
  256. }
  257. if( utlf_isNull(ds_main_prcplist.getColumnInfo("prcphopedd")) ){
  258. ds_main_prcplist.addColumn("prcphopedd", "string");
  259. }
  260. dsf_setDefaultVal(ds_main_prcplist, "hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,aftcertflag:-,aftcertdrid:-,prcpvalidd:00000000,spynpy1:-,specdrid:-,anticncrdayno:0,druglnkno:0,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-");
  261. if (arErrorCode.pop("TXMMB00911") > -1) {
  262. lf_appendChildPrcp ( "ds_reset_prcplist", "ds_main_prcplist", "main" ); //검색라인추가
  263. }
  264. }
  265. function cf_TRMMB00203(sSvcId, nErrorCode, sErrorMsg) {
  266. arErrorCode.push(sSvcId, nErrorCode);
  267. }
  268. function cf_TXMMB00911(sSvcId, nErrorCode, sErrorMsg) {
  269. arErrorCode.push(sSvcId, nErrorCode);
  270. }
  271. /**
  272. * @desc : 약속처방 복사하기 기능
  273. * @param :
  274. * @id : grd_prcplist
  275. * @event : onmousedown
  276. * @return : void
  277. * @authur : 마정민 2007. 6. 12
  278. * @---------------------------------------------------
  279. */
  280. function fCopyRow () {
  281. var cnt=0;
  282. for( var i=0 ; i<div_all.grd_prcplist.selectcount ; i++ ){
  283. for( var j=div_all.grd_prcplist.selectstartrow[i] ; j<=div_all.grd_prcplist.selectendrow[i] ; j++ ){
  284. if (ds_main_prcplist.getColumn(j, "status") != "S" ){ //검색은 드래그 안한다.
  285. fPrcpBuffer( ++cnt, j, "ds_prcpdrag_prcplist", "ds_main_prcplist" );
  286. }
  287. }
  288. }
  289. var srcNodeList = ds_prcpdrag_prcplist.rowcount;
  290. for ( var i=0 ; i<ds_prcpdrag_prcplist.rowcount ; i++ ) {
  291. ds_prcpdrag_prcplist.setColumn(i, "status" , "I" );
  292. }
  293. }
  294. /**
  295. * @desc : 약속처방 붙혀넣기 기능
  296. * @param :
  297. * @id : grd_prcplist
  298. * @event : onmousedown
  299. * @return : void
  300. * @authur : 마정민 2007. 6. 12
  301. * @---------------------------------------------------
  302. */
  303. function fPasteRow () {
  304. var srcNodeList = model.instances(0).selectNodes("/root/prcpdrag/prcplist");
  305. var destNode = model.instances(0).selectSingleNode("/root/main/prcp");
  306. var row = grd_prcplist.rows-1;
  307. for (var i=1; i<srcNodeList.length+1; i++) {
  308. row = row++;
  309. model.duplicate( "/root/main/prcp", "/root/prcpdrag/prcplist[" + i + "]", "*[" + row + "]");
  310. model.setValue ( "/root/main/prcp/prcplist[" + row + "]/status", "I" );
  311. }
  312. model.refresh();
  313. }
  314. /**
  315. * @desc : 처방화면 오른쪽 마우스 클릭 처방잘라내기
  316. * @return : void
  317. * @authur : 마정민 2007. 10. 22
  318. */
  319. function fPrcpCrop2() {
  320. if ( ds_init.getColumn(0, "cropflag") == "Y" ) {
  321. if (sysf_messageBox ( "잘라낸 데이터가 이미 있습니다. 잘라내시겠습니까?", "Q" ) != "6" ) {
  322. return;
  323. }
  324. }
  325. var cnt=0;
  326. for( var i=div_all.grd_prcplist.selectcount-1 ; i>=0 ; i-- ){
  327. for( var j=div_all.grd_prcplist.selectendrow[i] ; j>=div_all.grd_prcplist.selectstartrow[i] ; j-- ){
  328. if ( ds_main_prcplist.getColumn(j, "status" ) != "S" ){ //검색은 드래그 안한다.
  329. fPrcpBuffer( ++cnt, j, "ds_prcpdrag_prcplist", "ds_main_prcplist" );
  330. if ( ds_main_prcplist.getColumn(j, "status" ) == "I" ) {
  331. ds_main_prcplist.deleteRow(j);
  332. } else {
  333. ds_main_prcplist.setColumn(j, "status", "D" );
  334. }
  335. }
  336. ds_init.setColumn(0, "cropflag", "Y" );
  337. }
  338. }
  339. var srcNodeList = ds_prcpdrag_prcplist;
  340. for ( var i=0 ; i<ds_prcpdrag_prcplist.rowcount ; i++ ) {
  341. ds_prcpdrag_prcplist.setColumn(i, "status" , "I" );
  342. }
  343. }
  344. ]]></Script>