SPMNP00310.js 13 KB

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