SPAVT00130.xjs 13 KB

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