SPADT63301_특조라벨출력.xfdl 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPADT63301" position="absolute 0 0 378 134" titletext="특조 라벨 출력" oninit="SPADT63301_oninit" onload="SPADT63301_onload">
  5. <Layouts>
  6. <Layout>
  7. <Shape position="absolute 0 0 378 134" id="roundrect1" class="roundrect_error" type="roundrectangle"/>
  8. <Static text="특조 라벨 출력 중" position="absolute 130 43 327 99" id="caption1" style="font:Dotum,11,bold;"/>
  9. <ImageViewer position="absolute 42 33 117 103" id="img1" image="URL('theme://images\error.png')"/>
  10. <ActiveX position="absolute 5 6 50 51" id="CommAX" progid="{87A84390-EB86-424F-97B9-45E53A5EFE28}" visible="false"/>
  11. <Div id="div_prnt" taborder="1" text="div_prnt" position="absolute 230 24 334 38" visible="false" url="ast_pharmacyxp::SPADT63302_특조주사라벨출력.xfdl"/>
  12. </Layout>
  13. </Layouts>
  14. <Objects>
  15. <Dataset id="ds_main_lbllist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  16. <Dataset id="ds_send_prcpinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  17. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  18. <Dataset id="ds_init_barcdprntsetup" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  19. </Objects>
  20. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  21. * System Name :
  22. * Job Name :
  23. * Creator :
  24. * Make Date : 2015-11-13
  25. * Description :
  26. *---------------------------------------------------------------------------------------
  27. * Modify Date Modifier Modify Description
  28. *---------------------------------------------------------------------------------------
  29. * 2015-11-13 Live Converter TF->XP
  30. *
  31. *---------------------------------------------------------------------------------------
  32. ****************************************************************************************/
  33. //=======================================================================================
  34. // Lib Include
  35. //---------------------------------------------------------------------------------------
  36. include "com_commonxp::comm_main.xjs"
  37. include "ast_commonxp::AST.xjs"
  38. //include "ast_pharmacyxp::SPADT63200.xjs"
  39. include "com_commodulexp::SSZFM00901.xjs"
  40. include "emr_prcpmngtxp::MMOCommon.xjs"
  41. //=======================================================================================
  42. // Global Form Variable
  43. //---------------------------------------------------------------------------------------
  44. var arErrorCode = new HashArray();
  45. var sRexID = "";
  46. //=======================================================================================
  47. // Function
  48. //---------------------------------------------------------------------------------------
  49. /****************************************************************************************
  50. * Argument : N/A
  51. * Description : 초기화
  52. ****************************************************************************************/
  53. /**
  54. * 파 일 명 : SPADT63300.js
  55. * 설 명 : (팝업)특조라벨출력 Javascriot
  56. * 설 계 자 : 이훈재
  57. * 작 성 자 : 이훈재
  58. * 수정이력 : 2007.09.29 / 최초작성 / 이훈재
  59. */
  60. var sSndMsg = ""; //라벨출력내용
  61. var iPoint = 0; //라벨출력row
  62. var iCnt = 0; //라벨출력매수
  63. var iImageCnt = 0; //라벨그래픽폰트수
  64. var gTimer = null;
  65. var tkeepflag = false;
  66. var rowNumber = 0;
  67. /****************************************************************************************
  68. * Argument : N/A
  69. * Description : 초기화
  70. ****************************************************************************************/
  71. function fInit() {
  72. var params = opener.frmf_clearParameter("params");
  73. dsf_setCSVToDs("ds_send_prcpinfo",params);
  74. // var sParam = model.getAttribute("params");
  75. // model.makeValue("/root/send/prcpinfo/drugdd", astfMatrixData(sParam, 1, 0));
  76. // model.makeValue("/root/send/prcpinfo/drugno", astfMatrixData(sParam, 1, 1));
  77. // model.makeValue("/root/send/prcpinfo/ioflag", astfMatrixData(sParam, 1, 2));
  78. // model.makeValue("/root/send/prcpinfo/prcpdd", astfMatrixData(sParam, 1, 3));
  79. // model.makeValue("/root/send/prcpinfo/orddd", astfMatrixData(sParam, 1, 4));
  80. // model.makeValue("/root/send/prcpinfo/cretno", astfMatrixData(sParam, 1, 5));
  81. // model.makeValue("/root/send/prcpinfo/prcpgenrflag", astfMatrixData(sParam, 1, 6));
  82. // model.makeValue("/root/send/prcpinfo/pid", astfMatrixData(sParam, 1, 7));
  83. // model.makeValue("/root/send/prcpinfo/orddeptcd", astfMatrixData(sParam, 1, 8));
  84. // model.makeValue("/root/send/prcpinfo/wardcd", astfMatrixData(sParam, 1, 9));
  85. // model.makeValue("/root/send/prcpinfo/lblflag", astfMatrixData(sParam, 1, 10));
  86. // model.makeValue("/root/send/prcpinfo/prcpflag", astfMatrixData(sParam, 1, 11));
  87. // model.makeValue("/root/send/prcpinfo/prntflag", astfMatrixData(sParam, 1, 12));
  88. // model.makeValue("/root/send/prcpinfo/drugflag", astfMatrixData(sParam, 1, 13));
  89. // model.makeValue("/root/send/prcpinfo/prcpno", astfMatrixData(sParam, 1, 14));
  90. // model.makeValue("/root/send/prcpinfo/prcpmixno", astfMatrixData(sParam, 1, 15));
  91. // model.makeValue("/root/send/prcpinfo/spclblflag", astfMatrixData(sParam, 1, 16)); // 20100322_laboru.
  92. // model.makeValue("/root/send/prcpinfo/prcptims", astfMatrixData(sParam, 1, 17)); // 20100322_laboru.
  93. // model.refresh();
  94. var getflag1 = ds_send_prcpinfo.getColumn(0,"prcpflag");
  95. ds_main_lbllist.clearData();
  96. if(getflag1 == "B"){
  97. ds_send_prcpinfo.setColumn(0,"prcpdd",ds_send_prcpinfo.getColumn(0,"drugdd"));
  98. dsf_setTypeFormat(ds_send_prcpinfo, "drugno:INT^cretno:INT");
  99. var oParam = {};
  100. oParam.id = "TRADT63302";
  101. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  102. oParam.method = "reqGetSpclInChildTPNData";
  103. oParam.inds = "req=ds_send_prcpinfo";
  104. oParam.outds = "ds_main_lbllist=lbllist";
  105. oParam.async = false;
  106. //oParam.callback = "cf_TRADT63302";
  107. tranf_submit(oParam);
  108. dsf_setDefaultVal(ds_main_lbllist, "all");
  109. if(!utlf_isNull(ds_main_lbllist.getColumn(0,"pid"))){
  110. fLBLChildTPNPrintR(); // 20101220 wify 경북대병원 라벨출력방식 rexpert로 변경
  111. } else this.close();
  112. } else if(getflag1 == "R") { // 20110111_laboru_경북대병원_임상약 라벨
  113. ds_send_prcpinfo.setColumn(0,"prcpdd",ds_send_prcpinfo.getColumn(0,"drugdd"));
  114. dsf_setTypeFormat(ds_send_prcpinfo, "drugno:INT^cretno:INT");
  115. var oParam = {};
  116. oParam.id = "TRADT63301";
  117. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  118. oParam.method = "reqGetSpclInPrintLBLData";
  119. oParam.inds = "req=ds_send_prcpinfo";
  120. oParam.outds = "ds_main_lbllist=lbllist";
  121. oParam.async = false;
  122. //oParam.callback = "cf_TRADT63301";
  123. tranf_submit(oParam);
  124. dsf_setDefaultVal(ds_main_lbllist, "all");
  125. if(!utlf_isNull(ds_main_lbllist.getColumn(0,"drugno"))){
  126. fLBLPrintCR();
  127. } else this.close();
  128. } else if(getflag1 == "S") {
  129. fPrintS();
  130. } else {
  131. ds_send_prcpinfo.setColumn(0,"prcpdd",ds_send_prcpinfo.getColumn(0,"drugdd"));
  132. dsf_setTypeFormat(ds_send_prcpinfo, "drugno:INT^cretno:INT");
  133. var oParam = {};
  134. oParam.id = "TRADT63301";
  135. oParam.service = "pharmacyprescriptionapp.DrugPrint";
  136. oParam.method = "reqGetSpclInPrintLBLData";
  137. oParam.inds = "req=ds_send_prcpinfo";
  138. oParam.outds = "ds_main_lbllist=lbllist";
  139. oParam.async = false;
  140. //oParam.callback = "cf_TRADT63301";
  141. tranf_submit(oParam);
  142. dsf_setDefaultVal(ds_main_lbllist, "all");
  143. if(!utlf_isNull(ds_main_lbllist.getColumn(0,"drugno"))){
  144. fLBLPrintR(); // 20101220 wify 경북대병원 라벨출력방식 rexpert로 변경
  145. } else this.close();
  146. }
  147. // this.close();
  148. }
  149. // /**
  150. // *
  151. // */
  152. // function fStopTimer() {
  153. // window.clearinterval(gTimer);
  154. // }
  155. /**
  156. *
  157. */
  158. function fGetImage() {
  159. var pImage = "";
  160. iImageCnt++;
  161. if(iImageCnt > 99){
  162. pImage = "GRAPH"+iImageCnt;
  163. } else if(iImageCnt > 9){
  164. pImage = "GRAPH0"+iImageCnt;
  165. } else {
  166. pImage = "GRAPH00"+iImageCnt;
  167. }
  168. return pImage
  169. }
  170. /****************************************************************************************
  171. * Argument : s - string
  172. * Description : fGetDateString
  173. ****************************************************************************************/
  174. function fGetDateString( s ){
  175. var dates = "";
  176. if(s.length > 8){
  177. dates = s.substring(0,4) +"/" +s.substring(4,6)+"/" +s.substring(6,8)+" "+s.substring(8,10)+":"+s.substring(10,12)+":"+s.substring(12,14);
  178. } else {
  179. dates = s.substring(0,4) +"/" +s.substring(4,6)+"/" +s.substring(6,8);
  180. }
  181. return dates;
  182. }
  183. /****************************************************************************************
  184. * Argument : N/A
  185. * Description : fLBLPrintR
  186. ****************************************************************************************/
  187. function fLBLPrintR() {
  188. /*
  189. 라벨 Sorting 로직
  190. //mgt에서 vo로 리턴
  191. 대분류
  192. - 내복약, 외용약, 주사, 항암제, TPN, 마약,
  193. 중분류
  194. - 방법코드
  195. 소분류
  196. - 내복약,외용약(방법코드), 주사,마약,항암제(mix)
  197. web js 출력로직
  198. 1. mix가 있는경우
  199. 같은mix번호들만 모아서 한라벨에 출력
  200. 2. mix가 없는경우
  201. 2.1 내복약
  202. 2.1.1 라벨그룹
  203. 2.1.1.1 방법코드
  204. 2.2 외용약
  205. 2.2.1 라벨그룹
  206. 2.2.1.1 방법코드
  207. 2.3 주사약
  208. 2.3.1 라벨그룹
  209. 2.4 마약
  210. 2.4.1 방법코드
  211. */
  212. var iBfPoint = 0; //사용안함
  213. var sPointChk = "N"; //사용안함
  214. var sMixno5 = ""; //prcpmixno
  215. var sMixno6 = ""; //prcpmixno 리스트에서 prcpmixno 값이 같은게 있는지 비교값으로 사용
  216. var bCheck = false;
  217. var reprint = ""; //재출력일때 재를 추가해주기 위함.
  218. var tkeep = ""; //쓸모가 없음.
  219. var postPoint = 0; //여러장 출력건 있을때 처방 복사후 다음 라인 시작점.
  220. var sumcls = ""; //라벨구분을 위함
  221. var ivdroppingflag = ""; //수액제 포함 여부
  222. for(iPoint = 0; iPoint < ds_main_lbllist.rowcount; iPoint++){ //라벨 구분과 수액제 포함 여부 체크
  223. if ( !utlf_isNull(ds_main_lbllist.getColumn(iPoint,"sumcls"))){
  224. sumcls = ds_main_lbllist.getColumn(iPoint,"sumcls");
  225. }
  226. // 20111006_laboru_본원 라벨 수액제가 포함된 경우 abbrnm 을 무조건 IV dropping
  227. if( ds_main_lbllist.getColumn(iPoint,"spcldrug") == "S") {
  228. ivdroppingflag = "Y";
  229. }
  230. }
  231. for(iPoint = 0; iPoint < ds_main_lbllist.rowcount; iPoint++){ //출력매수를 체크하여 처방을 복사하는 과정. iPoint 처음부터 시작
  232. var sMixno = ds_main_lbllist.getColumn(iPoint,"prcpmixno"); //prcpmixno 값
  233. if ( ds_main_lbllist.getColumn(iPoint,"lblprnttims") > 0 ){
  234. reprint ="(재)"; // 출력한적이 있다면 재를 붙인다
  235. }
  236. //차광일 경우 2매 출력
  237. if ( (tkeep = ds_main_lbllist.getColumn(iPoint,"keepmthd2nm"))== "차광"){
  238. if (sysf_getUserInfo("dutplceinstcd") == '032') {
  239. iChaTotCnt = 1; //차광이면 두매 출력 2017년 11월29일 김치국 2->1
  240. }else{
  241. iChaTotCnt = 1; //차광이면 두매 출력
  242. }
  243. } else {
  244. iChaTotCnt = 1;
  245. if(sMixno != "-" && !utlf_isNull(sMixno)){
  246. if(sumcls != "T" && sumcls != "Q" && sumcls != "B"){
  247. bCheck = false;
  248. sMixno5 = ds_main_lbllist.getColumn(iPoint,"prcpmixno");
  249. for(var iBCnt = iPoint; iBCnt < ds_main_lbllist.rowcount; iBCnt++){
  250. sMixno6 = ds_main_lbllist.getColumn(iBCnt,"prcpmixno");
  251. if(sMixno5 == sMixno6){
  252. if (!utlf_isNull(ds_main_lbllist.getColumn(iBCnt,"keepmthd2nm"))){
  253. if (sysf_getUserInfo("dutplceinstcd") == '032') {
  254. iChaTotCnt = 1; //차광이면 두매 출력 2017년 11월29일 김치국 2->1
  255. }else{
  256. iChaTotCnt = 1; //차광이면 두매 출력
  257. }
  258. break;
  259. }
  260. } else {
  261. bCheck = true;
  262. }
  263. if(bCheck){
  264. break;
  265. }
  266. }
  267. }
  268. }
  269. }
  270. iTotPrcpTimes = ds_main_lbllist.getColumn(iPoint,"prcptims"); //처방횟수
  271. var tmpiChaTotCnt = 0;
  272. var tmpiTotPrcpTimes = 0;
  273. if(sMixno != "-" && !utlf_isNull(sMixno)){
  274. tmpiChaTotCnt = iChaTotCnt;
  275. iChaTotCnt = 1;
  276. tmpiTotPrcpTimes = iTotPrcpTimes;
  277. iTotPrcpTimes = 1;
  278. } else {
  279. var tTotalCnt = ds_main_lbllist.rowcount;
  280. var tot = parseInt(iChaTotCnt) * parseInt(iTotPrcpTimes); //iChaTotCnt : 출력매수 * iTotPrcpTimes : 처방횟수 = 라벨 1개당 출력횟수
  281. // 기존 처방을 끝으로 복사. ??
  282. var tnt = ds_main_lbllist.rowcount; //라벨출력할 처방리스트 수
  283. var tmptnt = tnt;
  284. // for(var x = (parseInt(tnt) + parseInt(tot)-1) ; x > (parseInt(tnt)+parseInt(ul)) ; x--) { // 처방당 출력횟수.. 만큼 추가 라벨리스트에 추가..
  285. // model.makeValue("/root/main/lbllist/lbllist["+x+"]", "Y");
  286. // model.copyNode("/root/main/lbllist/lbllist[" + x + "]", "/root/main/lbllist/lbllist[" + tmptnt + "]" );
  287. // tmptnt--;
  288. // }
  289. // 처방 횟수 만큼 처방 복사. 현재로우 아래로 추가로 출력할 수만큼 INSERT
  290. for(var y = parseInt(iPoint)+1 ; y < parseInt(iPoint)+tot ; y++) {
  291. ds_main_lbllist.insertRow(y);
  292. ds_main_lbllist.copyRow(y,ds_main_lbllist,iPoint);
  293. }
  294. postPoint += (tot-1); //다음 루프시 시작점
  295. }
  296. //차광일 경우 2매 출력
  297. sPointChk = "N";
  298. var lblname = ""; //라벨명 추가
  299. var cPoint = iPoint; //현재로우
  300. var cnty = 0; //사용안함
  301. var tprcpcd = "";
  302. var tprcpnm = "";
  303. for(var iChaCnt = 1 ; iChaCnt <= iChaTotCnt ; iChaCnt++) { //해당라벨의 출력매수만큼
  304. for(var iCntPrcpTimes = 0 ; iCntPrcpTimes < iTotPrcpTimes ; iCntPrcpTimes++) { //해당라벨의 처방횟수만큼
  305. //라벨이름
  306. if(sumcls == "T"){
  307. lblname = "[TPN]";
  308. } else if(sumcls == "B"){
  309. lblname = "[소아TPN]";
  310. } else if(sumcls == "D"){
  311. lblname = "[항암제]";
  312. } else if(sumcls == "Q"){
  313. lblname = "[TPN]";
  314. } else if(sumcls == "1"){
  315. lblname = "[면역억제제]";
  316. } else {
  317. lblname = "[무균조제]";
  318. ds_main_lbllist.setColumn(cPoint,"drugdd",ds_main_lbllist.getColumn(cPoint,"lblprntdt") ); // 20120731_무균조제라벨일때 처방일자 대신 출력일자 출력되게 수정
  319. dsf_makeValue(ds_main_lbllist,"coolmthd","string","냉장보관",cPoint);
  320. }
  321. dsf_makeValue(ds_main_lbllist,"lblname","string",lblname,cPoint); //현재라벨의 라벨명 추가
  322. //처방일자
  323. dsf_makeValue(ds_main_lbllist,"drugnobak","string",ds_main_lbllist.getColumn(cPoint,"drugno"),cPoint); // 20130510_barcode에 사용하기 위해 backup
  324. ds_main_lbllist.setColumn(cPoint,"drugno",ds_main_lbllist.getColumn(cPoint,"drugno")+reprint ); //재발행이면 (재)추가
  325. //현재페이지/전체페이지 ?
  326. if(iTotPrcpTimes > 1) {
  327. dsf_makeValue(ds_main_lbllist,"times","string",iCntPrcpTimes + "-" + iTotPrcpTimes,cPoint); // 처방횟수가 여러번일때 출력 순번 지정. 1-1,1-2,1-3,2-1,2-2,2-3
  328. }
  329. // 라벨출력
  330. if(sMixno != "-" && !utlf_isNull(sMixno)){
  331. if(sumcls == "T" || sumcls == "Q"){
  332. fTPNDrugMixLBLR(sumcls, iChaCnt, iChaTotCnt);
  333. } else if(sumcls == "B"){
  334. fTPNDrugMixLBLR(sumcls, iChaCnt, iChaTotCnt);
  335. } else {//if(sumcls == "D"){
  336. fAntimeticsMixLBLR(iChaCnt, iChaTotCnt);
  337. }
  338. } else {
  339. if(sumcls == "T" || sumcls == "Q"){
  340. fTPNDrugLBLR(sumcls, iChaCnt, iChaTotCnt, cPoint);
  341. } else if(sumcls == "B"){
  342. fTPNDrugLBLR(sumcls, iChaCnt, iChaTotCnt, cPoint);
  343. } else {// if(sumcls == "D"){ // 항암제
  344. fAntimeticsLBLR(iChaCnt, iChaTotCnt, cPoint);
  345. }
  346. }
  347. if(sMixno != "-" && !utlf_isNull(sMixno)){
  348. } else {
  349. cPoint++;
  350. }
  351. }
  352. cnty++;
  353. }
  354. if(sMixno != "-" && !utlf_isNull(sMixno)){
  355. } else {
  356. iPoint = cPoint; //추가복사된 행 처리를 끝낸 후 다시 원래의 포인트로 돌린다
  357. }
  358. }
  359. if(sMixno != "-" && !utlf_isNull(sMixno)){ //이조건에선 위에 처방복사를 하지 않았다
  360. if(sumcls == "T" || sumcls == "B" || sumcls == "Q" || sMixno.substr(0,1) == "T" ) {
  361. var tTotalCnt2 = ds_main_lbllist.rowcount;
  362. var tot2 = parseInt(tmpiChaTotCnt) * parseInt(tmpiTotPrcpTimes); //출력매수 다시?
  363. // for(var y = 1 ; y < tot2 ; y++) {
  364. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2))+"]", "Y");
  365. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2)) + "]", "/root/main/lbllist/lbllist[" + 1 + "]");
  366. // }
  367. for(var y = 1 ; y < tot2 ; y++) {
  368. ds_main_lbllist.copyRow(ds_main_lbllist.addRow(),ds_main_lbllist,0); //INSERT가 아닌 뒤쪽에 붙여서 맨처음 처방을 복사
  369. }
  370. } else if( tkeepflag) { //???? 아직 용도를 모르겠다.
  371. var tTotalCnt2 = ds_main_lbllist.rowcount;
  372. var tot2 = parseInt(tmpiChaTotCnt) * parseInt(tmpiTotPrcpTimes);
  373. // for(var y = 1 ; y < tot2 ; y++) {
  374. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2))+"]", "Y");
  375. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2)) + "]", "/root/main/lbllist/lbllist[" + 1 + "]");
  376. // }
  377. for(var y = 1 ; y < tot2 ; y++) {
  378. ds_main_lbllist.copyRow(ds_main_lbllist.addRow(),ds_main_lbllist,0); //INSERT가 아닌 뒤쪽에 붙여서 맨처음 처방을 복사
  379. }
  380. }
  381. } else {
  382. }
  383. cPoint = 0; //초기화
  384. if(sMixno != "-" && !utlf_isNull(sMixno)){
  385. for(var iChaCnt = 1 ; iChaCnt <= tmpiChaTotCnt ; iChaCnt++) { //해당라벨의 출력매수만큼
  386. for(var iCntPrcpTimes = 0 ; iCntPrcpTimes < tmpiTotPrcpTimes ; iCntPrcpTimes++) { //해당라벨의 처방횟수만큼
  387. if(tmpiTotPrcpTimes > 1) {
  388. dsf_makeValue(ds_main_lbllist,"times" ,"string",iCntPrcpTimes + "-" + tmpiTotPrcpTimes,cPoint);
  389. dsf_makeValue(ds_main_lbllist,"prnt_page","string",iChaCnt + "/" + tmpiChaTotCnt ,cPoint);
  390. } else if(tmpiChaTotCnt > 1) {
  391. dsf_makeValue(ds_main_lbllist,"prnt_page","string",iChaCnt + "/" + tmpiChaTotCnt ,cPoint);
  392. }
  393. cPoint++;
  394. }
  395. }
  396. }
  397. // 20111006_laboru_본원 라벨 수액제가 포함된 경우 abbrnm 을 무조건 IV dropping
  398. if(ivdroppingflag == "Y") {
  399. for(iPoint = 0; iPoint < ds_main_lbllist.rowcount; iPoint++){
  400. ds_main_lbllist.setColumn(iPoint,"abbrnm" , "IV Dropping");
  401. }
  402. }
  403. /////2015년 6월 1일 김치국 처리
  404. if (sumcls != "B" && sysf_getUserInfo("dutplceinstcd") == "032") {
  405. // 화면 닫게 만드는 루틴
  406. // makeReportPreview(0,0,10, 10, "");
  407. fPrintRexbar_new("RFADT63302",true);
  408. } else {
  409. ////2015년 6월24일 김치국 본원도 출력화면 닫기
  410. // makeReportPreview(0,0,10, 10, "");
  411. sRexID = "RFADT63300";
  412. fPrintRexbar_new("RFADT63300", true);
  413. }
  414. }
  415. /**********************************************************************************
  416. * Argument : rexnm (string) : 레포트코드
  417. * closeYn (string) : 미리보기 여부(보기:true, 안보기:비우거나 false)
  418. * printCount (int) : 출력 숫자
  419. * dataXPath (string) : 파라메터 위치
  420. * paramsXPath (object): 파라메터 위치
  421. * infoXPath (string) : 바코드 프린터 정보 위치
  422. * Description : 라벨출력
  423. **********************************************************************************/
  424. function fPrintRexbar_new(rexnm, closeYn, printCount, dataXPath, paramsXPath, infoXPath){
  425. var posx = "";
  426. var posy = "";
  427. var printnm = "";
  428. if(infoXPath == "" || infoXPath == "undefined" || infoXPath == null) infoXPath = "ds_data";
  429. if(objects[infoXPath+"_setupinfo"].getColumn(objects[infoXPath+"_setupinfo"].rowcount-1,"rexgbn") != "1") {
  430. if(closeYn) {this.close();}
  431. else return false;
  432. }
  433. try{
  434. if(!utlf_isNull(objects[infoXPath+"_pcllist"]) // ds 존재 체크
  435. //&& objects[infoXPath+"_pcllist"].getColumn(0,"dsvaluepath") == "/setupinfo/pcl" // path 체크
  436. && objects[infoXPath+"_pcllist"].findRowExpr("barnm=='"+rexnm+"'") > -1) { // barnm 값 체크
  437. var rowNo = objects[infoXPath+"_pcllist"].findRowExpr("barnm=='"+rexnm+"'");
  438. posx = objects[infoXPath+"_pcllist"].getColumn(rowNo,"xpos");
  439. posy = objects[infoXPath+"_pcllist"].getColumn(rowNo,"ypos");
  440. printnm = objects[infoXPath+"_pcllist"].getColumn(rowNo,"prtnm");
  441. }else{
  442. posx = objects[infoXPath+"_blank"].getColumn(0,"left");
  443. posy = objects[infoXPath+"_blank"].getColumn(0,"top");
  444. printnm = objects[infoXPath+"_comm01"].getColumn(0,"setupval");
  445. }
  446. if(utlf_isNull(posx)) posx = "0";
  447. if(utlf_isNull(posy)) posy = "0";
  448. if(closeYn == "true") printnm = "";
  449. var objDOM = rptf_createDOM(); // DOM 객체 설정
  450. var objParam = new Object();
  451. rptf_setNodeListToDOM(objDOM, "/root/main/lbllist/lbllist", ds_main_lbllist);
  452. rptf_setNodeListToDOM(objDOM, "/root/send/prcpinfo", ds_send_prcpinfo);
  453. objParam.xml_data_XML1 = objDOM.documentElement.source;
  454. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=lf_complete;";
  455. var prntOtion = "offsetx=" + posx + ";" + "offsety=" + posy + ";" + "printername="+printnm+"";
  456. // sysf_trace("rexnm : " + rexnm + " / printnm : " + printnm);
  457. // sysf_trace("ds_main_lbllist : " + ds_main_lbllist.saveXML());
  458. rptf_exeReportPreview30([rexnm],[objParam], option, prntOtion);
  459. } catch(e){
  460. alert("출력시 오류가 발생하였습니다\n" + e);
  461. this.close();
  462. }
  463. return true;
  464. }
  465. /****************************************************************************************
  466. * Argument : N/A
  467. * Description : 렉스퍼트 출력후 닫기
  468. ****************************************************************************************/
  469. function lf_complete() {
  470. if((ds_send_prcpinfo.getColumn(0,"prcpflag") != "B" && ds_send_prcpinfo.getColumn(0,"prcpflag") != "R") && sRexID == "RFADT63300") {
  471. var mixno = ds_main_lbllist.getColumn(0,"prcpmixno");
  472. mixno = mixno.substr(0,1);
  473. if (mixno == "-" || mixno == "c"|| mixno == "C" ) {
  474. //frmf_modal("SPADT63302", "SPADT63302", objArg, null, 0, 200, 200, null, null, null, null, null, "P");
  475. div_prnt.fInit();
  476. } else {
  477. this.close();
  478. }
  479. } else {
  480. this.close();
  481. }
  482. }
  483. /****************************************************************************************
  484. * Argument : N/A
  485. * Description : 경북대병원_임상약라벨
  486. ****************************************************************************************/
  487. function fLBLPrintCR() {
  488. var iBfPoint = 0;
  489. var sPointChk = "N";
  490. var sMixno5 = "";
  491. var sMixno6 = "";
  492. var bCheck = false;
  493. var reprint = "";
  494. var tkeep = "";
  495. var ul = 0;
  496. var sumcls = "";
  497. //alert("538: fLBLPrintCR Call") ;;
  498. for(var iPoint = 0; iPoint < ds_main_lbllist.rowcount; iPoint++){
  499. if (!utlf_isNull(ds_main_lbllist.getColumn(iPoint,"sumcls"))){
  500. sumcls = ds_main_lbllist.getColumn(iPoint,"sumcls");
  501. }
  502. }
  503. for(var iPoint = 0; iPoint < ds_main_lbllist.rowcount; iPoint++){
  504. var sMixno = ds_main_lbllist.getColumn(iPoint,"prcpmixno");
  505. if (ds_main_lbllist.getColumn(iPoint,"lblprnttims") > 0){
  506. reprint ="(재)";
  507. }
  508. //차광일 경우 2매 출력
  509. if ((tkeep = ds_main_lbllist.getColumn(iPoint,"keepmthd2nm"))== "차광"){
  510. if (sysf_getUserInfo("dutplceinstcd") == '032') {
  511. iChaTotCnt = 1; //차광이면 두매 출력 2017년 11월29일 김치국 2->1
  512. }else{
  513. iChaTotCnt = 2; //차광이면 두매 출력
  514. }
  515. } else {
  516. iChaTotCnt = 1;
  517. if(sMixno != "-" && !utlf_isNull(sMixno)){
  518. if(sumcls != "T" && sumcls != "Q" && sumcls != "B"){
  519. bCheck = false;
  520. sMixno5 = ds_main_lbllist.getColumn(iPoint,"prcpmixno");
  521. for(var iBCnt = iPoint; iBCnt < ds_main_lbllist.rowcount; iBCnt++){
  522. sMixno6 = ds_main_lbllist.getColumn(iBCnt,"prcpmixno");
  523. if(sMixno5 == sMixno6){
  524. if (!utlf_isNull(ds_main_lbllist.getColumn(iBCnt,"keepmthd2nm"))){
  525. if (sysf_getUserInfo("dutplceinstcd") == '032') {
  526. iChaTotCnt = 1; //차광이면 두매 출력 2017년 11월29일 김치국 2->1
  527. }else{
  528. iChaTotCnt = 2; //차광이면 두매 출력
  529. }
  530. break;
  531. }
  532. } else {
  533. bCheck = true;
  534. }
  535. if(bCheck){
  536. break;
  537. }
  538. }
  539. }
  540. }
  541. }
  542. iTotPrcpTimes = ds_main_lbllist.getColumn(iPoint,"prcptims");
  543. //차광일 경우 2매 출력
  544. sPointChk = "N";
  545. var lblname = "";
  546. var cPoint = iPoint;
  547. var cnty = 0;
  548. var tprcpcd = "";
  549. var tprcpnm = "";
  550. var tmpiChaTotCnt = iChaTotCnt; ////2017년 12.12. 김치국 추가
  551. var tmpiTotPrcpTimes = iTotPrcpTimes ; ////2017년 12.12. 김치국 추가
  552. for(var iChaCnt = 1 ; iChaCnt <= iChaTotCnt ; iChaCnt++) {
  553. //라벨이름
  554. lblname = "[임상연구용 의약품]";
  555. dsf_makeValue(ds_main_lbllist,"lblname","string",lblname,cPoint);
  556. //처방일자
  557. ds_main_lbllist.setColumn(cPoint,"drugno", ds_main_lbllist.getColumn(cPoint,"drugno") + reprint );
  558. // 20110111_laboru_경북대병원
  559. ds_main_lbllist.setColumn(cPoint,"prcptims" , ds_main_lbllist.getColumn(cPoint,"prcptims") + " 회" );
  560. ds_main_lbllist.setColumn(cPoint,"prcpdayno", ds_main_lbllist.getColumn(cPoint,"prcpdayno")+ " 일분" );
  561. if(sMixno != "-" && !utlf_isNull(sMixno)){
  562. if(sumcls == "T" || sumcls == "Q"){
  563. fTPNDrugMixLBLR(sumcls, iChaCnt, iChaTotCnt);
  564. } else if(sumcls == "B"){
  565. fTPNDrugMixLBLR(sumcls, iChaCnt, iChaTotCnt);
  566. } else {
  567. rowNumber = cPoint;
  568. fAntimeticsMixLBLR(iChaCnt, iChaTotCnt);
  569. }
  570. } else {
  571. if(sumcls == "T" || sumcls == "Q"){
  572. fTPNDrugLBLR(sumcls, iChaCnt, iChaTotCnt, cPoint);
  573. } else if(sumcls == "B"){
  574. fTPNDrugLBLR(sumcls, iChaCnt, iChaTotCnt, cPoint);
  575. } else {// if(sumcls == "D"){ // 항암제
  576. fAntimeticsLBLR(iChaCnt, iChaTotCnt, cPoint);
  577. }
  578. }
  579. if(sMixno != "-" && !utlf_isNull(sMixno)){
  580. } else {
  581. cPoint++;
  582. }
  583. }
  584. if(sMixno != "-" && !utlf_isNull(sMixno)){
  585. } else {
  586. iPoint = cPoint - 1;
  587. }
  588. }
  589. if(sMixno != "-" && !utlf_isNull(sMixno)){
  590. if(sumcls == "T" || sumcls == "B" || sumcls == "Q" ) {
  591. var tTotalCnt2 = ds_main_lbllist.rowcount;
  592. var tot2 = parseInt(tmpiChaTotCnt) * parseInt(tmpiTotPrcpTimes);
  593. // for(var y = 1 ; y < tot2 ; y++) {
  594. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2))+"]", "Y");
  595. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2)) + "]", "/root/main/lbllist/lbllist[" + 1 + "]");
  596. // }
  597. for(var y = 1 ; y < tot2 ; y++) {
  598. ds_main_lbllist.copyRow(ds_main_lbllist.addRow(),ds_main_lbllist,0); //INSERT가 아닌 뒤쪽에 붙여서 맨처음 처방을 복사
  599. }
  600. } else if(tkeepflag) {
  601. var tTotalCnt2 = ds_main_lbllist.rowcount;
  602. var tot2 = parseInt(tmpiChaTotCnt) * parseInt(tmpiTotPrcpTimes);
  603. // for(var y = 1 ; y < tot2 ; y++) {
  604. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2))+"]", "Y");
  605. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(y) + parseInt(tTotalCnt2)) + "]", "/root/main/lbllist/lbllist[" + 1 + "]");
  606. // }
  607. for(var y = 1 ; y < tot2 ; y++) {
  608. ds_main_lbllist.copyRow(ds_main_lbllist.addRow(),ds_main_lbllist,0); //INSERT가 아닌 뒤쪽에 붙여서 맨처음 처방을 복사
  609. }
  610. }
  611. }
  612. // makeReportPreview(0,0,10, 10, "");
  613. // fPrintRexbar("RFADT63301");
  614. // rptf_printRexbar("RFADT63301",null,"/root/main/lbllist/lbllist",ds_main_lbllist);
  615. fPrintRexbar_new("RFADT63301",true);
  616. }
  617. /****************************************************************************************
  618. * Argument : sc
  619. * : pChaCnt
  620. * : pChaTotCnt
  621. * Description : mix 라벨
  622. ****************************************************************************************/
  623. function fTPNDrugMixLBLR(sc, pChaCnt, pChaTotCnt) {
  624. var sMixno1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpmixno"));
  625. var cnt = 0;
  626. var bContinue = false;
  627. var lblCnts2 = "";
  628. var tims = 0;
  629. var tprcpcd = "";
  630. var tprcpnm = "";
  631. var keepmthdnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"keepmthdnm"));
  632. var keepmthd2nm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"keepmthd2nm"));
  633. var keepmthd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"keepmthd"));
  634. var lblCnts1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"lblcnts1"));
  635. var valitime = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"valitime"));
  636. var drugDD = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"drugdd"));
  637. tims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcptims"));
  638. for(var j = iPoint; j < ds_main_lbllist.rowcount; j++){
  639. sMixno2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpmixno"));
  640. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpqty"));
  641. var qtyunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpqtyunit"));
  642. var stndvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"stndvol"));
  643. var stndunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"stndunit"));
  644. var cntsvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"cntsvol"));
  645. var cntsunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"cntsunit"));
  646. var dayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpdayno"));
  647. var sumcls = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"sumcls"));
  648. var prcpcd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpcd"));
  649. var prcpnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpnm"));
  650. if(sMixno1 == sMixno2){
  651. if(cnt == 0) {
  652. tprcpcd = prcpcd;
  653. tprcpnm = prcpnm;
  654. unit = cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit;
  655. } else {
  656. tprcpcd += "\n" + prcpcd;
  657. tprcpnm += "\n" + prcpnm;
  658. unit += "\n" + cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit;
  659. }
  660. // mix 되어 있는 처방중 항암제가 아닌 일반 약품이 먼저 나올때 보관방법, 차광, 라벨주의사항 copy
  661. var tkeep1 = ds_main_lbllist.getColumn(j,"keepmthdnm");
  662. var tkeep2 = ds_main_lbllist.getColumn(j,"keepmthd2nm");
  663. var tlblcnts1 = ds_main_lbllist.getColumn(j,"lblcnts1");
  664. if(utlf_isNull(tkeep1) || utlf_isNull(tkeep2) || utlf_isNull(tlblcnts1)) {
  665. for(var t = 0 ; t < ds_main_lbllist.rowcount; t++) {
  666. var a = ds_main_lbllist.getColumn(t,"keepmthdnm");
  667. var b = ds_main_lbllist.getColumn(t,"keepmthd2nm");
  668. var c = ds_main_lbllist.getColumn(t,"lblcnts1");
  669. if(!utlf_isNull(a)) {
  670. ds_main_lbllist.setColumn(j,"keepmthdnm", a);
  671. }
  672. if(!utlf_isNull(b)) {
  673. ds_main_lbllist.setColumn(j,"keepmthd2nm", b);
  674. tkeepflag = true;
  675. }
  676. if(!utlf_isNull(c)) {
  677. ds_main_lbllist.setColumn(j,"lblcnts1", c);
  678. }
  679. }
  680. } else if(tkeep2 == "차광") {
  681. tkeepflag = true;
  682. }
  683. // 20100510_laboru_rex 중복 출력 막기 위해
  684. if(cnt != 0) {
  685. // model.removeNode("/root/main/lbllist/lbllist["+j+"]");
  686. ds_main_lbllist.deleteRow(j);
  687. //cPoint--;
  688. j--;
  689. }
  690. cnt++;
  691. } else {
  692. bContinue = true;
  693. }
  694. if(cnt == 5 || bContinue){
  695. break;
  696. }
  697. }
  698. dsf_makeValue(ds_main_lbllist,"unit","string",unit,iPoint);
  699. ds_main_lbllist.setColumn(iPoint,"prcpcd", tprcpcd);
  700. ds_main_lbllist.setColumn(iPoint,"prcpnm", tprcpnm);
  701. if ( sc !="Q" ){
  702. dsf_setTypeFormat(ds_main_lbllist, "valitime:STRING");
  703. dsf_makeValue(ds_main_lbllist,"valitime","string","조제후("+valitime +") 시간이내투여",iPoint);
  704. }
  705. if(pChaTotCnt > 1) {
  706. dsf_makeValue(ds_main_lbllist,"prnt_page","string",pChaCnt + "/" + pChaTotCnt,iPoint);
  707. }
  708. ds_main_lbllist.setColumn(iPoint,"drugdd", "조제일자 : " + fGetDateString(drugDD) );
  709. }
  710. /****************************************************************************************
  711. * Argument : sc
  712. * : pChaCnt
  713. * : pChaTotCnt
  714. * : cPoint
  715. * Description : TPN 라벨
  716. ****************************************************************************************/
  717. function fTPNDrugLBLR(sc, pChaCnt, pChaTotCnt, cPoint) {
  718. var sSumCls1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"sumcls"));
  719. var cnt = 0;
  720. var bContinue = false;
  721. var lblCnts2 = "";
  722. var tims = 0;
  723. var unit = "";
  724. var tprcpcd = "";
  725. var tprcpnm = "";
  726. var keepmthdnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthdnm"));
  727. var keepmthd2nm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthd2nm"));
  728. var keepmthd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthd"));
  729. var lblCnts1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"lblcnts1"));
  730. var valitime = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"valitime"));
  731. var drugDD = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"drugdd"));
  732. tims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcptims"));
  733. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpqty"));
  734. var qtyunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpqtyunit"));
  735. var stndvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"stndvol"));
  736. var stndunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"stndunit"));
  737. var cntsvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"cntsvol"));
  738. var cntsunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"cntsunit"));
  739. var dayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpdayno"));
  740. var sumcls = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"sumcls"));
  741. dsf_makeValue(ds_main_lbllist,"unit","string",cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit,cPoint);
  742. if ( sc !="Q" ){
  743. dsf_setTypeFormat(ds_main_lbllist, "valitime:STRING");
  744. ds_main_lbllist.setColumn(cPoint,"valitime", "조제후("+valitime +") 시간이내투여");
  745. }
  746. if(pChaTotCnt > 1) {
  747. dsf_makeValue(ds_main_lbllist,"prnt_page","string",pChaCnt + "/" + pChaTotCnt,cPoint);
  748. }
  749. ds_main_lbllist.setColumn(cPoint,"drugdd", "조제일자 : " + fGetDateString(drugDD));
  750. }
  751. /****************************************************************************************
  752. * Argument : pChaCnt
  753. * : pChaTotCnt
  754. * Description : fAntimeticsMixLBLR
  755. ****************************************************************************************/
  756. function fAntimeticsMixLBLR(pChaCnt, pChaTotCnt) {
  757. var sMixno1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"prcpmixno"));
  758. var cnt = 0;
  759. var bContinue = false;
  760. var lblCnts2 = "";
  761. var tims = 0;
  762. var keepmthdnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"keepmthdnm"));
  763. var keepmthd2nm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"keepmthd2nm"));
  764. var keepmthd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"keepmthd"));
  765. var lblCnts1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"lblcnts1"));
  766. var lblCnts3 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"lblcnts3"));
  767. var valitime = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"valitime"));
  768. var keeptime = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"keeptime"));
  769. var drugDD = utlf_transNullToEmpty(ds_main_lbllist.getColumn(rowNumber,"drugdd"));
  770. var totqty:decimal = 0;
  771. var totstndvol = 0;
  772. var divcnt = 0;
  773. var tprcpcd = "";
  774. var tprcpnm = "";
  775. tims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(idx,"prcptims"));
  776. var totvolexptynCnt = 0 ; //2010-05-25 [요청번호:13894]-특수조제실 마스터에 총VOL제외 컬럼을 삽입하여 체크된 약품에 한해 라벨 출력시 총VOLUME 이 인쇄되지 않도록 처리
  777. var qr = "";
  778. ds_main_lbllist.addColumn( "unit", "string" );
  779. for(var j = iPoint; j < ds_main_lbllist.rowcount; j++){
  780. sMixno2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpmixno"));
  781. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpqty"));
  782. var qtyunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpqtyunit"));
  783. var stndvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"stndvol"));
  784. stndvol = stndvol=="" || stndvol==0?stndvol:(Math.round(stndvol * 1000))/1000;
  785. var stndunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"stndunit"));
  786. var cntsvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"cntsvol"));
  787. cntsvol = cntsvol=="" || cntsvol==0?cntsvol:(Math.round(cntsvol * 1000))/1000;
  788. var cntsunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"cntsunit"));
  789. var dayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpdayno"));
  790. var sumcls = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"sumcls"));
  791. var prcpdelivefact = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpdelivefact"));
  792. var voldivcd1 = "";
  793. var voldivcd2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"voldivcd"));
  794. var basevol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"basevol"));
  795. var basevolunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"basevolunit"));
  796. var prcpcd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpcd"));
  797. var prcpnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpnm"));
  798. var prcpdd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpdd"));
  799. var prcpno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(j,"prcpno"));
  800. if(j != iPoint) {
  801. qr += '&';
  802. }
  803. qr += prcpdd + '/'+ prcpno;
  804. if(sMixno1 == sMixno2){
  805. if ( !utlf_isNull(ds_main_lbllist.getColumn(j,"keepmthdnm"))){
  806. keepmthdnm = ds_main_lbllist.getColumn(j,"keepmthdnm");
  807. }
  808. if ( !utlf_isNull(ds_main_lbllist.getColumn(j,"keepmthd2nm"))){
  809. keepmthd2nm = ds_main_lbllist.getColumn(j,"keepmthd2nm");
  810. }
  811. if ( !utlf_isNull(ds_main_lbllist.getColumn(j,"keepmthd"))){
  812. keepmthd = ds_main_lbllist.getColumn(j,"keepmthd");
  813. }
  814. if ( !utlf_isNull(ds_main_lbllist.getColumn(j,"lblcnts1"))){
  815. lblCnts1 =ds_main_lbllist.getColumn(j,"lblcnts1");
  816. }
  817. if ( !utlf_isNull(ds_main_lbllist.getColumn(j,"valitime"))){
  818. valitime =ds_main_lbllist.getColumn(j,"valitime");
  819. }
  820. if ( !utlf_isNull(ds_main_lbllist.getColumn(j,"keeptime"))){
  821. keeptime =ds_main_lbllist.getColumn(j,"keeptime");
  822. }
  823. if( !utlf_isNull(ds_main_lbllist.getColumn(j,"lblcnts3"))){
  824. lblCnts3 = ds_main_lbllist.getColumn(j,"lblcnts3");
  825. }
  826. // sysf_trace(cntsvol);
  827. // sysf_trace(qty);
  828. // sysf_trace(stndvol);
  829. if(cnt == 0) {
  830. tprcpcd = prcpcd;
  831. tprcpnm = prcpnm;
  832. unit = cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit;
  833. /////2015.7.21 김치국
  834. unitsy = prcpnm +" " + cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit;
  835. } else {
  836. tprcpcd += "\n" + prcpcd;
  837. tprcpnm += "\n" + prcpnm;
  838. unit += "\n" + cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit;
  839. /////2015.7.21 김치국
  840. unitsy = prcpnm + " " + cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit;
  841. }
  842. // mix 되어 있는 처방중 항암제가 아닌 일반 약품이 먼저 나올때 보관방법, 차광, 라벨주의사항 copy
  843. var tkeep1 = ds_main_lbllist.getColumn(j,"keepmthdnm");
  844. var tkeep2 = ds_main_lbllist.getColumn(j,"keepmthd2nm");
  845. var tlblcnts1 = ds_main_lbllist.getColumn(j,"lblcnts1");
  846. if(utlf_isNull(tkeep1) || utlf_isNull(tkeep2) || utlf_isNull(tlblcnts1)) {
  847. for(var t = 0 ; t < ds_main_lbllist.rowcount; t++) {
  848. var a = ds_main_lbllist.getColumn(t,"keepmthdnm");
  849. var b = ds_main_lbllist.getColumn(t,"keepmthd2nm");
  850. var c = ds_main_lbllist.getColumn(t,"lblcnts1");
  851. if(!utlf_isNull(a)) {
  852. ds_main_lbllist.setColumn(j,"keepmthdnm", a);
  853. }
  854. if(!utlf_isNull(b)) {
  855. ds_main_lbllist.setColumn(j,"keepmthd2nm", b);
  856. tkeepflag = true;
  857. }
  858. if(!utlf_isNull(c)) {
  859. ds_main_lbllist.setColumn(j,"lblcnts1", c);
  860. }
  861. }
  862. } else if(tkeep2 == "차광") {
  863. tkeepflag = true;
  864. }
  865. // 20100510_laboru_rex 중복 출력 막기 위해
  866. if(cnt != 0) {
  867. ds_main_lbllist.deleteRow(j);
  868. j--;
  869. }
  870. cnt++;
  871. if(voldivcd2 != 0 && voldivcd1 != voldivcd2){
  872. voldivcd1 = voldivcd2;
  873. }
  874. if(voldivcd1 == voldivcd2){
  875. //총용량
  876. if(cntsunit != basevolunit) {//용량분할기준용량과 단위가 다를경우는 기준용량단위로 환산
  877. totqty += Number(basevol) * Number(qty);
  878. } else {
  879. totqty += Number(cntsvol);
  880. }
  881. //총 volume
  882. totstndvol += Number(stndvol);
  883. //2010-05-25 [요청번호:13894]-특수조제실 마스터에 총VOL제외 컬럼을 삽입하여 체크된 약품에 한해 라벨 출력시 총VOLUME 이 인쇄되지 않도록 처리
  884. if (ds_main_lbllist.getColumn(j,"totvolexptyn") == "Y") {
  885. totvolexptynCnt++; // 처방코드중 하나라도 [총VOL제외]에 Check되어 있으면 총 Volume 출력하지 않는다.
  886. }
  887. //용량분할관리대상인 코드의 개수
  888. divcnt++;
  889. if( j < ds_main_lbllist.rowcount ) {
  890. var idx = j + 1;
  891. var voldivcd3 = ds_main_lbllist.getColumn(idx,"voldivcd");
  892. var sMixno3 = ds_main_lbllist.getColumn(idx,"prcpmixno");
  893. var sSpcldrug3 = ds_main_lbllist.getColumn(idx,"spcldrug");
  894. if(divcnt > 1 && (sMixno2 != sMixno3 || voldivcd2 != voldivcd3 ) ){ // && sSpcldrug3 != "S"
  895. //2010-06-08 계산되어 지면서 소숫점아래의 숫자가 0.009999999999999 발생되는경우가 있음
  896. // (곱셈이라 0.00999999 발생될수 없은 상황인데.. 발생되고 있음 <<<10*0.963+50 = 59.629999999 발생됨>>>)
  897. // 그래서 강제로 4자리 반올림처리함.
  898. //totqty = totqty.toString().getRound(-4, "HALF_UP");
  899. var cmt = "";
  900. if(stndvol > 0) {//재구성농도가 있을경우만 volume 출력
  901. unit += "\n\n" + "총용량 : " + totqty + " " + basevolunit;
  902. unit += " 총 Volume : " + ((Math.floor(totstndvol * 1000))/1000) + " " + stndunit;
  903. } else {
  904. unit += "총용량 : " + totqty + " " + basevolunit;
  905. }
  906. //2010-05-25 [요청번호:13894]-특수조제실 마스터에 총VOL제외 컬럼을 삽입하여 체크된 약품에 한해 라벨 출력시 총VOLUME 이 인쇄되지 않도록 처리
  907. if ( totvolexptynCnt > 0 ) { // 처방코드중 하나라도 [총VOL제외]에 Check되어 있으면 총 Volume 출력하지 않는다.
  908. var cmt = "총용량 : " + totqty + " " + basevolunit;
  909. }
  910. tprcpnm += "\n\n" + cmt;
  911. totqty = 0;
  912. totstndvol = 0;
  913. divcnt = 0;
  914. totvolexptynCnt = 0; //2010-05-25 [요청번호:13894]-특수조제실 마스터에 총VOL제외 컬럼을 삽입하여 체크된 약품에 한해 라벨 출력시 총VOLUME 이 인쇄되지 않도록 처리
  915. }
  916. } else if(divcnt > 1 && (j == ds_main_lbllist.rowcount)) {
  917. //2010-06-08 계산되어 지면서 소숫점아래의 숫자가 0.009999999999999 발생되는경우가 있음
  918. // (곱셈이라 0.00999999 발생될수 없은 상황인데.. 발생되고 있음 <<<10*0.963+50 = 59.629999999 발생됨>>>)
  919. // 그래서 강제로 4자리 반올림처리함.
  920. //totqty = totqty.toString().getRound(-4, "HALF_UP");
  921. var cmt = "";
  922. if(stndvol > 0) {//재구성농도가 있을경우만 volume 출력
  923. unit += "\n\n" + "총용량 : " + totqty + " " + basevolunit
  924. unit += " 총 Volume : " + ((Math.floor(totstndvol * 1000))/1000) + " " + stndunit;
  925. } else {
  926. unit += "총용량 : " + totqty + " " + basevolunit ;
  927. }
  928. //2010-05-25 [요청번호:13894]-특수조제실 마스터에 총VOL제외 컬럼을 삽입하여 체크된 약품에 한해 라벨 출력시 총VOLUME 이 인쇄되지 않도록 처리
  929. if ( totvolexptynCnt > 0 ) { // 처방코드중 하나라도 [총VOL제외]에 Check되어 있으면 총 Volume 출력하지 않는다.
  930. var cmt = "총용량 : " + totqty + " " + basevolunit ;
  931. }
  932. tprcpnm += "\n\n" + cmt;
  933. totqty = 0;
  934. totstndvol = 0;
  935. divcnt = 0;
  936. totvolexptynCnt = 0; //2010-05-25 [요청번호:13894]-특수조제실 마스터에 총VOL제외 컬럼을 삽입하여 체크된 약품에 한해 라벨 출력시 총VOLUME 이 인쇄되지 않도록 처리
  937. }
  938. }
  939. } else {
  940. bContinue = true;
  941. }
  942. if(bContinue){
  943. break;
  944. }
  945. ds_main_lbllist.setColumn(iPoint, "unit", unit);
  946. }
  947. //dsf_makeValue(ds_main_lbllist,"unit","string",unit,iPoint);
  948. //// 2015년 5월14일 김치국 항암제 주사라벨 출력하기
  949. //dsf_makeValue(ds_main_lbllist,"unitsy","string",unitsy,iPoint);
  950. ds_main_lbllist.setColumn(iPoint,"prcpcd", tprcpcd);
  951. ds_main_lbllist.setColumn(iPoint,"prcpnm", tprcpnm);
  952. dsf_setTypeFormat(ds_main_lbllist, "valitime:STRING");
  953. var timestr = "";
  954. var instcd = sysf_getUserInfo("dutplceinstcd");
  955. if(instcd == "032") {
  956. if(utlf_isNull(lblCnts3)) {
  957. timestr = "조제후("+valitime +") 시간이내투여";
  958. } else {
  959. timestr = "조제후 " + keepmthdnm.substr(0,2) + "("+valitime +")," +lblCnts3.substr(0,2) + "("+keeptime +") 시간내투여" ;
  960. ds_main_lbllist.setColumn(iPoint, "keepmthdnm", "");
  961. }
  962. } else {
  963. timestr = "조제후("+valitime +") 시간이내투여";
  964. }
  965. ds_main_lbllist.setColumn(iPoint,"valitime", timestr);
  966. // 20130510_실제 조제완료 barcode
  967. dsf_makeValue(ds_main_lbllist,"dbarcode","string",utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"ioflag"))+utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"drugdd"))+utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"drugnobak"))+utlf_transNullToEmpty(ds_main_lbllist.getColumn(iPoint,"prcpmixno")),iPoint);
  968. if(pChaTotCnt > 1) {
  969. dsf_makeValue(ds_main_lbllist,"prnt_page","string",pChaCnt + "/" + pChaTotCnt,iPoint);
  970. }
  971. if(ds_main_lbllist.getColumn(iPoint,"coolmthd") == "냉장보관") {
  972. ds_main_lbllist.setColumn(iPoint,"drugdd", "조제일자 : " + fGetDateString(drugDD) );
  973. } else {
  974. ds_main_lbllist.setColumn(iPoint,"drugdd", "조제일자 : " + fGetDateString(drugDD) );
  975. }
  976. ds_main_lbllist.addColumn( "qrstr", "string" );
  977. for(var i=0; i < ds_main_lbllist.rowcount; i++) {
  978. ds_main_lbllist.setColumn(i, "qrstr", qr);
  979. //alert("213213213:" + ds_main_lbllist.getColumn(i, "unit"));
  980. }
  981. }
  982. /****************************************************************************************
  983. * Argument : pChaCnt
  984. * : pChaTotCnt
  985. * : cPoint
  986. * Description : 항암제 라벨
  987. ****************************************************************************************/
  988. function fAntimeticsLBLR(pChaCnt, pChaTotCnt, cPoint) {
  989. var sSumCls1 = ds_main_lbllist.getColumn(cPoint,"sumcls");
  990. var cnt = 0;
  991. var bContinue = false;
  992. var lblCnts2 ="";
  993. var tims = 0;
  994. var keepmthdnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthdnm"));
  995. var keepmthd2nm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthd2nm"));
  996. var keepmthd = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthd"));
  997. var lblCnts1 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"lblcnts1"));
  998. var valitime = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"valitime"));
  999. var drugDD = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"drugdd"));
  1000. sSumCls2 = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"sumcls"));
  1001. var qty = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpqty"));
  1002. var qtyunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpqtyunit"));
  1003. var stndvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"stndvol"));
  1004. var stndunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"stndunit"));
  1005. var cntsvol = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"cntsvol"));
  1006. var cntsunit = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"cntsunit"));
  1007. tims = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcptims"));
  1008. var dayno = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpdayno"));
  1009. var sumcls = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"sumcls"));
  1010. var keepmthd2nm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"keepmthd2nm"));
  1011. var prcpnm = utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpnm"));
  1012. cntsvol = String(cntsvol).getRound(-4, "HALF_UP");
  1013. dsf_makeValue(ds_main_lbllist,"unit","string",cntsvol+cntsunit+" "+qty+qtyunit+" "+stndvol+stndunit,cPoint);
  1014. //// 2015년 5월14일 김치국 항암제 주사라벨 출력하기
  1015. dsf_makeValue(ds_main_lbllist,"unitsy","string",prcpnm +" "+cntsvol+cntsunit+" "+stndvol+stndunit,cPoint);
  1016. if(!utlf_isNull(valitime)) {
  1017. dsf_setTypeFormat(ds_main_lbllist, "valitime:STRING");
  1018. ds_main_lbllist.setColumn(cPoint,"valitime", "조제후("+valitime +") 시간이내투여");
  1019. }
  1020. if(pChaTotCnt > 1) {
  1021. dsf_makeValue(ds_main_lbllist,"prnt_page","string",pChaCnt + "/" + pChaTotCnt,cPoint);
  1022. }
  1023. // 20130510_실제 조제완료 barcode
  1024. dsf_makeValue(ds_main_lbllist,"dbarcode","string",utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"ioflag"))+utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"drugdd"))+utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"drugnobak"))+utlf_transNullToEmpty(ds_main_lbllist.getColumn(cPoint,"prcpmixno")),cPoint);
  1025. ds_main_lbllist.setColumn(cPoint,"drugdd", "조제일자 : " + fGetDateString(drugDD) );
  1026. }
  1027. /****************************************************************************************
  1028. * Argument : N/A
  1029. * Description : 소아TPN 라벨출력
  1030. ****************************************************************************************/
  1031. function fLBLChildTPNPrintR() {
  1032. /*
  1033. 라벨 Sorting 로직
  1034. calclipidcvol != 0 면 라벨 1번 출력
  1035. 라벨 2번 출력 기본
  1036. 차광이면 2장 출력 (최대 4장출력가능)
  1037. */
  1038. iPoint = 0;
  1039. var sKeepMthd2 = ds_main_lbllist.getColumn(iPoint,"keepmthd2nm");
  1040. var sOrdLipidVol = ds_main_lbllist.getColumn(iPoint,"ordlipidvol");
  1041. var cnt = ds_main_lbllist.rowcount;
  1042. if(!utlf_isNull(sKeepMthd2)) {
  1043. if(parseFloat(sOrdLipidVol) > 0){
  1044. for(var t = 0 ; t < 3 ; t++) {
  1045. // 기존 한줄 있는거를 위쪽에 인서트 하면서 계속 복사해 넣는거 같다.
  1046. // model.makeValue("/root/main/lbllist/lbllist[" + t + "]" , "Y");
  1047. // model.copyNode("/root/main/lbllist/lbllist[" + t + "]", "/root/main/lbllist/lbllist[" + cnt + "]");
  1048. ds_main_lbllist.insertRow(t);
  1049. ds_main_lbllist.copyRow(t,ds_main_lbllist,ds_main_lbllist.rowcount-1);
  1050. }
  1051. } else {
  1052. // 아래쪽에 한줄 추가해서 복사한다.
  1053. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(cnt)+1) + "]" , "Y");
  1054. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(cnt)+1) + "]", "/root/main/lbllist/lbllist[" + cnt + "]");
  1055. var nRow = ds_main_lbllist.addRow();
  1056. ds_main_lbllist.copyRow(nRow,ds_main_lbllist,cnt-1);
  1057. }
  1058. } else {
  1059. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(cnt)+1) + "]" , "Y");
  1060. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(cnt)+1) + "]", "/root/main/lbllist/lbllist[" + cnt + "]");
  1061. var nRow = ds_main_lbllist.addRow();
  1062. ds_main_lbllist.copyRow(nRow,ds_main_lbllist,cnt-1);
  1063. }
  1064. var timscnt = ds_main_lbllist.getColumn(0,"prcptims");
  1065. if(!utlf_isNull(sKeepMthd2)){
  1066. if(parseFloat(sOrdLipidVol) > 0){
  1067. fLBL1ChildTPNPrintR("1/2");
  1068. iPoint++;
  1069. fLBL1ChildTPNPrintR("2/2");
  1070. iPoint++;
  1071. }
  1072. fLBL2ChildTPNPrintR("1/2");
  1073. iPoint++;
  1074. fLBL2ChildTPNPrintR("2/2");
  1075. } else {
  1076. if(parseFloat(sOrdLipidVol) > 0){
  1077. fLBL1ChildTPNPrintR("1/1");
  1078. iPoint++;
  1079. }
  1080. fLBL2ChildTPNPrintR("1/1");
  1081. }
  1082. // 20120424_laboru_소아tpn 라벨 처방 횟수 만큼 반복하여 출력
  1083. var totcnt = ds_main_lbllist.rowcount;
  1084. for(var k = 0 ; k < totcnt ; k++) {
  1085. dsf_makeValue(ds_main_lbllist,"times","string","1" + "-" + timscnt,k);
  1086. }
  1087. // var i = 0;
  1088. for(var t = 1 ; t < timscnt ; t++) {
  1089. for(var i = 0 ; i < totcnt ; i++) {
  1090. // model.makeValue("/root/main/lbllist/lbllist[" + (parseInt(totcnt)+i) + "]" , "Y");
  1091. // model.copyNode("/root/main/lbllist/lbllist[" + (parseInt(totcnt)+i) + "]", "/root/main/lbllist/lbllist[" + i + "]");
  1092. var nRow = ds_main_lbllist.addRow();
  1093. ds_main_lbllist.copyRow(nRow,ds_main_lbllist,i);
  1094. dsf_makeValue(ds_main_lbllist,"times","string",(parseInt(t)+1) + "-" + timscnt,nRow);
  1095. }
  1096. //i = i *2;
  1097. }
  1098. // 20110103_laboru_경북대병원
  1099. // makeReportPreview(0,0,10, 10, "");
  1100. // fPrintRexbar("RFADT63300");
  1101. fPrintRexbar_new("RFADT63300", true);
  1102. }
  1103. /****************************************************************************************
  1104. * Argument : prnt_page
  1105. * Description : 소아TPN 라벨 1 출력
  1106. ****************************************************************************************/
  1107. function fLBL1ChildTPNPrintR(prnt_page) {
  1108. //처방횟수
  1109. var tims = ds_main_lbllist.getColumn(iPoint,"prcptims");
  1110. dsf_makeValue(ds_main_lbllist,"childflag","string", "Y",iPoint);
  1111. //라벨이름
  1112. dsf_makeValue(ds_main_lbllist,"lblname","string", "[소아정맥영양제]",iPoint);
  1113. //처방명
  1114. ds_main_lbllist.setColumn(iPoint,"prcpcd", ds_main_lbllist.getColumn(iPoint,"prcpcd"))
  1115. //병실
  1116. //sSndMsg += astfPrintOut(600, 40, 3, ds_main_lbllist.getColumn(iPoint,"roomcd"),"");
  1117. dsf_makeValue(ds_main_lbllist,"roomcd","string", ds_main_lbllist.getColumn(iPoint,"roomcd"),iPoint);
  1118. //페이지
  1119. dsf_makeValue(ds_main_lbllist,"prnt_page","string", prnt_page,iPoint);
  1120. //drugpath
  1121. dsf_makeValue(ds_main_lbllist,"drugpathnm","string", ds_main_lbllist.getColumn(iPoint,"drugpathnm"),iPoint);
  1122. //maturation
  1123. dsf_makeValue(ds_main_lbllist,"maturationflagnm","string", ds_main_lbllist.getColumn(iPoint,"maturationflagnm"),iPoint);
  1124. //wt
  1125. dsf_makeValue(ds_main_lbllist,"wt","string", ds_main_lbllist.getColumn(iPoint,"wt")+"kg" ,iPoint);
  1126. //환자번호
  1127. dsf_makeValue(ds_main_lbllist,"pid","string", ds_main_lbllist.getColumn(iPoint,"pid"),iPoint);
  1128. //환자명
  1129. dsf_makeValue(ds_main_lbllist,"patnm","string", ds_main_lbllist.getColumn(iPoint,"patnm"),iPoint);
  1130. dsf_makeValue(ds_main_lbllist,"drugspdnm","string", ds_main_lbllist.getColumn(iPoint,"drugspdnm"),iPoint);
  1131. //중단
  1132. var drugcd = "";
  1133. var dvol = "";
  1134. var dunit = "";
  1135. drugcd = ds_main_lbllist.getColumn(iPoint,"lipiddrugcd");
  1136. dvol = ds_main_lbllist.getColumn(iPoint,"ordlipidvol");
  1137. dunit = "ml";
  1138. drugcd += "\n\n\n\n열량 : ";
  1139. dvol += "\n\n\n\n" + ds_main_lbllist.getColumn(iPoint,"ordcalr2");
  1140. dunit += "\n\n\n\nKcal";
  1141. dsf_makeValue(ds_main_lbllist,"drugcd","string", drugcd ,iPoint);
  1142. dsf_makeValue(ds_main_lbllist,"dvol","string", dvol ,iPoint);
  1143. dsf_makeValue(ds_main_lbllist,"dunit","string", dunit ,iPoint);
  1144. //하단
  1145. dsf_setTypeFormat(ds_main_lbllist, "valitime:STRING");
  1146. ds_main_lbllist.setColumn(iPoint,"valitime", "조제후("+ds_main_lbllist.getColumn(iPoint,"valitime") +") 시간이내투여");
  1147. //냉장보관
  1148. if(ds_main_lbllist.getColumn(iPoint,"keepmthdnm") != ""){
  1149. //sSndMsg += astfPrintOut(440, 500, 3, ds_main_lbllist.getColumn(iPoint,"keepmthdnm"),"");
  1150. dsf_makeValue(ds_main_lbllist,"keepmthdnm","string", ds_main_lbllist.getColumn(iPoint,"keepmthdnm"),iPoint);
  1151. }
  1152. //차광
  1153. //sSndMsg += astfPrintOut(610, 500, 3, ds_main_lbllist.getColumn(iPoint,"keepmthd2nm"),"");
  1154. dsf_makeValue(ds_main_lbllist,"keepmthd2nm","string", ds_main_lbllist.getColumn(iPoint,"keepmthd2nm"),iPoint);
  1155. //처방입력일시
  1156. dsf_makeValue(ds_main_lbllist,"rgstdt","string", ds_main_lbllist.getColumn(iPoint,"lblprntdt"),iPoint ); // 20120731_rgstdt 에서 lblprntdt 로 변경. 처방일에서 조제일자로 변경
  1157. //조제일자
  1158. ds_main_lbllist.setColumn(iPoint,"drugdd", ds_main_lbllist.getColumn(iPoint,"drugdd") ); // 20120731_drugdd 에서 drugdd 로 변경. 조제일자에서 적용일자로 변경
  1159. dsf_makeValue(ds_main_lbllist,"lblcnts1","string", ds_main_lbllist.getColumn(iPoint,"lblcnts1"),iPoint);
  1160. dsf_makeValue(ds_main_lbllist,"abbrnm","string", "IV Dropping" ,iPoint); // 20120731
  1161. dsf_makeValue(ds_main_lbllist,"cpflag","string", "Y" ,iPoint); // 20120806_차광여부
  1162. }
  1163. /****************************************************************************************
  1164. * Argument : prnt_page
  1165. * Description : 소아TPN 라벨 2 출력
  1166. ****************************************************************************************/
  1167. function fLBL2ChildTPNPrintR(prnt_page) {
  1168. //처방횟수
  1169. var tims = ds_main_lbllist.getColumn(iPoint,"prcptims");
  1170. dsf_makeValue(ds_main_lbllist,"childflag","string", "Y",iPoint);
  1171. //상단
  1172. //라벨이름
  1173. dsf_makeValue(ds_main_lbllist,"lblname","string", "[소아정맥영양제]",iPoint);
  1174. //처방명
  1175. ds_main_lbllist.setColumn(iPoint,"prcpcd", ds_main_lbllist.getColumn(iPoint,"prcpcd"))
  1176. //병실
  1177. dsf_makeValue(ds_main_lbllist,"roomcd","string", ds_main_lbllist.getColumn(iPoint,"roomcd"),iPoint);
  1178. //페이지
  1179. dsf_makeValue(ds_main_lbllist,"prnt_page","string", prnt_page,iPoint);
  1180. //drugpath
  1181. dsf_makeValue(ds_main_lbllist,"drugpathnm","string", ds_main_lbllist.getColumn(iPoint,"drugpathnm"),iPoint);
  1182. //maturation
  1183. dsf_makeValue(ds_main_lbllist,"maturationflagnm","string", ds_main_lbllist.getColumn(iPoint,"maturationflagnm"),iPoint);
  1184. //wt
  1185. dsf_makeValue(ds_main_lbllist,"wt","string", ds_main_lbllist.getColumn(iPoint,"wt")+"kg" ,iPoint);
  1186. //환자번호
  1187. dsf_makeValue(ds_main_lbllist,"pid","string", ds_main_lbllist.getColumn(iPoint,"pid"),iPoint);
  1188. //환자명
  1189. dsf_makeValue(ds_main_lbllist,"patnm","string", ds_main_lbllist.getColumn(iPoint,"patnm"),iPoint);
  1190. //투여속도
  1191. dsf_makeValue(ds_main_lbllist,"drugspdnm","string", ds_main_lbllist.getColumn(iPoint,"drugspdnm"),iPoint);
  1192. //중단
  1193. var drugcd = "";
  1194. var dvol = "";
  1195. var dunit = "";
  1196. var drugcd1 = "";
  1197. var dvol1 = "";
  1198. var dunit1 = "";
  1199. // rex 좌측
  1200. // 1
  1201. drugcd = ds_main_lbllist.getColumn(iPoint,"xcode"); // 20120801_orddrug -> xcode
  1202. dvol = ds_main_lbllist.getColumn(iPoint,"xvol"); // 20120801_prcpdistvol -> xvol
  1203. dunit = "ml";
  1204. // 2
  1205. drugcd += "\n" + ds_main_lbllist.getColumn(iPoint,"dexdrugcd");
  1206. dvol += "\n" + ds_main_lbllist.getColumn(iPoint,"yvol"); // 20120801_orddexvol -> yvol
  1207. dunit += "\nml";
  1208. // 3
  1209. drugcd += "\n" + ds_main_lbllist.getColumn(iPoint,"aminodrugcd");
  1210. dvol += "\n" + ds_main_lbllist.getColumn(iPoint,"ordaminovol");
  1211. dunit += "\nml";
  1212. // 4
  1213. drugcd += "\n" + ds_main_lbllist.getColumn(iPoint,"pdrugcd");
  1214. dvol += "\n" + ds_main_lbllist.getColumn(iPoint,"ordpvol");
  1215. dunit += "\nml";
  1216. // 5
  1217. drugcd += "\n" + ds_main_lbllist.getColumn(iPoint,"mgdrugcd");
  1218. dvol += "\n" + ds_main_lbllist.getColumn(iPoint,"ordmgvol");
  1219. dunit += "\nml";
  1220. // 5-1_20121217_추가
  1221. drugcd += "\n"; // + ds_main_lbllist.getColumn(iPoint,"zndrugcd");
  1222. dvol += "\n"; // + ds_main_lbllist.getColumn(iPoint,"ordznplusvol");
  1223. dunit += "\n"; // + "ml";
  1224. // rex 우측
  1225. // 6
  1226. drugcd1 = ds_main_lbllist.getColumn(iPoint,"kdrugcd");
  1227. dvol1 = ds_main_lbllist.getColumn(iPoint,"ordkvol");
  1228. dunit1 = "ml";
  1229. // 7
  1230. drugcd1 += "\n" + ds_main_lbllist.getColumn(iPoint,"traceeledrugcd");
  1231. dvol1 += "\n" + parseFloat(ds_main_lbllist.getColumn(iPoint,"traceelevol")) * parseFloat(ds_main_lbllist.getColumn(iPoint,"prcprate"));
  1232. dunit1 += "\nml";
  1233. // 8
  1234. drugcd1 += "\n" + ds_main_lbllist.getColumn(iPoint,"multivitadrugcd");
  1235. dvol1 += "\n" + ds_main_lbllist.getColumn(iPoint,"ordmultivitavol");
  1236. dunit1 += "\nml";
  1237. // 9
  1238. drugcd1 += "\n" + ds_main_lbllist.getColumn(iPoint,"nadrugcd");
  1239. dvol1 += "\n" + ds_main_lbllist.getColumn(iPoint,"ordnavol");
  1240. dunit1 += "\nml";
  1241. // 10 2014년 1월27일 김치국 11번째로 이동
  1242. //drugcd1 += "\n" + ds_main_lbllist.getColumn(iPoint,"cadrugcd");
  1243. //dvol1 += "\n" + ds_main_lbllist.getColumn(iPoint,"ordcavol");
  1244. //dunit1 += "\nml";
  1245. // 10-1_20121217_조성추가
  1246. drugcd1 += "\n" + ds_main_lbllist.getColumn(iPoint,"heparindrugcd");
  1247. dvol1 += "\n" + parseInt(ds_main_lbllist.getColumn(iPoint,"ordheparinvol"))/5000;
  1248. dunit1 += "\nml";
  1249. // 11 No10을 2014년 1월27일 김치국 11번째로 이동
  1250. drugcd1 += "\n" + ds_main_lbllist.getColumn(iPoint,"cadrugcd");
  1251. dvol1 += "\n" + ds_main_lbllist.getColumn(iPoint,"ordcavol");
  1252. dunit1 += "\nml";
  1253. //총열량
  1254. drugcd += "\n열량 : ";
  1255. dvol += "\n" + ds_main_lbllist.getColumn(iPoint,"ordcalr1");
  1256. dunit += "\nKcal";
  1257. dsf_makeValue(ds_main_lbllist,"drugcd","string", drugcd,iPoint);
  1258. dsf_makeValue(ds_main_lbllist,"dvol","string", dvol,iPoint);
  1259. dsf_makeValue(ds_main_lbllist,"dunit","string", dunit,iPoint);
  1260. dsf_makeValue(ds_main_lbllist,"drugcd1","string", drugcd1,iPoint);
  1261. dsf_makeValue(ds_main_lbllist,"dvol1","string", dvol1,iPoint);
  1262. dsf_makeValue(ds_main_lbllist,"dunit1","string", dunit1,iPoint);
  1263. //하단
  1264. //투여제한시간
  1265. dsf_setTypeFormat(ds_main_lbllist, "valitime:STRING");
  1266. ds_main_lbllist.setColumn(iPoint,"valitime", "조제후("+ds_main_lbllist.getColumn(iPoint,"valitime") +") 시간이내투여");
  1267. //냉장보관
  1268. if(!utlf_isNull(ds_main_lbllist.getColumn(iPoint,"keepmthdnm"))){
  1269. dsf_makeValue(ds_main_lbllist,"keepmthdnm","string", ds_main_lbllist.getColumn(iPoint,"keepmthdnm"),iPoint);
  1270. }
  1271. //차광
  1272. dsf_makeValue(ds_main_lbllist,"keepmthd2nm","string", ds_main_lbllist.getColumn(iPoint,"keepmthd2nm"),iPoint);
  1273. //처방입력일시
  1274. dsf_makeValue(ds_main_lbllist,"rgstdt","string", ds_main_lbllist.getColumn(iPoint,"lblprntdt") ,iPoint); // 20120731_rgstdt 에서 lblprntdt 로 변경. 처방일에서 조제일자로 변경
  1275. //조제일자
  1276. ds_main_lbllist.setColumn(iPoint,"drugdd", ds_main_lbllist.getColumn(iPoint,"drugdd") ); // 20120731_drugdd 에서 drugdd 로 변경. 조제일자에서 적용일자로 변경
  1277. dsf_makeValue(ds_main_lbllist,"lblcnts1","string", ds_main_lbllist.getColumn(iPoint,"lbllist"),iPoint);
  1278. // 20120731_dextrose 농도, total volume
  1279. dsf_makeValue(ds_main_lbllist,"dextrose","string", "Dextrose 농도 : " + ds_main_lbllist.getColumn(iPoint,"prcpdexvol") + "%" ,iPoint);
  1280. dsf_makeValue(ds_main_lbllist,"totvol","string", "Total Volume : " + ds_main_lbllist.getColumn(iPoint,"ordvol") + "ml" ,iPoint);
  1281. dsf_makeValue(ds_main_lbllist,"abbrnm","string", "IV Dropping" ,iPoint); // 20120731
  1282. }
  1283. /*
  1284. // 20100202_laboru_byte
  1285. */
  1286. function getByteLength(str) {
  1287. var byteLength = 0;
  1288. for (inx = 0; inx < str.length; inx++) {
  1289. var oneChar = escape(str.charAt(inx));
  1290. if ( oneChar.length == 1 ) {
  1291. byteLength ++;
  1292. } else if (oneChar.indexOf("%u") != -1) {
  1293. byteLength += 2;
  1294. } else if (oneChar.indexOf("%") != -1) {
  1295. byteLength += oneChar.length/3;
  1296. }
  1297. }
  1298. return byteLength;
  1299. }
  1300. function fSleep(numberMillis) {
  1301. var now = new Date();
  1302. var exitTime = now.getTime() + numberMillis;
  1303. while (true) {
  1304. now = new Date();
  1305. if (now.getTime() > exitTime)
  1306. return;
  1307. }
  1308. }
  1309. //=======================================================================================
  1310. // Event
  1311. //---------------------------------------------------------------------------------------
  1312. /****************************************************************************************
  1313. * Components : Form
  1314. * Components ID : SPADT63301
  1315. * Event : oninit
  1316. * Argument : 01.obj : Object Event has occurred
  1317. * : 02.e : Event Object
  1318. * Description : 화면 처음 초기화시 폼초기화
  1319. ****************************************************************************************/
  1320. function SPADT63301_oninit(obj:Form, e:InitEventInfo)
  1321. {
  1322. frmf_initForm(obj); // 폼 초기화
  1323. }
  1324. /****************************************************************************************
  1325. * Components : Form
  1326. * Components ID : SPADT63301
  1327. * Event : onload
  1328. * Argument : 01.obj : Object Event has occurred
  1329. * : 02.e : Event Object
  1330. * Description : 화면 처음 초기화시 폼초기화
  1331. ****************************************************************************************/
  1332. function SPADT63301_onload(obj:Form, e:LoadEventInfo)
  1333. {
  1334. try{
  1335. ds_init_barcdprntsetup.copyData(arg_ds_init_barcdprntsetup)
  1336. var prntsetupinfo = ds_init_barcdprntsetup.getColumn(0,"prntsetupinfo"); //프린터설정 XML형식
  1337. lf_convertXmlToDs(prntsetupinfo);
  1338. var comm = ds_data_comm02.getColumn(0,"comm");
  1339. var prntkind = ds_data_setupinfo.getColumn(0,"prntkind");
  1340. if(comm == "2") {
  1341. ds_data_comm02.setColumn(0,"comm", "1");
  1342. }
  1343. if(prntkind == "1") {
  1344. ds_data_setupinfo.setColumn(0,"prntkind", "5");
  1345. }
  1346. }catch(e){}
  1347. fInit();
  1348. }
  1349. function fPrintS() {
  1350. ds_main_lbllist.clearData();
  1351. dsf_makeValue(ds_main_lbllist,"wardnm" ,"string", ds_send_prcpinfo.getColumn(0, "wardnm"));
  1352. dsf_makeValue(ds_main_lbllist,"prcpcd" ,"string", ds_send_prcpinfo.getColumn(0, "prcpcd"));
  1353. dsf_makeValue(ds_main_lbllist,"prcpnm" ,"string", ds_send_prcpinfo.getColumn(0, "prcpnm"));
  1354. dsf_makeValue(ds_main_lbllist,"qty" ,"string", ds_send_prcpinfo.getColumn(0, "qty"));
  1355. dsf_makeValue(ds_main_lbllist,"fromdd" ,"string", ds_send_prcpinfo.getColumn(0, "fromdd"));
  1356. dsf_makeValue(ds_main_lbllist,"fromtm" ,"string", ds_send_prcpinfo.getColumn(0, "fromtm"));
  1357. dsf_makeValue(ds_main_lbllist,"todd" ,"string", ds_send_prcpinfo.getColumn(0, "todd"));
  1358. dsf_makeValue(ds_main_lbllist,"totm" ,"string", ds_send_prcpinfo.getColumn(0, "totm"));
  1359. fPrintRexbar_new("RPADT21002", true);
  1360. }
  1361. ]]></Script>
  1362. </Form>
  1363. </FDL>