SMMMI00900.xjs 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. 당직 스케줄 관리(SMMMI00900.xfm - JScript )
  5. - Version :
  6. 1) : Ver.1.00.01
  7. - Create : 2018.05.17
  8. */
  9. //화면초기화
  10. function fInit(){
  11. fInitCond();
  12. ds_cond.setColumn(0, "basedd", utlf_getCurrentDate());
  13. if("EMR" == sysf_getUserInfo("userid")) { // 슈퍼유저(EMR) 설정
  14. ds_cond.setColumn(0, "superyn", "Y");
  15. } else {
  16. ds_cond.setColumn(0, "superyn", "N");
  17. }
  18. // 중환자실 전일, 반일 의사 관리 리스트를 가지고 있어야하므로 화면 초기에 조회
  19. fInitICUDocData();
  20. // 당직구분 가져오기
  21. fGetWorkCdCombo();
  22. dsf_addDsItem(ds_appdeptlist, "appid", "appidnm", "선택", "-", "above" );
  23. }
  24. // ds_cond 초기화
  25. function fInitCond() {
  26. ds_cond.setColumn(0, "flag", "-");
  27. ds_cond.setColumn(0, "authyn", "-");
  28. ds_cond.setColumn(0, "authdeptcd", "-");
  29. ds_cond.setColumn(0, "workcd", "-");
  30. ds_cond.setColumn(0, "orddeptcd", "-");
  31. ds_cond.setColumn(0, "worktype", "-");
  32. ds_cond.setColumn(0, "appuseryn", "-");
  33. }
  34. // 데이터셋 초기화
  35. function fInitDataSet() {
  36. ds_workcdinfo.clearData();
  37. ds_dutylist.clearData();
  38. ds_appdeptlist.clearData();
  39. ds_appuserlist.clearData();
  40. ds_workdrlist.clearData();
  41. ds_workschelist.clearData();
  42. }
  43. // 당직구분 가져오기
  44. function fGetWorkCdCombo() {
  45. var sWorkCd = ds_cond.getColumn(0, "workcd");
  46. ds_cond.setColumn(0, "flag", "list");
  47. var oParam = {};
  48. oParam.id = "TRMMI00901";
  49. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  50. oParam.method = "reqGetWorkCdinfo";
  51. oParam.inds = "req=ds_cond";
  52. oParam.outds = "ds_workcdlist=result";
  53. oParam.async = false;
  54. tranf_submit(oParam);
  55. dsf_addDsItem(ds_workcdlist, "workcd", "worknm", "선택", "-", "above" );
  56. grp_top.cmb_workcd.value = sWorkCd;
  57. }
  58. // 당직정보 가져오기
  59. function fGetWorkCdInfo() {
  60. var findNode = null;
  61. var sWorkCd = ds_cond.getColumn(0, "workcd");
  62. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  63. var nDCol = 0;
  64. var nECol = 0;
  65. var nNCol = 0;
  66. fGetWorkCdCombo();
  67. if (sWorkCd != "-") { // 선택된 당직코드가 있으면
  68. findNode = ds_workcdlist.findRow("workcd", sWorkCd);
  69. if (findNode == -1) { // 당직선택에 기존 당직 코드가 없는경우 초기화
  70. fInitCond();
  71. fInitDataSet();
  72. } else {
  73. ds_cond.setColumn(0, "flag", "detail");
  74. fInitDataSet();
  75. var oParam = {};
  76. oParam.id = "TRMMI00902";
  77. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  78. oParam.method = "reqGetWorkCdinfo";
  79. oParam.inds = "req=ds_cond";
  80. oParam.outds = "ds_workcdinfo=result ds_dutylist=excodeinfo ds_appdeptlist=appdept ds_appuserlist=appuser ds_dutylist=dutylist";
  81. oParam.async = false;
  82. tranf_submit(oParam);
  83. if(ds_dutylist != null && ds_dutylist.rowcount > 0) {
  84. nDCol = grp_right.grd_workschelist.getBindCellIndex("body", "drnm_d");
  85. nECol = grp_right.grd_workschelist.getBindCellIndex("body", "drnm_e");
  86. nNCol = grp_right.grd_workschelist.getBindCellIndex("body", "drnm_n");
  87. grp_right.grd_workschelist.setFormatColProperty(nDCol, "size", 0);
  88. grp_right.grd_workschelist.setFormatColProperty(nECol, "size", 0);
  89. grp_right.grd_workschelist.setFormatColProperty(nNCol, "size", 0);
  90. for( var i=0; i<ds_dutylist.rowcount; i++ ){
  91. if( ds_dutylist.getColumn(i, "dutycd") == "D") {
  92. grp_right.grd_workschelist.setCellProperty("head", nDCol, "text", ds_dutylist.getColumn(i, "dutynm"));
  93. grp_right.grd_workschelist.setFormatColProperty(nDCol, "size", 130);
  94. } else if( ds_dutylist.getColumn(i, "dutycd") == "E") {
  95. grp_right.grd_workschelist.setCellProperty("head", nECol, "text", ds_dutylist.getColumn(i, "dutynm"));
  96. grp_right.grd_workschelist.setFormatColProperty(nECol, "size", 130);
  97. } else if( ds_dutylist.getColumn(i, "dutycd") == "N") {
  98. grp_right.grd_workschelist.setCellProperty("head", nNCol, "text", ds_dutylist.getColumn(i, "dutynm"));
  99. grp_right.grd_workschelist.setFormatColProperty(nNCol, "size", 130);
  100. }
  101. }
  102. }
  103. if(ds_workcdinfo.getColumn(0, "authdeptcd") == sysf_getUserInfo("dutplcecd")) {
  104. ds_cond.setColumn(0, "authyn", "Y");
  105. } else {
  106. ds_cond.setColumn(0, "authyn", "N");
  107. }
  108. if(ds_appuserlist != null && ds_appuserlist.rowcount > 0) { // 적용 사용자가 있는 당직인경우
  109. ds_cond.setColumn(0, "appuseryn", "Y");
  110. } else {
  111. ds_cond.setColumn(0, "appuseryn", "N");
  112. }
  113. if(ds_workcdinfo.getColumn(0, "worktype") == "D") { // 부서별 당직
  114. ds_cond.setColumn(0, "worktype", "D");
  115. } else {
  116. ds_cond.setColumn(0, "worktype", "U");
  117. }
  118. dsf_addDsItem(ds_appdeptlist, "appid", "appidnm", "선택", "-", "above" );
  119. if(sOrdDeptCd != "-") { // 선택된 진료과가 있으면
  120. findNode = ds_appdeptlist.findRow("appid", sOrdDeptCd);
  121. if(findNode == -1) { // 당직 진료과에 기존 진료과 코드가 없는경우 초기화
  122. ds_cond.setColumn(0, "orddeptcd", "-");
  123. grp_left.grp_sa.cmb_orddeptcd.value = "-";
  124. ds_workdrlist.clearData();
  125. } else {
  126. grp_left.grp_sa.cmb_orddeptcd.value = sOrdDeptCd;
  127. fGetWorkDrList();
  128. }
  129. }
  130. if(ds_cond.getColumn(0, "worktype") == "U" || ds_cond.getColumn(0, "orddeptcd") != "-") {
  131. fGetWorkScheList();
  132. }
  133. }
  134. }
  135. }
  136. function fGetWorkDrList() {
  137. var sWorkCd = ds_cond.getColumn(0, "workcd");
  138. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  139. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  140. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  141. return;
  142. }
  143. if(utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-"){
  144. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  145. return;
  146. }
  147. var oParam = {};
  148. oParam.id = "TRMMI00903";
  149. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  150. oParam.method = "reqGetWorkDrList";
  151. oParam.inds = "req=ds_cond";
  152. oParam.outds = "ds_workdrlist=result";
  153. oParam.async = false;
  154. oParam.callback = "cf_TRMMI00903";
  155. tranf_submit(oParam);
  156. ds_workdrlist.rowposition = -1;
  157. if( arErrorCode.pop("TRMMI00903") < 0 ){
  158. sysf_messageBox("진료과별 당직대상자 조회를 실패하였습니다.", "E999");
  159. return false;
  160. }
  161. }
  162. function cf_TRMMI00903(sSvcId, nErrorCode, sErrorMsg) {
  163. arErrorCode.push(sSvcId, nErrorCode);
  164. }
  165. function fGetWorkScheList() {
  166. var sWorkCd = ds_cond.getColumn(0, "workcd");
  167. var sWorkType = ds_cond.getColumn(0, "worktype");
  168. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  169. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  170. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  171. return;
  172. }
  173. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  174. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  175. return;
  176. }
  177. ds_cond.setColumn(0, "comuseryn", "N");
  178. ds_cond.setColumn(0, "comuserid", "-");
  179. ds_cond.setColumn(0, "comusernm", "-");
  180. ds_cond.setColumn(0, "orddeptnm", "");
  181. grp_right.btn_payview.visible = false;
  182. grp_right.btn_dupview.visible = false;
  183. grp_right.btn_excelup.visible = false;
  184. grp_right.btn_cnfm.enable = false;
  185. var oParam = {};
  186. oParam.id = "TRMMI00904";
  187. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  188. oParam.method = "reqGetWorkScheList";
  189. oParam.inds = "req=ds_cond";
  190. oParam.outds = "ds_workschelist=result";
  191. oParam.async = false;
  192. oParam.callback = "cf_TRMMI00904";
  193. tranf_submit(oParam);
  194. if( arErrorCode.pop("TRMMI00904") < 0 ){
  195. sysf_messageBox("당직 스케쥴 조회를 실패하였습니다.", "E999");
  196. return false;
  197. } else {
  198. if(ds_cond.getColumn(0, "superyn") == "Y" || ds_cond.getColumn(0, "authyn") == "Y") {
  199. grp_right.btn_payview.visible = true;
  200. grp_right.btn_dupview.visible = true;
  201. grp_right.btn_excelup.visible = true;
  202. grp_right.btn_cnfm.enable = true;
  203. }
  204. if(sWorkType == "D") {
  205. var nFindRow = ds_appdeptlist.findRow("appid", sOrdDeptCd);
  206. if(nFindRow >= 0 ) {
  207. ds_cond.setColumn(0, "orddeptnm", ds_appdeptlist.getColumn(nFindRow, "appidnm"));
  208. ds_cond.setColumn(0, "comuserid", ds_appdeptlist.getColumn(nFindRow, "comuserid"));
  209. ds_cond.setColumn(0, "comusernm", ds_appdeptlist.getColumn(nFindRow, "comusernm"));
  210. if(sysf_getUserInfo("userid") == ds_cond.getColumn(0, "comuserid")) {
  211. ds_cond.setColumn(0, "comuseryn", "Y");
  212. grp_right.btn_cnfm.enable = true;
  213. }
  214. }
  215. }
  216. }
  217. //중환자실 전일, 반일 담당자 데이터가 변경될 수 있으므로 중간 중간 조회 필요
  218. fInitICUDocData();
  219. }
  220. function cf_TRMMI00904(sSvcId, nErrorCode, sErrorMsg) {
  221. arErrorCode.push(sSvcId, nErrorCode);
  222. }
  223. /****************************************************************************************
  224. * Function : fClkArrowBtn
  225. * Description : 당직년월 화살표 클릭시 날자변경
  226. * Argument : objName : 버튼명
  227. * return type :
  228. * Creator :
  229. ****************************************************************************************/
  230. function fClkArrowBtn(objName){
  231. var basedd = ds_cond.getColumn(0,"basedd");
  232. var sNewdd = "";
  233. if(objName == "btn_bfyear") {
  234. sNewdd = basedd.toDate("YYYYMMDD").getAddDate(-1, "Y").getDateFormat();
  235. } else if(objName == "btn_bfmonth") {
  236. sNewdd = basedd.toDate("YYYYMMDD").getAddDate(-1, "M").getDateFormat();
  237. } else if(objName == "btn_afmonth") {
  238. sNewdd = basedd.toDate("YYYYMMDD").getAddDate(1, "M").getDateFormat();
  239. } else if(objName == "btn_afyear"){
  240. sNewdd = basedd.toDate("YYYYMMDD").getAddDate(1, "Y").getDateFormat();
  241. }
  242. if (!utlf_isNull(sNewdd)) {
  243. ds_cond.setColumn(0,"basedd", sNewdd);
  244. // 당직구분 가져오기
  245. fGetWorkCdInfo();
  246. }
  247. }
  248. /**
  249. * @group :
  250. * @ver : 2018.05.18
  251. * @by : 엄영만
  252. * @---------------------------------------------------
  253. * @type : function
  254. * @access : public
  255. * @desc : 근무정보 설정
  256. * @param : sActGubun 처리구분(I:입력, D:삭제)
  257. * @param : sWorkCd 당직구분
  258. * @param : sWorkDd 근무일자
  259. * @param : sWorkType 근무타입
  260. * @param : sDutyCd 근무코드(D:주간, N:야간)
  261. * @param : sDeptcd 근무의사 부서
  262. * @param : sUserId 근무의사 사번
  263. * @param : sConfirmYn 최종확인여부
  264. * @param : sWorkAllHalf 근무종류(A:전일, H:반일, R:대체)
  265. * @param : sReason 사유
  266. * @return :
  267. * @---------------------------------------------------
  268. */
  269. function fSetWorkInfo(sActGubun, sWorkCd, sWorkDd, sWorkType, sDutyCd, sDeptcd, sUserId, sConfirmYn, sWorkAllHalf, sReason) {
  270. var sCurDd = utlf_getCurrentDate();
  271. var sCurTm = utlf_getCurrentTime().substr(0,4);
  272. var sFromTm = "";
  273. var nFindRow = 0;
  274. if(ds_cond.getColumn(0, "superyn") != "Y" && ds_cond.getColumn(0, "authyn") != "Y") {
  275. if(sDeptcd != sysf_getUserInfo("dutplcecd")) {
  276. sysf_messageBox("로그인 부서의 당직 스케쥴만 저장 가능 합니다.", "E999");
  277. return;
  278. }
  279. if(sActGubun != "C") {
  280. if(sWorkDd < sCurDd) {
  281. sysf_messageBox("과거일자 당직은 수정할 수 없습니다.\n\n관리부서에 문의 바랍니다.", "E999");
  282. return;
  283. } else if(sWorkDd == sCurDd) {
  284. nFindRow = ds_dutylist.findRow("dutycd", sDutyCd);
  285. trace("nFindRow : " + nFindRow);
  286. if(nFindRow >= 0) {
  287. sFromTm = ds_dutylist.getColumn(nFindRow, "fromtm");
  288. trace("sFromTm : " + sFromTm);
  289. if(sFromTm <= sCurTm) {
  290. sysf_messageBox('근무시작 시간이 과거시간인 당직은 수정할 수 없습니다.\n\n관리부서에 문의 바랍니다.', 'E999');
  291. return;
  292. }
  293. }
  294. }
  295. }
  296. }
  297. ds_send.setColumn(0, "actgubun", sActGubun);
  298. ds_send.setColumn(0, "workcd", sWorkCd);
  299. ds_send.setColumn(0, "workdd", sWorkDd);
  300. ds_send.setColumn(0, "worktype", sWorkType);
  301. ds_send.setColumn(0, "dutycd", sDutyCd);
  302. ds_send.setColumn(0, "deptcd", sDeptcd);
  303. ds_send.setColumn(0, "userid", sUserId);
  304. ds_send.setColumn(0, "confirmyn", sConfirmYn);
  305. ds_send.setColumn(0, "workallhalf", sWorkAllHalf);
  306. ds_send.setColumn(0, "reason", sReason);
  307. var oParam = {};
  308. oParam.id = "TXMMI00901";
  309. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  310. oParam.method = "reqExecWorkSche";
  311. oParam.inds = "req=ds_send";
  312. oParam.outds = "ds_workschelist=out";
  313. oParam.async = false;
  314. oParam.callback = "cf_TXMMI00901";
  315. tranf_submit(oParam);
  316. if( arErrorCode.pop("TXMMI00901") > -1 ){
  317. fGetWorkScheList();
  318. } else {
  319. sysf_messageBox("당직의 저장에 실패 하였습니다..", "E999");
  320. }
  321. }
  322. function cf_TXMMI00901(sSvcId, nErrorCode, sErrorMsg) {
  323. arErrorCode.push(sSvcId, nErrorCode);
  324. }
  325. function fConfirm() {
  326. var sCurDd = utlf_getCurrentDate();
  327. var sActGubun = "C"; // 최종저장
  328. var sWorkCd = ds_cond.getColumn(0, "workcd");
  329. var sWorkType = ds_cond.getColumn(0, "worktype");
  330. var sWorkDd = ds_cond.getColumn(0, "basedd");
  331. var sOrdDeptcd = ds_cond.getColumn(0, "orddeptcd");
  332. var sSuperYn = ds_cond.getColumn(0, "superyn");
  333. var sAuthYn = ds_cond.getColumn(0, "authyn");
  334. var sComUserYn = ds_cond.getColumn(0, "comuseryn"); // 근무확인 부서권한(각과 진료과 과장)
  335. var sConfirmYn = "";
  336. var nFindRow = 0;
  337. if (sSuperYn != "Y" && sAuthYn != "Y" && sComUserYn != "Y") {
  338. sysf_messageBox('근무확인 권한이 없습니다.\n\n관리부서에 문의 바랍니다.', 'E999');
  339. return false;
  340. }
  341. if(sWorkDd.substr(0,6) >= sCurDd.substr(0,6)) {
  342. sysf_messageBox('당월 또는 미래의 당직는 근무확인 할수 없습니다.\n\n관리부서에 문의 바랍니다.', 'E999');
  343. return false;
  344. }
  345. if(sComUserYn == "Y") {
  346. nFindRow = ds_workschelist.findRow("confirmyn", "Y");
  347. if(nFindRow >= 0) {
  348. sysf_messageBox('최종확인 후에는 부서확인이 불가능 합니다.\n\n관리부서에 문의 바랍니다.', 'E999');
  349. return false;
  350. }
  351. sConfirmYn = "D"; // 부서확인
  352. } else {
  353. if(sWorkType == "D") { // 부서별 근무인경우 부서 확인후 관리부서 확인
  354. nFindRow = ds_workschelist.findRow("confirmyn", "N");
  355. if(nFindRow >= 0) {
  356. sysf_messageBox('부서에서 근무확인 후 진행 가능 합니다.', 'E999');
  357. return false;
  358. }
  359. }
  360. sConfirmYn = "Y"; // 최종확인
  361. }
  362. fSetWorkInfo(sActGubun, sWorkCd, sWorkDd, sWorkType, "", sOrdDeptcd, "", sConfirmYn, "", "");
  363. }
  364. function fSetRmkInfo(sWorkCd, sWorkDd, sRmk) {
  365. ds_send.setColumn(0, "workcd", sWorkCd);
  366. ds_send.setColumn(0, "workdd", sWorkDd);
  367. ds_send.setColumn(0, "rmk", sRmk);
  368. var oParam = {};
  369. oParam.id = "TXMMI00902";
  370. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  371. oParam.method = "reqExecWorkRmk";
  372. oParam.inds = "req=ds_send";
  373. oParam.async = false;
  374. oParam.callback = "cf_TXMMI00902";
  375. tranf_submit(oParam);
  376. if( arErrorCode.pop("TXMMI00902") > -1 ){
  377. fGetWorkScheList();
  378. } else {
  379. sysf_messageBox("당직 비고정보 저장에 실패 하였습니다..", "E999");
  380. }
  381. }
  382. function cf_TXMMI00902(sSvcId, nErrorCode, sErrorMsg) {
  383. arErrorCode.push(sSvcId, nErrorCode);
  384. }
  385. function fExecPrint00() {
  386. var sWorkCd = ds_cond.getColumn(0, "workcd");
  387. var sWorkType = ds_cond.getColumn(0, "worktype");
  388. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  389. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  390. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  391. return;
  392. }
  393. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  394. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  395. return;
  396. }
  397. var oParam = {};
  398. oParam.id = "TRMMI00905";
  399. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  400. oParam.method = "reqGetWorkSchePrint00";
  401. oParam.inds = "req=ds_cond";
  402. oParam.outds = "ds_print00=result";
  403. oParam.async = false;
  404. tranf_submit(oParam);
  405. var objDOM = rptf_createDOM(); // DOM 객체 설정
  406. rptf_setNodeListToDOM(objDOM, "/root/cond", ds_cond);
  407. rptf_setNodeListToDOM(objDOM, "/root/main/workcdinfo", ds_workcdinfo);
  408. rptf_setNodeListToDOM(objDOM, "/root/temp/printinfo", ds_print00); // 데이터셋 1
  409. var objParam = new Object();
  410. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  411. //trace(objDOM.documentElement.source);
  412. var option = "open=1;save=1;directprint=0;printdialog=0;print=1;zoom=0";
  413. rptf_exeReportPreview30(["RPMMI00901"],[objParam], option);
  414. }
  415. function fExecPrint01() {
  416. var sWorkCd = ds_cond.getColumn(0, "workcd");
  417. var sWorkType = ds_cond.getColumn(0, "worktype");
  418. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  419. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  420. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  421. return;
  422. }
  423. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  424. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  425. return;
  426. }
  427. var oParam = {};
  428. oParam.id = "TRMMI00908";
  429. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  430. oParam.method = "reqGetWorkSchePrint01";
  431. oParam.inds = "req=ds_cond";
  432. oParam.outds = "ds_print01=result";
  433. oParam.async = false;
  434. tranf_submit(oParam);
  435. var objCxtCommon = new ExtCommon();
  436. ds_print01.updatecontrol = false;
  437. ds_print01.addColumn("drsign_1","string");
  438. ds_print01.addColumn("drsign_2","string");
  439. ds_print01.addColumn("drsign_3","string");
  440. ds_print01.addColumn("drsign_4","string");
  441. ds_print01.addColumn("drsign_5","string");
  442. ds_print01.addColumn("drsign_6","string");
  443. ds_print01.addColumn("drsign_7","string");
  444. for(var i = 0 ; i < ds_print01.rowcount ; i++) {
  445. ds_print01.setColumn(i,"drsign_1",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign1")));
  446. ds_print01.setColumn(i,"drsign_2",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign2")));
  447. ds_print01.setColumn(i,"drsign_3",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign3")));
  448. ds_print01.setColumn(i,"drsign_4",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign4")));
  449. ds_print01.setColumn(i,"drsign_5",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign5")));
  450. ds_print01.setColumn(i,"drsign_6",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign6")));
  451. ds_print01.setColumn(i,"drsign_7",objCxtCommon.encodeBase64(ds_print01.getColumn(i, "drsign7")));
  452. }
  453. ds_print01.updatecontrol = true;
  454. var objDOM = rptf_createDOM(); // DOM 객체 설정
  455. rptf_setNodeListToDOM(objDOM, "/root/cond", ds_cond);
  456. rptf_setNodeListToDOM(objDOM, "/root/main/workcdinfo", ds_workcdinfo);
  457. rptf_setNodeListToDOM(objDOM, "/root/temp/printinfo", ds_print01); // 데이터셋 1
  458. var objParam = new Object();
  459. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  460. trace(objDOM.documentElement.source);
  461. var option = "open=1;save=1;directprint=0;printdialog=0;print=1;zoom=0";
  462. rptf_exeReportPreview30(["RPMMI00902"],[objParam], option);
  463. }
  464. function fExecPrint02() {
  465. var sWorkCd = ds_cond.getColumn(0, "workcd");
  466. var sWorkType = ds_cond.getColumn(0, "worktype");
  467. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  468. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  469. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  470. return;
  471. }
  472. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  473. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  474. return;
  475. }
  476. var oParam = {};
  477. oParam.id = "TRMMI00908";
  478. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  479. oParam.method = "reqGetWorkSchePrint02";
  480. oParam.inds = "req=ds_cond";
  481. oParam.outds = "ds_print02=result";
  482. oParam.async = false;
  483. tranf_submit(oParam);
  484. var objCxtCommon = new ExtCommon();
  485. ds_print02.updatecontrol = false;
  486. ds_print02.addColumn("phot_prt","string");
  487. ds_print02.addColumn("phot_prt2","string");
  488. ds_print02.addColumn("phot_prt3","string");
  489. ds_print02.addColumn("phot_prt4","string");
  490. ds_print02.addColumn("phot_prt5","string");
  491. ds_print02.addColumn("phot_prt6","string");
  492. ds_print02.addColumn("phot_prt7","string");
  493. ds_print02.addColumn("phot_prt8","string");
  494. for(var i = 0 ; i < ds_print02.rowcount ; i++)
  495. {
  496. ds_print02.setColumn(i,"phot_prt", objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign")));
  497. ds_print02.setColumn(i,"phot_prt2",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign2")));
  498. ds_print02.setColumn(i,"phot_prt3",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign3")));
  499. ds_print02.setColumn(i,"phot_prt4",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign4")));
  500. ds_print02.setColumn(i,"phot_prt5",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign5")));
  501. ds_print02.setColumn(i,"phot_prt6",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign6")));
  502. ds_print02.setColumn(i,"phot_prt7",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign7")));
  503. ds_print02.setColumn(i,"phot_prt8",objCxtCommon.encodeBase64(ds_print02.getColumn(i, "confirmdrsign8")));
  504. }
  505. ds_print02.updatecontrol = true;
  506. var objDOM = rptf_createDOM(); // DOM 객체 설정
  507. rptf_setNodeListToDOM(objDOM, "/root/cond", ds_cond);
  508. rptf_setNodeListToDOM(objDOM, "/root/main/workcdinfo" , ds_workcdinfo);
  509. rptf_setNodeListToDOM(objDOM, "/root/temp/printinfo" , ds_print02); // 데이터셋 1
  510. var objParam = new Object();
  511. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  512. trace(objDOM.documentElement.source);
  513. var option = "open=1;save=1;directprint=0;printdialog=0;print=1;zoom=0";
  514. rptf_exeReportPreview30(["RPMMI00903"],[objParam], option);
  515. }
  516. function fExecPrint03() {
  517. var sWorkCd = ds_cond.getColumn(0, "workcd");
  518. var sWorkType = ds_cond.getColumn(0, "worktype");
  519. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  520. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  521. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  522. return;
  523. }
  524. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  525. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  526. return;
  527. }
  528. var oParam = {};
  529. oParam.id = "TRMMI00908";
  530. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  531. oParam.method = "reqGetWorkSchePrint03";
  532. oParam.inds = "req=ds_cond";
  533. oParam.outds = "ds_print03=result";
  534. oParam.async = false;
  535. tranf_submit(oParam);
  536. var objCxtCommon = new ExtCommon();
  537. ds_print03.updatecontrol = false;
  538. ds_print03.addColumn("phot_prt","string");
  539. ds_print03.addColumn("phot_prt3","string");
  540. for(var i = 0 ; i < ds_print03.rowcount ; i++) {
  541. ds_print03.setColumn(i,"phot_prt", objCxtCommon.encodeBase64(ds_print03.getColumn(i, "confirmdrsign")));
  542. ds_print03.setColumn(i,"phot_prt3",objCxtCommon.encodeBase64(ds_print03.getColumn(i, "confirmdrsign3")));
  543. }
  544. ds_print03.updatecontrol = true;
  545. var objDOM = rptf_createDOM(); // DOM 객체 설정
  546. rptf_setNodeListToDOM(objDOM, "/root/cond", ds_cond);
  547. rptf_setNodeListToDOM(objDOM, "/root/main/workcdinfo", ds_workcdinfo);
  548. rptf_setNodeListToDOM(objDOM, "/root/temp/printinfo", ds_print03); // 데이터셋 1
  549. var objParam = new Object();
  550. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  551. trace(objDOM.documentElement.source);
  552. var option = "open=1;save=1;directprint=0;printdialog=0;print=1;zoom=0";
  553. rptf_exeReportPreview30(["RPMMI00904"],[objParam], option);
  554. }
  555. function fExcelDownlode() {
  556. var sWorkCd = ds_cond.getColumn(0, "workcd");
  557. var sWorkNm = ds_workcdlist.getColumn(ds_workcdlist.findRow("workcd", sWorkCd), "worknm");
  558. var sWorkType = ds_cond.getColumn(0, "worktype");
  559. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  560. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  561. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  562. return;
  563. }
  564. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  565. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  566. return;
  567. }
  568. var oParam = {};
  569. oParam.id = "TRMMI00909";
  570. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  571. oParam.method = "reqGetWorkScheExcel00";
  572. oParam.inds = "req=ds_cond";
  573. oParam.outds = "ds_sampleexcel=result";
  574. oParam.async = false;
  575. tranf_submit(oParam);
  576. grdf_exportExcel(grp_right.grd_sampleexcel, sWorkNm, sWorkNm, false, "", "user", true);
  577. }
  578. function fExcelUplode() {
  579. var sWorkCd = ds_cond.getColumn(0, "workcd");
  580. var sWorkType = ds_cond.getColumn(0, "worktype");
  581. var sOrdDeptCd = ds_cond.getColumn(0, "orddeptcd");
  582. var sDutyCd = "";
  583. var sDutyNm = "";
  584. var sDeptCd = "";
  585. var sDeptNm = "";
  586. if(utlf_isNull(sWorkCd) || sWorkCd == "-"){
  587. sysf_messageBox("선택된 당직이 없습니다.", "E999");
  588. return;
  589. }
  590. if(sWorkType == "D" && (utlf_isNull(sOrdDeptCd) || sOrdDeptCd == "-")){
  591. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  592. return;
  593. }
  594. ds_uploadexcel.clearData();
  595. if( grdf_ImportExcel("ds_uploadexcel", 2, "") != false){
  596. var rows = ds_uploadexcel.rowcount;
  597. if( rows <= 0 ){
  598. sysf_messageBox("등록된 사용자 정보가 없습니다","");
  599. return;
  600. }
  601. for (i = 0; i < rows; i++){
  602. sDutyNm = ds_uploadexcel.getColumn(i, "dutynm");
  603. sDeptNm = ds_uploadexcel.getColumn(i, "deptnm");
  604. if (sDutyNm == "근무") {
  605. continue;
  606. }
  607. sDutyCd = ds_dutylist.getColumn(ds_dutylist.findRow("dutynm", sDutyNm), "dutycd");
  608. sDeptCd = ds_appdeptlist.getColumn(ds_appdeptlist.findRow("appidnm", sDeptNm), "appid");
  609. ds_uploadexcel.setColumn(i, "workcd", sWorkCd);
  610. ds_uploadexcel.setColumn(i, "dutycd", sDutyCd);
  611. ds_uploadexcel.setColumn(i, "deptcd", sDeptCd);
  612. }
  613. if(sysf_messageBox("현재 등록된 당직 정보를 삭제후 엑셀파일 정보로 저장 됩니다.\n\n진행하시겠습니까?", "Q999") == "6") {
  614. var oParam = {};
  615. oParam.id = "TXMMI00903";
  616. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  617. oParam.method = "reqExecWorkScheExcelUpload";
  618. oParam.inds = "condinfo=ds_cond worklist=ds_uploadexcel";
  619. oParam.outds = "ds_workschelist=out";
  620. oParam.async = false;
  621. if(tranf_submit(oParam)) {
  622. fGetWorkScheList();
  623. } else {
  624. sysf_messageBox("당직의 저장에 실패 하였습니다..", "E999");
  625. }
  626. }
  627. }
  628. }
  629. //20190923 이돈희 : 중환자실 전일, 반일 의사 일괄 업로드 기능 구현
  630. function fUploadIICUExclusiveChargeDoctor(){
  631. var oParam = {};
  632. oParam.id = "TRMMI00907";
  633. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  634. oParam.method = "reqGetICUExclusiveChargeDoctor";
  635. oParam.inds = "req=ds_cond";
  636. oParam.outds = "ds_result_icu_uploaddoc=result";
  637. oParam.async = false;
  638. tranf_submit(oParam);
  639. if(ds_send_list.rowcount > 0){
  640. ds_send_list.clearData();
  641. }
  642. var iIndex = 0;
  643. var jIndex = 0;
  644. var yIndex = 0;
  645. var zIndex = 0;
  646. for(iIndex = 0 ; iIndex < ds_result_icu_uploaddoc.rowcount ; iIndex++){
  647. var arrTrgtcdnm = (ds_result_icu_uploaddoc.getColumn(iIndex, "trgtcdnm")).split("■");
  648. var arrDayOfWeeks = (arrTrgtcdnm[1]).split("ㅁ");
  649. var arrDutycd = (arrTrgtcdnm[3]).split("ㅁ");
  650. var strUserid = arrTrgtcdnm[0];
  651. var strAllHalf = arrTrgtcdnm[2];
  652. var strOrddeptcd = ds_result_icu_uploaddoc.getColumn(iIndex, "orddeptcd");
  653. var strWorkcd = ds_cond.getColumn(0, "workcd");
  654. var iRow = 0;
  655. //스케줄에는 있으나 전일, 반일 의사가 아니면 자동 업로딩 안함
  656. if(strAllHalf == "A"){
  657. iRow = ds_result_icualldoc.findRowExpr("rmk=='"+strWorkcd+"'&&trgtcd=='"+strUserid+"'");
  658. } else if(strAllHalf == "H"){
  659. iRow = ds_result_icuhalfdoc.findRowExpr("rmk=='"+strWorkcd+"'&&trgtcd=='"+strUserid+"'");
  660. } else {
  661. // do Nothing
  662. }
  663. if(iRow == -1){
  664. continue;
  665. }
  666. for(yIndex = 0 ; yIndex < arrDayOfWeeks.length ; yIndex++){
  667. for(zIndex = 0 ; zIndex < arrDutycd.length ; zIndex++){
  668. var strDayOfWeeks = arrDayOfWeeks[yIndex];
  669. var strDutycd = arrDutycd[zIndex];
  670. for(jIndex = 0 ; jIndex < ds_workschelist.rowcount ; jIndex++){
  671. if(ds_workschelist.getColumn(jIndex, "datenm") == strDayOfWeeks){
  672. var iRow = ds_send_list.addRow();
  673. ds_send_list.setColumn(iRow, "actgubun" , "I");
  674. ds_send_list.setColumn(iRow, "workcd" , strWorkcd);
  675. ds_send_list.setColumn(iRow, "workdd" , ds_workschelist.getColumn(jIndex, "workdd"));
  676. ds_send_list.setColumn(iRow, "dutycd" , strDutycd);
  677. ds_send_list.setColumn(iRow, "deptcd" , strOrddeptcd);
  678. ds_send_list.setColumn(iRow, "userid" , strUserid);
  679. ds_send_list.setColumn(iRow, "confirmyn" , "N");
  680. ds_send_list.setColumn(iRow, "workallhalf" , strAllHalf);
  681. }
  682. }
  683. }
  684. }
  685. /*
  686. var strUserid = arrTrgtcdnm[0];
  687. var strDayOfWeeks = arrTrgtcdnm[1];
  688. var strAllHalf = arrTrgtcdnm[2];
  689. var strDutycd = arrTrgtcdnm[3];
  690. var strOrddeptcd = ds_result_icu_uploaddoc.getColumn(iIndex, "orddeptcd");
  691. var strWorkcd = ds_cond.getColumn(0, "workcd");
  692. var iRow = 0;
  693. //스케줄에는 있으나 전일, 반일 의사가 아니면 자동 업로딩 안함
  694. if(strAllHalf == "A"){
  695. iRow = ds_result_icualldoc.findRowExpr("rmk=='"+strWorkcd+"'&&trgtcd=='"+strUserid+"'");
  696. } else if(strAllHalf == "H"){
  697. iRow = ds_result_icuhalfdoc.findRowExpr("rmk=='"+strWorkcd+"'&&trgtcd=='"+strUserid+"'");
  698. } else {
  699. // do Nothing
  700. }
  701. if(iRow == -1){
  702. continue;
  703. }
  704. for(jIndex = 0 ; jIndex < ds_workschelist.rowcount ; jIndex++){
  705. if(ds_workschelist.getColumn(jIndex, "datenm") == strDayOfWeeks){
  706. var iRow = ds_send_list.addRow();
  707. ds_send_list.setColumn(iRow, "actgubun" , "I");
  708. ds_send_list.setColumn(iRow, "workcd" , strWorkcd);
  709. ds_send_list.setColumn(iRow, "workdd" , ds_workschelist.getColumn(jIndex, "workdd"));
  710. ds_send_list.setColumn(iRow, "dutycd" , strDutycd);
  711. ds_send_list.setColumn(iRow, "deptcd" , strOrddeptcd);
  712. ds_send_list.setColumn(iRow, "userid" , strUserid);
  713. ds_send_list.setColumn(iRow, "confirmyn" , "N");
  714. ds_send_list.setColumn(iRow, "workallhalf" , strAllHalf);
  715. }
  716. }
  717. */
  718. }
  719. if(ds_send_list.rowcount > 0){
  720. var oParam = {};
  721. oParam.id = "TXMMI00901";
  722. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  723. oParam.method = "reqExecWorkSche";
  724. oParam.inds = "req=ds_send_list";
  725. oParam.outds = "ds_workschelist=out";
  726. oParam.async = false;
  727. oParam.callback = "cf_TXMMI00901";
  728. tranf_submit(oParam);
  729. if( arErrorCode.pop("TXMMI00901") > -1 ){
  730. fGetWorkScheList();
  731. } else {
  732. sysf_messageBox("당직의 저장에 실패 하였습니다..", "E999");
  733. }
  734. }
  735. }
  736. //20190924 이돈희 : 기존에 이벤트 안에 함수에 구현된 것을 별도의 함수로 분리
  737. // : 중환자실 전일, 반일 함수 변수로 받음
  738. //sWorkAllHalf A:전일, H:반일, R:대체, NULL:그외
  739. function fInsertWorkScheList(sWorkAllHalf){
  740. var sUserId = "";
  741. var sDeptcd = "";
  742. var sWorkCd = "";
  743. var sWorkDd = "";
  744. var sWorkType = "";
  745. var sWorkDrId = "";
  746. var sDutyCd = "";
  747. var sActGubun = "";
  748. var sConfirmYn = "";
  749. var sSuperYn = "";
  750. var sAuthYn = "";
  751. var sReason = ""; // 사유
  752. var curSchekRow = grp_right.grd_workschelist.currentrow;
  753. if (curSchekRow < 0) return;
  754. var sCol = grp_right.grd_workschelist.currentcol;
  755. var sColNm = grp_right.grd_workschelist.getCellProperty("Body", sCol, "text").replace("bind:", "");
  756. if(sColNm != "drnm_d" && sColNm != "drnm_e" && sColNm != "drnm_n" && sColNm != "confirmyn" ) {
  757. return;
  758. }
  759. var curUserRow = grp_left.grd_workdrlist.currentrow
  760. if (sColNm != "confirmyn" && curUserRow < 0) {
  761. sysf_messageBox('선택된 당직의가 없습니다.', 'E999');
  762. return false;
  763. }
  764. sWorkCd = ds_cond.getColumn(0, "workcd");
  765. sWorkType = ds_cond.getColumn(0, "worktype");
  766. sDeptcd = ds_cond.getColumn(0, "orddeptcd");
  767. sSuperYn = ds_cond.getColumn(0, "superyn");
  768. sAuthYn = ds_cond.getColumn(0, "authyn");
  769. sWorkDd = ds_workschelist.getColumn(curSchekRow, "workdd");
  770. sConfirmYn = ds_workschelist.getColumn(curSchekRow, "confirmyn");
  771. if(utlf_isNull(sWorkCd) || utlf_isNull(sDeptcd) || utlf_isNull(sWorkDd)) {
  772. return;
  773. }
  774. if(sColNm == "confirmyn" && sSuperYn != "Y" && sAuthYn != "Y") {
  775. return;
  776. }
  777. if (sConfirmYn != "N" && sSuperYn != "Y" && sAuthYn != "Y") {
  778. sysf_messageBox('근무확인 된 자료는 수정할 수 없습니다.\r\n당직 관리부서로 연락바랍니다.', 'E999');
  779. return false;
  780. }
  781. //선택된 당직대상자정보(id, nm)
  782. if (sColNm == "drnm_d" || sColNm == "drnm_e" || sColNm == "drnm_n") {
  783. sUserId = ds_workdrlist.getColumn(curUserRow, "drid");
  784. if (sColNm == "drnm_d") {
  785. sWorkDrId = ds_workschelist.getColumn(curSchekRow, "drid_d");
  786. sDutyCd = "D";
  787. } else if (sColNm == "drnm_e") {
  788. sWorkDrId = ds_workschelist.getColumn(curSchekRow, "drid_e");
  789. sDutyCd = "E";
  790. } else if (sColNm == "drnm_n") {
  791. sWorkDrId = ds_workschelist.getColumn(curSchekRow, "drid_n");
  792. sDutyCd = "N";
  793. }
  794. if(utlf_isNull(sWorkDrId) || utlf_transNullToEmpty(sWorkDrId).indexOf(sUserId) == -1) { // 기존에 등록되지 않았으면
  795. sActGubun = "I";
  796. } else {// 기존에 등록되었으면
  797. //20190924 이돈희 : 중환자실 전문의인 경우 삭제시 사유 입력
  798. if(sWorkAllHalf == "A" || sWorkAllHalf == "H" || sWorkAllHalf == "R"){
  799. if(ds_workdrlist.getColumn(curUserRow, "jobposcd") == "1782"){
  800. frmf_setParameter("SMMMI00900_Param_TYPE", "DELETE");
  801. frmf_modal("SMMMI00930", "SMMMI00930", null, null, null, null, null, null, null, null, null, null, "M");
  802. if(frmf_getParameter("SMMMI00930_Param_RESULT") == "Y"){
  803. sReason = frmf_getParameter("SMMMI00930_Param_REASON")
  804. } else {
  805. return;
  806. }
  807. }
  808. }
  809. sActGubun = "D";
  810. }
  811. } else if (sColNm == "confirmyn") {
  812. sActGubun = "U"; // 최종저장 수정
  813. if(utlf_isNull(sConfirmYn) || sConfirmYn == "N") {
  814. sConfirmYn = "Y";
  815. } else {
  816. sConfirmYn = "N";
  817. }
  818. }
  819. //20190930 이돈희 : 전일, 반일 당직의가 아닌데 추가하는 경우 알림
  820. if(sActGubun == "I" && (sWorkAllHalf == "A" || sWorkAllHalf == "H")){
  821. var iRow = 0;
  822. if(sWorkAllHalf == "A"){
  823. iRow = ds_result_icualldoc.findRowExpr("rmk=='"+ds_cond.getColumn(0, "workcd")+"'&&trgtcd=='"+ds_workdrlist.getColumn(curUserRow, "drid")+"'&&workallhalf=='"+sWorkAllHalf+"'");
  824. if(iRow == -1){
  825. sysf_messageBox("전일 당직의 대상이 아닙니다. 진료행정과(T5016)", "E999");
  826. return;
  827. }
  828. } else if(sWorkAllHalf == "H"){
  829. iRow = ds_result_icuhalfdoc.findRowExpr("rmk=='"+ds_cond.getColumn(0, "workcd")+"'&&trgtcd=='"+ds_workdrlist.getColumn(curUserRow, "drid")+"'&&workallhalf=='"+sWorkAllHalf+"'");
  830. if(iRow == -1){
  831. sysf_messageBox("반일 당직의 대상이 아닙니다. 진료행정과(T5016)", "E999");
  832. return;
  833. }
  834. } else {
  835. //do Nothing
  836. }
  837. }
  838. fSetWorkInfo(sActGubun, sWorkCd, sWorkDd, sWorkType, sDutyCd, sDeptcd, sUserId, sConfirmYn, sWorkAllHalf, sReason); // 근무정보 설정
  839. }
  840. //20190924 이돈희 : 메뉴 전일 선택
  841. function fAllDayICUDoc(){
  842. // 중환자실 전일 당직의는 진료행정과만 입력 및 삭제 가능
  843. if(sysf_getUserInfo("dutplceinstcd") == "031"){
  844. if(sysf_getUserInfo("dutplcecd") != "3310000000" && sysf_getUserInfo("dutplcecd") != "3310200000" && sysf_getUserInfo("userid") != "EMR"){ // 진료행정과 진료지원팀
  845. sysf_messageBox("전일 당직의는 진료행정과만 입력 및 삭제가 가능합니다. 진료행정과(T5016)", "E999");
  846. return;
  847. }
  848. }
  849. fInsertWorkScheList("A");
  850. }
  851. //20190924 이돈희 : 메뉴 반일 선택
  852. function fHalfDayICUDoc(){
  853. fInsertWorkScheList("H");
  854. }
  855. //20190924 이돈희 : 메뉴 대체 선택
  856. function fReplDayICUDoc(){
  857. fInsertWorkScheList("R");
  858. }
  859. //20190923 이돈희 : 중환자실 전담전문의 관리를 위한 당직 종류 조회
  860. function fInitICUDocData(){
  861. if(utlf_isNull(ds_result_icu) || ds_result_icu.rowcount == 0 || ds_result_icu.findRow("rmk", ds_cond.getColumn(0, "workcd")) > -1){
  862. var oParam = {};
  863. oParam.id = "TRMMI00906";
  864. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  865. oParam.method = "reqGetICUListForExclusiveChargeDoctor";
  866. oParam.inds = "req=ds_cond";
  867. oParam.outds = "ds_result_icu=resulticuworkcdlist ds_result_icualldoc=resulticualldoclist ds_result_icuhalfdoc=resulticuhalfdoclist";
  868. oParam.async = false;
  869. tranf_submit(oParam);
  870. }
  871. }]]></Script>