SMMMO05500.xjs 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. 수술마취일정 확정 ( SMMMO05500_수술마취일정확정.xrw - JScript )
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. //var sOPANSTCNFM_PATH = "/root/main/opanstpatinfo/opanstcnfmpatlist";
  9. /**
  10. * @desc : 수술마취일정확정 화면 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SMMMO05500(){
  18. // 2008.09.11 마취staff 이외에는 일괄확정 버튼 disable
  19. var jobposcd = sysf_getUserInfo("jobposcd");
  20. var dutplcecd = sysf_getUserInfo("dutplcecd");
  21. var oParam = {};
  22. oParam.id = "TRMMO05503";
  23. oParam.service = "prcpmngtapp.OpMngt";
  24. oParam.method = "reqGetPreOpAssemRecFormcd";
  25. oParam.inds = "";
  26. oParam.outds = "ds_init_formcd=hardcd";
  27. oParam.async = false;
  28. oParam.callback = "cf_TRMMO05503";
  29. tranf_submit(oParam);
  30. //submit("TRMMO05503");
  31. lf_reqHardCodeInfo(ds_init_hardcd, 18); //reqHardCodeInfo("/root/send/reqdata", "/root/init/hardcd", 18);
  32. var anstdeptcd = ds_init_hardcd.getColumn(0, "hardcd"); //model.getValue("/root/init/hardcd/hardcd/hardcd");
  33. if(dutplcecd == anstdeptcd) {
  34. if( jobposcd == "1799" || jobposcd == "1800") {
  35. btn_cnfm.enable = false; //disabled = true;
  36. } else {
  37. btn_cnfm.enable = true; //disabled = false;
  38. }
  39. } else { // 마취과가 아니면 disable
  40. btn_cnfm.enable = false; //disabled = true;
  41. }
  42. var opcnfmdd = (utlf_getCurrentDate().toDate()).getAddDate(1);
  43. ds_main_cond.setColumn(0, "opcnfmdd", opcnfmdd.getDateFormat()); //model.setValue("/root/main/cond/opcnfmdd", opcnfmdd.getDateFormat()); //수술예정일자 +1
  44. appf_getCodeList([ {dsNm: "ds_M0013", cdGrpId: "M0013"},
  45. {dsNm: "ds_M0017", cdGrpId: "M0017"},
  46. {dsNm: "ds_M0020", cdGrpId: "M0020"},
  47. {dsNm: "ds_M0377", cdGrpId: "M0377"}], true);
  48. // zbcfGetCodeList(new Array("M0013",
  49. // "M0017",
  50. // "M0020",
  51. // "M0377"),
  52. // new Array("/root/init/M0013",
  53. // "/root/init/M0017",
  54. // "/root/init/M0020",
  55. // "/root/init/M0377"));
  56. lf_mmbfGetDeptCodeComboList(ds_init_orddept, "D"); //mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서코드 콤보
  57. lf_mmbfGetUserComboList(ds_init_userlist, anstdeptcd, "0330"); //mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , anstdeptcd, "0330"); //마취통증의학과 의사 조회
  58. lf_reqOpRoomList(utlf_getCurrentDate(), ds_init_oproomlist, ds_init_opallroomlist, "total"); //reqOpRoomList(getCurrentDate(), "/root/init/oproomlist", "total"); //수술방 콤보 조회
  59. fReqOpAnstScheReq(); //수술마취의뢰 정규, 비정규 조회
  60. //model.refresh();
  61. }
  62. function cf_TRMMO05503(sSvcId, nErrorCode, sErrorMsg) {
  63. if(nErrorCode < 0) return;
  64. }
  65. /**
  66. * @desc : 수술전달 사항(opdelivefact)컬럼 정보에 값이 있을 경우 'C'로 표기된 이미지 표시함
  67. @ 요구사항 : [요청번호: 12869, TASK번호: 48146, 우선순위: SY]
  68. @ 요청제목 : 수술마취 의뢰에 전달사항 입력 시 마취과 확정/조정 화면에 전달사항 컬럼 추가 및 팝업 조회 기능 요청
  69. * @authur : 김광성. kskim 2010.04.19
  70. * @---------------------------------------------------
  71. */
  72. function fCheckOpdelivefact(idx){
  73. // 수술마취 정규환자 리스트
  74. var opdelivefact = ds_main_opanstcnfmpatlist.getColumn(idx, "opdelivefact"); //model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + idx + "]/opdelivefact");
  75. //var opdelivefactCol = grd_opanstcnfmpatlist.colRef("tempopdelivefact");
  76. if ( !utlf_isNull(opdelivefact) ){
  77. ds_main_opanstcnfmpatlist.setColumn(idx, "imageflag", "1");
  78. //grd_opanstcnfmpatlist.setCellProperty("body", idx, "text", 'IMG::lis/icon_list.png'); // 확인필요
  79. //grd_opanstcnfmpatlist.cellstyle("background-image" , idx, opdelivefactCol, idx, opdelivefactCol ) = "../../../com/commonweb/images/icon_list.gif";
  80. //grd_opanstcnfmpatlist.setCellProperty("body", idx, "color", "transparent");
  81. //grd_opanstcnfmpatlist.cellstyle("color" , idx, opdelivefactCol , idx, opdelivefactCol ) = "transparent";
  82. //grd_opanstcnfmpatlist.setCellProperty("body", idx, "color", "transparent");
  83. //grd_opanstcnfmpatlist.cellstyle("cursor" , idx, opdelivefactCol , idx, opdelivefactCol ) = "hand";
  84. }
  85. }
  86. /**
  87. * @desc : 수술전달 사항(opdelivefact)컬럼 정보에 값이 있을 경우 별도 표기된 이미지 표시함
  88. @ 요구사항 : [요청번호: 12869, TASK번호: 48146, 우선순위: SY]
  89. @ 요청제목 : 수술마취 의뢰에 전달사항 입력 시 마취과 확정/조정 화면에 전달사항 컬럼 추가 및 팝업 조회 기능 요청
  90. * @authur : 김광성. kskim 2010.04.19
  91. * @---------------------------------------------------
  92. */
  93. function fCheckWaitOpdelivefact(){
  94. // 수술마취 비정규의뢰환자 리스트
  95. var dsList = ds_main_opanstwaitpatlist; //grd_opanstwaitpatlist.nodeset;
  96. var dsCount = dsList.rowcount; //nodeList.length;
  97. for(var idx = 0; idx < dsCount; idx++){
  98. var waitopdelivefact = ds_main_opanstwaitpatlist.getColumn(idx, "opdelivefact"); //model.getValue(grd_opanstwaitpatlist.nodeset + "[" + idx + "]/opdelivefact");
  99. //var waitopdelivefactCol = grd_opanstwaitpatlist.colRef("tempopdelivefact");
  100. if ( !utlf_isNull(waitopdelivefact) ){
  101. //grd_opanstwaitpatlist.cellstyle("background-image" , idx, waitopdelivefactCol, idx, waitopdelivefactCol ) = "../../../com/commonweb/images/icon_list.gif";
  102. //grd_opanstwaitpatlist.setCellProperty("body", idx, "backgroundimage", 'IMG::lis/icon_list.png'); // 확인필요
  103. //grd_opanstwaitpatlist.setCellProperty("body", idx, "color", "transparent");
  104. //grd_opanstwaitpatlist.cellstyle("color" , idx, waitopdelivefactCol , idx, waitopdelivefactCol ) = "transparent";
  105. //grd_opanstwaitpatlist.cellstyle("cursor" , idx, waitopdelivefactCol , idx, waitopdelivefactCol ) = "hand";
  106. }
  107. }
  108. //grd_opanstwaitpatlist.refresh();
  109. }
  110. /**
  111. * @desc : 수술마취일정 일괄확정
  112. * @
  113. * @param : pflag - 처리구분(total:전체)
  114. * @return :
  115. * @author : 오지훈
  116. * @---------------------------------------------------
  117. */
  118. function fCnfmOpAnstSche(pflag){
  119. var header = "status▦oprsrvno▦ophistno▦pid▦opcnfmdd▦oppatflagcd▦opstatcd▦mainoprsrvno▦oproomcd▦ccrtno▦anstreqflag▦orddeptcd▦perfdrid▦opfromtmcd▦reqrsncd▦aprvreqno▦opschedd▦opusetm▦opendtmcd▩";
  120. for(var i = 0 ; i < ds_main_opanstcnfmpatlist.rowcount; i++){
  121. var opstatcd = ds_main_opanstcnfmpatlist.getColumn(i, "opstatcd"); //model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/opstatcd");
  122. if(opstatcd >= 20){ //확정된 경우는 skip;
  123. continue;
  124. }
  125. if( pflag == "total"
  126. || ds_main_opanstcnfmpatlist.getColumn(i, "sel") == "Y" ){ // model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/sel") == "true"
  127. var child = "i▦" +
  128. ds_main_opanstcnfmpatlist.getColumn(i, "oprsrvno") + "▦" +
  129. ds_main_opanstcnfmpatlist.getColumn(i, "ophistno") + "▦" +
  130. ds_main_opanstcnfmpatlist.getColumn(i, "pid") + "▦" +
  131. ds_main_cond.getColumn(i, "opcnfmdd") + "▦" +
  132. ds_main_opanstcnfmpatlist.getColumn(i, "oppatflagcd") + "▦" +
  133. "20" + "▦" +
  134. ds_main_opanstcnfmpatlist.getColumn(i, "mainoprsrvno") + "▦" +
  135. ds_main_opanstcnfmpatlist.getColumn(i, "oproomcd") + "▦" +
  136. ds_main_opanstcnfmpatlist.getColumn(i, "ccrtno") + "▦" +
  137. ds_main_opanstcnfmpatlist.getColumn(i, "anstreqflag") + "▦" +
  138. ds_main_opanstcnfmpatlist.getColumn(i, "orddeptcd") + "▦" + //chart 호출 parameter
  139. ds_main_opanstcnfmpatlist.getColumn(i, "perfdrid") + "▦" +
  140. ds_main_opanstcnfmpatlist.getColumn(i, "opfromtmcd") + "▦" +
  141. ds_main_opanstcnfmpatlist.getColumn(i, "reqrsncd") + "▦" +
  142. ds_main_opanstcnfmpatlist.getColumn(i, "aprvreqno") + "▦" +
  143. ds_main_opanstcnfmpatlist.getColumn(i, "opschedd") + "▦" +
  144. ds_main_opanstcnfmpatlist.getColumn(i, "opusetm") + "▦" +
  145. ds_main_opanstcnfmpatlist.getColumn(i, "opendtmcd") + "▩";
  146. header += child;
  147. }
  148. }
  149. dsf_setCSVToDs("ds_send_savedata", header); // model.setValue("/root/send/savedata", header);
  150. var oParam = {};
  151. oParam.id = "TXMMO05501";
  152. oParam.service = "prcpmngtapp.OpMngt";
  153. oParam.method = "reqExeSaveOpAnstCnfm";
  154. oParam.inds = "req=ds_send_savedata";
  155. oParam.outds = "";
  156. oParam.async = false;
  157. oParam.callback = "cf_TXMMO05501";
  158. tranf_submit(oParam);
  159. }
  160. function cf_TXMMO05501(sSvcId, nErrorCode, sErrorMsg) {
  161. if(nErrorCode < 0) {
  162. return;
  163. } else {
  164. fReqOpAnstScheReq();
  165. }
  166. }
  167. /**
  168. * @desc : 수술마취일정 정규/비정규 조회
  169. * @
  170. * @param :
  171. * @return :
  172. * @author : 오지훈
  173. * @---------------------------------------------------
  174. */
  175. function fReqOpAnstScheReq(){
  176. ds_send_reqdata.clearData(); //model.removeNodeset("/root/send/reqdata");
  177. dsf_makeValue(ds_send_reqdata, "opschedd", "string", ds_main_cond.getColumn(0, "opcnfmdd")); //model.makeValue("/root/send/reqdata/opschedd", model.getValue("/root/main/cond/opcnfmdd"));
  178. //model.removeNodeset(grd_opanstcnfmpatlist.nodeset);
  179. // initGridStyle("grd_opanstcnfmpatlist"); // 그리드 속성 초기화
  180. // initGridStyle("grd_opanstwaitpatlist"); // 그리드 속성 초기화
  181. var oParam = {};
  182. oParam.id = "TRMMO05501";
  183. oParam.service = "prcpmngtapp.OpMngt";
  184. oParam.method = "reqGetOpAnstReqList";
  185. oParam.inds = "req=ds_send_reqdata";
  186. oParam.outds = "ds_main_opanstcnfmpatlist=opanstcnfmpatlist ds_main_opanstwaitpatlist=opanstwaitpatlist";
  187. oParam.async = false;
  188. oParam.callback = "cf_TRMMO05501";
  189. tranf_submit(oParam);
  190. }
  191. function cf_TRMMO05501(sSvcId, nErrorCode, sErrorMsg) {
  192. if(nErrorCode < 0) {
  193. return;
  194. } else {
  195. ds_main_opanstcnfmpatlist.addColumn("sel", "string");
  196. fDispOpStat();
  197. // [요청번호: 13643, TASK번호: 51229, 우선순위:SY]
  198. // 요청제목: 수술마취 일정 조정 대기자리스트 전달사항 컬럼 추가(기 반영된 사항 중 누락 건)
  199. // 수술대기환자 리스트 전달사항 표시 2010.04.26
  200. // by김광성. kskim
  201. fCheckWaitOpdelivefact();
  202. }
  203. }
  204. /**
  205. * @desc : 수술상태 display, 확정:파란색, 의뢰:검정
  206. * @
  207. * @param :
  208. * @return :
  209. * @author : 오지훈
  210. * @---------------------------------------------------
  211. */
  212. function fDispOpStat(){
  213. ds_main_opanstcnfmpatlist.addColumn("colorflag", "string");
  214. for(var i = 0; i < ds_main_opanstcnfmpatlist.rowcount; i++){
  215. var opstatcd = ds_main_opanstcnfmpatlist.getColumn(i, "opstatcd"); //model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/opstatcd");
  216. if(opstatcd == 10){ //의뢰
  217. ds_main_opanstcnfmpatlist.setColumn(i, "colorflag", "1");
  218. //grd_opanstcnfmpatlist.setCellProperty("Body", i, "color", "#000000"); //grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#000000";
  219. }else if(opstatcd == 15){ //가확정
  220. ds_main_opanstcnfmpatlist.setColumn(i, "colorflag", "2");
  221. //grd_opanstcnfmpatlist.setCellProperty("Body", i, "color", "#008000"); //grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#008000";
  222. }else if(opstatcd == 20){ //확정
  223. ds_main_opanstcnfmpatlist.setColumn(i, "colorflag", "3");
  224. //grd_opanstcnfmpatlist.setCellProperty("Body", i, "color", "#0000ff"); //grd_opanstcnfmpatlist.rowStyle(i, "all", "color") = "#0000ff";
  225. }
  226. // 수술전달 사항(opdelivefact)컬럼 정보에 값이 있을 경우 내용이 있음을 알리는 이미지 표시
  227. // 2010.04.19. 김광성. kskim
  228. ds_main_opanstcnfmpatlist.addColumn("imageflag", "string");
  229. fCheckOpdelivefact(i);
  230. }
  231. // 09.02.02 방별 grouping
  232. for(var i = 0; i < ds_main_opanstcnfmpatlist.rowcount; i++) {
  233. var oproomnm = ds_main_opanstcnfmpatlist.getColumn(0, "oproomnm"); //model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/oproomnm");
  234. /* oproomnm 가 숫자로만 들어오는지 확인필요
  235. switch(oproomnm) {
  236. case "1": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  237. case "2": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  238. case "3": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  239. case "4": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  240. case "5": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  241. case "6": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  242. case "7": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  243. case "8": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  244. case "9": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  245. case "10": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  246. case "11": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  247. case "12": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  248. case "13": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  249. case "14": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  250. case "15": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  251. case "16": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  252. case "17": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  253. case "18": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  254. case "19": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  255. case "20": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  256. case "21": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  257. case "22": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  258. case "23": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  259. case "24": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  260. case "25": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  261. case "26": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  262. case "27": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  263. case "28": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  264. case "29": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  265. case "30": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  266. case "31": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff"); break;}
  267. case "DR": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#C3E1FE"); break;}
  268. case "ANGIO": { grd_opanstcnfmpatlist.setCellProperty("Body", i, "background", "#ffffff") ;break;}
  269. }
  270. */
  271. }
  272. //(e)
  273. //grd_opanstcnfmpatlist.refresh();
  274. }
  275. /**
  276. * @desc : 수술전상태평가표 기록지
  277. * @
  278. * @param :
  279. * @return :
  280. * @author : 박유미
  281. * @---------------------------------------------------
  282. */
  283. function fPreOpAssemRec() {
  284. sysf_messageBox("진료대상자리스트 수술탭에서 작성하시기 바랍니다.", "E");
  285. return;
  286. var formseqno = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "formseqno"); //model.getValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/formseqno");
  287. if( utlf_isNull( formseqno) || formseqno == "0") {
  288. if ( (ds_main_opanstcnfmpatlist.rowcount > 0) && (grd_opanstcnfmpatlist.currentrow >= 0 /*&& grd_opanstcnfmpatlist.mouseRow <= grd_opanstcnfmpatlist.rows*/) ) {
  289. ds_send_reqdata.clearData(); //model.removeNodeset("/root/send/reqdata");
  290. //model.makeNode("/root/send/reqdata");
  291. dsf_createDs("ds_temp_copy");
  292. dsf_copyColInfo(ds_temp_copy, ds_main_opanstcnfmpatlist);
  293. ds_temp_copy.addRow();
  294. ds_temp_copy.copyRow(0, ds_main_opanstcnfmpatlist, ds_main_opanstcnfmpatlist.rowposition);
  295. dsf_copyDs(ds_send_reqdata, ds_temp_copy, "replace"); //model.copyNode("/root/send/reqdata", sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]");
  296. //model.removeNodeset("/root/hidden/paminfo");
  297. //model.makeNode("/root/hidden/paminfo");
  298. var oParam = {};
  299. oParam.id = "TRMMO05502";
  300. oParam.service = "prcpmngtapp.OpMngt";
  301. oParam.method = "reqGetPatPamPrimaryKey";
  302. oParam.inds = "req=ds_send_reqdata";
  303. oParam.outds = "ds_hidden_paminfo=paminfo";
  304. oParam.async = false;
  305. oParam.callback = "cf_TRMMO05502";
  306. tranf_submit(oParam);
  307. var formcd = ds_init_formcd.getColumn(0, "hardcd"); //model.getValue("/root/init/formcd/hardcd/hardcd");
  308. frmf_setParameter("openmode", "newform"); //오픈모드는 “recform”
  309. frmf_setParameter("formcd", formcd);
  310. frmf_modal("SSMMR01100", "SSMMR01100", null, null, null, null, null, null, null, null, null, null, "M"); //modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  311. //술전평가표 저장후 formseqno 넘겨받음
  312. var param = frmf_getParameter("SSMMR01100_formrecseq");
  313. if(param != "" && param != "0") {
  314. ds_send_reqdata.clearData(); //model.removeNodeset("/root/send/reqdata");
  315. dsf_makeValue(ds_send_reqdata, "formseqno", "string", param); //model.makeValue("/root/send/reqdata/formseqno", param);
  316. dsf_makeValue(ds_send_reqdata, "oprsrvno", "string", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "oprsrvno"));
  317. dsf_makeValue(ds_main_opanstcnfmpatlist, "formseqno", "string", param); //model.makeValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/formseqno", param);
  318. var oParam = {};
  319. oParam.id = "TXMMO05502";
  320. oParam.service = "prcpmngtapp.OpMngt";
  321. oParam.method = "reqSetPreOpAssemRec";
  322. oParam.inds = "req=ds_send_reqdata";
  323. oParam.outds = "";
  324. oParam.async = false;
  325. oParam.callback = "cf_TXMMO05502";
  326. tranf_submit(oParam);
  327. frmf_clearParameter("SSMMR01100_formrecseq");
  328. } else if (param =="0" || isNull(param)){
  329. dsf_makeValue(ds_main_opanstcnfmpatlist, "formseqno", "string", ""); //model.makeValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/formseqno", "");
  330. frmf_clearParameter("SSMMR01100_formrecseq");
  331. }
  332. }
  333. } else{
  334. var pid = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "pid"); //model.getValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/pid");
  335. var hngnm = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "hngnm");
  336. var sa = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "sa");
  337. var orddeptnm = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "orddeptnm");
  338. var roomcd = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "roomcd");
  339. var oprsrvno = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "oprsrvno");
  340. var opcnfmdd = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "opcnfmdd");
  341. var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  342. frmf_setParameter("openmode", "recform"); //오픈모드는 “recform”
  343. frmf_setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
  344. frmf_setParameter("formrecseq", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "formseqno")); // model.getValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/formseqno")
  345. frmf_modal("SSMMR01100", "SSMMR01100", null, null, null, null, null, null, null, null, null, null, "M"); //modal("SSMMR01100", 1, 0, 0 ,"", "", "");
  346. var param = frmf_getParameter("SSMMR01100_formrecseq");
  347. if (param =="0"){
  348. dsf_makeValue(ds_main_opanstcnfmpatlist, "formseqno", "string", ""); //model.makeValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/formseqno", "");
  349. frmf_clearParameter("SSMMR01100_formrecseq");
  350. }
  351. }
  352. //model.refresh();
  353. }
  354. function cf_TXMMO05502(sSvcId, nErrorCode, sErrorMsg) {
  355. if(nErrorCode < 0) return;
  356. }
  357. function cf_TRMMO05502(sSvcId, nErrorCode, sErrorMsg) {
  358. if(nErrorCode < 0) {
  359. return;
  360. } else {
  361. if( "" == ds_hidden_paminfo.getColumn(0, "ioflag") ) { //dsc 환자(임의로 원무키값 setting함)
  362. var pid = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "pid"); //model.getValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/pid");
  363. var hngnm = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "hngnm");
  364. var sa = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "sa");
  365. var perfdeptnm = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "perfdeptnm");
  366. var roomcd = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "roomcd");
  367. var oprsrvno = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "oprsrvno");
  368. var opcnfmdd = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "opcnfmdd");
  369. var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + perfdeptnm +"▦" + roomcd + "▦";
  370. frmf_setParameter("pid", pid);
  371. frmf_setParameter("orddd", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "opcnfmdd") ); //확정일자
  372. frmf_setParameter("cretno", 0);
  373. frmf_setParameter("ioflag", "D");
  374. frmf_setParameter("orddeptcd", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "perfdeptcd") ); //집도과
  375. frmf_setParameter("orddrid", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "perfdrid") ); //집도의
  376. frmf_setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
  377. frmf_setParameter("oprsrvno", oprsrvno);
  378. frmf_setParameter("opcnfmdd", opcnfmdd);
  379. } else {
  380. var pid = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "pid"); //model.getValue(sOPANSTCNFM_PATH + "["+ grd_opanstcnfmpatlist.row +"]/pid");
  381. var hngnm = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "hngnm");
  382. var sa = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "sa");
  383. var orddeptnm = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "orddeptnm");
  384. var roomcd = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "roomcd");
  385. var oprsrvno = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "oprsrvno");
  386. var opcnfmdd = ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "opcnfmdd");
  387. var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
  388. frmf_setParameter("pid", ds_hidden_paminfo.getColumn(0, "pid"));
  389. frmf_setParameter("orddd", ds_hidden_paminfo.getColumn(0, "orddd"));
  390. frmf_setParameter("cretno", ds_hidden_paminfo.getColumn(0, "cretno"));
  391. frmf_setParameter("ioflag", ds_hidden_paminfo.getColumn(0, "ioflag"));
  392. frmf_setParameter("orddeptcd", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "orddeptcd"));
  393. frmf_setParameter("orddrid", ds_main_opanstcnfmpatlist.getColumn(ds_main_opanstcnfmpatlist.rowposition, "perfdrid"));
  394. frmf_setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
  395. frmf_setParameter("oprsrvno", oprsrvno);
  396. frmf_setParameter("opcnfmdd", opcnfmdd);
  397. }
  398. }
  399. }
  400. /**
  401. * @desc : 수술전달 사항(opdelivefact)컬럼 정보에 값이 있을 경우 SPMMO05500_수술전달사항 팝업
  402. @ 요구사항 : [요청번호: 13643, TASK번호: 51229, 우선순위:SY]
  403. @ 요청제목: 수술마취 일정 조정 대기자리스트 전달사항 컬럼 추가(기 반영된 사항 중 누락 건)
  404. * @authur : 김광성. kskim 2010.04.26
  405. * @---------------------------------------------------
  406. */
  407. function fOpenSPMMO05500(grdID){
  408. if(grdID == "grd_opanstcnfmpatlist"){
  409. // 화면에서 체크 후 이벤트 호출하는 로직으로 변경
  410. //if( isDataCell() ){
  411. // var colidx = grd_opanstcnfmpatlist.currentcol; //var col = grd_opanstcnfmpatlist.col;
  412. // var col = ds_main_opanstcnfmpatlist.getColID(colidx);
  413. // var delivfactCol = grd_opanstwaitpatlist.colRef("tempopdelivefact");
  414. var row = ds_main_opanstcnfmpatlist.rowposition;
  415. var opdelivefact = ds_main_opanstcnfmpatlist.getColumn(row, "opdelivefact"); //model.getValue(grd_opanstcnfmpatlist.nodeset + "[" + row + "]/opdelivefact");
  416. // if( !utlf_isNull(opdelivefact) && col == "tempopdelivefact" ){
  417. frmf_setParameter("SPMMO05500_param", opdelivefact);
  418. frmf_modal("SPMMO05500", "SPMMO05500", null, null, null, null, null, null, null, null, null, null, "M");
  419. //modal("SPMMO05500","1","600","250","SPMMO05500",'','','','', '', '');
  420. // }
  421. //}
  422. } else if(grdID == "grd_opanstwaitpatlist"){
  423. // //if( isDataCell() ){
  424. // var colidx = grd_opanstwaitpatlist.currentcol; //var col = grd_opanstwaitpatlist.col;
  425. // var col = ds_main_opanstwaitpatlist.getColID(colidx);
  426. var row = ds_main_opanstwaitpatlist.rowposition; //grd_opanstwaitpatlist.row;
  427. // var delivfactCol = grd_opanstwaitpatlist.colRef("tempopdelivefact");
  428. var opdelivefact = ds_main_opanstwaitpatlist.getColumn(row, "opdelivefact"); //model.getValue(grd_opanstwaitpatlist.nodeset + "[" + row + "]/opdelivefact");
  429. // if( !utlf_isNull(opdelivefact) && col == "tempopdelivefact" ){
  430. frmf_setParameter("SPMMO05500_param", opdelivefact);
  431. frmf_modal("SPMMO05500", "SPMMO05500", null, null, null, null, null, null, null, null, null, null, "M");
  432. //modal("SPMMO05500","1","600","250","SPMMO05500",'','','','', '', '');
  433. // }
  434. //}
  435. }
  436. }
  437. // 수술마취확정취소
  438. function fCancelOpAnstSche() {
  439. var str = "";
  440. var cnt = 0;
  441. var saveCnt = 0;
  442. var header = "oprsrvno▦ophistno▩";
  443. var savedata = "";
  444. for(var i = 0 ; i < ds_main_opanstcnfmpatlist.rowcount; i++){
  445. var opstatcd = ds_main_opanstcnfmpatlist.getColumn(i, "opstatcd"); //model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/opstatcd");
  446. if(opstatcd != 20 ){ //확정 상태에서만 선택 가능
  447. continue;
  448. }
  449. if( ds_main_opanstcnfmpatlist.getColumn(i, "sel") != "Y" ){ //선택 // model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/sel") != "Y"
  450. continue;
  451. }
  452. // 선택된 수술 중 카트 불출 상태가 불출 이전일 경우에만 취소 가능
  453. // model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/ccrtstat") == "N" || model.getValue(sOPANSTCNFM_PATH + "[" + i + "]/anstccrtstat") == "N"
  454. if ( ds_main_opanstcnfmpatlist.getColumn(i, "ccrtstat") == "N" || ds_main_opanstcnfmpatlist.getColumn(i, "anstccrtstat") == "N" ) {
  455. str = str + "["
  456. + utlf_transNullToEmpty(ds_main_opanstcnfmpatlist.getColumn(i, "pid")) + " "
  457. + utlf_transNullToEmpty(ds_main_opanstcnfmpatlist.getColumn(i, "hngnm")) + "]\t"
  458. + utlf_transNullToEmpty(ds_main_opanstcnfmpatlist.getColumn(i, "perfdeptnm")) + " "
  459. + utlf_transNullToEmpty(ds_main_opanstcnfmpatlist.getColumn(i, "perfdrnm")) + " - "
  460. + utlf_transNullToEmpty(ds_main_opanstcnfmpatlist.getColumn(i, "opnm")) + "\r\n" ;
  461. cnt ++;
  462. } else {
  463. savedata += ds_main_opanstcnfmpatlist.getColumn(i, "oprsrvno") + "▦"
  464. + ds_main_opanstcnfmpatlist.getColumn(i, "ophistno") + "▩";
  465. saveCnt ++;
  466. }
  467. }
  468. if (cnt > 0) {
  469. sysf_messageBox(str + "\r\n위 수술은 수술카트가 이미 불출된 상태이므로 확정취소가 불가능합니다.", "I999");
  470. }
  471. if (saveCnt > 0) {
  472. ds_send_canceldata.clearData(); //model.removeNodeset("/root/send/canceldata");
  473. dsf_setCSVToDs("ds_send_canceldata", header + savedata); //model.makeValue("/root/send/canceldata", header + savedata);
  474. var oParam = {};
  475. oParam.id = "TXMMO05503";
  476. oParam.service = "prcpmngtapp.OpMngt";
  477. oParam.method = "reqExeCancelOpAnstSche";
  478. oParam.inds = "req=ds_send_canceldata";
  479. oParam.outds = "";
  480. oParam.async = false;
  481. oParam.callback = "cf_TXMMO05503";
  482. tranf_submit(oParam);
  483. }
  484. }
  485. function cf_TXMMO05503(sSvcId, nErrorCode, sErrorMsg) {
  486. if(nErrorCode < 0) {
  487. return;
  488. } else {
  489. fReqOpAnstSche();
  490. }
  491. }
  492. function ds_main_opanstcnfmpatlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  493. {
  494. if ( e.columnid == "sel" ) {
  495. var currow = e.row;
  496. obj.setColumn(currow, e.columnid, (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  497. }
  498. }
  499. /**
  500. * @desc : EMR부서콤보 조회
  501. * @
  502. * @param : ref - reference path
  503. * rsltref - result reference path
  504. * orddeptflag- 진료과구분
  505. * @return :
  506. * @author : 오지훈
  507. * @---------------------------------------------------
  508. */
  509. /* 공통 js와 따로 사용하는 것인지 확인 필요
  510. function mmbfGetDeptCodeComboList(ref, rsltref, orddeptflag, stnddd){
  511. var mmb_rsltref = "/root/hidden/mmb/orddept";
  512. model.removeNode(mmb_rsltref);
  513. model.makeNode(mmb_rsltref);
  514. model.removeNode(ref);
  515. model.makeValue(ref + "/orddeptflag", orddeptflag);
  516. if(stnddd != ""){
  517. model.makeValue(ref + "/stnddd", stnddd);
  518. }
  519. if(submit("TRMMB04101", "false", ref, mmb_rsltref)==true){
  520. model.copyNode(rsltref, mmb_rsltref);
  521. model.removeNode(mmb_rsltref);
  522. }
  523. //model.refresh();
  524. }
  525. */
  526. /**
  527. * @desc : EMR사용자콤보 조회
  528. * @
  529. * @param : ref - reference path
  530. * rsltref - result reference path
  531. * deptcd - 부서코드
  532. * jobkindcd - 직종코드
  533. * jobposcd - 직책코드
  534. * specordyn - 선택진료여부
  535. * @return :
  536. * @author : 오지훈
  537. * @---------------------------------------------------
  538. */
  539. /* 공통 js와 따로 사용하는 것인지 확인 필요
  540. function mmbfGetUserComboList(ref, rsltref, deptcd, jobkindcd, specordyn){
  541. var mmb_rsltref = "/root/hidden/mmb/userlist";
  542. model.removeNode(mmb_rsltref);
  543. model.makeNode(mmb_rsltref);
  544. model.removeNode(ref);
  545. model.makeValue(ref + "/deptcd" , deptcd); //부서코드
  546. model.makeValue(ref + "/jobkindcd", jobkindcd); //직종코드(의사:0330)
  547. model.makeValue(ref + "/specordyn", specordyn); //선택진료여부
  548. if(submit("TRMMB04102", "false", ref, mmb_rsltref)==true){
  549. model.copyNode(rsltref, mmb_rsltref);
  550. model.removeNode(mmb_rsltref);
  551. }
  552. //model.refresh();
  553. }
  554. */
  555. /**
  556. * @desc : 콤보박스에 원하는 instance node와 value를 설정
  557. * @
  558. * @param :
  559. * @event :
  560. * @return :
  561. * @---------------------------------------------------
  562. */
  563. /* 공통 js와 따로 사용하는 것인지 확인 필요
  564. function addComboInstance(combopath, nodename, nodeval, parentnode){
  565. var xmlNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode);
  566. if(xmlNode == null){
  567. return;
  568. }
  569. nodename = nodename.split("^");
  570. nodeval = nodeval.split("^");
  571. if(nodename.length != nodeval.length){
  572. return;
  573. }
  574. var label = model.instances(0).createElement(nodename[0]);
  575. var val = model.instances(0).createElement(nodename[1]);
  576. var combo = model.instances(0).createElement(parentnode);
  577. label.value = "" + nodeval[0] + "";
  578. val.value = "" + nodeval[1] + "";
  579. combo.appendChild(label);
  580. combo.appendChild(val);
  581. chkNode = model.instances(0).selectSingleNode(combopath);
  582. if(chkNode == null){
  583. model.makeNode(combopath);
  584. srcNode = model.instances(0).selectSingleNode(combopath);
  585. }else{
  586. srcNode = model.instances(0).selectSingleNode(combopath);
  587. }
  588. desNode = model.instances(0).selectSingleNode(combopath + "/" + parentnode);
  589. srcNode.insertBefore(combo, desNode);
  590. //model.refresh();
  591. }
  592. */
  593. /**
  594. * @desc : 수술방 조회(combo 설정)
  595. * @param : opschedd - 수술예약일자
  596. * : queryflag - Query구분자(day : 일자, total : 전체, detl :부서, 의사, 일자 )
  597. * @return :
  598. * @authur : 오지훈 2007. 6. 30
  599. */
  600. /* lf_reqOpRoomList 와 따로? 확인 필요
  601. function reqOpRoomList(opschedd, desRef, queryflag, perfdeptcd, perfdrid){
  602. var resultRef = "/root/hidden/mmo/oproomlist";
  603. model.makeNode(resultRef);
  604. model.removeNodeset("/root/send/reqdata");
  605. model.makeValue("/root/send/reqdata/opschedd" , opschedd);
  606. model.makeValue("/root/send/reqdata/queryflag", queryflag);
  607. if(queryflag == "detl"){
  608. model.makeValue("/root/send/reqdata/perfdeptcd", perfdeptcd);
  609. model.makeValue("/root/send/reqdata/perfdrid" , perfdrid);
  610. }
  611. var rtnval = submit("TRMMO05704", false, "/root/send/reqdata", resultRef);
  612. if(rtnval == true){
  613. copyNodeType(desRef, resultRef, "replace");
  614. }
  615. }
  616. */
  617. /**
  618. * @desc : 하드코드 조회
  619. * @
  620. * @param : ref - reference path
  621. * rsltref - result reference path
  622. * hardcd - 하드코드
  623. * @return :
  624. * @author : 오지훈
  625. * @---------------------------------------------------
  626. */
  627. /* lf_reqHardCodeInfo 따로? 확인필요
  628. function reqHardCodeInfo(ref, rsltref, hardcd){
  629. var mmb_rsltref = "/root/hidden/mmb/hardcd";
  630. model.removeNode(mmb_rsltref);
  631. model.makeNode(mmb_rsltref);
  632. model.removeNode(ref);
  633. model.makeValue(ref + "/hardcd", hardcd);
  634. if(submit("TRMMB04103", "false", ref, mmb_rsltref)==true){
  635. model.copyNode(rsltref, mmb_rsltref);
  636. model.removeNode(mmb_rsltref);
  637. }
  638. //model.refresh();
  639. }
  640. */
  641. /**
  642. * @desc : 그리드 data 엑셀화일로 저장
  643. * @
  644. * @param :
  645. * @event :
  646. * @return :
  647. * @---------------------------------------------------
  648. */
  649. /* grdf_exportExcel 비교 확인 필요
  650. function saveGridToExcel(grdObj, colhiddenyn){
  651. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  652. if (isNull(colhiddenyn)) {
  653. colhidden = "true";
  654. } else {
  655. colhidden = colhiddenyn;
  656. }
  657. if (fileName != ""){
  658. grdObj.saveExcel(fileName, "SheetName", colhidden, true, "", "", true);
  659. }
  660. }
  661. */
  662. ]]></Script>