SMMND01400.xjs 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 복막투석도관기록(SMMND01400.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. //**전역변수**//
  8. var coduitrecinfoRow = "";
  9. var pdmatnpatRow = "";
  10. var XmlInstNm = "peritcoduitspeclist" + " " // 복막투석 도관관리 정보
  11. + "t_setspeclist" + " " // T-set관리
  12. + "infcspeclist" ; // 감염관리
  13. /**
  14. * _group :
  15. * _ver : 2007.06.13
  16. * _by : 김진아
  17. * _---------------------------------------------------
  18. * _type : function
  19. * _access : public
  20. * _desc : 화면 초기화
  21. * _param :
  22. * _return :
  23. * _---------------------------------------------------
  24. */
  25. function fDone(){
  26. //**그리드 초기화**//
  27. ds_main_pdmatnpatlist_pdmatnpatinfo.clearData(); // 복막투석 유지환자 리스트
  28. ds_main_coduitreclist_coduitrecinfo.clearData(); // 환자별 도관기록 리스트
  29. ds_main_reclist_recinfo_peritcoduitlist.clearData(); // 복막투석 도관관리
  30. ds_main_reclist_recinfo_t_setlist.clearData(); // T-set 관리
  31. ds_main_reclist_recinfo_infclist.clearData(); // 감염관리
  32. //model.refresh();
  33. //**공통코드 가져오기**//
  34. var arrParam = [
  35. {dsNm: "ds_init_M0142list" ,cdGrpId: "M0142" }, // Cath종류
  36. {dsNm: "ds_init_M0133list" ,cdGrpId: "M0133" }, // 부위
  37. {dsNm: "ds_init_M0144list" ,cdGrpId: "M0144" }, // 복막투석도관 제거이유
  38. {dsNm: "ds_init_M0145list" ,cdGrpId: "M0145" }, // 감염종류
  39. {dsNm: "ds_init_M0146list" ,cdGrpId: "M0146" }, // 원인균
  40. {dsNm: "ds_init_M0147list" ,cdGrpId: "M0147" } // 예후
  41. ];
  42. appf_getCodeList(arrParam);
  43. //** 상단환자 화면설정 **//
  44. var node = sysf_getGlobalVariable("paminfo");
  45. dsf_setCSVToDs("ds_temp_paminfo", node);
  46. if(ds_temp_paminfo_list.rowcount > 0) {
  47. var sSelPid = ds_temp_paminfo_list.getColumn(0, "pid"); // 등록번호
  48. var sMaintePatRgstDD = ds_temp_paminfo_list.getColumn(0, "maintepatrgstdd"); // 유지환자등록일자
  49. pdmatnpatRow = 1;
  50. ds_main_condition.setColumn( 0, "pid", sSelPid);
  51. fSrchPDMatnPatList(); // 복막투석 유지환자 리스트 조회
  52. fSetPDPipeInfo(1); // 복막투석 유지환자리스트에서 환자 선택 시 도관기록 리스트 및 누적조회, 환자정보를 설정
  53. }else{
  54. fSrchPDMatnPatList(); // 복막투석 유지환자 리스트 조회
  55. }
  56. }
  57. /**
  58. * _group :
  59. * _ver : 2007.06.13
  60. * _by : 김진아
  61. * _---------------------------------------------------
  62. * _type : function
  63. * _access : public
  64. * _desc : 복막투석 유지환자 리스트 조회
  65. * _param :
  66. * _return :
  67. * _---------------------------------------------------
  68. */
  69. function fSrchPDMatnPatList(){
  70. ds_main_pdmatnpatlist_pdmatnpatinfo.clearData();
  71. dsf_deleteDs("ds_send_reqdata");
  72. dsf_createDsRow("ds_send_reqdata", [{col:"pid", type:"STRING", size:256 , val : ds_main_condition.getColumn(0, "pid")}
  73. , {col:"dialflag", type:"STRING", size:256 , val : "P"}
  74. , {col:"mypid", type:"STRING", size:256 , val : ds_main_condition.getColumn(0, "mypid")}
  75. , {col:"wardcd", type:"STRING", size:256 , val : ds_main_condition.getColumn(0, "wardcd")}]);
  76. // submit("TRMND01401");
  77. var oParam = {};
  78. oParam.id = "TRMND01401";
  79. oParam.service = "dialapp.DialRec";
  80. oParam.method = "reqGetMatnPatInfo";
  81. oParam.inds = "req=ds_send_reqdata";
  82. oParam.outds = "ds_main_pdmatnpatlist_pdmatnpatinfo=matnpatinfo";
  83. oParam.async = false;
  84. oParam.callback = "cf_TRMND01401";
  85. tranf_submit(oParam);
  86. }
  87. function cf_TRMND01401(sSvcId, nErrorCode, sErrorMsg)
  88. {
  89. if(nErrorCode < 0)
  90. {
  91. sysf_messageBox('조회를 실패하였습니다.', 'E999');
  92. return;
  93. }
  94. }
  95. //if(ds_main_condition.getColumn(0, "pid") != "") {
  96. // grd_pdmatnpatinfo.cellstyle("background-color", 1, 1, 1, 3) = "#ffd9ff"; // 복막투석 유지환자리스트 셀 색상 지정
  97. // for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  98. // grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  99. // }
  100. // // fGetPatInfo(ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(1, "pid"), ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(1, "maintepatrgstdd")); // 복막투석 유지환자 정보 설정
  101. // // fSrchCoduitrecList(); // 환자별 도관기록 리스트 조회
  102. //}
  103. //
  104. //model.refresh();
  105. /**
  106. * _group :
  107. * _ver : 2007.06.13
  108. * _by : 김진아
  109. * _---------------------------------------------------
  110. * _type : function
  111. * _access : public
  112. * _desc : 복막투석 유지환자 정보 설정
  113. * (복막투석 유지환자 리스트 더블 클릭 시)
  114. * _param :
  115. * _return :
  116. * _---------------------------------------------------
  117. */
  118. function fGetPatInfo(sSelPid, sMaintePatRgstDD){
  119. // 초기화
  120. ds_main_reclist_recinfo_recinfolists.clearData(); // 복막투석도관기록
  121. ds_main_reclist_recinfo_peritcoduitlist.clearData(); // 복막투석 도관관리
  122. ds_main_reclist_recinfo_t_setlist.clearData(); // T-set 관리
  123. ds_main_reclist_recinfo_infclist.clearData(); // 감염관리
  124. // fClearChildNode("ds_main_reclist_recinfo");
  125. // fClearChildNode("ds_main_chklist_chkinfo");
  126. //기록자 정보 설정
  127. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recid", "string", sysf_getUserId()); // 현재 로그인한 사용자 ID
  128. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recnm", "string", sysf_getUserName()); // 현재 로그인한 사용자명
  129. // 기록일시 설정
  130. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recdd", "string", utlf_getCurrentDate()); // 기록일자
  131. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "rectm", "string", utlf_getCurrentTime().substr(0,4)); // 기록시간
  132. // 환자 정보 설정
  133. // dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "pid", "string", sSelPid);
  134. // dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "maintepatrgstdd", "string", sMaintePatRgstDD);
  135. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "pid", "string", sSelPid);
  136. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "maintepatrgstdd", "string", sMaintePatRgstDD);
  137. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "orddd", "string", sOrddd);
  138. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "cretno", "string", sCretno);
  139. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "histstat", "string", sHiststat);
  140. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "orddeptcd", "string", sOrddeptcd);
  141. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "orddrid", "string", sOrddrid);
  142. //model.refresh();
  143. }
  144. /**
  145. * _group :
  146. * _ver : 2007.06.13
  147. * _by : 김진아
  148. * _---------------------------------------------------
  149. * _type : function
  150. * _access : public
  151. * _desc : 환자별 도관기록 리스트 조회
  152. * (복막투석 유지환자 리스트 더블 클릭 시)
  153. * _param :
  154. * _return :
  155. * _---------------------------------------------------
  156. */
  157. function fSrchCoduitrecList(iRow){
  158. // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  159. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  160. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 4) = "white";
  161. }
  162. if(iRow==""){
  163. iRow=1;
  164. }
  165. ds_send.clearData();
  166. dsf_makeValue( ds, "send", "string", "" );
  167. dsf_makeValue( ds_send_reqdata, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid"));
  168. dsf_makeValue( ds_send_reqdata, "dialflag", "string", "P"); // 투석구분 ( "P":복막투석 )
  169. ds_main_coduitreclist.clearData();
  170. // submit("TRMND01402");
  171. var oParam = {};
  172. oParam.id = "TRMND01402";
  173. oParam.service = "dialapp.DialRec";
  174. oParam.method = "reqGetCoduitrecList";
  175. oParam.inds = "req=ds_";
  176. oParam.outds = "ds_=coduitrecinfo ds_=signinfo";
  177. oParam.async = false;
  178. oParam.callback = "cf_TRMND01402";
  179. tranf_submit(oParam);
  180. /*
  181. function cf_TRMND01402(sSvcId, nErrorCode, sErrorMsg) {
  182. if(nErrorCode < 0) return;
  183. }
  184. function cf_TRMND01402(sSvcId, nErrorCode, sErrorMsg) {
  185. arErrorCode.push(sSvcId, nErrorCode);
  186. }
  187. arErrorCode.pop("TRMND01402") > -1
  188. arErrorCode.pop("TRMND01402") < 0
  189. */
  190. // 인증저장 정보 설정
  191. ds_main_pdmatnpatlist_pdmatnpatinfo.setColumn( iRow, "orddd", ds_main_signinfo.getColumn(0, "orddd"));
  192. ds_main_pdmatnpatlist_pdmatnpatinfo.setColumn( iRow, "cretno", ds_main_signinfo.getColumn(0, "cretno"));
  193. ds_main_pdmatnpatlist_pdmatnpatinfo.setColumn( iRow, "histstat", ds_main_signinfo.getColumn(0, "histstat"));
  194. ds_main_pdmatnpatlist_pdmatnpatinfo.setColumn( iRow, "orddeptcd", ds_main_signinfo.getColumn(0, "orddeptcd"));
  195. ds_main_pdmatnpatlist_pdmatnpatinfo.setColumn( iRow, "orddrid", ds_main_signinfo.getColumn(0, "orddrid"));
  196. //grd_pdmatnpatinfo.refresh();
  197. }
  198. /**
  199. * _group :
  200. * _ver : 2007.06.13
  201. * _by : 김진아
  202. * _---------------------------------------------------
  203. * _type : function
  204. * _access : public
  205. * _desc : 복막투석도관정보 저장
  206. * _param : pFlag (T:임시저장, C:인증저장)
  207. * _return :
  208. * _---------------------------------------------------
  209. */
  210. function fSavePDPipeInfo(pFlag){
  211. var sRecDD = ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd"); // recdd
  212. var sRecTM = ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm"); // rectm
  213. /*
  214. for(var i=1; i<grd_peritcoduit.rows; i++) {
  215. ds_main_reclist_recinfo_peritcoduitlist.setColumn( i , "recdd", sRecDD);
  216. ds_main_reclist_recinfo_peritcoduitlist.setColumn( i , "rectm", sRecTM);
  217. }
  218. for(var i=1; i<grd_t_set.rows; i++) {
  219. ds_main_reclist_recinfo_t_setlist.setColumn( i , "recdd", sRecDD);
  220. ds_main_reclist_recinfo_t_setlist.setColumn( i , "rectm", sRecTM);
  221. }
  222. for(var i=1; i<grd_infc.rows; i++) {
  223. ds_main_reclist_recinfo_infclist.setColumn( i , "recdd", sRecDD);
  224. ds_main_reclist_recinfo_infclist.setColumn( i , "rectm", sRecTM);
  225. }
  226. */
  227. //** 저장 데이터 없을 경우 **//
  228. if( ds_main_reclist_recinfo_peritcoduitlist_peritcoduitinfo.rowcount== 0
  229. && ds_main_reclist_recinfo_t_setlist_t_setinfo.rowcount== 0
  230. && ds_main_reclist_recinfo_infclist_infcinfo.rowcount== 0) {
  231. sysf_messageBox("저장할 데이터가 ", "I004", "");
  232. return;
  233. }
  234. /*
  235. // 기록일시
  236. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd")=="") {
  237. sysf_messageBox("기록일자는", "I003", "");
  238. ipt_recdd.setFocus();
  239. return;
  240. }
  241. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm")=="") {
  242. sysf_messageBox("기록시간는", "I003", "");
  243. ipt_rectm.setFocus();
  244. return;
  245. }
  246. */
  247. // 복막투석 도관관리
  248. for(var i=1; i<=ds_main_reclist_recinfo_peritcoduitlist_peritcoduitinfo.rowcount; i++) {
  249. var sStatus = model.getValue("ds_main_reclist_recinfo_peritcoduitlist_peritcoduitinfo["+i+"]_statusflag" ); // 상태
  250. var sPart = model.getValue("ds_main_reclist_recinfo_peritcoduitlist_peritcoduitinfo["+i+"]_partflag" ); // 부위
  251. if(sStatus == "" || sPart == ""){
  252. sysf_messageBox("복막투석 도관관리의 상태, 부위는", "I003", "");
  253. return;
  254. }
  255. }
  256. // T-set 관리
  257. for(var i=1; i<=ds_main_reclist_recinfo_t_setlist_t_setinfo.rowcount; i++) {
  258. var sExchdd = model.getValue("ds_main_reclist_recinfo_t_setlist_t_setinfo["+i+"]_exchdd" ); // 교환일
  259. if(sExchdd == ""){
  260. sysf_messageBox("T-set 관리의 교환일은", "I003", "");
  261. return;
  262. }
  263. }
  264. // 감염관리
  265. for(var i=1; i<=ds_main_reclist_recinfo_infclist_infcinfo.rowcount; i++) {
  266. var sInfckind = ds_main_reclist_recinfo_infclist_infcinfo.getColumn(i, "infckindflag"); // 감염종류
  267. if(sInfckind == ""){
  268. sysf_messageBox("감염관리의 감염종류는", "I003", "");
  269. return;
  270. }
  271. }
  272. /*
  273. if(ds_main_chklist_chkinfo.getColumn(0, "cretfalg") == "Y") {
  274. ds_send.clearData();
  275. dsf_makeValue( ds, "send", "string", "" );
  276. dsf_makeValue( ds_send_reqdata, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid") );
  277. dsf_makeValue( ds_send_reqdata, "recdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd"));
  278. dsf_makeValue( ds_send_reqdata, "rectm", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm"));
  279. ds_main_chklist.clearData();
  280. // submit("TRMND01404");
  281. var oParam = {};
  282. oParam.id = "TRMND01404";
  283. oParam.service = "dialapp.DialRec";
  284. oParam.method = "reqGetPDBtdgInfo";
  285. oParam.inds = "req=ds_";
  286. oParam.outds = "ds_=peritcoduitinfo";
  287. oParam.async = false;
  288. oParam.callback = "cf_TRMND01404";
  289. tranf_submit(oParam);
  290. /*
  291. function cf_TRMND01404(sSvcId, nErrorCode, sErrorMsg) {
  292. if(nErrorCode < 0) return;
  293. }
  294. function cf_TRMND01404(sSvcId, nErrorCode, sErrorMsg) {
  295. arErrorCode.push(sSvcId, nErrorCode);
  296. }
  297. arErrorCode.pop("TRMND01404") > -1
  298. arErrorCode.pop("TRMND01404") < 0
  299. */
  300. // 동일기록일자에 도관기록 존재 할 경우
  301. if(ds_main_chklist_chkinfo.getColumn(0, "pid") != "") {
  302. sysf_messageBox("동일일자에 도관기록이 존재합니다.", "E");
  303. // 기록일시 설정
  304. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recdd", "string", utlf_getCurrentDate()); // 기록일자
  305. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "rectm", "string", utlf_getCurrentTime().substr(0,4)); // 기록시간
  306. return;
  307. }
  308. //** 저장실행 **//
  309. ds_send.clearData();
  310. dsf_makeValue( ds, "send", "string", "" );
  311. dsf_makeValue( ds_send_savedata_baseinfo, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid"));
  312. dsf_makeValue( ds_send_savedata_baseinfo, "recdd", "string", utlf_getCurrentDate());
  313. dsf_makeValue( ds_send_savedata_baseinfo, "rectm", "string", utlf_getCurrentTime().substr(0,4));
  314. dsf_makeValue( ds_send_savedata_baseinfo, "maintepatrgstdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "maintepatrgstdd"));
  315. dsf_makeValue( ds_send_savedata_baseinfo, "recid", "string", sysf_getUserId());
  316. dsf_makeValue( ds_send_savedata_baseinfo, "recnm", "string", sysf_getUserName());
  317. dsf_makeValue( ds_send_savedata_baseinfo, "dialflag", "string", "P");
  318. dsf_makeValue( ds_send_savedata_baseinfo, "certflag", "string", pFlag); // 인증여부( T : 임시저장, C : 인증저장)
  319. dsf_makeValue( ds_send_savedata, "peritcoduitinfo", "string", grd_peritcoduit.getupdatedataAll("i"));
  320. dsf_makeValue( ds_send_savedata, "t_setinfo", "string", grd_t_set.getupdatedataAll("i"));
  321. dsf_makeValue( ds_send_savedata, "infcinfo", "string", grd_infc.getupdatedataAll("i"));
  322. // 인증저장일 경우
  323. if(pFlag == "C"){
  324. // 인증 로직 호출
  325. if(Sign.signprocess() == true){
  326. ds_send_savedata_signinfo.clearData();
  327. dsf_makeValue( ds_send_savedata_signdata, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid") ); // 등록번호
  328. dsf_makeValue( ds_send_savedata_signdata, "orddd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "orddd") ); // 진료일자
  329. dsf_makeValue( ds_send_savedata_signdata, "signno", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "signno") ); // 서명번호
  330. dsf_makeValue( ds_send_savedata_signdata, "cretno", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "cretno") ); // 생성번호
  331. dsf_makeValue( ds_send_savedata_signdata, "recdd", "string", utlf_getCurrentDate() ); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  332. dsf_makeValue( ds_send_savedata_signdata, "rectm", "string", utlf_getCurrentTime().substr(0,4) ); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  333. dsf_makeValue( ds_send_savedata_signdata, "recsaveflag", "string", "Y" ); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우: Y, 그외: N)
  334. dsf_makeValue( ds_send_savedata_signdata, "signflag", "string", "02"); // 서명자료구분(01 : 진료, 02 : 간호)
  335. dsf_makeValue( ds_send_savedata_signdata, "signgenrflag", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "histstat")); // 서명발생구분 (코드정의서 M0010 참조)
  336. dsf_makeValue( ds_send_savedata_signdata, "formcd", "string", "0000002498"); // 각 기록지별 서식코드
  337. dsf_makeValue( ds_send_savedata_signdata, "orddeptcd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "orddeptcd")); // 진료부서코드
  338. dsf_makeValue( ds_send_savedata_signdata, "orddrid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "orddrid") ); // 진료의사ID
  339. dsf_makeValue( ds_send_savedata_signdata, "signbfcnts", "string", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  340. dsf_makeValue( ds_send_savedata_signdata, "signaftcnts", "string", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  341. }else{
  342. return false;
  343. }
  344. }
  345. // submit("TXMND01401");
  346. var oParam = {};
  347. oParam.id = "TXMND01401";
  348. oParam.service = "dialapp.DialRec";
  349. oParam.method = "reqExeSavePDPipeInfo";
  350. oParam.inds = "baseinfo=ds_ peritcoduitinfo=ds_ t_setinfo=ds_ infcinfo=ds_ signinfo=ds_";
  351. oParam.outds = "";
  352. oParam.async = false;
  353. oParam.callback = "cf_TXMND01401";
  354. tranf_submit(oParam);
  355. /*
  356. function cf_TXMND01401(sSvcId, nErrorCode, sErrorMsg) {
  357. if(nErrorCode < 0) return;
  358. }
  359. function cf_TXMND01401(sSvcId, nErrorCode, sErrorMsg) {
  360. arErrorCode.push(sSvcId, nErrorCode);
  361. }
  362. arErrorCode.pop("TXMND01401") > -1
  363. arErrorCode.pop("TXMND01401") < 0
  364. */
  365. fSrchCoduitrecList(pdmatnpatRow); // 환자별 도관기록 리스트 조회
  366. //fSrchPDPipeInfo("X"); // 복막투석 도관기록 조회
  367. fSrchPDPipeInfo();
  368. }
  369. /**
  370. * _group :
  371. * _ver : 2008.05.16
  372. * _by : 김진아
  373. * _---------------------------------------------------
  374. * _type : function
  375. * _access : public
  376. * _desc : 복막투석 유지환자리스트에서 환자 선택 시
  377. 도관기록 리스트 및 누적조회, 환자정보를 설정.
  378. * _param :
  379. * _return :
  380. * _---------------------------------------------------
  381. */
  382. function fSetPDPipeInfo(iRow){
  383. // pdmatnpatRow = grd_pdmatnpatinfo.row;
  384. var sSelPid = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "pid"); // 선택환자 등록번호
  385. var sMaintePatRgstDD = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "maintepatrgstdd"); // 선택환자 유지환자등록일자
  386. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "pid", "string", sSelPid);
  387. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "maintepatrgstdd", "string", sMaintePatRgstDD);
  388. // btn_srchccmlinfo.enable = true; // 누적조회버튼 활성화
  389. // 유지환자 리스트 셀 색상 초기화 (white)
  390. for(var i=1; i<=grd_pdmatnpatinfo.rows; i++) {
  391. grd_pdmatnpatinfo.cellstyle("background-color", i, 1, i, 4) = "white";
  392. }
  393. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  394. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  395. }
  396. // 선택 행 셀 색상 지정
  397. grd_pdmatnpatinfo.cellstyle("background-color", iRow, 1, iRow, 4) = "#ffd9ff";
  398. // fGetPatInfo(sSelPid, sMaintePatRgstDD); // 복막투석 유지환자 정보 설정
  399. fSrchCoduitrecList(iRow); // 환자별 도관기록 리스트 조회
  400. // fSrchPDPipeInfo("X"); // 복막투석 도관기록 조회
  401. var sOrddd = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "orddd");
  402. var sCretno = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "cretno");
  403. var sHiststat = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "histstat");
  404. var sOrddeptcd = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "orddeptcd");
  405. var sOrddrid = ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(iRow, "orddrid");
  406. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "orddd", "string", sOrddd);
  407. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "cretno", "string", sCretno);
  408. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "histstat", "string", sHiststat);
  409. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "orddeptcd", "string", sOrddeptcd);
  410. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "orddrid", "string", sOrddrid);
  411. fSrchPDPipeInfo();
  412. /*
  413. // 환자별 도관기록 등록번호, 유지환자 등록일자 설정
  414. if(ds_main_coduitreclist_coduitrecinfo.rowcount;>0) {
  415. model.makeValue("ds_main_coduitreclist_coduitrecinfo[1]_pid", sSelPid);
  416. model.makeValue("ds_main_coduitreclist_coduitrecinfo[1]_maintepatrgstdd", sMaintePatRgstDD);
  417. }
  418. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "maintepatrgstdd", "string", sMaintePatRgstDD); // 유지환자등록일자설정
  419. */
  420. //model.refresh();
  421. }
  422. /* ------------------------------------------------- */
  423. /* desc : 인증데이터 만들기 */
  424. /* param : pModel - Model */
  425. /* tNode - Target Node */
  426. /* sNode - Source Node */
  427. /* return : */
  428. /* -------------------------------------------------- */
  429. function fMake_SignData(){
  430. Sign.addnode("ds_main_reclist_recinfo"); //기록 관련 인스턴스 전체를 copy
  431. // 인스턴스 copy 후에 콤보나 체크박스 같은 경우 코드값은 명칭으로 변경
  432. var xRecinfoPath = Sign.XPATH_SIGNINFO+"_recinfo";
  433. //** 복막투석 도관관리 **//
  434. var xPeritCoduitPath = xRecinfoPath + "_peritcoduitlist_peritcoduitinfo";
  435. for(var i=1;i<grd_peritcoduit.rows;i++){
  436. // 상태
  437. var sStatusFlag = eval(xPeritCoduitPath).getColumn(i, "statusflag");
  438. switch(sStatusFlag){
  439. case '1':
  440. model.makeValue(xPeritCoduitPath+"["+i+"]_statusflag", "삽입"); break;
  441. case '2':
  442. model.makeValue(xPeritCoduitPath+"["+i+"]_statusflag", "제거"); break;
  443. }
  444. // Cath.종류
  445. var sCathKindFlag = eval(xPeritCoduitPath).getColumn(i, "cathkindflag");
  446. if(sCathKindFlag != ""){
  447. model.makeValue(xPeritCoduitPath+"["+i+"]_cathkindflag", ds_init_M0142list_M0142.lookupExpr("cdid == '" + sCathKindFlag + "'", "cdnm"));
  448. }
  449. // 부위
  450. var sPartFlag = eval(xPeritCoduitPath).getColumn(i, "partflag");
  451. if(sPartFlag != ""){
  452. model.makeValue(xPeritCoduitPath+"["+i+"]_partflag", ds_init_M0133list_M0133.lookupExpr("cdid == '" + sPartFlag + "'", "cdnm"));
  453. }
  454. // 제거사유
  455. var sElmnResnFlag = eval(xPeritCoduitPath).getColumn(i, "elmnresnflag");
  456. if(sElmnResnFlag != ""){
  457. model.makeValue(xPeritCoduitPath+"["+i+"]_elmnresnflag", ds_init_M0144list_M0144.lookupExpr("cdid == '" + sElmnResnFlag + "'", "cdnm"));
  458. }
  459. }
  460. //** 감염관리 **//
  461. var xInfcInfoPath = xRecinfoPath + "_infclist_infcinfo";
  462. for(var i=1;i<grd_infc.rows;i++){
  463. // 감염종류
  464. var sInfcKindFlag = eval(xInfcInfoPath).getColumn(i, "infckindflag");
  465. if(sInfcKindFlag != ""){
  466. model.makeValue(xInfcInfoPath+"["+i+"]_infckindflag", ds_init_M0145list_M0145.lookupExpr("cdid == '" + sInfcKindFlag + "'", "cdnm"));
  467. }
  468. // 원인균
  469. var sCasBacFlag = eval(xInfcInfoPath).getColumn(i, "casbacflag");
  470. if(sCasBacFlag != ""){
  471. model.makeValue(xInfcInfoPath+"["+i+"]_casbacflag", ds_init_M0146list_M0146.lookupExpr("cdid == '" + sCasBacFlag + "'", "cdnm"));
  472. }
  473. // 예후
  474. var sAfterFlag = eval(xInfcInfoPath).getColumn(i, "afterflag");
  475. if(sAfterFlag != ""){
  476. model.makeValue(xInfcInfoPath+"["+i+"]_afterflag", ds_init_M0147list_M0147.lookupExpr("cdid == '" + sAfterFlag + "'", "cdnm"));
  477. }
  478. }
  479. }
  480. /**
  481. * _group :
  482. * _ver : 2007.06.14
  483. * _by : 김진아
  484. * _---------------------------------------------------
  485. * _type : function
  486. * _access : public
  487. * _desc : 복막투석 도관기록 조회
  488. * (환자별 도관기록 리스트 더블 클릭 시)
  489. * _param
  490. * _return
  491. * _---------------------------------------------------
  492. */
  493. function fSrchPDPipeInfo(srchFlag){
  494. // 신규등록 Flag
  495. dsf_makeValue( ds_main_chklist_chkinfo, "cretfalg", "string", "N");
  496. grp_pdpipeinfo.enable = true; // 복막투석 도관관리 그룹 활성화
  497. if(srchFlag == "X"){
  498. coduitrecinfoRow = -1;
  499. // grp_pdpipeinfo.enable = false; // 복막투석도관관리 그룹 비활성화
  500. // 버튼 비활성화
  501. btn_tempsavepdpipeinfo.enable = false;
  502. btn_certsavepdpipeinfo.enable = false;
  503. btn_addpdpipeinfo.enable = false;
  504. btn_delpdpipeinfo.enable = false;
  505. btn_addtset.enable = false;
  506. btn_deltset.enable = false;
  507. btn_addinfc.enable = false;
  508. btn_delinfc.enable = false;
  509. } else {
  510. coduitrecinfoRow = grd_coduitrecinfo.row; // 전역변수
  511. }
  512. /*
  513. // 인증저장 된 기록인지 체크
  514. if(ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "signno"))!= ""){
  515. btn_tempsavepdpipeinfo.enable = false;
  516. }
  517. var sRecDD = ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "recdd")); // 기록일자
  518. var sRecTM = ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "rectm")); // 기록시간
  519. var sRecNM = ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "recnm")); // 기록자명
  520. */
  521. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  522. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white";
  523. }
  524. // i u d 아이콘 초기화
  525. for(i=1 ; i < grd_peritcoduit.rows ; i++){
  526. grd_peritcoduit.cellStyle("background-image", + i , 8) = "../../.._com_commonweb_images_icon_n.gif";
  527. }
  528. for(i=1 ; i < grd_t_set.rows ; i++){
  529. grd_t_set.cellStyle("background-image", + i , 3) = "../../.._com_commonweb_images_icon_n.gif";
  530. }
  531. for(i=1 ; i < grd_infc.rows ; i++){
  532. grd_infc.cellStyle("background-image", + i , 7) = "../../.._com_commonweb_images_icon_n.gif";
  533. }
  534. // 선택 행 셀 색상 지정
  535. grd_coduitrecinfo.cellstyle("background-color", coduitrecinfoRow, 1, coduitrecinfoRow, 3) = "#ffd9ff";
  536. ds_send.clearData();
  537. dsf_makeValue( ds, "send", "string", "" );
  538. // dsf_makeValue( ds_send_reqdata, "pid", "string", ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(grd_pdmatnpatinfo.row, "pid")));
  539. // dsf_makeValue( ds_send_reqdata, "maintepatrgstdd", "string", ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(grd_pdmatnpatinfo.row, "maintepatrgstdd")));
  540. dsf_makeValue( ds_send_reqdata, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid"));
  541. dsf_makeValue( ds_send_reqdata, "maintepatrgstdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "maintepatrgstdd"));
  542. ds_main_reclist_recinfo_peritcoduitlist.clearData(); // 복막투석 도관관리 정보
  543. ds_main_reclist_recinfo_t_setlist.clearData(); // T-set관리
  544. ds_main_reclist_recinfo_infclist.clearData(); // 감염관리
  545. // submit("TRMND01403");
  546. var oParam = {};
  547. oParam.id = "TRMND01403";
  548. oParam.service = "dialapp.DialRec";
  549. oParam.method = "reqGetPDPipeInfo";
  550. oParam.inds = "req=ds_";
  551. oParam.outds = "ds_=pdpipeinfo ds_=tsetinfo ds_=infcinfo";
  552. oParam.async = false;
  553. oParam.callback = "cf_TRMND01403";
  554. tranf_submit(oParam);
  555. /*
  556. function cf_TRMND01403(sSvcId, nErrorCode, sErrorMsg) {
  557. if(nErrorCode < 0) return;
  558. }
  559. function cf_TRMND01403(sSvcId, nErrorCode, sErrorMsg) {
  560. arErrorCode.push(sSvcId, nErrorCode);
  561. }
  562. arErrorCode.pop("TRMND01403") > -1
  563. arErrorCode.pop("TRMND01403") < 0
  564. */
  565. for(i=1 ; i < grd_peritcoduit.rows ; i++){
  566. grd_peritcoduit.isReadOnly(i, 1) = true;
  567. grd_peritcoduit.isReadOnly(i, 2) = true;
  568. grd_peritcoduit.isReadOnly(i, 3) = true;
  569. if(grd_peritcoduit.valueMatrix(i,3) == "2"){ // 상태 제거시 제거이유 활성화
  570. grd_peritcoduit.isReadOnly(i, 5) = false;
  571. }else{
  572. grd_peritcoduit.isReadOnly(i, 5) = true;
  573. }
  574. }
  575. /* if(grd_coduitrecinfo.rows > 1) {
  576. // 기록정보 설정
  577. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recdd", "string", ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "recdd")));
  578. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "rectm", "string", ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "rectm")));
  579. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "maintepatrgstdd", "string", ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "maintepatrgstdd")));
  580. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "signno", "string", ds_main_coduitreclist_coduitrecinfo.getColumn(coduitrecinfoRow, "signno")));
  581. //model.refresh();
  582. }
  583. */
  584. }
  585. /**
  586. * _group :
  587. * _ver : 2007.06.22
  588. * _by : 김진아
  589. * _---------------------------------------------------
  590. * _type : function
  591. * _access : public
  592. * _desc : 신규등록버튼 클릭 시
  593. * _param :
  594. * _return :
  595. * _---------------------------------------------------
  596. */
  597. function fSetNewRecInfo(){
  598. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid") == "") {
  599. sysf_messageBox("복막투석 유지환자를 선택한 후", "I", "신규등록을 할 수 있습니다.");
  600. return;
  601. }
  602. grp_pdpipeinfo.enable = true; // 복막투석 도관관리 그룹 활성화
  603. // 기록일시 설정
  604. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recdd", "string", utlf_getCurrentDate()); // 기록일자
  605. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "rectm", "string", utlf_getCurrentTime().substr(0,4)); // 기록시간
  606. //model.refresh();
  607. // 환자별 도관기록 리스트 행 추가
  608. grd_coduitrecinfo.addItem(); // 행 추가
  609. grd_coduitrecinfo.textmatrix((grd_coduitrecinfo.rows-1), 1) = ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd");
  610. grd_coduitrecinfo.textmatrix((grd_coduitrecinfo.rows-1), 2) = ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm");
  611. grd_coduitrecinfo.textmatrix((grd_coduitrecinfo.rows-1), 3) = ds_main_reclist_recinfo_recinfolists.getColumn(0, "recnm");
  612. // 초기화
  613. for(var i=1; i<=grd_coduitrecinfo.rows; i++) {
  614. grd_coduitrecinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 환자별 도관기록 리스트 셀 색상 초기화 (white)
  615. }
  616. ds_main_reclist_recinfo_peritcoduitlist_peritcoduitinfo.clearData(); // 복막투석 도관관리
  617. ds_main_reclist_recinfo_t_setlist_t_setinfo.clearData(); // T-set 관리
  618. ds_main_reclist_recinfo_infclist_infcinfo.clearData(); // 감염관리
  619. // 신규등록 flag
  620. dsf_makeValue( ds_main_chklist_chkinfo, "cretfalg", "string", "Y");
  621. //model.refresh();
  622. }
  623. /**
  624. * _group :
  625. * _ver : 2007.07.18
  626. * _by : 김진아
  627. * _---------------------------------------------------
  628. * _type : function
  629. * _access : public
  630. * _desc : 투석도관기록 마스터정보 삭제
  631. * _param :
  632. * _return :
  633. * _---------------------------------------------------
  634. */
  635. function fDelPipeMasterInfo(){
  636. //** 데이터 모두 삭제 되어 해당일시에 기록정보 없을 경우 **//
  637. if( ds_main_reclist_recinfo_peritcoduitlist_peritcoduitinfo.rowcount== 0
  638. && ds_main_reclist_recinfo_t_setlist_t_setinfo.rowcount== 0
  639. && ds_main_reclist_recinfo_infclist_infcinfo.rowcount== 0) {
  640. sysf_messageBox("해당일시에 데이터가 존재하지 않습니다", "I", "마스터 정보를 삭제합니다.");
  641. dsf_makeValue( ds_send_savedata, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid"));
  642. dsf_makeValue( ds_send_savedata, "recdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd"));
  643. dsf_makeValue( ds_send_savedata, "rectm", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm"));
  644. dsf_makeValue( ds_send_savedata, "maintepatrgstdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "maintepatrgstdd"));
  645. dsf_makeValue( ds_send_savedata, "dialflag", "string", "P");
  646. // submit("TXMND01302");
  647. var oParam = {};
  648. oParam.id = "TXMND01302";
  649. oParam.service = "dialapp.DialRec";
  650. oParam.method = "reqDelHDPipeInfoMaster";
  651. oParam.inds = "req=ds_";
  652. oParam.outds = "";
  653. oParam.async = false;
  654. oParam.callback = "cf_TXMND01302";
  655. tranf_submit(oParam);
  656. /*
  657. function cf_TXMND01302(sSvcId, nErrorCode, sErrorMsg) {
  658. if(nErrorCode < 0) return;
  659. }
  660. function cf_TXMND01302(sSvcId, nErrorCode, sErrorMsg) {
  661. arErrorCode.push(sSvcId, nErrorCode);
  662. }
  663. arErrorCode.pop("TXMND01302") > -1
  664. arErrorCode.pop("TXMND01302") < 0
  665. */
  666. fSrchCoduitrecList(); // 환자별 도관기록 리스트 조회
  667. }
  668. }
  669. /* ------------------------------------------------- */
  670. /* desc : Instance NodeCopy 하기 (SMMNP007.js 참조) */
  671. /* param : pModel - Model */
  672. /* tNode - Target Node */
  673. /* sNode - Source Node */
  674. /* return : */
  675. /* -------------------------------------------------- */
  676. function InstanceNodeCopy(pModel, tNode, sNode) {
  677. pModel.copyNode(tNode, sNode );
  678. }
  679. /* ------------------------------------------------- */
  680. /* desc : Instance NodeCopy 하기(SMMNP007.js 참조) */
  681. /* param : pModel - Model */
  682. /* tNode - Target Node */
  683. /* sNode - Source Node */
  684. /* return : */
  685. /* -------------------------------------------------- */
  686. function XmlDataCheck(XmlInstNm) {
  687. XmlInstNm = XmlInstNm.split(" ");
  688. var tNode = "";
  689. var sNode = "";
  690. for (var i=0; i < XmlInstNm.length; i++){
  691. tNode = "ds_main_reclist_recinfo/" + XmlInstNm[i];
  692. if (instance1.selectSingleNode(tNode).childNodes.length < 1) {
  693. sNode = "ds_main_xmlformatlist/" + XmlInstNm[i];
  694. InstanceNodeCopy(model, tNode, sNode);
  695. }
  696. }
  697. }
  698. ]]></Script>