SPMNP01601.xjs 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
  3. 처방(물품)찾기(SMMNP01601.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. : Create By Francis Choi
  7. : 2015.05.02
  8. ---------------------------------------------------------------------- */
  9. var ProgramCls = "C"; // C:CCR MAIN, P:간호처방
  10. var ProgramId = "01601"; // 프로그램 ID
  11. var CurrentTab = 0 ; // 9: 물품찾기 -- import해서 사용할 경우에만 적용됨.
  12. var CondPath = "/root/init/GoodData/cond";
  13. var SendPath = "/root/send/reqdata";
  14. var sOproomcd = "";
  15. var sCartGubn = "";
  16. var sInsuKind = "";
  17. var sOpenFlag = "";
  18. var sPayflagcd = "";
  19. var drugyn = "";
  20. var arErrorCode = new HashArray();
  21. /* ------------------------------------------------- */
  22. /* SMMNP01601_처방(물품)찾기 */
  23. /* On Load 시 Call */
  24. /* ------------------------------------------------- */
  25. /* group : EMR 간호 수술마취 */
  26. /* ver : 2015.05.15 */
  27. /* by : 최학록 */
  28. /* --------------------------------------------------*/
  29. /* type : function */
  30. /* access : public */
  31. /* desc : xforms-ready시 수행한다 */
  32. /* return : */
  33. /* --------------------------------------------------*/
  34. function fGoodInit() {
  35. var srchflag = sysf_getModelProperty("goodsearch");
  36. var flag = sysf_getModelProperty("flag");//opener.frmf_getParameter("flag");
  37. var srchnm = sysf_getModelProperty("srchnm");
  38. if(srchflag == "Y") {
  39. grp_main.grd_goodlist.setFormatColProperty(0, "size", 0);
  40. }
  41. ds_init_GoodData_cond.setColumn(0, "refflag", "1");
  42. ds_init_GoodData_cond.setColumn(0, "tabflag", "CCR");
  43. ds_send_reqdata.copyData(ds_init_GoodData_cond);
  44. var oParam = {};
  45. oParam.id = "TRMNP04463";
  46. oParam.service = "opanstapp.OpAnstStocMngt";
  47. oParam.method = "reqGetGubnLrg";
  48. oParam.inds = "reqdata=ds_send_reqdata";
  49. oParam.outds = "ds_init_GoodData_lrglist=lrglist";
  50. oParam.async = false;
  51. oParam.callback = "cf_TRMNP04463";
  52. tranf_submit(oParam); //대분류 조회
  53. if( arErrorCode.pop("TRMNP04463") > -1 ){
  54. ds_init_GoodData_lrglist.rowposition = -1;
  55. // if (ProgramCls == "P") { // C:CCR MAIN, P:간호처방
  56. // grp_main.attribute("height") = "705";
  57. // grd_prcplist.attribute("height") = "517"; //"552";
  58. // grd_goodlist.attribute("height") = "517"; //"552";
  59. // }
  60. // grd_goodlist.explorerbar = "sortshow";
  61. // grd_prcplist.explorerbar = "sortshow";
  62. //2008-08-21 오전 7:39:45 taebum 해당 환자의 수술방 정보
  63. sOproomcd = opener.frmf_getParameter("SPMNP01601_oproomcd");
  64. sCartGubn = opener.frmf_getParameter("SPMNP01601_cartgubn");
  65. sInsuKind = opener.frmf_getParameter("SPMNP01601_insukindcd");
  66. sOpenFlag = utlf_transNullToEmpty(opener.frmf_getParameter("SPMNP01601_openflag"));
  67. var ccrtstat = utlf_transNullToEmpty(opener.frmf_getParameter("SPMNP01601_ccrtstat"));
  68. if(sysf_getUserInfo("dutplceinstcd") == "032" && sCartGubn == "A") {
  69. grp_main.chk_diffroomyn.visible = true;
  70. } else {
  71. grp_main.chk_diffroomyn.visible = false;
  72. }
  73. if(ccrtstat == "9") {
  74. grp_main.group2.radio1.enable = false;
  75. grp_main.group2.radio1.value = "3";
  76. drugyn = "Y";
  77. }
  78. ds_HideData_condition.setColumn(0, "cartgubn", sCartGubn);
  79. ds_HideData_condition.setColumn(0, "oproomcd", sOproomcd);
  80. ds_HideData_condition.setColumn(0, "deptflag", sCartGubn);
  81. ds_HideData_condition.setColumn(0, "insukind", sInsuKind);
  82. ds_HideData_condition.setColumn(0, "openflag", sOpenFlag);
  83. opener.frmf_setParameter("SPMNP01601_oproomcd","");
  84. opener.frmf_setParameter("SPMNP01601_cartgubn","");
  85. opener.frmf_setParameter("SPMNP01601_insukindcd","");
  86. //
  87. if (ProgramId == "01600") { // 프로그램 ID
  88. CondPath = "/root/main/cond";
  89. }
  90. // document.body.pageheight = "706";
  91. ds_main_goodlist.clearData();
  92. ds_main_prcplist.clearData();
  93. //submit("TRMNP04462");
  94. if (frmf_checkOpener() ) {
  95. var refnm = utlf_transNullToEmpty(opener.frmf_getParameter("refnm"));
  96. var refflag = utlf_transNullToEmpty(opener.frmf_getParameter("refflag"));
  97. var goodflag = utlf_transNullToEmpty(opener.frmf_getParameter("goodflag"));
  98. ds_init_GoodData_cond.setColumn(0, "refnm", refnm);
  99. ds_init_GoodData_cond.setColumn(0, "refflag", refflag);
  100. ds_init_GoodData_cond.setColumn(0, "goodflag", goodflag);
  101. if(srchflag == "Y") {
  102. grp_main.grd_goodlist.setFormatColProperty(0, "size", 0);
  103. if(flag == "cd") {
  104. grp_main.group2.rdo_refcond.value = "2";
  105. grp_main.group2.ipt_refcond.value = srchnm;
  106. } else if(flag == "nm") {
  107. grp_main.group2.rdo_refcond.value = "1";
  108. grp_main.group2.ipt_refcond.value = srchnm;
  109. }
  110. if( !utlf_isNull(srchnm) ) {
  111. fDataQuery();
  112. }
  113. } else {
  114. if( utlf_isNull(refnm) || utlf_isNull(refflag) || utlf_isNull(goodflag) ){//물품구분, 조회조건, 조회구분이 없으면 리턴
  115. if( utlf_isNull(refflag) ) {
  116. ds_init_GoodData_cond.setColumn(0, "refflag", "1");
  117. }
  118. }else {
  119. var currentText = grp_main.group2.ipt_refcond.text;
  120. currentText = currentText.toUpperCase();
  121. ds_init_GoodData_cond.setColumn(0, "refnm", currentText);
  122. var xNode = ds_send_reqdata;
  123. if( utlf_isNull(xNode) ){
  124. dsf_createDs("ds_send_reqdata", [{col:"refflag", type:"string", size:256}
  125. ,{col:"refnm", type:"string", size:256}
  126. ,{col:"goodflag", type:"string", size:256}
  127. ,{col:"lrgcd", type:"string", size:256}
  128. ,{col:"mdlcd", type:"string", size:256}
  129. ,{col:"smlcd", type:"string", size:256}
  130. ,{col:"goodcond", type:"string", size:256}
  131. ,{col:"offset", type:"string", size:256}
  132. ,{col:"pagesize", type:"string", size:256}
  133. ,{col:"tabflag", type:"string", size:256}
  134. ,{col:"refcmpy", type:"string", size:256}
  135. ,{col:"refcust", type:"string", size:256}
  136. ,{col:"prcpflag", type:"string", size:256}
  137. ,{col:"winflag", type:"string", size:256}
  138. ,{col:"menuparam", type:"string", size:256}
  139. ,{col:"oproomcd", type:"string", size:256}
  140. ,{col:"cartgubn", type:"string", size:256}
  141. ,{col:"insukind", type:"string", size:256}
  142. ,{col:"payflagcd", type:"string", size:256}
  143. ,{col:"goodspec", type:"string", size:256}
  144. ,{col:"drugyn", type:"string", size:256}]);
  145. }
  146. ds_init_GoodData_cond.setColumn(0, "goodflag", "");
  147. ds_send_reqdata.copyData(ds_init_GoodData_cond);
  148. var oParam = {};
  149. oParam.id = "TRMNP04461";
  150. oParam.service = "opanstapp.OpAnstStocMngt";
  151. oParam.method = "reqGetGoodInfoHelp";
  152. oParam.inds = "reqdata=ds_send_reqdata";
  153. oParam.outds = "ds_main_goodlist=goodlist";
  154. oParam.async = false;
  155. //oParam.callback = "cf_TRMNP04461";
  156. tranf_submit(oParam);
  157. ds_main_goodlist.rowposition = -1;
  158. }
  159. }
  160. }
  161. }
  162. }
  163. function cf_TRMNP04463(sSvcId, nErrorCode, sErrorMsg) {
  164. arErrorCode.push(sSvcId, nErrorCode);
  165. }
  166. // --------------------------------------
  167. // P:처방분류선택, G:물품구분선택
  168. // --------------------------------------
  169. function fComboListChange(pDataCls) {
  170. model.removeNodeset("/root/init/GoodData/lrglist");
  171. model.removeNodeset("/root/init/GoodData/mdllist");
  172. model.removeNodeset("/root/init/GoodData/smllist");
  173. model.setValue(CondPath + "/lrgcd", "");
  174. model.setValue(CondPath + "/mdlcd", "");
  175. model.setValue(CondPath + "/smlcd", "");
  176. var xNode = instance1.selectSingleNode(SendPath);
  177. if (xNode == null) {
  178. model.makeNode(SendPath);
  179. }
  180. model.copyNode(SendPath, CondPath);
  181. // model.copyNode("/root/send/reqdata", "/root/init/GoodData/cond");
  182. if (pDataCls == "P") {
  183. submit("TRMNP04467"); // 처방분류선택
  184. return;
  185. }
  186. submit("TRMNP04463");
  187. var currentText = ipt_refcond.currentText;
  188. currentText = currentText.toUpperCase();
  189. model.setValue(CondPath + "/refnm", currentText);
  190. ipt_refcond.refresh();//대문자로 변경
  191. var refnm = model.getValue(CondPath + "/refnm");
  192. if (refnm != "" ) { //메인화면에서 검색어를 치고 들어온 경우 물품구분 선택시 자동 조회
  193. if( (model.getValue(CondPath + "/goodflag") == "" )||
  194. (model.getValue(CondPath + "/lrgcd" ) == "" )||
  195. (model.getValue(CondPath + "/mdlcd" ) == "" ) ) {
  196. if (model.getValue(CondPath + "/refflag") == "" ) {
  197. messageBox("조회구분을 선택 하지", "E007");
  198. return;
  199. }
  200. }
  201. var xNode = instance1.selectSingleNode(SendPath);
  202. if (xNode == null) {
  203. model.makeNode(SendPath);
  204. }
  205. model.copyNode(SendPath, CondPath);
  206. submit("TRMNP04461");
  207. model.resetInstanceNode(SendPath);
  208. }
  209. }
  210. // --------------------------------------
  211. // P:처방분류선택, G:물품구분선택
  212. // --------------------------------------
  213. function fDataQuery() {
  214. //var menuParam = getScreenMenuParameter();
  215. var menuParam = "S";
  216. //var menuParam = "opc";
  217. var currentText = grp_main.group2.ipt_refcond.text;
  218. currentText = currentText.toUpperCase();
  219. ds_init_GoodData_cond.setColumn(0, "refnm", currentText);
  220. if( utlf_isNull(ds_init_GoodData_cond.getColumn(0, "goodflag")) ||
  221. utlf_isNull(ds_init_GoodData_cond.getColumn(0, "lrgcd")) ||
  222. utlf_isNull(ds_init_GoodData_cond.getColumn(0, "mdlcd")) ){
  223. if( utlf_isNull(ds_init_GoodData_cond.getColumn(0, "refflag")) ){
  224. sysf_messageBox("조회구분을 선택 하지", "E007");
  225. return;
  226. }
  227. }
  228. var xNode = ds_send_reqdata;
  229. if( utlf_isNull(xNode) ){
  230. dsf_createDs("ds_send_reqdata", [{col:"refflag", type:"string", size:256}
  231. ,{col:"refnm", type:"string", size:256}
  232. ,{col:"goodflag", type:"string", size:256}
  233. ,{col:"lrgcd", type:"string", size:256}
  234. ,{col:"mdlcd", type:"string", size:256}
  235. ,{col:"smlcd", type:"string", size:256}
  236. ,{col:"goodcond", type:"string", size:256}
  237. ,{col:"offset", type:"string", size:256}
  238. ,{col:"pagesize", type:"string", size:256}
  239. ,{col:"tabflag", type:"string", size:256}
  240. ,{col:"refcmpy", type:"string", size:256}
  241. ,{col:"refcust", type:"string", size:256}
  242. ,{col:"prcpflag", type:"string", size:256}
  243. ,{col:"winflag", type:"string", size:256}
  244. ,{col:"menuparam", type:"string", size:256}
  245. ,{col:"oproomcd", type:"string", size:256}
  246. ,{col:"cartgubn", type:"string", size:256}
  247. ,{col:"insukind", type:"string", size:256}
  248. ,{col:"payflagcd", type:"string", size:256}
  249. ,{col:"goodspec", type:"string", size:256}
  250. ,{col:"drugyn", type:"string", size:256}]);
  251. }
  252. ds_send_reqdata.copyData(ds_init_GoodData_cond);
  253. ds_send_reqdata.addColumn("menuparam", "string");
  254. ds_send_reqdata.addColumn("insukind", "string");
  255. ds_send_reqdata.setColumn(0, "menuparam", menuParam);
  256. ds_send_reqdata.setColumn(0, "oproomcd", sOproomcd);
  257. ds_send_reqdata.setColumn(0, "cartgubn", ds_HideData_condition.getColumn(0, "cartgubn"));
  258. ds_send_reqdata.setColumn(0, "insukind", ds_HideData_condition.getColumn(0, "insukind"));
  259. ds_send_reqdata.setColumn(0, "drugyn", drugyn);
  260. dsf_createDs("ds_main_goodlist");
  261. if ( grp_main.group2.rdo_reftrgt.value == "PRC" ) {
  262. ds_main_prcplist.clearData();
  263. var oParam = {};
  264. oParam.id = "TRMNP04467";
  265. oParam.service = "opanstapp.OpAnstStocMngt";
  266. oParam.method = "reqGetGoodInfoHelp";
  267. oParam.inds = "reqdata=ds_send_reqdata";
  268. oParam.outds = "ds_main_prcplist=prcplist";
  269. oParam.async = false;
  270. //oParam.callback = "cf_TRMNP04467";
  271. tranf_submit(oParam);
  272. }else {
  273. ds_main_goodlist.clearData();
  274. var oParam = {};
  275. oParam.id = "TRMNP04461";
  276. oParam.service = "opanstapp.OpAnstStocMngt";
  277. oParam.method = "reqGetGoodInfoHelp";
  278. oParam.inds = "reqdata=ds_send_reqdata";
  279. oParam.outds = "ds_main_goodlist=goodlist";
  280. oParam.async = false;
  281. //oParam.callback = "cf_TRMNP04461";
  282. tranf_submit(oParam);
  283. ds_main_goodlist.rowposition = -1;
  284. }
  285. //model.resetInstanceNode("/root/send/reqdata");
  286. }
  287. // --------------------------------------
  288. // Grid Data Click
  289. // --------------------------------------
  290. function fGridDataClick(pGrid, pName) {
  291. var iRow = pGrid.currentrow;
  292. var pPath = eval("ds_main_"+pName).getColumn(iRow, "chkflag");
  293. if (pGrid.rowcount < 1 ){
  294. return;
  295. }
  296. else if (pGrid.currentcol == 1) {
  297. return;
  298. }else {
  299. var sFlag = pPath;
  300. eval("ds_main_"+pName).setColumn(iRow, "chkflag", (sFlag == "1" ? "false" : "true"));
  301. }
  302. }
  303. // --------------------------------------
  304. // Query Condition Select 조회 조건 선택
  305. // --------------------------------------
  306. function fQueryCondSelect(pGrid, pName) {
  307. var sLogical = "true";
  308. var sVisible1 = true;
  309. var sVisible2 = false;
  310. ds_init_GoodData_cond.setColumn(0, "goodflag", "");
  311. ds_init_GoodData_cond.setColumn(0, "lrgcd", "");
  312. ds_init_GoodData_cond.setColumn(0, "mdlcd", "");
  313. ds_init_GoodData_cond.setColumn(0, "smlcd", "");
  314. var xNode = ds_send_reqdata;
  315. if( utlf_isNull(xNode) ){
  316. dsf_createDs("ds_send_reqdata", [{col:"refflag", type:"string", size:256}
  317. ,{col:"refnm", type:"string", size:256}
  318. ,{col:"goodflag", type:"string", size:256}
  319. ,{col:"lrgcd", type:"string", size:256}
  320. ,{col:"mdlcd", type:"string", size:256}
  321. ,{col:"smlcd", type:"string", size:256}
  322. ,{col:"goodcond", type:"string", size:256}
  323. ,{col:"offset", type:"string", size:256}
  324. ,{col:"pagesize", type:"string", size:256}
  325. ,{col:"tabflag", type:"string", size:256}
  326. ,{col:"refcmpy", type:"string", size:256}
  327. ,{col:"refcust", type:"string", size:256}
  328. ,{col:"prcpflag", type:"string", size:256}
  329. ,{col:"winflag", type:"string", size:256}
  330. ,{col:"menuparam", type:"string", size:256}
  331. ,{col:"oproomcd", type:"string", size:256}
  332. ,{col:"cartgubn", type:"string", size:256}
  333. ,{col:"insukind", type:"string", size:256}
  334. ,{col:"payflagcd", type:"string", size:256}
  335. ,{col:"goodspec", type:"string", size:256}
  336. ,{col:"drugyn", type:"string", size:256}]);
  337. }
  338. ds_send_reqdata.copyData(ds_init_GoodData_cond);
  339. if (grp_main.group2.rdo_reftrgt.value == "PRC" ) {
  340. var oParam = {};
  341. oParam.id = "TRMNP04463";
  342. oParam.service = "opanstapp.OpAnstStocMngt";
  343. oParam.method = "reqGetGubnLrg";
  344. oParam.inds = "reqdata=ds_send_reqdata";
  345. oParam.outds = "ds_init_GoodData_lrglist=lrglist";
  346. oParam.async = false;
  347. //oParam.callback = "cf_TRMNP04463";
  348. tranf_submit(oParam); //처방분류 조회
  349. }else {
  350. if (grp_main.group2.rdo_reftrgt.value == "CSR" ) {
  351. ds_send.setColumn(0, "cdid", "T"); // 공급실물품
  352. }
  353. var oParam = {};
  354. oParam.id = "TRMNP04462";
  355. oParam.service = "opanstapp.OpAnstStocMngt";
  356. oParam.method = "reqGetGoodFlagList";
  357. oParam.inds = "req=ds_send";
  358. oParam.outds = "ds_init_GoodData_goodflaglist=goodflaglist";
  359. oParam.async = false;
  360. //oParam.callback = "cf_TRMNP04462";
  361. tranf_submit(oParam);
  362. sLogical = "false" ;
  363. sVisible1 = false ;
  364. sVisible2 = true ;
  365. }
  366. // ipt_refcond.disabled = sLogical;
  367. //cmb_goodflag.disabled = sLogical; //사용 안하는듯...
  368. grp_main.grd_prcplist.visible = sVisible1;
  369. grp_main.grd_goodlist.visible = sVisible2;
  370. }
  371. // --------------------------------------
  372. // Query Condition Select 조회 조건 선택
  373. // --------------------------------------
  374. function fChoiceData() {
  375. var srchflag = sysf_getModelProperty("goodsearch");
  376. opener.frmf_setParameter("SPMNP01601_closeyn", "");
  377. if(srchflag == "Y") {
  378. if(grp_main.grd_goodlist.rowcount > 0) {
  379. sysf_setModelProperty("goodcd", utlf_transNullToEmpty(ds_main_goodlist.getColumn(ds_main_goodlist.rowposition, "goodcd")));
  380. sysf_setModelProperty("goodnm", utlf_transNullToEmpty(ds_main_goodlist.getColumn(ds_main_goodlist.rowposition, "goodnm")));
  381. // frmf_setParameter("goodcd", ds_main_goodlist.getColumn(ds_main_goodlist.rowposition, "goodcd"));
  382. // frmf_setParameter("goodnm", ds_main_goodlist.getColumn(ds_main_goodlist.rowposition, "goodnm"));
  383. close();
  384. }
  385. }
  386. var diffroomyn = grp_main.chk_diffroomyn.value;
  387. var chkyn = "N";
  388. var iParamList = "";
  389. var wCnt = 0 ;
  390. var wIDx = 0 ;
  391. var wCode = "goodcd";
  392. var wName = "goodnm";
  393. var iNode = ds_main_goodlist;
  394. if( ds_init_GoodData_cond.getColumn(0, "tabflag") == "PRC" ) {
  395. wIDx = 1 ;
  396. wCode = "prcpcd";
  397. wName = "prcpnm";
  398. iNode = ds_main_prcplist;
  399. }
  400. var wChk = "", oproomcd = "", purcflag = "", purcflagnm = "";
  401. var iRows = iNode.rowcount;
  402. var closeyn= "";
  403. if( ds_HideData_condition.getColumn(0, "openflag") == "4600" ) {
  404. for( var i=0 ; i<iRows ; i++ ){
  405. wChk = iNode.getColumn(i, "chkflag");
  406. oproomcd = ds_HideData_condition.getColumn(0, "oproomcd");
  407. purcflag = iNode.getColumn(i, "purcflag");
  408. switch(purcflag) {
  409. case "1" :
  410. purcflagnm = "구매";
  411. break;
  412. case "2" :
  413. purcflagnm = "수탁";
  414. break;
  415. case "3" :
  416. purcflagnm = "가납";
  417. break;
  418. }
  419. if (wChk == "1") {
  420. iParamList += utlf_transNullToEmpty(purcflagnm) + "|" // 00 구매구분
  421. + utlf_transNullToEmpty(iNode.getColumn(i, "goodcd")) + "|" // 01 물품코드
  422. + utlf_transNullToEmpty(iNode.getColumn(i, "allsizespecid")) + "|" // 02 사이즈
  423. + utlf_transNullToEmpty(iNode.getColumn(i, "goodnm")) + "|" // 03 물품명
  424. + utlf_transNullToEmpty(iNode.getColumn(i, "goodspec")) + "|" // 04 물품규격
  425. + utlf_transNullToEmpty(iNode.getColumn(i, "goodmodel")) + "|" // 05 물품모델
  426. + utlf_transNullToEmpty(iNode.getColumn(i, "prodcmpynm")) + "|" // 06 제조회사
  427. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpunit")) + "|" // 07 처방단위
  428. + utlf_transNullToEmpty(iNode.getColumn(i, "safestocqty")) + "|" // 08 안전재고
  429. + utlf_transNullToEmpty(iNode.getColumn(i, "stocqty")) + "|" // 09 방재고
  430. + utlf_transNullToEmpty(iNode.getColumn(i, "deliveunit")) + "|" // 10 불출단위
  431. + 0 + "|" // 11 의뢰수량
  432. + utlf_transNullToEmpty(oproomcd) + "▩"; // 12 수술방
  433. wCnt += 1;
  434. }
  435. }
  436. }else {
  437. for( var i=0 ; i<iRows ; i++ ){
  438. wChk = iNode.getColumn(i, "chkflag");
  439. var calcscorcd = iNode.getColumn(i, "calcscorcd");
  440. var insuyn = iNode.getColumn(i, "insuyn");
  441. var sTmpReqmthd = iNode.getColumn(i, "reqmthd");
  442. var sPrcpclscd = iNode.getColumn(i, "prcpclscd");
  443. var sTmpGoodcd = utlf_transNullToEmpty(iNode.getColumn(i, wCode));
  444. var sTmpGoodnm = utlf_transNullToEmpty(iNode.getColumn(i, wName));
  445. if (wChk == "1") {
  446. /*
  447. //2008-09-04 오후 12:46:28 실재고량이 0건일 경우 등록할 수 없도록 메세지창 호출
  448. if(model.getValue(iNode + "[" + i + "]/stocqty") == "" || model.getValue(iNode + "[" + i + "]/stocqty") == "0"){
  449. alert("물품코드 : "+sTmpGoodcd+" "+sTmpGoodnm+"에 대한 재고가 없습니다. CCR에 문의하시기 바랍니다.");
  450. return false;
  451. }
  452. */
  453. //처방불가 물품은 처방 안되게 막음, 삭제는 제외 2009.08.31 K.J.M
  454. //구매정보에 수가가 있어야 하는 경우만 체크 2010.03.15 K. J. M
  455. if( sTmpReqmthd == "X" && insuyn == "Y" ) {
  456. sysf_messageBox(sTmpGoodcd+"코드 처방불가이므로 처방 할 수 없습니다.!", "E000");
  457. return;
  458. }
  459. if( insuyn == "Y" && utlf_isNull(calcscorcd) ) {
  460. sysf_messageBox(sTmpGoodcd+"코드 처방할 수 없습니다.!", "E000");
  461. return;
  462. //}else if( sTmpReqmthd == ""&&calcscorcd == ""&&insuyn == ""&&sPrcpclscd == "" ) {//구매, 처방 마스터에 살아있는데이터가 없을 때 막음 2010.01.04 K.J.M
  463. // messageBox(sTmpGoodcd+"코드 처방할 수 없습니다.!", "E000");
  464. // return;
  465. }else {
  466. if(diffroomyn == true) {
  467. var sCartGubn = opener.frmf_getParameter("SPMNP01601_cartgubn");
  468. var allsizespecid = utlf_transNullToEmpty(iNode.getColumn(i, "allsizespecid"));
  469. var oprsrvno = utlf_transNullToEmpty(opener.frmf_getParameter("SPMNP01601_oprsrvno"));
  470. frmf_setParameter("SPMNP01808_goodcd", sTmpGoodcd);
  471. frmf_setParameter("SPMNP01808_goodnm", sTmpGoodnm);
  472. frmf_setParameter("SPMNP01808_cartgubn", sCartGubn);
  473. frmf_setParameter("SPMNP01808_allsizespecid", allsizespecid);
  474. frmf_setParameter("SPMNP01808_oprsrvno", oprsrvno);
  475. frmf_setParameter("SPMNP01808_closeyn", "");
  476. frmf_setParameter("SPMNP01808_param", "");
  477. frmf_modal("SPMNP01808","SPMNP01808","","","","","","","","","","","M"); //yjh : 커밋
  478. closeyn = frmf_getParameter("SPMNP01808_closeyn");
  479. var str = frmf_getParameter("SPMNP01808_param");
  480. var cnt = frmf_getParameter("SPMNP01808_cnt");
  481. var arr;
  482. var arr2;
  483. var currqty="";
  484. var oproomcd = "";
  485. var oproomnm = "";
  486. if( utlf_isNull(closeyn) ){
  487. sysf_messageBox("다른방으로 처방을 선택하지 않으셨습니다", "E");
  488. return;
  489. }
  490. if(cnt > 1) {
  491. arr = str.split("^");
  492. for( var j=0 ; j<arr.length ; j++ ){
  493. arr2 = arr[j].split("|");
  494. oproomcd = arr2[0];
  495. currqty = arr2[1];
  496. oproomnm = arr2[2];
  497. iParamList += utlf_transNullToEmpty(iNode.getColumn(i, wCode )) + "|" // 00 처방코드
  498. + utlf_transNullToEmpty(iNode.getColumn(i, wName )) + "|" // 01 처방명
  499. + utlf_transNullToEmpty(iNode.getColumn(i, "allsizespecid")) + "|" // 02 사이즈
  500. + utlf_transNullToEmpty(iNode.getColumn(i, "prodcmpynm" )) + "|" // 03 제조회사명
  501. + utlf_transNullToEmpty(iNode.getColumn(i, "cureflag" )) + "|" // 04 처치구분
  502. + utlf_transNullToEmpty(iNode.getColumn(i, "goodspec" )) + "|" // 05 물품규격
  503. + utlf_transNullToEmpty(iNode.getColumn(i, "goodmodel" )) + "|" // 06 물품모델
  504. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpunit" )) + "|" // 07 처방단위 model.getValue(iNode + "[" + i + "]/prcpunit" ))
  505. + utlf_transNullToEmpty(iNode.getColumn(i, "drugmthdspccd")) + "|" // 08 투여방법 및 검체코드
  506. + utlf_transNullToEmpty(iNode.getColumn(i, "stocqty")) + "|" // 09 해당방의 실재고량
  507. + utlf_transNullToEmpty(iNode.getColumn(i, "acmlbaseqty")) + "|" // 10 물품의 기준수량
  508. + utlf_transNullToEmpty(iNode.getColumn(i, "reqmthd")) + "|" // 11 청구방법
  509. + utlf_transNullToEmpty(iNode.getColumn(i, "purcflag")) + "|" // 12 물품구분
  510. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpclscd")) + "|" // 13 처방구분
  511. + utlf_transNullToEmpty(iNode.getColumn(i, "payflagcd")) + "|" // 14 급여구분
  512. + utlf_transNullToEmpty(iNode.getColumn(i, "calculyn")) + "|" // 15 산정여부
  513. + utlf_transNullToEmpty(iNode.getColumn(i, "insuyn")) + "|" // 16 수가대상여부
  514. + utlf_transNullToEmpty(iNode.getColumn(i, "calcscorcd")) + "|"
  515. + utlf_transNullToEmpty(oproomcd) + "|"
  516. + utlf_transNullToEmpty(currqty) + "|"
  517. + utlf_transNullToEmpty(oproomnm) +"▩";
  518. }
  519. } else {
  520. arr2 = str.split("|");
  521. oproomcd = arr2[0];
  522. currqty = arr2[1];
  523. oproomnm = arr2[2];
  524. iParamList += utlf_transNullToEmpty(iNode.getColumn(i, wCode )) + "|" // 00 처방코드
  525. + utlf_transNullToEmpty(iNode.getColumn(i, wName )) + "|" // 01 처방명
  526. + utlf_transNullToEmpty(iNode.getColumn(i, "allsizespecid")) + "|" // 02 사이즈
  527. + utlf_transNullToEmpty(iNode.getColumn(i, "prodcmpynm" )) + "|" // 03 제조회사명
  528. + utlf_transNullToEmpty(iNode.getColumn(i, "cureflag" )) + "|" // 04 처치구분
  529. + utlf_transNullToEmpty(iNode.getColumn(i, "goodspec" )) + "|" // 05 물품규격
  530. + utlf_transNullToEmpty(iNode.getColumn(i, "goodmodel" )) + "|" // 06 물품모델
  531. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpunit" )) + "|" // 07 처방단위 model.getValue(iNode + "[" + i + "]/prcpunit" ))
  532. + utlf_transNullToEmpty(iNode.getColumn(i, "drugmthdspccd")) + "|" // 08 투여방법 및 검체코드
  533. + utlf_transNullToEmpty(iNode.getColumn(i, "stocqty")) + "|" // 09 해당방의 실재고량
  534. + utlf_transNullToEmpty(iNode.getColumn(i, "acmlbaseqty")) + "|" // 10 물품의 기준수량
  535. + utlf_transNullToEmpty(iNode.getColumn(i, "reqmthd")) + "|" // 11 청구방법
  536. + utlf_transNullToEmpty(iNode.getColumn(i, "purcflag")) + "|" // 12 물품구분
  537. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpclscd")) + "|" // 13 처방구분
  538. + utlf_transNullToEmpty(iNode.getColumn(i, "payflagcd")) + "|" // 14 급여구분
  539. + utlf_transNullToEmpty(iNode.getColumn(i, "calculyn")) + "|" // 15 산정여부
  540. + utlf_transNullToEmpty(iNode.getColumn(i, "insuyn")) + "|" // 16 수가대상여부
  541. + utlf_transNullToEmpty(iNode.getColumn(i, "calcscorcd")) + "|"
  542. + utlf_transNullToEmpty(oproomcd) + "|"
  543. + utlf_transNullToEmpty(currqty) + "|"
  544. + utlf_transNullToEmpty(oproomnm) +"▩";
  545. }
  546. } else {
  547. iParamList += utlf_transNullToEmpty(iNode.getColumn(i, wCode )) + "|" // 00 처방코드
  548. + utlf_transNullToEmpty(iNode.getColumn(i, wName )) + "|" // 01 처방명
  549. + utlf_transNullToEmpty(iNode.getColumn(i, "allsizespecid")) + "|" // 02 사이즈
  550. + utlf_transNullToEmpty(iNode.getColumn(i, "prodcmpynm" )) + "|" // 03 제조회사명
  551. + utlf_transNullToEmpty(iNode.getColumn(i, "cureflag" )) + "|" // 04 처치구분
  552. + utlf_transNullToEmpty(iNode.getColumn(i, "goodspec" )) + "|" // 05 물품규격
  553. + utlf_transNullToEmpty(iNode.getColumn(i, "goodmodel" )) + "|" // 06 물품모델
  554. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpunit" )) + "|" // 07 처방단위 model.getValue(iNode + "[" + i + "]/prcpunit" ))
  555. + utlf_transNullToEmpty(iNode.getColumn(i, "drugmthdspccd")) + "|" // 08 투여방법 및 검체코드
  556. + utlf_transNullToEmpty(iNode.getColumn(i, "stocqty")) + "|" // 09 해당방의 실재고량
  557. + utlf_transNullToEmpty(iNode.getColumn(i, "acmlbaseqty")) + "|" // 10 물품의 기준수량
  558. + utlf_transNullToEmpty(iNode.getColumn(i, "reqmthd")) + "|" // 11 청구방법
  559. + utlf_transNullToEmpty(iNode.getColumn(i, "purcflag")) + "|" // 12 물품구분
  560. + utlf_transNullToEmpty(iNode.getColumn(i, "prcpclscd")) + "|" // 13 처방구분
  561. + utlf_transNullToEmpty(iNode.getColumn(i, "payflagcd")) + "|" // 14 급여구분
  562. + utlf_transNullToEmpty(iNode.getColumn(i, "calculyn")) + "|" // 15 산정여부
  563. + utlf_transNullToEmpty(iNode.getColumn(i, "insuyn")) + "|" // 16 수가대상여부
  564. + utlf_transNullToEmpty(iNode.getColumn(i, "calcscorcd")) + "|" // 17 수가코드
  565. + utlf_transNullToEmpty(oproomcd) + "|" // 18 수술방
  566. + utlf_transNullToEmpty(currqty) + "|" // 19 수량
  567. + utlf_transNullToEmpty(oproomnm) +"▩"; // 20 수술방명
  568. }
  569. wCnt += 1;
  570. }
  571. }
  572. }
  573. }
  574. if(frmf_checkOpener()){
  575. if( wCnt > 0 ) {
  576. if(closeyn == "Y") {
  577. opener.frmf_setParameter("SPMNP01601_closeyn", "Y");
  578. }
  579. opener.fGoodDataDisplay(iParamList);
  580. }
  581. }
  582. }
  583. /* ** 2008-07-31 오전 10:13:35 taebum SMMNP01800.js로 function 이동 - 팝업 처리를 위함.
  584. // 물품코드 popup Data Display
  585. function fGoodDataDisplay(pParamList) {
  586. var iParamData = pParamList.split("▩");
  587. var sIdx = 0;
  588. for (ii = 0; ii < iParamData.length; ii++) {
  589. pData = iParamData[ii];
  590. var iSplit_Value = pData.split("|");
  591. if (iSplit_Value[0] != "") {
  592. var GoodCd = iSplit_Value[0];
  593. if (fCheckGoodCd(GoodCd)) {
  594. sIdx = iSplit_Value[4];
  595. if (sIdx == "") {
  596. sIdx = 0;
  597. }
  598. var iCartNode = gPathNode[8]+"/"+tPathCart[sIdx] ;
  599. var GoodNode = "/root/init/WorkData/"+tPathCart[sIdx];
  600. var xNode = instance1.selectSingleNode(GoodNode);
  601. if (xNode == null) {
  602. model.makeNode(GoodNode );
  603. model.copyNode(GoodNode, GoodCopy);
  604. }
  605. model.setValue(GoodNode + "/oprsrvno" , model.getValue(gPathNode[6] + "/oprsrvno" )); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
  606. model.setValue(GoodNode + "/cartgubn" , model.getValue("/root/init/WorkData/cond/cartgubn")); // 02 Cart구분 (O:수술,A:마취)
  607. model.setValue(GoodNode + "/ordseq" , "" ); // 03 처방순번
  608. model.setValue(GoodNode + "/instcd" , "" ); // 04 병원기관코드(코드정의서 Z0007 참조)
  609. model.setValue(GoodNode + "/goodcd" , iSplit_Value[0] ); // 05 물품코드
  610. model.setValue(GoodNode + "/allsizespecid", iSplit_Value[2] ); // 06 ALLSIZE규격ID
  611. model.setValue(GoodNode + "/goodcls" , iSplit_Value[4] ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
  612. model.setValue(GoodNode + "/goodqty" , "0" ); // 08 물품수량
  613. model.setValue(GoodNode + "/addreductqty" , "0" ); // 09 가감수량
  614. model.setValue(GoodNode + "/payflagcd" , "0" ); // 10 급여구분코드 (코드정의서 M0029 참조)
  615. model.setValue(GoodNode + "/oproomcd" , model.getValue(gPathNode[6] + "/oproomcd" ) ); // 11 수술실코드
  616. model.setValue(GoodNode + "/prcpdd" , "" ); // 12 처방일자
  617. model.setValue(GoodNode + "/prcpno" , "" ); // 13 처방일자별 일련번호
  618. model.setValue(GoodNode + "/prcphistno" , "" ); // 14 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
  619. model.setValue(GoodNode + "/pid" , model.getValue(gPathNode[6] + "/pid" ) ); // 15 등록번호
  620. model.setValue(GoodNode + "/saveqty" , "0" ); // 16 변경Check 수량 (물품수량 + 가감수량)
  621. model.setValue(GoodNode + "/outqty" , "0" ); // 17 변경할 수량 (물품수량 + 가감수량)
  622. model.setValue(GoodNode + "/goodengnm" , iSplit_Value[1] ); // 18 물품(처방)명
  623. model.setValue(GoodNode + "/goodspec" , iSplit_Value[5] ); // 19 규격명
  624. model.setValue(GoodNode + "/prodcmpynm" , iSplit_Value[3] ); // 20 제조사
  625. model.setValue(GoodNode + "/goodmodel" , iSplit_Value[6] ); // 21 모델
  626. model.setValue(GoodNode + "/deliveunit" , iSplit_Value[7] ); // 22 단위
  627. model.setValue(GoodNode + "/oproomnm" , model.getValue(gPathNode[6] +"/oproomnm" ) ); // 23 수술실명
  628. model.setValue(GoodNode + "/oproomdeptcd" , model.getValue(gPathNode[6] +"/oproomdeptcd") ); // 24 수술실부서코드
  629. model.setValue(GoodNode + "/recflag" , "I" ); // 25 U:수정,I:입력구분
  630. model.setValue(GoodNode + "/drugmthdspccd", iSplit_Value[8] ); // 28 투여방법 및 검체코드
  631. xNode = instance1.selectSingleNode(iCartNode);
  632. if (xNode == null) {
  633. model.makeNode(iCartNode );
  634. model.copyNode(iCartNode , GoodNode);
  635. } else {
  636. model.duplicate(gPathNode[8], GoodNode);
  637. }
  638. // eval("grd_"+tNameCart[sIdx]).rowStyle(i, "data", "color") = "#ff00ff";
  639. eval("grd_"+tNameCart[sIdx]).refresh();
  640. }
  641. }
  642. }
  643. }
  644. */
  645. /* ------------------------------------------------- */
  646. /* ------End Of List ------------------------------- */
  647. /* -------------------------------------------------- */
  648. ]]></Script>