SMMNH03700.js 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. /*********************************************************************************************************************************
  2. * 2007-12-17
  3. * follow up sheet의 KPS점수를 등록하는 팝업화면 스크립트
  4. *********************************************************************************************************************************/
  5. //KPS 점수 xPath
  6. var xVashPath = "/root/main/vash/vashlist";
  7. //opener parameters
  8. var pid = opener.window.javascript.getParameter("pid");
  9. var cretdd = opener.window.javascript.getParameter("cretdd");
  10. var crettm = opener.window.javascript.getParameter("crettm");
  11. var recitemcd = opener.window.javascript.getParameter("recitemcd");
  12. var recdd = opener.window.javascript.getParameter("recdd");
  13. var vas_row = opener.window.javascript.getParameter("vas_row");
  14. var vas_col = opener.window.javascript.getParameter("vas_col");
  15. var vashval = opener.window.javascript.getParameter("vashval");
  16. var spid = opener.window.javascript.getParameter("spid");
  17. if((vashval =="" )||(vashval==null)){
  18. vashval = "I";
  19. }else{
  20. vashval = "U";
  21. }
  22. var rectm;
  23. /*
  24. * 초기화
  25. * xforms-ready 이벤트 발생시 초기화펑션을 호출한다.
  26. **/
  27. function fInit(){
  28. //입력시간(ipt_recdt)에 현재 시간을 세팅
  29. ipt_recdt.value = getCurrentTime().substring(0,4);
  30. //부모창에서 받아온 paramter값에 해당하는 환자의 KPS점수를 조회
  31. model.removenode("/root/send");
  32. model.makeValue("/root/send/pid",pid);
  33. model.makeValue("/root/send/cretdd",cretdd);
  34. model.makeValue("/root/send/crettm",crettm);
  35. model.makeValue("/root/send/recitemcd", recitemcd);
  36. model.makeValue("/root/send/recdd",recdd);
  37. model.removenodeset(xVashPath);
  38. submit("TRMNH03301");
  39. //조회된 KPS점수가 없으면 default로 row를 세팅해 준다.
  40. if(grd_vashlist.rows < 2){
  41. grd_vashlist.addRow();
  42. model.setValue(xVashPath + "["+grd_vashlist.row+"]/staiud","insert");
  43. model.setValue(xVashPath + "["+grd_vashlist.row+"]/recdd",recdd);
  44. model.setValue(xVashPath + "["+grd_vashlist.row+"]/rectm",getCurrentTime().substring(0,4));
  45. grd_vashlist.cellStyle("background-image", grd_vashlist.row, 1) = "../../../com/commonweb/images/icon_i.gif";
  46. brecdd = recdd.substring(0,4)+"-"+ recdd.substring(4,6)+"-"+recdd.substring(6,8);
  47. var recdt = "";
  48. if(ipt_recdt.value == ""){
  49. recdt = getCurrentTime().substring(0,2)+":"+getCurrentTime().substring(2,4);
  50. }else{
  51. recdt = (ipt_recdt.value).substring(0,2)+":"+(ipt_recdt.value).substring(2,4);;
  52. }
  53. grd_vashlist.valueMatrix(grd_vashlist.row,2) = brecdd + " " + recdt;
  54. grd_vashlist.valueMatrix(grd_vashlist.row,4) = getUserName();
  55. grd_vashlist.valueMatrix(grd_vashlist.row,8) = getUserId();
  56. }
  57. model.refresh();
  58. }
  59. /*
  60. * 2007-12-17
  61. * KPS점수를 입력하기 위한 그리드에 행추가
  62. */
  63. function fAddKPSScore(){
  64. //행추가 버튼을 클릭할 때 입력시간(ipt_recdt)에 입력된 값을 rectm에 넣어준다.
  65. //ipt_recdt에 값이 없으면 현재 날짜,시간을 넣어준다.
  66. var curDate = getCurrentDate();
  67. var inpTime = ipt_recdt.value;
  68. if(inpTime == '' || !isValidDateTime(inpTime, 'hhmm')){
  69. inpTime = getCurrentTime().substring(0, 4);
  70. ipt_recdt.value = inpTime;
  71. }
  72. //그리드 내에 입력되어 있는 데이터의 일시와 입력하려는 일시를 비교하여 입력하려는 일시가 중복되면 리턴
  73. var grdtm;
  74. for(var i = 1; i <= grd_vashlist.rows; i++){
  75. grdtm = model.getValue(xVashPath + "[" + i + "]/rectm");
  76. if(grdtm == inpTime){
  77. messageBox("입력시간이 같으면 행을 추가 할수 ","I004");
  78. return;
  79. }
  80. }
  81. //그리드에 보여줄 입력일시를 registddtmStr 임시변수에 저장한다.
  82. var registddtmStr = curDate.substring(0, 4) + '-';
  83. registddtmStr += curDate.substring(4, 6) + '-';
  84. registddtmStr += curDate.substring(6) + ' ';
  85. registddtmStr += inpTime.substring(0, 2) + ':';
  86. registddtmStr += inpTime.substring(2);
  87. //그리드에 첫번째 row에 행추가
  88. grd_vashlist.insertRow(1);
  89. //인스턴스에 값을 세팅한다.
  90. model.setValue(xVashPath + "[" + grd_vashlist.row + "]/recdt", registddtmStr); //입력일시
  91. model.setValue(xVashPath + "[" + grd_vashlist.row + "]/staiud", "insert"); //iud상태값
  92. model.setValue(xVashPath + "[" + grd_vashlist.row + "]/recdd", recdd); //기록일자
  93. model.setValue(xVashPath + "[" + grd_vashlist.row + "]/rectm", inpTime); //기록시간
  94. model.setValue(xVashPath + "[" + grd_vashlist.row + "]/userid", getUserId()); //입력자아이디
  95. model.setValue(xVashPath + "[" + grd_vashlist.row + "]/usernm", getUserName()); //입력자이름
  96. grd_vashlist.cellStyle("background-image", grd_vashlist.row, 1) = "../../../com/commonweb/images/icon_i.gif"; //insert 상태값이미지
  97. model.refresh();
  98. }
  99. /*
  100. * 2007-12-17
  101. * KPS점수를 입력하기 위한 그리드에 행추가
  102. */
  103. function fDeleteKPSScore(){
  104. model.setValue(xVashPath + "["+grd_vashlist.row+"]/staiud","delete");
  105. grd_vashlist.cellStyle("background-image", grd_vashlist.row, 1) = "../../../com/commonweb/images/icon_d.gif";
  106. }
  107. /*
  108. * 2007-12-17
  109. * 입력시간이 이미 입력된 KPS점수의 시간과 중복되는지 유효성을 체크한다.
  110. */
  111. function fIsValidKPSTime(){
  112. var recdt = ipt_recdt.value;
  113. if(Number(recdt.substring(0,2)) > 24){
  114. messageBox("시간 입력에","E009");
  115. ipt_recdt.value = "";
  116. model.setFocus("ipt_recdt");
  117. return;
  118. }
  119. if(Number(recdt.substring(2,4)) > 60){
  120. messageBox("분 입력에","E009");
  121. ipt_recdt.value = "";
  122. model.setFocus("ipt_recdt");
  123. return;
  124. }
  125. }
  126. /*
  127. * 2007-12-17
  128. * 시계버튼을 눌렀을때 호출되는 펑션이다.
  129. * 현재시간을 input 박스에 입력한다.
  130. **/
  131. function fInputCurrentTime(){
  132. //현재시간을 입력한다.
  133. var curtime = getCurrentTime().substring(0, 4);
  134. ipt_recdt.value= curtime;
  135. }
  136. /*
  137. * 2007-12-17
  138. * KPS점수리스트의 점수를 클릭이벤트가 발생했을때 호출되는 펑션이다
  139. * 클릭한 포커스의 점수가 입력될 그리드의 점수필드에 입력된다.
  140. */
  141. function fInputKPSScore(){
  142. var curRow = grd_vashlist.row;
  143. if(curRow > 0){
  144. grd_vashlist.valueMatrix(curRow, 3) = vasval.valueMatrix(vasval.row, 0);
  145. var staiud = model.getValue(xVashPath +"[" + curRow + "]/staiud");
  146. if( (staiud =="insert") || (staiud =="delete") ){
  147. return;
  148. }
  149. model.setValue(xVashPath +"[" + curRow + "]/staiud", "update");
  150. grd_vashlist.cellStyle("background-image", curRow, 1) = "../../../com/commonweb/images/icon_u.gif";
  151. }
  152. }
  153. /*
  154. * 2007-12-17
  155. * 저장시 유효성을 체크한다.
  156. */
  157. function fIsValid(){
  158. if(messageBox("","Q002") != 6)
  159. return false;
  160. if(model.getValue(xVashPath + "["+ 1 + "]/vasrslt" )==""){
  161. messageBox("KPS점수는 필수 입력 사항","E008");
  162. model.setFocus("grd_vashlist");
  163. return false;
  164. }
  165. return true;
  166. }
  167. /*
  168. * 2007-12-17
  169. * KPS점수를 저장한다.
  170. */
  171. function fSaveKPSScore(){
  172. if(fIsValid()){
  173. var sVashData =
  174. "pid" //01등록번호
  175. + "▦cretdd" //02생성일자
  176. + "▦crettm" //03생성시간
  177. + "▦recitemcd" //04기록항목코드
  178. + "▦recdd" //05기록일자
  179. + "▦rectm" //06기록시간
  180. + "▦vasrslt" //07값
  181. + "▦staiud" //08상태
  182. + "▦userid" //09입력자
  183. + "▩" ;
  184. for (i=1;i < grd_vashlist.rows; i++ ) {
  185. sVashData +=
  186. pid //01등록번호
  187. + "▦" + cretdd //02생성일자
  188. + "▦" + crettm //03생성시간
  189. + "▦" + recitemcd //04기록항목코드
  190. + "▦" + recdd //05기록일자
  191. + "▦" + model.getValue(xVashPath + "["+ i + "]/rectm") //06기록시간
  192. + "▦" + model.getValue(xVashPath + "["+ i + "]/vasrslt") //07값
  193. + "▦" + model.getValue(xVashPath + "["+ i + "]/staiud") //08상태
  194. + "▦" + model.getValue(xVashPath + "["+ i + "]/userid") //09입력자
  195. + "▩" ;
  196. }
  197. // 환자별 통증사정도구 VAS 입력,수정,삭제 한다.
  198. model.removenode("/root/send");
  199. model.makeNode("/root/send");
  200. model.makeValue("/root/send/sVashData" ,sVashData );
  201. submit("TRMNH03302");
  202. model.refresh();
  203. //환자별 통증사정도구 VAS 기록 조회한다.
  204. model.removenode("/root/send");
  205. model.makeValue("/root/send/pid",pid);
  206. model.makeValue("/root/send/cretdd",cretdd);
  207. model.makeValue("/root/send/crettm",crettm);
  208. model.makeValue("/root/send/recitemcd", recitemcd);
  209. model.makeValue("/root/send/recdd",recdd);
  210. model.removenodeset(xVashPath);
  211. submit("TRMNH03301");
  212. // 환자별 통증사정도구 VAS 수정 한다.
  213. model.removenode("/root/send");
  214. model.makeNode("/root/send");
  215. model.makeValue("/root/send/pid" ,pid );
  216. model.makeValue("/root/send/cretdd" ,cretdd );
  217. model.makeValue("/root/send/crettm" ,crettm );
  218. model.makeValue("/root/send/recitemcd" ,recitemcd );
  219. model.makeValue("/root/send/recdd" ,recdd );
  220. model.makeValue("/root/send/dday" ,model.getValue(xVashPath + "["+ 1 + "]/vasrslt" ) );
  221. model.makeValue("/root/send/userid" ,model.getValue(xVashPath + "["+ 1 + "]/userid" ) );
  222. model.makeValue("/root/send/vashval" ,vashval);
  223. model.makeValue("/root/send/spid" ,spid);
  224. submit("TRMNH03303");
  225. opener.grd_inptlist.valueMatrix(vas_row,vas_col) = model.getValue(xVashPath + "["+ 1 + "]/vasrslt" );
  226. opener.grd_inptlist.valueMatrix(vas_row,vas_col+1) = model.getValue(xVashPath + "["+ 1 + "]/vasrslt" );
  227. }
  228. window.close();
  229. }