SMAHA04370_문진표입력.xrw 46 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMAHA04370.xrw
  4. * 설 명 : 문진표 작성
  5. * 설 계 자 : 엄영만
  6. * 작 성 자 : 엄영만
  7. * 작 성 일 : 2011.05.25
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  13. <xhtml:head>
  14. <xhtml:title>문진표 작성</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <inqrlst>
  20. <item>
  21. <sel/>
  22. <lvl/>
  23. <appyear/>
  24. <inqrcd/>
  25. <supinqrcd/>
  26. <inqrnm/>
  27. <inqrengnm/>
  28. <inqrrsltcd/>
  29. <inqrrsltcnts/>
  30. <remcnts/>
  31. <answflag/>
  32. <titleyn/>
  33. <inqrflag/>
  34. <rsltscore/>
  35. <path/>
  36. <root/>
  37. <rrgstno1/>
  38. <rrgstno2/>
  39. </item>
  40. <answitem>
  41. <sel/>
  42. <appyear/>
  43. <inqrflag/>
  44. <inqrcd/>
  45. <answcd/>
  46. <answnm/>
  47. <answengnm/>
  48. <infinqryn/>
  49. <infinqrcd/>
  50. <reminptyn/>
  51. </answitem>
  52. <answcheck>
  53. <atype/>
  54. <btype/>
  55. </answcheck>
  56. </inqrlst>
  57. <tempinfo>
  58. <answcd/>
  59. <assoinqranswlst>
  60. <item>
  61. <sel/>
  62. <answcd/>
  63. <answnm/>
  64. <answengnm/>
  65. <infinqryn/>
  66. <infinqrcd/>
  67. <reminptyn/>
  68. <appyear/>
  69. <inqrflag/>
  70. <inqrcd/>
  71. <answpoint/>
  72. </item>
  73. </assoinqranswlst>
  74. </tempinfo>
  75. <userinfo>
  76. <ptnm/>
  77. <rrgstno1/>
  78. <rrgstno2/>
  79. <age/>
  80. </userinfo>
  81. </main>
  82. <send>
  83. <cond>
  84. <posinstcd/>
  85. <healexamflag/>
  86. <healexamdetlflag/>
  87. <appyear/>
  88. <inqrflag>A</inqrflag>
  89. <userid/>
  90. <ptnm/>
  91. <rrgstno1/>
  92. <rrgstno2/>
  93. <age/>
  94. </cond>
  95. <save>
  96. <saveinqr/>
  97. </save>
  98. </send>
  99. <init>
  100. <baseinfo>
  101. <yearlist/>
  102. </baseinfo>
  103. </init>
  104. <temp/>
  105. <hidden/>
  106. </root>
  107. </instance>
  108. <submission id="TRAHA00001"/>
  109. <submission id="TRAHA04370" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/cond" resultref="/root/main/userinfo"/>
  110. <submission id="TRAHA04371" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/cond" replace="instance" resultref="/root/main/inqrlst"/>
  111. <submission id="TXAHA04371" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/send/return"/>
  112. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  113. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  114. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  115. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  116. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  117. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  118. <script type="javascript" src="../../../com/pacsweb/js/ZEP001.js"/>
  119. <script type="javascript" src="../../../ast/examcureweb/js/AEZ0001.js"/>
  120. <script type="javascript" src="../../../ast/healthexambaseweb/js/healcombolist.js"/>
  121. <script type="javascript" src="../../../ast/healthexamrsrvacptweb/js/AHA.js"/>
  122. <script type="javascript" ev:event="xforms-ready">
  123. <![CDATA[
  124. // 년도를 기준자료로 관리 하도록 프로그램 수정
  125. healGetCodeList( new Array("S900"), new Array("/root/init/baseinfo/yearlist"));
  126. grd_assoinqrlst.fixedcellcheckbox(0, grd_assoinqrlst.colRef("sel")) = true;
  127. model.setValue("/root/send/cond/healexamdetlflag" , "G01");
  128. model.setValue("/root/send/cond/healexamflag" , "G");
  129. var cur_date = getCurrentDate().toDate("YYYYMMDD");
  130. model.setValue("/root/send/cond/appyear" , cur_date.getDateFormat('YYYY'));
  131. model.setValue("/root/send/cond/inqrflag" , "A");
  132. if(fGetUserCheck()){ //환자정보 체크
  133. fGetInqrCdList(); //공단연계 문진표 조회
  134. }
  135. model.refresh();
  136. //깜빡이 기능
  137. //깜빡이 기능 제거(20160525 이정택)
  138. /*
  139. gTimeCnt = 1;
  140. fviewinfomsg();
  141. */
  142. ]]>
  143. </script>
  144. </model>
  145. <script type="javascript">
  146. <![CDATA[
  147. var gTimerID;
  148. var gIntervalTime = 500;
  149. var gTimeCnt;
  150. /**===================================================================================
  151. @desc : 환자정보 체크
  152. =====================================================================================*/
  153. function fGetUserCheck(){
  154. model.makeValue("/root/send/cond/userid", getUserId());
  155. if(submit("TRAHA04370")){
  156. if(model.getValue("/root/main/userinfo/ptnm") == ""
  157. || model.getValue("/root/main/userinfo/rrgstno1") == ""
  158. || model.getValue("/root/main/userinfo/rrgstno2") == ""
  159. || model.getValue("/root/main/userinfo/age") == ""){
  160. messageBox("사용자정보가 유효하지 않습니다.", "E999");
  161. return false;
  162. }
  163. }else{
  164. messageBox("사용자정보가 존재하지 않습니다.", "E999");
  165. return false;
  166. }
  167. model.setValue("/root/send/cond/ptnm" , model.getValue("/root/main/userinfo/ptnm"));
  168. model.setValue("/root/send/cond/rrgstno1" , model.getValue("/root/main/userinfo/rrgstno1"));
  169. model.setValue("/root/send/cond/rrgstno2" , model.getValue("/root/main/userinfo/rrgstno2"));
  170. model.setValue("/root/send/cond/age" , model.getValue("/root/main/userinfo/age"));
  171. return true;
  172. }
  173. /**===================================================================================
  174. @desc : 깜빡이 기능
  175. =====================================================================================*/
  176. function fviewinfomsg(){
  177. window.clearInterval(gTimerID);
  178. gTimerID = window.setInterval("fviewinfomsg()", gIntervalTime);
  179. if(gTimeCnt%2 == 0){
  180. cap_infomsg.visible = true;
  181. }else{
  182. cap_infomsg.visible = false;
  183. }
  184. cap_infomsg.refresh();
  185. gTimeCnt++;
  186. }
  187. /**===================================================================================
  188. @desc : 공단연계 문진표 조회
  189. =====================================================================================*/
  190. function fGetInqrCdList(){
  191. openLoadingBar("문진표 ");
  192. var ret = submit("TRAHA04371");
  193. if(ret){
  194. grd_assoinqrlst.rebuildStyle();
  195. grd_assoinqrlst.rebuild();
  196. for(var i=1; i<grd_assoinqrlst.rows; i++){
  197. var titleYn = grd_assoinqrlst.valueMatrix(i, grd_assoinqrlst.colRef("titleyn"));
  198. if(titleYn == "N"){
  199. grd_assoinqrlst.rowStatus(i) = 1;
  200. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("sel")) = false; //선택
  201. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("inqrrsltcd")) = false; //답안결과
  202. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("inqrrsltcnts")) = false; //답안내역
  203. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("remcnts")) = false; //비고
  204. }else{
  205. grd_assoinqrlst.rowstyle(i, "data", "background-color") = "#c0c0c0";
  206. grd_assoinqrlst.rowStyle(i, "all", "font-weight") = "bold";
  207. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("sel")) = true; //선택
  208. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("inqrrsltcd")) = true; //답안결과
  209. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("inqrrsltcnts")) = true; //답안내역
  210. grd_assoinqrlst.isReadOnly(i, grd_assoinqrlst.colRef("remcnts")) = true; //비고
  211. // grd_assoinqrlst.isReadOnly( i, grd_assoinqrlst.colRef("inqrrsltcnts")) = true;
  212. // grd_assoinqrlst.isReadOnly( i, grd_assoinqrlst.colRef("remcnts")) = true;
  213. // grd_assoinqrlst.rowStyle(i, "all", "background-color") = "#c8c8c8";
  214. // grd_assoinqrlst.rowStyle(i, "all", "font-weight") = "bold";
  215. }
  216. }
  217. /*답안설명을 화면에 보이게끔*/
  218. // var arr = "";
  219. // for(nRow = 1; nRow <= grd_assoinqrlst.rows; nRow++){
  220. // var srcAppYear = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("appyear"));
  221. // var srcInqrFlag = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("inqrflag"));
  222. // var srcInqrCd = grd_assoinqrlst.valueMatrix(nRow , grd_assoinqrlst.colRef("inqrcd"));
  223. // for(var i=1; i <= getNodesetCount("/root/main/inqrlst/answitem"); i++) {
  224. // var desAppYear = model.getValue("/root/main/inqrlst/answitem[" + i + "]/appyear");
  225. // var desInqrFlag = model.getValue("/root/main/inqrlst/answitem[" + i + "]/inqrflag");
  226. // var desInqrCd = model.getValue("/root/main/inqrlst/answitem[" + i + "]/inqrcd");
  227. // var desAnswNm = model.getValue("/root/main/inqrlst/answitem[" + i + "]/answcd") + ":" + model.getValue("/root/main/inqrlst/answitem[" + i + "]/answnm") + " ";
  228. // if(srcAppYear == desAppYear && srcInqrFlag == desInqrFlag && srcInqrCd == desInqrCd ) {
  229. // arr += desAnswNm;
  230. // }
  231. // grd_assoinqrlst.valueMatrix(nRow, grd_assoinqrlst.colRef("answcont")) = arr;
  232. // }
  233. // arr = "";
  234. // }
  235. grd_assoinqrlst.autoResize = true;
  236. setTree(grd_assoinqrlst, grd_assoinqrlst.colRef("lvl"), grd_assoinqrlst.colRef("inqrnm"), true);
  237. }
  238. closeLoadingBar();
  239. if(ret){
  240. var atype = model.getValue("/root/main/inqrlst/answcheck/atype");
  241. var btype = model.getValue("/root/main/inqrlst/answcheck/btype");
  242. var msg = "";
  243. if(atype == 0){
  244. msg = "일반+생애";
  245. }
  246. /* 구강문진에 대해서 팝업 제거(2016/05/25 이정택)
  247. if(btype == 0){
  248. msg = msg + "구강"
  249. }
  250. if(atype == 0 && btype == 0){
  251. msg = "일반+생애, 구강"
  252. }
  253. */
  254. if(msg != ""){
  255. messageBox(msg+" 문진표 작성되지", "E007");
  256. }
  257. }
  258. for(var i = 1 ; i <= grd_assoinqrlst.rows ; i++) {
  259. if(grd_assoinqrlst.valueMatrix(i, grd_assoinqrlst.colRef("inqrcd")).substring(0,2) == "10") grd_assoinqrlst.rowHidden(i) = true;
  260. }
  261. }
  262. /**===================================================================================
  263. @desc : 문진 포커스를 처리 (2010.04.23. bCol flag 추가)
  264. =====================================================================================*/
  265. function fMoveInqrFocus(bCol, bMove, bRow){
  266. if(grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrcd")) == "601") {
  267. img1.visible = true;
  268. }
  269. if(bCol == "6" || bCol == "" || bCol == null) bCol = 9;
  270. if(bCol != 8 && bCol != 9) return;
  271. if(bRow == "" || bRow == null) bRow = 1;
  272. var idx = grd_assoinqrlst.row;
  273. if(idx < 1 || idx > 45) return;
  274. if(bMove == true){
  275. idx = grd_assoinqrlst.row + bRow;
  276. if(idx >= grd_assoinqrlst.rows){
  277. idx = grd_assoinqrlst.rows;
  278. return;
  279. }
  280. grd_assoinqrlst.row = idx;
  281. }
  282. //타이틀 여부 체크
  283. if(grd_assoinqrlst.valueMatrix(idx, grd_assoinqrlst.colRef("titleyn")) == "Y"){
  284. fMoveInqrFocus(bCol, true); //그리드의 셀 이외의 곳을 클릭하면 종료한다.
  285. }else{
  286. //문진명 줄무늬 시작
  287. grd_assoinqrlst.allstyle("all", "border-style" ) = "";
  288. grd_assoinqrlst.allstyle("all", "border-width" ) = "";
  289. grd_assoinqrlst.allstyle("all", "border-color" ) = "";
  290. var sPrestRow = idx;
  291. var sPrestCol = 5;
  292. grd_assoinqrlst.cellStyle("border-style" , sPrestRow, sPrestCol, sPrestRow, sPrestCol+1) = "solid";
  293. grd_assoinqrlst.cellStyle("border-width" , sPrestRow, sPrestCol, sPrestRow, sPrestCol+1) = "3px";
  294. grd_assoinqrlst.cellStyle("border-color" , sPrestRow, sPrestCol, sPrestRow, sPrestCol+1) = "#FF0000";
  295. //문진명 줄무늬 끝
  296. if(grd_assoinqrlst.valueMatrix( idx, grd_assoinqrlst.colRef("answflag")) == "O"){
  297. //선택형 문진
  298. var nRowHeigth = 0;
  299. for(var i=0; i<=idx; i++){
  300. nRowHeigth = nRowHeigth + parseInt(grd_assoinqrlst.rowheight(i))
  301. }
  302. var y = parseInt(grd_assoinqrlst.attribute("top")) + nRowHeigth;
  303. var lim_y = parseInt(grd_assoinqrlst.attribute("top")) + parseInt(grd_assoinqrlst.attribute("height")) - parseInt(grp_inqrans.attribute("height"));
  304. if(y > lim_y){
  305. y = lim_y;
  306. }
  307. fGetInqrAnsCdList(bCol, y); //문진선택형 답안 가져오기
  308. }else if( grd_assoinqrlst.valueMatrix(idx, grd_assoinqrlst.colRef("answflag")) == "T" || grd_assoinqrlst.valueMatrix( idx, grd_assoinqrlst.colRef("answflag")) == "N"){
  309. //서술형 문진
  310. if(grd_assoinqrlst.iscollapsed(idx)){
  311. var srcAppYear = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("appyear"));
  312. var srcInqrFlag = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrflag"));
  313. var srcInqrCd = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrcd"));
  314. var pathArr = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("path")).split('^');
  315. var findChk = false;
  316. var moveRow = 0;
  317. for(var i=0; i<pathArr.length; i++){
  318. if(srcInqrCd == pathArr[i]){
  319. findChk = true;
  320. }
  321. if(findChk){
  322. for(var j=1; j<grd_assoinqrlst.rows; j++){
  323. var desAppYear = grd_assoinqrlst.valueMatrix(j , grd_assoinqrlst.colRef("appyear"));
  324. var desInqrFlag = grd_assoinqrlst.valueMatrix(j , grd_assoinqrlst.colRef("inqrflag"));
  325. var desInqrCd = grd_assoinqrlst.valueMatrix(j , grd_assoinqrlst.colRef("supinqrcd"));
  326. if(srcAppYear == desAppYear && srcInqrFlag == desInqrFlag && pathArr[i] == desInqrCd){
  327. moveRow++;
  328. }
  329. }
  330. }
  331. }
  332. fMoveInqrFocus(bCol, true, moveRow); //ROW이동, 문진 포커스를 처리
  333. }else{
  334. // if("object" == typeof htmlwindow){
  335. // htmlwindow.setTimeout(function() {grd_assoinqrlst.editCell()},10);
  336. // }else{
  337. grd_assoinqrlst.editCell();
  338. // }
  339. }
  340. }else{
  341. fMoveInqrFocus(bCol, true); //ROW이동, 문진 포커스를 처리
  342. }
  343. }
  344. }
  345. /**===========================================================================================================================
  346. *문진선택형 답안 가져오기
  347. * IN : 문진구분/문진코드/기관코드 (2010.04.23. bCol 추가)
  348. =============================================================================================================================*/
  349. function fGetInqrAnsCdList(bCol, vTop){
  350. var idx = grd_assoinqrlst.row;
  351. if(idx < 1) return;
  352. model.removeNodeset(grd_assoinqranslst.nodeset);
  353. model.makeNode(grd_assoinqranslst.nodeset);
  354. model.resetInstanceNode("/root/main/tempinfo/answcd");
  355. ipt_answcd.refresh();
  356. var srcAppYear = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("appyear"));
  357. var srcInqrFlag = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrflag"));
  358. var srcInqrCd = grd_assoinqrlst.valueMatrix(idx , grd_assoinqrlst.colRef("inqrcd"));
  359. copyNodesetType(grd_assoinqranslst.nodeset, "/root/main/inqrlst/answitem[appyear='"+ srcAppYear +"' and inqrflag='"+ srcInqrFlag +"' and inqrcd='"+ srcInqrCd +"' ]");
  360. grd_assoinqranslst.rebuild();
  361. grp_inqrans.attribute("top") = vTop;
  362. if(bCol == 9){
  363. grp_inqrans.visible = true;
  364. model.setFocus("ipt_answcd");
  365. }else{
  366. grp_inqrans.visible = false;
  367. }
  368. }
  369. /**======================================================================================================================================
  370. * 답변의 Validation을 체크한다. 선택형에 없는 값을 입력하는지 체크한다.
  371. =========================================================================================================================================*/
  372. function fValidAnswer(vAnsw){
  373. var rslt="";
  374. var valid = false;
  375. for(var i=0; i<vAnsw.length; i++){
  376. var answLen = "";
  377. if(i == 0){
  378. answLen = vAnsw.substr(i, 1);
  379. }else{
  380. answLen = "^" + vAnsw.substr(i, 1);
  381. }
  382. rslt = rslt + answLen;
  383. }
  384. var answ = rslt.replace(/[\s]/g,"^");
  385. answ = answ.split('^');
  386. if(fValidLength(answ)) return true; //답변의 길이을 체크
  387. for(var i=0; i<answ.length; i++){
  388. var srchAnsw = answ[i];
  389. if(grd_assoinqranslst.findRow(srchAnsw, 1, grd_assoinqranslst.colRef("answcd"), false, true) < 0){
  390. valid = true;
  391. break;
  392. }
  393. }
  394. return valid;
  395. }
  396. /**======================================================================================================================================
  397. * 답변의 길이을 체크한다.
  398. =========================================================================================================================================*/
  399. function fValidLength(answ){
  400. var inqrcd = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrcd"));
  401. if(model.getValue("/root/send/cond/inqrflag") == "A"){
  402. //일반+생애 (1-1, 1-2, 2 다중선택 가능)
  403. if(inqrcd == "001001" || inqrcd == "001002" || inqrcd == "002001" ||inqrcd == "11" || inqrcd == "12" || inqrcd == "21"){
  404. }else{
  405. if(answ.length > 1){
  406. messageBox("다중 선택을 할 수", "I004");
  407. return true;
  408. }
  409. }
  410. }else{
  411. if(answ.length > 1){
  412. messageBox("다중 선택을 할 수", "I004");
  413. return true;
  414. }
  415. }
  416. }
  417. /**======================================================================================================================================
  418. * 문진답안선택시 배열로 생성한다. (2010.04.23 vGridYn flag 추가)
  419. =========================================================================================================================================*/
  420. function fSetInqrAns(vInptYN, vGridYn){
  421. if(vGridYn == null) vGridYn = "N";
  422. var inqrRsltArr = new Array();
  423. var addCnt = 0;
  424. var answcd = "";
  425. var answArr = "";
  426. var rslt = "";
  427. if(vInptYN == "Y") {
  428. if(vGridYn == "N"){
  429. answcd = ipt_answcd.currentText;
  430. }else{
  431. answcd = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcd"));
  432. }
  433. answcd = answcd.replace(/[\s]/g,"^");
  434. if(answcd.indexOf("^") < 0){
  435. for(var i=0; i<answcd.length; i++){
  436. var answLen = answcd.substr(i, 1) + "^";
  437. rslt = rslt + answLen;
  438. }
  439. rslt = rslt.substr(0, rslt.length-1);
  440. answArr = rslt.split('^');
  441. }else{
  442. answArr = answcd.split('^');
  443. }
  444. for(var i=0; i<answArr.length; i++){
  445. for(var j=1; j<grd_assoinqranslst.rows; j++){
  446. if(answArr[i] == grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd"))){
  447. inqrRsltArr[addCnt] = grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answcd"));
  448. addCnt++;
  449. }
  450. }
  451. }
  452. }else if(vInptYN == "N"){
  453. for(var x=1; x<grd_assoinqranslst.rows; x++){
  454. if(grd_assoinqranslst.valueMatrix(x , grd_assoinqranslst.colRef("sel")) == "Y" ){
  455. inqrRsltArr[addCnt] = grd_assoinqranslst.valueMatrix(x , grd_assoinqranslst.colRef("answcd"));
  456. addCnt++;
  457. }
  458. }
  459. }
  460. return fSetInqrRslt("1", inqrRsltArr);
  461. }
  462. /**======================================================================================================================================
  463. * 문진답안선택시 gird로 값 setting
  464. =========================================================================================================================================*/
  465. function fSetInqrRslt(vCls, vInqrArr){
  466. var insCnt = 0;
  467. var inqrRsltCd = "";
  468. var inqrRsltCnts = "";
  469. var inqrScore = 0;
  470. var befIdx = 1;
  471. var initBool = false;
  472. var moveRow = fChoiGrdTree(grd_assoinqrlst, grd_assoinqrlst.row, true);
  473. for(var i=0; i<vInqrArr.length; i++){
  474. for(var j=1; j<grd_assoinqranslst.rows; j++){
  475. if(vInqrArr[i] == grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("answcd"))){
  476. if(insCnt < 1){
  477. inqrRsltCd += grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("answcd"));
  478. inqrRsltCnts += grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("answnm"));
  479. inqrScore += parseInt(grd_assoinqranslst.valueMatrix(j , grd_assoinqranslst.colRef("answpoint")));
  480. }else{
  481. inqrRsltCd += "^" + grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("answcd"));
  482. inqrRsltCnts += "^" + grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("answnm"));
  483. inqrScore += parseInt(grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("answpoint")));
  484. }
  485. //비고 입력 체크
  486. if(grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("reminptyn")) == "Y"){
  487. grd_assoinqrlst.col = grd_assoinqrlst.colRef("remcnts");
  488. grd_assoinqrlst.editCell();
  489. }
  490. //하위메뉴 펼치기
  491. if(grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("infinqryn")) == "Y"){
  492. //하위문진사용여부
  493. var srcInqrCd = grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("infinqrcd"));
  494. var srcAppYear = grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("appyear"));
  495. var srcInqrFlag = grd_assoinqranslst.valueMatrix(j, grd_assoinqranslst.colRef("inqrflag"));
  496. for(var m=1; m<grd_assoinqrlst.rows; m++){
  497. var desInqrCd = grd_assoinqrlst.valueMatrix(m, grd_assoinqrlst.colRef("inqrcd"));
  498. var desAppYear = grd_assoinqrlst.valueMatrix(m, grd_assoinqrlst.colRef("appyear"));
  499. var desInqrFlag = grd_assoinqrlst.valueMatrix(m, grd_assoinqrlst.colRef("inqrflag"));
  500. if(srcInqrCd == desInqrCd && srcAppYear == desAppYear && srcInqrFlag == desInqrFlag){
  501. var pathArr = grd_assoinqrlst.valueMatrix(m , grd_assoinqrlst.colRef("path") ).split('^');
  502. for(n=0; n<pathArr.length; n++){
  503. var idx = grd_assoinqrlst.findRow(pathArr[n], grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrcd"), false, true);
  504. var desAppYear1 = grd_assoinqrlst.valueMatrix(m, grd_assoinqrlst.colRef("appyear"));
  505. var desInqrFlag1 = grd_assoinqrlst.valueMatrix(m, grd_assoinqrlst.colRef("inqrflag"));
  506. if(srcAppYear == desAppYear1 && srcInqrFlag == desInqrFlag1){
  507. grd_assoinqrlst.iscollapsed(idx) = false;
  508. if(initBool == false){
  509. if(idx > 0){
  510. befIdx = idx;
  511. initBool = true;
  512. }
  513. }else{
  514. if(befIdx < idx){
  515. befIdx = idx;
  516. }
  517. }
  518. }
  519. }
  520. }
  521. }
  522. }else{
  523. var pathArr = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("path") ).split('^');
  524. var desAppYear = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("appyear"));
  525. var desInqrFlag = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrflag"));
  526. for(var x=0; x<pathArr.length-1; x++){
  527. var desInqrCd = pathArr[x];
  528. for(var u=1; u<grd_assoinqrlst.rows; u++){
  529. var srcAppYear = grd_assoinqrlst.valueMatrix(u, grd_assoinqrlst.colRef("appyear"));
  530. var srcInqrFlag = grd_assoinqrlst.valueMatrix(u, grd_assoinqrlst.colRef("inqrflag"));
  531. var srcInqrCd = grd_assoinqrlst.valueMatrix(u, grd_assoinqrlst.colRef("inqrcd"));
  532. if(desAppYear == srcAppYear && desInqrFlag == srcInqrFlag && desInqrCd == srcInqrCd){
  533. if(grd_assoinqrlst.valueMatrix(u , grd_assoinqrlst.colRef("titleyn")) == "Y") {
  534. grd_assoinqrlst.iscollapsed(u) = false;
  535. moveRow = 1;
  536. }
  537. }
  538. }
  539. }
  540. }
  541. insCnt++;
  542. }
  543. }
  544. }
  545. var preInqrRsltCnts = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcnts"));
  546. if(preInqrRsltCnts == ""){
  547. grd_assoinqrlst.rowStatus(grd_assoinqrlst.row) = 1;
  548. }else{
  549. grd_assoinqrlst.rowStatus(grd_assoinqrlst.row) = 2;
  550. }
  551. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrrsltcd")) = inqrRsltCd;
  552. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("inqrrsltcnts")) = inqrRsltCnts;
  553. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row , grd_assoinqrlst.colRef("rsltscore")) = inqrScore;
  554. if(initBool){
  555. moveRow = befIdx - grd_assoinqrlst.row;
  556. }
  557. return moveRow;
  558. }
  559. /**=============================================================================================================
  560. *입력 필수 문항 체크
  561. =================================================================================================================*/
  562. function fCheckSave(){
  563. var ret = false ;
  564. var vAppYear = model.getValue("/root/send/cond/appyear");
  565. var vInqrFlag = model.getValue("/root/send/cond/inqrflag");
  566. var vCheckItem = "";
  567. var arrCheckItem = "";
  568. var vCheckInqrCd = ""
  569. var vCheckRow = 0;
  570. var vCheckValue = "";
  571. var vAlertMsg = "";
  572. var cur_date = getCurrentDate().toDate("YYYYMMDD");
  573. var cur_year = cur_date.getDateFormat('YYYY');
  574. if(vAppYear == cur_year){
  575. if(vInqrFlag == "A"){
  576. //필수입력 설정(일반+생애)
  577. vCheckItem = "003001^004001";
  578. //4-2
  579. vCheckRow = grd_assoinqrlst.findRow("004001", 1, grd_assoinqrlst.colRef("inqrcd"), true, true);
  580. vCheckValue = grd_assoinqrlst.valueMatrix(vCheckRow, grd_assoinqrlst.colRef("inqrrsltcd"));
  581. if(vCheckValue == "2"){
  582. vCheckItem = vCheckItem + "^004102^004103";
  583. }
  584. //4-3
  585. if(vCheckValue == "3"){
  586. vCheckItem = vCheckItem + "^004202^004203";
  587. }
  588. // vCheckItem = vCheckItem + "^005004";
  589. // //5-2
  590. // vCheckRow = grd_assoinqrlst.findRow("005004", 1, grd_assoinqrlst.colRef("inqrcd"), true, true);
  591. // vCheckValue = grd_assoinqrlst.valueMatrix(vCheckRow, grd_assoinqrlst.colRef("inqrrsltcd"));
  592. // if(vCheckValue != "" && vCheckValue != "1"){
  593. // vCheckItem = vCheckItem + "^005005";
  594. // }
  595. // vCheckItem = vCheckItem + "^006001^006002^006003";
  596. vCheckItem = vCheckItem + "^51";
  597. //5-2
  598. vCheckRow = grd_assoinqrlst.findRow("51", 1, grd_assoinqrlst.colRef("inqrcd"), true, true);
  599. vCheckValue = grd_assoinqrlst.valueMatrix(vCheckRow, grd_assoinqrlst.colRef("inqrrsltcd"));
  600. if(vCheckValue == "1"){
  601. vCheckItem = vCheckItem + "^52";
  602. }
  603. //6-1/7-1/8-1/9-1
  604. vCheckItem = vCheckItem + "^601^71^81^91";
  605. }else if(vInqrFlag == "B"){
  606. //필수입력 설정(구강)
  607. //vCheckItem = "001001^002001^003001^004001^005001^006001^007001^008001^009001^010001^011001^012001^013001^014001^015001^019001";
  608. vCheckItem = "001001^002001^003001^004001^005001^006001^007001^008001^009001^010001^011001^012001^013001^014001^015001"; //2014년
  609. }
  610. if(vCheckItem != ""){
  611. arrCheckItem = vCheckItem.split('^');
  612. for(var i=0; i<arrCheckItem.length; i++){
  613. vCheckInqrCd = arrCheckItem[i];
  614. vCheckRow = grd_assoinqrlst.findRow(vCheckInqrCd, 1, grd_assoinqrlst.colRef("inqrcd"), true, true);
  615. vCheckValue = grd_assoinqrlst.valueMatrix(vCheckRow, grd_assoinqrlst.colRef("inqrrsltcnts"));
  616. if(vCheckValue == ""){
  617. if(vAlertMsg == ""){
  618. vAlertMsg = "아래의 문항은 반드시 입력 하셔야 합니다.\n\n";
  619. vAlertMsg = vAlertMsg + grd_assoinqrlst.valueMatrix(vCheckRow, grd_assoinqrlst.colRef("inqrnm")) + "\n";
  620. }else{
  621. vAlertMsg = vAlertMsg + grd_assoinqrlst.valueMatrix(vCheckRow, grd_assoinqrlst.colRef("inqrnm")) + "\n";
  622. }
  623. }
  624. if(vAlertMsg == "") {
  625. if(vCheckInqrCd == "601") {
  626. var vCheckValueTemp = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow(vCheckInqrCd, 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  627. if(vCheckValueTemp != "4"){
  628. var vRow = 0;
  629. for(var x = 22 ; x <= 35 ; x++) {
  630. if(model.getValue("root/main/inqrlst/item["+x+"]/inqrrsltcd") != "") {
  631. vRow++;
  632. }
  633. }
  634. if(vRow == 0) {
  635. vAlertMsg = "음주량이 하나 이상은 입력되어야 합니다.\n\n";
  636. }
  637. }
  638. }
  639. if(vCheckInqrCd == "71") {
  640. var vCheckValueTemp = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow(vCheckInqrCd, 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  641. if(vCheckValueTemp != "0"){
  642. var sValue1 = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow("72", 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  643. var sValue2 = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow("73", 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  644. if(isNull(sValue1) && isNull(sValue2)) {
  645. vAlertMsg = "7-2, 7-3 항목중 하나는 입력되어야 합니다.\n\n";
  646. }
  647. }
  648. }
  649. if(vCheckInqrCd == "81") {
  650. var vCheckValueTemp = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow(vCheckInqrCd, 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  651. if(vCheckValueTemp != "0"){
  652. var sValue1 = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow("82", 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  653. var sValue2 = model.getValue("root/main/inqrlst/item["+grd_assoinqrlst.findRow("83", 1, grd_assoinqrlst.colRef("inqrcd"), true, true)+"]/inqrrsltcd");
  654. if(isNull(sValue1) && isNull(sValue2)) {
  655. vAlertMsg = "8-2, 8-3 항목중 하나는 입력되어야 합니다.\n\n";
  656. }
  657. }
  658. }
  659. }
  660. }
  661. if(vAlertMsg == ""){
  662. ret = true;
  663. }else{
  664. alert(vAlertMsg); //안내 메세지 팝업
  665. }
  666. }else{
  667. ret = true;
  668. }
  669. }else{
  670. messageBox("해당 검진년도는 입력 불가능 합니다.", "E999");
  671. }
  672. return ret;
  673. }
  674. /**=============================================================================================================
  675. *문진표 저장
  676. =================================================================================================================*/
  677. function fSaveInqr(){
  678. var vRrgstno1 = model.getValue("/root/send/cond/rrgstno1");
  679. var vRrgstno2 = model.getValue("/root/send/cond/rrgstno2");
  680. if(vRrgstno1.length != 6){
  681. messageBox("주민번호 값을 ", "I007");
  682. model.setFocus("ipt_rrgstno1");
  683. return false;
  684. }
  685. if(vRrgstno2.length != 7){
  686. messageBox("주민번호 값을 ", "I007");
  687. model.setFocus("ipt_rrgstno2");
  688. return false;
  689. }
  690. var vSaveInqr = getGridUpdateData(grd_assoinqrlst);
  691. if(vSaveInqr == ""){
  692. messageBox("저장할 내역이 ", "I004");
  693. return false;
  694. }
  695. model.makeValue("/root/send/save/saveinqr", vSaveInqr);
  696. if(submit("TXAHA04371")){
  697. return true;
  698. }
  699. }
  700. /**===================================================================================
  701. @desc : 공통 저장정보관련 초기화
  702. =====================================================================================*/
  703. function fInitSaveData(){
  704. model.removenode("/root/send/save");
  705. }
  706. function fChoiGrdTree(vGrd, vRow, vBool){
  707. if(vBool == null) vBool = true;
  708. var moveRow = 0;
  709. var inqrflag = vGrd.valueMatrix(vRow, vGrd.colRef("inqrflag"));
  710. var root = vGrd.valueMatrix(vRow, vGrd.colRef("root"));
  711. for(var i=1; i<vGrd.rows; i++){
  712. var desInqrFlag = vGrd.valueMatrix(i, vGrd.colRef("inqrflag"));
  713. var desRoot = vGrd.valueMatrix(i, vGrd.colRef("root"));
  714. if(inqrflag == desInqrFlag && root == desRoot){
  715. vGrd.iscollapsed(i) = vBool;
  716. moveRow++;
  717. }
  718. }
  719. return moveRow;
  720. }
  721. /**======================================================================================================================================
  722. * 작성된 선택형 문진 초기화
  723. =========================================================================================================================================*/
  724. function fInitAINQ(vGrd){
  725. var vGrd = eval(vGrd);
  726. var iNum = 0;
  727. for(var i=1; i<vGrd.rows; i++){
  728. if(vGrd.valueMatrix(i, vGrd.colRef("sel")) == "Y"){
  729. vGrd.rowStatus(i) = 1;
  730. vGrd.valueMatrix(i, vGrd.colRef("inqrrsltcd")) = '';
  731. vGrd.valueMatrix(i, vGrd.colRef("inqrrsltcnts")) = '';
  732. vGrd.valueMatrix(i, vGrd.colRef("remcnts")) = '';
  733. iNum = iNum+1;
  734. }
  735. }
  736. if(iNum < 1){
  737. messageBox("선택한 문진이" , "I004");
  738. return;
  739. }
  740. fInitSaveData(); //공통 저장정보관련 초기화
  741. if(fSaveInqr()){ //문진표 저장
  742. messageBox("초기화", "I001");
  743. fGetInqrCdList(); //공단연계 문진표 조회
  744. }
  745. }
  746. ]]>
  747. </script>
  748. </xhtml:head>
  749. <xhtml:body style="border-left-style:none; margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  750. <group id="group1" style="left:0px; top:0px; width:1195px; height:60px; ">
  751. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:159px; height:14px; ">
  752. <![CDATA[문진표 작성]]>
  753. </caption>
  754. </group>
  755. <group id="group5" style="left:0px; top:19px; width:1193px; height:46px; vertical-align:top; ">
  756. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1193px; height:40px; background-color:#fffbf2; border-color:#ffd799; "/>
  757. <caption id="caption11" class="search_name" style="left:5px; top:11px; width:94px; height:17px; ">검진년도 :</caption>
  758. <select1 id="comb_appyear" ref="/root/send/cond/appyear" disabled="true" navindex="1" appearance="minimal" style="left:95px; top:10px; width:70px; height:19px; ">
  759. <choices>
  760. <itemset nodeset="/root/init/baseinfo/yearlist/S900">
  761. <label ref="cdnm"/>
  762. <value ref="cdid"/>
  763. </itemset>
  764. </choices>
  765. </select1>
  766. <caption id="caption8" class="search_name" style="left:170px; top:11px; width:86px; height:17px; ">문진종류 :</caption>
  767. <select1 id="radio1" ref="/root/send/cond/inqrflag" appearance="full" cellspacing="10" cols="2" overflow="visible" style="left:260px; top:11px; width:140px; height:19px; border-style:none; ">
  768. <choices>
  769. <item>
  770. <label>일반+생애</label>
  771. <value>A</value>
  772. </item>
  773. <item>
  774. <label>구강</label>
  775. <value>B</value>
  776. </item>
  777. </choices>
  778. <script type="javascript" ev:event="xforms-value-changed">
  779. <![CDATA[
  780. btn_search.dispatch("DOMActivate");
  781. ]]>
  782. </script>
  783. </select1>
  784. <input id="ipt_age" ref="/root/send/cond/age" class="input_search" disabled="true" navindex="3" style="left:460px; top:10px; width:30px; height:19px; "/>
  785. <caption id="caption4" class="search_name" style="left:395px; top:11px; width:60px; height:17px; ">나이 :</caption>
  786. <caption id="caption9" class="search_name" style="left:495px; top:10px; width:86px; height:17px; ">성 명 :</caption>
  787. <input id="int_pnm" ref="/root/send/cond/ptnm" class="input_search" disabled="true" navindex="3" style="left:560px; top:10px; width:60px; height:19px; "/>
  788. <caption id="caption23" class="search_name" visibility="hidden" style="left:740px; top:11px; width:89px; height:17px; ">주민번호 :</caption>
  789. <input id="ipt_rrgstno1" ref="/root/send/cond/rrgstno1" class="input_search" navindex="4" visibility="hidden" maxlength="6" style="left:829px; top:11px; width:56px; height:19px; "/>
  790. <caption id="caption1" class="search_n_b" visibility="hidden" style="left:887px; top:11px; width:12px; height:17px; font-weight:bolder; ">-</caption>
  791. <input id="ipt_rrgstno2" ref="/root/send/cond/rrgstno2" class="input_search" navindex="5" visibility="hidden" maxlength="7" style="left:897px; top:11px; width:73px; height:19px; "/>
  792. <line id="line7" brder-left-style="solid" style="x1:1040px; y1:8px; x2:1040px; y2:32px; border-color:#ffe4bb; "/>
  793. <button id="btn_search" class="btn1_letter2" navindex="6" visibility="hidden" style="left:975px; top:10px; width:56px; height:22px; ">
  794. <caption>조회</caption>
  795. <script type="javascript" ev:event="DOMActivate">
  796. <![CDATA[
  797. if(fGetUserCheck()){ //환자정보 체크
  798. fGetInqrCdList(); //공단연계 문진표 조회
  799. }
  800. ]]>
  801. </script>
  802. </button>
  803. <button id="button5" class="btn1_letter3" style="left:1053px; top:11px; width:68px; height:22px; ">
  804. <caption>초기화</caption>
  805. <script type="javascript" ev:event="DOMActivate">
  806. <![CDATA[
  807. model.makeValue("/root/temp/tmp/gubun", "");
  808. fInitAINQ("grd_assoinqrlst");
  809. ]]>
  810. </script>
  811. </button>
  812. <button id="button4" class="btn1_letter2" style="left:1128px; top:11px; width:56px; height:22px; ">
  813. <caption>저장</caption>
  814. <script type="javascript" ev:event="DOMActivate">
  815. <![CDATA[
  816. if(messageBox("문진내역을", "Q002") == 6){
  817. if(fCheckSave()){ //입력 필수 문항 체크
  818. fInitSaveData(); //공통 저장정보관련 초기화
  819. if(fSaveInqr()){ //문진표 저장
  820. fGetInqrCdList(); //공단연계 문진표 조회
  821. }
  822. }
  823. }
  824. ]]>
  825. </script>
  826. </button>
  827. <caption id="cap_infomsg" style="left:635px; top:10px; width:380px; height:20px; font-weight:bold; color:#0000ff; text-align:left; ">※ 구강문진은 원하는 경우에만 작성하시면 됩니다.</caption>
  828. </group>
  829. <group id="group4" scroll="auto" style="left:0px; top:65px; width:1195px; height:715px; ">
  830. <datagrid id="grd_assoinqrlst" nodeset="/root/main/inqrlst/item" autoresize="true" backcoloralternate="transparent" caption="lvl^^적용년도^문진코드^상위문진코드^문진명^영문문진명^답안결과^답안내역^답안작성예문^비고^답압구분^제목여부^문진구분^점수^경로^최상위루트^rrgstno1^rrgstno2" colsep="^" colwidth="0, 25, 0, 0, 0, 780, 0, 0, 240, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:0px; width:1195px; height:700px; font-size:11pt; vertical-align:middle; word-wrap:word; line-spacing:5; padding-top:0; padding-bottom:0; ">
  831. <col ref="lvl" visibility="hidden"/>
  832. <col checkvalue="Y,N" ref="sel" type="checkbox"/>
  833. <col disabled="true" ref="appyear" type="combo">
  834. <choices>
  835. <item>
  836. <label>2011년</label>
  837. <value>2011</value>
  838. </item>
  839. <item>
  840. <label>2012년</label>
  841. <value>2012</value>
  842. </item>
  843. <item>
  844. <label>2013년</label>
  845. <value>2013</value>
  846. </item>
  847. <item>
  848. <label>2014년</label>
  849. <value>2014</value>
  850. </item>
  851. </choices>
  852. </col>
  853. <col ref="inqrcd"/>
  854. <col ref="supinqrcd" visibility="hidden"/>
  855. <col ref="inqrnm"/>
  856. <col ref="inqrengnm" visibility="hidden"/>
  857. <col ref="inqrrsltcd" visibility="hidden"/>
  858. <col ref="inqrrsltcnts" type="input"/>
  859. <col ref="answcont"/>
  860. <col class="gridinput" ref="remcnts" type="input"/>
  861. <col disabled="true" ref="answflag" type="combo">
  862. <choices>
  863. <itemset nodeset="/root/init/baseinfo/rslttypelst/A0066">
  864. <label ref="cdnm"/>
  865. <value ref="cdid"/>
  866. </itemset>
  867. </choices>
  868. </col>
  869. <col checkvalue="Y,N" disabled="true" ref="titleyn" type="checkbox" visibility="hidden"/>
  870. <col disabled="true" ref="inqrflag" type="combo" visibility="hidden">
  871. <choices>
  872. <itemset nodeset="/root/init/baseinfo/inqrflaglst/G008">
  873. <label ref="cdnm"/>
  874. <value ref="cdid"/>
  875. </itemset>
  876. </choices>
  877. </col>
  878. <col ref="rsltscore" style="text-align:right; padding-right:3; "/>
  879. <col ref="path" visibility="hidden"/>
  880. <col ref="root" visibility="hidden"/>
  881. <col ref="rrgstno1" visibility="hidden"/>
  882. <col ref="rrgstno2" visibility="hidden"/>
  883. <script type="javascript" ev:event="onclick">
  884. <![CDATA[
  885. grp_inqrans.visible = false;
  886. if(!eval(grd_assoinqrlst.iscell(event.target))) return false; //그리드의 셀 이외의 곳을 클릭하면 종료한다.
  887. if(eval(grd_assoinqrlst.row) < eval(grd_assoinqrlst.fixedRows)) return false; //그리드의 헤더부분을 클릭하면 종료한다.
  888. fMoveInqrFocus(grd_assoinqrlst.col, false); //ROW이동, 문진 포커스를 처리
  889. ]]>
  890. </script>
  891. <script type="javascript" ev:event="onendedit">
  892. <![CDATA[
  893. //if( event.keyCode != 13 ) return ;
  894. /*
  895. if(grd_assoinqrlst.col == grd_assoinqrlst.colRef("inqrrsltcnts")){
  896. fMoveInqrFocus(true); //ROW이동, 문진 포커스를 처리
  897. }else if(grd_assoinqrlst.col == grd_assoinqrlst.colRef("remcnts")) {
  898. grd_assoinqrlst.col = grd_assoinqrlst.colRef("inqrrsltcnts");
  899. grd_assoinqrlst.dispatch("onendedit");
  900. }
  901. */
  902. if(grd_assoinqrlst.col == grd_assoinqrlst.colRef("inqrrsltcnts")){
  903. //답안내역
  904. if(event.keyCode == 13){
  905. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true); //ROW이동, 문진 포커스를 처리
  906. }
  907. }
  908. /*
  909. else if(grd_assoinqrlst.col == grd_assoinqrlst.colRef("inqrrsltcd")){
  910. //답안결과_문진결과코드(inqrrsltcd)
  911. var answcd = grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcd"));
  912. if(answcd == "") return;
  913. if(fValidAnswer(answcd)) return; //답변의 Validation을 체크
  914. var idx = fSetInqrAns("Y", "Y"); //문진답안선택시 배열로 생성
  915. grp_inqrans.visible = false;
  916. if(event.keyCode == 13){
  917. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcd"), true, idx); //ROW이동, 문진 포커스를 처리
  918. }
  919. }
  920. */
  921. ]]>
  922. </script>
  923. </datagrid>
  924. <group id="grp_inqrans" visibility="hidden" style="left:840px; top:70px; width:345px; height:278px; border-style:dotted; ">
  925. <caption id="caption56" class="tit_2" style="left:4px; top:14px; width:108px; height:13px; ">문진선택답안</caption>
  926. <datagrid id="grd_assoinqranslst" nodeset="/root/main/tempinfo/assoinqranswlst/item" allowselection="false" autoresize="true" backcoloralternate="transparent" caption="선택^코드^결과내용^영문답안^하위사용여부^하위사용코드^비고입력여부^적용년도^문진구분^문진코드^점수" colsep="^" colwidth="30, 30, 230, 0, 0, 0, 0, 0, 0, 0, 0" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" selectionmode="byrow" style="left:5px; top:33px; width:335px; height:210px; ">
  927. <col checkvalue="Y,N" ref="sel" type="checkbox"/>
  928. <col ref="answcd"/>
  929. <col ref="answnm" style="word-wrap:word; "/>
  930. <col ref="answengnm" visibility="hidden"/>
  931. <col checkvalue="Y,N" disabled="true" ref="infinqryn" type="checkbox" visibility="hidden"/>
  932. <col ref="infinqrcd" visibility="hidden"/>
  933. <col checkvalue="Y,N" disabled="true" ref="reminptyn" type="checkbox" visibility="hidden"/>
  934. <col ref="appyear" visibility="hidden"/>
  935. <col ref="inqrflag" visibility="hidden"/>
  936. <col ref="inqrcd" visibility="hidden"/>
  937. <col ref="answpoint" visibility="hidden"/>
  938. <!--
  939. <script type="javascript" ev:event="onclick">
  940. <![CDATA[
  941. var answcd = ipt_answcd.currentText;
  942. answcd = answcd + grd_assoinqranslst.valueMatrix(grd_assoinqranslst.row, grd_assoinqranslst.colRef("answcd"));
  943. model.setValue("/root/main/tempinfo/answcd", answcd);
  944. ipt_answcd.refresh();
  945. ]]>
  946. </script>
  947. -->
  948. </datagrid>
  949. <line id="line36" class="line_1" style="x1:5px; y1:30px; x2:340px; y2:30px; "/>
  950. <input id="ipt_answcd" ref="/root/main/tempinfo/answcd" class="input_default" style="left:110px; top:8px; width:44px; height:19px; ">
  951. <script type="javascript" ev:event="onkeyup">
  952. <![CDATA[
  953. if(event.keyCode != 13) return;
  954. var answcd = ipt_answcd.currentText;
  955. if(answcd == "") return;
  956. if(fValidAnswer(answcd)){
  957. model.refresh();
  958. return; //답변의 Validation을 체크
  959. }
  960. var idx = fSetInqrAns("Y"); //문진답안선택시 배열로 생성
  961. grp_inqrans.visible = false;
  962. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true, idx); //ROW이동, 문진 포커스를 처리
  963. ]]>
  964. </script>
  965. </input>
  966. <button id="button11" class="btn4_letter2" visibility="visible" style="left:284px; top:247px; width:56px; height:22px; ">
  967. <caption>선택</caption>
  968. <script type="javascript" ev:event="DOMActivate">
  969. <![CDATA[
  970. var nodeList = instance1.selectNodes(grd_assoinqranslst.nodeset + "[sel='Y']" );
  971. if(nodeList.length < 1) {
  972. messageBox("선택한 답변이" , "I004");
  973. return;
  974. }
  975. if(fValidLength(nodeList)) return; //답변의 길이을 체크
  976. var idx = fSetInqrAns("N"); //문진답안선택시 배열로 생성
  977. grp_inqrans.visible = false;
  978. fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true, idx); //ROW이동, 문진 포커스를 처리
  979. ]]>
  980. </script>
  981. </button>
  982. <button id="button2" class="btn4_letter3" visibility="visible" style="left:272px; top:4px; width:68px; height:22px; ">
  983. <caption>창닫기</caption>
  984. <script type="javascript" ev:event="DOMActivate">
  985. <![CDATA[
  986. grp_inqrans.visible = false;
  987. ]]>
  988. </script>
  989. </button>
  990. <caption id="caption2" style="left:156px; top:4px; width:109px; height:20px; font-size:8pt; font-weight:bold; color:#0000ff; vertical-align:bottom; ">코드 입력후 Enter</caption>
  991. <caption id="caption3" style="left:9px; top:244px; width:125px; height:20px; font-size:8pt; font-weight:bold; color:#0000ff; vertical-align:bottom; ">답변 선택후 선택버튼</caption>
  992. <button id="button1" class="btn4_letter2" visibility="visible" style="left:224px; top:247px; width:56px; height:22px; ">
  993. <caption>삭제</caption>
  994. <script type="javascript" ev:event="DOMActivate">
  995. <![CDATA[
  996. // var nodeList = instance1.selectNodes(grd_assoinqranslst.nodeset + "[sel='Y']" );
  997. // if(nodeList.length < 1) {
  998. // messageBox("선택한 답변이" , "I004");
  999. // return;
  1000. // }
  1001. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcnts")) = "";
  1002. grd_assoinqrlst.valueMatrix(grd_assoinqrlst.row, grd_assoinqrlst.colRef("inqrrsltcd")) = "";
  1003. // var idx = fSetInqrAns("N"); //문진답안선택시 배열로 생성
  1004. // grp_inqrans.visible = false;
  1005. // fMoveInqrFocus(grd_assoinqrlst.colRef("inqrrsltcnts"), true, idx); //ROW이동, 문진 포커스를 처리
  1006. ]]>
  1007. </script>
  1008. </button>
  1009. </group>
  1010. <img id="img1" visibility="hidden" src="../../../ast/healthexamrsltweb/images/manual6.jpg" style="left:75px; top:310px; width:710px; height:130px; background-stretch:stretch; border-color:#ff0000; border-width:4px; border-style:solid; ">
  1011. <script type="javascript" ev:event="onclick">
  1012. <![CDATA[
  1013. img1.visible = false;
  1014. ]]>
  1015. </script>
  1016. </img>
  1017. </group>
  1018. </xhtml:body>
  1019. </xhtml:html>