SMMND00800.xjs 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[/*
  3. 복막투석실시관리(SMMND00800.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. //**전역변수**//
  8. var sRecHistRow = "";
  9. var XmlInstNm = "pdinfospeclist_pdinfospec" + " " // 복막투석정보
  10. + "epospeclist_epospec" + " " // EPO 내역
  11. + "insulinspeclist_insulinspec" + " " // 인슐린 내역
  12. + "bizexecspeclist_bizexecspec"; // 업무실시 내역
  13. //20090902-kys=======================
  14. var zbcResultRef = "ds_hidden_zbc_resultref";
  15. var zbcM0132Ref = "ds_init_M0132list_M0132";
  16. function makeZbcResultRef(){ eval(zbcResultRef).addRow(); }
  17. function removeZbcResultRef(){ eval(zbcResultRef).clearData(); }
  18. function removeM0132ResultRef(){ eval(zbcM0132Ref).clearData(); }
  19. //20090902-kys=============================
  20. /**
  21. * _group :
  22. * _ver : 2007.05.31
  23. * _by : 김진아
  24. * _---------------------------------------------------
  25. * _type : function
  26. * _access : public
  27. * _desc : 화면 초기화
  28. * _param :
  29. * _return :
  30. * _---------------------------------------------------
  31. */
  32. function fDone(){
  33. //**그리드 초기화**//
  34. ds_main_pdmatnpatlist.clearData(); // 복막투석 유지환자 리스트
  35. ds_main_rechistlist.clearData(); // 복막투석 실시등록 리스트
  36. //
  37. //model.refresh();
  38. //**공통코드 가져오기**//
  39. var arrParam = [ {dsNm : "ds_init_M0130list" // APD종류
  40. , "ds_init_M0131list" // 복막투석액 회사명
  41. , "ds_init_M0132list" // 복막투석액
  42. ,
  43. cdGrpId: "M0130" // APD종류
  44. , "M0131" // 복막투석액 회사명
  45. , "M0132" // 복막투석액
  46. } ];
  47. appf_getCodeList(arrParam,
  48. );
  49. //** 상단환자 화면설정 **//
  50. var node = sysf_getGlobalVariable("paminfo");
  51. dsf_setCSVToDs("ds_temp_paminfo", node);
  52. if(ds_temp_paminfo.rowcount;> 0) {
  53. var sSelPid = ds_temp_paminfo_list.getColumn(0, "pid"); // 등록번호
  54. ds_main_condition.setColumn( 0, "pid", sSelPid);
  55. }
  56. fSrchPDMatnPatList(); // 복막투석 유지환자리스트 조회
  57. if(ds_main_condition.getColumn(0, "pid") != "") {
  58. var iRow = 1;
  59. fInit(); // 초기화
  60. var sSelPid = grd_pdmatnpatinfo.textmatrix(iRow, 1); // 등록번호
  61. var sMaintePatRgstDD = grd_pdmatnpatinfo.textmatrix(iRow, 4); // 유지환자 등록일자
  62. // 선택 행 셀 색상 지정
  63. grd_pdmatnpatinfo.cellstyle("background-color", iRow, 1, iRow, 4) = "#ffd9ff";
  64. fGetPatInfo(sSelPid, sMaintePatRgstDD); // 환자정보 설정
  65. fSrchPatHist(); // 복막투석 실시등록 리스트 조회
  66. }
  67. }
  68. /**
  69. * _group :
  70. * _ver : 2007.06.18
  71. * _by : 김진아
  72. * _---------------------------------------------------
  73. * _type : function
  74. * _access : public
  75. * _desc : 회사명별 투석액 콤보 설정
  76. * _param :
  77. * _return :
  78. * _---------------------------------------------------
  79. */
  80. function fGetDialLiqList(){
  81. /*zbcfGetKindCodeList(
  82. new Array("M0028"), //업무규칙
  83. new Array("M0132"), //코드군
  84. new Array("ds_init_M0132list"), //노드
  85. true, //minimum : true TRZBC00105
  86. new Array("cdid"), //sorting 항목
  87. new Array("asc")
  88. ); */
  89. //20090923-kys수정(회사별 투석액설정)
  90. var sSelCmpyCd = ds_main_reclist_recinfo_recinfolists.getColumn(0, "cmpycd");
  91. fGetChildCodeList("M0132", "ds_init_M0132list", sSelCmpyCd);//20090902-kys
  92. //cmb_dialliqdcd.refresh();
  93. }
  94. /**
  95. * _group :
  96. * _ver : 2007.06.08
  97. * _by : 김진아
  98. * _---------------------------------------------------
  99. * _type : function
  100. * _access : public
  101. * _desc : 복막투석 유지환지리스트 조회
  102. * _param :
  103. * _return :
  104. * _---------------------------------------------------
  105. */
  106. function fSrchPDMatnPatList(){
  107. ds_send.clearData();
  108. dsf_makeValue( ds, "send", "string", "" );
  109. dsf_makeValue( ds_send_reqdata, "pid", "string", ds_main_condition.getColumn(0, "pid"));
  110. dsf_makeValue( ds_send_reqdata, "dialflag", "string", "P"); // 투석구분 (P:복막)
  111. //ds_main_pdmatnpatlist_pdmatnpatinfo.clearData();
  112. ds_main_pdmatnpatlist.clearData();
  113. // submit("TRMND00801");
  114. var oParam = {};
  115. oParam.id = "TRMND00801";
  116. oParam.service = "dialapp.DialRec";
  117. oParam.method = "reqGetMatnPatInfo";
  118. oParam.inds = "req=ds_";
  119. oParam.outds = "ds_=matnpatinfo";
  120. oParam.async = false;
  121. oParam.callback = "cf_TRMND00801";
  122. tranf_submit(oParam);
  123. /*
  124. function cf_TRMND00801(sSvcId, nErrorCode, sErrorMsg) {
  125. if(nErrorCode < 0) return;
  126. }
  127. function cf_TRMND00801(sSvcId, nErrorCode, sErrorMsg) {
  128. arErrorCode.push(sSvcId, nErrorCode);
  129. }
  130. arErrorCode.pop("TRMND00801") > -1
  131. arErrorCode.pop("TRMND00801") < 0
  132. */
  133. if(ds_main_condition.getColumn(0, "pid") != "") {
  134. // grd_pdmatnpatinfo.cellstyle("background-color", 1, 1, 1, 3) = "#ffd9ff"; // 복막투석 유지환자리스트 셀 색상 지정
  135. for(var i=1; i<=grd_rechistinfo.rows; i++) {
  136. grd_rechistinfo.cellstyle("background-color", i, 1, i, 3) = "white"; // 복막투석 실시등록 리스트 셀 색상 초기화 (white)
  137. }
  138. //fGetPatInfo(ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(1, "pid"), ds_main_pdmatnpatlist_pdmatnpatinfo.getColumn(1, "maintepatrgstdd")); // 환자정보 설정
  139. //fSrchPatHist(); // 복막투석 실시등록 리스트 조회 // 환자별 도관기록 리스트 조회
  140. }
  141. }
  142. /**
  143. * _group :
  144. * _ver : 2015.07.22
  145. * _by : 권영애
  146. * _---------------------------------------------------
  147. * _type : function
  148. * _access : public
  149. * _desc : 복막투석적절도검사일과 결과 조회
  150. * _param :
  151. * _return :
  152. * _---------------------------------------------------
  153. */
  154. function fSrchPDKTVInfo(sSelPid){
  155. ds_send.clearData();
  156. dsf_makeValue( ds, "send", "string", "" );
  157. dsf_makeValue( ds_send_reqdata, "pid", "string", sSelPid);
  158. dsf_makeValue( ds_send_reqdata, "dialflag", "string", "P"); // 투석구분 (P:복막)
  159. //ds_main_pdmatnpatlist_pdmatnpatinfo.clearData();
  160. ds_main_pdktvinfo.clearData();
  161. // submit("TRMND00808");
  162. var oParam = {};
  163. oParam.id = "TRMND00808";
  164. oParam.service = "dialapp.DialRec";
  165. oParam.method = "reqGetPDKTVInfo";
  166. oParam.inds = "req=ds_";
  167. oParam.outds = "ds_=pdktvinfo";
  168. oParam.async = false;
  169. oParam.callback = "cf_TRMND00808";
  170. tranf_submit(oParam);
  171. /*
  172. function cf_TRMND00808(sSvcId, nErrorCode, sErrorMsg) {
  173. if(nErrorCode < 0) return;
  174. }
  175. function cf_TRMND00808(sSvcId, nErrorCode, sErrorMsg) {
  176. arErrorCode.push(sSvcId, nErrorCode);
  177. }
  178. arErrorCode.pop("TRMND00808") > -1
  179. arErrorCode.pop("TRMND00808") < 0
  180. */
  181. }
  182. /**
  183. * _group :
  184. * _ver : 2007.06.25
  185. * _by : 김진아
  186. * _---------------------------------------------------
  187. * _type : function
  188. * _access : public
  189. * _desc : 초기화
  190. * _param :
  191. * _return :
  192. * _---------------------------------------------------
  193. */
  194. function fInit(){
  195. // 초기화
  196. if(ds_main_reclist_recinfo_recinfolists.rowcount;>0){
  197. fClearChildNode("ds_main_reclist_recinfo_recinfolists"); // 복막투석정보
  198. }
  199. if(ds_main_reclist_recinfo_pdinfospeclist.rowcount;>0){
  200. fClearChildNode("ds_main_reclist_recinfo_pdinfospeclist_pdinfospec"); // 복막투석정보(XML)
  201. }
  202. if(ds_main_reclist_recinfo_epospeclist.rowcount;>0){
  203. fClearChildNode("ds_main_reclist_recinfo_epospeclist_epospec"); // EPO내역
  204. }
  205. if(ds_main_reclist_recinfo_insulinspeclist.rowcount;>0){
  206. fClearChildNode("ds_main_reclist_recinfo_insulinspeclist_insulinspec"); // 인슐린내역
  207. }
  208. if(ds_main_reclist_recinfo_bizexecspeclist.rowcount;>0){
  209. fClearChildNode("ds_main_reclist_recinfo_bizexecspeclist_bizexecspec"); // 업무실시 내역
  210. }
  211. ds_main_condition.setColumn( 0, "recfromdd", ""); // 조회기간 초기화
  212. ds_main_condition.setColumn( 0, "rectodd", "");
  213. dsf_makeValue( ds_main_pdktvinfo, "execdt", "string", ""); //20150723 적절도평가일자 초기화
  214. dsf_makeValue( ds_main_pdktvinfo, "ktvrsltcnts", "string", ""); //20150723 적절도결과일자 초기화
  215. grp_pdrecinfo.enable = false; // 복막투석실시기록 활성화
  216. btn_newrgst.enable = true; // 신규등록버튼 활성화
  217. grp_optapd.visible = false;
  218. //기록자 정보 설정
  219. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recid", "string", sysf_getUserId()); // 현재 로그인한 사용자 ID
  220. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recnm", "string", sysf_getUserName()); // 현재 로그인한 사용자명
  221. // 유지환자 리스트 셀 색상 초기화 (white)
  222. for(var i=1; i<=grd_pdmatnpatinfo.rows; i++) {
  223. grd_pdmatnpatinfo.cellstyle("background-color", i, 1, i, 4) = "white";
  224. }
  225. //model.refresh();
  226. }
  227. /**
  228. * _group :
  229. * _ver : 2007.06.08
  230. * _by : 김진아
  231. * _---------------------------------------------------
  232. * _type : function
  233. * _access : public
  234. * _desc : 선택 환자 정보 설정(복막투석 유지환자리스트 더블클릭 시)
  235. * _param :
  236. * _return :
  237. * _---------------------------------------------------
  238. */
  239. function fGetPatInfo(sSelPid, sMaintePatRgstDD){
  240. // 환자정보 설정
  241. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "pid", "string", sSelPid); // 선택환자 등록번호
  242. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "maintepatrgstdd", "string", sMaintePatRgstDD); // 선택환자 유지환자등록일자
  243. //2008-08-07 : 기록일자- default 지정
  244. ds_main_condition.setColumn( 0, "rectodd", utlf_getCurrentDate());
  245. ds_main_condition.setColumn( 0, "recfromdd", getDateCalc(utlf_getCurrentDate(), 365*2, '-'));
  246. //
  247. //model.refresh();
  248. }
  249. /**
  250. * _group :
  251. * _ver : 2007.06.08
  252. * _by : 김진아
  253. * _---------------------------------------------------
  254. * _type : function
  255. * _access : public
  256. * _desc : 복막투석 간호기록 저장
  257. * _param : pFlag : 저장구분("T":임시저장, "C":인증저장)
  258. * _return :
  259. * _---------------------------------------------------
  260. */
  261. function fSavePDRecInfo(pFlag){
  262. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd")=="" || ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm")==""){
  263. sysf_messageBox("기록일시를 입력하십시오.", "E");
  264. ipt_recdd.setFocus(); return;
  265. }
  266. //** 2011.05.25 권영애 **//
  267. if(pFlag == "C" && ds_main_reclist_recinfo_recinfolists.getColumn(0, "histstat") == "O") {
  268. sysf_messageBox("외래환자는 인증저장할 수 없습니다. 저장하세요", "E");
  269. return;
  270. }
  271. //** 동일기록일시에 복막투석 실시기록 존재여부 확인 **//
  272. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "status") == "i") {
  273. ds_send.clearData();
  274. dsf_makeValue( ds, "send", "string", "" );
  275. dsf_makeValue( ds_send_reqdata, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid") );
  276. dsf_makeValue( ds_send_reqdata, "recdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd"));
  277. dsf_makeValue( ds_send_reqdata, "rectm", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm"));
  278. ds_main_chklist.clearData();
  279. // submit("TRMND00805");
  280. var oParam = {};
  281. oParam.id = "TRMND00805";
  282. oParam.service = "dialapp.DialRec";
  283. oParam.method = "reqGetDuplPDRecInfo";
  284. oParam.inds = "req=ds_";
  285. oParam.outds = "ds_=chkinfo";
  286. oParam.async = false;
  287. oParam.callback = "cf_TRMND00805";
  288. tranf_submit(oParam);
  289. /*
  290. function cf_TRMND00805(sSvcId, nErrorCode, sErrorMsg) {
  291. if(nErrorCode < 0) return;
  292. }
  293. function cf_TRMND00805(sSvcId, nErrorCode, sErrorMsg) {
  294. arErrorCode.push(sSvcId, nErrorCode);
  295. }
  296. arErrorCode.pop("TRMND00805") > -1
  297. arErrorCode.pop("TRMND00805") < 0
  298. */
  299. // 동일기록일자에 복막실시기록 존재 할 경우
  300. if(ds_main_chklist_chkinfo.getColumn(0, "pid") != "") {
  301. sysf_messageBox("동일일시에 복막투석 실시기록이 존재합니다.", "E");
  302. // 기록일시 설정
  303. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recdd", "string", utlf_getCurrentDate()); // 기록일자
  304. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "rectm", "string", utlf_getCurrentTime().substr(0,4)); // 기록시간
  305. //fSrchPastPDInfo(); // 최근 복막투석 실시기록 조회
  306. //model.refresh();
  307. return;
  308. }
  309. }
  310. //** 저장실행 **//
  311. XmlDataCheck(XmlInstNm);
  312. ds_send.clearData();
  313. dsf_makeValue( ds_send, "savedata", "string", "" );
  314. copyNodeType ("ds_send_savedata", "ds_main_reclist_recinfo_recinfolists");
  315. dsf_makeValue( ds_send_savedata, "certflag", "string", pFlag); // 인증여부( T : 임시저장, C : 인증저장)
  316. ds_send_savedata_pdinfospeclist.clearData();
  317. sXml = instance1.selectNodesXml("ds_main_reclist_recinfo_pdinfospeclist_pdinfospec"); // 투석정보
  318. dsf_makeValue( ds_send_savedata, "pdinfospeclist", "string", sXml);
  319. ds_send_savedata_epospeclist.clearData();
  320. sXml = instance1.selectNodesXml("ds_main_reclist_recinfo_epospeclist_epospec"); // epo 내역
  321. dsf_makeValue( ds_send_savedata, "epospeclist", "string", sXml);
  322. ds_send_savedata_insulinspeclist.clearData();
  323. sXml = instance1.selectNodesXml("ds_main_reclist_recinfo_insulinspeclist_insulinspec"); // 인슐린 내역
  324. dsf_makeValue( ds_send_savedata, "insulinspeclist", "string", sXml);
  325. ds_send_savedata_bizexecspeclist.clearData();
  326. sXml = instance1.selectNodesXml("ds_main_reclist_recinfo_bizexecspeclist_bizexecspec"); // 업무실시 내역
  327. dsf_makeValue( ds_send_savedata, "bizexecspeclist", "string", sXml);
  328. //** 복막투석실시관리 인증저장기능 삭제됨. 주석처리(2007-12-17) **//
  329. // 인증저장일 경우
  330. if(pFlag == "C"){
  331. if(Sign.signprocess() == true){ // 인증 로직 호출
  332. ds_send_savedata_signinfo.clearData();
  333. dsf_makeValue( ds_send_savedata_signinfo, "pid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid") ); // 등록번호
  334. dsf_makeValue( ds_send_savedata_signinfo, "orddd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "orddd") ); // 진료일자
  335. dsf_makeValue( ds_send_savedata_signinfo, "signno", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "signno") ); // 서명번호
  336. dsf_makeValue( ds_send_savedata_signinfo, "cretno", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "cretno") ); // 생성번호
  337. dsf_makeValue( ds_send_savedata_signinfo, "recdd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd") ); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  338. dsf_makeValue( ds_send_savedata_signinfo, "rectm", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm") ); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  339. dsf_makeValue( ds_send_savedata_signinfo, "recsaveflag", "string", "Y" ); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우: Y, 그외: N)
  340. dsf_makeValue( ds_send_savedata_signinfo, "signflag", "string", "02"); // 서명자료구분(01 : 진료, 02 : 간호)
  341. dsf_makeValue( ds_send_savedata_signinfo, "signgenrflag", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "histstat")); // 서명발생구분 (코드정의서 M0010 참조)
  342. dsf_makeValue( ds_send_savedata_signinfo, "formcd", "string", "1100011162"); // 각 기록지별 서식코드
  343. dsf_makeValue( ds_send_savedata_signinfo, "orddeptcd", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "orddeptcd")); // 진료부서코드
  344. dsf_makeValue( ds_send_savedata_signinfo, "orddrid", "string", ds_main_reclist_recinfo_recinfolists.getColumn(0, "orddrid") ); // 진료의사ID
  345. dsf_makeValue( ds_send_savedata_signinfo, "signbfcnts", "string", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  346. dsf_makeValue( ds_send_savedata_signinfo, "signaftcnts", "string", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  347. }else{
  348. return false;
  349. }
  350. }
  351. // submit("TXMND00801");
  352. var oParam = {};
  353. oParam.id = "TXMND00801";
  354. oParam.service = "dialapp.DialRec";
  355. oParam.method = "reqExeSavePDRecInfo";
  356. oParam.inds = "req=ds_ signinfo=ds_";
  357. oParam.outds = "";
  358. oParam.async = false;
  359. oParam.callback = "cf_TXMND00801";
  360. tranf_submit(oParam);
  361. /*
  362. function cf_TXMND00801(sSvcId, nErrorCode, sErrorMsg) {
  363. if(nErrorCode < 0) return;
  364. }
  365. function cf_TXMND00801(sSvcId, nErrorCode, sErrorMsg) {
  366. arErrorCode.push(sSvcId, nErrorCode);
  367. }
  368. arErrorCode.pop("TXMND00801") > -1
  369. arErrorCode.pop("TXMND00801") < 0
  370. */
  371. //** 복막투석 실시등록 리스트 조회 **//
  372. fSrchPatHist(); // 복막투석 실시등록 리스트 조회
  373. var sRecdd = ds_main_reclist_recinfo_recinfolists.getColumn(0, "recdd");
  374. var sRectm = ds_main_reclist_recinfo_recinfolists.getColumn(0, "rectm");
  375. var sRecnm = ds_main_reclist_recinfo_recinfolists.getColumn(0, "recnm");
  376. var sPid = ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid");
  377. var sSignno = ds_main_reclist_recinfo_recinfolists.getColumn(0, "signno");
  378. //** 복막투석 실시기록 조회 **//
  379. fSrchPDInfo(sRecHistRow); // 복막투석 실시기록 조회
  380. ds_main_reclist_recinfo_recinfolists.setColumn( 0, "status" , "u");
  381. }
  382. /* ------------------------------------------------- */
  383. /* desc : 인증데이터 만들기 */
  384. /* param : pModel - Model */
  385. /* tNode - Target Node */
  386. /* sNode - Source Node */
  387. /* return : */
  388. /* -------------------------------------------------- */
  389. function fMake_SignData(){
  390. Sign.addnode("ds_main_reclist_recinfo"); //기록 관련 인스턴스 전체를 copy
  391. // 인스턴스 copy 후에 콤보나 체크박스 같은 경우 코드값은 명칭으로 변경
  392. var xRecinfoPath = Sign.XPATH_SIGNINFO+"_recinfo_recinfolists";
  393. // 투석종류
  394. model.makeValue(xRecinfoPath + "_dialkindflag", rdo_dialkindflag.label);
  395. // APD종류
  396. var sApdKindFlag = model.getValue(xRecinfoPath+"_apdkindflag");
  397. if(sApdKindFlag != ""){
  398. model.makeValue(xRecinfoPath+"_apdkindflag",ds_init_M0130list_M0130.lookupExpr("cdid == '" + sApdKindFlag + "'", "cdnm"));
  399. }
  400. // 회사명
  401. var sCmpyCd = model.getValue(xRecinfoPath+"_cmpycd");
  402. if(sCmpyCd != ""){
  403. model.makeValue(xRecinfoPath+"_cmpycd",ds_init_M0131list_M0131.lookupExpr("cdid == '" + sCmpyCd + "'", "cdnm"));
  404. }
  405. // 투석액
  406. var sDialLiqdCd = model.getValue(xRecinfoPath+"_dialliqdcd");
  407. if(sDialLiqdCd != ""){
  408. model.makeValue(xRecinfoPath+"_dialliqdcd",ds_init_M0132list_M0132.lookupExpr("cdid == '" + sDialLiqdCd + "'", "cdnm"));
  409. }
  410. // Break Point
  411. var xBreakPointYnPath = Sign.XPATH_SIGNINFO + "_recinfo_pdinfospeclist_pdinfospec_breakpointyn";
  412. var sBreakPointYn = model.getValue(xBreakPointYnPath);
  413. switch(sBreakPointYn){
  414. case '1':
  415. model.makeValue(xBreakPointYnPath, "무"); break;
  416. case '2':
  417. model.makeValue(xBreakPointYnPath, "유"); break;
  418. }
  419. // 자가간호
  420. var sSelfCareYn = model.getValue(xRecinfoPath + "_selfcareyn");
  421. switch(sSelfCareYn){
  422. case '1':
  423. model.makeValue(xRecinfoPath + "_selfcareyn", "무"); break;
  424. case '2':
  425. model.makeValue(xRecinfoPath +"_selfcareyn", "유"); break;
  426. }
  427. // 헤파린
  428. var sHeparinYn = model.getValue(xRecinfoPath + "_heparinyn");
  429. switch(sHeparinYn){
  430. case '1':
  431. model.makeValue(xRecinfoPath + "_heparinyn", "무"); break;
  432. case '2':
  433. model.makeValue(xRecinfoPath + "_heparinyn", "유"); break;
  434. }
  435. // EPO
  436. var xEpoYnPath = Sign.XPATH_SIGNINFO + "_recinfo_epospeclist_epospec_epoyn";
  437. var sEpoYn = model.getValue(xEpoYnPath);
  438. switch(sEpoYn){
  439. case '1':
  440. model.makeValue(xEpoYnPath, "무"); break;
  441. case '2':
  442. model.makeValue(xEpoYnPath, "유"); break;
  443. }
  444. // 실시업무
  445. var xExecBizPath = Sign.XPATH_SIGNINFO + "_recinfo_bizexecspeclist_bizexecspec_execbiz";
  446. var sExecBiz = model.getValue(xExecBizPath);
  447. var sExecBizVal = sExecBiz.split(" ");
  448. var sExecBizStr = "";
  449. for(var i=0; i<sExecBizVal.length; i++){
  450. switch(sExecBizVal[i]){
  451. case '1':
  452. sExecBizStr = sExecBizStr + ",카테터 고정"; break;
  453. case '2':
  454. sExecBizStr = sExecBizStr + ",출구소독"; break;
  455. case '3':
  456. sExecBizStr = sExecBizStr + ",도관길들이기"; break;
  457. case '4':
  458. sExecBizStr = sExecBizStr + ",부종확인"; break;
  459. case '5':
  460. sExecBizStr = sExecBizStr + ",PET"; break;
  461. case '6':
  462. sExecBizStr = sExecBizStr + ",KT_V"; break;
  463. case '7':
  464. sExecBizStr = sExecBizStr + ",투석액 교환"; break;
  465. }
  466. }
  467. model.makeValue(xExecBizPath, sExecBizStr);
  468. // 교육내용
  469. var xEduCntsPath = Sign.XPATH_SIGNINFO + "_recinfo_bizexecspeclist_bizexecspec_educnts";
  470. var sEduCnts = model.getValue(xEduCntsPath);
  471. var sEduCntsVal = sEduCnts.split(" ");
  472. var sEduCntsStr = "";
  473. for(var i=0; i<sEduCntsVal.length; i++){
  474. switch(sEduCntsVal[i]){
  475. case '1':
  476. sEduCntsStr = sEduCntsStr + ",출구관리"; break;
  477. case '2':
  478. sEduCntsStr = sEduCntsStr + ",식이교육"; break;
  479. case '3':
  480. sEduCntsStr = sEduCntsStr + ",투약교육"; break;
  481. case '4':
  482. sEduCntsStr = sEduCntsStr + ",검사설명"; break;
  483. case '5':
  484. sEduCntsStr = sEduCntsStr + ",일상생활관리"; break;
  485. }
  486. }
  487. model.makeValue(xEduCntsPath, sEduCntsStr);
  488. }
  489. /**
  490. * _group :
  491. * _ver : 2007.06.08
  492. * _by : 김진아
  493. * _---------------------------------------------------
  494. * _type : function
  495. * _access : public
  496. * _desc : 복막투석 실시등록 리스트 조회 (복막투석 유지환자 리스트 더블 클릭 시)
  497. * _param :
  498. * _return :
  499. * _---------------------------------------------------
  500. */
  501. function fSrchPatHist(){
  502. // var iRow = grd_pdmatnpatinfo.row;
  503. var sSelPid = ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid"); //grd_pdmatnpatinfo.textmatrix(iRow, 1);
  504. ds_send.clearData();
  505. dsf_makeValue( ds, "send", "string", "" );
  506. dsf_makeValue( ds_send_reqdata, "pid", "string", sSelPid);
  507. dsf_makeValue( ds_send_reqdata, "recfromdd", "string", ds_main_condition.getColumn(0, "recfromdd"));
  508. model.makeValue("ds_send_reqdata_rectodd ", model.getValue("ds_main_condition_rectodd "));
  509. ds_main_rechistlist_rechistinfo.clearData();
  510. // submit("TRMND00802");
  511. var oParam = {};
  512. oParam.id = "TRMND00802";
  513. oParam.service = "dialapp.DialRec";
  514. oParam.method = "reqGetPDPatHist";
  515. oParam.inds = "req=ds_";
  516. oParam.outds = "ds_=rechistinfo";
  517. oParam.async = false;
  518. oParam.callback = "cf_TRMND00802";
  519. tranf_submit(oParam);
  520. /*
  521. function cf_TRMND00802(sSvcId, nErrorCode, sErrorMsg) {
  522. if(nErrorCode < 0) return;
  523. }
  524. function cf_TRMND00802(sSvcId, nErrorCode, sErrorMsg) {
  525. arErrorCode.push(sSvcId, nErrorCode);
  526. }
  527. arErrorCode.pop("TRMND00802") > -1
  528. arErrorCode.pop("TRMND00802") < 0
  529. */
  530. }
  531. /**
  532. * _group :
  533. * _ver : 2007.06.11
  534. * _by : 김진아
  535. * _---------------------------------------------------
  536. * _type : function
  537. * _access : public
  538. * _desc : 최근 복막투석 실시기록 조회 (신규등록 버튼 클릭 시)
  539. * _param :
  540. * _return :
  541. * _---------------------------------------------------
  542. */
  543. function fSrchPastPDInfo(){
  544. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "pid") == "") {
  545. sysf_messageBox("복막투석 유지환자를 선택한 후", "I", "신규등록을 할 수 있습니다.");
  546. return;
  547. }
  548. var sRecdd = grd_rechistinfo.textmatrix(1, 1); // 기록일자 (복막투석 실시리스트)
  549. var sRectm = grd_rechistinfo.textmatrix(1, 2); // 기록시간
  550. var sRecnm = grd_rechistinfo.textmatrix(1, 3); // 기록자
  551. var sPid = grd_rechistinfo.textmatrix(1, 4); // 등록번호
  552. grp_pdrecinfo.disabled = "false"; // 복막투석실시기록 활성화
  553. ds_send.clearData();
  554. dsf_makeValue( ds, "send", "string", "" );
  555. dsf_makeValue( ds_send_reqdata, "recdd", "string", sRecdd); // 기록일자
  556. dsf_makeValue( ds_send_reqdata, "rectm", "string", sRectm); // 기록시간
  557. dsf_makeValue( ds_send_reqdata, "recnm", "string", sRecnm); // 기록자
  558. dsf_makeValue( ds_send_reqdata, "pid", "string", sPid ); // 등록번호
  559. // ds_main_reclist_recinfo_recinfolists.clearData();
  560. ds_main_xmlformatlist_epospeclist.clearData();
  561. ds_main_xmlformatlist_insulinspeclist.clearData();
  562. // submit("TRMND00803", false);
  563. var oParam = {};
  564. oParam.id = "TRMND00803";
  565. oParam.service = "dialapp.DialRec";
  566. oParam.method = "reqGetPastPDInfo";
  567. oParam.inds = "req=ds_";
  568. oParam.outds = "ds_=recinfo ds_=recinfo ds_=recinfo";
  569. oParam.async = false;
  570. oParam.callback = "cf_TRMND00803";
  571. tranf_submit(oParam);
  572. /*
  573. function cf_TRMND00803(sSvcId, nErrorCode, sErrorMsg) {
  574. if(nErrorCode < 0) return;
  575. }
  576. function cf_TRMND00803(sSvcId, nErrorCode, sErrorMsg) {
  577. arErrorCode.push(sSvcId, nErrorCode);
  578. }
  579. arErrorCode.pop("TRMND00803") > -1
  580. arErrorCode.pop("TRMND00803") < 0
  581. */
  582. // 조회 된 데이터 실인스턴스에 매핑
  583. var sTmpNode = "dialkindflag apdkindflag vol cycleval concenval cmpycd dialliqdcd selfcareyn heparinyn";
  584. sTmpNode = sTmpNode.split(" ");
  585. for(var i=0; i<sTmpNode.length; i++) {
  586. ds_main_reclist_recinfo.setColumn( 0, "recinfolists/" + sTmpNode[i], model.getValue("ds_main_xmlformatlist_recinfolists/" + sTmpNode[i]));
  587. }
  588. copyNodeType("ds_main_reclist_recinfo_epospeclist_epospec", "ds_main_xmlformatlist_epospeclist_epospec");
  589. copyNodeType("ds_main_reclist_recinfo_insulinspeclist_insulinspec", "ds_main_xmlformatlist_insulinspeclist_insulinspec");
  590. // Default 설정
  591. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "dialkindflag") == ""){
  592. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "dialkindflag", "string", "1"); // 투석종류 Default 설정 (1 :CAPD)
  593. }
  594. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "selfcareyn") == ""){
  595. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "selfcareyn", "string", "1"); // 자가간호 Default 설정 (1 :무)
  596. }
  597. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "heparinyn") == ""){
  598. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "heparinyn", "string", "1"); // 헤파린 Default 설정 (1 :무)
  599. }
  600. if(ds_main_reclist_recinfo_epospeclist_epospec.getColumn(0, "epoyn") == ""){
  601. dsf_makeValue( ds_main_reclist_recinfo_epospeclist_epospec, "epoyn", "string", "1"); // EPO Default 설정 (1 :무)
  602. }
  603. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "dialkindflag") == "1"){ // 투석종류("1":CAPD 일 경우)
  604. cmb_apdkindflag.enable = false;
  605. grp_optapd.visible = false;
  606. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "apdkindflag", "string", "");
  607. }else{
  608. cmb_apdkindflag.enable = true;
  609. grp_optapd.visible = true;
  610. }
  611. if(ds_main_reclist_recinfo_epospeclist_epospec.getColumn(0, "epoyn") == "1"){ // EPO("1":무 일 경우)
  612. ipt_drugnm.enable = false;
  613. ipt_vol.enable = false;
  614. ipt_weektims.enable = false;
  615. }
  616. // 기록일시 설정
  617. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recid", "string", sysf_getUserId());
  618. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recnm", "string", sysf_getUserName());
  619. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recdd", "string", utlf_getCurrentDate()); // 기록일자
  620. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "rectm", "string", utlf_getCurrentTime().substr(0,4)); // 기록시간
  621. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "status", "string", "i"); // 상태값 설정 (insert)
  622. fClearChildNode("ds_main_reclist_recinfo_pdinfospeclist_pdinfospec"); // 복막투석정보 초기화
  623. fClearChildNode("ds_main_reclist_recinfo_bizexecspeclist_bizexecspec"); // 업무실시내역 등록 초기화
  624. //20090923-kys=======
  625. fGetDialLiqList();
  626. //20090923-kys==========
  627. //model.refresh();
  628. }
  629. /**
  630. * _group :
  631. * _ver : 2007.06.11
  632. * _by : 김진아
  633. * _---------------------------------------------------
  634. * _type : function
  635. * _access : public
  636. * _desc : 복막투석 실시기록 조회 (복막투석 실시등록 리스트 더블 클릭 시)
  637. * _param :
  638. * _return :
  639. * _---------------------------------------------------
  640. */
  641. function fSrchPDInfo(sRecHistRow){
  642. var sRecdd = ds_main_rechistlist_rechistinfo.getColumn(sRecHistRow, "recdd")); // 기록일자
  643. var sRectm = ds_main_rechistlist_rechistinfo.getColumn(sRecHistRow, "rectm")); // 기록시간간
  644. var sRecnm = ds_main_rechistlist_rechistinfo.getColumn(sRecHistRow, "recnm")); // 기록자
  645. var sPid = ds_main_rechistlist_rechistinfo.getColumn(sRecHistRow, "pid")); // 등록번호
  646. if(sRecHistRow == 0) { // title 클릭 시
  647. sysf_messageBox("복막투석 실시등록 내역을 정확히", "C002", "");
  648. return;
  649. } else {
  650. ds_send.clearData();
  651. dsf_makeValue( ds, "send", "string", "" );
  652. dsf_makeValue( ds_send_reqdata, "recdd", "string", sRecdd); // 기록일자
  653. dsf_makeValue( ds_send_reqdata, "rectm", "string", sRectm); // 기록시간
  654. dsf_makeValue( ds_send_reqdata, "recnm", "string", sRecnm); // 기록자
  655. dsf_makeValue( ds_send_reqdata, "pid", "string", sPid); // 등록번호
  656. // ds_main_reclist_recinfo_recinfolists.clearData();
  657. ds_main_reclist_recinfo_pdinfospeclist.clearData();
  658. ds_main_reclist_recinfo_epospeclist.clearData();
  659. ds_main_reclist_recinfo_insulinspeclist.clearData();
  660. ds_main_reclist_recinfo_bizexecspeclist.clearData();
  661. // submit("TRMND00804");
  662. var oParam = {};
  663. oParam.id = "TRMND00804";
  664. oParam.service = "dialapp.DialRec";
  665. oParam.method = "reqGetPastPDInfo";
  666. oParam.inds = "req=ds_";
  667. oParam.outds = "ds_=recinfo ds_=recinfo ds_=recinfo ds_=recinfo ds_=recinfo";
  668. oParam.async = false;
  669. oParam.callback = "cf_TRMND00804";
  670. tranf_submit(oParam);
  671. /*
  672. function cf_TRMND00804(sSvcId, nErrorCode, sErrorMsg) {
  673. if(nErrorCode < 0) return;
  674. }
  675. function cf_TRMND00804(sSvcId, nErrorCode, sErrorMsg) {
  676. arErrorCode.push(sSvcId, nErrorCode);
  677. }
  678. arErrorCode.pop("TRMND00804") > -1
  679. arErrorCode.pop("TRMND00804") < 0
  680. */
  681. grp_pdrecinfo.enable = true; // 복막투석실시기록 활성화
  682. if(ds_main_rechistlist_rechistinfo.getColumn(sRecHistRow, "signno")) != ""){ // 인증저장된 기록의 경우 임시저장버튼 비활성화
  683. btn_tmpsave.enable = false;
  684. }
  685. // 복막투석종류별 APD내역 그룹 활성화 여부 설정
  686. if(ds_main_reclist_recinfo_recinfolists.getColumn(0, "dialkindflag") == 1) { // CAPD
  687. grp_optapd.visible = false; // APD내역 그룹 비활성화
  688. cmb_apdkindflag.enable = false; // APD세부정보 콤보 비활성화
  689. ds_main_reclist_recinfo_recinfolists.setColumn( 0, "apdkindflag", "");
  690. } else { // APD
  691. grp_optapd.visible = true; // APD내역 그룹 활성화
  692. cmb_apdkindflag.enable = true; // APD세부정보 콤보 활성화
  693. }
  694. if(ds_main_reclist_recinfo_epospeclist_epospec.getColumn(0, "epoyn") == "1"){
  695. ipt_drugnm.enable = false;
  696. ipt_vol.enable = false;
  697. ipt_weektims.enable = false;
  698. }
  699. // 상태값 설정 (update)
  700. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "status", "string", "u");
  701. //20090923-kys=======
  702. fGetDialLiqList();
  703. //20090923-kys==========
  704. //model.refresh();
  705. }
  706. }
  707. /* ------------------------------------------------- */
  708. /* desc : Instance NodeCopy 하기 (SMMNP007.js 참조) */
  709. /* param : pModel - Model */
  710. /* tNode - Target Node */
  711. /* sNode - Source Node */
  712. /* return : */
  713. /* -------------------------------------------------- */
  714. function InstanceNodeCopy(pModel, tNode, sNode) {
  715. pModel.copyNode(tNode, sNode );
  716. }
  717. /* ------------------------------------------------- */
  718. /* desc : Instance NodeCopy 하기(SMMNP007.js 참조) */
  719. /* param : pModel - Model */
  720. /* tNode - Target Node */
  721. /* sNode - Source Node */
  722. /* return : */
  723. /* -------------------------------------------------- */
  724. function XmlDataCheck(XmlInstNm) {
  725. XmlInstNm = XmlInstNm.split(" ");
  726. var tNode = "";
  727. var sNode = "";
  728. for (var i=0; i < XmlInstNm.length; i++){
  729. tNode = "ds_main_reclist_recinfo/" + XmlInstNm[i];
  730. if (instance1.selectSingleNode(tNode).childNodes.length < 1) {
  731. sNode = "ds_main_xmlformatlist/" + XmlInstNm[i];
  732. InstanceNodeCopy(model, tNode, sNode);
  733. }
  734. }
  735. }
  736. /**
  737. * _group :
  738. * _ver : 2007.07.25 // 수정일자 : 2007.09.21
  739. * _by : 최경용 // 수정자 : 김진아
  740. * _---------------------------------------------------
  741. * _type : function
  742. * _access : public
  743. * _desc : 참여자 정보 팝업 조회
  744. * _param : originalNode
  745. * _param : copyNode
  746. * _return : "true"/"false"
  747. * _---------------------------------------------------
  748. */
  749. function fClickUserBtn(userflag){
  750. var jobkindcd = "11";
  751. //var deptcd = "2010702070"; // 인공신장실Unit 부서코드:"2010702070"
  752. //하드코드수정-20090416
  753. var deptcd = ds_code_codeinfo_codelist.getColumn(0, "cdid");
  754. //alert("deptcd = " + deptcd);
  755. var titlenm = "인공신장실 간호사 리스트";
  756. frmf_setParameter("SPMNN02100_deptcd" , deptcd);
  757. frmf_setParameter("SPMNN02100_jobkindcd", jobkindcd);
  758. frmf_setParameter("SPMNN02100_titlenm" , titlenm);
  759. frmf_modal("SPMNN02100", "", ""-"", "", "1", "", "", "", "", "", "", "", "M");
  760. var userid = frmf_getParameter("SPMNN02100_userid");
  761. var usernm = frmf_getParameter("SPMNN02100_usernm");
  762. if(userid != ""){
  763. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recid", "string", userid);
  764. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recnm", "string", usernm);
  765. } else{
  766. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recid", "string", "");
  767. dsf_makeValue( ds_main_reclist_recinfo_recinfolists, "recnm", "string", "");
  768. ipt_recid.setFocus();
  769. }
  770. frmf_setParameter("SPMNN02100_userid", "");
  771. frmf_setParameter("SPMNN02100_usernm", "");
  772. //ipt_recid.refresh();
  773. //ipt_recnm.refresh();
  774. }
  775. /**
  776. * _group :
  777. * _ver : 2009.09.23
  778. * _by : 김양수
  779. * _---------------------------------------------------
  780. * _type : function
  781. * _access : public
  782. * _desc : 투석액 조회(회사명선택시-콤보박스)
  783. * _param :
  784. * _param :
  785. * _return :
  786. * _---------------------------------------------------
  787. */
  788. function fGetChildCodeList(cd_grup_id_list, rslt_ref_list, supid){
  789. makeZbcResultRef();
  790. frmf_setParameter("cdgrupid", cd_grup_id_list);
  791. frmf_setParameter("supid", supid);
  792. // var success = submit("TRMND00807", "false", frmf_getParameterPath(), zbcResultRef);
  793. var oParam = {};
  794. oParam.id = "TRMND00807";
  795. oParam.service = "dialapp.DialRec";
  796. oParam.method = "reqGetChildCodeLists";
  797. oParam.inds = "req=ds_";
  798. oParam.outds = "ds_=${repeat_ref}";
  799. oParam.async = false;
  800. oParam.callback = "cf_TRMND00807";
  801. tranf_submit(oParam);
  802. /*
  803. function cf_TRMND00807(sSvcId, nErrorCode, sErrorMsg) {
  804. if(nErrorCode < 0) return;
  805. }
  806. function cf_TRMND00807(sSvcId, nErrorCode, sErrorMsg) {
  807. arErrorCode.push(sSvcId, nErrorCode);
  808. }
  809. arErrorCode.pop("TRMND00807") > -1
  810. arErrorCode.pop("TRMND00807") < 0
  811. */
  812. var sourceNode = instance1.selectNodes(zbcResultRef+"/"+cd_grup_id_list+"/"+cd_grup_id_list);
  813. removeM0132ResultRef();
  814. for(i=0; i<sourceNode.length; i++){
  815. model.duplicate(rslt_ref_list, sourceNode.item(i));
  816. }
  817. removeZbcResultRef();
  818. frmf_clearParameter("cdgrupid");
  819. frmf_clearParameter("supid");
  820. }
  821. ]]></Script>