SPMNP00330.xjs 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
  3. 수술기록 장기이식 정보 등록 (SPMNP00330_장기이식기록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. : taebum
  7. : 2008-07-08 오전 9:30:10
  8. ---------------------------------------------------------------------- */
  9. var sOprsrvno = ""; //수술예약번호
  10. var sRecvFlag = "";
  11. var sRecvData = "";
  12. var sOpcnfmdd = "";
  13. /**
  14. * 화면 초기화
  15. *
  16. */
  17. function fInit(){
  18. sRecvFlag = opener.frmf_getParameter("SMMNP00300_OrSearchFlag");
  19. sRecvData = opener.frmf_getParameter("SMMNP00300_OrSearchCondition");
  20. opener.frmf_setParameter("SMMNP00300_OrSearchFlag", "");
  21. opener.frmf_setParameter("SMMNP00300_OrSearchCondition", "");
  22. if( sRecvFlag != "true" ){
  23. sysf_messageBox("현재 화면의 분만정보는 수술기록 화면에서만 연동 합니다.", "");
  24. group3.enable = false;
  25. return;
  26. }
  27. var sRecvArr = null;
  28. if( !utlf_isNull(sRecvData) ){
  29. sRecvArr = sRecvData.split("▨");
  30. if( !utlf_isNull(sRecvArr[1]) ){
  31. var sDataArr = sRecvArr[1].split("▥");
  32. sOpcnfmdd = sDataArr[0];
  33. ds_init.setColumn(0, "pinfo", sDataArr[0]);
  34. ds_init.setColumn(0, "pinfo2", sDataArr[1]);
  35. ds_init.setColumn(0, "pinfo3", sDataArr[2]);
  36. //output2.refresh();
  37. }
  38. if( !utlf_isNull(sRecvArr[0]) ){
  39. var sRecvPinfoArr = sRecvArr[0].split("▥");
  40. sOprsrvno = sRecvPinfoArr[0]; //수술예약번호
  41. }
  42. }
  43. if( !utlf_isNull(sOprsrvno) ){
  44. ds_init_HideData.setColumn(0, "oprsrvno", sOprsrvno);
  45. //수술예약번호가 존재할 경우 정상 조회 처리
  46. fSearchOrInfo();
  47. }
  48. }
  49. /**
  50. * 장기 이식 정보 조회
  51. *
  52. */
  53. function fSearchOrInfo(){
  54. if( utlf_isNull(sOprsrvno) ){
  55. sysf_messageBox("현재 화면의 적출물정보는 수술기록 화면에서만 연동 합니다.", "");
  56. group1.enable = false;
  57. return;
  58. }
  59. ds_main_OrganLists_organlist.clearData();
  60. ds_send.setColumn(0, "oprsrvno", sOprsrvno);
  61. ds_send.setColumn(0, "searchdd", sOpcnfmdd);
  62. var oParam = {};
  63. oParam.id = "TRMNP00318";
  64. oParam.service = "opanstapp.OpAnstRec";
  65. oParam.method = "reqGetOrganList";
  66. oParam.inds = "req=ds_send";
  67. oParam.outds = "ds_main_OrganLists_organlist=organlist";
  68. oParam.async = false;
  69. //oParam.callback = "cf_TRMNP00318";
  70. tranf_submit(oParam);
  71. }
  72. /**
  73. * 저장 버튼 클릭 시 valid check
  74. *
  75. */
  76. function isValidForSave(){
  77. var iRow = group3.datagrid4.rowcount;
  78. for( var i=0 ; i<iRow ; i++ ){
  79. if( utlf_isNull(ds_main_OrganLists_organlist.getColumn(i, "otflag")) ){
  80. sysf_messageBox((i+1)+" 번째 이식구분 값을 다시" ,"C001");
  81. return false;
  82. }
  83. if( utlf_isNull(ds_main_OrganLists_organlist.getColumn(i, "otsendrecvflag")) ){
  84. sysf_messageBox((i+1)+"공/수여자 값을 다시" ,"C001");
  85. return false;
  86. }
  87. if( utlf_isNull(ds_main_OrganLists_organlist.getColumn(i, "otkind")) ){
  88. sysf_messageBox((i+1)+" 번째 장기종류 값을 다시" ,"C001");
  89. return false;
  90. }
  91. if( ds_main_OrganLists_organlist.getColumn(i, "chargspecimenflag") == "Y" ){ //보관검체가 Y 일 경우.
  92. if( utlf_isNull(ds_main_OrganLists_organlist.getColumn(i, "chargid")) && utlf_isNull(ds_main_OrganLists_organlist.getColumn(i, "chargnm")) ){
  93. sysf_messageBox((i+1)+" 번째 보관자 이름을 다시" ,"C001");
  94. return false;
  95. }
  96. }
  97. }
  98. return true;
  99. }
  100. /**
  101. * 저장 버튼 클릭 시 이벤트
  102. *
  103. */
  104. function onclickSaveBtn(){
  105. if( !isValidForSave() ){
  106. return;
  107. }
  108. grdf_setStatusColumn(ds_main_OrganLists_organlist, "status");
  109. ds_send_organlist.copyData(grdf_getGridUpdateData(group3.datagrid4, "all")); // 장기이식정보
  110. var oParam = {};
  111. oParam.id = "TXMNP00312";
  112. oParam.service = "opanstapp.OpAnstRec";
  113. oParam.method = "reqSetOrganList";
  114. oParam.inds = "organlist=ds_send_organlist";
  115. oParam.outds = "ds_main_OrganLists_organlist=organlist";
  116. oParam.async = false;
  117. //oParam.callback = "cf_TXMNP00312";
  118. tranf_submit(oParam);
  119. fSearchOrInfo();
  120. }
  121. /**
  122. * 초를 시/분/초로 계산하여 리턴.
  123. */
  124. function fCalcSecToTime(pSec, iRow, iCol){
  125. if( utlf_isNull(pSec) ){
  126. return;
  127. }
  128. var iSec = parseInt(pSec);
  129. var iReturnSec = iSec%60;
  130. //최대 입력시간은 1시간을 넘지 않는다고 함. 그래서 무한 루프 안 돌림. taebum
  131. var iReturnMin = parseInt(iSec/60);
  132. if(iReturnMin > 59){
  133. iReturnMin = parseInt(iReturnMin%60);
  134. }//7200 2580 20
  135. var iReturnTime = parseInt(iSec/(60*60));
  136. var sResultSec = "";
  137. var sResultMin = "";
  138. var sResultTime = "";
  139. if((iReturnSec+"").length == 1){
  140. sResultSec = "0"+iReturnSec;
  141. }else{
  142. sResultSec = ""+iReturnSec;
  143. }
  144. if((iReturnMin+"").length == 1){
  145. sResultMin = "0"+iReturnMin;
  146. }else{
  147. sResultMin = ""+iReturnMin;
  148. }
  149. if((iReturnTime+"").length == 1){
  150. sResultTime = "0"+iReturnTime;
  151. }else{
  152. sResultTime = ""+iReturnTime;
  153. }
  154. ds_main_OrganLists_organlist.setColumn(iRow, iCol, sResultTime+":"+sResultMin+":"+sResultSec);
  155. }
  156. ]]></Script>