SMMQR00100.xjs 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[var daychk = "";
  3. var anonybtn = "N";
  4. var adminchk = "";
  5. var jobposcd = "";
  6. var qiteam = "";
  7. var initYN = "";
  8. /**
  9. * @---------------------------------------------------
  10. * @desc : SMMQR00100_안전사고통합보고가 load될때 실행되는 function
  11. * @param :
  12. * @return :
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize(){
  16. //return;
  17. var dutplcecd = sysf_getUserInfo("dutplcecd");
  18. if(dutplcecd =="4071201000"){
  19. group1.btn_transadm.visible = true;
  20. group2.ipt_discvdt02.enable = true;
  21. group2.input01.enable = true;
  22. }else{
  23. group1.btn_transadm.vislble = false;
  24. group2.ipt_discvdt02.enable = false;
  25. group2.input01.enable = false;
  26. }
  27. initYN = "Y";
  28. var ano = "";
  29. if( !utlf_isNull(opener.frmf_getParameter("ano")) ){ //메뉴에서 open -> 신규, Popup -> 과거조회
  30. ano = opener.frmf_getParameter("ano");
  31. }
  32. ds_main_condition.setColumn(0, "acptno", ano);
  33. lf_mmbfGetDeptCodeComboList(ds_init_trgtorddept_dept, "O", "");
  34. lf_mmbfGetUserComboList(ds_init_trgtatdoct_usercombo, sysf_getUserInfo("dutplcecd"), "0330");
  35. lf_mmbfGetDeptCodeComboList(ds_main_wardlist_dept, "W", "");
  36. frmf_addComboItem("group2.cmb_wardcd", "전체", "-", "above");
  37. ds_main_condition.setColumn(0, "trgtwardcd", "-");
  38. ds_init_trgtorddept_dept.filter("deptcd != '2370100000'"); //건강증진센터
  39. ds_init_trgtorddept_dept.filter("deptcd != '2450000000'"); //모발이식센터
  40. ds_init_trgtorddept_dept.filter("deptcd != '2361500000'"); //임상시험센터
  41. ds_init_trgtorddept_dept.filter("deptcd != '6490000000'"); //임상연구보호센터
  42. ds_init_trgtorddept_dept.filter("deptcd != '2240200000'"); //구강악안면외과
  43. // 멀티 체크 코드 셋팅 초기화
  44. // 2.대상자사고발생진료과
  45. var sProp1="col=9,row=10,cellspacing=1,vcellspacing=4,itemWidth=-1,itemHeight=16,overflow=''";
  46. //group2.chk_trgtacctdept.setInitComp(sProp2, ds_init_trgtacctdept, "cdid", "cdnm", "fn_setTrgtacctdept");
  47. group2.chk_trgtacctdept.setInitComp(sProp1, ds_init_trgtorddept_dept, "deptcd", "depthngnm", "fn_setTrgtacctdept");
  48. // 3.사고발생관련직원
  49. var sProp2="col=3,row=2,cellspacing=200,vcellspacing=4,itemWidth=-1,itemHeight=20,overflow=''";
  50. group2.chk_accdempl.setInitComp(sProp2, ds_init_accdempl, "value", "label", "fn_setAccdempl");
  51. // 3.사고발생관련직원(의사)
  52. var sProp2="col=3,row=2,cellspacing=1,vcellspacing=4,itemWidth=-1,itemHeight=20,overflow=''";
  53. group2.chk_accdempldoc.setInitComp(sProp2, ds_init_accdempldoc, "value", "label", "fn_setAccdempldoc");
  54. // 3.사고발생관련직원(치과의사)
  55. var sProp2="col=3,row=2,cellspacing=1,vcellspacing=4,itemWidth=-1,itemHeight=20,overflow=''";
  56. group2.chk_accdempldentdoc.setInitComp(sProp2, ds_init_accdempldentdoc, "value", "label", "fn_setAccdempldentdoc");
  57. // 3.사고발생관련직원(의료기사)
  58. var sProp2="col=4,row=2,cellspacing=1,vcellspacing=4,itemWidth=-1,itemHeight=20,overflow=''";
  59. group2.chk_accdemplmedispec.setInitComp(sProp2, ds_init_accdemplmedispec, "value", "label", "fn_setAccdemplmedispec");
  60. // 3.사고발생 후 조치사항(유)
  61. var sProp2="col=8,row=2,cellspacing=1,vcellspacing=4,itemWidth=-1,itemHeight=20,overflow=''";
  62. group2.chk_accdacty.setInitComp(sProp2, ds_init_accdacty, "value", "label", "fn_setAccdacty");
  63. // 4. 원인분석 및 개선 방안 구분
  64. var sProp2="col=8,row=2,cellspacing=10,vcellspacing=4,itemWidth=-1,itemHeight=20,overflow=''";
  65. group2.chk_causgubun.setInitComp(sProp2, ds_init_causgubun, "value", "label", "fn_setCausgubun");
  66. var arrParam = [
  67. {dsNm: "ds_init_accdserdiaggrde_M0426", cdGrpId: "M0426"} //3.사고정보_안전사건 단계
  68. //,{dsNm: "ds_init_trgtmanflag_M0425", cdGrpId: "M0425"} //2.사고 대상자 정보_대상자 정보
  69. ] // 안전사건 단계
  70. appf_getCodeList(arrParam);
  71. if( utlf_isNull(ds_main_condition.getColumn(0, "acptno")) ){ //신규작성일 경우
  72. var rtnparam = utlf_transNullToEmpty(opener.frmf_getParameter("SMMQR00100_PARAM")); // Main에서 open.
  73. var rtnparam2 = utlf_transNullToEmpty(opener.frmf_getParameter("SMMQR00100_PARAM2")); // Main에서 open.
  74. if ( !utlf_isNull(rtnparam.getTrim()) ){
  75. rtnparam = rtnparam.split("▦");
  76. if( rtnparam[10] == "I" ){
  77. ds_main_condition.setColumn(0, "trgtmanflag", "01"); //입원환자
  78. }else if( rtnparam[10] == "O" ){
  79. ds_main_condition.setColumn(0, "trgtmanflag", "02"); //외래
  80. }else if( rtnparam[10] == "E" ){
  81. ds_main_condition.setColumn(0, "trgtmanflag", "03"); //응급의료센터환자
  82. }else{
  83. ds_main_condition.setColumn(0, "trgtmanflag", "06"); //기타
  84. }
  85. group2_cmb_trgtmanflag_onitemchanged();
  86. ds_main_condition.setColumn(0, "trgtid", rtnparam[0]);
  87. ds_main_condition.setColumn(0, "trgtnm", rtnparam[1]);
  88. ds_main_condition.setColumn(0, "trgtorddept", rtnparam[2]);
  89. //ds_main_condition.setColumn(0, "trgtdiagcdnm", rtnparam[4]);
  90. //ds_main_condition.setColumn(0, "trgtdiagcd", rtnparam[5]);
  91. ds_main_condition.setColumn(0, "trgtsextext", rtnparam[6]);
  92. ds_main_condition.setColumn(0, "trgtage", rtnparam[7]); // 이부분 교육
  93. ds_main_condition.setColumn(0, "trgtwardcd", rtnparam[8]);
  94. group2_cmb_trgtorddept_onitemchanged();
  95. ds_main_condition.setColumn(0, "trgtroom", rtnparam[9]);
  96. ds_main_condition.setColumn(0, "trgtatdoct", rtnparam[3]);
  97. ds_main_diag_conditem_conditem.addRow();
  98. ds_main_diag_conditem_conditem.setColumn(0,"diagcd",rtnparam[5]);
  99. ds_main_diag_conditem_conditem.setColumn(0,"diagnm",rtnparam[4]);
  100. } else if( !utlf_isNull(rtnparam2.getTrim()) ){
  101. rtnparam2 = rtnparam2.split("▦");
  102. ds_send_patinfo.setColumn(0, "pid", rtnparam2[0]);
  103. ds_send_patinfo.setColumn(0, "orddd", rtnparam2[1]);
  104. ds_send_patinfo.setColumn(0, "cretno", rtnparam2[2]);
  105. ds_send_patinfo.setColumn(0, "ordtype", rtnparam2[3]);
  106. ds_send_patinfo.setColumn(0, "oprsrvno",rtnparam2[4]);
  107. ///////////////////////////////////////////////////////////////////////////////////////////////
  108. // 환자정보 조회
  109. ///////////////////////////////////////////////////////////////////////////////////////////////
  110. var oParam = {};
  111. oParam.id = "TRMQR00108";
  112. oParam.service = "qiapp.SafeAcdMngt";
  113. oParam.method = "reqGetPatInfo";
  114. oParam.inds = "req=ds_send_patinfo";
  115. oParam.outds = "ds_temp_initparam=initparam";
  116. oParam.async = false;
  117. oParam.callback = "cf_TRMQR00108";
  118. tranf_submit(oParam);
  119. if( arErrorCode.pop("TRMQR00108") > -1 ) {
  120. ds_main_condition.setColumn(0, "trgtmanflag", ds_temp_initparam.getColumn(0, "trgtmanflag")); //입원환자
  121. group2_cmb_trgtmanflag_onitemchanged();
  122. ds_main_condition.setColumn(0, "trgtid", ds_temp_initparam.getColumn(0, "trgtid"));
  123. ds_main_condition.setColumn(0, "trgtnm", ds_temp_initparam.getColumn(0, "trgtnm"));
  124. ds_main_condition.setColumn(0, "trgtorddept", ds_temp_initparam.getColumn(0, "trgtorddept"));
  125. //ds_main_condition.setColumn(0, "trgtdiagcdnm", ds_temp_initparam.getColumn(0, "trgtdiagcdnm"));
  126. //ds_main_condition.setColumn(0, "trgtdiagcd", ds_temp_initparam.getColumn(0, "trgtdiagcd"));
  127. ds_main_condition.setColumn(0, "trgtsextext", ds_temp_initparam.getColumn(0, "trgtsextext"));
  128. ds_main_condition.setColumn(0, "trgtage", ds_temp_initparam.getColumn(0, "trgtage"));
  129. ds_main_condition.setColumn(0, "trgtwardcd", ds_temp_initparam.getColumn(0, "trgtwardcd"));
  130. group2_cmb_trgtorddept_onitemchanged();
  131. ds_main_condition.setColumn(0, "trgtroom", ds_temp_initparam.getColumn(0, "trgtroom"));
  132. ds_main_condition.setColumn(0, "trgtatdoct", ds_temp_initparam.getColumn(0, "trgtatdoct"));
  133. }
  134. }
  135. ///////////////////////////////////////////////////////////////////////////////////////////////
  136. // 보고자정보 경우
  137. ///////////////////////////////////////////////////////////////////////////////////////////////
  138. var oParam = {};
  139. oParam.id = "TRMQR00100";
  140. oParam.service = "qiapp.SafeAcdMngt";
  141. oParam.method = "reqGetUserInfo";
  142. oParam.inds = "detlinfo=ds_main_condition req=ds_send_data3";
  143. oParam.outds = "ds_main_userinfo=userinfo ds_main_wardcd=wardcd ds_main_roomcd=roomcd";
  144. oParam.async = false;
  145. //oParam.callback = "cf_TRMQR00100";
  146. tranf_submit(oParam);
  147. ds_main_condition.setColumn(0, "reptid", ds_main_userinfo.getColumn(0, "reptid"));
  148. ds_main_condition.setColumn(0, "reptnm", ds_main_userinfo.getColumn(0, "reptnm"));
  149. ds_main_condition.setColumn(0, "reptjobkind", ds_main_userinfo.getColumn(0, "reptjobkind"));
  150. ds_main_condition.setColumn(0, "reptjobkindtext", ds_main_userinfo.getColumn(0, "reptjobkindtext"));
  151. ds_main_condition.setColumn(0, "reptdutdept", ds_main_userinfo.getColumn(0, "reptdutdept"));
  152. ds_main_condition.setColumn(0, "reptdutdepttext", ds_main_userinfo.getColumn(0, "reptdutdepttext"));
  153. ds_main_condition.setColumn(0, "reptcntctel", ds_main_userinfo.getColumn(0, "reptcntctel"));
  154. ds_main_condition.setColumn(0, "reptdutyeartot", ds_main_userinfo.getColumn(0, "reptdutyeartot"));
  155. ds_main_condition.setColumn(0, "reptdutmonthtot", ds_main_userinfo.getColumn(0, "reptdutmonthtot"));
  156. //ds_main_condition.setColumn(0, "reptdutyearno", ds_main_userinfo.getColumn(0, "reptdutyearno"));
  157. //ds_main_condition.setColumn(0, "reptposdeptcd", ds_main_userinfo.getColumn(0, "reptposdeptcd"));
  158. //입력항목 초기화
  159. group2_radio02_onitemchanged();
  160. //익명보고 초기화
  161. ds_main_condition.setColumn(0, "anonyyn","N");
  162. }else{
  163. ///////////////////////////////////////////////////////////////////////////////////////////////
  164. //조회일 경우
  165. ///////////////////////////////////////////////////////////////////////////////////////////////
  166. //trace("조회");
  167. var oParam = {};
  168. oParam.id = "TRMQR00102";
  169. oParam.service = "qiapp.SafeAcdMngt";
  170. oParam.method = "reqGetReptInfoNewBw";
  171. oParam.inds = "acptno=ds_main_condition";
  172. oParam.outds = "ds_main_condition=recinfo ds_main_condition_fallinfo=fallinfo ds_main_condition_ordcureinfo=ordcureinfo ds_main_condition_oprtinfo=oprtinfo ds_main_condition_mediinfo=mediinfo ds_main_condition_tnsinfo=transfsinfo ds_main_condition_examinfo=examinfo ds_main_condition_etcinfo=etcinfo";
  173. oParam.async = false;
  174. //oParam.callback = "cf_TRMQR00102";
  175. tranf_submit(oParam);
  176. if(ds_main_condition.rowcount > 0){
  177. if(ds_main_condition.getColumn(0,"status") == "20" ){
  178. group1.btn_save.enable = false;
  179. group1.btn_trans.enable = false;
  180. }else{
  181. group1.btn_save.enable = true;
  182. group1.btn_trans.enable = true;
  183. }
  184. }
  185. }
  186. //ds_main_condition.copyData(ds_main_condition_temp);
  187. frmf_inputEnterKey("group2.radio1", "onitemchanged", new ItemChangeEventInfo );
  188. frmf_inputEnterKey("group2.cmb_trgtorddept", "onitemchanged", new ItemChangeEventInfo );
  189. group2_cmb_trgtorddept_onitemchanged();
  190. if(!utlf_isNull(ds_main_condition.getColumn(0, "trgtroom"))){
  191. ds_main_roomcd.filter("nm == " + ds_main_condition.getColumn(0, "trgtroom"));
  192. if(ds_main_roomcd.rowcount == 0){
  193. ds_main_roomcd.addRow();
  194. ds_main_roomcd.setColumn(0, "cd", ds_main_condition.getColumn(0, "trgtroom"));
  195. ds_main_roomcd.setColumn(0, "nm", ds_main_condition.getColumn(0, "trgtroom"));
  196. ds_main_roomcd.setColumn(0, "wd", ds_main_condition.getColumn(0, "trgtroom"));
  197. }
  198. ds_main_roomcd.filter("");
  199. }
  200. //멀티 체크 코드 셋팅
  201. fn_getTrgtacctdept();
  202. fn_getAccdempl();
  203. fn_getAccdempldoc();
  204. fn_getAccdempldentdoc();
  205. fn_getAccdemplmedispec();
  206. fn_getAccdacty()
  207. fn_getCausgubun()
  208. var sParamObj = new Object();
  209. //내원시 진단명
  210. if( !utlf_isNull(ds_main_condition.getColumn(0, "trgtdiag")) ){
  211. lf_convertXmlToDs(ds_main_condition.getColumn(0, "trgtdiag"), sParamObj); //ds_data_conditem(ds_tmp_reptinfo_recinfo, ds_main_admininfo, ds_send_report_recinfo)
  212. if( !utlf_isNull(this.objects["ds_data_conditem"]) ){
  213. ds_main_diag_conditem_conditem.copyData(ds_data_conditem);
  214. }
  215. }
  216. //내원시 기저질호
  217. if( !utlf_isNull(ds_main_condition.getColumn(0, "trgtdise")) ){
  218. lf_convertXmlToDs(ds_main_condition.getColumn(0, "trgtdise"), sParamObj); //ds_data_casanalist(ds_tmp_reptinfo_recinfo, ds_main_admininfo, ds_send_report_recinfo)
  219. if( !utlf_isNull(this.objects["ds_data_casanalist"]) ){
  220. ds_main_dise_casanalist_casanalist.copyData(ds_data_casanalist);
  221. }
  222. }
  223. initYN = "";
  224. //익명보고 처리
  225. fanonyynBk();
  226. if( ds_main_condition.getColumn(0, "anonyyn") == "Y" ){ //익명보고
  227. fCheckgrade();
  228. }
  229. //QI실 저장
  230. ds_main_condition.addColumn("statusadmin", "string", 256 );
  231. }
  232. function cf_TRMQR00108(sSvcId, nErrorCode, sErrorMsg) {
  233. arErrorCode.push(sSvcId, nErrorCode);
  234. }
  235. /** code function **********************************************************************************/
  236. /******************************************************************
  237. * Argument :
  238. * Description : 사고대상자정보 사고발생진료과 bind set
  239. ******************************************************************/
  240. function fn_setTrgtacctdept(){
  241. var getTrgtacctdept = String(group2.chk_trgtacctdept.getData()).replace(",", " ");
  242. ds_main_condition.setColumn(0, "trgtacctdept", getTrgtacctdept);
  243. }
  244. /******************************************************************
  245. * Argument :
  246. * Description : 사고대상자정보 사고발생진료과 DBget
  247. ******************************************************************/
  248. function fn_getTrgtacctdept(){
  249. if(!utlf_isNull(ds_main_condition.getColumn(0, "trgtacctdept"))) {
  250. var trgtacctdeptList = ds_main_condition.getColumn(0, "trgtacctdept").split(" ");
  251. group2.chk_trgtacctdept.setData(trgtacctdeptList);
  252. }
  253. }
  254. /******************************************************************
  255. * Argument :
  256. * Description : 사고정보 관련직원 bind set
  257. ******************************************************************/
  258. function fn_setAccdempl(chk){
  259. var getAccdempl = String(group2.chk_accdempl.getData()).replace(",", " ");
  260. ds_main_condition.setColumn(0, "accdempl", getAccdempl);
  261. //fn_ctrlEnableChk("chk_accdempl");
  262. if( initYN == "Y" && !utlf_isSearchString(chk, "chk") ){
  263. fn_ctrlEnableChk("chk_accdempl");
  264. }
  265. if( utlf_isNull(initYN) ){
  266. fn_ctrlEnableChk("chk_accdempl");
  267. }
  268. }
  269. /******************************************************************
  270. * Argument :
  271. * Description : 사고정보 관련직원 DBget
  272. ******************************************************************/
  273. function fn_getAccdempl(){
  274. if(!utlf_isNull(ds_main_condition.getColumn(0, "accdempl"))) {
  275. var accdemplList = ds_main_condition.getColumn(0, "accdempl").split(" ");
  276. group2.chk_accdempl.setData(accdemplList);
  277. }
  278. }
  279. /******************************************************************
  280. * Argument :
  281. * Description : 사고정보 관련직원(의사) bind set
  282. ******************************************************************/
  283. function fn_setAccdempldoc(){
  284. var getAccdempldoc = String(group2.chk_accdempldoc.getData()).replace(",", " ");
  285. ds_main_condition.setColumn(0, "accdempldoc", getAccdempldoc);
  286. }
  287. /******************************************************************
  288. * Argument :
  289. * Description : 사고정보 관련직원(의사) DBget
  290. ******************************************************************/
  291. function fn_getAccdempldoc(){
  292. if(!utlf_isNull(ds_main_condition.getColumn(0, "accdempldoc"))) {
  293. var accdempldocList = ds_main_condition.getColumn(0, "accdempldoc").split(" ");
  294. group2.chk_accdempldoc.setData(accdempldocList);
  295. }
  296. }
  297. /******************************************************************
  298. * Argument :
  299. * Description : 사고정보 관련직원(치과의사) bind set
  300. ******************************************************************/
  301. function fn_setAccdempldentdoc(){
  302. var getAccdempldentdoc = String(group2.chk_accdempldentdoc.getData()).replace(",", " ");
  303. ds_main_condition.setColumn(0, "accdempldentdoc", getAccdempldentdoc);
  304. }
  305. /******************************************************************
  306. * Argument :
  307. * Description : 사고정보 관련직원(치과의사) DBget
  308. ******************************************************************/
  309. function fn_getAccdempldentdoc(){
  310. if(!utlf_isNull(ds_main_condition.getColumn(0, "accdempldentdoc"))) {
  311. var accdempldentdocList = ds_main_condition.getColumn(0, "accdempldentdoc").split(" ");
  312. group2.chk_accdempldentdoc.setData(accdempldentdocList);
  313. }
  314. }
  315. /******************************************************************
  316. * Argument :
  317. * Description : 사고정보 관련직원(의료기사) bind set
  318. ******************************************************************/
  319. function fn_setAccdemplmedispec(chk){
  320. var getAccdemplmedispec = String(group2.chk_accdemplmedispec.getData()).replace(",", " ");
  321. ds_main_condition.setColumn(0, "accdemplmedispec", getAccdemplmedispec);
  322. if( initYN == "Y" && !utlf_isSearchString(chk, "chk") ){
  323. fn_ctrlEnableChk("chk_accdemplmedispec");
  324. }
  325. if( utlf_isNull(initYN) ){
  326. fn_ctrlEnableChk("chk_accdemplmedispec");
  327. }
  328. }
  329. /******************************************************************
  330. * Argument :
  331. * Description : 사고정보 관련직원(의료기사) DBget
  332. ******************************************************************/
  333. function fn_getAccdemplmedispec(){
  334. if(!utlf_isNull(ds_main_condition.getColumn(0, "accdemplmedispec"))) {
  335. var accdemplmedispecList = ds_main_condition.getColumn(0, "accdemplmedispec").split(" ");
  336. group2.chk_accdemplmedispec.setData(accdemplmedispecList);
  337. }
  338. }
  339. /******************************************************************
  340. * Argument :
  341. * Description : 사고발생 후 조치사항(유) bind set
  342. ******************************************************************/
  343. function fn_setAccdacty(chk){
  344. var getAccdacty = String(group2.chk_accdacty.getData()).replace(",", " ");
  345. ds_main_condition.setColumn(0, "accdacty", getAccdacty);
  346. //fn_ctrlEnableChk("rdb_accddngrdgree01"); //사고발생후 조치사항
  347. if( initYN == "Y" && !utlf_isSearchString(chk, "chk") ){
  348. fn_ctrlEnableChk("rdb_accddngrdgree01");
  349. }
  350. if( utlf_isNull(initYN) ){
  351. fn_ctrlEnableChk("rdb_accddngrdgree01");
  352. }
  353. }
  354. /******************************************************************
  355. * Argument :
  356. * Description : 사고발생 후 조치사항(유) DBget
  357. ******************************************************************/
  358. function fn_getAccdacty(){
  359. if(!utlf_isNull(ds_main_condition.getColumn(0, "accdacty"))) {
  360. var accdactyList = ds_main_condition.getColumn(0, "accdacty").split(" ");
  361. group2.chk_accdacty.setData(accdactyList);
  362. }
  363. }
  364. /******************************************************************
  365. * Argument :
  366. * Description : 원인분석 및 개선 방안 구분 bind set
  367. ******************************************************************/
  368. function fn_setCausgubun(chk){
  369. var getCausgubun = String(group2.chk_causgubun.getData()).replace(",", " ");
  370. ds_main_condition.setColumn(0, "causgubun", getCausgubun);
  371. if( initYN == "Y" && !utlf_isSearchString(chk, "chk") ){
  372. fn_ctrlEnableChk("chk_causgubun");
  373. }
  374. if( utlf_isNull(initYN) ){
  375. fn_ctrlEnableChk("chk_causgubun");
  376. }
  377. }
  378. /******************************************************************
  379. * Argument :
  380. * Description : 원인분석 및 개선 방안 구분 DBget
  381. ******************************************************************/
  382. function fn_getCausgubun(){
  383. if(!utlf_isNull(ds_main_condition.getColumn(0, "causgubun"))) {
  384. var causgubunList = ds_main_condition.getColumn(0, "causgubun").split(" ");
  385. group2.chk_causgubun.setData(causgubunList);
  386. }
  387. }
  388. /******************************************************************
  389. * Argument :
  390. * Description : 익명보고 데이터 백업
  391. ******************************************************************/
  392. function fanonyynBk(){
  393. ds_temp.setColumn(0, "reptid", ds_main_condition.getColumn(0, "reptid"));
  394. ds_temp.setColumn(0, "reptnm", ds_main_condition.getColumn(0, "reptnm"));
  395. ds_temp.setColumn(0, "reptjobkindtext", ds_main_condition.getColumn(0, "reptjobkindtext"));
  396. ds_temp.setColumn(0, "reptdutdepttext", ds_main_condition.getColumn(0, "reptdutdepttext"));
  397. ds_temp.setColumn(0, "reptcntctel", ds_main_condition.getColumn(0, "reptcntctel"));
  398. ds_temp.setColumn(0, "reptdutyeartot", ds_main_condition.getColumn(0, "reptdutyeartot"));
  399. ds_temp.setColumn(0, "reptdutmonthtot", ds_main_condition.getColumn(0, "reptdutmonthtot"));
  400. ds_temp.setColumn(0, "reptdutyearcur", ds_main_condition.getColumn(0, "reptdutyearcur"));
  401. ds_temp.setColumn(0, "reptdutmonthcur", ds_main_condition.getColumn(0, "reptdutmonthcur"));
  402. }
  403. function fanonyynRollBk(){
  404. ds_main_condition.setColumn(0, "reptid", ds_temp.getColumn(0, "reptid"));
  405. ds_main_condition.setColumn(0, "reptnm", ds_temp.getColumn(0, "reptnm"));
  406. ds_main_condition.setColumn(0, "reptjobkindtext", ds_temp.getColumn(0, "reptjobkindtext"));
  407. ds_main_condition.setColumn(0, "reptdutdepttext", ds_temp.getColumn(0, "reptdutdepttext"));
  408. ds_main_condition.setColumn(0, "reptcntctel", ds_temp.getColumn(0, "reptcntctel"));
  409. ds_main_condition.setColumn(0, "reptdutyeartot", ds_temp.getColumn(0, "reptdutyeartot"));
  410. ds_main_condition.setColumn(0, "reptdutmonthtot", ds_temp.getColumn(0, "reptdutmonthtot"));
  411. ds_main_condition.setColumn(0, "reptdutyearcur", ds_temp.getColumn(0, "reptdutyearcur"));
  412. ds_main_condition.setColumn(0, "reptdutmonthcur", ds_temp.getColumn(0, "reptdutmonthcur"));
  413. }
  414. /******************************************************************
  415. * Argument :
  416. * Description : 익명보고
  417. ******************************************************************/
  418. function fCheckgrade(){
  419. // alert("fCheckgrade");
  420. if( ds_main_condition.getColumn(0, "anonyyn") == "Y" ){
  421. ds_temp.setColumn(0, "reptid", ds_main_condition.getColumn(0, "reptid"));
  422. ds_temp.setColumn(0, "reptnm", ds_main_condition.getColumn(0, "reptnm"));
  423. ds_temp.setColumn(0, "reptjobkindtext", ds_main_condition.getColumn(0, "reptjobkindtext"));
  424. ds_temp.setColumn(0, "reptdutdepttext", ds_main_condition.getColumn(0, "reptdutdepttext"));
  425. ds_temp.setColumn(0, "reptcntctel", ds_main_condition.getColumn(0, "reptcntctel"));
  426. ds_temp.setColumn(0, "reptdutyeartot", ds_main_condition.getColumn(0, "reptdutyeartot"));
  427. ds_temp.setColumn(0, "reptdutmonthtot", ds_main_condition.getColumn(0, "reptdutmonthtot"));
  428. ds_temp.setColumn(0, "reptdutyearcur", ds_main_condition.getColumn(0, "reptdutyearcur"));
  429. ds_temp.setColumn(0, "reptdutmonthcur", ds_main_condition.getColumn(0, "reptdutmonthcur"));
  430. ds_main_condition.setColumn(0, "reptid", "");
  431. ds_main_condition.setColumn(0, "reptnm", "");
  432. ds_main_condition.setColumn(0, "reptjobkindtext", "");
  433. ds_main_condition.setColumn(0, "reptdutdepttext", "");
  434. ds_main_condition.setColumn(0, "reptcntctel", "");
  435. ds_main_condition.setColumn(0, "reptdutyeartot", "");
  436. ds_main_condition.setColumn(0, "reptdutmonthtot", "");
  437. ds_main_condition.setColumn(0, "reptdutyearcur", "");
  438. ds_main_condition.setColumn(0, "reptdutmonthcur", "");
  439. }if( ds_main_condition.getColumn(0, "anonyyn") == "N" ){
  440. ds_main_condition.setColumn(0, "reptid", ds_temp.getColumn(0, "reptid"));
  441. ds_main_condition.setColumn(0, "reptnm", ds_temp.getColumn(0, "reptnm"));
  442. ds_main_condition.setColumn(0, "reptjobkindtext", ds_temp.getColumn(0, "reptjobkindtext"));
  443. ds_main_condition.setColumn(0, "reptdutdepttext", ds_temp.getColumn(0, "reptdutdepttext"));
  444. ds_main_condition.setColumn(0, "reptcntctel", ds_temp.getColumn(0, "reptcntctel"));
  445. ds_main_condition.setColumn(0, "reptdutyeartot", ds_temp.getColumn(0, "reptdutyeartot"));
  446. ds_main_condition.setColumn(0, "reptdutmonthtot", ds_temp.getColumn(0, "reptdutmonthtot"));
  447. ds_main_condition.setColumn(0, "reptdutyearcur", ds_temp.getColumn(0, "reptdutyearcur"));
  448. ds_main_condition.setColumn(0, "reptdutmonthcur", ds_temp.getColumn(0, "reptdutmonthcur"));
  449. }
  450. }
  451. /******************************************************************
  452. * Argument :
  453. * Description : 저장
  454. ******************************************************************/
  455. function fSave(){
  456. //저장 전 데이터 생성
  457. //
  458. //ds_main_condition.setColumn(0, "status", "10"); //저장상태(M0640)10(저장) 20(전송) 30(수정요청) 40(삭제)
  459. //ds_main_condition.setColumn(0, "reptdd", utlf_getCurrentDate()); //보고일자
  460. if( !utlf_isNull(ds_main_condition.getColumn(0, "acptno")) ){
  461. trace("수정");
  462. }else{
  463. if(ds_main_condition.getColumn(0, "statusadmin") !="Y"){
  464. ds_main_condition.setColumn(0, "reptdd", utlf_getCurrentDate());
  465. ds_main_condition.setColumn(0, "repttm", utlf_getCurrentTime().substr(0,4));
  466. }
  467. }
  468. //ds_main_condition.setColumn(0, "reptdd", utlf_getCurrentDate());
  469. //ds_main_condition.setColumn(0, "repttm", utlf_getCurrentTime().substr(0,4));
  470. /*
  471. if(ds_main_condition.getColumn(0, "status") =="20"){
  472. ds_main_condition.setColumn(0, "reptdd", utlf_getCurrentDate());
  473. ds_main_condition.setColumn(0, "repttm", utlf_getCurrentTime().substr(0,4));
  474. }else{
  475. ds_main_condition.setColumn(0, "reptdd", "");
  476. ds_main_condition.setColumn(0, "repttm", "");
  477. }
  478. */
  479. if(ds_main_condition.getColumn(0, "trgtsextext") == '여자'){
  480. ds_main_condition.setColumn(0, "trgtsex", "F");
  481. }else{
  482. ds_main_condition.setColumn(0, "trgtsex", "M");
  483. }
  484. //익명보고 시 보고자정보 셋팅
  485. fanonyynRollBk();
  486. //
  487. //저장 전 필수항목
  488. //
  489. if ( utlf_isNull(ds_main_condition.getColumn(0, "trgtmanflag")) ){
  490. sysf_messageBox("대상자 구분은", "I003");
  491. return false;
  492. }
  493. if ( utlf_isNull(ds_main_condition.getColumn(0, "accdgenrdd")) ){
  494. sysf_messageBox("발생일자", "I003");
  495. return false;
  496. }
  497. if ( utlf_isNull(ds_main_condition.getColumn(0, "accdgenrtm")) ){
  498. sysf_messageBox("발생시간", "I003");
  499. return false;
  500. }
  501. if ( ds_main_condition.getColumn(0, "accdgenrtm").length != 4 || !utlf_isNum(ds_main_condition.getColumn(0, "accdgenrtm")) ){
  502. sysf_messageBox("발생시간은 숫자 4자리로 입력하시기 바랍니다");
  503. return false;
  504. }
  505. if ( utlf_isNull(ds_main_condition.getColumn(0, "accddiscvdd")) ){
  506. sysf_messageBox("발견일자", "I003");
  507. return false;
  508. }
  509. if ( utlf_isNull(ds_main_condition.getColumn(0, "accddiscvtm")) ){
  510. sysf_messageBox("발견시간", "I003");
  511. return false;
  512. }
  513. if ( ds_main_condition.getColumn(0, "accddiscvtm").length != 4 || !utlf_isNum(ds_main_condition.getColumn(0, "accddiscvtm")) ){
  514. sysf_messageBox("발견시간은 숫자 4자리로 입력하시기 바랍니다");
  515. return false;
  516. }
  517. if ( utlf_isNull(ds_main_condition.getColumn(0, "accdplce")) ){
  518. sysf_messageBox("발생장소는", "I003");
  519. return false;
  520. }
  521. if ( utlf_isNull(ds_main_condition.getColumn(0, "accdserdiaggrde")) ){
  522. sysf_messageBox("안전사건 단계는", "I003");
  523. return false;
  524. }
  525. if ( utlf_isNull(ds_main_condition.getColumn(0, "accddngrdgree")) ){
  526. sysf_messageBox("위해정도는", "I003");
  527. return false;
  528. }
  529. if ( utlf_isNull(ds_main_condition.getColumn(0, "lrg")) ){
  530. sysf_messageBox("안전사건 종류는", "I003");
  531. return false;
  532. }
  533. if ( utlf_isNull(ds_main_condition.getColumn(0, "accdsitu")) ){
  534. sysf_messageBox("사고발생당시 상황, 경위서내용는", "I003");
  535. return false;
  536. }
  537. if ( utlf_isNull(ds_main_condition.getColumn(0, "accdcaus")) ){
  538. sysf_messageBox("사고의원인", "I003");
  539. return false;
  540. }
  541. if( !utlf_isNull(ds_main_diag_conditem_conditem.getColumnInfo("dsvaluepath")) ){
  542. ds_main_diag_conditem_conditem.enableevent = false;
  543. ds_main_diag_conditem_conditem.updatecontrol = false;
  544. ds_main_diag_conditem_conditem.deleteColumn("dsvaluepath");
  545. ds_main_diag_conditem_conditem.updatecontrol = true;
  546. ds_main_diag_conditem_conditem.enableevent = true;
  547. }
  548. if( !utlf_isNull(ds_main_dise_casanalist_casanalist.getColumnInfo("dsvaluepath")) ){
  549. ds_main_dise_casanalist_casanalist.enableevent = false;
  550. ds_main_dise_casanalist_casanalist.updatecontrol = false;
  551. ds_main_dise_casanalist_casanalist.deleteColumn("dsvaluepath");
  552. ds_main_dise_casanalist_casanalist.updatecontrol = true;
  553. ds_main_dise_casanalist_casanalist.enableevent = true;
  554. }
  555. if( ds_main_diag_conditem_conditem.rowcount > 0 ){
  556. var ds_conditem_XML = "<conditem><conditem><diagcd/><diagnm/></conditem></conditem>";
  557. var sParamObjArr = [{ds: "ds_main_diag_conditem_conditem", path:"conditem/conditem", filter: ""}];
  558. var ds_conditem_XML_RSLT= lf_convertDsToXml(sParamObjArr,ds_conditem_XML);
  559. ds_main_condition.setColumn(0, "trgtdiag", ds_conditem_XML_RSLT); //instance1.selectNodesXml("/root/main/admininfo/prescond/conditem"));
  560. }else{
  561. //ds_main_condition.setColumn(0, "trgtdiag", "<conditem/>"); //instance1.selectNodesXml("/root/main/admininfo/prescond/conditem"));
  562. ds_main_condition.setColumn(0, "trgtdiag", "");
  563. }
  564. //ds_main_condition.setColumn(0, "trgtdiag", "");
  565. if( ds_main_dise_casanalist_casanalist.rowcount > 0 ){
  566. var ds_casanalist_XML = "<casanalist><casanalist><diagcd/><diagnm/></casanalist></casanalist>";
  567. var sParamObjArr = [{ds: "ds_main_dise_casanalist_casanalist", path:"casanalist/casanalist", filter: ""}];
  568. var ds_casanalist_XML_RSLT= lf_convertDsToXml(sParamObjArr,ds_casanalist_XML);
  569. ds_main_condition.setColumn(0, "trgtdise", ds_casanalist_XML_RSLT); //instance1.selectNodesXml("/root/main/admininfo/prescond/conditem"));
  570. }else{
  571. //ds_main_condition.setColumn(0, "trgtdise", "<casanalist/>"); //instance1.selectNodesXml("/root/main/admininfo/prescond/conditem"));
  572. ds_main_condition.setColumn(0, "trgtdise", "");
  573. }
  574. var oParam = {};
  575. oParam.id = "TXMQR00100";
  576. oParam.service = "qiapp.SafeAcdMngt";
  577. oParam.method = "reqInsReptInfoNewBw";
  578. oParam.inds = "recinfo=ds_main_condition Fall=ds_main_condition_fallinfo OrdCure=ds_main_condition_ordcureinfo Oprt=ds_main_condition_oprtinfo medi=ds_main_condition_mediinfo Tns=ds_main_condition_tnsinfo Exam=ds_main_condition_examinfo Etc=ds_main_condition_etcinfo attach=ds_send_cond_attach";
  579. oParam.outds = "ds_tmp_acptno=acptno";
  580. oParam.async = false;
  581. oParam.callback = "cf_TXMQR00100";
  582. tranf_submit(oParam);
  583. if( arErrorCode.pop("TXMQR00100") < 0 ){
  584. sysf_messageBox("저장을","E009");
  585. return false;
  586. }
  587. ds_main_condition.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  588. frmf_setParameter("ano", ds_main_condition.getColumn(0, "acptno"));
  589. if(ds_main_condition.getColumn(0, "lrg") =="01"){
  590. ds_main_condition_fallinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  591. }else if(ds_main_condition.getColumn(0, "lrg") =="02"){
  592. ds_main_condition_ordcureinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  593. }else if(ds_main_condition.getColumn(0, "lrg") =="03"){
  594. ds_main_condition_oprtinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  595. }else if(ds_main_condition.getColumn(0, "lrg") =="04"){
  596. ds_main_condition_mediinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  597. }else if(ds_main_condition.getColumn(0, "lrg") =="05"){
  598. ds_main_condition_tnsinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  599. }else if(ds_main_condition.getColumn(0, "lrg") =="06"){
  600. ds_main_condition_examinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  601. }else {
  602. ds_main_condition_etcinfo.setColumn(0, "acptno", ds_tmp_acptno.getColumn(0, "acptno"));
  603. }
  604. if(ds_main_condition.getColumn(0, "statusadmin") =="Y"){
  605. sysf_messageBox("수정 되었습니다.","I");
  606. fCheckgrade();
  607. }else{
  608. if(ds_main_condition.getColumn(0, "status") == "10"){
  609. sysf_messageBox("임시저장 하였습니다.","I");
  610. fCheckgrade();
  611. } else {
  612. sysf_messageBox("QI실 전송이 완료되었습니다.","I");
  613. this.close();
  614. }
  615. }
  616. return true;
  617. }
  618. function cf_TXMQR00100(sSvcId, nErrorCode, sErrorMsg) {
  619. arErrorCode.push(sSvcId, nErrorCode);
  620. }
  621. function fPrint(){
  622. ds_main_condition_rept.copyData(ds_main_condition);
  623. dsf_makeValue(ds_main_condition,"reportyn", "string", "Y");
  624. ds_main_condition_rept.clear();
  625. var oParam = {};
  626. oParam.id = "TRMQR01000";
  627. oParam.service = "qiapp.SafeAcdList";
  628. oParam.method = "reqGetSafeAcdListNewBwRept";
  629. oParam.inds = "req=ds_main_condition";
  630. oParam.outds = "ds_main_condition_rept=saferept";
  631. oParam.async = false;
  632. //oParam.callback = "cf_TRMQR01000";
  633. tranf_submit(oParam);
  634. //2019.08.13_익명보고 추가
  635. if(ds_main_condition_rept.rowcount > 0){
  636. var anonyyn = ds_main_condition_rept.getColumn(0, "anonyyn");
  637. trace(anonyyn);
  638. if(anonyyn == "Y"){
  639. ds_main_condition_rept.setColumn(0, "reptid", "");
  640. ds_main_condition_rept.setColumn(0, "reptnm", "");
  641. ds_main_condition_rept.setColumn(0, "reptjobkindtext", "");
  642. ds_main_condition_rept.setColumn(0, "reptdutdepttext", "");
  643. ds_main_condition_rept.setColumn(0, "reptcntctel", "");
  644. ds_main_condition_rept.setColumn(0, "reptdutyeartot", "");
  645. ds_main_condition_rept.setColumn(0, "reptdutmonthtot", "");
  646. ds_main_condition_rept.setColumn(0, "reptdutyearcur", "");
  647. ds_main_condition_rept.setColumn(0, "reptdutmonthcur", "");
  648. }
  649. }
  650. //2019.08.13_end
  651. //dsf_makeValue(ds_main_condition_rept,"trgtacctdeptnm", "string", group2.chk_trgtacctdept.getLableData());
  652. var objDOM = rptf_createDOM(); // DOM 객체 설정
  653. rptf_setNodeListToDOM(objDOM, "/root/send/report/recinfo", ds_main_condition_rept); // 데이터셋 1
  654. rptf_setNodeListToDOM(objDOM, "/root/send/report/recinfo/conditem/conditem", ds_data_conditem); // 데이터셋 1 (내원시진단명)
  655. rptf_setNodeListToDOM(objDOM, "/root/send/report/recinfo/casanalist/casanalist", ds_data_casanalist); // 데이터셋 2 (기저질환)
  656. //rptf_setNodeListToDOM(objDOM, "/root/temp/cond", ds_main_cond); // 데이터셋 1
  657. var objParam = new Object();
  658. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  659. //objParam.xml_data_XML2 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  660. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  661. rptf_exeReportPreview30(["RPMQR00010"],[objParam], option);
  662. }]]></Script>