SPMNP00310.xjs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  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. var sRecvFlag = opener.frmf_getParameter("SMMNP00300_searchFlag");
  25. var sRecvData = opener.frmf_getParameter("SMMNP00300_SearchCondition");
  26. opener.frmf_setParameter("SMMNP00300_searchFlag", "");
  27. opener.frmf_setParameter("SMMNP00300_SearchCondition", "");
  28. if( sRecvFlag != "true" ){
  29. sysf_messageBox("적출물기록은 수술기록 화면에서만 연동할 수 있으며 기록 가능합니다.", "");
  30. group3.enable = false;
  31. return;
  32. }
  33. //**공통코드 가져오기**//
  34. var arrParam = [{dsNm: "ds_init_M0194list_M0194", cdGrpId: "M0194"}] // 감염성 질환
  35. appf_getCodeList(arrParam);
  36. var sProp="col="+ds_init_M0194list_M0194.rowcount+",row=1,cellspacing=30,vcellspacing=2,itemWidth=-1,itemHeight=17,overflow='visible'";
  37. group3.checkbox1.setInitComp(sProp, ds_init_M0194list_M0194,"cdid","cdnm","fn_mCheckbox1");
  38. var sRecvArr = null;
  39. if( !utlf_isNull(sRecvData) ){
  40. sRecvArr = sRecvData.split("▨");
  41. var sDataArr = sRecvArr[1].split("▥");
  42. if( !utlf_isNull(sRecvArr[1]) ){
  43. sOpcnfmdd = sDataArr[0];
  44. ds_init.setColumn(0, "pinfo", sOpcnfmdd);
  45. ds_init.setColumn(0, "pinfo2", sDataArr[1]);
  46. ds_init.setColumn(0, "pinfo3", sDataArr[2]);
  47. //output2.refresh();
  48. }
  49. if( !utlf_isNull(sRecvArr[0]) ){
  50. var sRecvPinfoArr = sRecvArr[0].split("▥");
  51. sPid = sRecvPinfoArr[0];
  52. sOprsrvno = sRecvPinfoArr[1]; //수술예약번호
  53. sOphistno = sRecvPinfoArr[2]; //수술예약 일련번호
  54. sInstcd = sRecvPinfoArr[3];
  55. sOpfromdt = sRecvPinfoArr[4]; //수술시작일시
  56. sOproomcd = sRecvPinfoArr[5]; //수술방코드
  57. }
  58. if( !utlf_isNull(sRecvArr[2]) ){
  59. var sRecvDoctArr = sRecvArr[2].split("▥");
  60. sDoctnm = sRecvDoctArr[0]; //집도의
  61. sDoctid = sRecvDoctArr[1]; //집도의ID
  62. }
  63. }
  64. if( !utlf_isNull(sOprsrvno) ){
  65. //수술예약번호가 존재할 경우 정상 조회 처리
  66. fGetRoomInfo();
  67. fSearchMnphOpeo();
  68. ds_init_HideData.setColumn(0, "actid", ds_main_infectinfo.getColumn(0, "actnurid"));
  69. }
  70. }
  71. /**
  72. * @group :
  73. * @ver : 2016.07.18
  74. * @by : 윤주호
  75. * @---------------------------------------------------
  76. * @type : function
  77. * @access : public
  78. * @desc : MultiCheckBox 값 셋팅
  79. * @param :
  80. * @param :
  81. * @return :
  82. * @---------------------------------------------------
  83. */
  84. function fn_mCheckbox1(){
  85. var rtn = "";
  86. var tmp = "";
  87. rtn = group3.checkbox1.getData();
  88. for( var i=0 ; i<rtn.length ; i++ ){
  89. if( i == 0 ) tmp = rtn[i];
  90. else tmp = tmp + " " +rtn[i];
  91. }
  92. ds_main_infectinfo.setColumn(0, "infectflag", tmp);
  93. fValueChangedInfectChk();
  94. }
  95. /**
  96. * 화면 오픈시 수술방 정보와 취급 간호사, 집도의 부서 정보를 조회한다.
  97. *
  98. */
  99. function fGetRoomInfo(){
  100. ds_send.setColumn(0, "flag", "userid");
  101. ds_send.setColumn(0, "searchitem", "00009006");
  102. var oParam = {};
  103. oParam.id = "TRMNP00301";
  104. oParam.service = "opanstapp.OpAnstRec";
  105. oParam.method = "reqGetOpRoomInfo";
  106. oParam.inds = "req=ds_send";
  107. oParam.outds = "ds_init_HideData_OpRoomData_OpRoomInfo=OpRoomInfo";
  108. oParam.async = false;
  109. //oParam.callback = "cf_TRMNP00301";
  110. tranf_submit(oParam); // 수술실의 코드와 명칭을 가져온다.
  111. ds_send.setColumn(0, "doctid", sDoctid);
  112. ds_send.setColumn(0, "flag", "userid");
  113. ds_send.setColumn(0, "selectflag", "userid");
  114. ds_send.setColumn(0, "searchitem", "");
  115. ds_send.setColumn(0, "searchdd", sOpcnfmdd); //조회 기준일자
  116. ds_send.setColumn(0, "deptflag", "015"); //수술실 간호사코드 anstrecmgr - getUserList
  117. var oParam = {};
  118. oParam.id = "TRMNP00316";
  119. oParam.service = "opanstapp.OpAnstRec";
  120. oParam.method = "reqGetOPNurInfoDoctInfo";
  121. oParam.inds = "req=ds_send";
  122. oParam.outds = "ds_init_DisplayData_nurlist=nurlist ds_init_DisplayData_doctinfo=doctinfo";
  123. oParam.async = false;
  124. //oParam.callback = "cf_TRMNP00316";
  125. tranf_submit(oParam); //수술방 간호사 정보 및 집도의 리스트 정보 조회
  126. }
  127. /**
  128. * 조회 버튼 클릭시 이벤트
  129. *
  130. */
  131. function fSearchMnphOpeo(){
  132. if( utlf_isNull(sOprsrvno) ){
  133. sysf_messageBox("적출물기록은 수술기록 화면에서만 연동할 수 있으며 기록 가능합니다.", "");
  134. group3.enable = false;
  135. return;
  136. }
  137. ds_send.setColumn(0, "oprsrvno", sOprsrvno);
  138. ds_main_eolists_eolist.clearData();
  139. var oParam = {};
  140. oParam.id = "TRMNP00315";
  141. oParam.service = "opanstapp.OpAnstRec";
  142. oParam.method = "reqGetMnphOpeoInfo";
  143. oParam.inds = "req=ds_send";
  144. oParam.outds = "ds_main_eolists_eolist=eolist ds_main_eolists_aprvlist=aprvlist";
  145. oParam.async = false;
  146. //oParam.callback = "cf_TRMNP00315";
  147. tranf_submit(oParam);
  148. if( utlf_isNull(ds_main_eolists_eolist.getColumnInfo("displayactnurid")) ){
  149. ds_main_eolists_eolist.addColumn("displayactnurid", "string");
  150. }
  151. if( ds_main_eolists_eolist.rowcount < 1 ){
  152. ds_main_infectinfo.setColumn(0, "infectyn", "N");
  153. group3.checkbox1.setEnable(false);
  154. group3.input1.enable = false;
  155. }else{
  156. ds_main_eolists_eolist.enableevent = false;
  157. ds_main_eolists_eolist.updatecontrol = false;
  158. for( var i=0 ; i<ds_main_eolists_eolist.rowcount ; i++ ){
  159. ds_main_eolists_eolist.setColumn(i, "displayactnurid", ds_main_eolists_eolist.getColumn(i, "actnurid"));
  160. }
  161. ds_main_eolists_eolist.updatecontrol = true;
  162. ds_main_eolists_eolist.enableevent = true;
  163. if( utlf_isNull(ds_main_eolists_eolist.getColumn(0, "infectyn")) || ds_main_eolists_eolist.getColumn(0, "infectyn") == "Y" ){
  164. ds_main_infectinfo.setColumn(0, "infectyn", ds_main_eolists_eolist.getColumn(0, "infectyn"));
  165. ds_main_infectinfo.setColumn(0, "infectflag", ds_main_eolists_eolist.getColumn(0, "infectflag")); //감염구분
  166. var infectArray = utlf_transNullToEmpty(ds_main_eolists_eolist.getColumn(0, "infectflag")).split(" ");
  167. for( var i=0 ; i<infectArray.length ; i++ ){
  168. if( infectArray[i] == "6" ){
  169. group3.input1.enable = true;
  170. }
  171. }
  172. ds_main_infectinfo.setColumn(0, "infectetc", ds_main_eolists_eolist.getColumn(0, "infectetc")); //감염etc
  173. ds_main_infectinfo.setColumn(0, "actnurid", ds_main_eolists_eolist.getColumn(0, "actnurid")); //취급간호사
  174. //combo2.refresh();
  175. //alert(datagrid1.textmatrix(1, 16));
  176. }else{
  177. ds_main_infectinfo.setColumn(0, "infectyn", "N");
  178. group3.checkbox1.setEnable(false);
  179. group3.input1.enable = false;
  180. }
  181. ds_main_eolists_eolist.rowposition = -1;
  182. }
  183. //datagrid.rowstatus(0)
  184. }
  185. /**
  186. * 추가 버튼 클릭 시 이벤트
  187. *
  188. */
  189. function fOnClickGridAddBtn(){
  190. //var iRow = datagrid2.row;
  191. //var iCol = datagrid2.col;
  192. //alert(iCol);
  193. var i = ds_main_eolists_eolist.addRow();
  194. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdeptcd")) ){
  195. ds_main_eolists_eolist.setColumn(i, "opdeptcd", ds_init_DisplayData_doctinfo.getColumn(0, "deptcd")); //집도과ID
  196. }
  197. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdeptnm")) ){
  198. ds_main_eolists_eolist.setColumn(i, "opdeptnm", ds_init_DisplayData_doctinfo.getColumn(0, "deptnm")); //집도과명
  199. }
  200. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdoctid")) ){
  201. ds_main_eolists_eolist.setColumn(i, "opdoctid", sDoctid); //적출의ID - 집도의
  202. }
  203. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdoctnm")) ){
  204. ds_main_eolists_eolist.setColumn(i, "opdoctnm", sDoctnm); //적출의명
  205. }
  206. // 동의서 조회 주석 처리
  207. // if(getNodesetCount("/root/main/eolists/aprvlist/opaprvyn") > 0){
  208. // datagrid1.textmatrix(i, datagrid1.colRef("opaprvyn")) = model.getValue("/root/main/eolists/aprvlist/opaprvyn");//동의서확인
  209. // }
  210. }
  211. /**
  212. * 삭제 버튼 클릭 시 이벤트
  213. *
  214. */
  215. function fOnClickGridDeleteBtn(){
  216. var iRow = group3.datagrid1.currentrow;
  217. var iCol = group3.datagrid1.currentcol;
  218. if( group3.datagrid1.currentrow >= 0 ){
  219. if( !utlf_isNull(ds_main_eolists_eolist.getColumn(iRow, "eoseqno")) && !utlf_isNull(ds_main_eolists_eolist.getColumn(iRow, "remvdd")) ){
  220. sysf_messageBox("이미 수거한 내역은 삭제할 수 없습니다.", "");
  221. }else{
  222. ds_main_eolists_eolist.deleteRow(iRow);
  223. }
  224. }
  225. }
  226. /**
  227. * Grid Time button 클릭시
  228. *
  229. */
  230. function fOnClickGridTimeBtn(){
  231. var iRow = group3.datagrid1.currentrow;
  232. var iCol = group3.datagrid1.currentcol;
  233. if( iCol == group3.datagrid1.getBindCellIndex("body", "extcrtm") ){
  234. ds_main_eolists_eolist.setColumn(iRow, "extcrdd", utlf_getCurrentDate());
  235. ds_main_eolists_eolist.setColumn(iRow, "extcrtm", utlf_getCurrentTime().substr(0, 4));
  236. }
  237. }
  238. /**
  239. * 저장시 valid check 및 default info copy
  240. *
  241. */
  242. function validForSave(){
  243. var itotalRow = group3.datagrid1.rowcount;
  244. var iCol = group3.datagrid1.currentcol;
  245. if( utlf_isNull(sOprsrvno) ){
  246. return false;
  247. }
  248. var iTempStat = "";
  249. var sUpdateCnt = 0; //감염정보를 전체 update하기 위한 상태값 변경.
  250. if( group3.input1.enable == true && utlf_isNull(group3.input1.value) ){
  251. sysf_messageBox("감염 정보 기타 상세내역을 입력하십시요.", "");
  252. return false;
  253. }
  254. for( var i=0 ; i<itotalRow ; i++ ){
  255. iTempStat = ds_main_eolists_eolist.getRowType(i);
  256. /*
  257. 0 : 데이터는 있지만 변경되지 않은 사항
  258. 1 : new
  259. 2 : update
  260. */
  261. if(iTempStat == 1){
  262. if(sUpdateCnt == 0){
  263. ds_main_eolists_eolist.enableevent = false;
  264. ds_main_eolists_eolist.updatecontrol = false;
  265. ds_main_eolists_eolist.setRowType(i, 4);
  266. ds_main_eolists_eolist.updatecontrol = true;
  267. ds_main_eolists_eolist.enableevent = true;
  268. }
  269. sUpdateCnt++;
  270. }else if(iTempStat == 1){
  271. sUpdateCnt++;
  272. }else if(iTempStat == 1){
  273. sUpdateCnt++;
  274. }
  275. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "oprsrvno")) ){
  276. ds_main_eolists_eolist.setColumn(i, "oprsrvno", sOprsrvno);
  277. }
  278. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "oproomcd")) ){
  279. ds_main_eolists_eolist.setColumn(i, "oproomcd", sOproomcd);
  280. }
  281. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "extcrdd")) ){ //적출일자
  282. sysf_messageBox((i+1)+" 번째 행의 적출일자 정보를 입력하시기 바랍니다.", "");
  283. return false;
  284. }
  285. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "extcrtm")) ){ //적출일자
  286. sysf_messageBox((i+1)+" 번째 행의 적출시간 정보를 입력하시기 바랍니다.", "");
  287. return false;
  288. }
  289. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdeptcd")) ){
  290. ds_main_eolists_eolist.setColumn(i, "opdeptcd", ds_init_DisplayData_doctinfo.getColumn(0, "deptcd")); //집도과ID
  291. }
  292. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdeptnm")) ){
  293. ds_main_eolists_eolist.setColumn(i, "opdeptnm", ds_init_DisplayData_doctinfo.getColumn(0, "deptnm")); //집도과명
  294. }
  295. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdoctid")) ){
  296. ds_main_eolists_eolist.setColumn(i, "opdoctid", sDoctid); //적출의ID - 집도의
  297. }
  298. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "opdoctnm")) ){
  299. ds_main_eolists_eolist.setColumn(i, "opdoctnm", sDoctnm); //적출의명
  300. }
  301. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "extcrpart")) ){ //적출부위
  302. sysf_messageBox((i+1)+" 번째 행의 적출부위 정보를 입력하시기 바랍니다.", "");
  303. return false;
  304. }
  305. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "extcrcnt")) ){ //수량
  306. sysf_messageBox((i+1)+" 번째 행의 적출 수량 정보를 입력하시기 바랍니다.", "");
  307. return false;
  308. }
  309. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "extcrweig")) ){ //중량
  310. sysf_messageBox((i+1)+" 번째 행의 적출 중량 정보를 입력하시기 바랍니다.", "");
  311. return false;
  312. }
  313. //감염여부
  314. ds_main_eolists_eolist.setColumn(i, "infectyn", ds_main_infectinfo.getColumn(0, "infectyn"));
  315. //감염구분
  316. ds_main_eolists_eolist.setColumn(i, "infectflag", ds_main_infectinfo.getColumn(0, "infectflag"));
  317. //감염etc
  318. ds_main_eolists_eolist.setColumn(i, "infectetc", ds_main_infectinfo.getColumn(0, "infectetc"));
  319. if( utlf_isNull(ds_main_eolists_eolist.getColumn(i, "displayactnurid")) ){ //취급간호사
  320. sysf_messageBox((i+1)+" 번째 행의 취급간호사 정보를 입력하시기 바랍니다.", "");
  321. return false;
  322. }
  323. }
  324. return true;
  325. }
  326. /**
  327. * 저장 버튼 클릭 시 이벤트
  328. *
  329. */
  330. function onclickSaveBtn(){
  331. if( !validForSave() ) return;
  332. grdf_setStatusColumn(ds_main_eolists_eolist, "status");
  333. ds_send_eolists.assign(ds_main_eolists_eolist);
  334. var oParam = {};
  335. oParam.id = "TXMNP00310";
  336. oParam.service = "opanstapp.OpAnstRec";
  337. oParam.method = "reqExeMnphOpeoInfo";
  338. oParam.inds = "eolists=ds_send_eolists:A";
  339. oParam.outds = "ds_main_eolists_eolist=eolist ds_main_eolists_aprvlist=aprvlist";
  340. oParam.async = false;
  341. //oParam.callback = "cf_TXMNP00310";
  342. tranf_submit(oParam);
  343. if( utlf_isNull(ds_main_eolists_eolist.getColumnInfo("displayactnurid")) ){
  344. ds_main_eolists_eolist.addColumn("displayactnurid", "string");
  345. }
  346. ds_main_eolists_eolist.enableevent = false;
  347. ds_main_eolists_eolist.updatecontrol = false;
  348. for( var i=0 ; i<ds_main_eolists_eolist.rowcount ; i++ ){
  349. ds_main_eolists_eolist.setColumn(i, "displayactnurid", ds_main_eolists_eolist.getColumn(i, "actnurid"));
  350. }
  351. ds_main_eolists_eolist.updatecontrol = true;
  352. ds_main_eolists_eolist.enableevent = true;
  353. ds_main_eolists_eolist.rowposition = -1;
  354. }
  355. /**
  356. * 감염유무
  357. */
  358. function fValueChangedInfectCombo(){
  359. var sinfectyn = ds_main_infectinfo.getColumn(0, "infectyn");
  360. if( sinfectyn == "Y" ){
  361. group3.checkbox1.setEnable(true);
  362. //input1.disabled = false;
  363. }else if( sinfectyn == "N" ){
  364. ds_main_infectinfo.setColumn(0, "infectflag", "");
  365. ds_main_infectinfo.setColumn(0, "infectetc", "");
  366. group3.checkbox1.setEnable(false);
  367. group3.input1.enable = false;
  368. }
  369. }
  370. //grid Value Changed event
  371. function fGridValueChanged(){
  372. var iRow = group3.datagrid1.currentrow;
  373. var iCol = group3.datagrid1.currentcol;
  374. if( iCol == group3.datagrid1.getBindCellIndex("body", "actnurid") ){
  375. //model.setValue("/root/main/eolists/eolist["+iRow+"]/displayactnurid", datagrid1.valueMartrix(iRow, datagrid1.colRef("search")));
  376. ds_main_eolists_eolist.setColumn(iRow, "displayactnurid", ds_main_eolists_eolist.getColumn(iRow, "actnurid"));
  377. }
  378. }
  379. /**
  380. * 감염 정보 값 변경 시 이벤트
  381. *
  382. */
  383. function fValueChangedInfectChk(){
  384. var infectArray = utlf_transNullToEmpty(ds_main_infectinfo.getColumn(0, "infectflag")).split(" ");
  385. var chkinfectyn = true;
  386. for( var i=0 ; i<infectArray.length ; i++ ){
  387. if( infectArray[i] == "6" ){
  388. chkinfectyn = false;
  389. }
  390. }
  391. if( chkinfectyn == true ){
  392. group3.input1.value = "";
  393. }
  394. group3.input1.enable = !chkinfectyn;
  395. }
  396. ]]></Script>