SMMNW11000.js 118 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 간호처방 기준자료관리 ( SMMNW11000_기준자료관리(1).xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sSETPRCPLIST_PATH = "/root/main/prcpset/prcplist"; //간호SET처방
  7. var sPRCPLIST_PATH = "/root/main/prcpset/prcplist";
  8. var sPRCPLIST_PATH2 = "/root/main/owndeptinfo/ownsetprcpinfo/prcplist";
  9. /**
  10. * @desc : 화면 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 성미연
  15. * @---------------------------------------------------
  16. */
  17. function fSetInit(){
  18. var screenid =getScreenID();
  19. if(screenid =="SMMNW11000") {
  20. model.setValue("/root/main/cond/setclscd", 'W');
  21. model.setValue("/root/main/cond/settrgtcd", getUserInfo("dutplcecd")); //근무부서
  22. rdo_flag.disabled = true;
  23. } else if(screenid =="SMMNW11001") {
  24. model.setValue("/root/main/cond/setclscd", 'N');
  25. model.setValue("/root/main/cond/settrgtcd", 'ALL'); //근무부서
  26. rdo_flag.disabled = false;
  27. }
  28. //if(getScreenMenuParameter() == "SU") { //간호부서장용인가.?
  29. // model.setValue("/root/main/cond/setclscd", 'W');
  30. // model.setValue("/root/main/cond/settrgtcd", getUserInfo("dutplcecd")); //근무부서
  31. // rdo_flag.disabled = true;
  32. //} else {
  33. // model.setValue("/root/main/cond/setclscd", 'N');
  34. // model.setValue("/root/main/cond/settrgtcd", 'ALL'); //근무부서
  35. // rdo_flag.disabled = false;
  36. //}
  37. model.removeNodeset(sSETPRCPLIST_PATH);
  38. /*
  39. var xHardCodeList = "/root/code/codeinfo/codelist";
  40. // 간호하드코딩 테이블 조회_20091217 최영 수정권한자
  41. var pCode = "'174'"; // 조회할 CdGrupID 코드정보
  42. var pDate = getCurrentDate(); // 조회기준일자
  43. fGetNursHardCdInfo(pCode, pDate);
  44. if ( !isNull(getUserId()) && !isNull(model.getValue(xHardCodeList + "[cdid='"+ getUserId() +"']/cdid"))) {
  45. model.setValue("/root/main/cond/setclscd", 'N');
  46. model.setValue("/root/main/cond/settrgtcd", 'ALL'); //근무부서
  47. rdo_flag.disabled = false;
  48. }else {
  49. model.setValue("/root/main/cond/setclscd", 'W');
  50. model.setValue("/root/main/cond/settrgtcd", getUserInfo("dutplcecd")); //근무부서
  51. rdo_flag.disabled = true;
  52. }
  53. */
  54. //콤보리스트 셋팅(급비, 수술종류)
  55. zbcfGetCodeList(new Array("M0029", "M0007"), new Array("/root/init/comcodelist/payflag_cmblist", "/root/init/comcodelist/opflag_cmblist"), true);
  56. //model.makeValue("/root/send/reqdata/etcrefflag", 'Y'); //부서테이블에 간호사용여부 컬럼으로 조회함으로서 사용하지 않음
  57. submit("TRMNW11001"); //부서콤보 조회
  58. model.setValue("/root/main/cond/settypecd", 'P');
  59. model.setValue("/root/main/cond/setkindcd", 'D');
  60. //사용자권한지정
  61. //메뉴파라미터에 "SU" 로 사용할 수 있는 권한 설정(간호약속처방등록조회버튼, 저장버튼, 팝업메뉴)
  62. if(getScreenMenuParameter() == "SU") {
  63. model.setValue("/root/main/cond/setauth", "true");
  64. } else {
  65. model.setValue("/root/main/cond/setauth", "false");
  66. btn_rgstref.disabled = true;
  67. btn_save.disabled = true;
  68. }
  69. model.refresh();
  70. fRefSetTrvInfo();
  71. model.refresh();
  72. }
  73. /**
  74. * @desc : 트리 조회
  75. * @
  76. * @param :
  77. * @return :
  78. * @author : 성미연
  79. * @---------------------------------------------------
  80. */
  81. function fRefSetTrvInfo() {
  82. var posdeptcd = model.getValue("/root/main/cond/settrgtcd");
  83. if (model.getValue("/root/main/cond/setclscd") == 'N' || (model.getValue("/root/main/cond/setclscd") == 'W' && model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + posdeptcd + "']/deptcd") != "")) {
  84. model.removeNodeset(sSETPRCPLIST_PATH);
  85. model.removeNodeset("/root/send/reqdata");
  86. model.makeNode("/root/send/reqdata");
  87. model.copyNode("/root/send/reqdata", "/root/main/cond");
  88. submit("TRMNW11002");
  89. model.resetInstanceNode("/root/main/prcpclsinfo");
  90. trv_base.rebuild();
  91. }
  92. }
  93. /**
  94. * @desc : 처방목록 리스트 조회
  95. * @
  96. * @param :
  97. * @return :
  98. * @author : 성미연
  99. * @---------------------------------------------------
  100. */
  101. function fPrcpListRef(RefYN) {
  102. if (RefYN == "1") {
  103. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  104. var supsetno = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/supsetno");
  105. var depth = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/depth");
  106. model.setValue("/root/main/prcpclsinfo/supsetnm", model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + supsetno + "']/setnm"));
  107. model.setValue("/root/main/prcpclsinfo/setnm", model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/setnm"));
  108. model.setValue("/root/main/prcpclsinfo/settypecd", model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/settypecd"));
  109. model.setValue("/root/main/prcpclsinfo/focusidx", trv_base.focusIndex+1);
  110. model.refresh();
  111. if (depth == 2) {
  112. model.removeNodeset("/root/send/reqdata");
  113. model.makeNode("/root/send/reqdata");
  114. model.makeValue("/root/send/reqdata/setno", model.getValue("/root/main/prcpclsinfo/setno"));
  115. model.makeValue("/root/send/reqdata/settypecd", model.getValue("/root/main/prcpclsinfo/settypecd"));
  116. grd_setprcplist.rebuildStyle();
  117. if(submit("TRMNW11003")){
  118. model.setValue("/root/main/prcpclsinfo/sortflag", '2');
  119. model.copyNode("/root/temp/prcpset", "/root/main/prcpset");
  120. //SET 처방리스트에서 청구주기가 월일 경우 파란색
  121. for ( i = 1; i<= getNodesetCount(sSETPRCPLIST_PATH); i++) {
  122. var tempcol10 = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/tempcol10");
  123. if (tempcol10 == "4")
  124. grd_setprcplist.rowStyle(i, "data", "color") = "#0000ff";
  125. }
  126. }
  127. } else {
  128. model.removeNodeset(sSETPRCPLIST_PATH);
  129. }
  130. model.refresh();
  131. event.stopPropagation();
  132. } else {
  133. trv_base.deselect();
  134. model.resetInstanceNode("/root/main/prcpclsinfo");
  135. model.removeNodeset(sSETPRCPLIST_PATH);
  136. model.refresh();
  137. }
  138. }
  139. /**
  140. * @desc : 트리메뉴 팝업
  141. * @
  142. * @param :
  143. * @return :
  144. * @author : 성미연
  145. * @---------------------------------------------------
  146. */
  147. function fPopTrvMenu(){
  148. if (model.getValue("/root/main/cond/setauth") == "false") {
  149. return;
  150. }
  151. if (event.button == 3) { //trv_base.isCell(event.target) == 1
  152. if (model.getValue("/root/main/clstreeinfo/clstreelist["+ (trv_base.mouseRow+1)+"]/setno") != model.getValue("/root/main/prcpclsinfo/setno")) {
  153. model.resetInstanceNode("/root/main/prcpclsinfo");
  154. model.removeNodeset("/root/main/setprcpinfo/setprcplist");
  155. }
  156. model.setValue("/root/main/prcpclsinfo/setno", model.getValue("/root/main/clstreeinfo/clstreelist["+ (trv_base.mouseRow+1)+"]/setno")); //포커스 이동
  157. model.refresh();
  158. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  159. if (setno != "") {
  160. if (model.getValue("/root/main/clstreeinfo/clstreelist[setno = '"+ setno +"']/depth") == '1') { //대분류 선택
  161. window.setPopupMenu(true, "/root/main/popupmenu/lrgtreeset/item", "name", "func", false);
  162. } else { //소분류 선택
  163. window.setPopupMenu(true, "/root/main/popupmenu/smltreeset/item", "name", "func", false);
  164. }
  165. } else { //처음 set등록시
  166. window.setPopupMenu(true, "/root/main/popupmenu/lrgtreeset/item", "name", "func", false);
  167. }
  168. }
  169. }
  170. /**
  171. * @desc : 대분류 추가 메뉴 클릭시
  172. * @
  173. * @param :
  174. * @return :
  175. * @author : 성미연
  176. * @---------------------------------------------------
  177. */
  178. function fPopAddLrgSetCls() {
  179. fPopAddSetCls("LRG");
  180. }
  181. /**
  182. * @desc : 소분류 추가 메뉴 클릭시
  183. * @
  184. * @param :
  185. * @return :
  186. * @author : 성미연
  187. * @---------------------------------------------------
  188. */
  189. function fPopAddSmlSetCls() {
  190. fPopAddSetCls("SML");
  191. }
  192. /**
  193. * @desc : 대/소분류 추가 메뉴 클릭시
  194. * @
  195. * @param :
  196. * @return :
  197. * @author : 성미연
  198. * @---------------------------------------------------
  199. */
  200. function fPopAddSetCls(CLS){
  201. var xpt = event.x + 80;
  202. var ypt = event.y + 280;
  203. var coord = getRelativeCoordinate ( xpt, ypt );
  204. var mon = coord[0];
  205. xpt = coord[1];
  206. ypt = coord[2];
  207. var posdeptcd = model.getValue("/root/main/cond/settrgtcd");
  208. if (model.getValue("/root/main/cond/setclscd") == 'W' && model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + posdeptcd + "']/deptcd") == "") {
  209. messageBox("해당 부서를", "C002");
  210. return;
  211. }
  212. if(CLS == "LRG"){
  213. setParameter("clsflag", 'lrg');
  214. setParameter("status",'i');
  215. modal("SPMNW11700", mon, xpt, ypt, "SPMNW11700", "/root/main/cond", "/root/temp/setinfo");
  216. }else{
  217. if (model.getValue("/root/main/prcpclsinfo/setno") == "") {
  218. messageBox("대분류를 먼저 추가하세요.", "C");
  219. return;
  220. }
  221. setParameter("clsflag", 'sml');
  222. setParameter("status",'i');
  223. setParameter("supsetno", model.getValue("/root/main/prcpclsinfo/setno")); //선택한 setno가 상위코드
  224. modal("SPMNW11700", mon, xpt, ypt, "SPMNW11700", "/root/main/cond", "/root/temp/setinfo");
  225. }
  226. //저장, 수정후에만 재조회
  227. if (model.getValue("/root/temp/insupdtvalue") == 'y') {
  228. fRefSetTrvInfo();
  229. //분류명 추가시 추가항목으로 스크롤을 이동
  230. trv_base.select(grd_trv.rows-2);
  231. trv_base.rebuild();
  232. }
  233. }
  234. /**
  235. * @desc : 대/소분류 이름변경 메뉴 클릭시
  236. * @
  237. * @param :
  238. * @return :
  239. * @author : 성미연
  240. * @---------------------------------------------------
  241. */
  242. function fPopChgSetCls() {
  243. var posdeptcd = model.getValue("/root/main/cond/settrgtcd");
  244. if (model.getValue("/root/main/cond/setclscd") == 'W' && model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + posdeptcd + "']/deptcd") == "") {
  245. messageBox("해당 부서를", "C002");
  246. return;
  247. }
  248. if (model.getValue("/root/main/prcpclsinfo/setno") == "") {
  249. messageBox("대분류를 먼저 추가하세요.", "C");
  250. return;
  251. }
  252. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  253. model.setValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/status", 'u');
  254. model.refresh();
  255. setParameter("status", 'u');
  256. modal("SPMNW11700","1","100","100", "SPMNW11700", "/root/main/clstreeinfo/clstreelist[setno='" + setno + "']", "/root/temp/setinfo");
  257. //수정후에만 재조회
  258. if (model.getValue("/root/temp/insupdtvalue") == 'y') {
  259. model.removeNodeset("/root/send/reqdata");
  260. model.makeNode("/root/send/reqdata");
  261. model.copyNode("/root/send/reqdata", "/root/main/cond");
  262. submit("TRMNW11002");
  263. trv_base.rebuild();
  264. //수정된 분류명 변경
  265. var focusidx = model.getValue("/root/main/prcpclsinfo/focusidx");
  266. if (model.getValue("/root/main/prcpclsinfo/setnm") != "") {
  267. if (model.getValue("/root/main/clstreeinfo/clstreelist[" + focusidx + "]/depth") == 1 ) {
  268. model.setValue("/root/main/prcpclsinfo/supsetnm", model.getValue("/root/main/clstreeinfo/clstreelist[" + focusidx + "]/setnm"));
  269. }
  270. model.setValue("/root/main/prcpclsinfo/setnm", model.getValue("/root/main/clstreeinfo/clstreelist[" + focusidx + "]/setnm"));
  271. }
  272. model.refresh();
  273. }
  274. }
  275. /**
  276. * @desc : 대분류 삭제 메뉴 클릭시
  277. * @
  278. * @param :
  279. * @return :
  280. * @author : 성미연
  281. * @---------------------------------------------------
  282. */
  283. function fDelLrgSetCls() {
  284. fPopDelSetCls("LRG");
  285. }
  286. /**
  287. * @desc : 소분류 삭제 메뉴 클릭시
  288. * @
  289. * @param :
  290. * @return :
  291. * @author : 성미연
  292. * @---------------------------------------------------
  293. */
  294. function fDelSmlSetCls() {
  295. fPopDelSetCls("SML");
  296. }
  297. /**
  298. * @desc : 대/소분류 삭제(대분류 삭제시 소분류 삭제, 처방 테이블 rgstdd, rgsttm = '00000000' 처리 / 소분류 삭제시 처방 테이블 rgstdd, rgsttm = '00000000' 처리)
  299. * @
  300. * @param :
  301. * @return :
  302. * @author : 성미연
  303. * @---------------------------------------------------
  304. */
  305. function fPopDelSetCls(CLS){
  306. if(CLS == "LRG"){
  307. var posdeptcd = model.getValue("/root/main/cond/settrgtcd");
  308. if (model.getValue("/root/main/cond/setclscd") == 'W' && model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + posdeptcd + "']/deptcd") == "") {
  309. messageBox("해당 부서를", "C002");
  310. return;
  311. }
  312. if (model.getValue("/root/main/prcpclsinfo/setno") == "") {
  313. messageBox("대분류를 먼저 추가하세요.", "C");
  314. return;
  315. }
  316. }
  317. var btn = messageBox("현재 선택하신 set를 삭제할까요? 삭제하면 약속처방도 같이 삭제됩니다.","S001");
  318. if (btn == '6' ) { //예
  319. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  320. model.setValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/status", 'd');
  321. if(CLS == "LRG"){
  322. model.setValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/clsflag", 'lrg');
  323. }else{
  324. model.setValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/clsflag", 'sml');
  325. }
  326. model.removeNodeset("/root/send/savedata");
  327. model.makeNode("/root/send/savedata");
  328. model.makeValue("/root/send/savedata/setinfo", getNodeListCSV(model.instances(0).selectNodes("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']")));
  329. submit("TXMNW11001");
  330. model.removeNodeset(sSETPRCPLIST_PATH);
  331. model.refresh();
  332. trv_base.rebuild();
  333. } else {
  334. return;
  335. }
  336. }
  337. /**
  338. * @desc : 트리 SET조회순서 상위로 변경할 경우
  339. * @
  340. * @param :
  341. * @return :
  342. * @author : 성미연
  343. * @---------------------------------------------------
  344. */
  345. function fUpIdxSetRefInfo() {
  346. model.removeNodeset("/root/temp/updown");
  347. model.makeNode("/root/temp/updown");
  348. var sel_idx = trv_base.selectedIndex + 1;
  349. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  350. var supsetno = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno +"']/supsetno");
  351. var depth = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/depth");
  352. if (depth == 2) {
  353. var up_idx = sel_idx - 1;
  354. if (model.getValue("/root/main/clstreeinfo/clstreelist[" + up_idx + "]/depth") != '1') {
  355. var sel_list = instance1.selectSingleNode("/root/main/clstreeinfo/clstreelist[" + sel_idx + "]");
  356. var up_list = instance1.selectSingleNode("/root/main/clstreeinfo/clstreelist[" + up_idx + "]");
  357. model.copyNode("/root/temp/updown", up_list);
  358. model.copyNode("/root/main/clstreeinfo/clstreelist[" + up_idx + "]", sel_list);
  359. model.copyNode("/root/main/clstreeinfo/clstreelist[" + sel_idx + "]", "/root/temp/updown");
  360. } else {
  361. messageBox("이동할 수", "I004");
  362. return;
  363. }
  364. } else if (depth == 1) {
  365. var up_supsetno = model.getValue("/root/main/clstreeinfo/clstreelist[" + (sel_idx-1) + "]/supsetno");
  366. var up_idx = grd_trv.findRow(up_supsetno, 1, 10);
  367. if (up_idx != '-1'){
  368. //선택한 노드 temp로 복사
  369. for (i = 1; i <= grd_trv.rows; i++) {
  370. if ( model.getValue("/root/main/clstreeinfo/clstreelist[" + i + "]/supsetno") == supsetno) {
  371. model.makeNode("/root/temp/updown/clstreelist");
  372. copyNodesetType("/root/temp/updown/clstreelist", "/root/main/clstreeinfo/clstreelist[" + i + "]", "atfer");
  373. model.removeNodeset("/root/main/clstreeinfo/clstreelist[" + i + "]");
  374. i--;
  375. }
  376. }
  377. model.removenode("/root/temp/updown/clstreelist");
  378. //해당 인덱스에 복사
  379. for(i = 1; i <= getNodesetCount("/root/temp/updown/clstreelist"); i++) {
  380. model.duplicate("/root/main/clstreeinfo", "/root/temp/updown/clstreelist[" + i + "]", "*[" + up_idx + "]");
  381. up_idx++;
  382. }
  383. } else {
  384. return;
  385. }
  386. }
  387. trv_base.rebuild();
  388. model.refresh();
  389. }
  390. /**
  391. * @desc : 트리 SET조회순서 하위로 변경할 경우
  392. * @
  393. * @param :
  394. * @return :
  395. * @author : 성미연
  396. * @---------------------------------------------------
  397. */
  398. function fDownIdxSetRefInfo() {
  399. model.removeNodeset("/root/temp/updown");
  400. model.makeNode("/root/temp/updown");
  401. var sel_idx = trv_base.selectedIndex + 1;
  402. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  403. var supsetno = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno +"']/supsetno");
  404. var depth = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/depth");
  405. if (depth == 2) {
  406. var down_idx = sel_idx + 1;
  407. if ( model.getValue("/root/main/clstreeinfo/clstreelist[" + down_idx + "]/depth") != '1' && model.getValue("/root/main/clstreeinfo/clstreelist[" + down_idx + "]/setno") != "") {
  408. var sel_list = instance1.selectSingleNode("/root/main/clstreeinfo/clstreelist[" + sel_idx + "]");
  409. var down_list = instance1.selectSingleNode("/root/main/clstreeinfo/clstreelist[" + down_idx + "]");
  410. model.copyNode("/root/temp/updown", down_list);
  411. model.copyNode("/root/main/clstreeinfo/clstreelist[" + down_idx + "]", sel_list);
  412. model.copyNode("/root/main/clstreeinfo/clstreelist[" + sel_idx + "]", "/root/temp/updown");
  413. } else {
  414. messageBox("이동할 수", "I004");
  415. return;
  416. }
  417. } else if (depth == 1) {
  418. var srcIndex = trv_base.selectedIndex;
  419. var treeItemNodeSet = trv_base.itemset.attribute("nodeset");
  420. var srcLastChildItemIndex = (getLastChildItemIndex(srcIndex, treeItemNodeSet))+1;
  421. var down_setno = model.getValue("/root/main/clstreeinfo/clstreelist[" + (srcLastChildItemIndex+1) + "]/setno");
  422. //선택한 노드 temp로 복사
  423. for (i = 1; i <= grd_trv.rows; i++) {
  424. if ( model.getValue("/root/main/clstreeinfo/clstreelist[" + i + "]/supsetno") == supsetno) {
  425. model.makeNode("/root/temp/updown/clstreelist");
  426. copyNodesetType("/root/temp/updown/clstreelist", "/root/main/clstreeinfo/clstreelist[" + i + "]", "atfer");
  427. model.removeNodeset("/root/main/clstreeinfo/clstreelist[" + i + "]");
  428. i--;
  429. }
  430. }
  431. model.removenode("/root/temp/updown/clstreelist");
  432. //다음 노드의 childnode의 count를 세서 copy할 idx를 구함
  433. var folderCnt = getNodesetCount("/root/main/clstreeinfo/clstreelist[supsetno='" + down_setno + "']/supsetno");
  434. var down_idx = Number(sel_idx) + Number(folderCnt);
  435. //해당 인덱스에 복사
  436. for(i = 1; i <= getNodesetCount("/root/temp/updown/clstreelist"); i++) {
  437. if (model.getValue("/root/main/clstreeinfo/clstreelist[" + down_idx + "]/setno") != "") { //끝에서 두번째 node는 마지막 idx를 가지고 있지 않으므로 null일 경우 맨 마지막에 duplicate한다.
  438. model.duplicate("/root/main/clstreeinfo", "/root/temp/updown/clstreelist[" + i + "]", "*[" + down_idx + "]");
  439. down_idx++;
  440. } else {
  441. model.duplicate("/root/main/clstreeinfo", "/root/temp/updown/clstreelist[" + i + "]");
  442. down_idx++;
  443. }
  444. }
  445. }
  446. trv_base.rebuild();
  447. model.refresh();
  448. }
  449. /**
  450. * @desc : 트리 SET조회순서 재정렬하여 저장
  451. * @
  452. * @param :
  453. * @return :
  454. * @author : 성미연
  455. * @---------------------------------------------------
  456. */
  457. function fSetRefSeqSaveInfo() {
  458. var lrg_refseq = 0;
  459. var sml_refseq = 0;
  460. var supsetno = "";
  461. var supsetno_before = "";
  462. //조회순서 재셋팅
  463. for (i = 1; i < grd_trv.rows; i++) {
  464. var depth = model.getValue("/root/main/clstreeinfo/clstreelist[" + i + "]/depth");
  465. if (depth == 1 ) { //대분류끼리 일련번호
  466. lrg_refseq++;
  467. model.setValue("/root/main/clstreeinfo/clstreelist[" + i + "]/setrefseq", lrg_refseq);
  468. } else { //같은 대분류의 소분류끼리 일련번호
  469. supsetno_before = model.getValue("/root/main/clstreeinfo/clstreelist[" + i + "]/supsetno");
  470. if (supsetno == supsetno_before) {
  471. sml_refseq++;
  472. } else {
  473. sml_refseq = 1;
  474. }
  475. model.setValue("/root/main/clstreeinfo/clstreelist[" + i + "]/setrefseq", sml_refseq);
  476. supsetno = supsetno_before;
  477. }
  478. model.setValue("/root/main/clstreeinfo/clstreelist[" + i + "]/status", 'u');
  479. }
  480. model.removeNodeset("/root/send/savedata");
  481. model.makeNode("/root/send/savedata");
  482. model.makeValue("/root/send/savedata/setinfo", grd_trv.getUpdateDataAll("u"));
  483. submit("TXMNW11001");
  484. trv_base.rebuild();
  485. }
  486. /*
  487. 인자 :
  488. Integer itemIndex = 트리뷰 아이템 인텍스
  489. String treeItemNodeSet = 트리뷰 아이템 노드셋 xPath
  490. 결과값 : index
  491. 함수설명 : 현재 아이템 인덱스의 자식 아이템중 마지막 아이템 인덱스를 반환 한다.(treeview@itemsettype = "depth" 일 경우 적용 됨)
  492. */
  493. function getLastChildItemIndex(itemIndex, treeItemNodeSet) {
  494. var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
  495. var childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/depth");
  496. while(curDepthValue < childDepthValue) {
  497. itemIndex++;
  498. childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/depth");
  499. }
  500. return itemIndex;
  501. }
  502. /**
  503. * @desc : SET처방정렬순서 클릭할 경우(ABC순, setting순)
  504. * @
  505. * @param :
  506. * @return :
  507. * @author : 성미연
  508. * @---------------------------------------------------
  509. */
  510. function fClickSortFlag(){
  511. if (model.getValue("/root/main/prcpclsinfo/sortflag") == '1') {
  512. grd_setprcplist.colSort(grd_setprcplist.colRef("prcpnm")) = "asc";
  513. grd_setprcplist.sort(1, grd_setprcplist.colRef("prcpnm"), grd_setprcplist.rows-1, grd_setprcplist.colRef("prcpnm")) = "usersort";
  514. //grd_setprcplist.sort(1, grd_setprcplist.colRef("prcpnm"), grd_setprcplist.rows-1, grd_setprcplist.cols-1) = "usersort";
  515. } else {
  516. grd_setprcplist.colSort(grd_setprcplist.colRef("prcprefseq")) = "asc";
  517. grd_setprcplist.sort(1, grd_setprcplist.colRef("prcprefseq"), grd_setprcplist.rows-1, grd_setprcplist.colRef("prcprefseq")) = "usersort";
  518. //grd_setprcplist.sort(1, grd_setprcplist.colRef("prcprefseq"), grd_setprcplist.rows-1, grd_setprcplist.cols-1) = "usersort";
  519. }
  520. grd_setprcplist.gridToInstance();
  521. }
  522. /**
  523. * @desc : SET처방조회순서 상/하로 이동할 경우
  524. * @
  525. * @param :
  526. * @return :
  527. * @author : 성미연
  528. * @---------------------------------------------------
  529. */
  530. function fChgIdxSetPrcpRefInfo(flag) {
  531. model.removeNodeset("/root/temp/updown");
  532. model.makeNode("/root/temp/updown");
  533. var iRow = grd_setprcplist.row;
  534. var sel_idx = iRow;
  535. var trgt_idx = "";
  536. if (flag == "up") {
  537. iRow--;
  538. grd_setprcplist.row = iRow;
  539. trgt_idx = sel_idx - 1;
  540. } else if (flag == "down") {
  541. iRow++;
  542. grd_setprcplist.row = iRow;
  543. trgt_idx = sel_idx + 1;
  544. }
  545. if (model.getValue(sSETPRCPLIST_PATH + "[" + trgt_idx + "]/prcpcd") != "" ) {
  546. var sel_info = instance1.selectSingleNode(sSETPRCPLIST_PATH + "[" + sel_idx + "]");
  547. var trgt_info = instance1.selectSingleNode(sSETPRCPLIST_PATH + "[" + trgt_idx + "]");
  548. model.copyNode("/root/temp/updown", trgt_info);
  549. model.copyNode(sSETPRCPLIST_PATH + "[" + trgt_idx + "]", sel_info);
  550. model.copyNode(sSETPRCPLIST_PATH + "[" + sel_idx + "]", "/root/temp/updown");
  551. } else {
  552. grd_setprcplist.row = sel_idx;
  553. }
  554. grd_setprcplist.rebuildStyle();
  555. //SET 처방리스트에서 청구주기가 월일 경우 파란색
  556. for ( i = 1; i<= getNodesetCount(sSETPRCPLIST_PATH); i++) {
  557. var tempcol10 = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/tempcol10");
  558. if (tempcol10 == "4")
  559. grd_setprcplist.rowStyle(i, "data", "color") = "#0000ff";
  560. }
  561. grd_setprcplist.refresh();
  562. }
  563. /**
  564. * @desc : SET처방 리스트 용법 클릭시 팝업
  565. * @
  566. * @param :
  567. * @return :
  568. * @author : 성미연
  569. * @---------------------------------------------------
  570. */
  571. function fClickDrugMthd(){
  572. var currow = grd_setprcplist.row;
  573. if(currow < 1){
  574. return;
  575. }
  576. var prcpclscd = model.getValue(sSETPRCPLIST_PATH + "[" + currow + "]/prcpclscd");
  577. if((prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") && grd_setprcplist.col == grd_setprcplist.colRef("drugmthdspccdnm")
  578. && model.getValue(sSETPRCPLIST_PATH + "[" + grd_setprcplist.row + "]/status") == "I"){
  579. setParameter("srchRow", grd_setprcplist.row);
  580. setParameter("GridPath", sSETPRCPLIST_PATH);
  581. modal("SPMNW11200");
  582. }
  583. }
  584. /**
  585. * @desc : SET처방리스트 클릭시 삭제컬럼 체크
  586. * @
  587. * @param :
  588. * @return :
  589. * @author : 성미연
  590. * @---------------------------------------------------
  591. */
  592. function fClickSetPrcpStat(){
  593. if(isDataCell()){
  594. if (grd_setprcplist.row < 1){
  595. return;
  596. }
  597. //삭제체크 클릭시
  598. if(grd_setprcplist.col == grd_setprcplist.colRef("tempcol8")){ //삭제버튼 클릭
  599. var status = grd_setprcplist.valueMatrix(grd_setprcplist.row, grd_setprcplist.colRef("status"));
  600. if(status == "I"){ //신규인 경우 바로 삭제
  601. model.removeNode(sSETPRCPLIST_PATH + "[" + grd_setprcplist.row + "]");
  602. }else if(status =="U" || status == "-"){ //신규가 아닌 경우, D상태 처리
  603. model.setValue(sSETPRCPLIST_PATH+ "[" + grd_setprcplist.row + "]/status", "D"); //삭제
  604. }else if(status == "D"){
  605. model.setValue(sSETPRCPLIST_PATH + "[" + grd_setprcplist.row + "]/status", "-"); //수정
  606. }
  607. }
  608. /*
  609. else if(grd_setprcplist.col == grd_setprcplist.colRef("opansflagcd")){ //수술유형(수술처방만 수정)
  610. if(model.getValue(sSETPRCPLIST_PATH + "[" + grd_setprcplist.row + "]/prcpclscd") == "H2"){
  611. grd_setprcplist.colDisabled(grd_setprcplist.colRef("opansflagcd")) = true;
  612. }else{
  613. grd_setprcplist.colDisabled(grd_setprcplist.colRef("opansflagcd")) = false;
  614. }
  615. }
  616. */
  617. model.refresh();
  618. grd_setprcplist.editCell();
  619. }
  620. }
  621. /**
  622. * @desc : SET처방 저장
  623. * @
  624. * @param :
  625. * @return :
  626. * @author : 성미연
  627. * @---------------------------------------------------
  628. */
  629. function fSavePrmsPrcp(){
  630. if (instance1.selectSingleNode("/root/main/prcpset").xml == instance1.selectSingleNode("/root/temp/prcpset").xml) {
  631. messageBox("변경된 데이터가 ","I004");
  632. return;
  633. } else {
  634. var prcprefseq = 1;
  635. var prcpdeptcd = "";
  636. if (model.getValue("/root/main/cond/setclscd") == 'N') { //공통일 경우
  637. prcpdeptcd = 'N';
  638. } else { //부서일 경우
  639. prcpdeptcd = model.getValue("/root/main/cond/settrgtcd");
  640. }
  641. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  642. var settypecd = model.getValue("/root/main/prcpclsinfo/settypecd");
  643. var prcppkspec = setno + "|" + settypecd + "|" + "0";
  644. model.makeNode("root/err/result");
  645. for(var i = 1; i < grd_setprcplist.rows; i++){
  646. var status = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/status");
  647. var prcpclscd = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/prcpclscd");
  648. var drugmthdspccd = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/drugmthdspccd");
  649. var drugmthdspccdnm = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/drugmthdspccdnm");
  650. var prcpno = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/prcprefseq");
  651. var prcpcd = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/prcpcd");
  652. var prcpnm = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/prcpnm");
  653. //약,주사 처방 중에 용법이 없을 경우 에러리스트
  654. if("A2" == prcpclscd || "A4" == prcpclscd || "A6" == prcpclscd){
  655. if(drugmthdspccd == "-" || drugmthdspccdnm == "-" || drugmthdspccdnm == " " || drugmthdspccdnm == "") {
  656. model.makeValue("/root/err/errresult/prcperrlist/prcpno", prcpno);
  657. model.makeValue("/root/err/errresult/prcperrlist/prcpcd", prcpcd);
  658. model.makeValue("/root/err/errresult/prcperrlist/prcpnm", prcpnm);
  659. model.makeValue("/root/err/errresult/prcperrlist/prcperr", "용법이 존재하지 않습니다.");
  660. model.duplicate("/root/err/result","/root/err/errresult/prcperrlist");
  661. }
  662. }
  663. if(status == "I"){
  664. prcprefseq++;
  665. model.setValue(sSETPRCPLIST_PATH + "[" + i + "]/prcppkspec", prcppkspec);
  666. model.setValue(sSETPRCPLIST_PATH + "[" + i + "]/prcprefseq", prcprefseq);
  667. model.setValue(sSETPRCPLIST_PATH + "[" + i + "]/tempcol4" , prcpdeptcd); //set등록부서
  668. }else if(status == "U"){
  669. prcprefseq++;
  670. model.setValue(sSETPRCPLIST_PATH + "[" + i + "]/prcprefseq", prcprefseq);
  671. }else if(status == "D"){
  672. }else{ //status = '-'
  673. prcprefseq++;
  674. model.setValue(sSETPRCPLIST_PATH + "[" + i + "]/status", "U");
  675. model.setValue(sSETPRCPLIST_PATH + "[" + i + "]/prcprefseq", prcprefseq);
  676. }
  677. }
  678. model.removeNodeset("/root/send/savedata");
  679. model.makeValue("/root/send/savedata/prmsdata", getNodeListCSV(model.instances(0).selectNodes(sSETPRCPLIST_PATH)));
  680. if (getNodesetCount ("/root/err/result/prcperrlist") > 0 ) {
  681. var xpt = window.screenleft + 100;
  682. var ypt = window.screenTop + 50;
  683. var coord = getRelativeCoordinate ( xpt, ypt );
  684. var mon = coord[0];
  685. xpt = coord[1];
  686. ypt = coord[2];
  687. open( "SPMNW11000", mon, xpt, ypt, "prcpdetl", "/root/err/result", "/root/result", "", false );
  688. model.removeNodeset("/root/err");
  689. } else {
  690. if(submit("TXMNW11002")){ //처방리스트 저장
  691. model.setValue("/root/main/prcpclsinfo/sortflag", '2');
  692. //SET 처방리스트에서 청구주기가 월일 경우 파란색
  693. for ( i = 1; i<= getNodesetCount(sSETPRCPLIST_PATH); i++) {
  694. var tempcol10 = model.getValue(sSETPRCPLIST_PATH + "[" + i + "]/tempcol10");
  695. if (tempcol10 == "4")
  696. grd_setprcplist.rowStyle(i, "data", "color") = "#0000ff";
  697. }
  698. }
  699. }
  700. model.refresh();
  701. }
  702. }
  703. /**
  704. * @desc : SET처방추가 메뉴 클릭시
  705. * @
  706. * @param :
  707. * @return :
  708. * @author : 성미연
  709. * @---------------------------------------------------
  710. */
  711. function fPopAddPrcp() {
  712. if (model.getValue("/root/main/prcpclsinfo/setnm") == "") {
  713. fPrcpListRef("1");
  714. }
  715. if (model.getValue("/root/main/cond/setclscd") == "N"){ //공통
  716. setParameter("scrnflag", "set");
  717. setParameter("rtnpath", "/root/main/prcpset/prcplist");
  718. setParameter("srchParam", "srchPRCD");
  719. }else{ //부서
  720. setParameter("scrnflag", "set");
  721. setParameter("rtnpath", "/root/main/prcpset/prcplist");
  722. setParameter("srchParam", "srchSET");
  723. }
  724. open("SPMNW11100","1","100","500");
  725. }
  726. /**
  727. * @desc : SET처방복사 메뉴 클릭시
  728. * @
  729. * @param :
  730. * @return :
  731. * @author : 성미연
  732. * @---------------------------------------------------
  733. */
  734. function fPopCopyPrcp() {
  735. if (model.getValue("/root/main/prcpclsinfo/setnm") == "") {
  736. fPrcpListRef("1");
  737. }
  738. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  739. setParameter("setclscd", model.getValue("/root/main/cond/setclscd"));
  740. setParameter("settrgtcd", model.getValue("/root/main/cond/settrgtcd"));
  741. setParameter("lrgsetno", model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/supsetno"));
  742. setParameter("smlsetno", setno);
  743. setParameter("setinfo", getNodeListCSV(model.instances(0).selectNodes("/root/main/clstreeinfo/clstreelist")));
  744. setParameter("prcpinfo", getNodeListCSV(model.instances(0).selectNodes(sSETPRCPLIST_PATH)));
  745. modal("SPMNW11600","1","15","128", "SPMNW11600", "/root/init/deptinfo", "/root/init/deptinfo"); //부서리스트 copy
  746. }
  747. /**
  748. * @desc : 간호약속처방 등록조회 버튼 클릭시
  749. * @
  750. * @param :
  751. * @return :
  752. * @author : 성미연
  753. * @---------------------------------------------------
  754. */
  755. function fPopAddSetPrcp() {
  756. var setno = model.getValue("/root/main/prcpclsinfo/setno");
  757. var depth = model.getValue("/root/main/clstreeinfo/clstreelist[setno='" + setno + "']/depth");
  758. if (depth != 2) {
  759. messageBox("추가할 소분류명을 선택하세요.", "C");
  760. return;
  761. }else{
  762. if (model.getValue("/root/main/prcpclsinfo/setnm") == "") {
  763. fPrcpListRef("1");
  764. }
  765. }
  766. setParameter("scrnflag", "set");
  767. setParameter("rtnpath", "/root/main/prcpset/prcplist");
  768. setParameter("srchParam", "srchPPDS");
  769. open("SPMNW11100","1","100","500");
  770. }
  771. /**
  772. * @desc : 트리 펼침, 닫힘 기능
  773. * @
  774. * @param :
  775. * @return :
  776. * @author : 성미연
  777. * @---------------------------------------------------
  778. */
  779. function fSetTrvToggle() {
  780. if ( btn_trvzoom.attribute("text") == "닫힘" ) {
  781. trv_base.expandDepth = 0;
  782. btn_trvzoom.attribute("text") = "펼침";
  783. } else {
  784. trv_base.expandDepth = -1;
  785. btn_trvzoom.attribute("text") = "닫힘";
  786. }
  787. model.refresh();
  788. }
  789. /*
  790. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  791. 간호처방 기준자료관리 ( SMMNW11600_기준자료관리(2).xrw - JScript )
  792. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  793. */
  794. //원본 그리드
  795. var sANO_DEPTLIST_PATH = "/root/main/anodeptinfo/deptinfo/deptlist"; //원본 부서리스트
  796. var sANO_LRGSETLIST_PATH = "/root/main/anodeptinfo/anolrgsetinfo/lrgsetlist"; //원본 대분류 SET리스트
  797. var sANO_SMLSETLIST_PATH = "/root/main/anodeptinfo/anosmlsetinfo/smlsetlist"; //원본 소분류 SET리스트
  798. var sANO_SETPRCPLIST_PATH = "/root/main/anodeptinfo/anosetprcpinfo/prcplist"; //원본 처방 SET 리스트
  799. //사본 그리드
  800. var sOWN_DEPTLIST_PATH = "/root/main/owndeptinfo/deptinfo/deptlist"; //사본 부서리스트
  801. var sOWN_LRGSETLIST_PATH = "/root/main/owndeptinfo/ownlrgsetinfo/lrgsetlist"; //사본 대분류 SET리스트
  802. var sOWN_SMLSETLIST_PATH = "/root/main/owndeptinfo/ownsmlsetinfo/smlsetlist"; //사본 소분류 SET리스트
  803. var sOWN_SETPRCPLIST_PATH = "/root/main/owndeptinfo/ownsetprcpinfo/prcplist"; //사본 처방 SET 리스트
  804. /**
  805. * @desc : 화면 초기화
  806. * @
  807. * @param :
  808. * @return :
  809. * @author : 성미연
  810. * @---------------------------------------------------
  811. */
  812. function fCopySetInit(){
  813. if (checkOpener()) {
  814. var setclscd = opener.javascript.getParameter("setclscd");
  815. var settrgtcd = opener.javascript.getParameter("settrgtcd");
  816. var lrgsetno = opener.javascript.getParameter("lrgsetno");
  817. var smlsetno = opener.javascript.getParameter("smlsetno");
  818. var setinfo = opener.javascript.getParameter("setinfo");
  819. var prcpinfo = opener.javascript.getParameter("prcpinfo");
  820. model.removeNodeset(sANO_SETPRCPLIST_PATH);
  821. model.removeNodeset(sOWN_LRGSETLIST_PATH);
  822. model.removeNodeset(sOWN_SMLSETLIST_PATH);
  823. model.removeNodeset(sOWN_SETPRCPLIST_PATH);
  824. //콤보리스트 셋팅(급비, 수술종류)
  825. zbcfGetCodeList(new Array("M0029", "M0007"), new Array("/root/init/comcodelist/payflag_cmblist", "/root/init/comcodelist/opflag_cmblist"), true);
  826. //전체선택 체크박스 생성_20090310(ByJA)
  827. grd_anolrgset.fixedcellcheckbox(0,grd_anolrgset.colRef("flag")) = true; // 원본 대분류명
  828. grd_anosmlset.fixedcellcheckbox(0,grd_anosmlset.colRef("flag")) = true; // 원본 소분류명
  829. /***************** 원본 *****************/
  830. model.setValue("/root/main/anodeptinfo/anocond/setclscd", setclscd);
  831. if (model.getValue("/root/main/anodeptinfo/anocond/setclscd") == 'W') {
  832. copyNodesetType("/root/main/anodeptinfo/deptinfo", "/root/init/deptinfo", "replace"); //원본 부서명 copy
  833. } else {
  834. //부서명에 공통 표기
  835. model.setValue("/root/main/anodeptinfo/anocond/setclscd", 'N');
  836. model.removeNodeset(sANO_DEPTLIST_PATH);
  837. model.makeNode(sANO_DEPTLIST_PATH);
  838. model.makeValue(sANO_DEPTLIST_PATH + "/deptcd", 'ALL');
  839. model.makeValue(sANO_DEPTLIST_PATH + "/depthngnm", '공통');
  840. }
  841. grd_anodept.refresh();
  842. model.setValue("/root/main/anodeptinfo/anocond/settrgtcd", settrgtcd);
  843. model.setValue("/root/main/anodeptinfo/anocond/settypecd", 'P');
  844. model.setValue("/root/main/anodeptinfo/anocond/setkindcd", 'D');
  845. //원본 대분류, 소분류명 그리드 복사
  846. setCSVToNode("/root/temp/clstreeinfo", setinfo, "clstreelist");
  847. var lrg_idx = 1;
  848. var sml_idx = 1;
  849. for (i = 1; i <= getNodesetCount("/root/temp/clstreeinfo/clstreelist"); i++) {
  850. //대분류 그리드 복사
  851. if (model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/depth") == 1 ) {
  852. copyNodesetType(sANO_LRGSETLIST_PATH, "/root/temp/lrgsetlist", "after"); //원본 부서명 copy
  853. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/setnm", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setnm"));
  854. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/setno", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setno"));
  855. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/supsetno", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/supsetno"));
  856. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/setrefseq", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setrefseq"));
  857. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/setkindcd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setkindcd"));
  858. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/setclscd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setclscd"));
  859. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/settrgtcd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/settrgtcd"));
  860. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/settypecd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/settypecd"));
  861. model.makeValue(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]/instcd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/instcd"));
  862. lrg_idx++;
  863. }
  864. //소분류 그리드 복사
  865. if (model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/depth") == 2 && model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/supsetno") == lrgsetno ) {
  866. copyNodesetType(sANO_SMLSETLIST_PATH, "/root/temp/smlsetlist", "after"); //원본 부서명 copy
  867. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/setnm", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setnm"));
  868. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/setno", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setno"));
  869. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/supsetno", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/supsetno"));
  870. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/setrefseq", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setrefseq"));
  871. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/setkindcd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setkindcd"));
  872. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/setclscd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/setclscd"));
  873. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/settrgtcd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/settrgtcd"));
  874. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/settypecd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/settypecd"));
  875. model.makeValue(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]/instcd", model.getValue("/root/temp/clstreeinfo/clstreelist[" + i + "]/instcd"));
  876. sml_idx++;
  877. }
  878. }
  879. model.removeNodeset(sANO_LRGSETLIST_PATH + "[" + lrg_idx + "]");
  880. model.removeNodeset(sANO_SMLSETLIST_PATH + "[" + sml_idx + "]");
  881. model.refresh();
  882. //원본 부서명, 대/소분류명에 focus
  883. var deptidx = grd_anodept.findRow(settrgtcd, 1, 1);
  884. var lrgidx = grd_anolrgset.findRow(lrgsetno, 1, 2);
  885. var smlidx = grd_anosmlset.findRow(smlsetno, 1, 2);
  886. grd_anodept.row = deptidx;
  887. grd_anodept.topRow = deptidx;
  888. grd_anolrgset.row = lrgidx;
  889. grd_anolrgset.topRow = lrgidx;
  890. grd_anosmlset.row = smlidx;
  891. grd_anosmlset.topRow = smlidx;
  892. model.setValue("/root/main/anodeptinfo/anosetnm/lrgsetnm", model.getValue(sANO_LRGSETLIST_PATH + "[" + lrgidx + "]/setnm"));
  893. model.setValue("/root/main/anodeptinfo/anosetnm/smlsetnm", model.getValue(sANO_SMLSETLIST_PATH + "[" + smlidx + "]/setnm"));
  894. //원본 처방목록 그리드 복사
  895. setCSVToNode("/root/main/anodeptinfo/anosetprcpinfo", prcpinfo, "prcplist");
  896. grd_anosetprcplist.refresh();
  897. //SET 처방리스트에서 청구주기가 월일 경우 파란색
  898. for ( i = 1; i<= getNodesetCount(sANO_SETPRCPLIST_PATH); i++) {
  899. var tempcol10 = model.getValue(sANO_SETPRCPLIST_PATH + "[" + i + "]/tempcol10");
  900. if (tempcol10 == "4")
  901. grd_anosetprcplist.rowStyle(i, "data", "color") = "#0000ff";
  902. }
  903. /***************** 사본 *****************/
  904. submit("TRMNW11001"); //부서콤보 조회
  905. model.setValue("/root/main/owndeptinfo/owncond/setclscd", 'W');
  906. model.setValue("/root/main/owndeptinfo/owncond/settrgtcd", getUserInfo("dutplcecd"));
  907. model.setValue("/root/main/owndeptinfo/owncond/settypecd", 'P');
  908. model.setValue("/root/main/owndeptinfo/owncond/setkindcd", 'D');
  909. model.setValue("/root/main/owndeptinfo/deptinfo/deptlist/deptcd", getUserInfo("dutplcecd"));
  910. model.refresh();
  911. //사본(자신이 속한 부서) 대분류명 조회
  912. fOwnLrgSetListRef();
  913. } else {
  914. messageBox("상위화면이 변경되어 데이터를 전달할 수 ", "I004");
  915. }
  916. }
  917. /**
  918. * @desc : 원본 대분류명 리스트 체크
  919. * @
  920. * @param :
  921. * @return :
  922. * @author : 성미연
  923. * @---------------------------------------------------
  924. */
  925. function fChkAnoLrgSet() {
  926. if (grd_anolrgset.row > 0 && grd_anolrgset.col == 0 && model.getValue(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/flag") == "true") {
  927. if (grd_anosmlset.findRow("true", 1, 0) != -1 || grd_anosetprcplist.findRow("true", 1, 0) != -1) { //없으면 -1, 있으면 해당 row 리턴
  928. messageBox("대분류명을 선택","E001");
  929. model.resetInstanceNode(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/flag");
  930. model.refresh();
  931. }
  932. }
  933. }
  934. /**
  935. * @desc : 원본 소분류명 리스트 체크
  936. * @
  937. * @param :
  938. * @return :
  939. * @author : 성미연
  940. * @---------------------------------------------------
  941. */
  942. function fChkAnoSmlSet() {
  943. if (grd_anosmlset.row > 0 && grd_anosmlset.col == 0 && model.getValue(sANO_SMLSETLIST_PATH + "[" + grd_anosmlset.row + "]/flag") == "true") {
  944. if (grd_anolrgset.findRow("true", 1, 0) != -1 ||grd_anosetprcplist.findRow("true", 1, 0) != -1) { //없으면 -1, 있으면 해당 row 리턴
  945. messageBox("소분류명을 선택","E001");
  946. model.resetInstanceNode(sANO_SMLSETLIST_PATH + "[" + grd_anosmlset.row + "]/flag");
  947. model.refresh();
  948. }
  949. }
  950. }
  951. /**
  952. * @desc : 원본 처방목록 리스트 체크
  953. * @
  954. * @param :
  955. * @return :
  956. * @author : 성미연
  957. * @---------------------------------------------------
  958. */
  959. function fChkAnoSetPrcp() {
  960. if (grd_anosetprcplist.row > 0 && grd_anosetprcplist.col == 0 && model.getValue(sANO_SETPRCPLIST_PATH + "[" + grd_anosetprcplist.row + "]/tempcol8") == "true") {
  961. if (grd_anolrgset.findRow("true", 1, 0) != -1 ||grd_anosmlset.findRow("true", 1, 0) != -1) { //없으면 -1, 있으면 해당 row 리턴
  962. messageBox("처방목록을 선택","E001");
  963. model.resetInstanceNode(sANO_SETPRCPLIST_PATH + "[" + grd_anosetprcplist.row + "]/tempcol8");
  964. model.refresh();
  965. }
  966. }
  967. }
  968. /**
  969. * @desc : 원본 대분류명 리스트 조회
  970. * @
  971. * @param :
  972. * @return :
  973. * @author : 성미연
  974. * @---------------------------------------------------
  975. */
  976. function fAnoLrgSetListRef() {
  977. if (isDataCell() == true ) {
  978. grd_anodept.rebuildStyle();
  979. grd_anolrgset.rebuildStyle();
  980. grd_anosmlset.rebuildStyle();
  981. grd_anolrgset.fixedcellischeck(0, grd_anolrgset.colRef("flag")) = false; // 원본 대분류 전체선택 체크박스 초기화_20090310(ByJA)
  982. grd_anosmlset.fixedcellischeck(0, grd_anosmlset.colRef("flag")) = false; // 원본 소분류 전체선택 체크박스 초기화_20090310(ByJA)
  983. model.resetInstanceNode("/root/main/anodeptinfo/anosetnm/lrgsetnm");
  984. model.resetInstanceNode("/root/main/anodeptinfo/anosetnm/smlsetnm");
  985. model.setValue("/root/main/anodeptinfo/anocond/settrgtcd", model.getValue(sANO_DEPTLIST_PATH + "[" + grd_anodept.row + "]/deptcd"));
  986. model.setValue("/root/main/anodeptinfo/anocond/settypecd", 'P');
  987. model.setValue("/root/main/anodeptinfo/anocond/setkindcd", 'D');
  988. model.refresh();
  989. model.removeNodeset("/root/send/reqdata");
  990. model.makeNode("/root/send/reqdata");
  991. model.copyNode("/root/send/reqdata", "/root/main/anodeptinfo/anocond");
  992. model.makeValue("/root/send/reqdata/clsflag", 'lrg');
  993. submit("TRMNW11601"); //대분류명 조회
  994. model.removeNodeset(sANO_SMLSETLIST_PATH);
  995. model.removeNodeset(sANO_SETPRCPLIST_PATH);
  996. model.refresh();
  997. }
  998. }
  999. /**
  1000. * @desc : 원본 소분류명 리스트 조회
  1001. * @
  1002. * @param :
  1003. * @return :
  1004. * @author : 성미연
  1005. * @---------------------------------------------------
  1006. */
  1007. function fAnoSmlSetListRef() {
  1008. if (isDataCell() == true && grd_anolrgset.col > 0 ) {
  1009. grd_anolrgset.rebuildStyle();
  1010. grd_anosmlset.rebuildStyle();
  1011. grd_anosmlset.fixedcellischeck(0, grd_anosmlset.colRef("flag")) = false; // 원본 소분류 전체선택 체크박스 초기화_20090310(ByJA)
  1012. model.setValue("/root/main/anodeptinfo/anosetnm/lrgsetnm", model.getValue(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/setnm"));
  1013. model.setValue("/root/main/anodeptinfo/anosetnm/lrgsetno", model.getValue(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/setno"));
  1014. model.resetInstanceNode("/root/main/anodeptinfo/anosetnm/smlsetnm");
  1015. model.resetInstanceNode("/root/main/anodeptinfo/anosetnm/smlsetno");
  1016. model.removeNodeset("/root/send/reqdata");
  1017. model.makeNode("/root/send/reqdata");
  1018. model.copyNode("/root/send/reqdata", "/root/main/anodeptinfo/anocond");
  1019. model.makeValue("/root/send/reqdata/clsflag", 'sml');
  1020. model.makeValue("/root/send/reqdata/setno", model.getValue(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/setno"));
  1021. submit("TRMNW11602"); //소분류명 조회
  1022. model.removeNodeset(sANO_SETPRCPLIST_PATH);
  1023. model.refresh();
  1024. }
  1025. }
  1026. /**
  1027. * @desc : 원본 처방 리스트 조회
  1028. * @
  1029. * @param :
  1030. * @return :
  1031. * @author : 성미연
  1032. * @---------------------------------------------------
  1033. */
  1034. function fAnoSetPrcpListRef() {
  1035. if (isDataCell() == true && grd_anosmlset.col > 0 ) {
  1036. grd_anosmlset.rebuildStyle();
  1037. //상단 대분류, 소분류명 표시
  1038. model.setValue("/root/main/anodeptinfo/anosetnm/lrgsetnm", model.getValue(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/setnm"));
  1039. model.setValue("/root/main/anodeptinfo/anosetnm/lrgsetno", model.getValue(sANO_LRGSETLIST_PATH + "[" + grd_anolrgset.row + "]/setno"));
  1040. model.setValue("/root/main/anodeptinfo/anosetnm/smlsetnm", model.getValue(sANO_SMLSETLIST_PATH + "[" + grd_anosmlset.row + "]/setnm"));
  1041. model.setValue("/root/main/anodeptinfo/anosetnm/smlsetno", model.getValue(sANO_SMLSETLIST_PATH + "[" + grd_anosmlset.row + "]/setno"));
  1042. model.removeNodeset("/root/send/reqdata");
  1043. model.makeNode("/root/send/reqdata");
  1044. model.copyNode("/root/send/reqdata", "/root/main/anodeptinfo/anocond");
  1045. model.makeValue("/root/send/reqdata/setno", model.getValue(sANO_SMLSETLIST_PATH + "[" + grd_anosmlset.row + "]/setno"));
  1046. grd_anosetprcplist.rebuildStyle();
  1047. if(submit("TRMNW11603")){ //처방조회
  1048. //SET 처방리스트에서 청구주기가 월일 경우 파란색
  1049. for ( i = 1; i<= getNodesetCount(sANO_SETPRCPLIST_PATH); i++) {
  1050. var tempcol10 = model.getValue(sANO_SETPRCPLIST_PATH + "[" + i + "]/tempcol10");
  1051. if (tempcol10 == "4")
  1052. grd_anosetprcplist.rowStyle(i, "data", "color") = "#0000ff";
  1053. }
  1054. grd_anosetprcplist.refresh();
  1055. }
  1056. }
  1057. }
  1058. /**
  1059. * @desc : 사본 대분류명 리스트 조회
  1060. * @
  1061. * @param :
  1062. * @return :
  1063. * @author : 성미연
  1064. * @---------------------------------------------------
  1065. */
  1066. function fOwnLrgSetListRef() {
  1067. model.removeNodeset("/root/send/reqdata");
  1068. model.makeNode("/root/send/reqdata");
  1069. model.copyNode("/root/send/reqdata", "/root/main/owndeptinfo/owncond");
  1070. model.makeValue("/root/send/reqdata/clsflag", 'lrg');
  1071. submit("TRMNW11604");
  1072. }
  1073. /**
  1074. * @desc : 사본 소분류명 리스트 조회
  1075. * @
  1076. * @param :
  1077. * @return :
  1078. * @author : 성미연
  1079. * @---------------------------------------------------
  1080. */
  1081. function fOwnSmlSetListRef() {
  1082. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 ||
  1083. grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1084. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항이 있을 경우 조회 안됨
  1085. messageBox("변경된 내용을 저장 후에 조회할 수 있습니다.", "I");
  1086. return;
  1087. } else {
  1088. if (isDataCell() == true ) {
  1089. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setnm"));
  1090. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm_b", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setnm"));
  1091. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetno", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setno"));
  1092. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlsetnm");
  1093. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlsetnm_b");
  1094. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlsetno");
  1095. model.removeNodeset("/root/send/reqdata");
  1096. model.makeNode("/root/send/reqdata");
  1097. model.copyNode("/root/send/reqdata", "/root/main/owndeptinfo/owncond");
  1098. model.makeValue("/root/send/reqdata/clsflag", 'sml');
  1099. // model.makeValue("/root/send/reqdata/setno", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setno"));
  1100. model.makeValue("/root/send/reqdata/setno", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetno"));
  1101. submit("TRMNW11605");
  1102. model.removeNodeset(sOWN_SETPRCPLIST_PATH);
  1103. model.refresh();
  1104. }
  1105. }
  1106. }
  1107. /**
  1108. * @desc : 사본 처방 리스트 조회
  1109. * @
  1110. * @param :
  1111. * @return :
  1112. * @author : 성미연
  1113. * @---------------------------------------------------
  1114. */
  1115. function fOwnSetPrcpListRef() {
  1116. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 ||
  1117. grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1118. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항이 있을 경우 조회 안됨
  1119. messageBox("변경된 내용을 저장 후에 조회할 수 있습니다.", "I");
  1120. return;
  1121. } else {
  1122. //if (isDataCell() == true ) {
  1123. //상단 대분류, 소분류명 표시
  1124. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetnm", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setnm"));
  1125. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetnm_b", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setnm"));
  1126. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetno", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setno"));
  1127. //처방조회
  1128. model.removeNodeset("/root/send/reqdata");
  1129. model.makeNode("/root/send/reqdata");
  1130. model.copyNode("/root/send/reqdata", "/root/main/owndeptinfo/owncond");
  1131. // model.makeValue("/root/send/reqdata/setno", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setno"));
  1132. model.makeValue("/root/send/reqdata/setno", model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetno"));
  1133. model.refresh();
  1134. submit("TRMNW11606");
  1135. //}
  1136. }
  1137. }
  1138. /**
  1139. * @desc : 대/소분류 SET, 처방리스트 복사
  1140. * @
  1141. * @param :
  1142. * @return :
  1143. * @author : 성미연
  1144. * @---------------------------------------------------
  1145. */
  1146. function fCopySetPrcpInfo() {
  1147. if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == "Y" || model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == "Y" || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == "Y"){
  1148. messageBox("변경된 내용을 저장 후에 복사할 수 있습니다.", "I");
  1149. return;
  1150. }
  1151. if ( grd_anolrgset.findRow("true", 1, 0) != -1 ) { //******대분류 복사
  1152. if (grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1) {
  1153. messageBox("신규내용을 저장 후에 복사할 수 있습니다.", "I");
  1154. return;
  1155. } else {
  1156. for (i = 1; i < grd_anolrgset.rows; i++) {
  1157. if (model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/flag") == "true") {
  1158. var lrgsetnm = model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/setnm");
  1159. if (grd_ownlrgset.findRow(lrgsetnm, 1, 1) != -1 ) {
  1160. messageBox("대분류명이","E006");
  1161. return;
  1162. } else {
  1163. grd_ownlrgset.addRow(false);
  1164. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/flag", 'i');
  1165. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setnm", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/setnm"));
  1166. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setno", "");
  1167. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/supsetno", "");
  1168. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setrefseq", "");
  1169. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setkindcd", model.getValue("/root/main/owndeptinfo/owncond/setkindcd"));
  1170. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setclscd", model.getValue("/root/main/owndeptinfo/owncond/setclscd"));
  1171. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/settrgtcd", model.getValue("/root/main/owndeptinfo/owncond/settrgtcd"));
  1172. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/settypecd", model.getValue("/root/main/owndeptinfo/owncond/settypecd"));
  1173. //복사할 해당부서 정보(소분류, 처방목록 조회화기 위해 필요)
  1174. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/anosetno", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/setno"));
  1175. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/anosetkindcd", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/setkindcd"));
  1176. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/anosetclscd", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/setclscd"));
  1177. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/anosettrgtcd", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/settrgtcd"));
  1178. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/anosettypecd", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/settypecd"));
  1179. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/anoinstcd", model.getValue(sANO_LRGSETLIST_PATH + "[" + i + "]/instcd"));
  1180. model.setValue(sANO_LRGSETLIST_PATH + "[" + i + "]/flag", "false"); //체크 초기화
  1181. }
  1182. }
  1183. }
  1184. grd_anolrgset.fixedcellischeck(0, grd_anolrgset.colRef("flag")) = false; // 원본 대분류 전체선택 체크박스 초기화_20090310(ByJA)
  1185. }
  1186. } else if ( grd_anosmlset.findRow("true", 1, 0) != -1 ) { //*****소분류 복사
  1187. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1) {
  1188. messageBox("신규내용을 저장 후에 복사할 수 있습니다.", "I");
  1189. return;
  1190. } else if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm") == "") {
  1191. messageBox("복사될 대분류명을 ", "C002");
  1192. return;
  1193. } else {
  1194. for (i = 1; i < grd_anosmlset.rows; i++) {
  1195. if (model.getValue(sANO_SMLSETLIST_PATH + "[" + i + "]/flag") == "true") {
  1196. var smlsetnm = model.getValue(sANO_SMLSETLIST_PATH + "[" + i + "]/setnm");
  1197. if (grd_ownsmlset.findRow(smlsetnm, 1, 1) != -1 ) {
  1198. messageBox("소분류명이","E006");
  1199. return;
  1200. } else {
  1201. grd_ownsmlset.addRow(false);
  1202. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/flag", 'i');
  1203. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setnm", model.getValue(sANO_SMLSETLIST_PATH + "[" + i + "]/setnm"));
  1204. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setno", "");
  1205. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/supsetno", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetno"));
  1206. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setrefseq", "");
  1207. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setkindcd", model.getValue("/root/main/owndeptinfo/owncond/setkindcd"));
  1208. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setclscd", model.getValue("/root/main/owndeptinfo/owncond/setclscd"));
  1209. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/settrgtcd", model.getValue("/root/main/owndeptinfo/owncond/settrgtcd"));
  1210. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/settypecd", model.getValue("/root/main/owndeptinfo/owncond/settypecd"));
  1211. //복사할 해당부서 정보(처방조회하기 위해 필요)
  1212. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/anosetno", model.getValue(sANO_SMLSETLIST_PATH + "[" + i + "]/setno"));
  1213. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/anosettypecd", model.getValue(sANO_SMLSETLIST_PATH + "[" + i + "]/settypecd"));
  1214. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/anoinstcd", model.getValue(sANO_SMLSETLIST_PATH + "[" + i + "]/instcd"));
  1215. model.setValue(sANO_SMLSETLIST_PATH + "[" + i + "]/flag", "false"); //체크 초기화
  1216. }
  1217. }
  1218. }
  1219. grd_anosmlset.fixedcellischeck(0, grd_anosmlset.colRef("flag")) = false; // 원본 소분류 전체선택 체크박스 초기화_20090310(ByJA)
  1220. }
  1221. } else if (grd_anosetprcplist.findRow("true", 1, 0) != -1) { //*****처방복사
  1222. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('i', 1, 0) != -1) {
  1223. messageBox("신규내용을 저장 후에 복사할 수 있습니다.", "I");
  1224. return;
  1225. }else if (model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm") == "") {
  1226. messageBox("복사될 소분류명을 ", "C002");
  1227. return;
  1228. } else {
  1229. for (i = 1; i < grd_anosetprcplist.rows; i++) {
  1230. if (model.getValue(sANO_SETPRCPLIST_PATH + "[" + i + "]/tempcol8") == "true") {
  1231. var setno = model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetno");
  1232. var settypecd = model.getValue("/root/main/owndeptinfo/owncond/settypecd");
  1233. var setcdno = "";
  1234. var prcpdeptcd = model.getValue("/root/main/owndeptinfo/owncond/settrgtcd");
  1235. var prcppkspec = setno + "|" + settypecd + "|" + setcdno + "|" + prcpdeptcd;
  1236. model.setValue(sANO_SETPRCPLIST_PATH + "[" + i + "]/tempcol8", "false"); //체크 초기화
  1237. //처방목록 복사
  1238. mnwAddNursPrcp(sANO_SETPRCPLIST_PATH, "/root/main/owndeptinfo/ownsetprcpinfo", i, "");
  1239. grd_ownsetprcplist.refresh();
  1240. model.setValue(sOWN_SETPRCPLIST_PATH + "[" + (grd_ownsetprcplist.rows-1) + "]/status", 'i');
  1241. model.setValue(sOWN_SETPRCPLIST_PATH + "[" + (grd_ownsetprcplist.rows-1) + "]/prcppkspec", prcppkspec);
  1242. }
  1243. }
  1244. }
  1245. } else {
  1246. messageBox("복사할 항목을 ", "C002");
  1247. return;
  1248. }
  1249. model.refresh();
  1250. }
  1251. /**
  1252. * @desc : 대분류 SET조회순서 상/하로 이동할 경우
  1253. * @
  1254. * @param :
  1255. * @return :
  1256. * @author : 성미연
  1257. * @---------------------------------------------------
  1258. */
  1259. function fChgIdxLrgSetRefInfo(flag) {
  1260. if (grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1261. grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1262. model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1263. messageBox("변경된 내용을 저장 후에 이동할 수 있습니다.", "I");
  1264. return;
  1265. } else {
  1266. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag", 'Y'); //그리드 변화여부
  1267. model.removeNodeset("/root/temp/updown");
  1268. model.makeNode("/root/temp/updown");
  1269. var iRow = grd_ownlrgset.row;
  1270. var sel_idx = iRow;
  1271. var trgt_idx = "";
  1272. if (flag == "up") {
  1273. iRow--;
  1274. grd_ownlrgset.row = iRow;
  1275. trgt_idx = sel_idx - 1;
  1276. } else if (flag == "down") {
  1277. iRow++;
  1278. grd_ownlrgset.row = iRow;
  1279. trgt_idx = sel_idx + 1;
  1280. }
  1281. if (model.getValue(sOWN_LRGSETLIST_PATH + "[" + trgt_idx + "]/settrgtcd") != "") {
  1282. var sel_info = instance1.selectSingleNode(sOWN_LRGSETLIST_PATH + "[" + sel_idx + "]");
  1283. var trgt_info = instance1.selectSingleNode(sOWN_LRGSETLIST_PATH + "[" + trgt_idx + "]");
  1284. model.copyNode("/root/temp/updown", trgt_info);
  1285. model.copyNode(sOWN_LRGSETLIST_PATH + "[" + trgt_idx + "]", sel_info);
  1286. model.copyNode(sOWN_LRGSETLIST_PATH + "[" + sel_idx + "]", "/root/temp/updown");
  1287. } else {
  1288. grd_ownlrgset.row = sel_idx;
  1289. }
  1290. grd_ownlrgset.refresh();
  1291. }
  1292. }
  1293. /**
  1294. * @desc : 소분류 SET조회순서 상/하로 이동할 경우
  1295. * @
  1296. * @param :
  1297. * @return :
  1298. * @author : 성미연
  1299. * @---------------------------------------------------
  1300. */
  1301. function fChgIdxSmlSetRefInfo(flag) {
  1302. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1303. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1304. model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1305. messageBox("변경된 내용을 저장 후에 이동할 수 있습니다.", "I");
  1306. return;
  1307. } else {
  1308. model.setValue("/root/main/owndeptinfo/ownsetnm/smlchgflag", 'Y'); //그리드 변화여부
  1309. model.removeNodeset("/root/temp/updown");
  1310. model.makeNode("/root/temp/updown");
  1311. var iRow = grd_ownsmlset.row;
  1312. var sel_idx = iRow;
  1313. var trgt_idx = "";
  1314. if (flag == "up") {
  1315. iRow--;
  1316. grd_ownsmlset.row = iRow;
  1317. trgt_idx = sel_idx - 1;
  1318. } else if (flag == "down") {
  1319. iRow++;
  1320. grd_ownsmlset.row = iRow;
  1321. trgt_idx = sel_idx + 1;
  1322. }
  1323. if (model.getValue(sOWN_SMLSETLIST_PATH + "[" + trgt_idx + "]/settrgtcd") != "") {
  1324. var sel_info = instance1.selectSingleNode(sOWN_SMLSETLIST_PATH + "[" + sel_idx + "]");
  1325. var trgt_info = instance1.selectSingleNode(sOWN_SMLSETLIST_PATH + "[" + trgt_idx + "]");
  1326. model.copyNode("/root/temp/updown", trgt_info);
  1327. model.copyNode(sOWN_SMLSETLIST_PATH + "[" + trgt_idx + "]", sel_info);
  1328. model.copyNode(sOWN_SMLSETLIST_PATH + "[" + sel_idx + "]", "/root/temp/updown");
  1329. } else {
  1330. grd_ownsmlset.row = sel_idx;
  1331. }
  1332. grd_ownsmlset.refresh();
  1333. }
  1334. }
  1335. /**
  1336. * @desc : 처방 조회순서 상/하로 이동할 경우
  1337. * @
  1338. * @param :
  1339. * @return :
  1340. * @author : 성미연
  1341. * @---------------------------------------------------
  1342. */
  1343. function fChgIdxPrcpRefInfo(flag) {
  1344. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 ||
  1345. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsmlset.findRow('d', 1, 0) != -1 ||
  1346. model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1347. messageBox("변경된 내용을 저장 후에 이동할 수 있습니다.", "I");
  1348. return;
  1349. } else {
  1350. model.setValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag", 'Y'); //그리드 변화여부
  1351. model.removeNodeset("/root/temp/updown");
  1352. model.makeNode("/root/temp/updown");
  1353. var iRow = grd_ownsetprcplist.row;
  1354. var sel_idx = iRow;
  1355. var trgt_idx = "";
  1356. if (flag == "up") {
  1357. iRow--;
  1358. grd_ownsetprcplist.row = iRow;
  1359. trgt_idx = sel_idx - 1;
  1360. } else if (flag == "down") {
  1361. iRow++;
  1362. grd_ownsetprcplist.row = iRow;
  1363. trgt_idx = sel_idx + 1;
  1364. }
  1365. if (model.getValue(sOWN_SETPRCPLIST_PATH + "[" + trgt_idx + "]/prcpcd") != "") {
  1366. var sel_info = instance1.selectSingleNode(sOWN_SETPRCPLIST_PATH + "[" + sel_idx + "]");
  1367. var trgt_info = instance1.selectSingleNode(sOWN_SETPRCPLIST_PATH + "[" + trgt_idx + "]");
  1368. model.copyNode("/root/temp/updown", trgt_info);
  1369. model.copyNode(sOWN_SETPRCPLIST_PATH + "[" + trgt_idx + "]", sel_info);
  1370. model.copyNode(sOWN_SETPRCPLIST_PATH + "[" + sel_idx + "]", "/root/temp/updown");
  1371. } else {
  1372. grd_ownsetprcplist.row = sel_idx;
  1373. }
  1374. grd_ownsetprcplist.refresh();
  1375. }
  1376. }
  1377. /**
  1378. * @desc : 사본 대분류명 클릭시 분류명 셋팅
  1379. * @
  1380. * @param :
  1381. * @return :
  1382. * @author : 성미연
  1383. * @---------------------------------------------------
  1384. */
  1385. function fClickLrgSet(){
  1386. // if (isDataCell() == true && grd_ownlrgset.findRow('i', 1, 0) != -1) {
  1387. if (isDataCell() == true) {
  1388. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setnm"));
  1389. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm_b", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setnm"));
  1390. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetno", model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setno"));
  1391. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlsetnm");
  1392. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlsetnm_b");
  1393. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlsetno");
  1394. }
  1395. model.refresh();
  1396. }
  1397. /**
  1398. * @desc : 사본 소분류명 클릭시 분류명 셋팅
  1399. * @
  1400. * @param :
  1401. * @return :
  1402. * @author : 성미연
  1403. * @---------------------------------------------------
  1404. */
  1405. function fClickSmlSet(){
  1406. /*
  1407. if (model.getValue("/root/main/owndeptinfo/ownsmlsetinfo/smlsetlist[" + grd_ownsmlset.row + "]/flag") == 'i') {
  1408. grd_ownsmlset.colAttribute(grd_ownsmlset.row,"type") = "input";
  1409. grd_ownsmlset.refresh();
  1410. }
  1411. */
  1412. // if (isDataCell() == true && grd_ownsmlset.findRow('i', 1, 0) != -1) {
  1413. if (isDataCell() == true) {
  1414. //상단 대분류, 소분류명 표시
  1415. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetnm", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setnm"));
  1416. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetnm_b", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setnm"));
  1417. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetno", model.getValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setno"));
  1418. }
  1419. model.refresh();
  1420. }
  1421. /**
  1422. * @desc : 사본 대분류명 추가
  1423. * @
  1424. * @param :
  1425. * @return :
  1426. * @author : 성미연
  1427. * @---------------------------------------------------
  1428. */
  1429. function fAddLrgSetNM(){
  1430. if (grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1431. grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1432. model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1433. messageBox("변경된 내용을 저장 후에 추가할 수 있습니다.", "I");
  1434. return;
  1435. } else {
  1436. if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm") == "") {
  1437. messageBox("대분류명을","C001");
  1438. model.setFocus("ipt_ownlrgsetnm");
  1439. return;
  1440. } else if (grd_ownlrgset.findRow(model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm"), 1, 1) != -1 ) {
  1441. messageBox("대분류명이","E006");
  1442. return;
  1443. } else {
  1444. grd_ownlrgset.addRow(false);
  1445. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/flag", 'i');
  1446. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setnm", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm"));
  1447. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setno", "");
  1448. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/supsetno", "");
  1449. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setrefseq", "");
  1450. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setkindcd", model.getValue("/root/main/owndeptinfo/owncond/setkindcd"));
  1451. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/setclscd", model.getValue("/root/main/owndeptinfo/owncond/setclscd"));
  1452. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/settrgtcd", model.getValue("/root/main/owndeptinfo/owncond/settrgtcd"));
  1453. model.setValue(sOWN_LRGSETLIST_PATH + "[" + (grd_ownlrgset.rows-1) + "]/settypecd", model.getValue("/root/main/owndeptinfo/owncond/settypecd"));
  1454. grd_ownlrgset.refresh();
  1455. }
  1456. }
  1457. }
  1458. /**
  1459. * @desc : 사본 대분류명 수정
  1460. * @
  1461. * @param :
  1462. * @return :
  1463. * @author : 성미연
  1464. * @---------------------------------------------------
  1465. */
  1466. function fUptLrgSetNm(){
  1467. if (grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1468. grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1469. model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1470. messageBox("변경된 내용을 저장 후에 수정할 수 있습니다.", "I");
  1471. model.setValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm_b"));
  1472. model.refresh();
  1473. return;
  1474. } else {
  1475. if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm") == "") {
  1476. messageBox("대분류명을","C002");
  1477. return;
  1478. } else if (grd_ownlrgset.findRow(model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm"), 1, 1) != -1 ) {
  1479. messageBox("대분류명이","E006");
  1480. return;
  1481. } else if (model.getValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/flag") == 'i') { //신규 분류명을 수정하는 경우
  1482. model.setValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setnm", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm"));
  1483. } else {
  1484. model.setValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/flag", 'u');
  1485. model.setValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/setnm", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm"));
  1486. }
  1487. grd_ownlrgset.refresh();
  1488. }
  1489. }
  1490. /**
  1491. * @desc : 사본 대분류명 삭제
  1492. * @
  1493. * @param :
  1494. * @return :
  1495. * @author : 성미연
  1496. * @---------------------------------------------------
  1497. */
  1498. function fDelLrgSetNm(){
  1499. if (grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1500. grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1501. model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1502. messageBox("변경된 내용을 저장 후에 삭제할 수 있습니다.", "I");
  1503. return;
  1504. } else {
  1505. if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm") == "") {
  1506. messageBox("대분류명을","C002");
  1507. return;
  1508. } else {
  1509. model.setValue(sOWN_LRGSETLIST_PATH + "[" + grd_ownlrgset.row + "]/flag", 'd');
  1510. grd_ownlrgset.refresh();
  1511. }
  1512. }
  1513. }
  1514. /**
  1515. * @desc : 사본 소분류명 추가
  1516. * @
  1517. * @param :
  1518. * @return :
  1519. * @author : 성미연
  1520. * @---------------------------------------------------
  1521. */
  1522. function fAddSmlSetNM(){
  1523. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1524. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1525. model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1526. messageBox("변경된 내용을 저장 후에 추가할 수 있습니다.", "I");
  1527. return;
  1528. } else {
  1529. if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetnm") == "") {
  1530. messageBox("추가할 대분류명을","C002");
  1531. return;
  1532. } else if (model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm") == "") {
  1533. messageBox("소분류명을","C001");
  1534. model.setFocus("ipt_ownsmlsetnm");
  1535. return;
  1536. } else if (grd_ownsmlset.findRow(model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm"), 1, 1) != -1 ) {
  1537. messageBox("소분류명이","E006");
  1538. return;
  1539. } else {
  1540. grd_ownsmlset.addRow(false);
  1541. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/flag", 'i');
  1542. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setnm", model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm"));
  1543. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setno", "");
  1544. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/supsetno", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetno"));
  1545. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setrefseq", "");
  1546. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setkindcd", model.getValue("/root/main/owndeptinfo/owncond/setkindcd"));
  1547. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/setclscd", model.getValue("/root/main/owndeptinfo/owncond/setclscd"));
  1548. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/settrgtcd", model.getValue("/root/main/owndeptinfo/owncond/settrgtcd"));
  1549. model.setValue(sOWN_SMLSETLIST_PATH + "[" + (grd_ownsmlset.rows-1) + "]/settypecd", model.getValue("/root/main/owndeptinfo/owncond/settypecd"));
  1550. grd_ownsmlset.refresh();
  1551. }
  1552. }
  1553. }
  1554. /**
  1555. * @desc : 사본 소분류명 수정
  1556. * @
  1557. * @param :
  1558. * @return :
  1559. * @author : 성미연
  1560. * @---------------------------------------------------
  1561. */
  1562. function fUptSmlSetNm(){
  1563. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1564. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1565. model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1566. messageBox("변경된 내용을 저장 후에 수정할 수 있습니다.", "I");
  1567. model.setValue("/root/main/owndeptinfo/ownsetnm/smlsetnm", model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm_b"));
  1568. model.refresh();
  1569. return;
  1570. } else {
  1571. if (model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm") == "") {
  1572. messageBox("소분류명을","C002");
  1573. return;
  1574. } else if (grd_ownsmlset.findRow(model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm"), 1, 1) != -1 ) {
  1575. messageBox("소분류명이","E006");
  1576. return;
  1577. } else if (model.getValue("/root/main/owndeptinfo/ownsmlsetinfo/smlsetlist[" + grd_ownsmlset.row + "]/flag") == 'i') { //신규 분류명을 수정하는 경우
  1578. model.setValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setnm", model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm"));
  1579. } else {
  1580. model.setValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/flag", 'u');
  1581. model.setValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/setnm", model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm"));
  1582. }
  1583. grd_ownsmlset.refresh();
  1584. }
  1585. }
  1586. /**
  1587. * @desc : 사본 소분류명 삭제
  1588. * @
  1589. * @param :
  1590. * @return :
  1591. * @author : 성미연
  1592. * @---------------------------------------------------
  1593. */
  1594. function fDelSmlSetNm(){
  1595. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1596. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1597. model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1598. messageBox("변경된 내용을 저장 후에 삭제할 수 있습니다.", "I");
  1599. return;
  1600. } else {
  1601. if (model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm") == "") {
  1602. messageBox("소분류명을","C002");
  1603. return;
  1604. } else {
  1605. model.setValue(sOWN_SMLSETLIST_PATH + "[" + grd_ownsmlset.row + "]/flag", 'd');
  1606. grd_ownsmlset.refresh();
  1607. }
  1608. }
  1609. }
  1610. /**
  1611. * @desc : 사본 처방목록 삭제
  1612. * @
  1613. * @param :
  1614. * @return :
  1615. * @author : 성미연
  1616. * @---------------------------------------------------
  1617. */
  1618. function fDelSetPrcpList(){
  1619. if (grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1620. grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 ||
  1621. model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' || model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' ) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항에 대해서 저장은 한개의 그리드씩 한다.
  1622. messageBox("변경된 내용을 저장 후에 삭제할 수 있습니다.", "I");
  1623. return;
  1624. } else {
  1625. if (grd_ownsetprcplist.row == "") {
  1626. messageBox("처방항목을","C002");
  1627. return;
  1628. } else {
  1629. model.setValue(sOWN_SETPRCPLIST_PATH + "[" + grd_ownsetprcplist.row + "]/status", 'd');
  1630. model.refresh();
  1631. }
  1632. }
  1633. }
  1634. /**
  1635. * @desc : 대/소분류 SET, 처방정보 저장
  1636. * @
  1637. * @param :
  1638. * @return :
  1639. * @author : 성미연
  1640. * @---------------------------------------------------
  1641. */
  1642. function fOwnSetPrcpSaveInfo() {
  1643. if (model.getValue("/root/main/owndeptinfo/deptinfo/deptlist/deptcd") == "") {
  1644. messageBox("소속부서명이 ", "I004");
  1645. return;
  1646. }
  1647. //로직상 그리드 한개씩 저장됨
  1648. model.removeNodeset("/root/send/savedata");
  1649. model.makeNode("/root/send/savedata");
  1650. if ( grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownlrgset.findRow('d', 1, 0) != -1 || model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == 'Y' ) { //대분류 저장
  1651. //대분류명 조회순서, status 설정
  1652. var lrgset_refseq = 0;
  1653. for (i = 1; i < grd_ownlrgset.rows; i++) {
  1654. var flag = model.getValue("/root/main/owndeptinfo/ownlrgsetinfo/lrgsetlist[" + i + "]/flag");
  1655. if ( flag == 'i') {
  1656. grd_ownlrgset.rowStatus(i) = 1; //1 : insert
  1657. lrgset_refseq++;
  1658. } else if (flag == 'd') {
  1659. grd_ownlrgset.rowStatus(i) = 4; //4 : delete
  1660. } else if (flag == '-' || flag == 'u') {
  1661. grd_ownlrgset.rowStatus(i) = 2; //2 : update
  1662. lrgset_refseq++;
  1663. }
  1664. model.setValue(sOWN_LRGSETLIST_PATH + "[" + i + "]/setrefseq", lrgset_refseq);
  1665. }
  1666. model.makeValue("/root/send/savedata/lrgsetinfo", grd_ownlrgset.getUpdateData());
  1667. //저장 후 리스트 조회하기 위한 조건
  1668. model.makeValue("/root/main/owndeptinfo/owncond/clsflag", 'lrg');
  1669. var refinfo = getNodeListCSV(model.instances(0).selectNodes("/root/main/owndeptinfo/owncond"));
  1670. model.makeValue("/root/send/savedata/refinfo", refinfo);
  1671. model.removenode("/root/main/owndeptinfo/owncond/clsflag"); //cls 조회조건 삭제
  1672. model.refresh();
  1673. if (submit("TXMNW11601")) {
  1674. model.copyNode("/root/main/owndeptinfo/ownlrgsetinfo", "/root/temp/saverefinfo/savereflist");
  1675. model.removeNodeset("/root/main/owndeptinfo/ownsmlsetinfo/smlsetlist");
  1676. model.removeNodeset(sOWN_SETPRCPLIST_PATH);
  1677. if (model.getValue("/root/main/anodeptinfo/anocond/settrgtcd") == model.getValue("/root/main/owndeptinfo/owncond/settrgtcd")) { //원본, 사본 부서 같을 경우
  1678. model.copyNode("/root/main/anodeptinfo/anolrgsetinfo", "/root/temp/saverefinfo/savereflist");
  1679. model.removeNodeset(sANO_SMLSETLIST_PATH);
  1680. model.removeNodeset(sANO_SETPRCPLIST_PATH);
  1681. }
  1682. }
  1683. } else if ( grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsmlset.findRow('d', 1, 0) != -1 || model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == 'Y' ) { //소분류 저장
  1684. //소분류명 조회순서, status 설정
  1685. var smlset_refseq = 0;
  1686. for (i = 1; i < grd_ownsmlset.rows; i++) {
  1687. var flag = model.getValue(sOWN_SMLSETLIST_PATH + "[" + i + "]/flag");
  1688. if (flag == 'i') {
  1689. grd_ownsmlset.rowStatus(i) = 1; //1 : insert
  1690. smlset_refseq++;
  1691. } else if (flag == 'd') {
  1692. grd_ownsmlset.rowStatus(i) = 4; //4 : delete
  1693. } else if (flag == '-' || flag == 'u') {
  1694. grd_ownsmlset.rowStatus(i) = 2; //2 : update
  1695. smlset_refseq++;
  1696. }
  1697. model.setValue(sOWN_SMLSETLIST_PATH + "[" + i + "]/setrefseq", smlset_refseq);
  1698. }
  1699. model.makeValue("/root/send/savedata/smlsetinfo", grd_ownsmlset.getUpdateData());
  1700. //저장 후 리스트 조회하기 위한 조건
  1701. model.makeValue("/root/main/owndeptinfo/owncond/clsflag", 'sml');
  1702. model.makeValue("/root/main/owndeptinfo/owncond/setno", model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetno"));
  1703. var refinfo = getNodeListCSV(model.instances(0).selectNodes("/root/main/owndeptinfo/owncond"));
  1704. model.makeValue("/root/send/savedata/refinfo", refinfo);
  1705. model.removenode("/root/main/owndeptinfo/owncond/clsflag"); //cls 조회조건 삭제
  1706. model.removenode("/root/main/owndeptinfo/owncond/setno"); //setno 조회조건 삭제
  1707. model.refresh();
  1708. if (submit("TXMNW11601")) {
  1709. model.copyNode("/root/main/owndeptinfo/ownsmlsetinfo", "/root/temp/saverefinfo/savereflist");
  1710. model.removeNodeset(sOWN_SETPRCPLIST_PATH);
  1711. var anosettrgtcd = model.getValue("/root/main/anodeptinfo/anocond/settrgtcd");
  1712. var ownsettrgtcd = model.getValue("/root/main/owndeptinfo/owncond/settrgtcd");
  1713. var anolrgsetno = model.getValue("/root/main/anodeptinfo/anosetnm/lrgsetno");
  1714. var ownlrgsetno = model.getValue("/root/main/owndeptinfo/ownsetnm/lrgsetno");
  1715. if (anosettrgtcd = ownsettrgtcd && anolrgsetno == ownlrgsetno ) { //원본, 사본 부서 같을 경우
  1716. model.copyNode("/root/main/anodeptinfo/anosmlsetinfo", "/root/temp/saverefinfo/savereflist");
  1717. model.removeNodeset(sANO_SETPRCPLIST_PATH);
  1718. }
  1719. }
  1720. } else if ( grd_ownsetprcplist.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1 || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == 'Y' ) { //처방 저장
  1721. //처방목록 조회순서, status 설정
  1722. var prcp_refseq = 0;
  1723. for (i = 1; i < grd_ownsetprcplist.rows; i++) {
  1724. var status = model.getValue(sOWN_SETPRCPLIST_PATH + "[" + i + "]/status");
  1725. if ( status == 'i') {
  1726. prcp_refseq++;
  1727. } else if (status == 'd') {
  1728. } else if (status == '-' || flag == 'u') {
  1729. model.setValue(sOWN_SETPRCPLIST_PATH + "[" + i + "]/status", 'u');
  1730. prcp_refseq++;
  1731. }
  1732. model.setValue(sOWN_SETPRCPLIST_PATH + "[" + i + "]/prcprefseq", prcp_refseq);
  1733. }
  1734. model.makeValue("/root/send/savedata/setprcpinfo", getNodeListCSV(model.instances(0).selectNodes(sOWN_SETPRCPLIST_PATH)));
  1735. //저장 후 리스트 조회하기 위한 조건
  1736. model.makeValue("/root/main/owndeptinfo/owncond/setno", model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetno"));
  1737. var refinfo = getNodeListCSV(model.instances(0).selectNodes("/root/main/owndeptinfo/owncond"));
  1738. model.makeValue("/root/send/savedata/refinfo", refinfo);
  1739. model.removenode("/root/main/owndeptinfo/owncond/setno"); //setno 조회조건 삭제
  1740. model.refresh();
  1741. if (submit("TXMNW11601")) {
  1742. model.copyNode("/root/main/owndeptinfo/ownsetprcpinfo", "/root/temp/saverefinfo/savereflist");
  1743. var anosettrgtcd = model.getValue("/root/main/anodeptinfo/anocond/settrgtcd");
  1744. var ownsettrgtcd = model.getValue("/root/main/owndeptinfo/owncond/settrgtcd");
  1745. var anosmlsetno = model.getValue("/root/main/anodeptinfo/anosetnm/smlsetno");
  1746. var ownsmlsetno = model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetno");
  1747. if ( anosettrgtcd == ownsettrgtcd && anosmlsetno == ownsmlsetno) { //원본, 사본 부서 같을 경우
  1748. model.copyNode("/root/main/anodeptinfo/anosetprcpinfo", "/root/temp/saverefinfo/savereflist");
  1749. }
  1750. }
  1751. } else {
  1752. messageBox("변경된 정보가", "I004");
  1753. return;
  1754. }
  1755. //그리드 변화여부 리셋
  1756. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/lrgchgflag");
  1757. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/smlchgflag");
  1758. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm/prcpchgflag");
  1759. //status 초기화
  1760. grd_ownlrgset.clearStatus();
  1761. grd_ownsmlset.clearStatus();
  1762. grd_ownsetprcplist.clearStatus();
  1763. model.refresh();
  1764. }
  1765. /**
  1766. * @desc : 사본 그리드 세개 초기화
  1767. * @
  1768. * @param :
  1769. * @return :
  1770. * @author : 성미연
  1771. * @---------------------------------------------------
  1772. */
  1773. function fReset() {
  1774. model.resetInstanceNode("/root/main/owndeptinfo/ownsetnm");
  1775. model.removeNodeset(sOWN_LRGSETLIST_PATH);
  1776. model.removeNodeset(sOWN_SMLSETLIST_PATH);
  1777. model.removeNodeset(sOWN_SETPRCPLIST_PATH);
  1778. fOwnLrgSetListRef();
  1779. }
  1780. /**
  1781. * @desc : 원본 부서리스트 구분 클릭시(공통/부서명)
  1782. * @
  1783. * @param :
  1784. * @return :
  1785. * @author : 성미연
  1786. * @---------------------------------------------------
  1787. */
  1788. function fClickAnoDeptInfo(){
  1789. model.removeNodeset(sANO_DEPTLIST_PATH);
  1790. model.removeNodeset(sANO_LRGSETLIST_PATH);
  1791. model.removeNodeset(sANO_SMLSETLIST_PATH);
  1792. model.removeNodeset(sANO_SETPRCPLIST_PATH);
  1793. // 전체선택 체크박스 초기화_20090310(ByJA)
  1794. grd_anolrgset.fixedcellischeck(0, grd_anolrgset.colRef("flag")) = false; // 원본 대분류
  1795. grd_anosmlset.fixedcellischeck(0, grd_anosmlset.colRef("flag")) = false; // 원본 소분류
  1796. if (model.getValue("/root/main/anodeptinfo/anocond/setclscd") == 'W') {
  1797. if(model.getValue("/root/init/deptinfo/deptlist/deptcd") != ""){ //팝업에서 호출
  1798. copyNodesetType("/root/main/anodeptinfo/deptinfo", "/root/init/deptinfo", "replace"); //원본 부서명 copy
  1799. model.setValue("/root/main/anodeptinfo/anocond/setclscd", 'W');
  1800. }else{ //메뉴에서 호출
  1801. submit("TRMNW11001"); //부서콤보 조회
  1802. copyNodesetType("/root/main/anodeptinfo/deptinfo", "/root/init/deptinfo", "replace"); //원본 부서명 copy
  1803. }
  1804. } else {
  1805. grd_anolrgset.rebuildStyle();
  1806. model.resetInstanceNode("/root/main/anodeptinfo/anosetnm/lrgsetnm");
  1807. model.resetInstanceNode("/root/main/anodeptinfo/anosetnm/smlsetnm");
  1808. //부서명에 공통 표기
  1809. model.makeNode(sANO_DEPTLIST_PATH);
  1810. model.makeValue(sANO_DEPTLIST_PATH + "/deptcd", 'ALL');
  1811. model.makeValue(sANO_DEPTLIST_PATH + "/depthngnm", '공통');
  1812. model.setValue("/root/main/anodeptinfo/anocond/setclscd", 'N');
  1813. model.setValue("/root/main/anodeptinfo/anocond/settrgtcd", 'ALL');
  1814. model.removeNodeset("/root/send/reqdata");
  1815. model.makeNode("/root/send/reqdata");
  1816. model.copyNode("/root/send/reqdata", "/root/main/anodeptinfo/anocond");
  1817. model.makeValue("/root/send/reqdata/clsflag", 'lrg');
  1818. submit("TRMNW11601");
  1819. grd_anodept.row = 1;
  1820. }
  1821. model.refresh();
  1822. }
  1823. /**
  1824. * @desc : 간호약속처방 등록조회 버튼 클릭시
  1825. * @
  1826. * @param :
  1827. * @return :
  1828. * @author : 성미연
  1829. * @---------------------------------------------------
  1830. */
  1831. function fPopAddCopySetPrcp() {
  1832. if (model.getValue("/root/main/owndeptinfo/ownsetnm/smlsetnm") == "") {
  1833. messageBox("추가할 소분류명을 선택하세요.", "C");
  1834. return;
  1835. }
  1836. if (model.getValue("/root/main/owndeptinfo/ownsetnm/lrgchgflag") == "Y" || model.getValue("/root/main/owndeptinfo/ownsetnm/smlchgflag") == "Y" || model.getValue("/root/main/owndeptinfo/ownsetnm/prcpchgflag") == "Y"){
  1837. messageBox("변경된 내용을 저장 후에 복사할 수 있습니다.", "I");
  1838. return;
  1839. }
  1840. if (grd_ownlrgset.findRow('i', 1, 0) != -1 || grd_ownsmlset.findRow('i', 1, 0) != -1 || grd_ownsetprcplist.findRow('i', 1, 0) != -1 ||
  1841. grd_ownlrgset.findRow('u', 1, 0) != -1 || grd_ownsmlset.findRow('u', 1, 0) != -1 || grd_ownsetprcplist.findRow('u', 1, 0) != -1 ||
  1842. grd_ownlrgset.findRow('d', 1, 0) != -1 || grd_ownsmlset.findRow('d', 1, 0) != -1 || grd_ownsetprcplist.findRow('d', 1, 0) != -1) { //대분류명, 소분류명, 처방목록 그리드에서 변경사항이 있을 경우 조회 안됨
  1843. messageBox("변경된 내용을 저장 후에 조회할 수 있습니다.", "I");
  1844. return;
  1845. }
  1846. //처방리스트 조회
  1847. fOwnSetPrcpListRef();
  1848. setParameter("scrnflag", "setcopy");
  1849. setParameter("rtnpath", "/root/main/owndeptinfo/ownsetprcpinfo/prcplist");
  1850. setParameter("srchParam", "srchPPDS");
  1851. open("SPMNW11100","1","100","500");
  1852. }
  1853. /**
  1854. * @desc : 처방 노드셋 추가함수
  1855. * @
  1856. * @param : srcnode 원본노드
  1857. * : trgtnode 목적지노드
  1858. * : currow row값
  1859. * : pflag 처리구분 popup에서 opener로 처리되는 경우, opener으로 설정
  1860. * : status 상태구분(I:신규, U:수정, D:D/C)
  1861. *
  1862. * @return :
  1863. * @author : 오지훈 2007.12.27
  1864. * @---------------------------------------------------
  1865. */
  1866. function mnwAddNursPrcp(srcnode, trgtnode, currow, pflag){
  1867. //목적지 노드에 처방instance를 copy한다.
  1868. var node = model.instances(0).selectSingleNode(srcnode + "[" + currow + "]");
  1869. if(pflag == "popup"){
  1870. var desnode = opener.model.instances(0).selectSingleNode(trgtnode);
  1871. var desnodelist = opener.model.instances(0).selectNodes(trgtnode);
  1872. }else{
  1873. var desnode = model.instances(0).selectSingleNode(trgtnode);
  1874. var desnodelist = model.instances(0).selectNodes(trgtnode);
  1875. }
  1876. desnode.appendChild(node.cloneNode(true));
  1877. }
  1878. function DrugCalc ( flag, curRow ) {
  1879. var PrcpVol = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol" );
  1880. if ( isNull(PrcpVol) || PrcpVol == 0 ) {
  1881. PrcpVol = "1";
  1882. }
  1883. var PrcpQty = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty" );
  1884. if ( isNull(PrcpQty) || PrcpQty == 0 ){
  1885. PrcpQty = "1";
  1886. }
  1887. var PrcpTims = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/prcptims" );
  1888. if ( isNull(PrcpTims) || PrcpTims == 0 ) {
  1889. PrcpTims = "1";
  1890. }
  1891. var drprcpetc7 = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7" );
  1892. if ( isNull(drprcpetc7) || drprcpetc7 == 0 || drprcpetc7 == "-") {
  1893. drprcpetc7 = "1";
  1894. }
  1895. var drprcpetc8 = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8" );
  1896. if ( isNull(drprcpetc8) || drprcpetc8 == 0 || drprcpetc8 == "-") {
  1897. drprcpetc8 = "1";
  1898. }
  1899. var bfPrcpVol = model.getValue ( "/root/drugcalc/prcpvol" );
  1900. if ( isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  1901. bfPrcpVol = "1";
  1902. }
  1903. var bfPrcpQty = model.getValue ( "/root/drugcalc/prcpqty" );
  1904. if ( isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  1905. bfPrcpQty = "1";
  1906. }
  1907. var bfprcpTims = model.getValue ( "/root/drugcalc/prcptims" );
  1908. if ( isNull(bfprcpTims) || bfprcpTims == 0 ) {
  1909. bfprcpTims = "1";
  1910. }
  1911. var bfdrprcpetc7 = model.getValue ( "/root/drugcalc/drprcpetc7" );
  1912. if ( isNull(bfdrprcpetc7) || bfdrprcpetc7 == 0 ) {
  1913. bfdrprcpetc7 = "1";
  1914. }
  1915. var bfdrprcpetc8 = model.getValue ( "/root/drugcalc/drprcpetc8" );
  1916. if ( isNull(bfdrprcpetc8) || bfdrprcpetc8 == 0 ) {
  1917. bfdrprcpetc8 = "1";
  1918. }
  1919. var calcPrcpVol = 0;
  1920. var calcPrcpQty = 0;
  1921. var calcPrcpTimeVol = 0;
  1922. var calcPrcpTimeQty = 0;
  1923. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  1924. var baseQty = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 31 , "^", "|" );
  1925. var baseVol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 32 , "^", "|" );
  1926. var drugcntsvol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 1 , "^", "|" );
  1927. var drugstndvol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 3 , "^", "|" );
  1928. var drugpackvol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 5 , "^", "|" );
  1929. var drugbasevol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 7 , "^", "|" );
  1930. var baseTimeVol = drugcntsvol * drugbasevol / drugpackvol;
  1931. var baseTimeQty = drugbasevol;
  1932. if (model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" ).substring ( 0, 1 ) == "A" && !isNull(baseQty) && !isNull(baseVol)) {
  1933. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  1934. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  1935. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1936. calcPrcpTimeQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeQty)*1000;
  1937. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1938. calcPrcpTimeVol = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeVol)*1000;
  1939. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1940. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  1941. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  1942. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  1943. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  1944. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  1945. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  1946. //return;
  1947. } //end
  1948. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1949. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1950. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1951. } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  1952. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  1953. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  1954. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1955. calcPrcpTimeQty = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeQty)*1000;
  1956. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1957. calcPrcpTimeVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeVol)*1000;
  1958. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1959. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1960. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1961. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1962. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  1963. calcPrcpQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseQty)*1000;
  1964. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1965. calcPrcpTimeQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseTimeQty)*1000;
  1966. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1967. calcPrcpVol = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseVol)*1000;
  1968. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1969. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  1970. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  1971. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  1972. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  1973. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  1974. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  1975. //return;
  1976. } //end
  1977. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1978. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1979. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1980. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  1981. calcPrcpVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseVol)*1000;
  1982. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1983. calcPrcpTimeVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseTimeVol)*1000;
  1984. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1985. calcPrcpQty = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseQty)*1000;
  1986. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1987. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1988. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1989. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1990. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  1991. }
  1992. } else {
  1993. if ( flag == "prcpvol" ) { // 용량을 수정했을 때: 수량 자동계산
  1994. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  1995. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1996. calcPrcpTimeVol = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc7)*1000;
  1997. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1998. calcPrcpTimeQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc8)*1000;
  1999. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2000. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2001. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  2002. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2003. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2004. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2005. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2006. //return;
  2007. } //end
  2008. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2009. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2010. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2011. } else if ( flag == "prcpqty" ) { // 수량을 수정했을 때: 용량 자동계산
  2012. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  2013. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  2014. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2015. calcPrcpTimeVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc7)*1000;
  2016. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2017. calcPrcpTimeQty = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc8)*1000;
  2018. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2019. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2020. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2021. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2022. if ( prcpclscd == "M2" ) {
  2023. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  2024. if (!isNull(model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")) && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")!= "-" && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4" )>0){
  2025. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4", PrcpQty );
  2026. }
  2027. }
  2028. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  2029. calcPrcpTimeQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(drprcpetc8)*1000;
  2030. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2031. calcPrcpVol = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpVol)*1000;
  2032. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2033. calcPrcpQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpQty)*1000;
  2034. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2035. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2036. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  2037. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2038. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2039. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2040. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2041. //return;
  2042. } //end
  2043. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2044. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2045. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2046. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  2047. calcPrcpTimeVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(drprcpetc7)*1000;
  2048. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2049. calcPrcpVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpVol)*1000;
  2050. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2051. calcPrcpQty = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpQty)*1000;
  2052. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2053. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2054. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2055. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2056. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  2057. if ( prcpclscd == "M2" ) {
  2058. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  2059. if (!isNull(model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")) && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")!= "-" && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4" )>0){
  2060. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4", PrcpQty );
  2061. }
  2062. }
  2063. }
  2064. }
  2065. }
  2066. function fClickRtn() {
  2067. var iRow = grd_setprcplist.row;
  2068. if(isDataCell()){
  2069. //수량, 총용량 변경시
  2070. if(grd_setprcplist.col == grd_setprcplist.colRef("prcpvol")){
  2071. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/prcpvol"))) {
  2072. DrugCalc ("prcpvol" , iRow);
  2073. } else {
  2074. model.setValue(sPRCPLIST_PATH + "[" + iRow + "]/prcpvol",model.getValue("/root/drugcalc/prcpvol"));
  2075. }
  2076. } else if(grd_setprcplist.col == grd_setprcplist.colRef("prcpqty")) {
  2077. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/prcpqty"))) {
  2078. DrugCalc ("prcpqty" , iRow);
  2079. } else {
  2080. model.setValue(sPRCPLIST_PATH + "[" + iRow + "]/prcpqty",model.getValue("/root/drugcalc/prcpqty"));
  2081. }
  2082. } else if(grd_setprcplist.col == grd_setprcplist.colRef("drprcpetc7")) {
  2083. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/drprcpetc7"))) {
  2084. DrugCalc ("drprcpetc7" , iRow);
  2085. } else {
  2086. model.setValue(sPRCPLIST_PATH + "[" + iRow + "]/drprcpetc7",model.getValue("/root/drugcalc/drprcpetc7"));
  2087. }
  2088. } else if(grd_setprcplist.col == grd_setprcplist.colRef("drprcpetc8")) {
  2089. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/drprcpetc8"))) {
  2090. DrugCalc ("drprcpetc8" , iRow);
  2091. } else {
  2092. model.setValue(sPRCPLIST_PATH + "[" + iRow + "]/drprcpetc8",model.getValue("/root/drugcalc/drprcpetc8"));
  2093. }
  2094. } else if(grd_setprcplist.col == grd_setprcplist.colRef("prcptims")) {
  2095. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/prcptims"))) {
  2096. DrugCalc ("prcptims" , iRow);
  2097. } else {
  2098. model.setValue(sPRCPLIST_PATH + "[" + iRow + "]/prcptims",model.getValue("/root/drugcalc/prcptims"));
  2099. }
  2100. }
  2101. grd_setprcplist.refresh();
  2102. }
  2103. }
  2104. /**
  2105. * @desc : 총용량, 수량의 수정전 값을 instance에 넣어둔다.
  2106. * @
  2107. * @param :
  2108. * @return :
  2109. * @author : 성미연 2008. 3. 17
  2110. * @---------------------------------------------------
  2111. */
  2112. function fSetPrcpVolQty() {
  2113. var curCol = grd_setprcplist.col;
  2114. var iRow = grd_setprcplist.row;
  2115. if(curCol == grd_setprcplist.colRef("prcpvol")){
  2116. model.setValue("/root/drugcalc/prcpvol", model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/prcpvol"));
  2117. } else if(curCol == grd_setprcplist.colRef("prcpqty")){
  2118. model.setValue("/root/drugcalc/prcpqty", model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/prcpqty"));
  2119. } else if(curCol == grd_setprcplist.colRef("prcptims")){
  2120. model.setValue("/root/drugcalc/prcptims", model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/prcptims"));
  2121. } else if(curCol == grd_setprcplist.colRef("drprcpetc7")){
  2122. model.setValue("/root/drugcalc/drprcpetc7", model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/drprcpetc7"));
  2123. } else if(curCol == grd_setprcplist.colRef("drprcpetc8")){
  2124. model.setValue("/root/drugcalc/drprcpetc8", model.getValue(sPRCPLIST_PATH + "[" + iRow + "]/drprcpetc8"));
  2125. }
  2126. }
  2127. function fSetPrcpVolQty2() {
  2128. var curCol = grd_ownsetprcplist.col;
  2129. var iRow = grd_ownsetprcplist.row;
  2130. if(curCol == grd_ownsetprcplist.colRef("prcpvol")){
  2131. model.setValue("/root/drugcalc/prcpvol", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpvol"));
  2132. } else if(curCol == grd_ownsetprcplist.colRef("prcpqty")){
  2133. model.setValue("/root/drugcalc/prcpqty", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpqty"));
  2134. } else if(curCol == grd_ownsetprcplist.colRef("prcptims")){
  2135. model.setValue("/root/drugcalc/prcptims", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcptims"));
  2136. } else if(curCol == grd_ownsetprcplist.colRef("drprcpetc7")){
  2137. model.setValue("/root/drugcalc/drprcpetc7", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc7"));
  2138. } else if(curCol == grd_ownsetprcplist.colRef("drprcpetc8")){
  2139. model.setValue("/root/drugcalc/drprcpetc8", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc8"));
  2140. }
  2141. }
  2142. function fClickRtn2() {
  2143. var iRow = grd_ownsetprcplist.row;
  2144. if(isDataCell()){
  2145. //수량, 총용량 변경시
  2146. if(grd_ownsetprcplist.col == grd_ownsetprcplist.colRef("prcpvol")){
  2147. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpvol"))) {
  2148. DrugCalc2 ("prcpvol" , iRow);
  2149. } else {
  2150. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpvol",model.getValue("/root/DrugCalc2/prcpvol"));
  2151. }
  2152. } else if(grd_ownsetprcplist.col == grd_ownsetprcplist.colRef("prcpqty")) {
  2153. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpqty"))) {
  2154. DrugCalc2 ("prcpqty" , iRow);
  2155. } else {
  2156. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpqty",model.getValue("/root/DrugCalc2/prcpqty"));
  2157. }
  2158. } else if(grd_ownsetprcplist.col == grd_ownsetprcplist.colRef("drprcpetc7")) {
  2159. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc7"))) {
  2160. DrugCalc2 ("drprcpetc7" , iRow);
  2161. } else {
  2162. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc7",model.getValue("/root/DrugCalc2/drprcpetc7"));
  2163. }
  2164. } else if(grd_ownsetprcplist.col == grd_ownsetprcplist.colRef("drprcpetc8")) {
  2165. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc8"))) {
  2166. DrugCalc2 ("drprcpetc8" , iRow);
  2167. } else {
  2168. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc8",model.getValue("/root/DrugCalc2/drprcpetc8"));
  2169. }
  2170. } else if(grd_ownsetprcplist.col == grd_ownsetprcplist.colRef("prcptims")) {
  2171. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcptims"))) {
  2172. DrugCalc2 ("prcptims" , iRow);
  2173. } else {
  2174. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcptims",model.getValue("/root/DrugCalc2/prcptims"));
  2175. }
  2176. }
  2177. grd_ownsetprcplist.refresh();
  2178. }
  2179. }
  2180. function DrugCalc2 ( flag, curRow ) {
  2181. var PrcpVol = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol" );
  2182. if ( isNull(PrcpVol) || PrcpVol == 0 ) {
  2183. PrcpVol = "1";
  2184. }
  2185. var PrcpQty = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty" );
  2186. if ( isNull(PrcpQty) || PrcpQty == 0 ){
  2187. PrcpQty = "1";
  2188. }
  2189. var PrcpTims = model.getValue (sPRCPLIST_PATH2 + "[" + curRow + "]/prcptims" );
  2190. if ( isNull(PrcpTims) || PrcpTims == 0 ) {
  2191. PrcpTims = "1";
  2192. }
  2193. var drprcpetc7 = model.getValue (sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7" );
  2194. if ( isNull(drprcpetc7) || drprcpetc7 == 0 || drprcpetc7 == "-") {
  2195. drprcpetc7 = "1";
  2196. }
  2197. var drprcpetc8 = model.getValue (sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8" );
  2198. if ( isNull(drprcpetc8) || drprcpetc8 == 0 || drprcpetc8 == "-") {
  2199. drprcpetc8 = "1";
  2200. }
  2201. var bfPrcpVol = model.getValue ( "/root/drugcalc/prcpvol" );
  2202. if ( isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  2203. bfPrcpVol = "1";
  2204. }
  2205. var bfPrcpQty = model.getValue ( "/root/drugcalc/prcpqty" );
  2206. if ( isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  2207. bfPrcpQty = "1";
  2208. }
  2209. var bfprcpTims = model.getValue ( "/root/drugcalc/prcptims" );
  2210. if ( isNull(bfprcpTims) || bfprcpTims == 0 ) {
  2211. bfprcpTims = "1";
  2212. }
  2213. var bfdrprcpetc7 = model.getValue ( "/root/drugcalc/drprcpetc7" );
  2214. if ( isNull(bfdrprcpetc7) || bfdrprcpetc7 == 0 ) {
  2215. bfdrprcpetc7 = "1";
  2216. }
  2217. var bfdrprcpetc8 = model.getValue ( "/root/drugcalc/drprcpetc8" );
  2218. if ( isNull(bfdrprcpetc8) || bfdrprcpetc8 == 0 ) {
  2219. bfdrprcpetc8 = "1";
  2220. }
  2221. var calcPrcpVol = 0;
  2222. var calcPrcpQty = 0;
  2223. var calcPrcpTimeVol = 0;
  2224. var calcPrcpTimeQty = 0;
  2225. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  2226. var baseQty = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 31 , "^", "|" );
  2227. var baseVol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 32 , "^", "|" );
  2228. var drugcntsvol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 1 , "^", "|" );
  2229. var drugstndvol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 3 , "^", "|" );
  2230. var drugpackvol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 5 , "^", "|" );
  2231. var drugbasevol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 7 , "^", "|" );
  2232. var baseTimeVol = drugcntsvol * drugbasevol / drugpackvol;
  2233. var baseTimeQty = drugbasevol;
  2234. if (model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" ).substring ( 0, 1 ) == "A" && !isNull(baseQty) && !isNull(baseVol)) {
  2235. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  2236. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  2237. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2238. calcPrcpTimeQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeQty)*1000;
  2239. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2240. calcPrcpTimeVol = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeVol)*1000;
  2241. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2242. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2243. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  2244. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2245. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2246. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2247. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2248. //return;
  2249. } //end
  2250. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2251. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2252. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2253. } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  2254. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  2255. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  2256. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2257. calcPrcpTimeQty = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeQty)*1000;
  2258. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2259. calcPrcpTimeVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeVol)*1000;
  2260. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2261. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2262. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2263. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2264. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  2265. calcPrcpQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseQty)*1000;
  2266. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2267. calcPrcpTimeQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseTimeQty)*1000;
  2268. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2269. calcPrcpVol = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseVol)*1000;
  2270. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2271. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2272. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  2273. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2274. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2275. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2276. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2277. //return;
  2278. } //end
  2279. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2280. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2281. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2282. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  2283. calcPrcpVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseVol)*1000;
  2284. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2285. calcPrcpTimeVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseTimeVol)*1000;
  2286. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2287. calcPrcpQty = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseQty)*1000;
  2288. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2289. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2290. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2291. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2292. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  2293. }
  2294. } else {
  2295. if ( flag == "prcpvol" ) { // 용량을 수정했을 때: 수량 자동계산
  2296. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  2297. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2298. calcPrcpTimeVol = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc7)*1000;
  2299. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2300. calcPrcpTimeQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc8)*1000;
  2301. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2302. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2303. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  2304. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2305. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2306. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2307. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2308. //return;
  2309. } //end
  2310. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", PrcpVol );
  2311. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2312. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2313. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2314. } else if ( flag == "prcpqty" ) { // 수량을 수정했을 때: 용량 자동계산
  2315. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  2316. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  2317. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2318. calcPrcpTimeVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc7)*1000;
  2319. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2320. calcPrcpTimeQty = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc8)*1000;
  2321. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2322. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2323. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2324. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2325. if ( prcpclscd == "M2" ) {
  2326. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  2327. if (!isNull(model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4")) && model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4")!= "-" && model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4" )>0){
  2328. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4", PrcpQty );
  2329. }
  2330. }
  2331. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  2332. calcPrcpTimeQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(drprcpetc8)*1000;
  2333. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2334. calcPrcpVol = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpVol)*1000;
  2335. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2336. calcPrcpQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpQty)*1000;
  2337. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2338. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2339. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  2340. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2341. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2342. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2343. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2344. //return;
  2345. } //end
  2346. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2347. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2348. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  2349. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  2350. calcPrcpTimeVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(drprcpetc7)*1000;
  2351. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2352. calcPrcpVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpVol)*1000;
  2353. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2354. calcPrcpQty = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpQty)*1000;
  2355. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2356. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2357. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2358. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  2359. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  2360. if ( prcpclscd == "M2" ) {
  2361. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  2362. if (!isNull(model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4")) && model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4")!= "-" && model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4" )>0){
  2363. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc4", PrcpQty );
  2364. }
  2365. }
  2366. }
  2367. }
  2368. }