SPAVT00130.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. /* ---------------------------------------------------------------------
  2. 수술기록 적출물 기록(SMMNP00310.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By taebum
  6. : 2008-07-04 오전 10:43:50
  7. ---------------------------------------------------------------------- */
  8. var sPid = ""; //등록번호
  9. var sOprsrvno = ""; //수술예약번호
  10. var sOphistno = ""; //수술예약 일련번호
  11. var sDoctid = ""; //집도의ID
  12. var sDoctnm = ""; //집도의
  13. var sInstcd = "";
  14. var sOpfromdt = ""; //수술시작일시
  15. var sOproomcd = ""; //수술방코드
  16. var sOpcnfmdd = ""; //수술확정일자
  17. //sSendData = sPid+"▥"+ sOprsrvno +"▥"+ sOphistno +"▥"+ sInstcd +"▥"+ sOpfromdt +"▥"+tempOproomcd+ "▨"+ sSendPinfo +"▨"+sSendDoctinfo;
  18. /**
  19. * 화면 초기화
  20. *
  21. */
  22. function fInit(){
  23. model.removeNodeSet("/root/main/eolist");
  24. datagrid1.refresh();
  25. model.refresh();
  26. var sRecvFlag = opener.javascript.getParameter("SPAVT00130_searchFlag");
  27. var sRecvData = opener.javascript.getParameter("SPAVT00130_SearchCondition");
  28. opener.javascript.setParameter("SPAVT00130_searchFlag", "");
  29. opener.javascript.setParameter("SPAVT00130_SearchCondition", "");
  30. if(sRecvFlag != "true"){
  31. messageBox("이 적출물기록은 조직은행 화면에서만 연동할 수 있으며 기록 가능합니다.", "");
  32. group3.disabled = true;
  33. return;
  34. }
  35. //**공통코드 가져오기**//
  36. zbcfGetCodeList( new Array ( "M0194" // 감염성 질환
  37. )
  38. , new Array ( "/root/init/M0194list" // 감염성 질환
  39. )
  40. );
  41. tbGetBscdList( new Array("S02", "S03"),
  42. new Array("/root/init/DisplayData", // S02 간호사
  43. "/root/init/DisplayData" // S03 수술방
  44. )
  45. );
  46. var sRecvArr = null;
  47. if(sRecvData != "" && sRecvData != null && sRecvData != "undefined"){
  48. sRecvArr = sRecvData.split("▥");
  49. sPid = sRecvArr[0];
  50. sGraftno = sRecvArr[1];
  51. sInstcd = sRecvArr[2];
  52. }
  53. //alert("sGraftno = " + sGraftno);
  54. if(sGraftno != "" && sGraftno != null && sGraftno != "undefined"){
  55. fSearchAvtTbeo();
  56. model.setValue("/root/init/HideData/actid", model.getValue("/root/main/infectinfo/actnurid"));
  57. output1.refresh();
  58. }
  59. }
  60. /**
  61. * 조회 버튼 클릭시 이벤트
  62. *
  63. */
  64. function fSearchAvtTbeo(){
  65. if(sGraftno == "" || sGraftno == "undefined" || sGraftno == null) {
  66. messageBox("적출물기록은 조직은행 화면에서만 연동할 수 있으며 기록 가능합니다.", "");
  67. group3.disabled = true;
  68. return;
  69. }
  70. model.removenode("/root/send");
  71. model.makeValue("/root/send/graftno", sGraftno);
  72. model.makeValue("/root/send/pid", sPid);
  73. model.removeNodeSet("/root/main/eolists/eolist");
  74. datagrid1.rebuild();
  75. submit("TRAVT00130");
  76. if(getNodesetCount("/root/main/eolists/eolist") < 1){
  77. model.setValue("/root/main/infectinfo/infectyn", "N");
  78. checkbox1.disabled = true;
  79. input1.disabled = true;
  80. model.refresh();
  81. }else{
  82. if(model.getValue("/root/main/eolists/eolist/infectyn") == "" || model.getValue("/root/main/eolists/eolist/infectyn") == "Y"){
  83. model.setValue("/root/main/infectinfo/infectyn", datagrid1.textmatrix(1, datagrid1.colRef("infectyn")));
  84. model.setValue("/root/main/infectinfo/infectflag", datagrid1.textmatrix(1, datagrid1.colRef("infectflag")));//감염구분
  85. infectArray = datagrid1.textmatrix(1, datagrid1.colRef("infectflag")).split(" ");
  86. for(var i = 0 ; i < infectArray.length ; i++){
  87. if(infectArray[i] == "6"){
  88. input1.disabled = false;
  89. }
  90. }
  91. model.setValue("/root/main/infectinfo/infectetc",datagrid1.textmatrix(1, datagrid1.colRef("infectetc")));//감염etc
  92. model.setValue("/root/main/infectinfo/actnurid", datagrid1.textmatrix(1, datagrid1.colRef("actnurid"))); //취급간호사
  93. model.refresh();
  94. //combo2.refresh();
  95. //alert(datagrid1.textmatrix(1, 16));
  96. }else{
  97. model.setValue("/root/main/infectinfo/infectyn", "N");
  98. checkbox1.disabled = true;
  99. input1.disabled = true;
  100. model.refresh();
  101. }
  102. }
  103. }
  104. /**
  105. * 추가 버튼 클릭 시 이벤트
  106. *
  107. */
  108. function fOnClickGridAddBtn(){
  109. //var iRow = datagrid2.row;
  110. //var iCol = datagrid2.col;
  111. //alert(iCol);
  112. datagrid1.addRow(true, true);
  113. var i = datagrid1.rows - datagrid1.fixedRows;
  114. //alert("i = " + i);
  115. if(datagrid1.textmatrix(i, datagrid1.colRef("oproomcd")) == ""){
  116. datagrid1.textmatrix(i, datagrid1.colRef("oproomcd")) = "01";//집도방
  117. }
  118. if(datagrid1.textmatrix(i, datagrid1.colRef("graftno")) == ""){
  119. datagrid1.textmatrix(i, datagrid1.colRef("graftno")) = sGraftno;//조직번호
  120. }
  121. if(datagrid1.textmatrix(i, datagrid1.colRef("pid")) == ""){
  122. datagrid1.textmatrix(i, datagrid1.colRef("pid")) = sPid;//환자번호
  123. }
  124. /*
  125. if(datagrid1.textmatrix(i, datagrid1.colRef("opdoctid")) == ""){
  126. datagrid1.textmatrix(i, datagrid1.colRef("opdoctid")) = sDoctid;//적출의ID - 집도의
  127. }
  128. if(datagrid1.textmatrix(i, datagrid1.colRef("opdoctnm")) == ""){
  129. datagrid1.textmatrix(i, datagrid1.colRef("opdoctnm")) = sDoctnm;//적출의명
  130. }
  131. */
  132. // 동의서 조회 주석 처리
  133. // if(getNodesetCount("/root/main/eolists/aprvlist/opaprvyn") > 0){
  134. // datagrid1.textmatrix(i, datagrid1.colRef("opaprvyn")) = model.getValue("/root/main/eolists/aprvlist/opaprvyn");//동의서확인
  135. // }
  136. }
  137. /**
  138. * 삭제 버튼 클릭 시 이벤트
  139. *
  140. */
  141. function fOnClickGridDeleteBtn(){
  142. var iRow = datagrid1.row;
  143. var iCol = datagrid1.col;
  144. if (datagrid1.row >= 1) {
  145. if(datagrid1.valueMatrix(iRow, datagrid1.colRef("eoseqno")) != "" && datagrid1.valueMatrix(iRow, datagrid1.colRef("remvdd")) != ""){
  146. messageBox("이미 수거한 내역은 삭제할 수 없습니다.", "");
  147. }else{
  148. deleteSelectedRows(datagrid1, true);
  149. }
  150. }
  151. }
  152. /**
  153. * Grid Time button 클릭시
  154. *
  155. */
  156. function fOnClickGridTimeBtn(){
  157. var iRow = datagrid1.row;
  158. var iCol = datagrid1.col;
  159. if(iCol == datagrid1.colRef("extcrtm")){
  160. datagrid1.textmatrix(iRow, iCol-1) = getCurrentDate();
  161. datagrid1.textmatrix(iRow, iCol) = getCurrentTime().substr(0, 4);
  162. }
  163. }
  164. /**
  165. * 저장시 valid check 및 default info copy
  166. *
  167. */
  168. function validForSave(){
  169. var itotalRow = datagrid1.rows;
  170. var iCol = datagrid1.col;
  171. var iTempStat = "";
  172. var sUpdateCnt = 0; //감염정보를 전체 update하기 위한 상태값 변경.
  173. if(input1.disabled == false && input1.value == ""){
  174. messageBox("감염 정보 기타 상세내역을 입력하십시요.", "");
  175. return false;
  176. }
  177. for(var i = datagrid1.fixedRows; i <= itotalRow - datagrid1.fixedRows; i++){
  178. iTempStat = datagrid1.rowstatus(i);
  179. /*
  180. 0 : 데이터는 있지만 변경되지 않은 사항
  181. 1 : new
  182. 2 : update
  183. */
  184. if(iTempStat == 0){
  185. if(sUpdateCnt == 0){
  186. datagrid1.rowstatus(i) = 2;
  187. }
  188. sUpdateCnt++;
  189. }else if(iTempStat == 0){
  190. sUpdateCnt++;
  191. }else if(iTempStat == 0){
  192. sUpdateCnt++;
  193. }
  194. if(datagrid1.textmatrix(i, datagrid1.colRef("oproomcd")) == ""){
  195. datagrid1.textmatrix(i, datagrid1.colRef("oproomcd")) = sOproomcd;
  196. }
  197. if(datagrid1.textmatrix(i, datagrid1.colRef("extcrdd")) == ""){ //적출일자
  198. messageBox(i+" 번째 행의 적출일자 정보를 입력하시기 바랍니다.", "");
  199. return false;
  200. }
  201. if(datagrid1.textmatrix(i, datagrid1.colRef("extcrtm")) == ""){ //적출일자
  202. messageBox(i+" 번째 행의 적출시간 정보를 입력하시기 바랍니다.", "");
  203. return false;
  204. }
  205. if(datagrid1.textmatrix(i, datagrid1.colRef("extcrpart")) == ""){ //적출부위
  206. messageBox(i+" 번째 행의 적출부위 정보를 입력하시기 바랍니다.", "");
  207. return false;
  208. }
  209. if(datagrid1.textmatrix(i, datagrid1.colRef("extcrcnt")) == ""){ //수량
  210. messageBox(i+" 번째 행의 적출 수량 정보를 입력하시기 바랍니다.", "");
  211. return false;
  212. }
  213. if(datagrid1.textmatrix(i, datagrid1.colRef("extcrweig")) == ""){ //중량
  214. messageBox(i+" 번째 행의 적출 중량 정보를 입력하시기 바랍니다.", "");
  215. return false;
  216. }
  217. if(datagrid1.textmatrix(i, datagrid1.colRef("opaprvyn")) == ""){ //동의서확인
  218. messageBox(i+" 번째 행의 동의서 출력 확인 정보를 입력하시기 바랍니다.", "");
  219. return false;
  220. }
  221. //감염여부
  222. datagrid1.textmatrix(i, datagrid1.colRef("infectyn")) = model.getValue("/root/main/infectinfo/infectyn");
  223. //감염구분
  224. datagrid1.textmatrix(i, datagrid1.colRef("infectflag")) = model.getValue("/root/main/infectinfo/infectflag");
  225. //감염etc
  226. datagrid1.textmatrix(i, datagrid1.colRef("infectetc")) = model.getValue("/root/main/infectinfo/infectetc");
  227. if(datagrid1.textmatrix(i, datagrid1.colRef("displayactnurid")) == ""){ //취급간호사
  228. messageBox(i+" 번째 행의 취급간호사 정보를 입력하시기 바랍니다.", "");
  229. return false;
  230. }
  231. }
  232. return true;
  233. }
  234. /**
  235. * 저장 버튼 클릭 시 이벤트
  236. *
  237. */
  238. function onclickSaveBtn(){
  239. if(!validForSave()) return;
  240. model.removenode("/root/send");
  241. if ( messageBox("","Q002")==6 ) {
  242. var update = getGridUpdateData(datagrid1);
  243. if(update == ""){
  244. messageBox("업데이트 정보가 없습니다.", "I");
  245. return 0;
  246. }else {
  247. model.makeValue("/root/send/eolists", update );
  248. if ( submit("TXAVT00130")) {
  249. submit("TRAVT00130");
  250. }
  251. }
  252. }
  253. datagrid1.clearStatus();
  254. }
  255. /**
  256. * 감염유무
  257. */
  258. function fValueChangedInfectCombo(){
  259. var sinfectyn = model.getValue("/root/main/infectinfo/infectyn");
  260. if(sinfectyn == "Y"){
  261. checkbox1.disabled = false;
  262. //input1.disabled = false;
  263. }else if(sinfectyn == "N"){
  264. model.setValue("/root/main/infectinfo/infectflag","");
  265. model.setValue("/root/main/infectinfo/infectetc","");
  266. checkbox1.disabled = true;
  267. input1.disabled = true;
  268. checkbox1.refresh();
  269. input1.refresh();
  270. }
  271. }
  272. //grid Value Changed event
  273. function fGridValueChanged(){
  274. var iRow = datagrid1.row;
  275. var iCol = datagrid1.col;
  276. if(iCol == datagrid1.colRef("actnurid")){
  277. //model.setValue("/root/main/eolists/eolist["+iRow+"]/displayactnurid", datagrid1.valueMartrix(iRow, datagrid1.colRef("search")));
  278. datagrid1.valueMatrix(iRow, datagrid1.colRef("displayactnurid")) = datagrid1.valueMatrix(iRow, datagrid1.colRef("actnurid"));
  279. datagrid1.refresh();
  280. }
  281. }
  282. /**
  283. * 감염 정보 값 변경 시 이벤트
  284. *
  285. */
  286. function fValueChangedInfectChk(){
  287. infectArray = checkbox1.value.split(" ");
  288. chkinfectyn = true;
  289. for(var i = 0 ; i < infectArray.length ; i++){
  290. if(infectArray[i] == "6"){
  291. chkinfectyn = false;
  292. }
  293. }
  294. if(chkinfectyn == true){
  295. input1.value = "";
  296. }
  297. input1.disabled = chkinfectyn;
  298. }