SMMNR07500.xjs 83 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. 투약시간 기준관리(SMMNW075.xfm - JScript )
  5. - Version :
  6. 1) : Ver.1.00.01
  7. */
  8. var dept_tims = "";
  9. var dept_prcpcd = "";
  10. var dept_direccd = "";
  11. var xDtimList = ds_main_mnrmdtim_mnrmdtimList;
  12. var xMechList = ds_main_picmmech_picmmechList;
  13. var xDeptList = ds_main_deptdtim_deptdtimList;
  14. var xSapList = ds_main_sapinfo_saplist_saplist;
  15. /**
  16. * @group :
  17. * @ver : 2007.04.19
  18. * @by : 하재륜
  19. * @---------------------------------------------------
  20. * @type : function
  21. * @access : public
  22. * @desc : 병동코드 조회
  23. * @param :
  24. * @return :
  25. * @---------------------------------------------------
  26. */
  27. function fInitialize(){
  28. //수액기준자료관리 정리
  29. ds_main_sapinfo_saplist_saplist.clearData();
  30. //공통코드
  31. var arrParam = [{dsNm: "ds_init_A0017list_A0017", cdGrpId: "A0017"}]
  32. appf_getCodeList(arrParam);
  33. ds_init_init_ward.clearData();
  34. ds_init_init_ward1.clearData();
  35. //병동(부서) 리스트 조회
  36. var oParam = {};
  37. oParam.id = "TRMNR00601";
  38. oParam.service = "caremedirecapp.CareMediRec";
  39. oParam.method = "reqGetWMInitData";
  40. oParam.inds = "reqcond=ds_send_reqdata";
  41. oParam.outds = "ds_init_init_ward=ward ds_init_init_settingrn=settingrn ds_init_init_orddd=orddd";
  42. oParam.async = false;
  43. //oParam.callback = "cf_TRMNR00601";
  44. tranf_submit(oParam);
  45. //화면 초기화
  46. var cnt = ds_init_init_ward.rowcount;
  47. dsf_makeValue(ds_init_init_ward1, "wardcd", "string", "ALL", 0);
  48. dsf_makeValue(ds_init_init_ward1, "wardnm", "string", "공통", 0);
  49. for(var i = 1; i <= cnt; i++){
  50. ds_init_init_ward1.addRow();
  51. ds_init_init_ward1.copyRow(i, ds_init_init_ward, i-1);
  52. }
  53. ds_init.setColumn(0, "A0017list", "N");
  54. ds_init.setColumn(0, "baseflaglist", "N");
  55. ds_init.setColumn(0, "deptcdList", sysf_getUserInfo("dutplcecd"));
  56. fmthdChange("mthdcd"); //용법코드 조회 후 콤보박스에 저장
  57. fDeptSerch(); //투약시간기준관리(부서별)
  58. //------------------------------------
  59. // superuser id인 경우
  60. // 추후 superuser ID로 변경될 예정
  61. //------------------------------------
  62. //1. 투약기준시간관리
  63. var userid = sysf_getUserId();
  64. var btnActiveFlag = true;
  65. //------------------------------------(20080811)
  66. //권한 정해지면 다시 작업함 일단 전체 품
  67. //-------(20080912) 소경화 선생님 ID
  68. //db화 해야 할것 같음(간호공통에 등록해야할것 같음)
  69. //alert(userid);
  70. //-------------------------------------------------(20081208)
  71. //프로그램사용권한으로 막는다고 정의함(20081208) 따라서 사용자로는 막지 않음
  72. //즉, 모든 사용자가 슈퍼유저임
  73. //if(userid == "96030294" || userid == "DEV503") {
  74. //
  75. if(frmf_getMenuParam() == "SU") {
  76. btnActiveFlag = false; //superuser 만 버튼 사용가능
  77. } else {
  78. btnActiveFlag = true;
  79. }
  80. //} else {
  81. // //투약기준시간관리
  82. // cmb_dept.disabled = true // super user id 가 아니면 부서콤보를 고정시킴
  83. // cmb_dept.value = getUserInfo("dutplcecd"); // super user id 가 아니면 부서정보를 로그인자 정보로 설정한다.
  84. //
  85. // //수액기준시간관리
  86. // cmb_sapdept.disabled= true // super user id 가 아니면 부서콤보를 고정시킴
  87. // cmb_sapdept.value = getUserInfo("dutplcecd"); // super user id 가 아니면 부서정보를 로그인자 정보로 설정한다.
  88. //
  89. // messageBox("슈퍼 유저가 아니므로 부서정보를 변경할수 없습니다. " +
  90. // getUserInfo("dutplcenm") + "(" + getUserInfo("dutplcecd") + ")" ,"E999");
  91. //}
  92. //-------------------------------------------------(20081208)
  93. //------------------------------------
  94. //test용으로 일단 전부 활성화시킴
  95. //btnActiveFlag = false
  96. switch1.case1.btn_init.enable = !btnActiveFlag; //공통&용법 초기화버튼
  97. switch1.case1.btn_dtimcon.enable = !btnActiveFlag; //공통&용법 적용버튼
  98. switch1.case1.btn_mthdadd.enable = !btnActiveFlag; //공통&용법 추가버튼
  99. switch1.case1.btn_mthddel.enable = !btnActiveFlag; //공통&용법 삭제버튼
  100. switch1.case1.btn_mthdsave.enable = !btnActiveFlag; //공통&용법 저장버튼
  101. switch1.case1.btn_mechcon.enable = !btnActiveFlag; //공통&약품 적용버튼
  102. switch1.case1.btn_mechadd.enable = !btnActiveFlag; //공통&약품 추가버튼
  103. switch1.case1.btn_mechdel.enable = !btnActiveFlag; //공통&약품 삭제버튼
  104. switch1.case1.btn_mechsave.enable = !btnActiveFlag; //공통&약품 저장버튼
  105. // btn_deptcon.disabled = false; //부서 적용버튼
  106. // btn_deptdel.disabled = false; //부서 삭제버튼
  107. // btn_deptsave.disabled = false; //부서 저장버튼
  108. // btn_apply.disabled = false; //적용 버튼
  109. //------------------------------------
  110. //--------(20080514)
  111. //fMechSerch("grdclick"); //화면 open 시 공통&약품도 조회함(막음(20080520)
  112. //--------(20080519)
  113. // grd_dtimList.frozenCols = grd_dtimList.colRef("direccd")+1;
  114. // grd_mechList.frozenCols = grd_mechList.colRef("prcpcd")+1;
  115. // grd_deptList.frozenCols = grd_deptList.colRef("direccd")+1;
  116. }
  117. /**
  118. * @group :
  119. * @ver : 2007.04.19
  120. * @by : 하재륜
  121. * @---------------------------------------------------
  122. * @type : function
  123. * @access : public
  124. * @desc : 용법코드 조회 후 콤보박스에 저장
  125. * @param : direccd
  126. * @return : mthdcd
  127. * @---------------------------------------------------
  128. */
  129. function fmthdChange(flg){
  130. switch1.case1.cmb_deptBaseflg.value = switch1.case1.cmb_baseflg.value;
  131. var direccd = ds_init.getColumn(0, "A0017list");
  132. var mthdcd = ds_init.getColumn(0, "mthdcdlist");
  133. ds_send.clearData();
  134. ds_send.addRow();
  135. ds_send.setColumn(0, "direccd", direccd);
  136. ds_send.setColumn(0, "mthdcd", mthdcd);
  137. if(flg=="mthdcd") {
  138. ds_init_mthdcdlist.clearData();
  139. ds_init_mthdcdlist_1.setColumn(0, "basecnt","");
  140. ds_send.setColumn(0, "flg", "mthdcd");
  141. var oParam = {};
  142. oParam.id = "TRMNR07501";
  143. oParam.service = "caremedirecapp.CareMediDataRec";
  144. oParam.method = "reqAstMthd";
  145. oParam.inds = "reqAstMthd=ds_send";
  146. oParam.outds = "ds_init_mthdcdlist=mthdcdlist";
  147. oParam.async = false;
  148. //oParam.callback = "cf_TRMNR07501";
  149. tranf_submit(oParam); //용법구분에 따른 용법코드추출
  150. //용법구분과 공통&약품과는 관계가 없다.(20080520이전) ==> 관계있음(20080520)
  151. ds_main_picmmech_picmmechList.clearData();
  152. ds_init.setColumn(0, "mthdcdlist",""); //
  153. fSearch();// 용법별 조회
  154. }else if(flg=="basecnt"){
  155. fSearch();// 용법별 조회
  156. //용법과 약품코드는 관계가 없으므로 조회기능을 막는다.(20080519)
  157. fMechSerch("direccd");// 약품코드별 조회
  158. }
  159. }
  160. /**
  161. * @group :
  162. * @ver : 2007.04.19
  163. * @by : 하재륜
  164. * @---------------------------------------------------
  165. * @type : function
  166. * @access : public
  167. * @desc : 기준시간관리 저장(공통/용법)
  168. * 단일 저장
  169. * @param :
  170. * @return :
  171. * @---------------------------------------------------
  172. */
  173. function fDtimSave() {
  174. var cnt = ds_main_mnrmdtim_mnrmdtimList.rowcount - 1;
  175. var chkcnt = 0;
  176. var rowstatus = "";
  177. var direccd = "";
  178. var baseflag = "";
  179. var exectims = "";
  180. var drugtmspec = "";
  181. var drugtmspecspl = "";
  182. var drugtmspeccal = "";
  183. var drugtmspeccalspl = "";
  184. var comyn = "";
  185. var grpno = "";
  186. var prcpcd = "";
  187. var deptcd = "";
  188. //공통&용법 그리드 check row 체크
  189. for(var i = 0 ;i <= cnt ; i++){
  190. if(ds_main_mnrmdtim_mnrmdtimList.getColumn(i, "status")=="true"){
  191. chkcnt++;
  192. }
  193. }
  194. if(chkcnt < 1){
  195. sysf_messageBox("저장할 항목을 ","C002");
  196. return;
  197. }
  198. var sData = fSaveHeader();
  199. for(var i = 0; i <= cnt; i++){
  200. rowstatus = ds_main_mnrmdtim_mnrmdtimList.getRowType(i);
  201. //1:insert 2:update 3:insert&new : (20080517)
  202. if(rowstatus == 2 || rowstatus == 4 ){
  203. direccd = utlf_transNullToEmpty(xDtimList.getColumn(i, "direccd"));
  204. baseflag = utlf_transNullToEmpty(xDtimList.getColumn(i, "baseflag"));
  205. exectims = utlf_transNullToEmpty(xDtimList.getColumn(i, "exectims"));
  206. drugtmspec = utlf_transNullToEmpty(xDtimList.getColumn(i, "drugtmspec"));
  207. drugtmspecspl = utlf_transNullToEmpty(drugtmspec.split(" "));
  208. drugtmspeccal = utlf_transNullToEmpty(xDtimList.getColumn(i, "drugtmspeccal"));
  209. drugtmspeccalspl = utlf_transNullToEmpty(drugtmspeccal.split(" "));
  210. comnyn = utlf_transNullToEmpty(xDtimList.getColumn(i, "comnyn"));
  211. grpno = utlf_transNullToEmpty(xDtimList.getColumn(i, "grpno"));
  212. //----------------------------------------------------------------------------------
  213. //등록또는 수정시 서버로직에서 삭제후 신규등록으로 처리(기준시간(pk)이 변경될수가 있으므로)
  214. //row가 다르면 일련번호가 1부터 시작
  215. //----------------------------------------------------------------------------------
  216. for(var j = 0; j < exectims; j++){
  217. sData += direccd + "▦"; // 용법코드
  218. sData += "ALL" + "▦"; // 처방코드
  219. sData += "ALL" + "▦"; // 부서코드
  220. sData += (j+1) + "▦"; // 일련번호
  221. sData += baseflag + "▦"; // 기준구분
  222. sData += drugtmspecspl[j] + "▦"; // 지정시간
  223. sData += parseInt(drugtmspeccalspl[j] / 2400) + "▦"; // 기준일수
  224. sData += drugtmspeccalspl[j] + "▦"; // 실제시간
  225. sData += exectims + "▦"; // 수행횟수
  226. sData += comnyn + "▦"; // 기본값여부
  227. sData += drugtmspec + "▦"; // 투여시간text표시
  228. sData += drugtmspeccal + "▦"; // 투여시간text표시(24시간 기준)
  229. sData += grpno + "▦"; // 그룹번호(20080515)
  230. sData += "fDtimSave" + "▩"; // 코드구분자
  231. }
  232. chkcnt++
  233. }
  234. }
  235. if(chkcnt == 0){
  236. sysf_messageBox("저장할 항목을 ","C002");
  237. return;
  238. }
  239. ds_send.clearData();
  240. ds_send.addRow();
  241. ds_send_sData.clearData();
  242. dsf_setCSVToDs("ds_send_sData", sData);
  243. //------------------test
  244. var oParam = {};
  245. oParam.id = "TRMNR07501";
  246. oParam.service = "caremedirecapp.CareMediDataRec";
  247. oParam.method = "reqsetAstMthd";
  248. oParam.inds = "reqsetAstMthd=ds_send_sData";
  249. oParam.outds = "";
  250. oParam.async = false;
  251. //oParam.callback = "cf_TRMNR07501";
  252. tranf_submit(oParam);
  253. //model.setValue("/root/init/mthdcdlist", "");
  254. fSearch(); //공통&용법 조회
  255. }
  256. function fDtimSave_OLD(){
  257. var apnttm;
  258. var basedayno;
  259. var orgtm;
  260. var baseflag = ds_init.getColumn(0, "A0017list");
  261. var direccd = ds_init.getColumn(0, "mthdcdlist");
  262. var exectims = ds_init_mthdcdlist_1.getColumn(0, "basecnt");
  263. var comnyn = ds_hidden.getColumn(0, "comnyn");
  264. var drugtmspec = "";//투여시간 text 형시으로 표시
  265. var drugtmspeccal = "";//투여시간 text 형시으로 표시(익일시간 추가)
  266. if(utlf_isNull(baseflag)){
  267. sysf_messageBox("기준구분을 ","C002");
  268. return;
  269. }
  270. if(utlf_isNull(direccd)){
  271. sysf_messageBox("용법종류를 ","C002");
  272. return;
  273. }
  274. if(utlf_isNull(exectims)){
  275. sysf_messageBox("투약회수를 ","C002");
  276. return;
  277. }
  278. var time = "";
  279. var day = "";
  280. drugtmspec = "";
  281. for (var i=1 ; i<=exectims ; i++){
  282. time = switch1.case1.grd_mnrmdtim.getCellValue(0, i);
  283. day = switch1.case1.grd_mnrmdtim.getCellValue(1,i);
  284. if(i != 1) {
  285. drugtmspec += " ";
  286. drugtmspeccal += " ";
  287. }
  288. if(day == "0" || utlf_isNull(day)){
  289. drugtmspec += time;
  290. drugtmspeccal += time;
  291. }else{
  292. drugtmspec += time;
  293. time = (Number(time) + Number(day) * 2400);
  294. drugtmspeccal += Number(time);
  295. }
  296. }
  297. var sData = "";
  298. //헤드
  299. sData = "direccd"; // 용법코드
  300. sData += "▦prcpcd"; // 처방코드
  301. sData += "▦deptcd"; // 부서코드
  302. sData += "▦seqno"; // 일련번호
  303. sData += "▦baseflag"; // 기준구분
  304. sData += "▦apnttm"; // 지정시간
  305. sData += "▦basedayno"; // 기준일수
  306. sData += "▦orgtm"; // 실제시간
  307. sData += "▦exectims"; // 수행횟수
  308. sData += "▦comnyn"; // 공통여부
  309. sData += "▦drugtmspec"; // 투여시간text표시
  310. sData += "▦drugtmspeccal"; // 코드구분자
  311. sData += "▦flg"; // 투여시간text표시(24시간 기준)
  312. sData += "▩"; // Record(Row) 분리기호
  313. for(var i=1 ; i<=exectims ; i++){
  314. apnttm = switch1.case1.grd_mnrmdtim.getCellValue(0, i);
  315. basedayno = switch1.case1.grd_mnrmdtim.getCellValue(1, i);
  316. if(utlf_isNull(basedayno)) {
  317. basedayno = "0";
  318. orgtm = apnttm;
  319. }else if(basedayno == "0"){
  320. orgtm = apnttm;
  321. }else if(basedayno == "1"){
  322. orgtm = Number(apnttm) + 2400;
  323. }else{}
  324. orgtm = fCarec_GetFillZeno(orgtm,4,0);
  325. if(!(utlf_isNull(switch1.case1.grd_mnrmdtim.getCellValue(1, i)) || switch1.case1.grd_mnrmdtim.getCellValue(1, i) == "0" || switch1.case1.grd_mnrmdtim.getCellValue(1, i) == "1") ){
  326. sysf_messageBox("Day 항목은 0 또는 1 만 ","C001");
  327. return;
  328. }
  329. //data
  330. sData += direccd +"▦";
  331. sData += "ALL" +"▦";
  332. sData += "ALL" +"▦";
  333. sData += i +"▦";
  334. sData += baseflag +"▦";
  335. sData += apnttm +"▦";
  336. sData += basedayno +"▦";
  337. sData += orgtm +"▦";
  338. sData += exectims +"▦";
  339. sData += comnyn +"▦";
  340. sData += drugtmspec +"▦";
  341. sData += drugtmspeccal+"▦";
  342. sData += "fDtimSave" +"▩";
  343. }
  344. ds_send.clearData();
  345. ds_send.addRow();
  346. ds_send_sData.clearData();
  347. dsf_setCSVToDs("ds_send_sData", sData);
  348. var oParam = {};
  349. oParam.id = "TRMNR07501";
  350. oParam.service = "caremedirecapp.CareMediDataRec";
  351. oParam.method = "reqsetAstMthd";
  352. oParam.inds = "reqsetAstMthd=ds_send_sData";
  353. oParam.outds = "";
  354. oParam.async = false;
  355. //oParam.callback = "cf_TRMNR07501";
  356. tranf_submit(oParam);
  357. ds_init.setColumn(0, "mthdcdlist", "");
  358. fSearch();
  359. }
  360. /**
  361. * @group :
  362. * @ver : 2007.04.19
  363. * @by : 하재륜
  364. * @---------------------------------------------------
  365. * @type : function
  366. * @access : public
  367. * @desc : 기준시간 저장을 위한 header
  368. * @param :
  369. * @return :
  370. * @---------------------------------------------------
  371. */
  372. function fSaveHeader() {
  373. var sData = "";
  374. sData = ""
  375. sData += "direccd" ;// 용법코드
  376. sData += "▦prcpcd" ;// 처방코드
  377. sData += "▦deptcd" ;// 부서코드
  378. sData += "▦seqno" ;// 일련번호
  379. sData += "▦baseflag" ;// 기준구분
  380. sData += "▦apnttm" ;// 지정시간
  381. sData += "▦basedayno" ;// 기준일수
  382. sData += "▦orgtm" ;// 실제시간
  383. sData += "▦exectims" ;// 수행횟수
  384. sData += "▦comnyn" ;// 공통여부
  385. sData += "▦drugtmspec" ;// 투여시간text표시
  386. sData += "▦drugtmspeccal" ;// 투여시간text표시(24시간 기준)
  387. sData += "▦grpno" ;// 그룹번호(20080515)
  388. sData += "▦flg" ;// 코드구분자
  389. sData += "▩" ;// Record(Row) 분리기호
  390. return sData;
  391. }
  392. /**
  393. * @group :
  394. * @ver : 2007.04.27
  395. * @by : 하재륜
  396. * @---------------------------------------------------
  397. * @type : function
  398. * @access : public
  399. * @desc : 투약시간기준관리(용법별)
  400. * @param :
  401. * @param :
  402. * @return :
  403. * @---------------------------------------------------
  404. */
  405. function fSearch(){
  406. var direccd = ds_init.getColumn(0, "mthdcdlist");
  407. if(utlf_isNull(direccd)) direccd = "%";
  408. for (var i=1 ; i<=12 ; i++){
  409. ds_main_dtiminfo_dtim.setColumn(0, utlf_transNullToEmpty(switch1.case1.grd_mnrmdtim.getCellProperty("Body", i, "text")).replace("bind:", ""), "");
  410. ds_main_dtiminfo_dtim.setColumn(1, utlf_transNullToEmpty(switch1.case1.grd_mnrmdtim.getCellProperty("Body", i, "text")).replace("bind:", ""), "");
  411. }
  412. ds_main_mnrmdtim_mnrmdtimList.clearData();
  413. ds_send.clearData();
  414. ds_send.addRow();
  415. ds_send.setColumn(0, "baseflag", ds_init.getColumn(0, "A0017list"));
  416. ds_send.setColumn(0, "direccd",direccd);
  417. var oParam = {};
  418. oParam.id = "TRMNR07504";
  419. oParam.service = "caremedirecapp.CareMediDataRec";
  420. oParam.method = "reqMnrmdtim";
  421. oParam.inds = "reqAstDtim=ds_send";
  422. oParam.outds = "ds_main_mnrmdtim_mnrmdtimList=mnrmdtimList";
  423. oParam.async = false;
  424. //oParam.callback = "cf_TRMNR07504";
  425. tranf_submit(oParam);
  426. if( utlf_isNull(ds_main_mnrmdtim_mnrmdtimList.getColumnInfo("status")) ){
  427. ds_main_mnrmdtim_mnrmdtimList.addColumn("status", "string");
  428. }
  429. ds_main_mnrmdtim_mnrmdtimList.rowposition = -1;
  430. }
  431. /**
  432. * @group :
  433. * @ver : 2007.04.27
  434. * @by : 하재륜
  435. * @---------------------------------------------------
  436. * @type : function
  437. * @access : public
  438. * @desc : 투약시간기준관리(약품코드별)
  439. * @param :
  440. * @param :
  441. * @return :
  442. * @---------------------------------------------------
  443. */
  444. function fMechSerch(gubun){
  445. ds_main_picmmech_picmmechList.clearData(); //A11CP
  446. ds_send.clearData();
  447. ds_send.addRow();
  448. ds_send.setColumn(0, "baseflag", ds_init.getColumn(0, "A0017list"));
  449. if (gubun=="direccd"){
  450. var direccd = ds_init.getColumn(0, "mthdcdlist");
  451. ds_send.setColumn(0, "direccd",direccd);
  452. }else if(gubun=="grdclick"){
  453. //공통 용법이 변경되면 공통 약품이 변경된어야 한다.
  454. var direccd = ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "status");
  455. var direccd = ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "direccd");
  456. ds_send.setColumn(0, "direccd",direccd);
  457. }
  458. var oParam = {};
  459. oParam.id = "TRMNR07505";
  460. oParam.service = "caremedirecapp.CareMediDataRec";
  461. oParam.method = "reqPamMech";
  462. oParam.inds = "reqPamMech=ds_send";
  463. oParam.outds = "ds_main_picmmech_picmmechList=picmmechList";
  464. oParam.async = false;
  465. //oParam.callback = "cf_TRMNR07505";
  466. tranf_submit(oParam);
  467. if( utlf_isNull(ds_main_picmmech_picmmechList.getColumnInfo("status")) ){
  468. ds_main_picmmech_picmmechList.addColumn("status", "string");
  469. }
  470. ds_main_picmmech_picmmechList.rowposition = -1;
  471. }
  472. /**
  473. * @group :
  474. * @ver : 2007.05.08
  475. * @by : 하재륜
  476. * @---------------------------------------------------
  477. * @type : function
  478. * @access : public
  479. * @desc : 투약시간기준관리(약품코드별) 적용
  480. * @param :
  481. * @param :
  482. * @return :
  483. * @---------------------------------------------------
  484. */
  485. function fMechApply(){
  486. var pGrdmnrmdtim = switch1.case1.grd_mnrmdtim; //설정입력그리드
  487. //var pPathmnrmdtim = "/root/main/dtiminfo/dtim"; //설정입력그리드 path
  488. var pGrdmechList = ds_main_picmmech_picmmechList; //설정반영그리드
  489. var pPathmechList = ds_main_picmmech_picmmechList; //설정반영그리드 path
  490. //체크
  491. // if(pGrdmnrmdtim.rows < 3){
  492. // messageBox("공통투약시간에 설정되지않았습니다.","E999");
  493. // return;
  494. // }
  495. if(utlf_isNull(ds_init_mthdcdlist_1.getColumn(0, "basecnt"))){
  496. sysf_messageBox("공통투약시간에 설정되지않았습니다.","E999");
  497. return;
  498. }
  499. if(ds_main_picmmech_picmmechList.rowposition < 0){
  500. return;
  501. }
  502. //---------------------------------
  503. // 투약시간 설정값 추출
  504. //---------------------------------
  505. var drugtmspec = "";; //투여시간 text 형시으로 표시(화면용)
  506. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(자료용)(24시간기준)
  507. var day = "";
  508. //var dtim_tims = model.getValue(pPathdtimList + "[" + pGrdtimList.row + "]/exectims"); //투약회수
  509. var dtim_tims = ds_init_mthdcdlist_1.getColumn(0, "basecnt"); //투약회수
  510. //설정입력그리드를 돌면서 시간(n row)을 한줄의 텍스트로 만듬
  511. for (var i = 1 ; i <= dtim_tims ; i++){
  512. time = utlf_transNullToEmpty(switch1.case1.grd_mnrmdtim.getCellValue(0, i));
  513. day = switch1.case1.grd_mnrmdtim.getCellValue(1, i);
  514. if(time.length != 4){
  515. sysf_messageBox("시간은 4자리를","C001");
  516. return;
  517. }
  518. if(i != 1) {
  519. drugtmspec += " ";
  520. drugtmspeccal += " ";
  521. }
  522. drugtmspec += fCarec_GetFillZeno(time,4,0);
  523. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  524. }
  525. //-----------------------------------------------
  526. //설정반영그리드에 반영
  527. //신규가 아니면 수정으로 처리한다.(20080519)
  528. //-----------------------------------------------
  529. var rowstatus = ds_main_picmmech_picmmechList.getRowType(ds_main_picmmech_picmmechList.rowposition);
  530. if (rowstatus == 2) {
  531. } else {
  532. ds_main_picmmech_picmmechList.enableevent = false;
  533. ds_main_picmmech_picmmechList.updatecontrol = false;
  534. ds_main_picmmech_picmmechList.setRowType(ds_main_picmmech_picmmechList.rowposition, 4); //수정으로상태변경
  535. ds_main_picmmech_picmmechList.updatecontrol = true;
  536. ds_main_picmmech_picmmechList.enableevent = true;
  537. }
  538. ds_main_picmmech_picmmechList.setColumn(ds_main_picmmech_picmmechList.rowposition, "status", "true"); //check
  539. ds_main_picmmech_picmmechList.setColumn(ds_main_picmmech_picmmechList.rowposition, "exectims", dtim_tims); //투여회수
  540. ds_main_picmmech_picmmechList.setColumn(ds_main_picmmech_picmmechList.rowposition, "drugtmspec", drugtmspec); //투약시간
  541. ds_main_picmmech_picmmechList.setColumn(ds_main_picmmech_picmmechList.rowposition, "drugtmspeccal", drugtmspeccal); //투약시간
  542. switch1.case1.rdo_comnyn.enable = false; //공통&약품인 경우는 무조건 'Y'이므로 수정할수 없다.
  543. }
  544. function fMechApply_OLD(){
  545. if(grd_mechList.row<1){
  546. return;
  547. }
  548. var cnt = grd_mechList.rows-1;
  549. var chkcnt =0;
  550. for(var i=1 ;i <= cnt ; i++){
  551. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status"))=="true"){
  552. chkcnt++;
  553. }
  554. }
  555. if(chkcnt<1){
  556. messageBox("적용할 항목을 ","C002");
  557. return;
  558. }
  559. var direccd = ds_init.getColumn(0, "mthdcdlist");
  560. var exectims = ds_init_mthdcdlist_1.getColumn(0, "basecnt");
  561. var drugtmspec = ""; //투여시간 text 형시으로 표시
  562. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(24시간기준)
  563. var time = "";
  564. var day = "";
  565. for (var i=1 ; i<=exectims ; i++){
  566. if(i==1){
  567. drugtmspec = grd_mnrmdtim.valueMatrix(1,i);
  568. }else{
  569. drugtmspec = drugtmspec + " " + grd_mnrmdtim.valueMatrix(1,i);
  570. }
  571. }
  572. for (var i=1 ; i <= exectims ; i++){
  573. time = grd_mnrmdtim.valueMatrix(1,i);
  574. day = grd_mnrmdtim.valueMatrix(2,i);
  575. if(i != 1) {
  576. drugtmspeccal += " ";
  577. }
  578. if(day == "0" || day == ""){
  579. drugtmspeccal += time;
  580. }else{
  581. time = (Number(time) + Number(day) * 2400);
  582. drugtmspeccal += Number(time);
  583. }
  584. }
  585. for(var i=1 ;i <= cnt ; i++){
  586. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status")) == "true"){
  587. model.setValue("/root/main/picmmech/picmmechList["+i+"]/direccd", direccd );
  588. model.setValue("/root/main/picmmech/picmmechList["+i+"]/exectims", exectims );
  589. model.setValue("/root/main/picmmech/picmmechList["+i+"]/drugtmspec", drugtmspec );
  590. model.setValue("/root/main/picmmech/picmmechList["+i+"]/drugtmspeccal", drugtmspeccal );
  591. }
  592. }
  593. for(var j=1 ;j < grd_dtimList.rows ; j++){
  594. model.setValue("/root/main/mnrmdtim/mnrmdtimList["+j+"]/status", "");
  595. }
  596. model.refresh();
  597. }
  598. /**
  599. * @group :
  600. * @ver : 2007.04.17
  601. * @by : 하재륜
  602. * @---------------------------------------------------
  603. * @type : function
  604. * @access : public
  605. * @desc : 기준시간 삭제
  606. * @param : dtim : 용법별 , mech : 약품코드별 , dept : 부서별
  607. * @param :
  608. * @return :
  609. * @---------------------------------------------------
  610. */
  611. function fDtimDelete(gubun) {
  612. var cntrows ;
  613. var chkcnt = 0;
  614. var xpathDtim;
  615. //삭제 버튼 구분
  616. if(gubun=="dtim"){// 용법별
  617. cntrows = ds_main_mnrmdtim_mnrmdtimList.rowcount-1;
  618. xpathGubun = ds_main_mnrmdtim_mnrmdtimList;
  619. }else if(gubun=="mech"){// 약품코드별
  620. cntrows = ds_main_picmmech_picmmechList.rowcount-1;
  621. xpathGubun = ds_main_picmmech_picmmechList;
  622. }else if(gubun=="dept"){// 부서별
  623. cntrows = ds_main_deptdtim_deptdtimList.rowcount-1;
  624. xpathGubun = ds_main_deptdtim_deptdtimList;
  625. }
  626. var chkstatus ;
  627. for(var i=0 ;i <= cntrows ; i++){
  628. chkstatus = xpathGubun.getColumn(i, "status");
  629. if(chkstatus =="true"){
  630. chkcnt = chkcnt+1;
  631. }
  632. }
  633. if(chkcnt < 1){
  634. sysf_messageBox("삭제할 항목을 ","C002");
  635. return;
  636. }
  637. var sData = "";
  638. sData = "";
  639. sData += "direccd" ;// 용법코드
  640. sData += "▦prcpcd" ;// 처방코드
  641. sData += "▦deptcd" ;// 부서코드
  642. sData += "▦baseflag" ;// 기준구분
  643. sData += "▦exectims" ;// 수행횟수
  644. sData += "▦flg" ;// 코드구분자
  645. sData += "▦grpno" ;// 그룹번호
  646. sData += "▩" ;// Record(Row) 분리기호
  647. var direccd = "";
  648. var prcpcd = "";
  649. var deptcd = "";
  650. var baseflag = "";
  651. var exectims = "";
  652. var grpno = "";
  653. var delcnt = 0; //삭제건수 여부
  654. var pGrd;
  655. for(var i=0 ;i <= cntrows ; i++){
  656. chkstatus = xpathGubun.getColumn(i, "status");
  657. if (chkstatus =="true"){
  658. if(gubun == "dtim"){
  659. pGrd = switch1.case1.grd_dtimList; //공통&용법별조회
  660. }else if(gubun == "mech"){
  661. pGrd = switch1.case1.grd_mechList; //공통&약품코드별조회
  662. }else if(gubun == "dept"){
  663. pGrd = switch1.case1.grd_deptList; //부서&(용법||약품)별조회
  664. }else{}
  665. //상태체크
  666. // var rowstatus = pGrd.rowstatus(i);
  667. // if(rowstatus == "1" || rowstatus == "3") {
  668. //// pGrd.deleteRow(i); //신규row는 그냥 삭제함 , 넘어가고 재조회시 없어짐
  669. // } else {
  670. direccd = utlf_transNullToEmpty(xpathGubun.getColumn(i, "direccd"));
  671. prcpcd = utlf_transNullToEmpty(xpathGubun.getColumn(i, "prcpcd"));
  672. deptcd = utlf_transNullToEmpty(xpathGubun.getColumn(i, "deptcd"));
  673. baseflag = utlf_transNullToEmpty(xpathGubun.getColumn(i, "baseflag"));
  674. exectims = utlf_transNullToEmpty(xpathGubun.getColumn(i, "exectims"));
  675. grpno = utlf_transNullToEmpty(xpathGubun.getColumn(i, "grpno"));
  676. //if (direccd == "" || direccd == "ALL") {
  677. // sData += "ALL" + "▦";
  678. //} else {
  679. sData += direccd + "▦";
  680. //}
  681. if (utlf_isNull(prcpcd) || prcpcd == "ALL") {
  682. sData += "ALL" + "▦";
  683. } else {
  684. sData += prcpcd + "▦";
  685. }
  686. if (utlf_isNull(deptcd) || deptcd == "ALL") {
  687. sData += "ALL" + "▦";
  688. } else {
  689. sData += deptcd + "▦";
  690. }
  691. sData += baseflag + "▦";
  692. sData += exectims + "▦";
  693. sData += "fDtimDelete" + "▦";
  694. sData += grpno + "▩";
  695. /*
  696. sData += model.getValue(xpathGubun+"["+i+"]/direccd") + "▦";
  697. if(gubun=="dept"){
  698. if((model.getValue(xpathGubun+"["+i+"]/prcpcd"))=="" ) {
  699. sData += "ALL" + "▦";
  700. }else
  701. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  702. }else{
  703. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  704. }
  705. sData += model.getValue(xpathGubun+"["+i+"]/deptcd") + "▦";
  706. sData += model.getValue(xpathGubun+"["+i+"]/baseflag") + "▦";
  707. sData += model.getValue(xpathGubun+"["+i+"]/exectims") + "▦";
  708. sData += "fDtimDelete" + "▦";
  709. sData += "" + "▩";
  710. */
  711. delcnt += 1; //삭제건수 증가
  712. // }
  713. }
  714. }
  715. // //삭제건수 체크
  716. // if (delcnt <= 0) return;
  717. ds_send.clearData();
  718. ds_send.addRow();
  719. ds_send_sData.clearData();
  720. dsf_setCSVToDs("ds_send_sData", sData);
  721. //-------------(test)
  722. //return;
  723. var oParam = {};
  724. oParam.id = "TRMNR07501";
  725. oParam.service = "caremedirecapp.CareMediDataRec";
  726. oParam.method = "reqsetAstMthd";
  727. oParam.inds = "reqsetAstMthd=ds_send_sData";
  728. oParam.outds = "";
  729. oParam.async = false;
  730. //oParam.callback = "cf_TRMNR07501";
  731. tranf_submit(oParam);
  732. if(gubun == "dtim"){
  733. fSearch(); //공통&용법별조회
  734. }else if(gubun == "mech"){
  735. fMechSerch("direccd"); //공통&약품코드별조회
  736. }else if(gubun == "dept"){
  737. fDeptSerch(); //부서&(용법||약품)별조회
  738. }else{}
  739. }
  740. function fDtimDelete_OLD(gubun) {
  741. var cnt ;
  742. var chkcnt = 0;
  743. var xpathDtim;
  744. //삭제 버튼 구분
  745. if(gubun=="dtim"){// 용법별
  746. cnt = grd_dtimList.rows-1;
  747. xpathGubun = "/root/main/mnrmdtim/mnrmdtimList";
  748. }else if(gubun=="mech"){// 약품코드별
  749. cnt = grd_mechList.rows-1;
  750. xpathGubun = "/root/main/picmmech/picmmechList";
  751. }else if(gubun=="dept"){// 부서별
  752. cnt = grd_deptList.rows-1;
  753. xpathGubun = "/root/main/deptdtim/deptdtimList";
  754. }
  755. for(var i=1 ;i <= cnt ; i++){
  756. if((model.getValue(xpathGubun+"["+i+"]/status"))=="true"){
  757. chkcnt = chkcnt+1;
  758. }
  759. }
  760. if(chkcnt < 1){
  761. messageBox("삭제할 항목을 ","C002");
  762. return;
  763. }
  764. var sData = "direccd" ;// 용법코드
  765. sData += "▦prcpcd" ;// 처방코드
  766. sData += "▦deptcd" ;// 부서코드
  767. sData += "▦baseflag" ;// 기준구분
  768. sData += "▦exectims" ;// 수행횟수
  769. sData += "▦flg" ;// 코드구분자
  770. sData += "▩" ;// Record(Row) 분리기호
  771. for(var i=1 ;i <= cnt ; i++){
  772. if ((model.getValue(xpathGubun+"["+i+"]/status"))=="true"){
  773. sData += model.getValue(xpathGubun+"["+i+"]/direccd") + "▦";
  774. if(gubun=="dept"){
  775. if((model.getValue(xpathGubun+"["+i+"]/prcpcd"))=="" ) {
  776. sData += "ALL" +"▦";
  777. }else
  778. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  779. }else{
  780. sData += model.getValue(xpathGubun+"["+i+"]/prcpcd") + "▦";
  781. }
  782. sData += model.getValue(xpathGubun+"["+i+"]/deptcd") + "▦";
  783. sData += model.getValue(xpathGubun+"["+i+"]/baseflag") + "▦";
  784. sData += model.getValue(xpathGubun+"["+i+"]/exectims") + "▦";
  785. sData += "fDtimDelete" + "▩";
  786. }
  787. }
  788. model.removenode("/root/send");
  789. model.makeValue("/root/send/sData", sData );
  790. submit("TXMNR07501");
  791. if(gubun == "dtim"){
  792. fSearch();//용법별 조회
  793. }else if(gubun == "mech"){
  794. fMechSerch("direccd");//약품코드별 조회
  795. }else if(gubun == "dept"){
  796. fDeptSerch();//부서별 조회
  797. }else{}
  798. }
  799. /**
  800. * @group :
  801. * @ver : 2007.04.17
  802. * @by : 하재륜
  803. * @---------------------------------------------------
  804. * @type : function
  805. * @access : public
  806. * @desc : 공통 & 약품코드별 저장
  807. * @param :
  808. * @param :
  809. * @return :
  810. * @---------------------------------------------------
  811. */
  812. function fMechSave() {
  813. var cnt = ds_main_picmmech_picmmechList.rowcount-1;
  814. var chkcnt = 0;
  815. var rowstatus = "";
  816. var direccd = "";
  817. var baseflag = "";
  818. var exectims = "";
  819. var drugtmspec = "";
  820. var drugtmspecspl = "";
  821. var drugtmspeccal = "";
  822. var drugtmspeccalspl = "";
  823. var comyn = "";
  824. var grpno = "";
  825. var prcpcd = "";
  826. var deptcd = "";
  827. for(var i = 0 ;i <= cnt ; i++){
  828. if(ds_main_picmmech_picmmechList.getColumn(i, "status")=="true"){
  829. if(utlf_isNull(ds_main_picmmech_picmmechList.getColumn(i, "hngnm"))){
  830. sysf_messageBox("잘못된 약품코드입니다 다시 ","C001");
  831. return;
  832. }
  833. if(utlf_isNull(ds_main_picmmech_picmmechList.getColumn(i, "drugtmspec"))){
  834. sysf_messageBox("투약시간이 적용되지 않았습니다. 다시 ","C001");
  835. return;
  836. }
  837. // if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/direccd")) == ""){
  838. // messageBox("적용버튼을 누른후 ","C001");
  839. // return;
  840. // }
  841. chkcnt++;
  842. }
  843. }
  844. if(chkcnt < 1){
  845. sysf_messageBox("저장할 항목을 ","C002");
  846. return;
  847. }
  848. var sData = fSaveHeader();
  849. for(var i = 0; i <= cnt; i++){
  850. rowstatus = ds_main_picmmech_picmmechList.getRowType(i);
  851. //1:insert 2:update 3:insert&new : (20080517)
  852. if(rowstatus == 2 || rowstatus == 4 ){
  853. direccd = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "direccd"));
  854. prcpcd = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "prcpcd"));
  855. baseflag = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "baseflag"));
  856. //baseflag = "-";
  857. exectims = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "exectims"));
  858. drugtmspec = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "drugtmspec"));
  859. drugtmspecspl = drugtmspec.split(" ");
  860. drugtmspeccal = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "drugtmspeccal"));
  861. drugtmspeccalspl = drugtmspeccal.split(" ");
  862. comnyn = "Y";
  863. grpno = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(i, "grpno"));
  864. //----------------------------------------------------------------------------------
  865. //등록또는 수정시 서버로직에서 삭제후 신규등록으로 처리(기준시간(pk)이 변경될수가 있으므로)
  866. //row가 다르면 일련번호가 1부터 시작
  867. //----------------------------------------------------------------------------------
  868. for(var j = 0; j < exectims; j++){
  869. //sData += "ALL" +"▦"; // 용법코드
  870. sData += direccd +"▦"; // 용법코드
  871. sData += prcpcd +"▦"; // 처방코드
  872. sData += "ALL" +"▦"; // 부서코드
  873. sData += (j+1) +"▦"; // 일련번호
  874. sData += baseflag +"▦"; // 기준구분
  875. sData += drugtmspecspl[j] +"▦"; // 지정시간
  876. sData += parseInt(drugtmspeccalspl[j] / 2400) +"▦"; // 기준일수
  877. sData += drugtmspeccalspl[j] +"▦"; // 실제시간
  878. sData += exectims +"▦"; // 수행횟수
  879. sData += comnyn +"▦"; // 기본값여부
  880. sData += drugtmspec +"▦"; // 투여시간text표시
  881. sData += drugtmspeccal +"▦"; // 투여시간text표시(24시간 기준)
  882. sData += grpno +"▦"; // 그룹번호(20080515)
  883. sData += "fDtimSave" +"▩"; // 코드구분자
  884. /*
  885. sData += grd_mechList.valueMatrix(i,3) +"▦"; // 용법코드
  886. sData += grd_mechList.valueMatrix(i,1) +"▦"; // 처방코드
  887. sData += "ALL" +"▦"; // 부서코드
  888. sData += '1' +"▦"; // 일련번호
  889. sData += model.getValue("/root/init/A0017list") +"▦"; // 기준구분
  890. sData += "" +"▦"; // 지정시간
  891. sData += "" +"▦"; // 기준일수
  892. sData += "" +"▦"; // 실제시간
  893. sData += grd_mechList.valueMatrix(i,4) +"▦"; // 수행횟수
  894. sData += model.getValue("/root/hidden/comnyn") +"▦"; // 기본값여부
  895. sData += grd_mechList.valueMatrix(i,5) +"▦"; // 투여시간text표시
  896. sData += grd_mechList.valueMatrix(i,6) +"▦"; // 투여시간text표시(24시간 기준)
  897. sData += grd_mechList.valueMatrix(i,colgrpno) +"▦"; // 그룹번호(20080515)
  898. sData += "fDtimSave" +"▩"; // 코드구분자
  899. */
  900. }
  901. chkcnt++
  902. }
  903. }
  904. if(chkcnt == 0){
  905. sysf_messageBox("저장할 항목을 ","C002");
  906. return;
  907. }
  908. ds_send.clearData();
  909. ds_send.addRow();
  910. ds_send_sData.clearData();
  911. dsf_setCSVToDs("ds_send_sData", sData);
  912. //-----------(test)
  913. //return;
  914. var oParam = {};
  915. oParam.id = "TRMNR07501";
  916. oParam.service = "caremedirecapp.CareMediDataRec";
  917. oParam.method = "reqsetAstMthd";
  918. oParam.inds = "reqsetAstMthd=ds_send_sData";
  919. oParam.outds = "";
  920. oParam.async = false;
  921. //oParam.callback = "cf_TRMNR07501";
  922. tranf_submit(oParam);
  923. fMechSerch("grdclick"); // 공통&약품코드별 조회
  924. }
  925. function fMechSave_OLD() {
  926. var cnt = grd_mechList.rows-1;
  927. var chkcnt =0;
  928. for(var i = 1 ;i <= cnt ; i++){
  929. if((model.getValue("/root/main/picmmech/picmmechList["+i+"]/status"))=="true"){
  930. chkcnt++;
  931. }
  932. }
  933. if(chkcnt < 1){
  934. messageBox("저장할 항목을 ","C002");
  935. return;
  936. }
  937. var sData = "direccd" ;//용법코드
  938. sData += "▦prcpcd" ;//처방코드
  939. sData += "▦deptcd" ;//부서코드
  940. sData += "▦seqno" ;//일련번호
  941. sData += "▦baseflag" ;//기준구분
  942. sData += "▦apnttm" ;//지정시간
  943. sData += "▦basedayno" ;//기준일수
  944. sData += "▦orgtm" ;//실제시간
  945. sData += "▦exectims" ;//수행횟수
  946. sData += "▦comnyn" ;//공통여부
  947. sData += "▦drugtmspec" ;//투여시간text표시
  948. sData += "▦drugtmspeccal";//투여시간text표시
  949. sData += "▦flg" ;//코드구분자
  950. sData += "▩" ;//Record(Row) 분리기호
  951. for(var i = 1; i <= cnt; i++){
  952. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/status")) == "true"){
  953. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/prcpcd")) == ""){
  954. messageBox("약품코드를 ","C001");
  955. return;
  956. }
  957. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/hngnm")) == ""){
  958. messageBox("잘못된 약품코드입니다 다시 ","C001");
  959. return;
  960. }
  961. if((model.getValue("/root/main/picmmech/picmmechList[" + i + "]/direccd")) == ""){
  962. messageBox("적용버튼을 누른후 ","C001");
  963. return;
  964. }
  965. sData += grd_mechList.valueMatrix(i,3) +"▦";
  966. sData += grd_mechList.valueMatrix(i,1) +"▦";
  967. sData += "ALL" +"▦";
  968. sData += '1' +"▦";
  969. sData += ds_init.getColumn(0, "A0017list") +"▦";
  970. sData += "" +"▦";
  971. sData += "" +"▦";
  972. sData += "" +"▦";
  973. sData += grd_mechList.valueMatrix(i,4) +"▦";
  974. sData += ds_hidden.getColumn(0, "comnyn") +"▦";
  975. sData += grd_mechList.valueMatrix(i,5) +"▦";
  976. sData += grd_mechList.valueMatrix(i,6) +"▦";
  977. sData += "fDtimSave" +"▩";
  978. }
  979. }
  980. model.removenode("/root/send");
  981. model.makeValue("/root/send/sData", sData );
  982. submit("TXMNR07501");
  983. fMechSerch("direccd"); // 약품코드별 조회
  984. }
  985. /**
  986. * @group :
  987. * @ver : 2007.04.17
  988. * @by : 하재륜
  989. * @---------------------------------------------------
  990. * @type : function
  991. * @access : public
  992. * @desc : 부서별(용법 또는 약품) 저장
  993. * @param :
  994. * @param :
  995. * @return :
  996. * @---------------------------------------------------
  997. */
  998. function fDeptSave() {
  999. var cnt = ds_main_deptdtim_deptdtimList.rowcount - 1;
  1000. var chkcnt = 0;
  1001. var rowstatus = "";
  1002. var direccd = "";
  1003. var baseflag = "";
  1004. var exectims = "";
  1005. var drugtmspec = "";
  1006. var drugtmspecspl = "";
  1007. var drugtmspeccal = "";
  1008. var drugtmspeccalspl = "";
  1009. var comyn = "";
  1010. var grpno = "";
  1011. var prcpcd = "";
  1012. var deptcd = "";
  1013. //부서&(용법 || 약품) 그리드 check row 체크
  1014. for(var i = 0 ;i <= cnt ; i++){
  1015. if(ds_main_deptdtim_deptdtimList.getColumn(i, "status")=="true"){
  1016. chkcnt++;
  1017. }
  1018. }
  1019. if(chkcnt < 1){
  1020. sysf_messageBox("저장할 항목을 ","C002");
  1021. return;
  1022. }
  1023. var sData = fSaveHeader();
  1024. for(var i = 0; i <= cnt; i++){
  1025. rowstatus = ds_main_deptdtim_deptdtimList.getRowType(i);
  1026. //1:insert 2:update 3:insert&new : (20080517)
  1027. if(rowstatus == 2 || rowstatus == 4 ){
  1028. direccd = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(i, "direccd"));
  1029. prcpcd = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(i, "prcpcd"));
  1030. baseflag = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(i, "baseflag"));
  1031. deptcd = utlf_transNullToEmpty(ds_init.getColumn(0, "deptcdList"));
  1032. exectims = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(i, "exectims"));
  1033. drugtmspec = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(i, "drugtmspec"));
  1034. drugtmspecspl = drugtmspec.split(" ");
  1035. drugtmspeccal = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(i, "drugtmspeccal"));
  1036. drugtmspeccalspl = drugtmspeccal.split(" ");
  1037. comnyn = "Y"; //기본값여부 ('N'->'Y'(20080517)
  1038. grpno = utlf_transNullToEmpty(ds_main_mnrmdtim_mnrmdtimList.getColumn(i, "grpno"));
  1039. //----------------------------------------------------------------------------------
  1040. //등록또는 수정시 서버로직에서 삭제후 신규등록으로 처리(기준시간(pk)이 변경될수가 있으므로)
  1041. //row가 다르면 일련번호가 1부터 시작
  1042. //----------------------------------------------------------------------------------
  1043. for(var j = 0; j < exectims; j++){
  1044. //if (direccd == "") {
  1045. // sData += "ALL" + "▦"; // 용법코드
  1046. //} else {
  1047. sData += direccd + "▦"; // 용법코드
  1048. //}
  1049. if (prcpcd == "") {
  1050. sData += "ALL" + "▦"; // 처방코드
  1051. } else {
  1052. sData += prcpcd + "▦"; // 처방코드
  1053. }
  1054. sData += deptcd + "▦"; // 부서코드
  1055. sData += (j+1) + "▦"; // 일련번호
  1056. sData += baseflag + "▦"; // 기준구분
  1057. sData += drugtmspecspl[j] + "▦"; // 지정시간
  1058. sData += parseInt(drugtmspeccalspl[j] / 2400) + "▦"; // 기준일수
  1059. sData += drugtmspeccalspl[j] + "▦"; // 실제시간
  1060. sData += exectims + "▦"; // 수행횟수
  1061. sData += comnyn + "▦"; // 기본값여부 ('N'->'Y'(20080517)
  1062. sData += drugtmspec + "▦"; // 투여시간text표시
  1063. sData += drugtmspeccal + "▦"; // 투여시간text표시(24시간 기준)
  1064. sData += grpno + "▦"; // 그룹번호(20080515)
  1065. sData += "fDtimSave" + "▩"; // 코드구분자
  1066. }
  1067. chkcnt++
  1068. }
  1069. }
  1070. if(chkcnt == 0){
  1071. sysf_messageBox("저장할 항목을 ","C002");
  1072. return;
  1073. }
  1074. ds_send.clearData();
  1075. ds_send.addRow();
  1076. ds_send_sData.clearData();
  1077. dsf_setCSVToDs("ds_send_sData", sData);
  1078. //-------------(test)
  1079. //return;
  1080. var oParam = {};
  1081. oParam.id = "TRMNR07501";
  1082. oParam.service = "caremedirecapp.CareMediDataRec";
  1083. oParam.method = "reqsetAstMthd";
  1084. oParam.inds = "reqsetAstMthd=ds_send_sData";
  1085. oParam.outds = "";
  1086. oParam.async = false;
  1087. //oParam.callback = "cf_TRMNR07501";
  1088. tranf_submit(oParam);
  1089. fDeptSerch(); // 부서(용법 || 약품코드) 조회
  1090. }
  1091. function fDeptSave_OLD() {
  1092. var cnt = grd_deptList.rows - 1;
  1093. var chkcnt = 0;
  1094. var rowstatus = "";
  1095. var drugtmspec = "";
  1096. var drugtmspecspl = "";
  1097. var drugtmspeccal = "";
  1098. var drugtmspeccalspl = "";
  1099. var exectims = "";
  1100. var sData = "direccd▦" ; // 용법코드
  1101. sData += "prcpcd▦" ; // 처방코드
  1102. sData += "deptcd▦" ; // 부서코드
  1103. sData += "seqno▦" ; // 일련번호
  1104. sData += "baseflag▦" ; // 기준구분
  1105. sData += "apnttm▦" ; // 지정시간
  1106. sData += "basedayno▦" ; // 기준일수
  1107. sData += "orgtm▦" ; // 실제시간
  1108. sData += "exectims▦" ; // 수행횟수
  1109. sData += "comnyn▦" ; // 공통여부
  1110. sData += "drugtmspec▦" ; // 투여시간text표시
  1111. sData += "drugtmspeccal▦"; // 투여시간text표시(24시간 기준)
  1112. sData += "flg▩" ; // 코드구분자
  1113. for(var i = 1; i <= cnt; i++){
  1114. rowstatus = grd_deptList.rowstatus(i);
  1115. if(rowstatus == "1" || rowstatus == "3"){
  1116. exectims = model.getValue(xDeptList + "[" + i + "]/exectims");
  1117. drugtmspec = model.getValue(xDeptList + "[" + i + "]/drugtmspec");
  1118. drugtmspecspl = drugtmspec.split(" ");
  1119. drugtmspeccal = model.getValue(xDeptList + "[" + i + "]/drugtmspeccal");
  1120. drugtmspeccalspl = drugtmspeccal.split(" ");
  1121. for(var j = 0; j < exectims; j++){
  1122. sData += model.getValue(xDeptList + "[" + i + "]/direccd") + "▦";
  1123. sData += "ALL" + "▦";
  1124. sData += ds_init.getColumn(0, "deptcdList") + "▦";
  1125. sData += (j+1) + "▦";
  1126. sData += model.getValue(xDeptList + "[" + i + "]/baseflag") + "▦";
  1127. sData += drugtmspecspl[j] + "▦";
  1128. sData += parseInt(drugtmspeccalspl[j] / 2400) + "▦";
  1129. sData += drugtmspeccalspl[j] + "▦";
  1130. sData += exectims + "▦";
  1131. sData += "N" + "▦";
  1132. sData += drugtmspec + "▦";
  1133. sData += drugtmspeccal + "▦";
  1134. sData += "fDtimSave" + "▩";
  1135. }
  1136. chkcnt++
  1137. }
  1138. }
  1139. if(chkcnt == 0){
  1140. messageBox("저장할 항목을 ","C002");
  1141. return;
  1142. }
  1143. model.removenode("/root/send");
  1144. model.makeValue("/root/send/sData", sData );
  1145. submit("TXMNR07501");
  1146. fDeptSerch(); // 약품코드별 조회
  1147. }
  1148. /**
  1149. * @group :
  1150. * @ver : 2007.05.08
  1151. * @by : 하재륜
  1152. * @---------------------------------------------------
  1153. * @type : function
  1154. * @access : public
  1155. * @desc : 약품코드명 조회
  1156. * @param :
  1157. * @param :
  1158. * @return :
  1159. * @---------------------------------------------------
  1160. */
  1161. function fPrcpSerch(){
  1162. var calcscorcd;
  1163. var colidx1 = switch1.case1.grd_mechList.getBindCellIndex("body", "prcpcd");
  1164. var colidx2 = switch1.case1.grd_mechList.getBindCellIndex("body", "hngnm");
  1165. //if(grd_mechList.col==1){ (20080519)
  1166. if (switch1.case1.grd_mechList.currentcol == colidx1) {
  1167. //calcscorcd = grd_mechList.valueMatrix(grd_mechList.row,1);
  1168. calcscorcd = ds_main_picmmech_picmmechList.getColumn(ds_main_picmmech_picmmechList.rowposition, "prcpcd");
  1169. //for(var i=0 ;grd_mechList.rows-1;i++ ){
  1170. for(var i=0 ;i<ds_main_picmmech_picmmechList.rowcount;i++ ){
  1171. //if(calcscorcd == (grd_mechList.valueMatrix(i,1))){
  1172. if(calcscorcd == ds_main_picmmech_picmmechList.getColumn(i, "prcpcd")){
  1173. if(i == ds_main_picmmech_picmmechList.rowposition){
  1174. break;
  1175. }
  1176. sysf_messageBox("약품이 ","E006");
  1177. return;
  1178. }
  1179. }
  1180. ds_send.clearData();
  1181. ds_send.addRow();
  1182. ds_send.setColumn(0, "calcscorcd", calcscorcd);
  1183. var oParam = {};
  1184. oParam.id = "TRMNR07506";
  1185. oParam.service = "caremedirecapp.CareMediDataRec";
  1186. oParam.method = "reqHngnm";
  1187. oParam.inds = "reqHngnm=ds_send";
  1188. oParam.outds = "ds_hidden_mech=mech";
  1189. oParam.async = false;
  1190. //oParam.callback = "cf_TRMNR07506";
  1191. tranf_submit(oParam);
  1192. if(utlf_isNull(ds_hidden_mech.getColumn(0, "hngnm"))){
  1193. //grd_mechList.valueMatrix(grd_mechList.row,2) = "";
  1194. ds_main_picmmech_picmmechList.setColumn(ds_main_picmmech_picmmechList.rowposition, "hngnm", "");
  1195. sysf_messageBox("조회된 약품코드가 ","I004");
  1196. }else {
  1197. //grd_mechList.valueMatrix(grd_mechList.row,2) = model.getValue("/root/hidden/mech/hngnm");
  1198. ds_main_picmmech_picmmechList.setColumn(ds_main_picmmech_picmmechList.rowposition, "hngnm", ds_hidden_mech.getColumn(0, "hngnm"));
  1199. }
  1200. }
  1201. }
  1202. /**
  1203. * @group :
  1204. * @ver : 2007.05.08
  1205. * @by : 하재륜
  1206. * @---------------------------------------------------
  1207. * @type : function
  1208. * @access : public
  1209. * @desc : 부서별 설정에 적용
  1210. * @param :
  1211. * @param :
  1212. * @return :
  1213. * @---------------------------------------------------
  1214. */
  1215. function fDeptApply(){
  1216. var dtimrows = ds_main_mnrmdtim_mnrmdtimList.rowcount;
  1217. var mechrows = ds_main_picmmech_picmmechList.rowcount;
  1218. var deptrows = ds_main_deptdtim_deptdtimList.rowcount;
  1219. var direcd_Array = new Array;
  1220. var prcpcd_Array = new Array;
  1221. var k = 1, l = 0;
  1222. var prcpcd = "";
  1223. var direccd = "";
  1224. var exectims = "";
  1225. var dept_prcpcd = "";
  1226. var dept_direccd = "";
  1227. var dept_exectims = "";
  1228. var chk_direcd = "false";
  1229. var chk_prcpcd = "false";
  1230. var direcdcnt = 0;
  1231. var prcpcdcnt = 0;
  1232. var row = 0;
  1233. for(var i = 0; i < dtimrows; i++){
  1234. if(ds_main_mnrmdtim_mnrmdtimList.getColumn(i, "status") == "true"){
  1235. direcd_Array[direcd_Array.length] = i;
  1236. ds_main_mnrmdtim_mnrmdtimList.setColumn(i, "status", "false");
  1237. }
  1238. }
  1239. for(var j = 0; j < mechrows; j++){
  1240. if(ds_main_picmmech_picmmechList.getColumn(j, "status") == "true"){
  1241. prcpcd_Array[prcpcd_Array.length] = j;
  1242. ds_main_picmmech_picmmechList.setColumn(j, "status", "false");
  1243. }
  1244. }
  1245. if(direcd_Array.length + prcpcd_Array.length == 0){
  1246. sysf_messageBox("적용할 항목을 ","C002");
  1247. return;
  1248. }
  1249. //용법코드별 적용
  1250. for(k = 0; k < direcd_Array.length; k++){
  1251. direccd = ds_main_mnrmdtim_mnrmdtimList.getColumn(direcd_Array[k], "direccd");
  1252. exectims = ds_main_mnrmdtim_mnrmdtimList.getColumn(direcd_Array[k], "exectims");
  1253. //부서별 초기값설정 그리드 약품코드 중복체크
  1254. for(l = 0; l < deptrows; l++){
  1255. dept_prcpcd = ds_main_deptdtim_deptdtimList.getColumn(l, "prcpcd");
  1256. dept_direccd = ds_main_deptdtim_deptdtimList.getColumn(l, "direccd");
  1257. dept_exectims = ds_main_deptdtim_deptdtimList.getColumn(l, "exectims");
  1258. if(utlf_isNull(dept_prcpcd) && direccd == dept_direccd && exectims == dept_exectims){
  1259. sysf_messageBox(direccd + "용법이 ","E006");
  1260. chk_direcd = "true";
  1261. }
  1262. }
  1263. if(chk_direcd == "false"){
  1264. direcdcnt++;
  1265. ds_main_deptdtim_deptdtimList.addRow();
  1266. row = ds_main_deptdtim_deptdtimList.rowcount-1;
  1267. ds_main_deptdtim_deptdtimList.copyRow(row, ds_main_mnrmdtim_mnrmdtimList, direcd_Array[k]);
  1268. ds_main_deptdtim_deptdtimList.setColumn(row, "prcpcd", "");
  1269. ds_main_deptdtim_deptdtimList.setColumn(row, "hngnm", ""); //--(20081117)
  1270. ds_main_deptdtim_deptdtimList.setColumn(row, "status", "");
  1271. ds_main_deptdtim_deptdtimList.setColumn(row, "comnyn", "Y");
  1272. }
  1273. chk_direcd = "false";
  1274. }
  1275. //약품코드별 적용
  1276. //alert ( prcpcd_Array.length ) ;
  1277. for(k = 0; k < prcpcd_Array.length; k++){
  1278. prcpcd = ds_main_picmmech_picmmechList.getColumn(prcpcd_Array[k], "prcpcd");
  1279. exectims = ds_main_picmmech_picmmechList.getColumn(prcpcd_Array[k], "exectims");
  1280. //부서별 초기값설정 그리드 약품코드 중복체크
  1281. for(l = 0; l < deptrows; l++){
  1282. dept_prcpcd = ds_main_deptdtim_deptdtimList.getColumn(l, "prcpcd");
  1283. dept_direccd = ds_main_deptdtim_deptdtimList.getColumn(l, "direccd");
  1284. dept_exectims = ds_main_deptdtim_deptdtimList.getColumn(l, "exectims");
  1285. if(utlf_isNull(dept_direccd) && prcpcd == dept_prcpcd && exectims == dept_exectims){
  1286. sysf_messageBox(prcpcd + "약품이 ","E006");
  1287. chk_prcpcd = "true";
  1288. }
  1289. }
  1290. if(chk_prcpcd == "false"){
  1291. prcpcdcnt++;
  1292. ds_main_deptdtim_deptdtimList.addRow();
  1293. row = ds_main_deptdtim_deptdtimList.rowcount-1;
  1294. ds_main_deptdtim_deptdtimList.copyRow(row, ds_main_picmmech_picmmechList, prcpcd_Array[k]);
  1295. //model.makeValue(xDeptList + "[" + row + "]/direccd", "");
  1296. ds_main_deptdtim_deptdtimList.setColumn(row, "status", "");
  1297. ds_main_deptdtim_deptdtimList.setColumn(row, "comnyn", "Y");
  1298. }
  1299. chk_prcpcd = "false";
  1300. }
  1301. }
  1302. /**
  1303. * @group :
  1304. * @ver : 2007.05.09
  1305. * @by : 하재륜
  1306. * @---------------------------------------------------
  1307. * @type : function
  1308. * @access : public
  1309. * @desc : 부서별 리스트 클릭시
  1310. * @param :
  1311. * @param :
  1312. * @return :
  1313. * @---------------------------------------------------
  1314. */
  1315. function fDeptListClick(){
  1316. var row = ds_main_deptdtim_deptdtimList.rowposition;
  1317. if(switch1.case1.grd_deptList.currentcol != 0){
  1318. //그리드 초기화
  1319. ds_main_dtiminfo_dtim.clearData();
  1320. ds_main_dtiminfo_dtim.addRow();
  1321. ds_main_dtiminfo_dtim.addRow();
  1322. ds_main_dtiminfo_dtim.setColumn(0, "title", "시간");
  1323. ds_main_dtiminfo_dtim.setColumn(1, "title", "Day");
  1324. var exectims = ds_main_deptdtim_deptdtimList.getColumn(row, "exectims");
  1325. var timscount = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(row, "drugtmspec"));
  1326. var timscountextt = utlf_transNullToEmpty(ds_main_deptdtim_deptdtimList.getColumn(row, "drugtmspeccal"));
  1327. var prcpcd = ds_main_deptdtim_deptdtimList.getColumn(row, "prcpcd");
  1328. var direccd = ds_main_deptdtim_deptdtimList.getColumn(row, "direccd");
  1329. for(var i= 1 ; i< 13 ;i++){
  1330. switch1.case1.grd_deptdtim.setFormatColProperty(i, "size", 0);
  1331. }
  1332. for(var i= 1 ; i<= exectims ;i++){
  1333. switch1.case1.grd_deptdtim.setFormatColProperty(i, "size", 40); //그리드 활성화
  1334. }
  1335. var array_timscount = timscount.split(" ");
  1336. var array_timscounpartextt = timscountextt.split(" ");
  1337. var cnt = array_timscount.length;
  1338. dept_tims = exectims;
  1339. dept_prcpcd = prcpcd;
  1340. dept_direccd = direccd;
  1341. for(var i = 0; i < cnt; i++){
  1342. var a = array_timscount[i];
  1343. var b = array_timscounpartextt[i];
  1344. var sColNm = utlf_transNullToEmpty(switch1.case1.grd_deptdtim.getCellProperty("body", i+1, "text")).replace("bind:", "");
  1345. ds_main_dtiminfo_dtim.setColumn(0, sColNm, a);
  1346. ds_main_dtiminfo_dtim.setColumn(1, sColNm, parseInt(b/2400));
  1347. }
  1348. }
  1349. }
  1350. /**
  1351. * @group :
  1352. * @ver : 2007.05.09
  1353. * @by : 하재륜
  1354. * @---------------------------------------------------
  1355. * @type : function
  1356. * @access : public
  1357. * @desc : 투약시간기준관리(부서별)
  1358. * @param :
  1359. * @param :
  1360. * @return :
  1361. * @---------------------------------------------------
  1362. */
  1363. function fDeptSerch(){
  1364. switch1.case1.cmb_baseflg.value = switch1.case1.cmb_deptBaseflg.value;
  1365. var deptcd = ds_init.getColumn(0, "deptcdList");
  1366. var baseflaglist = ds_init.getColumn(0, "baseflaglist");
  1367. if(utlf_isNull(baseflaglist)){
  1368. baseflaglist = "%";
  1369. }
  1370. ds_main_deptdtim_deptdtimList.clearData();
  1371. ds_send.clearData();
  1372. ds_send.addRow();
  1373. ds_send.setColumn(0, "baseflag", baseflaglist);
  1374. ds_send.setColumn(0, "deptcd", deptcd);
  1375. var oParam = {};
  1376. oParam.id = "TRMNR07507";
  1377. oParam.service = "caremedirecapp.CareMediDataRec";
  1378. oParam.method = "reqPamDept";
  1379. oParam.inds = "reqPamDept=ds_send";
  1380. oParam.outds = "ds_main_deptdtim_deptdtimList=deptdtimList";
  1381. oParam.async = false;
  1382. //oParam.callback = "cf_TRMNR07507";
  1383. tranf_submit(oParam);
  1384. if( utlf_isNull(ds_main_deptdtim_deptdtimList.getColumnInfo("status")) ){
  1385. ds_main_deptdtim_deptdtimList.addColumn("status", "string");
  1386. }
  1387. ds_main_deptdtim_deptdtimList.rowposition = -1;
  1388. }
  1389. /**
  1390. * @group :
  1391. * @ver : 2007.05.08
  1392. * @by : 하재륜
  1393. * @---------------------------------------------------
  1394. * @type : function
  1395. * @access : public
  1396. * @desc : 투약시간기준관리(부서별) 적용
  1397. * @param :
  1398. * @param :
  1399. * @return :
  1400. * @---------------------------------------------------
  1401. */
  1402. function fDeptlistApply(){
  1403. var pGrddeptdtim = switch1.case1.grd_deptdtim; //설정입력그리드
  1404. var pPathdeptdtim = ds_main_dtiminfo_dtim; //설정입력그리드 path
  1405. var pGrddeptList = switch1.case1.grd_deptList; //설정반영그리드
  1406. var pPathdeptList = ds_main_deptdtim_deptdtimList; //설정반영그리드 path
  1407. //체크
  1408. if(ds_main_dtiminfo_dtim.rowcount < 2){
  1409. sysf_messageBox("공통투약시간에 설정되지않았습니다.","E999");
  1410. return;
  1411. }
  1412. if(ds_main_deptdtim_deptdtimList.rowposition < 0){
  1413. return;
  1414. }
  1415. //---------------------------------
  1416. // 투약시간 설정값 추출
  1417. //---------------------------------
  1418. var cntrows = ds_main_deptdtim_deptdtimList.rowcount;
  1419. var drugtmspec = ""; //투여시간 text 형시으로 표시(화면용)
  1420. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(자료용)(24시간기준)
  1421. var day = ""; //일수
  1422. var time = ""; //시간
  1423. //var dtim_tims = model.getValue(pPathdeptList + "[" + grd_deptList.row + "]/exectims"); //투약회수
  1424. var dtim_tims = dept_tims;
  1425. //설정입력그리드를 돌면서 시간(n row)을 한줄의 텍스트로 만듬
  1426. for (var i = 1 ; i <= dtim_tims ; i++){
  1427. time = utlf_transNullToEmpty(switch1.case1.grd_deptdtim.getCellValue(0,i));
  1428. day = switch1.case1.grd_deptdtim.getCellValue(1,i);
  1429. if(time.length != 4){
  1430. sysf_messageBox("시간은 4자리를","C001");
  1431. return;
  1432. }
  1433. if(i != 1) {
  1434. drugtmspec += " ";
  1435. drugtmspeccal += " ";
  1436. }
  1437. drugtmspec += fCarec_GetFillZeno(time,4,0);
  1438. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  1439. }
  1440. //-----------------------------------------------
  1441. //설정반영그리드에 반영
  1442. //신규가 아니면 수정으로 처리한다.(20080519)
  1443. //-----------------------------------------------
  1444. //pGrddeptList 클릭시 dept_tims , dept_prcpcd , dept_direccd 에 값이 반영됨
  1445. ds_main_deptdtim_deptdtimList.enableevent = false;
  1446. ds_main_deptdtim_deptdtimList.updatecontrol = false;
  1447. for(var j = 0 ; j < cntrows ; j++){
  1448. if( dept_tims == ds_main_deptdtim_deptdtimList.getColumn(j, "exectims") &&
  1449. dept_prcpcd == ds_main_deptdtim_deptdtimList.getColumn(j, "prcpcd") &&
  1450. dept_direccd == ds_main_deptdtim_deptdtimList.getColumn(j, "direccd") ) {
  1451. var rowstatus = ds_main_deptdtim_deptdtimList.getRowType(ds_main_deptdtim_deptdtimList.rowposition);
  1452. if (rowstatus == 2) {
  1453. } else {
  1454. ds_main_deptdtim_deptdtimList.setRowType(ds_main_deptdtim_deptdtimList.rowposition, 4); //수정으로상태변경
  1455. }
  1456. ds_main_deptdtim_deptdtimList.setColumn(j, "status", "true" ); //check
  1457. ds_main_deptdtim_deptdtimList.setColumn(j, "drugtmspec", drugtmspec );
  1458. ds_main_deptdtim_deptdtimList.setColumn(j, "drugtmspeccal", drugtmspeccal );
  1459. }
  1460. }
  1461. ds_main_deptdtim_deptdtimList.updatecontrol = true;
  1462. ds_main_deptdtim_deptdtimList.enableevent = true;
  1463. }
  1464. function fDeptlistApply_OLD(){
  1465. if(grd_deptList.row < 1){
  1466. return;
  1467. }
  1468. var cnt = grd_deptList.rows;
  1469. var drugtmspec = "";; //투여시간 text 형시으로 표시
  1470. var drugtmspeccal = ""; //투여시간 text 형시으로 표시
  1471. var day = "";
  1472. for (var i = 1 ; i <= dept_tims ; i++){
  1473. time = grd_deptdtim.valueMatrix(1,i);
  1474. day = grd_deptdtim.valueMatrix(2,i);
  1475. if(time.length != 4){
  1476. messageBox("시간은 4자리를","C001");
  1477. return;
  1478. }
  1479. if(i != 1) {
  1480. drugtmspec += " ";
  1481. drugtmspeccal += " ";
  1482. }
  1483. drugtmspec += fCarec_GetFillZeno(time,4,0);
  1484. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  1485. }
  1486. for(var j = 1 ; j < cnt ; j++){
  1487. if(dept_tims == model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/exectims") &&
  1488. dept_prcpcd == model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/prcpcd") &&
  1489. dept_direccd == model.getValue("/root/main/deptdtim/deptdtimList[" + j + "]/direccd")){
  1490. model.setValue("/root/main/deptdtim/deptdtimList[" + j + "]/drugtmspec", drugtmspec);
  1491. model.setValue("/root/main/deptdtim/deptdtimList[" + j + "]/drugtmspeccal", drugtmspeccal);
  1492. }
  1493. }
  1494. model.refresh();
  1495. }
  1496. /**
  1497. * @group :
  1498. * @ver : 2007.12.07
  1499. * @by : 최경용
  1500. * @---------------------------------------------------
  1501. * @type : function
  1502. * @access : public
  1503. * @desc : 수액기준관리 조회
  1504. * @param :
  1505. * @param :
  1506. * @return :
  1507. * @---------------------------------------------------
  1508. */
  1509. function fGetSapList(){
  1510. ds_main_sapinfo_saplist_saplist.clearData();
  1511. ds_send.clearData();
  1512. ds_send.addRow();
  1513. ds_send.setColumn(0, "deptcd",ds_main_cond.getColumn(0, "deptcd"));
  1514. ds_send.setColumn(0, "drugcd",ds_main_cond.getColumn(0, "drugcd"));
  1515. ds_send.setColumn(0, "drugnm",ds_main_cond.getColumn(0, "drugnm"));
  1516. var oParam = {};
  1517. oParam.id = "TRMNR07508";
  1518. oParam.service = "caremedirecapp.CareMediDataRec";
  1519. oParam.method = "reqGetSapList";
  1520. oParam.inds = "req=ds_send";
  1521. oParam.outds = "ds_main_sapinfo_saplist_saplist=saplist";
  1522. oParam.async = false;
  1523. //oParam.callback = "cf_TRMNR07508";
  1524. tranf_submit(oParam);
  1525. ds_main_sapinfo_saplist_saplist.addColumn("colBack", "string");
  1526. if( utlf_isNull(ds_main_sapinfo_saplist_saplist.getColumnInfo("delcheck")) ){
  1527. ds_main_sapinfo_saplist_saplist.addColumn("delcheck", "string");
  1528. }
  1529. ds_main_sapinfo_saplist_saplist.enableevent = false;
  1530. ds_main_sapinfo_saplist_saplist.updatecontrol = false;
  1531. dsf_setDefaultVal(ds_main_sapinfo_saplist_saplist, "chk:false");
  1532. ds_main_sapinfo_saplist_saplist.updatecontrol = true;
  1533. ds_main_sapinfo_saplist_saplist.enableevent = true;
  1534. // var rows = grd_saplist.rows;
  1535. // for(var i = 2; i <= rows; i++){
  1536. // grd_saplist.isReadOnly(i, 2) = true;
  1537. // }
  1538. //-------------------(20080910)
  1539. var yellow = "#ffff00";
  1540. var white = "#ffffff";
  1541. var sPathSapInfo = ds_main_sapinfo_saplist_saplist;
  1542. var rows = ds_main_sapinfo_saplist_saplist.rowcount-1;
  1543. //부서가 공통이 아닌경우
  1544. //해당부서에 수액정보가 등록되지 않은 경우는 공통부서정보를 표시하여 저장한다.
  1545. ds_main_sapinfo_saplist_saplist.enableevent = false;
  1546. ds_main_sapinfo_saplist_saplist.updatecontrol = false;
  1547. if (ds_main_cond.getColumn(0, "deptcd") != "ALL") {
  1548. for(var row = 0; row <= rows; row++){
  1549. //자료선택여부
  1550. if (ds_main_sapinfo_saplist_saplist.getColumn(row, "ordflag") == "2") {
  1551. ds_main_sapinfo_saplist_saplist.setColumn(row, "colBack", yellow);
  1552. //grd_saplist.cellstyle("background-color",row,1,row,grd_saplist.cols-1 ) = yellow;
  1553. } else {
  1554. ds_main_sapinfo_saplist_saplist.setColumn(row, "colBack", white);
  1555. //grd_saplist.cellstyle("background-color",row,1,row,grd_saplist.cols-1) = white;
  1556. }
  1557. }
  1558. switch1.case2.grp_sea.out_sapmsg.value = "노란색은 공통부서자료입니다.";
  1559. switch1.case2.grp_sea.out_sapmsg.visible = true;
  1560. } else {
  1561. for(var row = 0; row <= rows; row++){
  1562. ds_main_sapinfo_saplist_saplist.setColumn(row, "colBack", white);
  1563. //grd_saplist.cellstyle("background-color",row,1,row,grd_saplist.cols-1) = white;
  1564. }
  1565. switch1.case2.grp_sea.out_sapmsg.value = "";
  1566. switch1.case2.grp_sea.out_sapmsg.visible = false;
  1567. }
  1568. ds_main_sapinfo_saplist_saplist.updatecontrol = true;
  1569. ds_main_sapinfo_saplist_saplist.enableevent = true;
  1570. //-------------------(20080910)
  1571. }
  1572. /**
  1573. * @group :
  1574. * @ver : 2007.12.07
  1575. * @by : 최경용
  1576. * @---------------------------------------------------
  1577. * @type : function
  1578. * @access : public
  1579. * @desc : 수액기준관리 저장
  1580. * @param :
  1581. * @param :
  1582. * @return :
  1583. * @---------------------------------------------------
  1584. */
  1585. function fSaveSapInfo(flag){
  1586. var sPathSapInfo = ds_main_sapinfo_saplist_saplist;
  1587. var rows = ds_main_sapinfo_saplist_saplist.rowcount-1;
  1588. // //약품코드 확인
  1589. // for(var i = 1; i < rows; i++){
  1590. // if((grd_saplist.rowStatus(i+1) == 1 || grd_saplist.rowStatus(i+1) == 3) &&
  1591. // model.getValue("/root/main/sapinfo/saplist/saplist[" + i + "]/drugnm") == ""){
  1592. // grd_saplist.deleteRow(i+1);
  1593. // }
  1594. // }
  1595. // grd_saplist.rebuildStyle();
  1596. var sSateData = "";
  1597. //저장 자료 생성
  1598. var savecnt = 0;
  1599. var savestatus = "";
  1600. var sHeader = "m▦rownum▦drugcd▦deptcd▦commyn▦sapyn▦ioyn▦sapnoyn▦status▩"
  1601. var sData = "";
  1602. rows = ds_main_sapinfo_saplist_saplist.rowcount-1;
  1603. for(var i = 0; i <= rows; i++){
  1604. //자료선택여부
  1605. if (ds_main_sapinfo_saplist_saplist.getColumn(i, "chk") == "true") {
  1606. savestatus = "";
  1607. if ( flag == "del") {
  1608. //부서조회인데, 공통자료를 가져온것이므로 삭제대상이 아니다.
  1609. if ( ds_main_sapinfo_saplist_saplist.getColumn(i, "status") == "I" ) {
  1610. } else {
  1611. savestatus = "d";
  1612. }
  1613. } else {
  1614. if ( ds_main_sapinfo_saplist_saplist.getColumn(i, "status") == "I" ) {
  1615. savestatus = "i";
  1616. } else {
  1617. savestatus = "u";
  1618. }
  1619. }
  1620. if (!utlf_isNull(savestatus)) {
  1621. sData += savestatus + "▦";
  1622. sData += i + "▦";
  1623. sData += utlf_transNullToEmpty(ds_main_sapinfo_saplist_saplist.getColumn(i, "drugcd")) + "▦";
  1624. sData += switch1.case2.grp_sea.cmb_sapdept.value + "▦";
  1625. if ( ds_main_sapinfo_saplist_saplist.getColumn(i, "commyn") == "true" ) {
  1626. sData += "Y" + "▦";
  1627. } else {
  1628. sData += "N" + "▦";
  1629. }
  1630. if ( ds_main_sapinfo_saplist_saplist.getColumn(i, "sapyn") == "true" ) {
  1631. sData += "Y" + "▦";
  1632. } else {
  1633. sData += "N" + "▦";
  1634. }
  1635. if ( ds_main_sapinfo_saplist_saplist.getColumn(i, "ioyn") == "true" ) {
  1636. sData += "Y" + "▦";
  1637. } else {
  1638. sData += "N" + "▦";
  1639. }
  1640. if ( ds_main_sapinfo_saplist_saplist.getColumn(i, "sapnoyn") == "true" ) {
  1641. sData += "Y" + "▦";
  1642. } else {
  1643. sData += "N" + "▦";
  1644. }
  1645. sData += "" + "▩";
  1646. savecnt ++;
  1647. }
  1648. }
  1649. }
  1650. if (savecnt <= 0 ) {
  1651. sysf_messageBox("저장할 자료가 존재하지 않습니다.","E999");
  1652. return;
  1653. }
  1654. ds_send.clearData();
  1655. ds_send.addRow();
  1656. dsf_setCSVToDs("ds_send_saplist", sHeader + sData);
  1657. ds_send.setColumn(0, "deptcd",ds_main_cond.getColumn(0, "deptcd"));
  1658. ds_send.setColumn(0, "drugcd",ds_main_cond.getColumn(0, "drugcd"));
  1659. ds_send.setColumn(0, "drugnm",ds_main_cond.getColumn(0, "drugnm"));
  1660. //test
  1661. //return;
  1662. var oParam = {};
  1663. oParam.id = "TRMNR07502";
  1664. oParam.service = "caremedirecapp.CareMediDataRec";
  1665. oParam.method = "reqExeSapInfo";
  1666. oParam.inds = "reqCond=ds_send saplist=ds_send_saplist";
  1667. oParam.outds = "ds_main_sapinfo_saplist_saplist=saplist";
  1668. oParam.async = false;
  1669. oParam.callback = "cf_TRMNR07502";
  1670. tranf_submit(oParam);
  1671. if( utlf_isNull(ds_main_sapinfo_saplist_saplist.getColumnInfo("delcheck")) ){
  1672. ds_main_sapinfo_saplist_saplist.addColumn("delcheck", "string");
  1673. }
  1674. if(arErrorCode.pop("TRMNR07502") > -1){
  1675. sysf_messageBox("성공적으로","I001");
  1676. //---------------(20080910)
  1677. fGetSapList(); //저장후 재조회
  1678. //---------------(20080910)
  1679. }
  1680. }
  1681. function cf_TRMNR07502(sSvcId, nErrorCode, sErrorMsg) {
  1682. arErrorCode.push(sSvcId, nErrorCode);
  1683. }
  1684. function fSaveSapInfo_OLD(){
  1685. var rows = grd_saplist.rows-1;
  1686. for(var i = 1; i < rows; i++){
  1687. if((grd_saplist.rowStatus(i+1) == 1 || grd_saplist.rowStatus(i+1) == 3) &&
  1688. model.getValue("/root/main/sapinfo/saplist/saplist[" + i + "]/drugnm") == ""){
  1689. grd_saplist.deleteRow(i+1);
  1690. }
  1691. }
  1692. grd_saplist.rebuildStyle();
  1693. var sSateData = "";
  1694. model.removenode("/root/send");
  1695. model.makeValue("/root/send/saplist", grd_saplist.getUpdateData());
  1696. ds_send.setColumn(0, "deptcd",ds_main_cond.getColumn(0, "deptcd"));
  1697. ds_send.setColumn(0, "drugcd",ds_main_cond.getColumn(0, "drugcd"));
  1698. //test
  1699. return;
  1700. if(submit("TXMNR07502")){
  1701. messageBox("성공적으로","I001");
  1702. }
  1703. grd_saplist.rebuild();
  1704. }
  1705. /**
  1706. * @group :
  1707. * @ver : 2007.12.07
  1708. * @by : 최경용
  1709. * @---------------------------------------------------
  1710. * @type : function
  1711. * @access : public
  1712. * @desc : 약품정보 조회(수액기준관리)
  1713. * @param :
  1714. * @param :
  1715. * @return :
  1716. * @---------------------------------------------------
  1717. */
  1718. function fDrugDbClick(flag){
  1719. ds_temp_receivedata.setColumn(0, "receiveref", "ds_temp");
  1720. ds_temp_receivedata.setColumn(0, "receivedrugcd", "druginfo");
  1721. var objArg = new Object();
  1722. objArg.arg_ds_temp_receivedata = ds_temp_receivedata;
  1723. frmf_modal("SPADB60100","SPADB60100",objArg,"",1,100,150,"","","","","","M");
  1724. var drugcd = ds_temp.getColumn(0, "druginfo");
  1725. var drugnm = "";
  1726. var row = 0;
  1727. if(!utlf_isNull(drugcd)){
  1728. ds_send.clearData();
  1729. ds_send.addRow();
  1730. ds_send.setColumn(0, "calcscorcd", drugcd);
  1731. var oParam = {};
  1732. oParam.id = "TRMNR07506";
  1733. oParam.service = "caremedirecapp.CareMediDataRec";
  1734. oParam.method = "reqHngnm";
  1735. oParam.inds = "reqHngnm=ds_send";
  1736. oParam.outds = "ds_hidden_mech=mech";
  1737. oParam.async = false;
  1738. //oParam.callback = "cf_TRMNR07506";
  1739. tranf_submit(oParam);
  1740. drugnm = ds_hidden_mech.getColumn(0, "hngnm");
  1741. if(utlf_isNull(drugnm)){
  1742. sysf_messageBox("약품 유효기간이 지났습니다.","E999");
  1743. return;
  1744. }
  1745. if(flag == "sap"){
  1746. //row = grd_saplist.row-1;
  1747. row = ds_main_sapinfo_saplist_saplist.rowposition;
  1748. ds_main_sapinfo_saplist_saplist.updatecontrol = false;
  1749. ds_main_sapinfo_saplist_saplist.setColumn(row, "drugcd", drugcd);
  1750. ds_main_sapinfo_saplist_saplist.setColumn(row, "drugnm", drugnm);
  1751. ds_main_sapinfo_saplist_saplist.updatecontrol = true;
  1752. }else if(flag == "mthd"){
  1753. row = ds_main_picmmech_picmmechList.rowposition;
  1754. ds_main_picmmech_picmmechList.updatecontrol = false;
  1755. ds_main_picmmech_picmmechList.setColumn(row, "prcpcd", drugcd);
  1756. ds_main_picmmech_picmmechList.setColumn(row, "hngnm", drugnm);
  1757. ds_main_picmmech_picmmechList.updatecontrol = true;
  1758. }else if(flag == "dept"){
  1759. row = ds_main_deptdtim_deptdtimList.rowposition;
  1760. ds_main_deptdtim_deptdtimList.updatecontrol = false;
  1761. ds_main_deptdtim_deptdtimList.setColumn(row, "prcpcd", drugcd);
  1762. ds_main_deptdtim_deptdtimList.setColumn(row, "hngnm", drugnm);
  1763. ds_main_deptdtim_deptdtimList.updatecontrol = true;
  1764. }
  1765. ds_temp.setColumn(0, "druginfo", "");
  1766. }
  1767. //용법구분이 주사제인 경우는 '투약횟수'를 입력할수 있음.
  1768. // if(cmb_baseflg.value == 'I'){
  1769. // var rowstatus = grd_mechList.rowstatus(grd_mechList.row);
  1770. // if (rowstatus == "1" || rowstatus == "3") {
  1771. // cmb_exectims.disabled = false;
  1772. // }
  1773. // }else{
  1774. // cmb_exectims.disabled = true;
  1775. // }
  1776. }
  1777. /**
  1778. * @group :
  1779. * @ver : 2008.05.14
  1780. * @by : 김보성
  1781. * @---------------------------------------------------
  1782. * @type : function
  1783. * @access : public
  1784. * @desc : 수액기준자료관리-조회조건 항목 중 약품정보
  1785. * @param :
  1786. * @param :
  1787. * @return :
  1788. * @---------------------------------------------------
  1789. */
  1790. function fDrugDbClick1(){
  1791. ds_temp_receivedata.setColumn(0, "receiveref", "ds_temp");
  1792. ds_temp_receivedata.setColumn(0, "receivedrugcd", "druginfo");
  1793. ds_temp_receivedata.setColumn(0, "srchflag", "1");
  1794. ds_temp_receivedata.setColumn(0, "srchcnts", ds_main_cond.getColumn(0, "drugnm"));
  1795. ds_temp_receivedata.setColumn(0, "drugkind","");
  1796. var objArg = new Object();
  1797. objArg.arg_ds_temp_receivedata = ds_temp_receivedata;
  1798. frmf_modal("SPADB60100","SPADB60100",objArg,"",1,100,150,"","","","","","M");
  1799. var drugcd = ds_temp.getColumn(0, "druginfo");
  1800. var drugnm = "";
  1801. var row = 0;
  1802. if(!utlf_isNull(drugcd)){
  1803. ds_send.clearData();
  1804. ds_send.addRow();
  1805. ds_send.setColumn(0, "calcscorcd", drugcd);
  1806. var oParam = {};
  1807. oParam.id = "TRMNR07506";
  1808. oParam.service = "caremedirecapp.CareMediDataRec";
  1809. oParam.method = "reqHngnm";
  1810. oParam.inds = "reqHngnm=ds_send";
  1811. oParam.outds = "ds_hidden_mech=mech";
  1812. oParam.async = false;
  1813. //oParam.callback = "cf_TRMNR07506";
  1814. tranf_submit(oParam);
  1815. drugnm = ds_hidden_mech.getColumn(0, "hngnm");
  1816. if(utlf_isNull(drugnm)){
  1817. sysf_messageBox("약품 유효기간이 지났습니다.","E999");
  1818. return;
  1819. }
  1820. ds_main_cond.setColumn(0, "drugcd", drugcd);
  1821. ds_main_cond.setColumn(0, "drugnm", drugnm);
  1822. ds_temp.setColumn(0, "druginfo", "");
  1823. }
  1824. }
  1825. /**
  1826. * @group :
  1827. * @ver : 2007.12.07
  1828. * @by : 최경용
  1829. * @---------------------------------------------------
  1830. * @type : function
  1831. * @access : public
  1832. * @desc : 수액기준관리 삭제
  1833. * @param :
  1834. * @param :
  1835. * @return :
  1836. * @---------------------------------------------------
  1837. */
  1838. function fClickSapDelete(){
  1839. var row = ds_main_sapinfo_saplist_saplist.rowposition;
  1840. if(ds_main_sapinfo_saplist_saplist.getColumn(row, "delcheck") == "true"){
  1841. if(ds_main_sapinfo_saplist_saplist.getRowType(row) == 4){
  1842. ds_main_sapinfo_saplist_saplist.enableevent = false;
  1843. ds_main_sapinfo_saplist_saplist.updatecontrol = false;
  1844. ds_main_sapinfo_saplist_saplist.setRowType(row, 8);
  1845. ds_main_sapinfo_saplist_saplist.updatecontrol = true;
  1846. ds_main_sapinfo_saplist_saplist.enableevent = true;
  1847. }else if(ds_main_sapinfo_saplist_saplist.getRowType(row) == 2){
  1848. ds_main_sapinfo_saplist_saplist.deleteRow(row);
  1849. }else{}
  1850. }else if(ds_main_sapinfo_saplist_saplist.getColumn(row, "delcheck") == "false"){
  1851. ds_main_sapinfo_saplist_saplist.enableevent = false;
  1852. ds_main_sapinfo_saplist_saplist.updatecontrol = false;
  1853. ds_main_sapinfo_saplist_saplist.setRowType(row, 4);
  1854. ds_main_sapinfo_saplist_saplist.updatecontrol = true;
  1855. ds_main_sapinfo_saplist_saplist.enableevent = true;
  1856. }else{}
  1857. }
  1858. /**
  1859. * @group :
  1860. * @ver : 2008.05.14
  1861. * @by : 김보성
  1862. * @---------------------------------------------------
  1863. * @type : function
  1864. * @access : public
  1865. * @desc : 기준시간 추가
  1866. * @param : dtim : 용법별만 있음(mech : 약품코드별 , dept : 부서별)
  1867. * @param :
  1868. * @return :
  1869. * @---------------------------------------------------
  1870. */
  1871. function fDtimAdd() {
  1872. var pGrd = ds_main_mnrmdtim_mnrmdtimList;
  1873. var xpathDtim;
  1874. var oldrow = ds_main_mnrmdtim_mnrmdtimList.rowposition;
  1875. var newrow;
  1876. //ROW 추가
  1877. if (oldrow < 0 ) return false;
  1878. //insertrow후 반드시 refresh할것
  1879. ds_main_mnrmdtim_mnrmdtimList.insertRow(oldrow+1);
  1880. newrow = ds_main_mnrmdtim_mnrmdtimList.rowposition;
  1881. //alert( oldrow + "/" + newrow );
  1882. ds_main_mnrmdtim_mnrmdtimList.copyRow(newrow, ds_main_mnrmdtim_mnrmdtimList, oldrow);
  1883. ds_main_mnrmdtim_mnrmdtimList.setColumn(newrow, "status", "true");
  1884. ds_main_mnrmdtim_mnrmdtimList.setColumn(newrow, "comnyn", "N");
  1885. ds_main_mnrmdtim_mnrmdtimList.setColumn(newrow, "grpno", "");
  1886. ds_main_mnrmdtim_mnrmdtimList.setColumn(newrow, "saveflag", "I");
  1887. return true;
  1888. }
  1889. /**
  1890. * @group :
  1891. * @ver : 2008.05.14
  1892. * @by : 김보성
  1893. * @---------------------------------------------------
  1894. * @type : function
  1895. * @access : public
  1896. * @desc : 공통/용법 그리드 클릭시 상세정보 display
  1897. * @param :
  1898. * @param :
  1899. * @return :
  1900. * @---------------------------------------------------
  1901. */
  1902. function fgrddtimlist_ondelayclick() {
  1903. if(switch1.case1.grd_dtimList.currentcol != 0){
  1904. ds_main_dtiminfo_dtim.clearData();
  1905. ds_main_dtiminfo_dtim.addRow();
  1906. ds_main_dtiminfo_dtim.addRow();
  1907. ds_main_dtiminfo_dtim.setColumn(0, "title", "시간");
  1908. ds_main_dtiminfo_dtim.setColumn(1, "title", "Day");
  1909. //var dtims = grd_dtimList.valueMatrix(grd_dtimList.row,2);
  1910. //var timscount = grd_dtimList.valueMatrix(grd_dtimList.row,3);
  1911. var dtims = ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "exectims");
  1912. var timscount = utlf_transNullToEmpty(ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "drugtmspec"));
  1913. var timscountextt = utlf_transNullToEmpty(ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "drugtmspeccal"));
  1914. for (var i= 1 ; i< 13 ;i++) switch1.case1.grd_mnrmdtim.setFormatColProperty(i, "size", 0);
  1915. for (var i= 1 ; i<= dtims ;i++) switch1.case1.grd_mnrmdtim.setFormatColProperty(i, "size", 40); //그리드 활성화
  1916. //cmb_exectims.value = dtims;
  1917. var array_timscount = timscount.split(" ");
  1918. var array_timscounpartextt = timscountextt.split(" ");
  1919. var cnt = array_timscount.length;
  1920. for(var i = 0 ; i < cnt ; i++){
  1921. var a = array_timscount[i];
  1922. var b = array_timscounpartextt[i];
  1923. var sColNm = utlf_transNullToEmpty(switch1.case1.grd_mnrmdtim.getCellProperty("Body", i+1, "text")).replace("bind:", "");
  1924. ds_main_dtiminfo_dtim.setColumn(0, sColNm, a); //시간
  1925. ds_main_dtiminfo_dtim.setColumn(1, sColNm, parseInt(b/2400)); //일수
  1926. }
  1927. switch1.case1.cmb_exectims.value = dtims; //투약회수
  1928. switch1.case1.rdo_comnyn.value = ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "comnyn"); //default
  1929. switch1.case1.cmb_direccd.value = ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "direccd"); //용법코드
  1930. //용법구분이 주사제인 경우는 '투약횟수'를 입력할수 있음.
  1931. switch1.case1.cmb_exectims.enable = false;
  1932. if(switch1.case1.cmb_baseflg.value == 'I'){
  1933. var rowstatus = ds_main_mnrmdtim_mnrmdtimList.getRowType(ds_main_mnrmdtim_mnrmdtimList.rowposition);
  1934. if (rowstatus == 2) {
  1935. switch1.case1.cmb_exectims.enable = true;
  1936. }
  1937. }
  1938. //공통&용법인 경우는 수정가능하다.
  1939. switch1.case1.rdo_comnyn.enable = true;
  1940. //---------------(20080813)
  1941. if ( ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "saveflag") == "I") {
  1942. switch1.case1.cmb_exectims.enable = true;
  1943. } else {
  1944. switch1.case1.cmb_exectims.enable = false;
  1945. }
  1946. //---------------
  1947. }
  1948. }
  1949. /**
  1950. * @group :
  1951. * @ver : 2008.05.14
  1952. * @by : 김보성
  1953. * @---------------------------------------------------
  1954. * @type : function
  1955. * @access : public
  1956. * @desc : 공통/약품 그리드 클릭시 상세정보 display
  1957. * @param :
  1958. * @param :
  1959. * @return :
  1960. * @---------------------------------------------------
  1961. */
  1962. function fgrdmechList_ondelayclick() {
  1963. if(switch1.case1.grd_dtimList.currentcol != 0){
  1964. ds_main_dtiminfo_dtim.clearData();
  1965. ds_main_dtiminfo_dtim.addRow();
  1966. ds_main_dtiminfo_dtim.addRow();
  1967. ds_main_dtiminfo_dtim.setColumn(0, "title", "시간");
  1968. ds_main_dtiminfo_dtim.setColumn(1, "title", "Day");
  1969. //var dtims = grd_dtimList.valueMatrix(grd_dtimList.row,2);
  1970. //var timscount = grd_dtimList.valueMatrix(grd_dtimList.row,3);
  1971. var dtims = ds_main_picmmech_picmmechList.getColumn(ds_main_picmmech_picmmechList.rowposition, "exectims");
  1972. var timscount = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(ds_main_picmmech_picmmechList.rowposition, "drugtmspec"));
  1973. var timscountextt = utlf_transNullToEmpty(ds_main_picmmech_picmmechList.getColumn(ds_main_picmmech_picmmechList.rowposition, "drugtmspeccal"));
  1974. for (var i= 1 ; i< 13 ;i++) switch1.case1.grd_mnrmdtim.setFormatColProperty(i, "size", 0);
  1975. for (var i= 1 ; i<= dtims ;i++) switch1.case1.grd_mnrmdtim.setFormatColProperty(i, "size", 40); //그리드 활성화
  1976. //cmb_exectims.value = dtims;
  1977. var array_timscount = timscount.split(" ");
  1978. var array_timscounpartextt = timscountextt.split(" ");
  1979. var cnt = array_timscount.length;
  1980. for(var i = 0 ; i < cnt ; i++){
  1981. var a = array_timscount[i];
  1982. var b = array_timscounpartextt[i];
  1983. var sColNm = utlf_transNullToEmpty(switch1.case1.grd_mnrmdtim.getCellProperty("body", i+1, "text")).replace("bind:", "");
  1984. ds_main_dtiminfo_dtim.setColumn(0, sColNm, a); //시간
  1985. ds_main_dtiminfo_dtim.setColumn(1, sColNm, parseInt(b/2400)); //일수
  1986. }
  1987. switch1.case1.cmb_exectims.value = dtims; //투약회수
  1988. switch1.case1.rdo_comnyn.value = ds_main_picmmech_picmmechList.getColumn(ds_main_picmmech_picmmechList.rowposition, "comnyn"); //default
  1989. switch1.case1.cmb_direccd.value = ds_main_picmmech_picmmechList.getColumn(ds_main_picmmech_picmmechList.rowposition, "direccd"); //용법코드
  1990. switch1.case1.cmb_exectims.enable = false; //투약횟수 수정불가
  1991. switch1.case1.rdo_comnyn.enable = false; //default 수정불가
  1992. }
  1993. }
  1994. /**
  1995. * @group :
  1996. * @ver : 2008.05.15
  1997. * @by : 김보성
  1998. * @---------------------------------------------------
  1999. * @type : function
  2000. * @access : public
  2001. * @desc : 투약시간기준관리(공통/용법별) 적용
  2002. * @param :
  2003. * @param :
  2004. * @return :
  2005. * @---------------------------------------------------
  2006. */
  2007. function fDtimApply(){
  2008. var pGrdmnrmdtim = switch1.case1.grd_mnrmdtim; //설정입력그리드
  2009. var pPathmnrmdtim = ds_main_dtiminfo_dtim; //설정입력그리드 path
  2010. var pGrddtimList = ds_main_mnrmdtim_mnrmdtimList; //설정반영그리드
  2011. var pPathdtimList = ds_main_mnrmdtim_mnrmdtimList; //설정반영그리드 path
  2012. //체크
  2013. // if(pGrdmnrmdtim.rows < 3){
  2014. // messageBox("공통투약시간에 설정되지않았습니다.","E999");
  2015. // return;
  2016. // }
  2017. if(utlf_isNull(ds_init_mthdcdlist_1.getColumn(0, "basecnt"))){
  2018. sysf_messageBox("공통투약시간에 설정되지않았습니다.","E999");
  2019. return;
  2020. }
  2021. if(ds_main_mnrmdtim_mnrmdtimList.rowposition < 0){
  2022. return;
  2023. }
  2024. //---------------------------------
  2025. // 투약시간 설정값 추출
  2026. //---------------------------------
  2027. //var cnt = pGrd.rows;
  2028. var drugtmspec = ""; //투여시간 text 형시으로 표시(화면용)
  2029. var drugtmspeccal = ""; //투여시간 text 형시으로 표시(자료용)(24시간기준)
  2030. var day = ""; //일수
  2031. var time = ""; //시간
  2032. //var dtim_tims = model.getValue(pPathdtimList + "[" + pGrdtimList.row + "]/exectims"); //투약회수
  2033. var dtim_tims = ds_init_mthdcdlist_1.getColumn(0, "basecnt"); //투약회수
  2034. //설정입력그리드를 돌면서 시간(n row)을 한줄의 텍스트로 만듬
  2035. for (var i = 1 ; i <= dtim_tims ; i++){
  2036. time = utlf_transNullToEmpty(switch1.case1.grd_mnrmdtim.getCellValue(0, i));
  2037. day = switch1.case1.grd_mnrmdtim.getCellValue(1, i);
  2038. if(time.length != 4){
  2039. sysf_messageBox("시간은 4자리를","C001");
  2040. return;
  2041. }
  2042. if(i != 1) {
  2043. drugtmspec += " ";
  2044. drugtmspeccal += " ";
  2045. }
  2046. drugtmspec += fCarec_GetFillZeno(time,4,0);
  2047. drugtmspeccal += fCarec_GetFillZeno((Number(time) + Number(day) * 2400),4,0);
  2048. }
  2049. //-----------------------------------------------
  2050. //설정반영그리드에 반영
  2051. //신규가 아니면 수정으로 처리한다.(20080519)
  2052. //-----------------------------------------------
  2053. var rowstatus = ds_main_mnrmdtim_mnrmdtimList.getRowType(ds_main_mnrmdtim_mnrmdtimList.rowposition);
  2054. if (rowstatus == 2) {
  2055. } else {
  2056. ds_main_mnrmdtim_mnrmdtimList.enableevent = false;
  2057. ds_main_mnrmdtim_mnrmdtimList.updatecontrol = false;
  2058. ds_main_mnrmdtim_mnrmdtimList.setRowType(ds_main_mnrmdtim_mnrmdtimList.rowposition, 4);
  2059. ds_main_mnrmdtim_mnrmdtimList.updatecontrol = true;
  2060. ds_main_mnrmdtim_mnrmdtimList.enableevent = true;
  2061. }
  2062. //--------(20080812)
  2063. if (ds_main_mnrmdtim_mnrmdtimList.getColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "saveflag") == "I") {
  2064. var baseflag = switch1.case1.cmb_baseflg.value; //용법(20080812)
  2065. ds_main_mnrmdtim_mnrmdtimList.enableevent = false;
  2066. ds_main_mnrmdtim_mnrmdtimList.updatecontrol = false;
  2067. ds_main_mnrmdtim_mnrmdtimList.setRowType(ds_main_mnrmdtim_mnrmdtimList.rowposition, 2);
  2068. ds_main_mnrmdtim_mnrmdtimList.updatecontrol = true;
  2069. ds_main_mnrmdtim_mnrmdtimList.enableevent = true;
  2070. ds_main_mnrmdtim_mnrmdtimList.setColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "baseflag", baseflag);
  2071. //alert(baseflag);
  2072. }
  2073. //---------
  2074. var comnyn = ds_hidden.getColumn(0, "comnyn");
  2075. ds_main_mnrmdtim_mnrmdtimList.setColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "comnyn", comnyn); //default
  2076. ds_main_mnrmdtim_mnrmdtimList.setColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "status", "true"); //check
  2077. ds_main_mnrmdtim_mnrmdtimList.setColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "exectims", dtim_tims); //투여회수
  2078. ds_main_mnrmdtim_mnrmdtimList.setColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "drugtmspec", drugtmspec); //투약시간
  2079. ds_main_mnrmdtim_mnrmdtimList.setColumn(ds_main_mnrmdtim_mnrmdtimList.rowposition, "drugtmspeccal", drugtmspeccal);
  2080. }
  2081. ]]></Script>