SMMMO02300.xjs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  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. ds_save_prcplist.filter("status != 'S'");
  380. ds_send_savePrcpInfo.copyData(ds_save_prcplist, true); //sort기능 추가 후 약속셋copy 시 컬럼순서때문 오류 수정 (2009.10.28 by JJE)
  381. 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:-");
  382. ds_send_saveFlagInfo.clearData();
  383. ds_send_saveFlagInfo.addRow();
  384. ds_send_saveFlagInfo.setColumn(0, "inptflag", "1" );
  385. ds_save_prcplist.clearData();
  386. var oParam = {};
  387. oParam.id = "TRMMB00203";
  388. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  389. oParam.method = "reqGetPrcpSaveChk";
  390. oParam.inds = "saveFlagInfo=ds_send_saveFlagInfo savePrcpInfo=ds_send_savePrcpInfo";
  391. oParam.outds = "ds_result_prcperrlist=prcperrlist";
  392. oParam.async = false;
  393. oParam.callback = "cf_TRMMB00203";
  394. tranf_submit(oParam);
  395. } else {
  396. trv_promprcpset.oncellclick.fireEvent(trv_promprcpset, new GridClickEventInfo());
  397. }
  398. }
  399. function cf_TRMMB00203(sSvcId, nErrorCode, sErrorMsg) {
  400. if(nErrorCode > 0) {
  401. ds_send_savePrcpInfo.clearData();
  402. ds_send_saveFlagInfo.clearData();
  403. return;
  404. }
  405. if ( ds_result_prcperrlist.rowcount > 0 ) {
  406. if ( !utlf_isNull(ds_result_prcperrlist.getColumn(0, "prcpcd"))){
  407. var mon = sysf_getCurrentMonitorNumber();
  408. var xpt = this.getOwnerFrame().position.x + 500;
  409. var ypt = this.getOwnerFrame().position.y + 400;
  410. var objArgs = new Object();
  411. objArgs.arg_ds_result_prcperrlist = ds_result_prcperrlist;
  412. frmf_open("SPMMO00600", "SPMMO00600", objArgs, false, mon, xpt, ypt, null, null, null, null, null, "M"); //오류팝업
  413. ds_result_prcperrlist.clearData();
  414. }
  415. return;
  416. }
  417. 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:-");
  418. var oParam = {};
  419. oParam.id = "TXMMB00201";
  420. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  421. oParam.method = "reqExeSavePrmsPrcpDetlSet";
  422. oParam.inds = "savePrmsPrcpInfo=ds_send_savePrcpInfo";
  423. oParam.outds = "ds_main_prcplist=prcplist";
  424. oParam.async = false;
  425. tranf_submit(oParam);
  426. 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:-");
  427. ds_send_savePrcpInfo.clearData(); //reset (2009.10.28 by JJE)
  428. fAbsnSrch ( "ds_main_prcplist" );
  429. }
  430. function fDelPrmsPrcp() {
  431. //타과 약속처방을 삭제할 수 없도록 처리함
  432. var deptflag = ds_init.getColumn(0, "srchcond1"); //개인, 과, 타과
  433. var prmsflag = ds_init.getColumn(0, "srchcond3"); //약속처방, 프로토콜
  434. if(deptflag == "T"){ //타과
  435. var orddeptcd = ds_cond.getColumn(0, "deptcd");
  436. var orddeptnm = Div00.cmb_deptset.text;
  437. if(orddeptcd != sysf_getUserInfo("dutplcecd")){
  438. sysf_messageBox("[" + orddeptnm + "] 약속처방을 삭제", "E001");
  439. return;
  440. }
  441. }
  442. if ( ds_main_prcplist.rowposition >= 0 ) {
  443. ds_main_prcplist.setColumn(ds_main_prcplist.rowposition, "status", "I");
  444. }
  445. if ( sysf_messageBox( "선택된 처방을", "Q001") == "7" ) {
  446. return;
  447. }
  448. for ( var i = 0; i < ds_main_prcplist.rowcount; i++ ) {
  449. if ( ds_main_prcplist.getColumn(i, "status") == "I" ) {
  450. ds_main_prcplist.setColumn(i, "status", "D");
  451. }
  452. }
  453. ds_save_prcplist.clear();
  454. ds_save_prcplist.copyData(ds_main_prcplist);
  455. ds_save_prcplist.filter("status != 'S'");
  456. ds_send_savePrcpInfo.copyData(ds_save_prcplist, true); //처방그리드 sort기능 추가 후 약속셋copy 시 컬럼순서때문 오류 수정 (2009.10.28 by JJE)
  457. 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:-");
  458. var oParam = {};
  459. oParam.id = "TXMMB00201";
  460. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  461. oParam.method = "reqExeSavePrmsPrcpDetlSet";
  462. oParam.inds = "savePrmsPrcpInfo=ds_send_savePrcpInfo";
  463. oParam.outds = "ds_main_prcplist=prcplist";
  464. oParam.async = false;
  465. tranf_submit(oParam);
  466. 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:-");
  467. ds_send_savePrcpInfo.clearData(); //reset (2009.10.28 by JJE)
  468. }
  469. /**
  470. * @desc : 대체약 일괄변경
  471. * @return : void
  472. * @authur : 마정민 2007. 6. 19
  473. * @
  474. */
  475. function fAltDrugAll() {
  476. lf_altDrug( ds_main_prcplist.rowposition, "3" );
  477. trv_promprcpset.oncellclick.fireEvent(trv_promprcpset, new GridClickEventInfo());
  478. }
  479. /**
  480. * @desc : 대체약 폴더내 변경
  481. * @return : void
  482. * @authur : 마정민 2007. 6. 19
  483. * @
  484. */
  485. function fAltDrugFolder () {
  486. lf_altDrug( ds_main_prcplist.rowposition, "2" );
  487. trv_promprcpset.oncellclick.fireEvent(trv_promprcpset, new GridClickEventInfo());
  488. }
  489. /**
  490. * @desc : 대체약이 있을경우 색처리 및 프로토콜 값 세팅
  491. * @param : strSrc - source 노드
  492. : grdObj - DataGrid
  493. * @return : void
  494. * @authur : 마정민 2007. 7. 03
  495. */
  496. function fAbsnSrch ( strSrc ) {
  497. var tempcol16 = "";
  498. var prcpuseflag = "";
  499. var prcpclscd = "";
  500. var settypecd = ds_hidden_prmsprcpsetlist.getColumn(0, "settypecd");
  501. var prtlno = ds_hidden_prmsprcpsetlist.getColumn(0, "prtlno");
  502. var ds_src = this.objects[strSrc];
  503. for(var i = 0; i < ds_src.rowcount; i++) {
  504. if (settypecd == "C" ) { //프로토콜약속처방이면 프로토콜 값을 세팅한다.
  505. ds_src.setColumn(i, "prtlno", prtlno);
  506. }
  507. ds_src.setColumn(i, "status", "I");
  508. }
  509. }
  510. function fSetColor (tempcol16, prcpclscd, drugmastspec) {
  511. var prcpuseflag = lf_getArrayData (tempcol16 + "^", 0, 0, "^", "|" );
  512. var color = "#000000"; //기존에 색칠되어 있는 것을 clear 해 준다.
  513. if (prcpuseflag == "D") { // 수가정보에 없는경우
  514. color = "#ff4848";
  515. } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  516. if ( lf_getArrayData ( drugmastspec + "^", 0, 10, "^", "|" ) == "Y" ) { // 품절여부가 Y 이면 색표시를 해준다.
  517. color = "#c0c0c0";
  518. }
  519. }
  520. return color;
  521. }
  522. /**
  523. * @desc : 폴더 복사
  524. * @
  525. * @param :
  526. * @return :
  527. * @authur : 오지훈 2007. 10. 13
  528. * @---------------------------------------------------
  529. */
  530. function fFolderCopy(){
  531. var currow = ds_main_prmsprcpsetlist.rowposition;
  532. var levl = ds_main_prmsprcpsetlist.getColumn(currow, "levl");
  533. var setno = ds_main_prmsprcpsetlist.getColumn(currow, "setno");
  534. var settypecd = ds_main_prmsprcpsetlist.getColumn(currow, "settypecd");
  535. var setkindcd = ds_main_prmsprcpsetlist.getColumn(currow, "setkindcd");
  536. var settrgtcd = ds_main_prmsprcpsetlist.getColumn(currow, "settrgtcd");
  537. var setclscd = ds_main_prmsprcpsetlist.getColumn(currow, "setclscd");
  538. var setnm = ds_main_prmsprcpsetlist.getColumn(currow, "setnm");
  539. if(setno == 1){
  540. sysf_messageBox("즐겨찾기 폴더는 복사", "E001");
  541. return;
  542. }
  543. ds_temp_copy.clearData();
  544. ds_temp_copy.addRow();
  545. ds_temp_copy.setColumn(0, "setno" , setno);
  546. ds_temp_copy.setColumn(0, "settypecd", settypecd);
  547. ds_temp_copy.setColumn(0, "setkindcd", setkindcd);
  548. ds_temp_copy.setColumn(0, "setclscd" , setclscd);
  549. ds_temp_copy.setColumn(0, "settrgtcd", settrgtcd);
  550. ds_temp_copy.setColumn(0, "setnm" , setnm);
  551. }
  552. /**
  553. * @desc : 폴더 붙여넣기
  554. * @
  555. * @param :
  556. * @return :
  557. * @authur : 오지훈 2007. 10. 13
  558. * @---------------------------------------------------
  559. */
  560. function fFolderPaste(){
  561. var setno = ds_temp_copy.getColumn(0, "setno");
  562. if(utlf_isNull(setno)){ //복사할 내용이 없는 경우
  563. return;
  564. }
  565. var currow = ds_main_prmsprcpsetlist.rowposition;
  566. var supsetno = ds_main_prmsprcpsetlist.getColumn(currow, "setno");
  567. var setkindcd = ds_main_prmsprcpsetlist.getColumn(currow, "setkindcd");
  568. var settypecd = ds_main_prmsprcpsetlist.getColumn(currow, "settypecd");
  569. var settrgtcd = ds_main_prmsprcpsetlist.getColumn(currow, "settrgtcd");
  570. var setclscd = ds_main_prmsprcpsetlist.getColumn(currow, "setclscd");
  571. var ioflag = ds_main_prmsprcpsetlist.getColumn(currow, "ioflag");
  572. ds_temp_copy.setColumn(0, "supsetno" , supsetno);
  573. ds_temp_copy.setColumn(0, "ioflag" , ioflag);
  574. ds_temp_copy.setColumn(0, "trgtsettypecd", settypecd);
  575. ds_temp_copy.setColumn(0, "trgtsetkindcd", setkindcd);
  576. ds_temp_copy.setColumn(0, "trgtsettrgtcd", settrgtcd);
  577. ds_temp_copy.setColumn(0, "trgtsetclscd" , setclscd);
  578. //trgtioflag는 저장 후, 재 조회시 화면의 외래/입원구분에 따라 조회하기 위해 설정
  579. ds_temp_copy.setColumn(0, "trgtioflag" , ds_init.getColumn(0, "srchcond4"));
  580. var oParam = {};
  581. oParam.id = "TXMMB00607";
  582. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  583. oParam.method = "reqInsPrcpSetCopyPaste";
  584. oParam.inds = "req=ds_temp_copy";
  585. oParam.outds = "ds_main_prmsprcpsetlist=prmsprcpsetlist";
  586. oParam.async = false;
  587. tranf_submit(oParam);
  588. grdf_expandTree(trv_promprcpset, currow);
  589. }
  590. /**
  591. * @desc : 약속SET폴더 순서 변경
  592. * @
  593. * @param :
  594. * @return :
  595. * @authur : 오지훈 2007. 10. 21
  596. * @---------------------------------------------------
  597. */
  598. function fOpenPrmsSetFolderOrderChng(){
  599. var rowpos = ds_main_prmsprcpsetlist.rowposition;
  600. var setkindcd = ds_main_prmsprcpsetlist.getColumn(rowpos, "setkindcd");
  601. var setclscd = ds_main_prmsprcpsetlist.getColumn(rowpos, "setclscd");
  602. var settypecd = ds_main_prmsprcpsetlist.getColumn(rowpos, "settypecd");
  603. var procflag = "";
  604. var deptcd = sysf_getUserInfo("dutplcecd");
  605. var deptnm = sysf_getUserInfo("dutplcenm");
  606. var ioflag = ds_init.getColumn(0, "srchcond4");
  607. var prmsflag = ds_init.getColumn(0, "srchcond1");
  608. if(prmsflag != "P"){
  609. procflag = "D";
  610. }
  611. var param = setkindcd + "▦" +
  612. setclscd + "▦" +
  613. settypecd + "▦" +
  614. procflag + "▦" +
  615. deptcd + "▦" +
  616. deptnm + "▦" +
  617. ioflag + "▦" +
  618. rowpos;
  619. frmf_setParameter("SPMMB00800_param", param);
  620. frmf_modal("SPMMB00800", "SPMMB00800", null, null, null, null, null, null, null, null, null, null, "P");
  621. fReqPrmsPrcpSet(settypecd, setkindcd, setclscd, procflag, deptcd, deptnm, ioflag);
  622. var rtnindx = frmf_getParameter("SPMMB00800_rtnparam");
  623. if(!utlf_isNull(rtnindx)){
  624. grdf_expandTree(trv_promprcpset, rtnindx, false);
  625. };
  626. }
  627. /**
  628. * @desc : 약속처방SET 조회
  629. * @
  630. * @param :
  631. * @return :
  632. * @authur : 오지훈 2007. 10. 21
  633. * @---------------------------------------------------
  634. */
  635. function fReqPrmsPrcpSet(settypecd, setkindcd, setclscd, procflag, deptcd, deptnm, ioflag){
  636. ds_send_reqdata.clearData();
  637. ds_send_reqdata.addRow();
  638. ds_send_reqdata.setColumn(0, "setkindcd", setkindcd); //부서
  639. ds_send_reqdata.setColumn(0, "setclscd" , setclscd); //의사
  640. ds_send_reqdata.setColumn(0, "settypecd", settypecd); //처방, 프로토콜
  641. ds_send_reqdata.setColumn(0, "procflag", procflag); //처리구분(D: 부서SET을 조회)
  642. ds_send_reqdata.setColumn(0, "deptcd", deptcd);
  643. ds_send_reqdata.setColumn(0, "deptnm", deptnm);
  644. ds_send_reqdata.setColumn(0, "ioflag", ioflag);
  645. var oParam = {};
  646. oParam.id = "TRMMB00601";
  647. oParam.service = "prcpbaseapp.PrmsPrcpMngt";
  648. oParam.method = "reqGetPrmsPrcpSetList";
  649. oParam.inds = "req=ds_send_reqdata";
  650. oParam.outds = "ds_main_prmsprcpsetlist=prmsprcpsetlist";
  651. oParam.async = false;
  652. tranf_submit(oParam);
  653. }]]></Script>