SMMND01400.js 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. /*
  2. 복막투석도관기록(SMMND01400.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. //**전역변수**//
  7. var coduitrecinfoRow = "";
  8. var pdmatnpatRow = "";
  9. var XmlInstNm = "peritcoduitspeclist" + " " // 복막투석 도관관리 정보
  10. + "t_setspeclist" + " " // T-set관리
  11. + "infcspeclist" ; // 감염관리
  12. /**
  13. * @group :
  14. * @ver : 2007.06.13
  15. * @by : 김진아
  16. * @---------------------------------------------------
  17. * @type : function
  18. * @access : public
  19. * @desc : 화면 초기화
  20. * @param :
  21. * @return :
  22. * @---------------------------------------------------
  23. */
  24. function fDone(){
  25. //**그리드 초기화**//
  26. model.removeNodeset("/root/main/pdmatnpatlist/pdmatnpatinfo"); // 복막투석 유지환자 리스트
  27. model.removeNodeset("/root/main/coduitreclist/coduitrecinfo"); // 환자별 도관기록 리스트
  28. model.removeNodeset("/root/main/reclist/recinfo/peritcoduitlist"); // 복막투석 도관관리
  29. model.removeNodeset("/root/main/reclist/recinfo/t_setlist"); // T-set 관리
  30. model.removeNodeset("/root/main/reclist/recinfo/infclist"); // 감염관리
  31. model.refresh();
  32. //**공통코드 가져오기**//
  33. zbcfGetCodeList( new Array ( "M0142" // Cath종류
  34. , "M0133" // 부위
  35. , "M0144" // 복막투석도관 제거이유
  36. , "M0145" // 감염종류
  37. , "M0146" // 원인균
  38. , "M0147" // 예후
  39. )
  40. , new Array ( "/root/init/M0142list" // Cath종류
  41. , "/root/init/M0133list" // 부위
  42. , "/root/init/M0144list" // 복막투석도관 제거이유
  43. , "/root/init/M0145list" // 감염종류
  44. , "/root/init/M0146list" // 원인균
  45. , "/root/init/M0147list" // 예후
  46. )
  47. );
  48. //** 상단환자 화면설정 **//
  49. var node = getGlobalVariable("paminfo");
  50. setCSVToNode("/root/temp/paminfo", node);
  51. if(getNodesetCount("/root/temp/paminfo/list") > 0) {
  52. var sSelPid = model.getValue("/root/temp/paminfo/list/pid"); // 등록번호
  53. var sMaintePatRgstDD = model.getValue("/root/temp/paminfo/list/maintepatrgstdd"); // 유지환자등록일자
  54. pdmatnpatRow = 1;
  55. model.setValue("/root/main/condition/pid", sSelPid);
  56. fSrchPDMatnPatList(); // 복막투석 유지환자 리스트 조회
  57. fSetPDPipeInfo(1); // 복막투석 유지환자리스트에서 환자 선택 시 도관기록 리스트 및 누적조회, 환자정보를 설정
  58. }else{
  59. fSrchPDMatnPatList(); // 복막투석 유지환자 리스트 조회
  60. }
  61. }
  62. /**
  63. * @group :
  64. * @ver : 2007.06.13
  65. * @by : 김진아
  66. * @---------------------------------------------------
  67. * @type : function
  68. * @access : public
  69. * @desc : 복막투석 유지환자 리스트 조회
  70. * @param :
  71. * @return :
  72. * @---------------------------------------------------
  73. */
  74. function fSrchPDMatnPatList(){
  75. model.removenode("/root/send");
  76. model.makeNode ("/root/send");
  77. model.makeValue ("/root/send/reqdata/pid", model.getValue("/root/main/condition/pid"));
  78. model.makeValue ("/root/send/reqdata/dialflag", "P"); // 투석구분 (P:복막)
  79. model.removeNodeset("/root/main/pdmatnpatlist");
  80. submit("TRMND01401");
  81. //if(model.getValue("/root/main/condition/pid") != "") {
  82. // grd_pdmatnpatinfo.cellstyle("background-color", 1, 1, 1, 3) = "#ffd9ff"; // 복막투석 유지환자리스트 셀 색상 지정
  83. // for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  84. // grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  85. // }
  86. // // fGetPatInfo(model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[1]/pid"), model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[1]/maintepatrgstdd")); // 복막투석 유지환자 정보 설정
  87. // // fSrchCoduitrecList(); // 환자별 도관기록 리스트 조회
  88. //}
  89. //model.refresh();
  90. }
  91. /**
  92. * @group :
  93. * @ver : 2007.06.13
  94. * @by : 김진아
  95. * @---------------------------------------------------
  96. * @type : function
  97. * @access : public
  98. * @desc : 복막투석 유지환자 정보 설정
  99. * (복막투석 유지환자 리스트 더블 클릭 시)
  100. * @param :
  101. * @return :
  102. * @---------------------------------------------------
  103. */
  104. function fGetPatInfo(sSelPid, sMaintePatRgstDD){
  105. // 초기화
  106. model.removeNodeset("/root/main/reclist/recinfo/recinfolists"); // 복막투석도관기록
  107. model.removeNodeset("/root/main/reclist/recinfo/peritcoduitlist"); // 복막투석 도관관리
  108. model.removeNodeset("/root/main/reclist/recinfo/t_setlist"); // T-set 관리
  109. model.removeNodeset("/root/main/reclist/recinfo/infclist"); // 감염관리
  110. // fClearChildNode("/root/main/reclist/recinfo");
  111. // fClearChildNode("/root/main/chklist/chkinfo");
  112. //기록자 정보 설정
  113. model.makeValue("/root/main/reclist/recinfo/recinfolists/recid", getUserId()); // 현재 로그인한 사용자 ID
  114. model.makeValue("/root/main/reclist/recinfo/recinfolists/recnm", getUserName()); // 현재 로그인한 사용자명
  115. // 기록일시 설정
  116. model.makeValue("/root/main/reclist/recinfo/recinfolists/recdd", getCurrentDate()); // 기록일자
  117. model.makeValue("/root/main/reclist/recinfo/recinfolists/rectm", getCurrentTime().substr(0,4)); // 기록시간
  118. // 환자 정보 설정
  119. // model.makeValue("/root/main/reclist/recinfo/recinfolists/pid", sSelPid);
  120. // model.makeValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd", sMaintePatRgstDD);
  121. model.makeValue("/root/main/reclist/recinfo/recinfolists/pid",sSelPid);
  122. model.makeValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd",sMaintePatRgstDD);
  123. model.makeValue("/root/main/reclist/recinfo/recinfolists/orddd",sOrddd);
  124. model.makeValue("/root/main/reclist/recinfo/recinfolists/cretno",sCretno);
  125. model.makeValue("/root/main/reclist/recinfo/recinfolists/histstat",sHiststat);
  126. model.makeValue("/root/main/reclist/recinfo/recinfolists/orddeptcd",sOrddeptcd);
  127. model.makeValue("/root/main/reclist/recinfo/recinfolists/orddrid",sOrddrid);
  128. model.refresh();
  129. }
  130. /**
  131. * @group :
  132. * @ver : 2007.06.13
  133. * @by : 김진아
  134. * @---------------------------------------------------
  135. * @type : function
  136. * @access : public
  137. * @desc : 환자별 도관기록 리스트 조회
  138. * (복막투석 유지환자 리스트 더블 클릭 시)
  139. * @param :
  140. * @return :
  141. * @---------------------------------------------------
  142. */
  143. function fSrchCoduitrecList(iRow){
  144. // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  145. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  146. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 4) = "white";
  147. }
  148. if(iRow==""){
  149. iRow=1;
  150. }
  151. model.removenode("/root/send");
  152. model.makeNode ("/root/send");
  153. model.makeValue ("/root/send/reqdata/pid", model.getValue("/root/main/reclist/recinfo/recinfolists/pid"));
  154. model.makeValue ("/root/send/reqdata/dialflag", "P"); // 투석구분 ( "P":복막투석 )
  155. model.removeNodeset("/root/main/coduitreclist");
  156. submit("TRMND01402");
  157. // 인증저장 정보 설정
  158. model.makeValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+iRow+"]/orddd" , model.getValue("/root/main/signinfo/orddd" ));
  159. model.makeValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+iRow+"]/cretno" , model.getValue("/root/main/signinfo/cretno" ));
  160. model.makeValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+iRow+"]/histstat" , model.getValue("/root/main/signinfo/histstat" ));
  161. model.makeValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+iRow+"]/orddeptcd", model.getValue("/root/main/signinfo/orddeptcd"));
  162. model.makeValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+iRow+"]/orddrid" , model.getValue("/root/main/signinfo/orddrid" ));
  163. grd_pdmatnpatinfo.refresh();
  164. }
  165. /**
  166. * @group :
  167. * @ver : 2007.06.13
  168. * @by : 김진아
  169. * @---------------------------------------------------
  170. * @type : function
  171. * @access : public
  172. * @desc : 복막투석도관정보 저장
  173. * @param : pFlag (T:임시저장, C:인증저장)
  174. * @return :
  175. * @---------------------------------------------------
  176. */
  177. function fSavePDPipeInfo(pFlag){
  178. var sRecDD = model.getValue("/root/main/reclist/recinfo/recinfolists/recdd"); // recdd
  179. var sRecTM = model.getValue("/root/main/reclist/recinfo/recinfolists/rectm"); // rectm
  180. /*
  181. for(var i=1; i<grd_peritcoduit.rows; i++) {
  182. model.setValue("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo[" + i + "]/recdd", sRecDD);
  183. model.setValue("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo[" + i + "]/rectm", sRecTM);
  184. }
  185. for(var i=1; i<grd_t_set.rows; i++) {
  186. model.setValue("/root/main/reclist/recinfo/t_setlist/t_setinfo[" + i + "]/recdd", sRecDD);
  187. model.setValue("/root/main/reclist/recinfo/t_setlist/t_setinfo[" + i + "]/rectm", sRecTM);
  188. }
  189. for(var i=1; i<grd_infc.rows; i++) {
  190. model.setValue("/root/main/reclist/recinfo/infclist/infcinfo[" + i + "]/recdd", sRecDD);
  191. model.setValue("/root/main/reclist/recinfo/infclist/infcinfo[" + i + "]/rectm", sRecTM);
  192. }
  193. */
  194. //** 저장 데이터 없을 경우 **//
  195. if( getNodesetCount("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo") == 0
  196. && getNodesetCount("/root/main/reclist/recinfo/t_setlist/t_setinfo") == 0
  197. && getNodesetCount("/root/main/reclist/recinfo/infclist/infcinfo") == 0) {
  198. messageBox("저장할 데이터가 ", "I004", "");
  199. return;
  200. }
  201. /*
  202. // 기록일시
  203. if(model.getValue("/root/main/reclist/recinfo/recinfolists/recdd")=="") {
  204. messageBox("기록일자는", "I003", "");
  205. model.setFocus("ipt_recdd");
  206. return;
  207. }
  208. if(model.getValue("/root/main/reclist/recinfo/recinfolists/rectm")=="") {
  209. messageBox("기록시간는", "I003", "");
  210. model.setFocus("ipt_rectm");
  211. return;
  212. }
  213. */
  214. // 복막투석 도관관리
  215. for(var i=1; i<=getNodesetCount("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo"); i++) {
  216. var sStatus = model.getValue("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo["+i+"]/statusflag" ); // 상태
  217. var sPart = model.getValue("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo["+i+"]/partflag" ); // 부위
  218. if(sStatus == "" || sPart == ""){
  219. messageBox("복막투석 도관관리의 상태, 부위는", "I003", "");
  220. return;
  221. }
  222. }
  223. // T-set 관리
  224. for(var i=1; i<=getNodesetCount("/root/main/reclist/recinfo/t_setlist/t_setinfo"); i++) {
  225. var sExchdd = model.getValue("/root/main/reclist/recinfo/t_setlist/t_setinfo["+i+"]/exchdd" ); // 교환일
  226. if(sExchdd == ""){
  227. messageBox("T-set 관리의 교환일은", "I003", "");
  228. return;
  229. }
  230. }
  231. // 감염관리
  232. for(var i=1; i<=getNodesetCount("/root/main/reclist/recinfo/infclist/infcinfo"); i++) {
  233. var sInfckind = model.getValue("/root/main/reclist/recinfo/infclist/infcinfo["+i+"]/infckindflag"); // 감염종류
  234. if(sInfckind == ""){
  235. messageBox("감염관리의 감염종류는", "I003", "");
  236. return;
  237. }
  238. }
  239. /*
  240. if(model.getValue("/root/main/chklist/chkinfo/cretfalg") == "Y") {
  241. model.removenode("/root/send");
  242. model.makeNode ("/root/send");
  243. model.makeValue ("/root/send/reqdata/pid" , model.getValue("/root/main/reclist/recinfo/recinfolists/pid") );
  244. model.makeValue ("/root/send/reqdata/recdd", model.getValue("/root/main/reclist/recinfo/recinfolists/recdd"));
  245. model.makeValue ("/root/send/reqdata/rectm", model.getValue("/root/main/reclist/recinfo/recinfolists/rectm"));
  246. model.removeNodeset("/root/main/chklist");
  247. submit("TRMND01404");
  248. // 동일기록일자에 도관기록 존재 할 경우
  249. if(model.getValue("/root/main/chklist/chkinfo/pid") != "") {
  250. messageBox("동일일자에 도관기록이 존재합니다.", "E");
  251. // 기록일시 설정
  252. model.makeValue("/root/main/reclist/recinfo/recinfolists/recdd", getCurrentDate()); // 기록일자
  253. model.makeValue("/root/main/reclist/recinfo/recinfolists/rectm", getCurrentTime().substr(0,4)); // 기록시간
  254. model.refresh();
  255. return;
  256. }
  257. }
  258. */
  259. //** 저장실행 **//
  260. model.removenode("/root/send");
  261. model.makeNode ("/root/send");
  262. model.makeValue ("/root/send/savedata/baseinfo/pid" , model.getValue("/root/main/reclist/recinfo/recinfolists/pid"));
  263. model.makeValue ("/root/send/savedata/baseinfo/recdd" , getCurrentDate());
  264. model.makeValue ("/root/send/savedata/baseinfo/rectm" , getCurrentTime().substr(0,4));
  265. model.makeValue ("/root/send/savedata/baseinfo/maintepatrgstdd", model.getValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd"));
  266. model.makeValue ("/root/send/savedata/baseinfo/recid" , getUserId());
  267. model.makeValue ("/root/send/savedata/baseinfo/recnm" , getUserName());
  268. model.makeValue ("/root/send/savedata/baseinfo/dialflag" , "P");
  269. model.makeValue("/root/send/savedata/baseinfo/certflag" , pFlag); // 인증여부( T : 임시저장, C : 인증저장)
  270. model.makeValue ("/root/send/savedata/peritcoduitinfo" , grd_peritcoduit.getupdatedataAll("i"));
  271. model.makeValue ("/root/send/savedata/t_setinfo" , grd_t_set.getupdatedataAll("i"));
  272. model.makeValue ("/root/send/savedata/infcinfo" , grd_infc.getupdatedataAll("i"));
  273. // 인증저장일 경우
  274. if(pFlag == "C"){
  275. // 인증 로직 호출
  276. if(Sign.signprocess() == true){
  277. model.removeNodeset("/root/send/savedata/signinfo");
  278. model.makeValue("/root/send/savedata/signdata/pid" , model.getValue("/root/main/reclist/recinfo/recinfolists/pid") ); // 등록번호
  279. model.makeValue("/root/send/savedata/signdata/orddd" , model.getValue("/root/main/reclist/recinfo/recinfolists/orddd") ); // 진료일자
  280. model.makeValue("/root/send/savedata/signdata/signno" , model.getValue("/root/main/reclist/recinfo/recinfolists/signno") ); // 서명번호
  281. model.makeValue("/root/send/savedata/signdata/cretno" , model.getValue("/root/main/reclist/recinfo/recinfolists/cretno") ); // 생성번호
  282. model.makeValue("/root/send/savedata/signdata/recdd" , getCurrentDate() ); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  283. model.makeValue("/root/send/savedata/signdata/rectm" , getCurrentTime().substr(0,4) ); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  284. model.makeValue("/root/send/savedata/signdata/recsaveflag" , "Y" ); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우: Y, 그외: N)
  285. model.makeValue("/root/send/savedata/signdata/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호)
  286. model.makeValue("/root/send/savedata/signdata/signgenrflag", model.getValue("/root/main/reclist/recinfo/recinfolists/histstat")); // 서명발생구분 (코드정의서 M0010 참조)
  287. model.makeValue("/root/send/savedata/signdata/formcd" , "0000002498"); // 각 기록지별 서식코드
  288. model.makeValue("/root/send/savedata/signdata/orddeptcd" , model.getValue("/root/main/reclist/recinfo/recinfolists/orddeptcd")); // 진료부서코드
  289. model.makeValue("/root/send/savedata/signdata/orddrid" , model.getValue("/root/main/reclist/recinfo/recinfolists/orddrid") ); // 진료의사ID
  290. model.makeValue("/root/send/savedata/signdata/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  291. model.makeValue("/root/send/savedata/signdata/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  292. }else{
  293. return false;
  294. }
  295. }
  296. submit("TXMND01401");
  297. fSrchCoduitrecList(pdmatnpatRow); // 환자별 도관기록 리스트 조회
  298. //fSrchPDPipeInfo("X"); // 복막투석 도관기록 조회
  299. fSrchPDPipeInfo();
  300. }
  301. /**
  302. * @group :
  303. * @ver : 2008.05.16
  304. * @by : 김진아
  305. * @---------------------------------------------------
  306. * @type : function
  307. * @access : public
  308. * @desc : 복막투석 유지환자리스트에서 환자 선택 시
  309. 도관기록 리스트 및 누적조회, 환자정보를 설정.
  310. * @param :
  311. * @return :
  312. * @---------------------------------------------------
  313. */
  314. function fSetPDPipeInfo(iRow){
  315. // pdmatnpatRow = grd_pdmatnpatinfo.row;
  316. var sSelPid = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/pid"); // 선택환자 등록번호
  317. var sMaintePatRgstDD = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/maintepatrgstdd"); // 선택환자 유지환자등록일자
  318. model.makeValue("/root/main/reclist/recinfo/recinfolists/pid",sSelPid);
  319. model.makeValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd",sMaintePatRgstDD);
  320. // btn_srchccmlinfo.disabled = false; // 누적조회버튼 활성화
  321. // 유지환자 리스트 셀 색상 초기화 (white)
  322. for(var i=1; i<=grd_pdmatnpatinfo.rows; i++) {
  323. grd_pdmatnpatinfo.cellstyle("background-color", i, 1, i, 4) = "white";
  324. }
  325. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  326. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  327. }
  328. // 선택 행 셀 색상 지정
  329. grd_pdmatnpatinfo.cellstyle("background-color", iRow, 1, iRow, 4) = "#ffd9ff";
  330. // fGetPatInfo(sSelPid, sMaintePatRgstDD); // 복막투석 유지환자 정보 설정
  331. fSrchCoduitrecList(iRow); // 환자별 도관기록 리스트 조회
  332. // fSrchPDPipeInfo("X"); // 복막투석 도관기록 조회
  333. var sOrddd = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/orddd");
  334. var sCretno = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/cretno");
  335. var sHiststat = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/histstat");
  336. var sOrddeptcd = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/orddeptcd");
  337. var sOrddrid = model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo[" +iRow+ "]/orddrid");
  338. model.makeValue("/root/main/reclist/recinfo/recinfolists/orddd",sOrddd);
  339. model.makeValue("/root/main/reclist/recinfo/recinfolists/cretno",sCretno);
  340. model.makeValue("/root/main/reclist/recinfo/recinfolists/histstat",sHiststat);
  341. model.makeValue("/root/main/reclist/recinfo/recinfolists/orddeptcd",sOrddeptcd);
  342. model.makeValue("/root/main/reclist/recinfo/recinfolists/orddrid",sOrddrid);
  343. fSrchPDPipeInfo();
  344. /*
  345. // 환자별 도관기록 등록번호, 유지환자 등록일자 설정
  346. if(getNodesetCount("/root/main/coduitreclist/coduitrecinfo")>0) {
  347. model.makeValue("/root/main/coduitreclist/coduitrecinfo[1]/pid", sSelPid);
  348. model.makeValue("/root/main/coduitreclist/coduitrecinfo[1]/maintepatrgstdd", sMaintePatRgstDD);
  349. }
  350. model.makeValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd", sMaintePatRgstDD); // 유지환자등록일자설정
  351. */
  352. model.refresh();
  353. }
  354. /* ------------------------------------------------- */
  355. /* desc : 인증데이터 만들기 */
  356. /* param : pModel - Model */
  357. /* tNode - Target Node */
  358. /* sNode - Source Node */
  359. /* return : */
  360. /* -------------------------------------------------- */
  361. function fMake_SignData(){
  362. Sign.addnode("/root/main/reclist/recinfo"); //기록 관련 인스턴스 전체를 copy
  363. // 인스턴스 copy 후에 콤보나 체크박스 같은 경우 코드값은 명칭으로 변경
  364. var xRecinfoPath = Sign.XPATH_SIGNINFO+"/recinfo";
  365. //** 복막투석 도관관리 **//
  366. var xPeritCoduitPath = xRecinfoPath + "/peritcoduitlist/peritcoduitinfo";
  367. for(var i=1;i<grd_peritcoduit.rows;i++){
  368. // 상태
  369. var sStatusFlag = model.getValue(xPeritCoduitPath +"["+i+"]/statusflag");
  370. switch(sStatusFlag){
  371. case '1':
  372. model.makeValue(xPeritCoduitPath+"["+i+"]/statusflag", "삽입"); break;
  373. case '2':
  374. model.makeValue(xPeritCoduitPath+"["+i+"]/statusflag", "제거"); break;
  375. }
  376. // Cath.종류
  377. var sCathKindFlag = model.getValue(xPeritCoduitPath +"["+i+"]/cathkindflag");
  378. if(sCathKindFlag != ""){
  379. model.makeValue(xPeritCoduitPath+"["+i+"]/cathkindflag", model.getValue("/root/init/M0142list/M0142[cdid='"+sCathKindFlag+"']/cdnm"));
  380. }
  381. // 부위
  382. var sPartFlag = model.getValue(xPeritCoduitPath +"["+i+"]/partflag");
  383. if(sPartFlag != ""){
  384. model.makeValue(xPeritCoduitPath+"["+i+"]/partflag", model.getValue("/root/init/M0133list/M0133[cdid='"+sPartFlag+"']/cdnm"));
  385. }
  386. // 제거사유
  387. var sElmnResnFlag = model.getValue(xPeritCoduitPath +"["+i+"]/elmnresnflag");
  388. if(sElmnResnFlag != ""){
  389. model.makeValue(xPeritCoduitPath+"["+i+"]/elmnresnflag", model.getValue("/root/init/M0144list/M0144[cdid='"+sElmnResnFlag+"']/cdnm"));
  390. }
  391. }
  392. //** 감염관리 **//
  393. var xInfcInfoPath = xRecinfoPath + "/infclist/infcinfo";
  394. for(var i=1;i<grd_infc.rows;i++){
  395. // 감염종류
  396. var sInfcKindFlag = model.getValue(xInfcInfoPath +"["+i+"]/infckindflag");
  397. if(sInfcKindFlag != ""){
  398. model.makeValue(xInfcInfoPath+"["+i+"]/infckindflag", model.getValue("/root/init/M0145list/M0145[cdid='"+sInfcKindFlag+"']/cdnm"));
  399. }
  400. // 원인균
  401. var sCasBacFlag = model.getValue(xInfcInfoPath +"["+i+"]/casbacflag");
  402. if(sCasBacFlag != ""){
  403. model.makeValue(xInfcInfoPath+"["+i+"]/casbacflag", model.getValue("/root/init/M0146list/M0146[cdid='"+sCasBacFlag+"']/cdnm"));
  404. }
  405. // 예후
  406. var sAfterFlag = model.getValue(xInfcInfoPath +"["+i+"]/afterflag");
  407. if(sAfterFlag != ""){
  408. model.makeValue(xInfcInfoPath+"["+i+"]/afterflag", model.getValue("/root/init/M0147list/M0147[cdid='"+sAfterFlag+"']/cdnm"));
  409. }
  410. }
  411. }
  412. /**
  413. * @group :
  414. * @ver : 2007.06.14
  415. * @by : 김진아
  416. * @---------------------------------------------------
  417. * @type : function
  418. * @access : public
  419. * @desc : 복막투석 도관기록 조회
  420. * (환자별 도관기록 리스트 더블 클릭 시)
  421. * @param
  422. * @return
  423. * @---------------------------------------------------
  424. */
  425. function fSrchPDPipeInfo(srchFlag){
  426. // 신규등록 Flag
  427. model.makeValue("/root/main/chklist/chkinfo/cretfalg", "N");
  428. grp_pdpipeinfo.disabled = false; // 복막투석 도관관리 그룹 활성화
  429. if(srchFlag == "X"){
  430. coduitrecinfoRow = -1;
  431. // grp_pdpipeinfo.disabled = true; // 복막투석도관관리 그룹 비활성화
  432. // 버튼 비활성화
  433. btn_tempsavepdpipeinfo.disabled = true;
  434. btn_certsavepdpipeinfo.disabled = true;
  435. btn_addpdpipeinfo.disabled = true;
  436. btn_delpdpipeinfo.disabled = true;
  437. btn_addtset.disabled = true;
  438. btn_deltset.disabled = true;
  439. btn_addinfc.disabled = true;
  440. btn_delinfc.disabled = true;
  441. } else {
  442. coduitrecinfoRow = grd_coduitrecinfo.row; // 전역변수
  443. }
  444. /*
  445. // 인증저장 된 기록인지 체크
  446. if(model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/signno")!= ""){
  447. btn_tempsavepdpipeinfo.disabled = true;
  448. }
  449. var sRecDD = model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/recdd"); // 기록일자
  450. var sRecTM = model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/rectm"); // 기록시간
  451. var sRecNM = model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/recnm"); // 기록자명
  452. */
  453. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  454. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white";
  455. }
  456. // i u d 아이콘 초기화
  457. for(i=1 ; i < grd_peritcoduit.rows ; i++){
  458. grd_peritcoduit.cellStyle("background-image", + i , 8) = "../../../com/commonweb/images/icon_n.gif";
  459. }
  460. for(i=1 ; i < grd_t_set.rows ; i++){
  461. grd_t_set.cellStyle("background-image", + i , 3) = "../../../com/commonweb/images/icon_n.gif";
  462. }
  463. for(i=1 ; i < grd_infc.rows ; i++){
  464. grd_infc.cellStyle("background-image", + i , 7) = "../../../com/commonweb/images/icon_n.gif";
  465. }
  466. // 선택 행 셀 색상 지정
  467. grd_coduitrecinfo.cellstyle("background-color", coduitrecinfoRow, 1, coduitrecinfoRow, 3) = "#ffd9ff";
  468. model.removenode("/root/send");
  469. model.makeNode("/root/send");
  470. // model.makeValue("/root/send/reqdata/pid", model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+grd_pdmatnpatinfo.row+"]/pid"));
  471. // model.makeValue("/root/send/reqdata/maintepatrgstdd", model.getValue("/root/main/pdmatnpatlist/pdmatnpatinfo["+grd_pdmatnpatinfo.row+"]/maintepatrgstdd"));
  472. model.makeValue("/root/send/reqdata/pid" , model.getValue("/root/main/reclist/recinfo/recinfolists/pid"));
  473. model.makeValue("/root/send/reqdata/maintepatrgstdd", model.getValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd"));
  474. model.removeNodeset("/root/main/reclist/recinfo/peritcoduitlist"); // 복막투석 도관관리 정보
  475. model.removeNodeset("/root/main/reclist/recinfo/t_setlist"); // T-set관리
  476. model.removeNodeset("/root/main/reclist/recinfo/infclist"); // 감염관리
  477. submit("TRMND01403");
  478. for(i=1 ; i < grd_peritcoduit.rows ; i++){
  479. grd_peritcoduit.isReadOnly(i, 1) = true;
  480. grd_peritcoduit.isReadOnly(i, 2) = true;
  481. grd_peritcoduit.isReadOnly(i, 3) = true;
  482. if(grd_peritcoduit.valueMatrix(i,3) == "2"){ // 상태 제거시 제거이유 활성화
  483. grd_peritcoduit.isReadOnly(i, 5) = false;
  484. }else{
  485. grd_peritcoduit.isReadOnly(i, 5) = true;
  486. }
  487. }
  488. /* if(grd_coduitrecinfo.rows > 1) {
  489. // 기록정보 설정
  490. model.makeValue("/root/main/reclist/recinfo/recinfolists/recdd" , model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/recdd"));
  491. model.makeValue("/root/main/reclist/recinfo/recinfolists/rectm" , model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/rectm"));
  492. model.makeValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd", model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/maintepatrgstdd"));
  493. model.makeValue("/root/main/reclist/recinfo/recinfolists/signno" , model.getValue("/root/main/coduitreclist/coduitrecinfo[" + coduitrecinfoRow + "]/signno"));
  494. model.refresh();
  495. }
  496. */
  497. }
  498. /**
  499. * @group :
  500. * @ver : 2007.06.22
  501. * @by : 김진아
  502. * @---------------------------------------------------
  503. * @type : function
  504. * @access : public
  505. * @desc : 신규등록버튼 클릭 시
  506. * @param :
  507. * @return :
  508. * @---------------------------------------------------
  509. */
  510. function fSetNewRecInfo(){
  511. if(model.getValue("/root/main/reclist/recinfo/recinfolists/pid") == "") {
  512. messageBox("복막투석 유지환자를 선택한 후", "I", "신규등록을 할 수 있습니다.");
  513. return;
  514. }
  515. grp_pdpipeinfo.disabled = false; // 복막투석 도관관리 그룹 활성화
  516. // 기록일시 설정
  517. model.makeValue("/root/main/reclist/recinfo/recinfolists/recdd", getCurrentDate()); // 기록일자
  518. model.makeValue("/root/main/reclist/recinfo/recinfolists/rectm", getCurrentTime().substr(0,4)); // 기록시간
  519. model.refresh();
  520. // 환자별 도관기록 리스트 행 추가
  521. grd_coduitrecinfo.addItem(); // 행 추가
  522. grd_coduitrecinfo.textmatrix((grd_coduitrecinfo.rows-1), 1) = model.getValue("/root/main/reclist/recinfo/recinfolists/recdd");
  523. grd_coduitrecinfo.textmatrix((grd_coduitrecinfo.rows-1), 2) = model.getValue("/root/main/reclist/recinfo/recinfolists/rectm");
  524. grd_coduitrecinfo.textmatrix((grd_coduitrecinfo.rows-1), 3) = model.getValue("/root/main/reclist/recinfo/recinfolists/recnm");
  525. // 초기화
  526. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  527. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  528. }
  529. model.removeNodeset("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo"); // 복막투석 도관관리
  530. model.removeNodeset("/root/main/reclist/recinfo/t_setlist/t_setinfo"); // T-set 관리
  531. model.removeNodeset("/root/main/reclist/recinfo/infclist/infcinfo"); // 감염관리
  532. // 신규등록 flag
  533. model.makeValue("/root/main/chklist/chkinfo/cretfalg", "Y");
  534. model.refresh();
  535. }
  536. /**
  537. * @group :
  538. * @ver : 2007.07.18
  539. * @by : 김진아
  540. * @---------------------------------------------------
  541. * @type : function
  542. * @access : public
  543. * @desc : 투석도관기록 마스터정보 삭제
  544. * @param :
  545. * @return :
  546. * @---------------------------------------------------
  547. */
  548. function fDelPipeMasterInfo(){
  549. //** 데이터 모두 삭제 되어 해당일시에 기록정보 없을 경우 **//
  550. if( getNodesetCount("/root/main/reclist/recinfo/peritcoduitlist/peritcoduitinfo") == 0
  551. && getNodesetCount("/root/main/reclist/recinfo/t_setlist/t_setinfo") == 0
  552. && getNodesetCount("/root/main/reclist/recinfo/infclist/infcinfo") == 0) {
  553. messageBox("해당일시에 데이터가 존재하지 않습니다", "I", "마스터 정보를 삭제합니다.");
  554. model.makeValue("/root/send/savedata/pid" , model.getValue("/root/main/reclist/recinfo/recinfolists/pid"));
  555. model.makeValue("/root/send/savedata/recdd" , model.getValue("/root/main/reclist/recinfo/recinfolists/recdd"));
  556. model.makeValue("/root/send/savedata/rectm" , model.getValue("/root/main/reclist/recinfo/recinfolists/rectm"));
  557. model.makeValue("/root/send/savedata/maintepatrgstdd", model.getValue("/root/main/reclist/recinfo/recinfolists/maintepatrgstdd"));
  558. model.makeValue("/root/send/savedata/dialflag" , "P");
  559. submit("TXMND01302");
  560. fSrchCoduitrecList(); // 환자별 도관기록 리스트 조회
  561. }
  562. }
  563. /* ------------------------------------------------- */
  564. /* desc : Instance NodeCopy 하기 (SMMNP007.js 참조) */
  565. /* param : pModel - Model */
  566. /* tNode - Target Node */
  567. /* sNode - Source Node */
  568. /* return : */
  569. /* -------------------------------------------------- */
  570. function InstanceNodeCopy(pModel, tNode, sNode) {
  571. pModel.copyNode(tNode, sNode );
  572. }
  573. /* ------------------------------------------------- */
  574. /* desc : Instance NodeCopy 하기(SMMNP007.js 참조) */
  575. /* param : pModel - Model */
  576. /* tNode - Target Node */
  577. /* sNode - Source Node */
  578. /* return : */
  579. /* -------------------------------------------------- */
  580. function XmlDataCheck(XmlInstNm) {
  581. XmlInstNm = XmlInstNm.split(" ");
  582. var tNode = "";
  583. var sNode = "";
  584. for (var i=0; i < XmlInstNm.length; i++){
  585. tNode = "/root/main/reclist/recinfo/" + XmlInstNm[i];
  586. if (instance1.selectSingleNode(tNode).childNodes.length < 1) {
  587. sNode = "/root/main/xmlformatlist/" + XmlInstNm[i];
  588. InstanceNodeCopy(model, tNode, sNode);
  589. }
  590. }
  591. }