SPMNE04400.js 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 응급실Triage ( SPMNE04400_응급실Triage.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sERTRIAGE_PATH = "/root/main/ertriage/ertriage";
  7. /**
  8. * @desc : 화면 초기화
  9. * @
  10. * @param :
  11. * @return :
  12. * @author : 오지훈
  13. * @---------------------------------------------------
  14. */
  15. //function fInitialize_SPMMO06100(){
  16. function fInitialize_SPMNE04400(){
  17. fGetNursHardCdInfo("'186','002'", getCurrentDate()); //CareCom.js 통증사정관련 추가 20100303 김홍점
  18. model.removeNodeset("/root/main/erpatinfo/erpatlist");
  19. zbcfGetCodeList(new Array("M0117",
  20. "M0118",
  21. "M0119",
  22. "M0120",
  23. "M0121",
  24. "M0122",
  25. "M0123",
  26. "M0124",
  27. "M0125",
  28. "M0126",
  29. "M0535",
  30. "M0761"),
  31. new Array("/root/init/M0117",
  32. "/root/init/M0118",
  33. "/root/init/M0119",
  34. "/root/init/M0120",
  35. "/root/init/M0121",
  36. "/root/init/M0122",
  37. "/root/init/M0123",
  38. "/root/init/M0124",
  39. "/root/init/M0125",
  40. "/root/init/M0126",
  41. "/root/init/M0535",
  42. "/root/init/M0761"));
  43. addComboItem( "cmb_inhosptype", "-", "-", "above" );
  44. model.setValue("/root/main/cond/acptdd", getCurrentDate()); //접수일자
  45. //main에서 열린화면이 아닌 opener가 있을시에는 opener로부터 환자기본정보 key값을 setting한다.
  46. if(checkOpener()){
  47. //var param = opener.javascript.getParameter("SPMMO06100_param"); //parameter
  48. var param = opener.javascript.getParameter("SPMNE04400_param"); //parameter
  49. if(param.length > 1){ //opener에서 넘어온 parameter가 있는 경우
  50. fReqERTriagePatInfoPrimaryKey(param);
  51. fReqERTriagePatList(); //현재일자를 기준으로 Triage환자리스트를 조회한다.
  52. }else{ //opener에서 넘어온 parameter가 없는 경우, 상단정보가 있는지 확인한다.
  53. var patflagcsv = getGlobalVariable("patflag");
  54. var paminfocsv = getGlobalVariable("paminfo");
  55. //alert(patflagcsv + "," + paminfocsv);
  56. model.removeNodeset("/root/patflag/list");
  57. setCSVToNode("/root/patflag", patflagcsv);
  58. var ioflag = model.getValue("/root/patflag/list/prcpgenrflag");
  59. if(patflagcsv.length > 1 && paminfocsv.length > 1 && ( ioflag == "E" || ioflag == "I" ) ){ //상단정보가 있고, 환자정보가 응급인 경우
  60. model.removeNodeset("/root/paminfo/list");
  61. setCSVToNode("/root/paminfo", paminfocsv);
  62. var param = model.getValue("/root/paminfo/list/pid") + "▦" +
  63. model.getValue("/root/paminfo/list/indd") + "▦" +
  64. model.getValue("/root/paminfo/list/cretno") + "▦" +
  65. model.getValue("/root/paminfo/list/sex") + "▦" +
  66. model.getValue("/root/paminfo/list/age") + "▦▦" +
  67. model.getValue("/root/paminfo/list/hngnm") + "▦" +
  68. model.getValue("/root/paminfo/list/orddeptcd") + "▦" +
  69. model.getValue("/root/paminfo/list/orddeptnm") + "▦" +
  70. model.getValue("/root/paminfo/list/medispclid");
  71. fReqERTriagePatInfoPrimaryKey(param);
  72. fReqERTriagePatList();
  73. //ByCY 진료외방문관련코드조회시 Blocking(20090304)
  74. //emr.mnembtms 진료외방문관련코드(C0043303, C0809949, C0260844)
  75. //var fMainsympcd = model.getValue("/root/main/ertriage/ertriage/mainsympcd");
  76. //model.makeValue("/root/blockflag/reqdata/mainsympcd",fMainsympcd);
  77. //submit("TRMNE04404", false);
  78. fCtrlSetting();
  79. //ByCY 진료외방문관련코드입력시 Blocking(20090304)
  80. }else{ //상단정보가 없는 경우
  81. model.setValue(sERTRIAGE_PATH + "/fstexamorddd", getCurrentDate()); //초진진료일자
  82. model.setValue(sERTRIAGE_PATH + "/fstexamordtm", (getCurrentTime()).substr(0,4)); //초진진료시간
  83. model.setValue(sERTRIAGE_PATH + "/attackdd" , getCurrentDate()); //발병일자
  84. model.setValue(sERTRIAGE_PATH + "/attacktm" , (getCurrentTime()).substr(0,4)); //발병시간
  85. fReqERTriagePatList(); //현재일자를 기준으로 Triage환자리스트를 조회한다.
  86. }
  87. }
  88. if(parseInt(model.getValue(sERTRIAGE_PATH + "/age")) >= 100) {
  89. messageBox("환자의 나이가 100세 이상입니다. 다시 한번 확인 하시기바랍니다.","I");
  90. }
  91. }
  92. }
  93. /**
  94. * @desc : Enter 혹은 Tab키 입력시, 지정한 콘트롤로 이동
  95. * @
  96. * @param :
  97. * @return :
  98. * @author : 오지훈
  99. * @---------------------------------------------------
  100. */
  101. function fNextMoveCtrl(ctrlID){
  102. if(event.keyCode == 13){ //Enter키가 눌린 경우
  103. model.setFocus(ctrlID);
  104. }
  105. }
  106. /**
  107. * @desc : String에서 특정 문자 검사
  108. * @
  109. * @param : trgtStr - 타켓이 되는 String문자열
  110. * : fndCh - 찾을 Char문자
  111. *
  112. * @return : true/false
  113. * @author : 오지훈
  114. * @---------------------------------------------------
  115. */
  116. function fSearchChar(sTrgtStr, chFndChar){
  117. for(var i=0; i < sTrgtStr.length; i++){
  118. var ch = sTrgtStr.charAt(i);
  119. if(ch == chFndChar){
  120. return true;
  121. }
  122. }
  123. return false;
  124. }
  125. /**
  126. * @desc : 알러지 선택, 선택취소
  127. * @
  128. * @param :
  129. * @return :
  130. * @author : 오지훈
  131. * @---------------------------------------------------
  132. */
  133. function fSelctAlgy(){
  134. var sAglyFlag = model.getValue(sERTRIAGE_PATH + "/algyflag");
  135. //alert(sAglyFlag);
  136. ipt_algyetccnt.disabled = true;
  137. if(fSearchChar(sAglyFlag, "8") == true){ // 없음(8)이 선택된 경우
  138. deselectAll("chk_algyflag");
  139. }else if(fSearchChar(sAglyFlag, "7") == true){ // 기타(7)이 선택된 경우
  140. ipt_algyetccnt.disabled = false;
  141. }else if(fSearchChar(sAglyFlag, "7") == false){ // 기타(7)이 선택해제된 경우
  142. ipt_algyetccnt.disabled = true;
  143. ipt_algyetccnt.value = "";
  144. }else if(sAglyFlag == ""){
  145. selectAll("chk_algyflag");
  146. ipt_algyetccnt.disabled = true;
  147. }
  148. if(fSearchChar(sAglyFlag, "8") == false){ // 없음(8)이 선택해제된 경우
  149. chk_algyflag.disabled = false;
  150. }
  151. model.refresh();
  152. }
  153. /**
  154. * @desc : 과거력 선택, 선택취소
  155. * @
  156. * @param :
  157. * @return :
  158. * @author : 오지훈
  159. * @---------------------------------------------------
  160. */
  161. function fSelctPastHist(){
  162. var sPastHistFlag = model.getValue(sERTRIAGE_PATH +"/pasthistflag");
  163. ipt_pasthistetccnt.disabled = true;
  164. if(fSearchChar(sPastHistFlag, "9") == true){ // 없음(9)이 선택된 경우
  165. deselectAll("chk_pasthistflag");
  166. }else if(fSearchChar(sPastHistFlag, "8") == true){ // 기타(8)이 선택된 경우
  167. ipt_pasthistetccnt.disabled = false;
  168. }else if(fSearchChar(sPastHistFlag, "8") == false){ // 기타(8)이 선택해제된 경우
  169. ipt_pasthistetccnt.disabled = true;
  170. ipt_pasthistetccnt.value = "";
  171. }else if(sPastHistFlag == ""){
  172. selectAll("chk_pasthistflag");
  173. model.setValue(sERTRIAGE_PATH +"/pasthistetccnts", "");
  174. ipt_pasthistetccnt.disabled = true;
  175. }
  176. if(fSearchChar(sPastHistFlag, "9") == false){ // 없음(8)이 선택해제된 경우
  177. chk_pasthistflag.disabled = false;
  178. }
  179. model.refresh();
  180. }
  181. // 모든 체크를 disabled = true
  182. function deselectAll(flag) {
  183. if (flag == "chk_algyflag") { // 알러지
  184. var i = 0;
  185. for(i=0; i<chk_algyflag.length-1; i++)
  186. {
  187. chk_algyflag.deselect(i);
  188. chk_algyflag.item(i).disabled = true;
  189. }
  190. model.resetInstanceNode("/root/main/ertriage/ertriage/algyetccnts");
  191. }
  192. else if (flag == "chk_pasthistflag") { // 과거력
  193. var i = 0;
  194. for(i=0; i<chk_pasthistflag.length-1; i++)
  195. {
  196. chk_pasthistflag.deselect(i);
  197. chk_pasthistflag.item(i).disabled = true;
  198. }
  199. model.resetInstanceNode("/root/main/ertriage/ertriage/pasthistetccnts");
  200. }
  201. }
  202. // 모든 체크를 disabled = false
  203. function selectAll(flag)
  204. {
  205. if (flag == "chk_algyflag") { // 알러지
  206. var i = 0;
  207. for(i=0; i<chk_algyflag.length-1; i++)
  208. {
  209. chk_algyflag.deselect(i);
  210. chk_algyflag.item(i).disabled = false;
  211. }
  212. model.resetInstanceNode("/root/main/ertriage/ertriage/algyetccnts");
  213. } else if (flag == "chk_pasthistflag") { // 과거력
  214. var i = 0;
  215. for(i=0; i<chk_pasthistflag.length-1; i++) {
  216. chk_pasthistflag.deselect(i);
  217. chk_pasthistflag.item(i).disabled = false;
  218. }
  219. model.resetInstanceNode("/root/main/ertriage/ertriage/pasthistetccnts");
  220. }
  221. }
  222. /**
  223. * @desc : 응급환자 가등록
  224. * @
  225. * @param :
  226. * @return :
  227. * @author : 오지훈
  228. * @---------------------------------------------------
  229. */
  230. function fPreRgstTriage(){
  231. model.resetInstanceNode(sERTRIAGE_PATH);
  232. model.setValue(sERTRIAGE_PATH + "/status" , "i"); //신규로 설정
  233. model.setValue(sERTRIAGE_PATH + "/rgstflag", "N"); //가등록 설정
  234. model.setValue(sERTRIAGE_PATH + "/sex" , "M");
  235. model.setValue(sERTRIAGE_PATH + "/attackdd", getCurrentDate()); //발병일자
  236. model.setValue(sERTRIAGE_PATH + "/attacktm", (getCurrentTime()).substr(0,4)); //발병시간
  237. model.setValue(sERTRIAGE_PATH + "/fstexamorddd", getCurrentDate()); //초진진료일자
  238. model.setValue(sERTRIAGE_PATH + "/fstexamordtm", (getCurrentTime()).substr(0,4)); //초진진료시간
  239. model.setValue(sERTRIAGE_PATH + "/cscsflag", "-"); //의식
  240. //model.setValue(sERTRIAGE_PATH + "/painflag", "-"); //통증
  241. model.setValue(sERTRIAGE_PATH + "/chospathflag", "-"); //내원수단
  242. model.setValue(sERTRIAGE_PATH + "/chosresnflag", "-"); //내원사유
  243. model.setValue(sERTRIAGE_PATH + "/intenflag", "-"); //의도성여부
  244. model.setValue(sERTRIAGE_PATH + "/injmechflag", "-"); //손상기전
  245. model.setValue(sERTRIAGE_PATH + "/chospathflag", "-"); //내원경로
  246. ipt_hngnm.disabled = false; //환자이름
  247. ipt_pid.disabled = true; //등록번호
  248. ipt_age.disabled = false; //나이
  249. cmb_sex.disabled = false; //성별
  250. ipt_algyetccnt.disabled = true; //알러지
  251. chk_proceqmtflag.disabled = true; //보호장구
  252. ipt_pasthistetccnt.disabled = true; //과거력
  253. model.refresh();
  254. }
  255. /**
  256. * @desc : 응급Triage 저장시 주승상을 반드시 입력하도록 설정
  257. * @
  258. * @param :
  259. * @return :
  260. * @author : 오지훈
  261. * @---------------------------------------------------
  262. */
  263. function fChkValidTriageInfo(){
  264. var chStatus = model.getValue(sERTRIAGE_PATH + "/status");
  265. if(chStatus != "i"){ //신규등록이 아닌 수정일 경우에는 수정내역이 있는지를 검사한다.
  266. //if(compareNodeVal("/root/temp/ertriage", "/root/main/ertriage/ertriage") == false){ //변경된 사항이 없는 경우,
  267. if(compareNodeVal("/root/temps/ertriage", "/root/main/ertriage/ertriage") == false){ //변경된 사항이 없는 경우,
  268. messageBox("변경된 사항이", "I004");
  269. return false;
  270. }else{
  271. model.setValue(sERTRIAGE_PATH + "/status", "u");
  272. }
  273. }
  274. /* 2009-05-19 ycd 삭제 처리
  275. var chMainSympCD = model.getValue(sERTRIAGE_PATH + "/mainsympcd"); //주증상
  276. var iSerDiagFlag = model.getValue(sERTRIAGE_PATH + "/serdiagflag"); //중증도입력
  277. var sPatNM = model.getValue(sERTRIAGE_PATH + "/patnm"); //환자이름
  278. if(chMainSympCD == ""){
  279. messageBox("주증상은 반드시", "C001");
  280. return false;
  281. }else if(sPatNM == ""){
  282. messageBox("환자이름은 반드시", "C001");
  283. return false;
  284. }else if(iSerDiagFlag == ""){
  285. messageBox("중증도는 반드시", "C001");
  286. return false;
  287. }
  288. */
  289. /* 원본_응급실 triage 등록전환버튼 기능추가로 주석처리함_20100114
  290. var sPatNM = model.getValue(sERTRIAGE_PATH + "/pid"); //환자이름
  291. if(sPatNM == ""){
  292. messageBox("등록할 환자를 선택하지 않았습니다.", "C000");
  293. return false;
  294. }
  295. */
  296. return true;
  297. }
  298. /**
  299. * @desc : UML주호소 화면 OPEN
  300. * @
  301. * @param :
  302. * @return :
  303. * @author : 오지훈
  304. * @---------------------------------------------------
  305. */
  306. function fOpenUMLSCC(){
  307. /*
  308. modal("SPMMO06200");
  309. var chUseYN = getParameter("SPMMO06200_rtn_useyn");
  310. if(chUseYN == "Y"){
  311. var sRtnUMLSCC = getParameter("SPMMO06200_rtn_umlscclist");
  312. var sRtnVal = sRtnUMLSCC.split("▦");
  313. model.setValue(sERTRIAGE_PATH + "/mainsympcd" , sRtnVal[0]);
  314. model.setValue(sERTRIAGE_PATH + "/mainsympcdno", sRtnVal[1]);
  315. model.setValue(sERTRIAGE_PATH + "/mainsympnm" , sRtnVal[4]);
  316. }
  317. model.refresh();
  318. */
  319. modal("SPMRF04200");
  320. setParameter("SPMRF04200_param_nodepath", "");
  321. model.setValue(sERTRIAGE_PATH + "/mainsympcd" , model.getValue("/root/temp/selectdiaglist/umlscd"));
  322. model.setValue(sERTRIAGE_PATH + "/mainsympcdno", 0);
  323. model.setValue(sERTRIAGE_PATH + "/mainsympnm" , model.getValue("/root/temp/selectdiaglist/termengnm"));
  324. //ByCY 진료외방문관련코드입력시 Triage전송항목 blocking(20090304)
  325. //emr.mnembtms 진료외방문관련코드(C0043303, C0809949, C0260844)
  326. //var fMainsympcd = model.getValue("/root/main/ertriage/ertriage/mainsympcd");
  327. //model.makeValue("/root/blockflag/reqdata/mainsympcd",fMainsympcd);
  328. //submit("TRMNE04404", false);
  329. fCtrlSetting();
  330. }
  331. /**
  332. * @desc : 응급실 Triage Ctrl 세팅
  333. * @
  334. * @param :
  335. * @return :
  336. * @author : 양천덕
  337. * @---------------------------------------------------
  338. */
  339. function fCtrlSetting(){
  340. var fMainsympcd = model.getValue("/root/main/ertriage/ertriage/mainsympcd");
  341. model.makeValue("/root/blockflag/reqdata/mainsympcd",fMainsympcd);
  342. submit("TRMNE04404", false);
  343. if(model.getValue("/root/blockflag2/blockyn/grpblock") == "Y") { //진료외코드여부 확인
  344. model.setValue("/root/main/ertriage/ertriage/chosresnflag","3"); //내원사유
  345. grp_triage.disabled = true;
  346. if("032" == getUserInfo("dutplceinstcd")) { // 기관급일경우 내원경로, 내원 수단 입력 가능 하도록 수정 2016.07.12 엄영만 요청서 20160630031
  347. cmb_choswayflag.disabled = false;
  348. cmb_chospathflag.disabled = false;
  349. } else {
  350. cmb_choswayflag.disabled = true;
  351. cmb_chospathflag.disabled = true;
  352. }
  353. //cap_serdiag.disabled = true;
  354. //중증도, 초진진료일자, 주증상, 초진진료시간, 발병일자, 발병시간, 내원사유제외한 부분 Null로 셋팅!!
  355. model.setValue("/root/main/ertriage/ertriage/cntctel" , "" ); //ipt_tel.value="";
  356. model.setValue("/root/main/ertriage/ertriage/attackdd" , "11111111" ); //ipt_attackdd.value = "11111111";
  357. model.setValue("/root/main/ertriage/ertriage/attacktm" , "1111" ); //ipt_attacktm.value = "1111";
  358. model.setValue("/root/main/ertriage/ertriage/mainsympnm1" , "" ); //ipt_mainsynm1.value="";
  359. model.setValue("/root/main/ertriage/ertriage/mainsympnm2" , "" ); //ipt_mainsynm2.value="";
  360. model.setValue("/root/main/ertriage/ertriage/etcsymp" , "" ); //ipt_etcsymp.value="";
  361. model.setValue("/root/main/ertriage/ertriage/cscsflag" , "-" ); //cmb_cscs.value="-";
  362. //model.setValue("/root/main/ertriage/ertriage/painflag" , "" ); //cmb_pain.value="-";
  363. //model.setValue("/root/main/ertriage/ertriage/painflag1" , "" ); //cmb_pain.value="-";
  364. model.setValue("/root/main/ertriage/ertriage/highbp" , "-1" ); //ipt_highbp.value="999";
  365. model.setValue("/root/main/ertriage/ertriage/lowbp" , "-1" ); //ipt_lowbp.value="999";
  366. model.setValue("/root/main/ertriage/ertriage/mntpulsecnt" , "-1" ); //ipt_mntpulsecnt.value="999";
  367. model.setValue("/root/main/ertriage/ertriage/mntbrethcnt" , "-1" ); //ipt_mntbrethcnt.value="999";
  368. model.setValue("/root/main/ertriage/ertriage/chosbdtp" , "-1" ); //ipt_chosbdtp.value="99.9";
  369. model.setValue("/root/main/ertriage/ertriage/oxyconcen" , "-1" ); //ipt_oxyconcen.value="";
  370. model.setValue("/root/main/ertriage/ertriage/algyflag" , "" ); //chk_algyflag.value="";
  371. model.setValue("/root/main/ertriage/ertriage/algyetccnts" , "" ); //ipt_algyetccnt.value="";
  372. model.setValue("/root/main/ertriage/ertriage/pasthistflag" , "" ); //chk_pasthistflag.value="";
  373. model.setValue("/root/main/ertriage/ertriage/pasthistetccnts" , "" ); //ipt_pasthistetccnt.value="";
  374. model.setValue("/root/main/ertriage/ertriage/choswayflag" , "-" ); //cmb_choswayflag.value="-";
  375. model.setValue("/root/main/ertriage/ertriage/intenflag" , "-" ); //cmb_intenflag.value="-";
  376. model.setValue("/root/main/ertriage/ertriage/injmechflag" , "-" ); //cmb_injmechflag.value="-";
  377. model.setValue("/root/main/ertriage/ertriage/chospathflag" , "-" ); //cmb_chospathflag.value="-";
  378. model.setValue("/root/main/ertriage/ertriage/acdowndetailflag" , "" ); //rdo_acdowndetailflag.value="";
  379. model.setValue("/root/main/ertriage/ertriage/proceqmtflag" , "" ); //chk_proceqmtflag.value="";
  380. model.setValue("/root/main/ertriage/ertriage/acdownflag" , "" ); //chk_acdownflag.value="";
  381. model.setValue("/root/main/ertriage/ertriage/inhosptype" , "-" ); //cmb_inhosptype.value = "-";
  382. model.setValue("/root/main/ertriage/ertriage/inhospcd" , "-" ); //ipt_inhoscd.value = "-";
  383. model.setValue("/root/main/ertriage/ertriage/inhospnm" , "-" ); //ipt_inhosnm.value = "-";
  384. /*
  385. var instcd = getUserInfo("dutplceinstcd");
  386. if(instcd == "031") {
  387. model.setValue("/root/main/ertriage/ertriage/serdiagflag" , "8" );
  388. } else {
  389. model.setValue("/root/main/ertriage/ertriage/serdiagflag" , "3" );
  390. }
  391. model.setValue("/root/main/ertriage/ertriage/ptmikpr1" , "-" );
  392. model.setValue("/root/main/ertriage/ertriage/ptmiktdt" , "" );
  393. model.setValue("/root/main/ertriage/ertriage/ptmikttm" , "" );
  394. model.setValue("/root/main/ertriage/ertriage/ptmikjob" , "-" );
  395. model.setValue("/root/main/ertriage/ertriage/ptmikidn" , "-" );
  396. model.setValue("/root/main/ertriage/ertriage/ptmikpr1nm" , "" );
  397. */
  398. } else if(model.getValue("/root/blockflag2/blockyn/doablock") == "Y"){ //DOA 환자일 경우
  399. grp_triage.disabled = false;
  400. model.setValue("/root/main/ertriage/ertriage/highbp" , "0" ); //ipt_highbp.value="0";
  401. model.setValue("/root/main/ertriage/ertriage/lowbp" , "0" ); //ipt_lowbp.value="0";
  402. model.setValue("/root/main/ertriage/ertriage/mntpulsecnt" , "0" ); //ipt_mntpulsecnt.value="0";
  403. model.setValue("/root/main/ertriage/ertriage/mntbrethcnt" , "0" ); //ipt_mntbrethcnt.value="0";
  404. model.setValue("/root/main/ertriage/ertriage/cscsflag" , "U" );
  405. cmb_choswayflag.disabled = false;
  406. cmb_chospathflag.disabled = false;
  407. cmb_cscs.disabled = true;
  408. ipt_highbp.disabled = true;
  409. ipt_lowbp.disabled = true;
  410. ipt_mntpulsecnt.disabled = true;
  411. ipt_mntbrethcnt.disabled = true;
  412. //ipt_chosbdtp.value="";
  413. ipt_pasthistetccnt.disabled = true;
  414. ipt_algyetccnt.disabled = true;
  415. ipt_mainsynm2.disabled = true;
  416. ipt_mainsynm1.disabled = true;
  417. ipt_mainsynm.disabled = true;
  418. input1.disabled = true;
  419. input2.disabled = true;
  420. ipt_hngnm.disabled = true;
  421. ipt_pid.disabled = true;
  422. ipt_age.disabled = true;
  423. cmb_sex.disabled = true;
  424. input5.disabled = true;
  425. input6.disabled = true;
  426. input13.disabled = true;
  427. combo1.disabled = true;
  428. fSelctAlgy();
  429. fValueChng_injmechflag();
  430. fValueChng_choswayflag();
  431. fChngChosResnFlag();
  432. fValueChng_chospathflag();
  433. fValueChng_acdownflag();
  434. }else{
  435. grp_triage.disabled = false;
  436. if(model.getValue("/root/main/ertriage/ertriage/chosresnflag") == "3") {
  437. model.setValue("/root/main/ertriage/ertriage/chosresnflag" , "-" ); //내원사유
  438. model.setValue("/root/main/ertriage/ertriage/highbp" , "" ); //ipt_highbp.value="999";
  439. model.setValue("/root/main/ertriage/ertriage/lowbp" , "" ); //ipt_lowbp.value="999";
  440. model.setValue("/root/main/ertriage/ertriage/mntpulsecnt" , "" ); //ipt_mntpulsecnt.value="999";
  441. model.setValue("/root/main/ertriage/ertriage/mntbrethcnt" , "" ); //ipt_mntbrethcnt.value="999";
  442. model.setValue("/root/main/ertriage/ertriage/chosbdtp" , "" ); //ipt_chosbdtp.value="99.9";
  443. }
  444. cmb_choswayflag.disabled = false;
  445. cmb_chospathflag.disabled = false;
  446. ipt_pasthistetccnt.disabled = true;
  447. ipt_algyetccnt.disabled = true;
  448. ipt_mainsynm2.disabled = true;
  449. ipt_mainsynm1.disabled = true;
  450. ipt_mainsynm.disabled = true;
  451. input1.disabled = true;
  452. input2.disabled = true;
  453. ipt_pid.disabled = true;
  454. input5.disabled = true;
  455. input6.disabled = true;
  456. input13.disabled = true;
  457. combo1.disabled = true;
  458. if(model.getValue(sERTRIAGE_PATH + "/pid") != ""){ // 응급등록된 환자_20100121
  459. ipt_hngnm.disabled = true;
  460. ipt_age.disabled = true;
  461. cmb_sex.disabled = true;
  462. }
  463. fSelctAlgy();
  464. fValueChng_injmechflag();
  465. fValueChng_choswayflag();
  466. fChngChosResnFlag();
  467. fValueChng_chospathflag();
  468. fValueChng_acdownflag();
  469. }
  470. model.refresh();
  471. }
  472. /**
  473. * @desc : 응급Triage환자리스트 조회
  474. * @
  475. * @param :
  476. * @return :
  477. * @author : 오지훈
  478. * @---------------------------------------------------
  479. */
  480. function fReqERTriagePatList(){
  481. model.removeNodeset("/root/send/reqdata");
  482. model.makeValue("/root/send/reqdata/acptdd", model.getValue("/root/main/cond/acptdd"));
  483. //submit("TRMMO06102");
  484. submit("TRMNE04402");
  485. //var painflag1= rdo_painflag1.value;
  486. //if ( !isNull(painflag1) && painflag1 != "-" ){
  487. //cmb_pain.choices.itemset.attribute("nodeset") = "/root/codeinfo/codeinfo/codelist[cdgrupid ='186' and supcdid='"+ painflag1 +"']";
  488. //cmb_pain.refresh();
  489. //}
  490. }
  491. /**
  492. * @desc : 응급Triage환자정보 조회
  493. * @
  494. * @param :
  495. * @return :
  496. * @author : 오지훈
  497. * @---------------------------------------------------
  498. */
  499. function fReqERTriagePatInfo(iRow){
  500. model.removeNodeset("/root/send/reqdata");
  501. model.makeNode("/root/send/reqdata");
  502. model.copyNode("/root/send/reqdata", "/root/main/erpatinfo/erpatlist[" + iRow + "]");
  503. //if(submit("TRMMO06101")){
  504. if(submit("TRMNE04401")){
  505. fSelctAlgy(); //알러지에 기타란이 선택된 경우, 기타 입력란을 활성화
  506. fSelctPastHist(); //과거력에 기타란이 선택된 경우, 기타 입력란을 활성화
  507. fSelctAcdOwnFlag(); //교통사고당사자란이 선택된 경우, 보호장구 입력란을 활성화
  508. fChngChosResnFlag(); //내원사유 선택된 경우, 의도성, 손상기, 내원경로, 보호장구 disabled
  509. //model.copyNode("/root/temp/ertriage", sERTRIAGE_PATH);
  510. //var painflag1= rdo_painflag1.value;
  511. //if ( !isNull(painflag1) && painflag1 != "-" ){
  512. //cmb_pain.choices.itemset.attribute("nodeset") = "/root/codeinfo/codeinfo/codelist[cdgrupid ='186' and supcdid='"+ painflag1 +"']";
  513. //cmb_pain.refresh();
  514. //}
  515. model.copyNode("/root/temps/ertriage", sERTRIAGE_PATH);
  516. }
  517. model.refresh();
  518. }
  519. /**
  520. * @desc : 응급Triage환자정보 등록전환
  521. * @
  522. * @param :
  523. * @return :
  524. * @author : 오지훈
  525. * @---------------------------------------------------
  526. */
  527. function fChngRgstERTriagePatInfo(){
  528. //응급환자리스트 Tab이 뜨면서 환자를 선택, 가등록된 환자정보를 pid, orddd, cretno 변경, 추후개발
  529. var chRgstFlag = model.getValue(sERTRIAGE_PATH + "/rgstflag");
  530. if(chRgstFlag == "Y"){
  531. messageBox("이미 등록전환된 환자", "E008");
  532. return;
  533. }
  534. //modal("SPMMO06400");
  535. modal("SPMNE04500");
  536. //var useflag = getParameter("SPMMO06400_useyn");
  537. var useflag = getParameter("SPMNE04500_useyn");
  538. if(useflag == "Y"){
  539. // var condparam = getParameter("SPMMO06400_condparam");
  540. var condparam = getParameter("SPMNE04500_condparam");
  541. condparam = condparam.split("▦");
  542. model.setValue(sERTRIAGE_PATH + "/pid" , condparam[0]);
  543. model.setValue(sERTRIAGE_PATH + "/orddd" , condparam[1]);
  544. model.setValue(sERTRIAGE_PATH + "/cretno" , condparam[2]);
  545. model.setValue(sERTRIAGE_PATH + "/sex" , condparam[3]);
  546. model.setValue(sERTRIAGE_PATH + "/age" , condparam[4]);
  547. model.setValue(sERTRIAGE_PATH + "/patnm" , condparam[5]);
  548. model.setValue(sERTRIAGE_PATH + "/orddeptcd" , condparam[6]);
  549. model.setValue(sERTRIAGE_PATH + "/orddeptnm" , condparam[7]);
  550. model.setValue(sERTRIAGE_PATH + "/orddrid" , condparam[8]);
  551. }else{
  552. return;
  553. }
  554. model.setValue(sERTRIAGE_PATH + "/rgstflag", "Y"); //등록설정
  555. var status = model.getValue(sERTRIAGE_PATH + "/status");
  556. if(status != "i"){
  557. model.setValue(sERTRIAGE_PATH + "/status" , "u"); //UPDATE설정
  558. }
  559. model.refresh();
  560. }
  561. /**
  562. * @desc : 응급Triage환자정보 저장
  563. * @
  564. * @param :
  565. * @return :
  566. * @author : 오지훈
  567. * @---------------------------------------------------
  568. */
  569. function fSaveERTriagePatInfo(){
  570. //khj 20100303 통증사정도구가 선택되었을경우 점수도 반드시 선택되어야함.
  571. //if( (!isNull( model.getValue("/root/main/ertriage/ertriage/painflag1"))
  572. // && model.getValue("/root/main/ertriage/ertriage/painflag1") != "-"
  573. // && rdo_painflag1.disabled != true )
  574. // && ( isNull( model.getValue("/root/main/ertriage/ertriage/painflag") )
  575. // || model.getValue("/root/main/ertriage/ertriage/painflag") =='-' ) ){
  576. // messageBox("통증 사정 점수를 선택 하십시오","I");
  577. // model.setFocus("cmb_pain");
  578. // return;
  579. //}
  580. var instcd = getUserInfo("dutplceinstcd");
  581. var Chkserdiagflag = model.getValue("/root/main/ertriage/ertriage/serdiagflag"); // 중증도
  582. var Chkstatus = model.getValue("/root/main/ertriage/ertriage/status");
  583. var Chkptmikpr1 = model.getValue("/root/main/ertriage/ertriage/ptmikpr1");
  584. if(instcd == "031" || model.getValue("/root/main/ertriage/ertriage/orddd") >= "20161024") {
  585. if(isNull(Chkserdiagflag) || Chkserdiagflag == "-") {
  586. messageBox("중증도가 입력 되지 않았습니다.","I");
  587. return;
  588. }
  589. if(Chkstatus == "i" && Chkserdiagflag != "8" && (isNull(Chkptmikpr1) || Chkptmikpr1 == "-")) {
  590. messageBox("중증도 분류기록(KTAS)이 작성 되지 않았습니다.","I");
  591. return;
  592. }
  593. }
  594. var sAattackDd = model.getValue("/root/main/ertriage/ertriage/attackdd"); // 발병일자
  595. var sAattackTm = model.getValue("/root/main/ertriage/ertriage/attacktm"); // 발병시간
  596. if(!isNull(sAattackDd) && !(sAattackDd.length == 8)) {
  597. messageBox("발병일자가 날짜 유형이 아닙니다.","I");
  598. model.setFocus("ipt_attackdd");
  599. return;
  600. }
  601. if(!isNull(sAattackTm) && !(sAattackTm.length == 4)) {
  602. messageBox("발병시간이 시간 유형이 아닙니다.","I");
  603. model.setFocus("ipt_attacktm");
  604. return;
  605. }
  606. if(!isNull(sAattackDd) && isNull(sAattackTm)) {
  607. messageBox("발병일자가 입력 되었습니다. 발병시간을 입력 하세요.","I");
  608. model.setFocus("ipt_attacktm");
  609. return;
  610. }
  611. if(isNull(sAattackDd) && !isNull(sAattackTm)) {
  612. messageBox("발병시간이 입력 되었습니다. 발병일자를 입력 하세요.","I");
  613. model.setFocus("ipt_attackdd");
  614. return;
  615. }
  616. var sChosDt = model.getValue("/root/main/ertriage/ertriage/chosdt"); // 내원일시
  617. var sAattackDt = sAattackDd + sAattackTm; // 발병일시
  618. if(!isNull(sChosDt) && (sChosDt.length == 12) && !isNull(sAattackDt) && (sAattackDt.length == 12)) {
  619. if(sChosDt <= sAattackDt) {
  620. messageBox("발병일자, 발병시간은 내원시간 이전이어야 합니다.","I");
  621. model.setFocus("ipt_attacktm");
  622. return;
  623. }
  624. }
  625. var sYearAgoDd = (sChosDt.toDate().getAddDate(-365,"D")).getDateFormat();
  626. if(!isNull(sAattackDd) && !isNull(sYearAgoDd)&& sAattackDd != "11111111") { // 미상일경우 체크 제외처리 2015.08.19 엄영만
  627. if(sAattackDd < sYearAgoDd) {
  628. messageBox("발병일자는 내원일자 기준 1년 이내로 입력 하세요.","I");
  629. model.setFocus("attackdd");
  630. return;
  631. }
  632. }
  633. var sBrthDd = model.getValue("/root/main/ertriage/ertriage/brthdd"); // 생년월일
  634. if(!isNull(sBrthDd) && sBrthDd.length == 8 && !isNull(sAattackDd) && sAattackDd != "11111111") { // 미상일경우 체크 제외처리
  635. if(sAattackDd < sBrthDd) {
  636. messageBox("발병일자는 생년월일 이후로 입력 하세요.","I");
  637. model.setFocus("attackdd");
  638. return;
  639. }
  640. }
  641. //byCY 수축기혈압,이완기혈압,분당맥박수 300이상/ 분당호흡수 99이상/ 내온시체온 20미만또는 45이상시 Blocking
  642. var Chkhighbp = model.getValue("/root/main/ertriage/ertriage/highbp");
  643. if( Chkhighbp != "" && Chkhighbp != -1 && (( Chkhighbp > 300 || Chkhighbp < 0 ) || (Chkhighbp.isNumber() == false))) {
  644. messageBox("수축기혈압은 0~300이어야 합니다.","I");
  645. model.setFocus("ipt_highbp");
  646. return;
  647. }
  648. var Chklowbp = model.getValue("/root/main/ertriage/ertriage/lowbp");
  649. if( Chklowbp != "" && Chklowbp != -1 && (( Chklowbp > 300 || Chklowbp < 0 ) || (Chklowbp.isNumber() == false))) {
  650. messageBox("이완기혈압은 0~300이어야 합니다.","I");
  651. model.setFocus("ipt_lowbp");
  652. return;
  653. }
  654. if(Chkhighbp != "" && Chkhighbp != -1 && Chklowbp != "" && Chklowbp != -1 && parseInt(Chkhighbp) < parseInt(Chklowbp)) {
  655. messageBox("수축기혈압은 이완기혈압보다 큰값이어야 합니다.","I");
  656. model.setFocus("ipt_lowbp");
  657. return;
  658. }
  659. var Chkmntpulsecnt = model.getValue("/root/main/ertriage/ertriage/mntpulsecnt");
  660. if( Chkmntpulsecnt != "" && Chkmntpulsecnt != -1 && (( Chkmntpulsecnt > 300 || Chkmntpulsecnt < 0 ) || (Chkmntpulsecnt.isNumber() == false))) {
  661. messageBox("분당맥박수는 0~300이어야 합니다.","I");
  662. model.setFocus("ipt_mntpulsecnt");
  663. return;
  664. }
  665. var Chkmntbrethcnt = model.getValue("/root/main/ertriage/ertriage/mntbrethcnt");
  666. if( Chkmntbrethcnt != "" && Chkmntbrethcnt != -1 && (( Chkmntbrethcnt > 99 || Chkmntbrethcnt < 0 ) || (Chkmntbrethcnt.isNumber() == false))) {
  667. messageBox("분당호흡수는 0~99이어야 합니다.","I");
  668. model.setFocus("ipt_mntbrethcnt");
  669. return;
  670. }
  671. var Chkchosbdtp = model.getValue("/root/main/ertriage/ertriage/chosbdtp");
  672. if( Chkchosbdtp != "" && Chkchosbdtp != 0 && Chkchosbdtp != -1 && (( Chkchosbdtp > 45 || Chkchosbdtp < 20 ) || (Chkchosbdtp.isFloat() == false))) {
  673. messageBox("내원시체온은 20.0~45.0이어야 합니다.","I");
  674. model.setFocus("ipt_chosbdtp");
  675. return;
  676. }
  677. var Chkoxyconcen = model.getValue("/root/main/ertriage/ertriage/oxyconcen");
  678. if( Chkoxyconcen != "" && Chkoxyconcen != -1 && (( Chkoxyconcen > 100 || Chkoxyconcen < 0 ) || (Chkoxyconcen.isNumber() == false))) {
  679. messageBox("산소포화도는 0~100이어야 합니다.","I");
  680. model.setFocus("ipt_oxyconcen");
  681. return;
  682. }
  683. var Chkcscsflag = model.getValue("/root/main/ertriage/ertriage/cscsflag");
  684. if(Chkcscsflag == "A") {
  685. if(Chkhighbp != "" && Chkhighbp != -1 && Chkhighbp <= 30) { // 수축기혈압이 30이하
  686. messageBox("의식이 Alert이며 수축기혈압이 30 이하 입니다.","I");
  687. model.setFocus("ipt_highbp");
  688. return;
  689. }
  690. if(Chkmntbrethcnt != "" && Chkmntbrethcnt != -1 && Chkmntbrethcnt <= 6) { // 분당호흡수가 6이하
  691. messageBox("의식이 Alert이며 분당호흡수가 6 이하 입니다.","I");
  692. model.setFocus("ipt_mntbrethcnt");
  693. return;
  694. }
  695. }
  696. //byCY
  697. var sInitVsDd = model.getValue("/root/main/ertriage/ertriage/initvsdd"); // initial v/s 측정일자
  698. if( Chkhighbp != "" && Chkhighbp != -1 && isNull(sInitVsDd) ) { // 수축기혈압 입력시 initial v/s 측정일시 필수 입력
  699. messageBox("Initial V/S 일자을 입력하세요.","I");
  700. model.setFocus("ipt_inistvsdd");
  701. return;
  702. }
  703. var sInitVsTm = model.getValue("/root/main/ertriage/ertriage/initvstm"); // initial v/s 측정시간
  704. if( Chkhighbp != "" && Chkhighbp != -1 && isNull(sInitVsTm) ) { // 수축기혈압 입력시 initial v/s 측정일시 필수 입력
  705. messageBox("Initial V/S 시간을 입력하세요.","I");
  706. model.setFocus("ipt_inistvstm");
  707. return;
  708. }
  709. var sInitVsDt = sInitVsDd + sInitVsTm; // initial v/s 측정일일시
  710. if(!isNull(sChosDt) && (sChosDt.length == 12) && !isNull(sInitVsDt) && (sInitVsDt.length == 12)) {
  711. if(sInitVsDt <= sChosDt) {
  712. messageBox("Initial V/S 시간은 내원시간 이후이어야 합니다.","I");
  713. model.setFocus("ipt_inistvsdd");
  714. return;
  715. }
  716. }
  717. var chospathflag = model.getValue("/root/main/ertriage/ertriage/chospathflag");
  718. var inhospcd = model.getValue("/root/main/ertriage/ertriage/inhospcd");
  719. var inhospnm = model.getValue("/root/main/ertriage/ertriage/inhospnm");
  720. if (chospathflag == "2" && inhospnm != "기타" && (inhospcd == "" || inhospcd == "-")) {
  721. messageBox("내원경로가 '전원'입니다. 전원 온 의료기관 정보를 반드시 입력하세요.","I");
  722. return;
  723. }
  724. if(fChkValidTriageInfo()==true){ //응급Triage 저장 정보가 유효한 경우
  725. model.removeNodeset("/root/send/savedata");
  726. model.makeNode("/root/send/savedata");
  727. model.makeValue(sERTRIAGE_PATH + "/recdt", getCurrentDate() + getCurrentTime().substr(0,4));
  728. model.copyNode("/root/send/savedata", sERTRIAGE_PATH);
  729. if(submit("TXMNE04401")){
  730. fReqERTriagePatList();
  731. }
  732. }
  733. // 질병외일 경우 손상기 화면으로 연결 2012.01.04 KJS
  734. var chosresnflag = model.getValue("/root/main/ertriage/ertriage/chosresnflag");
  735. if (chosresnflag == "2") {
  736. var rtn = messageBox("내원사유가 '질병외'인 환자입니다. 손상 정보를 등록하시겠습니까?","Q999");
  737. if (rtn == 6) {
  738. setParameter("SPMMO07500_pid", model.getValue("/root/main/ertriage/ertriage/pid"));
  739. setParameter("SPMMO07500_orddd", model.getValue("/root/main/ertriage/ertriage/orddd"));
  740. setParameter("SPMMO07500_cretno", model.getValue("/root/main/ertriage/ertriage/cretno"));
  741. open("SPMMO07500", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; min:hidden, max:hidden;");
  742. }
  743. }
  744. model.refresh();
  745. }
  746. /**
  747. * @desc : 중증도 구분값 변경
  748. * @
  749. * @param :
  750. * @return :
  751. * @author : 오지훈
  752. * @---------------------------------------------------
  753. */
  754. function fChngSerDiagFlag(){
  755. var sSerDiagFlag = model.getValue("/root/main/ertriage/ertriage/serdiagflag");
  756. var sPtmikPr1 = model.getValue("/root/main/ertriage/ertriage/ptmikpr1");
  757. //if(!isNull(sSerDiagFlag) && sSerDiagFlag == "8") { // 질병외 방문이면
  758. // return;
  759. //}
  760. var instcd = getUserInfo("dutplceinstcd");
  761. if ( instcd == "031" || model.getValue("/root/main/ertriage/ertriage/orddd") >= "20161024") {
  762. if(!isNull(sSerDiagFlag) && sSerDiagFlag != "8" && sPtmikPr1 == "-") { // KTAS이전 방식으로 중증도가 입력된 경우
  763. var iSerDiagVal = cap_serdiag.label;
  764. iSerDiagVal++;
  765. if(iSerDiagVal > 5){
  766. iSerDiagVal = 1;
  767. }
  768. } else {
  769. var pid = model.getValue("/root/main/ertriage/ertriage/pid");
  770. var hngnm = model.getValue("/root/main/ertriage/ertriage/patnm");
  771. var sa = model.getValue("/root/main/ertriage/ertriage/sex") +"/"+ model.getValue("/root/main/ertriage/ertriage/age") ;
  772. var orddd = model.getValue("/root/main/ertriage/ertriage/orddd");
  773. var cretno = model.getValue("/root/main/ertriage/ertriage/cretno");
  774. var ioflag = model.getValue("/root/main/ertriage/ertriage/ordtype");
  775. var orddeptcd = model.getValue("/root/main/ertriage/ertriage/orddeptcd");
  776. var orddeptnm = model.getValue("/root/main/ertriage/ertriage/orddeptnm");
  777. var orddeptnm = "";
  778. var roomcd = model.getValue("/root/main/ertriage/ertriage/roomcd");
  779. var orddrid = model.getValue("/root/main/ertriage/ertriage/orddrid");
  780. var ktasformrecseq = model.getValue("/root/main/ertriage/ertriage/ktasformrecseq");
  781. var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  782. setParameter("pid", pid );
  783. setParameter("orddd", orddd );
  784. setParameter("cretno", cretno);
  785. setParameter("ioflag", ioflag);
  786. setParameter("orddeptcd", orddeptcd);
  787. setParameter("orddrid", orddrid);
  788. setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
  789. if(isNull(sSerDiagFlag)) { // KTAS 중증도 신규 입력
  790. setParameter("openmode", "newform"); //신규작성
  791. setParameter("formcd", "1500017172"); //KTAS 중증도 분류
  792. } else { // KTAS 수정
  793. setParameter("formrecseq", ktasformrecseq);
  794. setParameter("openmode", "recform"); //수정
  795. }
  796. modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  797. fGetKtasInfo();
  798. if(isNull(model.getValue(sERTRIAGE_PATH + "/serdiagflag"))) {
  799. iSerDiagVal = "";
  800. } else {
  801. iSerDiagVal = parseInt(model.getValue(sERTRIAGE_PATH + "/serdiagflag"));
  802. }
  803. }
  804. } else {
  805. var iSerDiagVal = cap_serdiag.label;
  806. iSerDiagVal++;
  807. if(iSerDiagVal > 3){
  808. iSerDiagVal = 1;
  809. }
  810. }
  811. switch(iSerDiagVal){
  812. case 1:
  813. cap_serdiag.attribute("color") = "#ff0000";
  814. break;
  815. case 2:
  816. cap_serdiag.attribute("color") = "#ff6600";
  817. break;
  818. case 3:
  819. cap_serdiag.attribute("color") = "#0000ff";
  820. break;
  821. case 4:
  822. cap_serdiag.attribute("color") = "#000000";
  823. break;
  824. case 5:
  825. cap_serdiag.attribute("color") = "#000000";
  826. break;
  827. case 8:
  828. cap_serdiag.attribute("color") = "#000000";
  829. break;
  830. default:
  831. cap_serdiag.attribute("color") = "#ffffff";
  832. break;
  833. }
  834. cap_serdiag.attribute("text") = iSerDiagVal;
  835. model.setValue(sERTRIAGE_PATH + "/serdiagflag", iSerDiagVal);
  836. model.refresh();
  837. }
  838. function fGetKtasInfo() {
  839. var pid = model.getValue("/root/main/ertriage/ertriage/pid");
  840. var orddd = model.getValue("/root/main/ertriage/ertriage/orddd");
  841. var cretno = model.getValue("/root/main/ertriage/ertriage/cretno");
  842. cap_ptmikpr1.hint = "";
  843. model.removeNodeset("/root/send/reqdata");
  844. model.makeValue("/root/send/reqdata/pid" , pid);
  845. model.makeValue("/root/send/reqdata/orddd" , orddd);
  846. model.makeValue("/root/send/reqdata/cretno" , cretno);
  847. if(submit("TRMNE04405")) {
  848. model.setValue(sERTRIAGE_PATH + "/ktasformrecseq", model.getValue("/root/main/ktasinfo/ktasinfo/ktasformrecseq"));
  849. model.setValue(sERTRIAGE_PATH + "/serdiagflag", model.getValue("/root/main/ktasinfo/ktasinfo/serdiagflag"));
  850. model.setValue(sERTRIAGE_PATH + "/ptmikpr1", model.getValue("/root/main/ktasinfo/ktasinfo/ptmikpr1"));
  851. model.setValue(sERTRIAGE_PATH + "/ptmiktdt", model.getValue("/root/main/ktasinfo/ktasinfo/ptmiktdt"));
  852. model.setValue(sERTRIAGE_PATH + "/ptmikttm", model.getValue("/root/main/ktasinfo/ktasinfo/ptmikttm"));
  853. model.setValue(sERTRIAGE_PATH + "/ptmikjob", model.getValue("/root/main/ktasinfo/ktasinfo/ptmikjob"));
  854. model.setValue(sERTRIAGE_PATH + "/ptmikidn", model.getValue("/root/main/ktasinfo/ktasinfo/ptmikidn"));
  855. model.setValue(sERTRIAGE_PATH + "/ptmikpr1nm", model.getValue("/root/main/ktasinfo/ktasinfo/ptmikpr1nm"));
  856. cap_ptmikpr1.hint = model.getValue(sERTRIAGE_PATH + "/ptmikpr1nm");
  857. }
  858. }
  859. /**
  860. * @desc : 교통사고 당사자란 선택시, 보호장구란 disabled유무 설정
  861. * @
  862. * @param :
  863. * @return :
  864. * @author : 오지훈
  865. * @---------------------------------------------------
  866. */
  867. function fSelctAcdOwnFlag(){
  868. var chAcdOwnFlag = model.getValue(sERTRIAGE_PATH +"/acdownflag");
  869. if(chAcdOwnFlag == "Y"){
  870. chk_proceqmtflag.disabled = false;
  871. }else{
  872. chk_proceqmtflag.disabled = true;
  873. }
  874. model.refresh();
  875. }
  876. /**
  877. * @desc : 응급Triage환자 기본정보 조회(primary key를 이용해서 조회한다.)
  878. * @
  879. * @param :
  880. * @return :
  881. * @author : 오지훈
  882. * @---------------------------------------------------
  883. */
  884. function fReqERTriagePatInfoPrimaryKey(param){
  885. var condparam = param.split("▦");
  886. model.removeNodeset("/root/send/reqdata");
  887. model.makeValue("/root/send/reqdata/pid" , condparam[0]);
  888. model.makeValue("/root/send/reqdata/orddd" , condparam[1]);
  889. model.makeValue("/root/send/reqdata/cretno" , condparam[2]);
  890. model.makeValue("/root/send/reqdata/queryflag", "K"); //쿼리구분 K : 기본키를 이용해 조회한다.
  891. //submit("TRMMO06103");
  892. submit("TRMNE04403");
  893. var node = instance1.selectSingleNode(sERTRIAGE_PATH)
  894. if(node == null){
  895. fMakeERTriageNode(); //조회 결과가 없는 경우 node를 생성한다.
  896. model.setValue(sERTRIAGE_PATH + "/status" , "i");
  897. var condparam = param.split("▦");
  898. model.setValue(sERTRIAGE_PATH + "/pid" , condparam[0]);
  899. model.setValue(sERTRIAGE_PATH + "/orddd" , condparam[1]);
  900. model.setValue(sERTRIAGE_PATH + "/cretno" , condparam[2]);
  901. model.setValue(sERTRIAGE_PATH + "/sex" , condparam[3]);
  902. model.setValue(sERTRIAGE_PATH + "/age" , condparam[4]);
  903. model.setValue(sERTRIAGE_PATH + "/cntctel" , condparam[5]);
  904. model.setValue(sERTRIAGE_PATH + "/patnm" , condparam[6]);
  905. model.setValue(sERTRIAGE_PATH + "/orddeptcd" , condparam[7]);
  906. model.setValue(sERTRIAGE_PATH + "/orddeptnm" , condparam[8]);
  907. model.setValue(sERTRIAGE_PATH + "/orddrid" , condparam[9]);
  908. model.setValue(sERTRIAGE_PATH + "/cscsflag", "-"); //의식
  909. model.setValue(sERTRIAGE_PATH + "/choswayflag", "-"); //내원수단
  910. //model.setValue(sERTRIAGE_PATH + "/painflag", "-"); //통증
  911. model.setValue(sERTRIAGE_PATH + "/chosresnflag", "-"); //내원사유
  912. model.setValue(sERTRIAGE_PATH + "/intenflag", "-"); //의도성여부
  913. model.setValue(sERTRIAGE_PATH + "/injmechflag", "-"); //손상기전
  914. model.setValue(sERTRIAGE_PATH + "/chospathflag", "-"); //내원경로
  915. model.setValue(sERTRIAGE_PATH + "/inhosptype" , "-"); //전원병원구분
  916. model.setValue(sERTRIAGE_PATH + "/preday" , "0"); //전원병원구분
  917. model.setValue(sERTRIAGE_PATH + "/prehour" , "00"); //전원병원구분
  918. model.setValue(sERTRIAGE_PATH + "/premin" , "00"); //전원병원구분
  919. model.makeValue(sERTRIAGE_PATH + "/wardcd" , model.getValue("/root/codeinfo/codeinfo/codelist[cdgrupid ='002']/cdid")); //전원병원구분
  920. model.makeValue(sERTRIAGE_PATH + "/roomcd" , "ERBD"); //전원병원구분
  921. model.makeValue(sERTRIAGE_PATH + "/ordtype" , "E"); //전원병원구분
  922. model.makeValue(sERTRIAGE_PATH + "/instcd" , getUserInfo("dutplceinstcd")); //전원병원구분
  923. model.makeValue(sERTRIAGE_PATH + "/slightyn" , "N"); //경증환자여부
  924. fGetKtasInfo(); // 작성된 중증도를 조회 한다.
  925. }else{
  926. //조회 결과가 있는 경우, status를 update로 설정한다.
  927. //model.setValue(sERTRIAGE_PATH + "/status" , "");
  928. //model.copyNode("/root/temp/ertriage", "/root/main/ertriage/ertriage");
  929. model.copyNode("/root/temps/ertriage", "/root/main/ertriage/ertriage");
  930. if(model.getValue(sERTRIAGE_PATH + "/status") == "i") { // 신규작성
  931. model.setValue(sERTRIAGE_PATH + "/cscsflag", "-"); //의식
  932. model.setValue(sERTRIAGE_PATH + "/choswayflag", "-"); //내원수단
  933. //model.setValue(sERTRIAGE_PATH + "/painflag", "-"); //통증
  934. model.setValue(sERTRIAGE_PATH + "/chosresnflag", "-"); //내원사유
  935. model.setValue(sERTRIAGE_PATH + "/intenflag", "-"); //의도성여부
  936. model.setValue(sERTRIAGE_PATH + "/injmechflag", "-"); //손상기전
  937. model.setValue(sERTRIAGE_PATH + "/chospathflag", "-"); //내원경로
  938. model.setValue(sERTRIAGE_PATH + "/inhosptype" , "-"); //전원병원구분
  939. model.setValue(sERTRIAGE_PATH + "/preday" , "0"); //전원병원구분
  940. model.setValue(sERTRIAGE_PATH + "/prehour" , "00"); //전원병원구분
  941. model.setValue(sERTRIAGE_PATH + "/premin" , "00"); //전원병원구분
  942. model.makeValue(sERTRIAGE_PATH + "/wardcd" , model.getValue("/root/codeinfo/codeinfo/codelist[cdgrupid ='002']/cdid")); //전원병원구분
  943. model.makeValue(sERTRIAGE_PATH + "/roomcd" , "ERBD"); //전원병원구분
  944. model.makeValue(sERTRIAGE_PATH + "/ordtype" , "E"); //전원병원구분
  945. model.makeValue(sERTRIAGE_PATH + "/instcd" , getUserInfo("dutplceinstcd")); //전원병원구분
  946. model.makeValue(sERTRIAGE_PATH + "/slightyn" , "N"); //경증환자여부
  947. fGetKtasInfo(); // 작성된 중증도를 조회 한다.
  948. }
  949. cap_ptmikpr1.hint = model.getValue(sERTRIAGE_PATH + "/ptmikpr1nm");
  950. }
  951. }
  952. /**
  953. * @desc : 응급Triage Node 생성
  954. * @
  955. * @param :
  956. * @return :
  957. * @author : 오지훈
  958. * @---------------------------------------------------
  959. */
  960. function fMakeERTriageNode(){
  961. model.makeNode("/root/main/ertriage/ertriage/status");
  962. model.makeNode("/root/main/ertriage/ertriage/acptddno");
  963. model.makeNode("/root/main/ertriage/ertriage/acptddtm");
  964. model.makeNode("/root/main/ertriage/ertriage/acptdd");
  965. model.makeNode("/root/main/ertriage/ertriage/acptno");
  966. model.makeNode("/root/main/ertriage/ertriage/histno");
  967. model.makeNode("/root/main/ertriage/ertriage/histcd");
  968. model.makeNode("/root/main/ertriage/ertriage/rgstflag");
  969. model.makeNode("/root/main/ertriage/ertriage/pid");
  970. model.makeNode("/root/main/ertriage/ertriage/orddd");
  971. model.makeNode("/root/main/ertriage/ertriage/cretno");
  972. model.makeNode("/root/main/ertriage/ertriage/sex");
  973. model.makeNode("/root/main/ertriage/ertriage/age");
  974. model.makeNode("/root/main/ertriage/ertriage/serdiagflag");
  975. model.makeNode("/root/main/ertriage/ertriage/mainsympcd");
  976. model.makeNode("/root/main/ertriage/ertriage/mainsympcdno");
  977. model.makeNode("/root/main/ertriage/ertriage/mainsympnm");
  978. model.makeNode("/root/main/ertriage/ertriage/attackdd");
  979. model.makeNode("/root/main/ertriage/ertriage/attacktm");
  980. model.makeNode("/root/main/ertriage/ertriage/cscsflag");
  981. //model.makeNode("/root/main/ertriage/ertriage/painflag");
  982. //model.makeNode("/root/main/ertriage/ertriage/painflag1");
  983. model.makeNode("/root/main/ertriage/ertriage/chospathflag");
  984. model.makeNode("/root/main/ertriage/ertriage/choswayflag");
  985. model.makeNode("/root/main/ertriage/ertriage/chosresnflag");
  986. model.makeNode("/root/main/ertriage/ertriage/intenflag");
  987. model.makeNode("/root/main/ertriage/ertriage/injmechflag");
  988. model.makeNode("/root/main/ertriage/ertriage/acdownflag");
  989. model.makeNode("/root/main/ertriage/ertriage/cntctel");
  990. model.makeNode("/root/main/ertriage/ertriage/highbp");
  991. model.makeNode("/root/main/ertriage/ertriage/lowbp");
  992. model.makeNode("/root/main/ertriage/ertriage/mntpulsecnt");
  993. model.makeNode("/root/main/ertriage/ertriage/mntbrethcnt");
  994. model.makeNode("/root/main/ertriage/ertriage/chosbdtp");
  995. model.makeNode("/root/main/ertriage/ertriage/oxyconcen");
  996. model.makeNode("/root/main/ertriage/ertriage/algyflag");
  997. model.makeNode("/root/main/ertriage/ertriage/pasthistflag");
  998. model.makeNode("/root/main/ertriage/ertriage/proceqmtflag");
  999. model.makeNode("/root/main/ertriage/ertriage/patnm");
  1000. model.makeNode("/root/main/ertriage/ertriage/orddeptcd");
  1001. model.makeNode("/root/main/ertriage/ertriage/orddeptnm");
  1002. model.makeNode("/root/main/ertriage/ertriage/orddrid");
  1003. model.makeNode("/root/main/ertriage/ertriage/algyetccnts");
  1004. model.makeNode("/root/main/ertriage/ertriage/pasthistetccnts");
  1005. model.makeNode("/root/main/ertriage/ertriage/fstexamorddd");
  1006. model.makeNode("/root/main/ertriage/ertriage/fstexamordtm");
  1007. model.makeNode("/root/main/ertriage/ertriage/mainsympcd1");
  1008. model.makeNode("/root/main/ertriage/ertriage/mainsympcdno1");
  1009. model.makeNode("/root/main/ertriage/ertriage/mainsympnm1");
  1010. model.makeNode("/root/main/ertriage/ertriage/mainsympcd2");
  1011. model.makeNode("/root/main/ertriage/ertriage/mainsympcdno2");
  1012. model.makeNode("/root/main/ertriage/ertriage/mainsympnm2");
  1013. model.makeNode("/root/main/ertriage/ertriage/etcsymp");
  1014. model.makeNode("/root/main/ertriage/ertriage/acdowndetailflag");
  1015. model.makeNode("/root/main/ertriage/ertriage/inhosptype");
  1016. model.makeNode("/root/main/ertriage/ertriage/inhospcd");
  1017. model.makeNode("/root/main/ertriage/ertriage/inhospnm");
  1018. model.makeNode("/root/main/ertriage/ertriage/dsid");
  1019. model.makeNode("/root/main/ertriage/ertriage/reid");
  1020. model.makeNode("/root/main/ertriage/ertriage/preday");
  1021. model.makeNode("/root/main/ertriage/ertriage/prehour");
  1022. model.makeNode("/root/main/ertriage/ertriage/premin");
  1023. model.makeNode("/root/main/ertriage/ertriage/slightyn");
  1024. model.makeNode("/root/main/ertriage/ertriage/ktasformrecseq");
  1025. model.makeNode("/root/main/ertriage/ertriage/ptmikpr1");
  1026. model.makeNode("/root/main/ertriage/ertriage/ptmiktdt");
  1027. model.makeNode("/root/main/ertriage/ertriage/ptmikttm");
  1028. model.makeNode("/root/main/ertriage/ertriage/ptmikjob");
  1029. model.makeNode("/root/main/ertriage/ertriage/ptmikidn");
  1030. model.makeNode("/root/main/ertriage/ertriage/ptmikpr1nm");
  1031. }
  1032. /**
  1033. * @desc : 내원사유 변경
  1034. * @
  1035. * @param :
  1036. * @return :
  1037. * @author : 오지훈
  1038. * @---------------------------------------------------
  1039. */
  1040. function fChngChosResnFlag(){
  1041. var chosresnflag = model.getValue(sERTRIAGE_PATH +"/chosresnflag");
  1042. if(cmb_chosresnflag.value == "1" || cmb_chosresnflag.value == "-"){ //내원사유가 질병인 경우, 미설정일 경우
  1043. model.setValue(sERTRIAGE_PATH + "/intenflag" , "-"); //의도성여부
  1044. model.setValue(sERTRIAGE_PATH + "/injmechflag" , "-"); //손상기전
  1045. model.setValue(sERTRIAGE_PATH + "/acdownflag" , ""); //교통사고 당사자
  1046. model.setValue(sERTRIAGE_PATH + "/proceqmtflag", ""); //보호장구
  1047. cmb_intenflag.disabled = true;
  1048. cmb_injmechflag.disabled = true;
  1049. //chk_acdownflag.disabled = true;
  1050. //chk_proceqmtflag.disabled= true;
  1051. //model.setValue(sERTRIAGE_PATH + "/chospathflag", "-"); //내원경로
  1052. //cmb_chospathflag.disabled= true; //내원사유가 질병인 경우, 내원경로 disabled해체
  1053. //model.refresh();
  1054. }else{
  1055. cmb_intenflag.disabled = false;
  1056. cmb_injmechflag.disabled = false;
  1057. cmb_chospathflag.disabled= false;
  1058. //chk_acdownflag.disabled = false;
  1059. //chk_proceqmtflag.disabled= false;
  1060. //model.refresh();
  1061. }
  1062. }
  1063. /**
  1064. * @desc : UML주호소 화면 OPEN
  1065. * @
  1066. * @param :
  1067. * @return :
  1068. * @author : 정경화
  1069. * @---------------------------------------------------
  1070. */
  1071. function fOpenUMLSCC1(){
  1072. //model.removeNodeset("/root/temp");
  1073. //model.makeNode("/root/send/reqdata");
  1074. if(ipt_mainsynm.value == ""){
  1075. messageBox("주증상 정보를 입력하셔야 합니다.","C");
  1076. return;
  1077. }
  1078. modal("SPMRF04200");
  1079. //setParameter("SPMRF04200_param_nodepath", "/root/temp/selectdiaglist");
  1080. setParameter("SPMRF04200_param_nodepath", "");
  1081. model.setValue(sERTRIAGE_PATH + "/mainsympcd1" , model.getValue("/root/temp/selectdiaglist/umlscd"));
  1082. model.setValue(sERTRIAGE_PATH + "/mainsympcdno1", 0);
  1083. model.setValue(sERTRIAGE_PATH + "/mainsympnm1" , model.getValue("/root/temp/selectdiaglist/termengnm"));
  1084. model.refresh();
  1085. }
  1086. /**
  1087. * @desc : UML주호소 화면 OPEN
  1088. * @
  1089. * @param :
  1090. * @return :
  1091. * @author : 정경화
  1092. * @---------------------------------------------------
  1093. */
  1094. function fOpenUMLSCC2(){
  1095. if(ipt_mainsynm.value == ""){
  1096. messageBox("주증상 정보를 입력하셔야 합니다.","C");
  1097. return;
  1098. }
  1099. modal("SPMRF04200");
  1100. setParameter("SPMRF04200_param_nodepath", "");
  1101. model.setValue(sERTRIAGE_PATH + "/mainsympcd2" , model.getValue("/root/temp/selectdiaglist/umlscd"));
  1102. model.setValue(sERTRIAGE_PATH + "/mainsympcdno2", 0);
  1103. model.setValue(sERTRIAGE_PATH + "/mainsympnm2" , model.getValue("/root/temp/selectdiaglist/termengnm"));
  1104. model.refresh();
  1105. }
  1106. /**
  1107. * @desc : 손상기전 변경 Event
  1108. * @
  1109. * @param :
  1110. * @return :
  1111. * @author : 양천덕
  1112. * @---------------------------------------------------
  1113. */
  1114. function fValueChng_injmechflag(){
  1115. if(cmb_injmechflag.value == "01" || cmb_injmechflag.value == "02" || cmb_injmechflag.value == "03" || cmb_injmechflag.value == "04" ||
  1116. cmb_injmechflag.value == "05" || cmb_injmechflag.value == "06" || cmb_injmechflag.value == "07" || cmb_injmechflag.value == "08" ||
  1117. cmb_injmechflag.value == "09"){
  1118. chk_acdownflag.disabled = false;
  1119. }else{
  1120. chk_acdownflag.value = "";
  1121. chk_acdownflag.disabled = true;
  1122. }
  1123. }
  1124. /**
  1125. * @desc : 내원수단 변경 Event
  1126. * @
  1127. * @param :
  1128. * @return :
  1129. * @author : 양천덕
  1130. * @---------------------------------------------------
  1131. */
  1132. function fValueChng_choswayflag(){
  1133. if(cmb_choswayflag.value == "1"){
  1134. ipt_dsid.disabled = false;
  1135. ipt_reid.disabled = false;
  1136. btn_reidsetting.disabled = false;
  1137. btn_dsidsetting.disabled = false;
  1138. }else{
  1139. ipt_dsid.value = "";
  1140. ipt_reid.value = "";
  1141. ipt_dsid.disabled = true;
  1142. ipt_reid.disabled = true;
  1143. btn_reidsetting.disabled = true;
  1144. btn_dsidsetting.disabled = true;
  1145. }
  1146. }
  1147. /**
  1148. * @desc : 내원경로 변경 Event
  1149. * @
  1150. * @param :
  1151. * @return :
  1152. * @author : 양천덕
  1153. * @---------------------------------------------------
  1154. */
  1155. function fValueChng_chospathflag(){
  1156. cmb_inhosptype.disabled = true;
  1157. ipt_inhosnm.disabled = true;
  1158. if(cmb_chospathflag.value == "2"){
  1159. //cmb_inhosptype.disabled = false;
  1160. btn_hossear.disabled = false;
  1161. }else{
  1162. cmb_inhosptype.value = "-";
  1163. //cmb_inhosptype.disabled = true;
  1164. btn_hossear.disabled = true;
  1165. }
  1166. }
  1167. /**
  1168. * @desc : 내원경로 변경 Event
  1169. * @
  1170. * @param :
  1171. * @return :
  1172. * @author : 양천덕
  1173. * @---------------------------------------------------
  1174. */
  1175. function fValueChng_acdownflag(){
  1176. if(chk_acdownflag.value == "Y"){
  1177. rdo_acdowndetailflag.disabled = false;
  1178. chk_proceqmtflag.disabled = false;
  1179. }else{
  1180. chk_proceqmtflag.value = "";
  1181. rdo_acdowndetailflag.value = "";
  1182. rdo_acdowndetailflag.disabled = true;
  1183. chk_proceqmtflag.disabled = true;
  1184. }
  1185. }
  1186. /**
  1187. * @desc : 몇일 몇시간 몇분전으로 발병일시 발병시간을 조회한다.
  1188. * @
  1189. * @param :
  1190. * @return :
  1191. * @author : 김병국
  1192. * @---------------------------------------------------
  1193. */
  1194. function fCalcAttackDate() {
  1195. var curdd = getCurrentDate();
  1196. var curtm = getCurrentTime();
  1197. var curdate = curdd + curtm;
  1198. var curdt = curdd + curtm;
  1199. var stat = 0;
  1200. var dd = Number(model.getValue(ipt_preday.attribute("ref")));
  1201. var hh = Number(model.getValue(ipt_prehour.attribute("ref")));
  1202. var min = Number(model.getValue(ipt_premin.attribute("ref")));
  1203. if(min != "" || isNull(min)) {
  1204. curdt = (curdate.toDate("YYYYMMDDhhmmss")).getAddDate(min * -1, "m");
  1205. stat++;
  1206. }
  1207. if(hh != "" || isNull(hh)) {
  1208. if(stat == 0) {
  1209. curdt = (curdt.toDate("YYYYMMDDhhmmss")).getAddDate(hh * -1, "h");
  1210. } else {
  1211. curdt = curdt.getAddDate(hh * -1, "h");
  1212. }
  1213. }
  1214. if(dd != "" || isNull(dd)) {
  1215. if(stat == 0) {
  1216. curdt = (curdt.toDate("YYYYMMDDhhmmss")).getAddDate(dd * -1);
  1217. } else {
  1218. curdt = curdt.getAddDate(dd * -1);
  1219. }
  1220. }
  1221. sFDate = curdt.getFullYear();
  1222. sFDate = sFDate.toString() + (( curdt.getMonth() + 1 > 9 ) ? curdt.getMonth() + 1 : "0" + (curdt.getMonth() + 1));
  1223. sFDate = sFDate.toString() + (( curdt.getDate() > 9 ) ? curdt.getDate() : "0" + curdt.getDate());
  1224. sFTime = (( curdt.getHours() > 9 ) ? curdt.getHours() : "0" + curdt.getHours());
  1225. sFTime = sFTime.toString() + (( curdt.getMinutes() > 9 ) ? curdt.getMinutes() : "0" + curdt.getMinutes());
  1226. model.setValue(ipt_attackdd.attribute("ref"), sFDate);
  1227. model.setValue(ipt_attacktm.attribute("ref"), sFTime.substr(0,4));
  1228. ipt_attackdd.refresh();
  1229. ipt_attacktm.refresh();
  1230. }