SMMMO02300.xjs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * @desc : 약속처방 SET 폴더 추가
  4. * @
  5. * @param : onmousedown
  6. * @return : void
  7. * @authur : 오지훈 2007. 4. 24
  8. * @---------------------------------------------------
  9. */
  10. function fAddPrmsDiagSet(){
  11. var rowPos = ds_main_prmsprcpsetlist.rowposition;
  12. fSetPrmsDiagInfo(rowPos, "i");
  13. ds_hidden_prmsprcpsetlist.setColumn(0, "status", "i");
  14. var autoflag = ds_init.getColumn(0, "autoflag");
  15. if(autoflag != "Y") {
  16. fShowWndIptBox(450);
  17. } else {
  18. fShowWndIptBox(pdiv_iptbox2.position.y - trv_promprcpset.position.y, "pdiv_iptbox2");
  19. }
  20. }
  21. /**
  22. * @desc : 약속처방 SET 폴더 수정
  23. * @
  24. * @param :
  25. * @return :
  26. * @---------------------------------------------------
  27. */
  28. function fUpdtPrmsDiagSet(){
  29. var rowPos = ds_main_prmsprcpsetlist.rowposition;
  30. if(fSetPrmsDiagInfo(rowPos, "u") != -1){
  31. fShowWndIptBox();
  32. }
  33. }
  34. /**
  35. * @desc : 약속처방 SET 폴더 삭제
  36. * @
  37. * @param :
  38. * @return :
  39. * @---------------------------------------------------
  40. */
  41. function fDelPrmsDiagSet(){
  42. var rowPos = ds_main_prmsprcpsetlist.rowposition;
  43. if(fSetPrmsDiagInfo(rowPos, "d") != -1) {
  44. fSavePrmsDiagSet();
  45. }
  46. }
  47. /**
  48. * @desc : 약속처방SET 폴더명을 입력할 InputBox를 보여줌.
  49. * @
  50. * @param : onmousedown
  51. * @return : void
  52. * @authur : 오지훈 2007. 4. 24
  53. * @---------------------------------------------------
  54. */
  55. function fShowWndIptBox(yPos, sComponentNm) {
  56. var arrCellRect = trv_promprcpset.getCellRect(trv_promprcpset.getTreeRow(ds_main_prmsprcpsetlist.rowposition), trv_promprcpset.getCellPos());
  57. if(utlf_isNull(sComponentNm))
  58. sComponentNm = "pdiv_iptbox1";
  59. var oIptBox = this.components[sComponentNm];
  60. var XPOS = 6;
  61. var MIN_WIDTH = 164;
  62. // 약속수술(SMMMO02600) 탭에서 쓸때와 약속처방(SMMMO02300)에서 쓸때의 이름이 다르다.
  63. var rightGridNm = (frmf_getScreenID() == "SMMMO02600") ? "grd_prmsoplist" : "grd_promprcplist";
  64. var oRightGrid = this.components[rightGridNm];
  65. var MAX_WIDTH = parseInt(trv_promprcpset.position.width) + parseInt(oRightGrid.position.width) - 12;
  66. var DEFAULT_SETNM_WIDTH = oIptBox.ipt_setnm.position.x + oIptBox.ipt_setnm.currentstyle.padding.left + oIptBox.ipt_setnm.currentstyle.padding.right;
  67. var width = MIN_WIDTH;
  68. if(ds_hidden_prmsprcpsetlist.getColumn(0, "status") == "u") {
  69. var setnm = ds_hidden_prmsprcpsetlist.getColumn(0, "setnm");
  70. var objFont = utlf_getObjFont(9, "Dotum", false); // 실제 폰트의 너비
  71. var objFontSize = utlf_getTextSize(setnm, objFont);
  72. width = objFontSize.cx + DEFAULT_SETNM_WIDTH + XPOS;
  73. if(width < MIN_WIDTH) width = MIN_WIDTH;
  74. else if(width > MAX_WIDTH) width = MAX_WIDTH;
  75. oIptBox.position.width = width;
  76. ds_iptbox.setColumn(0, "setnm", ds_hidden_prmsprcpsetlist.getColumn(0, "setnm"));
  77. }
  78. oIptBox.position.width = width;
  79. if(utlf_isNull(yPos)) {
  80. var clientY = arrCellRect.bottom + 48; // 시스템 좌표 구할 것이기 때문에 현재 위치 좌표만 구한다.
  81. if(clientY + trv_promprcpset.position.top >= 560){ // 그리드 위치와 더해서 비교
  82. yPos = arrCellRect.bottom - (oIptBox.position.height + 72);
  83. }else{
  84. yPos = clientY;
  85. }
  86. // 추후 CPGMAIN 화면 작업 후 위치 확인필요
  87. if( oOpener.ds_root.getColumn(0, "cp") == "S" ){
  88. if(clientY + trv_promprcpset.position.top >= 550){
  89. yPos = 550;
  90. }
  91. }
  92. }
  93. var arrCellRect = trv_promprcpset.getCellRect(trv_promprcpset.getTreeRow(ds_main_prmsprcpsetlist.rowposition), trv_promprcpset.getCellPos());
  94. var nDivX = system.clientToScreenX(trv_promprcpset, XPOS);
  95. var nDivY = system.clientToScreenY(trv_promprcpset, yPos);
  96. oIptBox.trackPopup(nDivX, nDivY);
  97. }
  98. /**
  99. * @desc : 약속처방 SET정보 SETTING
  100. * @
  101. * @return : void
  102. * @authur : 오지훈 2007. 4. 24
  103. * @---------------------------------------------------
  104. */
  105. function fSetPrmsDiagInfo(rowpos, status){
  106. var setno = ds_main_prmsprcpsetlist.getColumn(rowpos, "setno");
  107. if(status == "u" && setno == 1){
  108. sysf_messageBox("선택한 폴더는 수정", "E001");
  109. return -1;
  110. }else if(status == "d" && setno == 1){
  111. sysf_messageBox("선택한 폴더는 삭제", "E001");
  112. return -1;
  113. }
  114. var setnm = ds_main_prmsprcpsetlist.getColumn(rowpos, "setnm");
  115. if(status == "d"){
  116. var rtnval = sysf_messageBox("[" + setnm + "]하위의 모든 폴더가 지워집니다. " + "[" + setnm + "]폴더를", "Q001");
  117. if(rtnval == 7){
  118. return -1;
  119. }
  120. }
  121. var levl = ds_main_prmsprcpsetlist.getColumn(rowpos, "levl");
  122. var supsetno = ds_main_prmsprcpsetlist.getColumn(rowpos, "supsetno");
  123. var setkindcd = ds_main_prmsprcpsetlist.getColumn(rowpos, "setkindcd");
  124. var setclscd = ds_main_prmsprcpsetlist.getColumn(rowpos, "setclscd");
  125. var settrgtcd = ds_main_prmsprcpsetlist.getColumn(rowpos, "settrgtcd");
  126. var settypecd = ds_main_prmsprcpsetlist.getColumn(rowpos, "settypecd");
  127. var sortno = lf_getDsValue(ds_main_prmsprcpsetlist, rowpos, "sortno"); // 현재 sortno 컬럼이 필요 없는 듯 확인필요
  128. var prtlno = ds_main_prmsprcpsetlist.getColumn(rowpos, "prtlno");
  129. var ioflag = ds_init.getColumn(0, "srchcond4");
  130. ds_hidden_prmsprcpsetlist.setColumn(0, "levl" , levl);
  131. ds_hidden_prmsprcpsetlist.setColumn(0, "setno" , setno);
  132. ds_hidden_prmsprcpsetlist.setColumn(0, "setkindcd", setkindcd);
  133. ds_hidden_prmsprcpsetlist.setColumn(0, "setclscd" , setclscd);
  134. ds_hidden_prmsprcpsetlist.setColumn(0, "settrgtcd", settrgtcd);
  135. ds_hidden_prmsprcpsetlist.setColumn(0, "settypecd", settypecd);
  136. ds_hidden_prmsprcpsetlist.setColumn(0, "status" , status);
  137. ds_hidden_prmsprcpsetlist.setColumn(0, "setnm" , setnm);
  138. ds_hidden_prmsprcpsetlist.setColumn(0, "prtlno" , prtlno);
  139. ds_hidden_prmsprcpsetlist.setColumn(0, "ioflag" , ioflag);
  140. if(status == "i"){
  141. ds_hidden_prmsprcpsetlist.setColumn(0, "supsetno", setno);
  142. } else{
  143. ds_hidden_prmsprcpsetlist.setColumn(0, "supsetno", supsetno);
  144. }
  145. /*
  146. if(sortno == "")
  147. sortno = 1000;
  148. */
  149. ds_hidden_prmsprcpsetlist.setColumn(0, "sortno" , sortno);
  150. }
  151. /**
  152. * @desc : 약속처방 SET저장
  153. * @
  154. * @param :
  155. * @return : void
  156. * @authur : 오지훈 2007. 4. 24
  157. * @---------------------------------------------------
  158. */
  159. function fSavePrmsDiagSet(){
  160. var status = ds_hidden_prmsprcpsetlist.getColumn(0, "status");
  161. var currow = ds_main_prmsprcpsetlist.rowposition;
  162. if(status == "d") {
  163. currow = trv_promprcpset.getTreeParentRow(currow);
  164. } else if(status != "u") {
  165. if(currow == 0)
  166. currow = ds_main_prmsprcpsetlist.rowcount - 1;
  167. else {
  168. currow += trv_promprcpset.getTreeChildCount(currow) + 1;
  169. }
  170. }
  171. var setnm = ds_iptbox.getColumn(0, "setnm");
  172. ds_hidden_prmsprcpsetlist.setColumn(0, "setnm", setnm);
  173. var oParam = {};
  174. oParam.id = "TXMMB00601";
  175. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  176. oParam.method = "reqExeSavePrmsPrcpSet";
  177. oParam.inds = "req=ds_hidden_prmsprcpsetlist";
  178. oParam.outds = "ds_main_prmsprcpsetlist=prmsprcpsetlist";
  179. oParam.async = false;
  180. tranf_submit(oParam);
  181. if(frmf_getScreenID() == "SMMMO02600")
  182. trv_promprcpset.treeinitstatus = "expand,all";
  183. else
  184. grdf_expandTree(trv_promprcpset, currow, true);
  185. }
  186. /**
  187. * @desc : 약속처방 SET저장
  188. * @
  189. * @param :
  190. * @return : void
  191. * @authur : 오지훈 2007. 4. 24
  192. * @---------------------------------------------------
  193. */
  194. function fOndrop(rowpos){
  195. fPrmsDiagSetDrop(rowpos);
  196. }
  197. /**
  198. * @desc : 약속진단SET Drag
  199. * @
  200. * @param :
  201. * @return : void
  202. * @authur : 오지훈 2007. 4. 24
  203. * @---------------------------------------------------
  204. */
  205. function fPrmsDiagSetDrag(){
  206. var rowpos = ds_main_prmsprcpsetlist.rowposition;
  207. fSetPrmsDiagInfo(rowpos, "u");
  208. var setnm = ds_main_prmsprcpsetlist.getColumn(rowpos, "setnm");
  209. ds_iptbox.setColumn(0, "setnm", setnm);
  210. }
  211. /**
  212. * @desc : 약속진단SET Drop
  213. * @
  214. * @param :
  215. * @return : void
  216. * @authur : 오지훈 2007. 4. 24
  217. * @---------------------------------------------------
  218. */
  219. function fPrmsDiagSetDrop(rowpos){
  220. var levl = ds_main_prmsprcpsetlist.getColumn(rowpos, "levl");
  221. var setno = ds_main_prmsprcpsetlist.getColumn(rowpos, "setno");
  222. var supsetno = ds_main_prmsprcpsetlist.getColumn(rowpos, "supsetno");
  223. var cmplevl = ds_hidden_prmsprcpsetlist.getColumn(0, "levl");
  224. var cmpsetno = ds_hidden_prmsprcpsetlist.getColumn(0, "setno");
  225. var cmpsupsetno = ds_hidden_prmsprcpsetlist.getColumn(0, "supsetno");
  226. if(setno == cmpsetno){
  227. sysf_messageBox("동일한 위치로 이동", "E001");
  228. return;
  229. }else if(setno == cmpsupsetno){
  230. sysf_messageBox("지정된 위치로 이동", "E001");
  231. return;
  232. }
  233. //이동하는 SET폴더의 depth가 도착하는 곳보다 낮은 레벨일 경우,
  234. //자신의 child node 아래로 이동하는 것을 방지함.
  235. if(cmplevl < levl){
  236. var rootlevl;
  237. var rootsetno;
  238. while(cmplevl != rootlevl){
  239. rootlevl = ds_main_prmsprcpsetlist.getColumn(rowpos, "levl");
  240. rootsetno = ds_main_prmsprcpsetlist.getColumn(rowpos, "setno");
  241. rowpos--;
  242. }
  243. if(rootsetno == cmpsetno){
  244. sysf_messageBox("지정된 위치로 이동", "E001");
  245. return;
  246. }
  247. }
  248. ds_hidden_prmsprcpsetlist.setColumn(0, "supsetno" , setno);
  249. fSavePrmsDiagSet();
  250. }
  251. function fReqPrmsDetlSet() {
  252. fSetPrmsDiagInfo(ds_main_prmsprcpsetlist.rowposition);
  253. var setno = ds_hidden_prmsprcpsetlist.getColumn(0, "setno");
  254. var settypecd = ds_hidden_prmsprcpsetlist.getColumn(0, "settypecd");
  255. if(setno == 1){
  256. ds_main_prcplist.clearData();
  257. return;
  258. }
  259. ds_send.clearData();
  260. ds_send.addRow();
  261. ds_send.setColumn(0, "cond1", setno);
  262. ds_send.setColumn(0, "cond2", settypecd);
  263. var insukind = oOpener.ds_paminfo.getColumn(0, "insukind");
  264. if (utlf_isNull(insukind)){
  265. insukind = ds_paminfo.getColumn(0, "insukind");
  266. }
  267. if (!utlf_isNull(insukind)){
  268. ds_send.setColumn(0, "cond3", insukind); //외래follow up
  269. }
  270. ds_send.setColumn(0, "prcpdd", oOpener.ds_init.getColumn(0, "prcpdd"));
  271. var oParam = {};
  272. oParam.id = "TRMMB00202";
  273. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  274. oParam.method = "reqGetPrmsPrcpDetlSetList";
  275. oParam.inds = "req=ds_send";
  276. oParam.outds = "ds_main_prcplist=prcplist";
  277. oParam.async = false;
  278. oParam.callback = "cf_TRMMB00202";
  279. tranf_submit(oParam);
  280. }
  281. function cf_TRMMB00202(sSvcId, nErrorCode, sErrorMsg) {
  282. if(nErrorCode < 0) return;
  283. dsf_setDefaultVal(ds_main_prcplist, "hosinhosoutflag:-,hosinprcpresncd:00,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:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
  284. fAbsnSrch ( "ds_main_prcplist" );
  285. }
  286. function fPrmsSave() {
  287. var setno = ds_hidden_prmsprcpsetlist.getColumn(0, "setno");
  288. var settypecd = ds_hidden_prmsprcpsetlist.getColumn(0, "settypecd");
  289. var setnm = ds_hidden_prmsprcpsetlist.getColumn(0, "setnm");
  290. var srchcond1 = ds_init.getColumn(0, "srchcond1");
  291. var insukind = oOpener.ds_paminfo.getColumn(0, "insukind");
  292. if ( insukind != "11" && insukind != "21" && insukind != "22" ) {
  293. //messageBox ( "처방화면에서 약속처방 등록시는 보험유형과 급비기준이 관련있으므로 [건강보험,의료급여1종,의료급여2종] 환자에서만 약속처방 등록이", "I006" );
  294. //return;
  295. }
  296. if ( srchcond1 == "T" ) {
  297. if (ds_cond.getColumn(0, "deptcd") != sysf_getUserInfo("dutplcecd")) {
  298. sysf_messageBox ( "타과 약속처방폴더에는 저장", "E001" );
  299. return;
  300. }
  301. }
  302. //자동폴더 생성 후 약속처방 저장 기능
  303. //2008.07.25 오지훈
  304. if(ds_init.getColumn(0, "autoflag") != "Y"){
  305. if(setno == 1 || utlf_isNull(setnm)){ //최상위 폴더 또는 선택된 약속처방폴더가 없는 경우는 자동으로 폴더를 띄움
  306. grdf_expandTree(trv_promprcpset, 0, true);
  307. ds_init.setColumn(0, "autoflag", "Y");
  308. fAddPrmsDiagSet();
  309. return;
  310. }else{
  311. if ( sysf_messageBox( setnm + " 약속처방폴더에 선택하신 처방을", "Q002") == "7" ) {
  312. return;
  313. }
  314. ds_init.setColumn(0, "autoflag", "N"); //처방저장 후 autoflag N으로 설정
  315. }
  316. }
  317. /*
  318. if(setno == 1){
  319. messageBox ( "최상위 약속처방폴더에는 저장", "E001" );
  320. return;
  321. }
  322. if ( isNull(setnm)) {
  323. //messageBox ( "선택된 약속처방폴더가", "I004" );
  324. trv_promprcpset.select(0);
  325. model.setValue("/root/init/autoflag", "Y");
  326. fAddPrmsDiagSet();
  327. return;
  328. } else {
  329. if ( messageBox( setnm + " 약속처방폴더에 선택하신 처방을", "Q002") == "7" ) {
  330. return;
  331. }
  332. }
  333. */
  334. var grupsnglcnt = 0;
  335. var selectedRows = grdf_getSelectedRows(oOpener.div_all.grd_prcplist);
  336. // 이 부분 필요할 것 같은 확인필요
  337. ds_save_prcplist.clear();
  338. dsf_copyColInfo(ds_save_prcplist, oOpener.ds_main_prcplist);
  339. for ( var i = 0; i < selectedRows.length; i++ ) {
  340. var prcpkindcd = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "prcpkindcd");
  341. var prcpnm = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "prcpnm");
  342. var inclprcpno = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "inclprcpno");
  343. var status = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "status");
  344. if ( !utlf_isNull(inclprcpno) && inclprcpno != "0" ) {
  345. var grupsnglflag = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "grupsnglflag");
  346. if ( grupsnglflag != "M" ) {
  347. grupsnglcnt++;
  348. continue;
  349. }
  350. }
  351. var hsctlnkno = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "hsctlnkno");
  352. if ( !utlf_isNull(hsctlnkno) && hsctlnkno != "0" ) {
  353. var prcpsetcd = oOpener.ds_main_prcplist.getColumn(selectedRows[i], "prcpsetcd");
  354. if ( prcpsetcd != "-" ) {
  355. grupsnglcnt++;
  356. continue;
  357. }
  358. }
  359. if ( status == "S" ) {
  360. continue;
  361. }
  362. if ( lf_prmsSaveCheck ( "prms", prcpkindcd, prcpnm )) {
  363. var nRow = ds_save_prcplist.addRow();
  364. ds_save_prcplist.copyRow(nRow, oOpener.ds_main_prcplist, selectedRows[i]);
  365. ds_save_prcplist.setColumn(nRow, "prcppkspec", setno + "|" + settypecd);
  366. //model.setValue("/root/main/prcp/prcplist[" + curRow + "]/pampkspec", "Y"); //검색을 다시 할 필요가 없기에 구분자를 넣는다.
  367. ds_save_prcplist.setColumn(nRow, "status", "I");
  368. var drprcpetc2 = ds_save_prcplist.getColumn(nRow, "drprcpetc2"); // 특수주사실 정보가 없으면 저장 시 오류 수정
  369. if ( utlf_isNull(drprcpetc2) ) {
  370. ds_save_prcplist.setColumn(nRow, "drprcpetc2", "-");
  371. }
  372. }
  373. }
  374. if ( grupsnglcnt > 0 ) {
  375. sysf_messageBox ( "약속처방에는 대표코드만 저장됩니다.", "I" );
  376. }
  377. if ( ds_save_prcplist.rowcount > 0 ) {
  378. //model.setValue ( "/root/send/cond1", getNodeListCSV(savePrcpInfo));
  379. dsf_createDs("ds_cond_TXMMB00201");
  380. ds_save_prcplist.filter("status != 'S'");
  381. ds_send_savePrcpInfo.copyData(ds_save_prcplist, true); //sort기능 추가 후 약속셋copy 시 컬럼순서때문 오류 수정 (2009.10.28 by JJE)
  382. ds_cond_TXMMB00201.copyData(ds_save_prcplist, true);
  383. ds_save_prcplist.filter("");
  384. dsf_setDefaultVal(ds_send_savePrcpInfo, "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:-");
  385. ds_send_savePrcpInfo.clearData();
  386. ds_send_saveFlagInfo.clearData();
  387. ds_send_saveFlagInfo.addRow();
  388. ds_send_saveFlagInfo.setColumn(0, "inptflag", "1" );
  389. ds_save_prcplist.clearData();
  390. var oParam = {};
  391. oParam.id = "TRMMB00203";
  392. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  393. oParam.method = "reqGetPrcpSaveChk";
  394. oParam.inds = "saveFlagInfo=ds_send_saveFlagInfo savePrcpInfo=ds_send_savePrcpInfo";
  395. oParam.outds = "ds_result_prcperrlist=prcperrlist";
  396. oParam.async = false;
  397. oParam.callback = "cf_TRMMB00203";
  398. tranf_submit(oParam);
  399. } else {
  400. trv_promprcpset.oncellclick.fireEvent(trv_promprcpset, new GridClickEventInfo());
  401. }
  402. }
  403. function cf_TRMMB00203(sSvcId, nErrorCode, sErrorMsg) {
  404. if(nErrorCode > 0) {
  405. ds_send_savePrcpInfo.clearData();
  406. ds_send_saveFlagInfo.clearData();
  407. return;
  408. }
  409. if ( ds_result_prcperrlist.rowcount > 0 ) {
  410. if ( !utlf_isNull(ds_result_prcperrlist.getColumn(0, "prcpcd"))){
  411. var mon = sysf_getCurrentMonitorNumber();
  412. var xpt = this.getOwnerFrame().position.x + 500;
  413. var ypt = this.getOwnerFrame().position.y + 400;
  414. var objArgs = new Object();
  415. objArgs.arg_ds_result_prcperrlist = ds_result_prcperrlist;
  416. frmf_open("SPMMO00600", "SPMMO00600", objArgs, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오류팝업
  417. //ds_result_prcperrlist.clearData();
  418. }
  419. return;
  420. }
  421. dsf_setDefaultVal(ds_cond_TXMMB00201, "prcpdelivefact:-,hosinhosoutflag:-,hosinprcpresncd:00,clincstdyflag:N,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:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
  422. var oParam = {};
  423. oParam.id = "TXMMB00201";
  424. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  425. oParam.method = "reqExeSavePrmsPrcpDetlSet";
  426. oParam.inds = "savePrmsPrcpInfo=ds_cond_TXMMB00201";
  427. oParam.outds = "ds_main_prcplist=prcplist";
  428. oParam.async = false;
  429. tranf_submit(oParam);
  430. dsf_setDefaultVal(ds_main_prcplist, "hosinhosoutflag:-,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:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
  431. ds_send_savePrcpInfo.clearData(); //reset (2009.10.28 by JJE)
  432. fAbsnSrch ( "ds_main_prcplist" );
  433. }
  434. function fDelPrmsPrcp() {
  435. //타과 약속처방을 삭제할 수 없도록 처리함
  436. var deptflag = ds_init.getColumn(0, "srchcond1"); //개인, 과, 타과
  437. var prmsflag = ds_init.getColumn(0, "srchcond3"); //약속처방, 프로토콜
  438. if(deptflag == "T"){ //타과
  439. var orddeptcd = ds_cond.getColumn(0, "deptcd");
  440. var orddeptnm = Div00.cmb_deptset.text;
  441. if(orddeptcd != sysf_getUserInfo("dutplcecd")){
  442. sysf_messageBox("[" + orddeptnm + "] 약속처방을 삭제", "E001");
  443. return;
  444. }
  445. } else if(deptflag == "D") { // 과
  446. if ( sysf_messageBox( "과 약속셋을 삭제하면 전체과에 영향이 있습니다.\n\n선택된 처방을", "Q001") == "7" ) {
  447. return;
  448. }
  449. } else { // 개인
  450. if ( sysf_messageBox( "선택된 처방을", "Q001") == "7" ) {
  451. return;
  452. }
  453. }
  454. ds_save_prcplist.clear();
  455. ds_save_prcplist.copyData(ds_main_prcplist);
  456. var selectedRows = grdf_getSelectedRows(grd_promprcplist);
  457. for( var i = 0 ; i < selectedRows.length ; i++) {
  458. ds_save_prcplist.setColumn(selectedRows[i], "status", "D");
  459. }
  460. ds_save_prcplist.filter("status == 'D'");
  461. ds_send_savePrcpInfo.copyData(ds_save_prcplist, true); //처방그리드 sort기능 추가 후 약속셋copy 시 컬럼순서때문 오류 수정 (2009.10.28 by JJE)
  462. dsf_setDefaultVal(ds_send_savePrcpInfo, "prcpdelivefact:-,hosinhosoutflag:-,hosinprcpresncd:00,clincstdyflag:N,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:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
  463. var oParam = {};
  464. oParam.id = "TXMMB00201";
  465. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  466. oParam.method = "reqExeSavePrmsPrcpDetlSet";
  467. oParam.inds = "savePrmsPrcpInfo=ds_send_savePrcpInfo";
  468. oParam.outds = "ds_main_prcplist=prcplist";
  469. oParam.async = false;
  470. tranf_submit(oParam);
  471. dsf_setDefaultVal(ds_main_prcplist, "hosinhosoutflag:-,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:-,drprcpetc1:-,drprcpetc2:-,drprcpetc3:-,drprcpetc4:-,drprcpetc5:-,drprcpetc6:-,drprcpetc7:-,drprcpetc8:-,drprcpetc9:-,drprcpetc10:-");
  472. ds_send_savePrcpInfo.clearData(); //reset (2009.10.28 by JJE)
  473. }
  474. /**
  475. * @desc : 대체약 일괄변경
  476. * @return : void
  477. * @authur : 마정민 2007. 6. 19
  478. * @
  479. */
  480. function fAltDrugAll() {
  481. lf_altDrug( ds_main_prcplist.rowposition, "3" );
  482. trv_promprcpset.oncellclick.fireEvent(trv_promprcpset, new GridClickEventInfo());
  483. }
  484. /**
  485. * @desc : 대체약 폴더내 변경
  486. * @return : void
  487. * @authur : 마정민 2007. 6. 19
  488. * @
  489. */
  490. function fAltDrugFolder () {
  491. lf_altDrug( ds_main_prcplist.rowposition, "2" );
  492. trv_promprcpset.oncellclick.fireEvent(trv_promprcpset, new GridClickEventInfo());
  493. }
  494. /**
  495. * @desc : 대체약이 있을경우 색처리 및 프로토콜 값 세팅
  496. * @param : strSrc - source 노드
  497. : grdObj - DataGrid
  498. * @return : void
  499. * @authur : 마정민 2007. 7. 03
  500. */
  501. function fAbsnSrch ( strSrc ) {
  502. var tempcol16 = "";
  503. var prcpuseflag = "";
  504. var prcpclscd = "";
  505. var settypecd = ds_hidden_prmsprcpsetlist.getColumn(0, "settypecd");
  506. var prtlno = ds_hidden_prmsprcpsetlist.getColumn(0, "prtlno");
  507. var ds_src = this.objects[strSrc];
  508. for(var i = 0; i < ds_src.rowcount; i++) {
  509. if (settypecd == "C" ) { //프로토콜약속처방이면 프로토콜 값을 세팅한다.
  510. ds_src.setColumn(i, "prtlno", prtlno);
  511. }
  512. ds_src.setColumn(i, "status", "I");
  513. }
  514. }
  515. function fSetColor (tempcol16, prcpclscd, drugmastspec) {
  516. var prcpuseflag = lf_getArrayData (tempcol16 + "^", 0, 0, "^", "|" );
  517. var color = "#000000"; //기존에 색칠되어 있는 것을 clear 해 준다.
  518. if (prcpuseflag == "D") { // 수가정보에 없는경우
  519. color = "#ff4848";
  520. } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  521. if ( lf_getArrayData ( drugmastspec + "^", 0, 10, "^", "|" ) == "Y" ) { // 품절여부가 Y 이면 색표시를 해준다.
  522. color = "#c0c0c0";
  523. }
  524. }
  525. return color;
  526. }
  527. /**
  528. * @desc : 폴더 복사
  529. * @
  530. * @param :
  531. * @return :
  532. * @authur : 오지훈 2007. 10. 13
  533. * @---------------------------------------------------
  534. */
  535. function fFolderCopy(){
  536. var currow = ds_main_prmsprcpsetlist.rowposition;
  537. var levl = ds_main_prmsprcpsetlist.getColumn(currow, "levl");
  538. var setno = ds_main_prmsprcpsetlist.getColumn(currow, "setno");
  539. var settypecd = ds_main_prmsprcpsetlist.getColumn(currow, "settypecd");
  540. var setkindcd = ds_main_prmsprcpsetlist.getColumn(currow, "setkindcd");
  541. var settrgtcd = ds_main_prmsprcpsetlist.getColumn(currow, "settrgtcd");
  542. var setclscd = ds_main_prmsprcpsetlist.getColumn(currow, "setclscd");
  543. var setnm = ds_main_prmsprcpsetlist.getColumn(currow, "setnm");
  544. if(setno == 1){
  545. sysf_messageBox("즐겨찾기 폴더는 복사", "E001");
  546. return;
  547. }
  548. ds_temp_copy.clearData();
  549. ds_temp_copy.addRow();
  550. ds_temp_copy.setColumn(0, "setno" , setno);
  551. ds_temp_copy.setColumn(0, "settypecd", settypecd);
  552. ds_temp_copy.setColumn(0, "setkindcd", setkindcd);
  553. ds_temp_copy.setColumn(0, "setclscd" , setclscd);
  554. ds_temp_copy.setColumn(0, "settrgtcd", settrgtcd);
  555. ds_temp_copy.setColumn(0, "setnm" , setnm);
  556. }
  557. /**
  558. * @desc : 폴더 붙여넣기
  559. * @
  560. * @param :
  561. * @return :
  562. * @authur : 오지훈 2007. 10. 13
  563. * @---------------------------------------------------
  564. */
  565. function fFolderPaste(){
  566. var setno = ds_temp_copy.getColumn(0, "setno");
  567. if(utlf_isNull(setno)){ //복사할 내용이 없는 경우
  568. return;
  569. }
  570. var currow = ds_main_prmsprcpsetlist.rowposition;
  571. var supsetno = ds_main_prmsprcpsetlist.getColumn(currow, "setno");
  572. var setkindcd = ds_main_prmsprcpsetlist.getColumn(currow, "setkindcd");
  573. var settypecd = ds_main_prmsprcpsetlist.getColumn(currow, "settypecd");
  574. var settrgtcd = ds_main_prmsprcpsetlist.getColumn(currow, "settrgtcd");
  575. var setclscd = ds_main_prmsprcpsetlist.getColumn(currow, "setclscd");
  576. var ioflag = ds_main_prmsprcpsetlist.getColumn(currow, "ioflag");
  577. ds_temp_copy.setColumn(0, "supsetno" , supsetno);
  578. ds_temp_copy.setColumn(0, "ioflag" , ioflag);
  579. ds_temp_copy.setColumn(0, "trgtsettypecd", settypecd);
  580. ds_temp_copy.setColumn(0, "trgtsetkindcd", setkindcd);
  581. ds_temp_copy.setColumn(0, "trgtsettrgtcd", settrgtcd);
  582. ds_temp_copy.setColumn(0, "trgtsetclscd" , setclscd);
  583. //trgtioflag는 저장 후, 재 조회시 화면의 외래/입원구분에 따라 조회하기 위해 설정
  584. ds_temp_copy.setColumn(0, "trgtioflag" , ds_init.getColumn(0, "srchcond4"));
  585. var oParam = {};
  586. oParam.id = "TXMMB00607";
  587. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  588. oParam.method = "reqInsPrcpSetCopyPaste";
  589. oParam.inds = "req=ds_temp_copy";
  590. oParam.outds = "ds_main_prmsprcpsetlist=prmsprcpsetlist";
  591. oParam.async = false;
  592. tranf_submit(oParam);
  593. grdf_expandTree(trv_promprcpset, currow);
  594. }
  595. /**
  596. * @desc : 약속SET폴더 순서 변경
  597. * @
  598. * @param :
  599. * @return :
  600. * @authur : 오지훈 2007. 10. 21
  601. * @---------------------------------------------------
  602. */
  603. function fOpenPrmsSetFolderOrderChng(){
  604. var rowpos = ds_main_prmsprcpsetlist.rowposition;
  605. var setkindcd = ds_main_prmsprcpsetlist.getColumn(rowpos, "setkindcd");
  606. var setclscd = ds_main_prmsprcpsetlist.getColumn(rowpos, "setclscd");
  607. var settypecd = ds_main_prmsprcpsetlist.getColumn(rowpos, "settypecd");
  608. var procflag = "";
  609. var deptcd = sysf_getUserInfo("dutplcecd");
  610. var deptnm = sysf_getUserInfo("dutplcenm");
  611. var ioflag = ds_init.getColumn(0, "srchcond4");
  612. var prmsflag = ds_init.getColumn(0, "srchcond1");
  613. if(prmsflag != "P"){
  614. procflag = "D";
  615. }
  616. var param = setkindcd + "▦" +
  617. setclscd + "▦" +
  618. settypecd + "▦" +
  619. procflag + "▦" +
  620. deptcd + "▦" +
  621. deptnm + "▦" +
  622. ioflag + "▦" +
  623. rowpos;
  624. frmf_setParameter("SPMMB00800_param", param);
  625. frmf_modal("SPMMB00800", "SPMMB00800", null, null, null, null, null, null, null, null, null, null, "P");
  626. fReqPrmsPrcpSet(settypecd, setkindcd, setclscd, procflag, deptcd, deptnm, ioflag);
  627. var rtnindx = frmf_getParameter("SPMMB00800_rtnparam");
  628. if(!utlf_isNull(rtnindx)){
  629. grdf_expandTree(trv_promprcpset, rtnindx, false);
  630. };
  631. }
  632. /**
  633. * @desc : 약속처방SET 조회
  634. * @
  635. * @param :
  636. * @return :
  637. * @authur : 오지훈 2007. 10. 21
  638. * @---------------------------------------------------
  639. */
  640. function fReqPrmsPrcpSet(settypecd, setkindcd, setclscd, procflag, deptcd, deptnm, ioflag){
  641. ds_send_reqdata.clearData();
  642. ds_send_reqdata.addRow();
  643. ds_send_reqdata.setColumn(0, "setkindcd", setkindcd); //부서
  644. ds_send_reqdata.setColumn(0, "setclscd" , setclscd); //의사
  645. ds_send_reqdata.setColumn(0, "settypecd", settypecd); //처방, 프로토콜
  646. ds_send_reqdata.setColumn(0, "procflag", procflag); //처리구분(D: 부서SET을 조회)
  647. ds_send_reqdata.setColumn(0, "deptcd", deptcd);
  648. ds_send_reqdata.setColumn(0, "deptnm", deptnm);
  649. ds_send_reqdata.setColumn(0, "ioflag", ioflag);
  650. var oParam = {};
  651. oParam.id = "TRMMB00601";
  652. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  653. oParam.method = "reqGetPrmsPrcpSetList";
  654. oParam.inds = "req=ds_send_reqdata";
  655. oParam.outds = "ds_main_prmsprcpsetlist=prmsprcpsetlist";
  656. oParam.async = false;
  657. tranf_submit(oParam);
  658. }]]></Script>