SMMNP00400.xjs 70 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
  3. 수술마취메인 (SMMNP00100.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. : Create By Francis Choi
  7. : 2015.05.02
  8. ---------------------------------------------------------------------- */
  9. var s1="";
  10. var arErrorCode = new HashArray();
  11. ///root/main/barcdprntsetup -> ds_barcdprntsetup
  12. /**
  13. * @group :
  14. * @ver : 2007.04.17
  15. * @by : Choi HakRok
  16. * @---------------------------------------------------
  17. * @type : function
  18. * @access : public
  19. * @desc : 수술 예약정보 가져오기
  20. * @param :
  21. * @return :
  22. * @---------------------------------------------------
  23. */
  24. function fInit(){
  25. //grp_opm.visible = true;
  26. //roundrect1.visible = true;
  27. //cap_state.visible = true;
  28. //수술명, 진단명,수술후 수술명 모두 보이기.2012.01.17_ 손성훈.
  29. group3.group1.chk_opnmen.value = "Y";
  30. group3.group1.chk_diagnmkr.value = "Y";
  31. group3.group1.visible = true;
  32. grp_btn.grp_opmdisc.visible = true;
  33. var param = frmf_getMenuParam();
  34. var node = sysf_getGlobalVariable("operation");
  35. dsf_setCSVToDs("ds_main_operation", node);
  36. group3.group2.inp_opddfr.value = utlf_getCurrentDate();
  37. group3.group2.inp_opddto.value = utlf_getCurrentDate();
  38. grdf_setGridSort(group3.switch1.opmain.grd_oppatlist);
  39. ds_main_cond.setColumn(0, "usernm", sysf_getUserName());
  40. ds_main_cond.setColumn(0, "orddd", utlf_getCurrentDate());//업무일자(Order Manage 조회일자)
  41. dsf_makeValue(ds_send, "flag", "string", "X");
  42. dsf_makeValue(ds_send, "searchitem", "string", "XX");
  43. dsf_makeValue(ds_send, "deptflag", "string", "011");
  44. var oParam = {};
  45. oParam.id = "TRMNP00107";
  46. oParam.service = "opanstapp.OpAnstPatMngt";
  47. oParam.method = "reqGetComboList";
  48. oParam.inds = "req=ds_send";
  49. oParam.outds = "ds_init_ComboLists_deptlist=deptlist ds_init_ComboLists_oproomlist=oproomlist ds_init_ComboLists_ccrtstatlist=ccrtstatlist";
  50. oParam.async = false;
  51. //oParam.callback = "cf_TRMNP00107";
  52. tranf_submit(oParam);
  53. var oParam = {};
  54. oParam.id = "TRMNP03004";
  55. oParam.service = "opanstapp.OpAnstStocMngt";
  56. oParam.method = "reqGetRosettelist";
  57. oParam.inds = "";
  58. oParam.outds = "ds_init_rosettelist=rosettelist";
  59. oParam.async = false;
  60. //oParam.callback = "cf_TRMNP03004";
  61. tranf_submit(oParam); // 수술실(Rosette) 가져오기
  62. dsf_makeValue(ds_send, "opcnfmdd", "string", ds_main_cond.getColumn(0, "opddfr"));
  63. dsf_makeValue(ds_send, "rosette", "string", ds_main_cond.getColumn(0, "oprosette"));
  64. var oParam = {};
  65. oParam.id = "TRMNP03002";
  66. oParam.service = "opanstapp.OpAnstCCrtGoodMngt";
  67. oParam.method = "reqGetOmcdlist";
  68. oParam.inds = "req=ds_send";
  69. oParam.outds = "ds_init_oproomlist=oproomlist";
  70. oParam.async = false;
  71. //oParam.callback = "cf_TRMNP03002";
  72. tranf_submit(oParam); // 수술실코드 가져오기
  73. frmf_addComboItem("group3.group2.cmb_oproomlist", "전체", "", "above");
  74. group3.group2.cmb_oproomlist.value = ds_main_cond.getColumn(0, "oproomcd");
  75. //addComboItem("cmb_oproomlist", "전 체", "", "above" ); //2009-03-16 TRMNP03004 추가로 인하여 삭제 처리
  76. frmf_addComboItem("group3.group2.cmb_orddept" , "전 체", "", "above" );
  77. frmf_addComboItem("group3.group2.cmb_ccrtstatlist", "전 체", "", "above" ); //2009/01/07 추가부분
  78. frmf_addComboItem("group3.group2.cmb_rosette" , "전 체", "", "above" );
  79. if( param == "ordmn" ) {//메뉴를 통해 Order Manage를 선택한 경우
  80. fSeletedToggle( param );
  81. }else {
  82. fSelectPos();
  83. }
  84. }
  85. /* --------------------------------------------------*/
  86. /* type : function */
  87. /* access : public */
  88. /* desc : 수술/마취 메인 조회 */
  89. /* param : */
  90. /* return : */
  91. /* --------------------------------------------------*/
  92. function fSelectPos() {
  93. var opflagcd, callyn;
  94. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  95. var nVScrollPos = group3.switch1.opmain.grd_oppatlist.vscrollbar.pos;
  96. var nHScrollPos = group3.switch1.opmain.grd_oppatlist.hscrollbar.pos;
  97. var oParam = {};
  98. oParam.id = "TRMNP00401";
  99. oParam.service = "opanstapp.OpAnstPatMngt";
  100. oParam.method = "reqGetOpPatInfo";
  101. oParam.inds = "reqdata=ds_send_reqdata";
  102. oParam.outds = "ds_main_opPatlist_opPatInfo=opPatInfo";
  103. oParam.async = false;
  104. oParam.callback = "cf_TRMNP00401";
  105. tranf_submit(oParam);
  106. grdf_clearSort(group3.switch1.opmain.grd_oppatlist);
  107. group3.switch1.opmain.grd_oppatlist.vscrollbar.pos = nVScrollPos;
  108. group3.switch1.opmain.grd_oppatlist.hscrollbar.pos = nHScrollPos;
  109. }
  110. function cf_TRMNP00401(sSvcId, nErrorCode, sErrorMsg) {
  111. if(nErrorCode < 0) return;
  112. var sPrcpCnt = 0;
  113. var sDispCnt = 0;
  114. ds_main_opPatlist_opPatInfo.addColumn("disp1img", "string");
  115. ds_main_opPatlist_opPatInfo.addColumn("disp2img", "string");
  116. ds_main_opPatlist_opPatInfo.addColumn("disp3img", "string");
  117. // 20190314 김현석, 비말주의 감염 정보 추가
  118. ds_main_opPatlist_opPatInfo.addColumn("disp4img", "string");
  119. ds_main_opPatlist_opPatInfo.addColumn("delivefactimg", "string");
  120. ds_main_opPatlist_opPatInfo.addColumn("blodprepimg", "string");
  121. var iRows = -1;
  122. iRows = ds_main_opPatlist_opPatInfo.rowcount;
  123. var refMsg = sErrorMsg;
  124. var refMsgCnt = refMsg.substring(0, 1);
  125. if( refMsgCnt == "0" ) {
  126. ds_main_opPatlist_opPatInfo.clearData();
  127. var objGrdOppatlist = group3.switch1.opmain.grd_oppatlist;
  128. if( group3.group1.chk_opnmen.value == "Y" ){
  129. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdenm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "opcdenm"), "size"), false);
  130. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  131. }else{
  132. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdenm"), 0, false);
  133. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  134. }
  135. if( group3.group1.chk_opnmkr.value == "Y" ){
  136. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdknm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "opcdknm"), "size"), false);
  137. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  138. }else{
  139. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdknm"), 0, false);
  140. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  141. }
  142. if( group3.group1.chk_afopnm.value == "Y" ){
  143. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "afopnm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "afopnm"), "size"), false);
  144. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "115";
  145. }else{
  146. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "afopnm"), 0, false);
  147. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "0";
  148. }
  149. return;
  150. }else{
  151. var ii = 0 ;
  152. var wCnfmDT = "";
  153. var sRoomCd = "";
  154. var wRoomCd = ds_main_opPatlist_opPatInfo.getColumn(0, "oproomcd");
  155. for( var i=0 ; i<iRows ; i++ ){
  156. wCnfmDT = ds_main_opPatlist_opPatInfo.getColumn(i, "opcnfmdd")
  157. + ds_main_opPatlist_opPatInfo.getColumn(i, "fstrgstdt").substr(0,4);
  158. ds_main_opPatlist_opPatInfo.setColumn(i, "fstrgstdt", wCnfmDT);
  159. sRoomCd = ds_main_opPatlist_opPatInfo.getColumn(i, "oproomcd");
  160. callyn = ds_main_opPatlist_opPatInfo.getColumn(i, "callyn");
  161. opflagcd = ds_main_opPatlist_opPatInfo.getColumn(i, "opflagcd");
  162. //expr로 처리
  163. /*if( !utlf_isNull(ds_main_opPatlist_opPatInfo.getColumn(i, "delivefact")) ){
  164. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("delivefactyn")) = "../../../com/commonweb/images/icon_list.gif";
  165. }else{
  166. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("delivefactyn")) = "";
  167. }*/
  168. if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp1") == "Y" ||
  169. ds_main_opPatlist_opPatInfo.getColumn(i, "disp2") == "Y" ||
  170. ds_main_opPatlist_opPatInfo.getColumn(i, "disp3") == "Y" ||
  171. // 20190314 김현석, 비말주의 감염 정보 추가
  172. ds_main_opPatlist_opPatInfo.getColumn(i, "disp4") == "Y"
  173. )
  174. {
  175. sDispCnt++;
  176. }
  177. // 20190314 김현석, 비말주의 감염 정보 추가
  178. // //이미지 expr로 처리시 시간이 오래걸려
  179. // //아래와같은 방식으로 처리하였음
  180. // if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp1") == "Y" ){
  181. // ds_main_opPatlist_opPatInfo.setColumn(i, "disp1img", "IMG::lis/injector_en.gif");
  182. // }
  183. // if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp2") == "Y" ){
  184. // ds_main_opPatlist_opPatInfo.setColumn(i, "disp2img", "IMG::lis/touch_en.gif");
  185. // }
  186. // if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp3") == "Y" ){
  187. // ds_main_opPatlist_opPatInfo.setColumn(i, "disp3img", "IMG::lis/air_en.gif");
  188. // }
  189. if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp1") == "Y" ){
  190. ds_main_opPatlist_opPatInfo.setColumn(i, "disp1img", "theme://images/btn_top_infection0.gif");
  191. }
  192. if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp2") == "Y" ){
  193. ds_main_opPatlist_opPatInfo.setColumn(i, "disp2img", "theme://images/btn_top_infection1.gif");
  194. }
  195. if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp3") == "Y" ){
  196. ds_main_opPatlist_opPatInfo.setColumn(i, "disp3img", "theme://images/btn_top_infection2.gif");
  197. }
  198. if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp4") == "Y" ){
  199. ds_main_opPatlist_opPatInfo.setColumn(i, "disp4img", "theme://images/btn_top_infection3.gif");
  200. }
  201. if( !utlf_isNull(ds_main_opPatlist_opPatInfo.getColumn(i, "delivefact")) ){
  202. ds_main_opPatlist_opPatInfo.setColumn(i, "delivefactimg", "IMG::lis/icon_list.png");
  203. }
  204. //expr로 처리
  205. /*//감염정보
  206. if( ds_main_opPatlist_opPatInfo.getColumn(i, "disp1") == "Y") {
  207. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp1img")) = "../../../com/hismainweb/images/injector_en.gif";
  208. }else{
  209. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp1img")) = "";
  210. }
  211. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp2") == "Y") {
  212. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp2img")) = "../../../com/hismainweb/images/touch_en.gif";
  213. }else{
  214. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp2img")) = "";
  215. }
  216. if (model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/disp3") == "Y") {
  217. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp3img")) = "../../../com/hismainweb/images/air_en.gif";
  218. }else{
  219. grd_oppatlist.cellstyle("background-image", i, grd_oppatlist.colRef("disp3img")) = "";
  220. }*/
  221. if( ds_main_opPatlist_opPatInfo.getColumn(i, "uncnfm") != "0/0/0" ){
  222. sPrcpCnt++;
  223. }
  224. //변경여부
  225. var cnfmcnclresncd = ds_main_opPatlist_opPatInfo.getColumn(i, "cnfmcnclresncd");
  226. if( cnfmcnclresncd == "302" || cnfmcnclresncd == "303" ){//수술시간변경(환자, 병원사유)
  227. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓣ");
  228. }else if( cnfmcnclresncd == "305" ) {//수술집도의 변경
  229. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓞ");
  230. }else if( cnfmcnclresncd == "301" ) {//수술명 변경
  231. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓝ");
  232. }else if( cnfmcnclresncd == "307" ) {//마취방법 변경
  233. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓐ");
  234. }else if( cnfmcnclresncd == "306" ) {//수술방 변경
  235. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓡ");
  236. }else if( cnfmcnclresncd == "308" ) {//수술집도과 변경
  237. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓓ");
  238. }else if( cnfmcnclresncd == "309" ) {//수술체위 변경
  239. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "ⓢ");
  240. }else{
  241. ds_main_opPatlist_opPatInfo.setColumn(i, "cnfmcnclresncd", "");
  242. }
  243. if( wRoomCd != sRoomCd ) {
  244. ii++;
  245. wRoomCd = sRoomCd;
  246. }
  247. //expr로 처리
  248. /*var sExprBack = "EXPR(";
  249. for( var j=0 ; j<ds_main_opPatlist_opPatInfo.rowcount ; j++ ){
  250. if( callyn == "Y" ){ //호출여부
  251. sExprBack += "currow == "+j+" ? '#c9d6b9' : ";
  252. }else if( ii % 2 == 0 ) {//짝수
  253. sExprBack += "currow == "+j+" ? '#FFFFFF' : ";
  254. }
  255. }
  256. sExprBack += "'#F7FFF7')";
  257. for( var j=0 ; j<group3.switch1.opmain.grd_oppatlist.getCellCount("Body") ; j++ ){
  258. group3.switch1.opmain.grd_oppatlist.setCellProperty("Body", j, "background", sExprBack);
  259. group3.switch1.opmain.grd_oppatlist.setCellProperty("Body", j, "background2", sExprBack);
  260. }*/
  261. //expr로 처리
  262. /*if( opflagcd == "1" || opflagcd == "3" ){//정규, 추가
  263. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2D2D";
  264. }
  265. if( opflagcd == "2" ) {//응급
  266. grd_oppatlist.rowstyle( i , "data", "color") = "#D22D2D";
  267. }
  268. // 2008-03-13 수정 요청으로... // 2008-08-22 오전 10:27:32 주석해제
  269. //if( opflagcd == "3" ) {//추가
  270. // grd_oppatlist.rowstyle( i , "data", "color") = "#000000";
  271. //}
  272. if( opflagcd == "4" ) {//취소
  273. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2DD2";
  274. }
  275. if( ds_main_opPatlist_opPatInfo.getColumn(i, "opstatcd").substr(1,1) == "9" ){//임시취소
  276. grd_oppatlist.rowstyle( i , "data", "color") = "#2D2DD2";
  277. }
  278. // 마취회복실 응급CCDBAG 사용 했는지 여부에 따라 면색 표기
  279. if( model.getValue("/root/main/opPatlist/opPatInfo["+i+"]/aerbgcd") != ""){
  280. grd_oppatlist.cellStyle("background-color",i, grd_oppatlist.colRef("ccrtstatnm"), i, grd_oppatlist.colRef("ccrtstatnm")) = "#FFFF00";
  281. }*/
  282. }
  283. var objGrdOppatlist = group3.switch1.opmain.grd_oppatlist;
  284. if( group3.group1.chk_opnmen.value == "Y" ){
  285. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdenm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "opcdenm"), "size"), false);
  286. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  287. }else{
  288. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdenm"), 0, false);
  289. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  290. }
  291. if( group3.group1.chk_opnmkr.value == "Y" ){
  292. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdknm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "opcdknm"), "size"), false);
  293. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  294. }else{
  295. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "opcdknm"), 0, false);
  296. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  297. }
  298. if( group3.group1.chk_diagnmen.value == "Y" ){
  299. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "diagengnm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "diagengnm"), "size"), false);
  300. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "115";
  301. }else{
  302. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "diagengnm"), 0, false);
  303. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdenm")) = "0";
  304. }
  305. if( group3.group1.chk_diagnmkr.value == "Y" ){
  306. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "diagcdnm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "diagcdnm"), "size"), false);
  307. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "115";
  308. }else{
  309. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "diagcdnm"), 0, false);
  310. //grd_oppatlist.colWidth(grd_oppatlist.colRef("opcdknm")) = "0";
  311. }
  312. if( group3.group1.chk_afopnm.value == "Y" ){
  313. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "afopnm"), objGrdOppatlist.getFormatColProperty(objGrdOppatlist.getBindCellIndex("body", "afopnm"), "size"), false);
  314. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "115";
  315. }else{
  316. objGrdOppatlist.setRealColSize(objGrdOppatlist.getBindCellIndex("body", "afopnm"), 0, false);
  317. //grd_oppatlist.colWidth(grd_oppatlist.colRef("afopnm")) = "0";
  318. }
  319. }
  320. // 혈액준비자 리스트 및 혈액표시 기능 조회 추가_20091007(ByJA)
  321. var blodpreppatlist = "";
  322. for( var i=0 ; i<objGrdOppatlist.rowcount ; i++ ){
  323. var blodprep = ds_main_opPatlist_opPatInfo.getColumn(i, "blodprepyn");
  324. if( blodprep == "Y" ){
  325. // 혈액준비자 리스트 값 셋팅
  326. if( utlf_isNull(blodpreppatlist) ){
  327. blodpreppatlist = ds_main_opPatlist_opPatInfo.getColumn(i, "hngnm");
  328. }else{
  329. blodpreppatlist = blodpreppatlist + ", " + ds_main_opPatlist_opPatInfo.getColumn(i, "hngnm");
  330. }
  331. // 혈액표시 이미지
  332. ds_main_opPatlist_opPatInfo.setColumn(i, "blodprepyn", "");
  333. ds_main_opPatlist_opPatInfo.setColumn(i, "blodprepimg", "IMG::emr/MN/blood.gif");
  334. //Expr로 처리
  335. //grd_oppatlist.cellstyle("background-image", i , grd_oppatlist.colRef("blodprepyn")) = "../../../emr/commonweb/images/blood.gif";
  336. }else{
  337. ds_main_opPatlist_opPatInfo.setColumn(i, "blodprepimg", "");
  338. //grd_oppatlist.cellstyle("background-image", i , grd_oppatlist.colRef("blodprepyn")) = "";
  339. }
  340. }
  341. ds_temp.setColumn(0, "blodpreplist", blodpreppatlist); // 혈액준비자 리스트
  342. ds_temp.setColumn(0, "sPrcpCnt", sPrcpCnt);
  343. ds_temp.setColumn(0, "sDispCnt", sDispCnt);
  344. }
  345. /* --------------------------------------------------*/
  346. /* type : function */
  347. /* access : public */
  348. /* desc : 콤보아이템 제거 */
  349. /* param : */
  350. /* return : */
  351. /* --------------------------------------------------*/
  352. function removeComboItem( comboID ) {
  353. var comboObj = document.all.item(comboID);
  354. var comboItemNodeSet = comboObj.choices.itemset.attribute("nodeset");
  355. model.removenode(comboItemNodeSet + "[1]");
  356. model.refresh();
  357. }
  358. /* --------------------------------------------------*/
  359. /* type : function */
  360. /* access : public */
  361. /* desc : 탭 메뉴 선택처리 함수 */
  362. /* param : selFlag : 선택 탭 구분값 */
  363. /* return : */
  364. /* --------------------------------------------------*/
  365. function fSeletedToggle( selFlag ) {
  366. if( utlf_isNull(fv_OrderDepth.ds_main_om_cond.getColumn(0, "hopedd")) ){
  367. fv_OrderDepth.ds_main_om_cond.setColumn(0, "hopedd", '4');
  368. fv_OrderDepth.ds_main_om_cond.setColumn(0, "hopefmdd", '');
  369. fv_OrderDepth.ds_main_om_cond.setColumn(0, "hopetodd", '');
  370. }
  371. switch(selFlag) {
  372. case "opm" :
  373. group3.switch1.tabindex = 0;
  374. fSelectPos();
  375. break;
  376. case "ordmn" :
  377. group3.switch1.tabindex = 1;
  378. fv_OrderDepth.fGetOMPatList("op"); //SMMNW00300화면 안에있는 함수
  379. break;
  380. }
  381. }
  382. /**
  383. * @group :
  384. * @ver : 2007.06.07
  385. * @by : Choi HAkRok
  386. * @---------------------------------------------------
  387. * @type : function
  388. * @access : public
  389. * @desc : 화면상단정보설정
  390. * @param :
  391. * @return :
  392. * @---------------------------------------------------
  393. */
  394. function fSetParam(){
  395. // 입원환자 화면상단정보 설정
  396. if( group3.switch1.opmain.grd_oppatlist.rowcount == 0 ){
  397. return;
  398. }else{
  399. var sPath = "ds_main_opPatlist_opPatInfo";
  400. var sPatFlag = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "oppatflagcd");
  401. if( ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opstatcd").substr(1,1) == "9" ){
  402. sysf_messageBox('취소된 자료는 선택', 'E001');
  403. return;
  404. }
  405. //2008-08-28 오전 9:26:44 taebum add 수술기록 관련 요구사항 처리중
  406. //var sOpenSusulOprsrvno = model.getAttribute("susulrec_oprsrvno");
  407. var sOpenSusulOprsrvno = sysf_getModelAttribute("susulrec_oprsrvno");
  408. var sCurrentOprsrvno = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "oprsrvno");
  409. if( !utlf_isNull(sOpenSusulOprsrvno) ){
  410. if( sOpenSusulOprsrvno != sCurrentOprsrvno ){
  411. //var sOpenSusulPid = model.getAttribute("susulrec_pid" );
  412. //var sOpenSusulHngnm = model.getAttribute("susulrec_hngnm");
  413. var sOpenSusulPid = sysf_getModelAttribute("susulrec_pid");
  414. var sOpenSusulHngnm = sysf_getModelAttribute("susulrec_hngnm");
  415. sysf_messageBox("등록번호 : "+sOpenSusulPid+" "+sOpenSusulHngnm+"님의 수술기록 작성 중 입니다. 작성완료 후 수술기록을 닫으시기 바랍니다.", "");
  416. return;
  417. }
  418. }
  419. //var sOpenTempOprsrvno = model.getAttribute("SuSulOrder_Temp_oprsrvno");
  420. var sOpenTempOprsrvno = sysf_getModelAttribute("SuSulOrder_Temp_oprsrvno");
  421. if( !utlf_isNull(sOpenTempOprsrvno) ){
  422. if(sOpenTempOprsrvno != sCurrentOprsrvno){
  423. //var sOpenTempPid = model.getAttribute("SuSulOrder_Temp_pid");
  424. //var sOpenTempHngnm = model.getAttribute("SuSulOrder_Temp_hngnm");
  425. var sOpenTempPid = sysf_getModelAttribute("SuSulOrder_Temp_pid");
  426. var sOpenTempHngnm = sysf_getModelAttribute("SuSulOrder_Temp_hngnm");
  427. sysf_messageBox("등록번호 : "+sOpenTempPid+" "+sOpenTempHngnm+"님의 수술/마취 간호처방 작성 중 입니다. 작성완료 후 수술/마취 간호처방을 닫으시기 바랍니다.", "");
  428. return;
  429. }
  430. }
  431. //2008-08-30 오후 2:52:48 taebum
  432. //환자구분이 DSC일 경우 수술구분이 정규이면서 현재일자가 수술일자 이전일 경우 CartList만
  433. //저장할 수 있도록 외래상단정보 세팅. 후 수술마취 간호처방에 parameter를 전송한다.
  434. /*
  435. var oppatflagnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oppatflagnm");
  436. var opflagcdnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opflagcdnm");
  437. if((oppatflagnm == "DSC") && (opflagcdnm == "정규") && ( sCurrentdd < opcnfmdd ))
  438. */
  439. //2008-09-26 오전 11:05:01 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  440. var sTmpIndd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "iindd");
  441. var orddeptcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "orddeptcd");
  442. var opcnfmdd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcnfmdd");
  443. var sCurrentdd = utlf_getCurrentDate();
  444. var sInordtype = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "inordtype");
  445. if( utlf_isNull(sTmpIndd) ){
  446. var sTmpPid = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "pid");
  447. ds_send_reqdata.setColumn(0, "pid", sTmpPid);
  448. ds_send_reqdata.setColumn(0, "opcnfmdd", opcnfmdd);
  449. ds_send_reqdata.setColumn(0, "orddeptcd", orddeptcd);
  450. var oParam = {};
  451. oParam.id = "TRMNP00108";
  452. oParam.service = "opanstapp.OpAnstPatMngt";
  453. oParam.method = "reqGetPidOtptInfo";
  454. oParam.inds = "reqdata=ds_send_reqdata";
  455. oParam.outds = "ds_HideData_otptinfo=otptinfo";
  456. oParam.async = false;
  457. //oParam.callback = "cf_TRMNP00108";
  458. tranf_submit(oParam);
  459. if( !utlf_isNull(ds_HideData_otptinfo.getColumn(0, "pid")) ){
  460. if( utlf_isNull(sPatFlag) ){
  461. sPatFlag = "O";
  462. }
  463. var param = "";
  464. if(sPatFlag == "D" || sPatFlag == "I" || sPatFlag == "E"){
  465. //외래환자 상단올리기
  466. //2009-05-11 YCD 외래 환자 상단정보 세팅 변경
  467. param = ds_HideData_otptinfo.getColumn(0, "ordtype") + "▦"
  468. + ds_HideData_otptinfo.getColumn(0, "pid") + "▦"
  469. + ds_HideData_otptinfo.getColumn(0, "orddd") + "▦"
  470. + ds_HideData_otptinfo.getColumn(0, "cretno") + "▦"
  471. + ds_HideData_otptinfo.getColumn(0, "instcd") + "▦"
  472. + "" + "▦"
  473. + ds_HideData_otptinfo.getColumn(0, "orgorddd");
  474. }else {
  475. param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  476. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "pid") + "▦" // 02 등록번호
  477. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcnfmdd") + "▦" // 03 수술시작일자
  478. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "cretno") + "▦" // 04 cretno(없는 경우 ""로 처리)
  479. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "instcd") + "▦" // 05 기관코드
  480. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "perfdeptcd") + "▦" // 06 집도과부서
  481. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "perfdrid1") + "▦" // 07 집도의ID
  482. + sPatFlag + "▦" // 08 환자구분
  483. + "F▦" // 09 F -처리구분 무조건 F로 설정
  484. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "oprsrvno") + "▦" // 10 수술예약번호
  485. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "ophistno") + "▦" // 11 수술이력번호
  486. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcnfmdd") + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  487. }
  488. //frmf_setParameter("condparam", param);
  489. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  490. appf_initPatientInfo(param); //상단정보 셋팅
  491. }
  492. }else {
  493. // sPatFlag = (sPatFlag == "O" ) ? "O" : "I";
  494. // sPatFlag = (sPatFlag == "D" ) ? "O" : sPatFlag;
  495. // if(sPatFlag != sInordtype) {
  496. // var status1="";
  497. // var status2="";
  498. //
  499. // if(sPatFlag == "I") {
  500. // status1="입원";
  501. // } else if(sPatFlag == "E") {
  502. // status1="응급";
  503. // }
  504. //
  505. // if(sInordtype == "I") {
  506. // status2="입원";
  507. // } else if(sInordtype == "E") {
  508. // status2="응급";
  509. // }
  510. //
  511. // sysf_messageBox(status2 + "환자가 " + "환자구분이 " + status1 + "으로 등록되어있습니다.", "I");
  512. //
  513. // return;
  514. // }
  515. if( utlf_isNull(sPatFlag) ){
  516. sPatFlag = "I";
  517. }
  518. var param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  519. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "pid") + "▦" // 02 등록번호
  520. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcnfmdd") + "▦" // 03 수술시작일자
  521. + "▦" // 04 cretno(없는 경우 ""로 처리)
  522. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "instcd") + "▦" // 05 기관코드
  523. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "perfdeptcd") + "▦" // 06 집도과부서
  524. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "perfdrid1") + "▦" // 07 집도의ID
  525. + sPatFlag + "▦" // 08 환자구분
  526. + "F▦" // 09 F -처리구분 무조건 F로 설정
  527. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "oprsrvno") + "▦" // 10 수술예약번호
  528. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "ophistno") + "▦" // 11 수술이력번호
  529. + ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcnfmdd") + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  530. //setParameter("condparam", param);
  531. //modal("SPMMO08900", 1, "", "", "", "SPMMO08900", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  532. appf_initPatientInfo(param); //상단정보 셋팅
  533. }
  534. var curNurType2Obj = frmf_findPopup("SMMNP00200");
  535. if( !utlf_isNull(curNurType2Obj) ){//준비확인이 열려있으면 상단 환자로 재조회2010.01.04 K.J.M
  536. curNurType2Obj.fFormInit();
  537. }
  538. }
  539. }
  540. //
  541. function fShowPopup(pData){
  542. var PopupName = "수술준비확인 #"
  543. + "간호일지 Type II #"
  544. + "마취간호처방 #"
  545. + "마약처방관리 #"
  546. + "혈액불출관리 #"
  547. + "현장검사입력 #"
  548. + "바코드출력 #"
  549. + "NAME LABEL 출력 #";
  550. var PopupNm = PopupName.split("#");
  551. var Idx = Number(pData);
  552. fSetParam(); // 상단정보 올리기
  553. switch(Idx) {
  554. case 0://수술준비확인
  555. frmf_setParameter("OpMenu", "O");
  556. frmf_open("SMMNP00200", "SMMNP00200", null, null, 1, 100, 100, null, null, null, null, null, "M");
  557. break;
  558. case 1://간호일지 Type II
  559. var parammsg = "recflag▦dutplaccd▦reclnkkey▩P▦900▦"+ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "oprsrvno")+","+sysf_getUserInfo("dutplceinstcd")+"▩";
  560. frmf_setParameter("SMMNR03400_ParamBase",parammsg);
  561. frmf_modal("SMMNR03400","SMMNR03400",null,"","","","","","","","","","M");
  562. break;
  563. case 2://마취간호처방
  564. /*
  565. var oppatflagnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/oppatflagnm");
  566. var opflagcdnm = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opflagcdnm");
  567. var opcnfmdd = model.getValue("/root/main/opPatlist/opPatInfo["+grd_oppatlist.row+"]/opcnfmdd");
  568. var sCurrentdd = getCurrentDate();
  569. if((oppatflagnm == "DSC") && (opflagcdnm == "정규") && ( sCurrentdd < opcnfmdd )){
  570. */
  571. //2008-09-30 오전 12:20:54 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  572. var sTmpIndd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "iindd");
  573. var orddeptcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "orddeptcd");
  574. var opcnfmdd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcnfmdd");
  575. var sCurrentdd = utlf_getCurrentDate();
  576. if( utlf_isNull(sTmpIndd) ){
  577. var iCurrentrow = group3.switch1.opmain.grd_oppatlist.currentrow;
  578. if(iCurrentrow > -1){
  579. var sOprsrvno = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "oprsrvno");
  580. var sInstcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "instcd");
  581. var sOphistno = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "ophistno");
  582. var sOphistcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "ophistcd");
  583. // model.setAttribute("SuSulOrder_Oprsinfo_oprsrvno", sOprsrvno);
  584. // model.setAttribute("SuSulOrder_Oprsinfo_instcd" , sInstcd);
  585. // model.setAttribute("SuSulOrder_Oprsinfo_ophistno", sOphistno);
  586. // model.setAttribute("SuSulOrder_Oprsinfo_ophistcd", sOphistcd);
  587. sysf_setModelAttribute("SuSulOrder_Oprsinfo_oprsrvno", sOprsrvno);
  588. sysf_setModelAttribute("SuSulOrder_Oprsinfo_instcd" , sInstcd);
  589. sysf_setModelAttribute("SuSulOrder_Oprsinfo_ophistno", sOphistno);
  590. sysf_setModelAttribute("SuSulOrder_Oprsinfo_ophistcd", sOphistcd);
  591. }
  592. }
  593. frmf_open("SMMNP01800", "SMMNP01800", null, null, 1, 100, 100, null, null, null, null, null, "M");
  594. break;
  595. case 3://마약처방관리
  596. frmf_open("SMADT30400", "SMADT30400", null, null, 1, 100, 100, null, null, null, null, null, "M");
  597. break;
  598. case 4://혈액불출관리
  599. frmf_setParameter("SMMNR010_Param", "IPRC1");
  600. frmf_open("SMMNR01000", "SMMNR01000", null, null, 1, 100, 100, null, null, null, null, null, "M");
  601. break;
  602. case 5://현장검사입력
  603. frmf_open("SMLLR91100", "SMLLR91100", null, null, 1, 100, 100, null, null, null, null, null, "M");
  604. break;
  605. case 6://바코드 출력
  606. frmf_open("SMLLC00200", "SMLLC00200", null, null, 1, 100, 100, null, null, null, null, null, "M");
  607. break;
  608. case 7://NAME LABEL 출력
  609. group3.group5.visible = true;//출력장수 선택
  610. //var iRow = -1;
  611. //iRow = grd_oppatlist.row;
  612. //var pid = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/pid");
  613. //var hngnm = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/hngnm");
  614. //var sexage = model.getValue("/root/main/opPatlist/opPatInfo[" + iRow + "]/sa");
  615. //fPrintNameLabel(pid, hngnm, sexage);
  616. break;
  617. case 8://수술간호기록
  618. frmf_open("SMMNP00300", "SMMNP00300", null, null, 1, 100, 100, null, null, null, null, null, "M");
  619. break;
  620. case 9://수술실 전광판관리
  621. frmf_open("SMMNP06100", "SMMNP06100", null, null, 1, 100, 100, null, null, null, null, null, "M");
  622. break;
  623. case 10://단문메시지 발송
  624. frmf_open("SPZMS00100", "SPZMS00100", null, null, 1, 100, 100, null, null, null, null, null, "M");
  625. break;
  626. case 11://이송요원호출
  627. var pid = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "pid");
  628. var prcpnm = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "opcdknm");
  629. var kind = "5";//기타
  630. var arvposcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "startposcd");
  631. var rsrvdt = "";
  632. //var startposcd = "3070000000";//수술실 부서코드
  633. var startposcd = sysf_getUserInfo("dutplcecd");
  634. fInsTranCallOP(pid, prcpnm, kind, rsrvdt, arvposcd, startposcd);
  635. //frmf_modal("SMMNB01800","SMMNB01800",null,"",1,200,200,"","","","","","M");
  636. break;
  637. case 12://보호자 호출
  638. var iRow = -1;
  639. var message = "";
  640. iRow = group3.switch1.opmain.grd_oppatlist.currentrow;
  641. var pid = ds_main_opPatlist_opPatInfo.getColumn(iRow, "pid");
  642. var patnm = ds_main_opPatlist_opPatInfo.getColumn(iRow, "hngnm");
  643. var oproomcd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "oproomcd");
  644. var oprsrvno = ds_main_opPatlist_opPatInfo.getColumn(iRow, "oprsrvno");
  645. var sa = ds_main_opPatlist_opPatInfo.getColumn(iRow, "sa");
  646. var opdd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "opcnfmdd");
  647. var callyn = ds_main_opPatlist_opPatInfo.getColumn(iRow, "callyn");
  648. var calltel = ds_main_opPatlist_opPatInfo.getColumn(iRow, "calltel");
  649. var opstatcd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "opstatcd");
  650. var curtDate = utlf_getCurrentDate();
  651. curtDate = curtDate.substring(0, 8);
  652. oproomcd = oproomcd.setReplaceWord("0", ""); //'0'을 공백으로 대체
  653. // 2009-03-02 ycd 호출 Message 선택 기능 추가로 인하여 삭제 처리
  654. //message = patnm + "(" + sa + ") 보호자분은 수술실 입구로 오시기 바랍니다.";
  655. if( (opstatcd == "10")||(opstatcd == "19")||(opstatcd == "20")||(opstatcd == "29")||(opstatcd == "39")||(opstatcd == "49")||(opstatcd == "50")||(opstatcd == "70") ){
  656. sysf_messageBox("수술 예정, 취소, 종료 환자는 보호자 호출을", "E001");
  657. return;
  658. }
  659. if( opdd == curtDate ) {
  660. if( !utlf_isNull(oprsrvno) ){
  661. if( callyn == "Y" ) {
  662. sysf_messageBox("이미 호출 중 ", "E008");
  663. }else {
  664. if( utlf_isNull(calltel) ) {//호출 전화번호가 없으면 N으로 셋팅
  665. //calltel = "N";
  666. sysf_messageBox("호출 전화번호가 ", "I004");
  667. return;
  668. }
  669. //2009-03-02 YCD Message 선택 화면 Parameter 설정 및 호출 추가
  670. frmf_setParameter("SPMNP00101_Param", "patnm▦oproomcd▩" + patnm + "▦" + oproomcd + "▩");
  671. frmf_setParameter("SPMNP00101_RtnData", "");
  672. frmf_modal("SPMNP00101","SPMNP00101",null,"","","","","","","","","","M");
  673. message = frmf_getParameter("SPMNP00101_RtnData");
  674. if( utlf_isNull(message) ){
  675. return;
  676. }
  677. ds_send_savedata.setColumn(0, "oprsrvno", oprsrvno);
  678. ds_send_savedata.setColumn(0, "message", message);
  679. ds_send_savedata.setColumn(0, "calltel", calltel);
  680. ds_send_savedata.setColumn(0, "patnm", patnm);
  681. ds_send_savedata.setColumn(0, "callyn", callyn);
  682. ds_send_savedata.setColumn(0, "stat", "I");
  683. var oParam = {};
  684. oParam.id = "TXMNP00101";
  685. oParam.service = "opanstapp.OpAnstPatMngt";
  686. oParam.method = "reqExeSaveCallProcer";
  687. oParam.inds = "savedata=ds_send_savedata";
  688. oParam.outds = "";
  689. oParam.async = false;
  690. //oParam.callback = "cf_TXMNP00101";
  691. tranf_submit(oParam);
  692. sysf_messageBox("호출 ", "I002");
  693. }
  694. }else {
  695. sysf_messageBox("수술예약번호가 ", "I004");
  696. }
  697. }else {
  698. sysf_messageBox("현재 날짜 이외의 환자는 호출 ", "E001");
  699. }
  700. fSelectPos();
  701. break;
  702. case 13://보호자 호출취소
  703. var iRow = -1;
  704. iRow = group3.switch1.opmain.grd_oppatlist.currentrow;
  705. var oprsrvno = ds_main_opPatlist_opPatInfo.getColumn(iRow, "oprsrvno");
  706. var callyn = ds_main_opPatlist_opPatInfo.getColumn(iRow, "callyn");
  707. var opdd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "opcnfmdd");
  708. var curtDate = utlf_getCurrentDate();
  709. curtDate = curtDate.substring(0, 8);
  710. if( opdd == curtDate ) {
  711. if( !utlf_isNull(oprsrvno) ){
  712. if( callyn != "Y" ) {
  713. sysf_messageBox("미호출 상태 ", "E008");
  714. }else {
  715. ds_send_savedata.setColumn(0, "oprsrvno", oprsrvno);
  716. ds_send_savedata.setColumn(0, "stat", "C");
  717. var oParam = {};
  718. oParam.id = "TXMNP00101";
  719. oParam.service = "opanstapp.OpAnstPatMngt";
  720. oParam.method = "reqExeSaveCallProcer";
  721. oParam.inds = "savedata=ds_send_savedata";
  722. oParam.outds = "";
  723. oParam.async = false;
  724. //oParam.callback = "cf_TXMNP00101";
  725. tranf_submit(oParam);
  726. sysf_messageBox("호출 취소를 ", "I002");
  727. }
  728. }else {
  729. sysf_messageBox("수술예약번호가 ", "I004");
  730. }
  731. }else {
  732. sysf_messageBox("현재 날짜 이외의 환자는 호출 취소", "E001");
  733. }
  734. fSelectPos();
  735. break;
  736. case 14://입 실 취 소
  737. // 직위 1140:간호사, 1110:수간호사
  738. // if (getUserInfo("jobposcd") == "1140" ||
  739. // getUserInfo("jobposcd") == "1110" ) {
  740. // fInOutRoomSave("9"); // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  741. // } else {
  742. // alert("입실 취소는 수간호사 선생님만 가능합니다.("+getUserInfo("jobkindnm")+")");
  743. // return;
  744. // }
  745. fInOutRoomSave("9"); // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  746. break;
  747. case 15://재수술 승인/취소
  748. // 2009-03-02 YCD 재수술일 경우 수술전준비확인 없이 간호기록이 가능하도록 처리 하기 위하여 재수술 체크 누락건에 한에서 간호에서
  749. // 재수술 승인을 할 수 있도록 처리하도록 함. 취소는 간호사가 재수술 승인한 경우에만 가능함.
  750. var iRow = -1;
  751. iRow = group3.switch1.opmain.grd_oppatlist.currentrow;
  752. var pid = ds_main_opPatlist_opPatInfo.getColumn(iRow, "pid");
  753. var patnm = ds_main_opPatlist_opPatInfo.getColumn(iRow, "hngnm");
  754. var oproomcd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "oproomcd");
  755. var oprsrvno = ds_main_opPatlist_opPatInfo.getColumn(iRow, "oprsrvno");
  756. var sa = ds_main_opPatlist_opPatInfo.getColumn(iRow, "sa");
  757. var opdd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "opcnfmdd");
  758. var callyn = ds_main_opPatlist_opPatInfo.getColumn(iRow, "callyn");
  759. var calltel = ds_main_opPatlist_opPatInfo.getColumn(iRow, "calltel");
  760. var opstatcd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "opstatcd");
  761. var reopflag = ds_main_opPatlist_opPatInfo.getColumn(iRow, "reopflag");
  762. var nursreoprgstid = ds_main_opPatlist_opPatInfo.getColumn(iRow, "nursreoprgstid");
  763. var nursreoprgstdt = ds_main_opPatlist_opPatInfo.getColumn(iRow, "nursreoprgstdt");
  764. var nursreopcncldt = ds_main_opPatlist_opPatInfo.getColumn(iRow, "nursreopcncldt");
  765. var indd = ds_main_opPatlist_opPatInfo.getColumn(iRow, "iindd");
  766. var procflag = "E"; //R : 재수술 처리, C : 재수술 취소, E : 실행 종료 처리
  767. var rtnmsg = "";
  768. if(reopflag == "Y"){ //재수술 체크가 되어 있을 경우
  769. if(nursreoprgstid == "-"){
  770. procflag = "E";
  771. sysf_messageBox("의사 재수술 지정 스케쥴입니다.", "I000");
  772. return;
  773. }else{
  774. procflag = "C";
  775. }
  776. }else{
  777. procflag = "R";
  778. }
  779. if(procflag == "R"){
  780. rtnmsg = sysf_messageBox("재수술 처리를","Q004");
  781. }else if(procflag == "C"){
  782. rtnmsg = sysf_messageBox("재수술 취소 처리를","Q004");
  783. }else{
  784. return;
  785. }
  786. if(rtnmsg == "6"){
  787. ds_send_savedata.setColumn(0, "oprsrvno", oprsrvno);
  788. ds_send_savedata.setColumn(0, "procflag", procflag);
  789. ds_send_savedata.setColumn(0, "pid", pid);
  790. ds_send_savedata.setColumn(0, "opcnfmdd", opdd);
  791. var oParam = {};
  792. oParam.id = "TXMNP00103";
  793. oParam.service = "opanstapp.OpAnstPatMngt";
  794. oParam.method = "reqExeReOpProc";
  795. oParam.inds = "savedata=ds_send_savedata";
  796. oParam.outds = "";
  797. oParam.async = false;
  798. //oParam.callback = "cf_TXMNP00103";
  799. tranf_submit(oParam);
  800. }else{
  801. return;
  802. }
  803. fSelectPos();
  804. break;
  805. case 16:
  806. var pid = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "pid");
  807. var hngnm = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "hngnm");
  808. var orddeptcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "orddeptcd");
  809. var medispclid = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "medispclid");
  810. var diag = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "diagcdnm");
  811. var diagcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "diagcd");
  812. var sexagestr = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "sa").split("/");
  813. if( sexagestr[0] == "F" ){ var sex = "여자"; }
  814. if( sexagestr[0] == "M" ){ var sex = "남자"; }
  815. var age = sexagestr[1];
  816. var wardcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "wardcd");
  817. var roomcd = ds_main_opPatlist_opPatInfo.getColumn(ds_main_opPatlist_opPatInfo.rowposition, "patposplcecd");
  818. var ioflag = "I";
  819. frmf_setParameter("SMMQR00100_PARAM", pid + "▦" + hngnm + "▦" + orddeptcd + "▦" + medispclid + "▦" + diag + "▦" + diagcd + "▦" + sex + "▦" + age + "▦" + wardcd + "▦" + roomcd + "▦" + ioflag);
  820. frmf_modal("SMMQR00100","SMMQR00100",null,"","","","","","","","","","M");
  821. break;
  822. default :
  823. break;
  824. }
  825. // }
  826. }
  827. // ------------------------------------------------------------------------------------------------
  828. // 수술기록 1:입실저장,2:퇴실저장,9:입실취소 등록/수정/삭제 요청을 처리한다.
  829. // 진행상태 (opstatcd)가 50보다 작은것만 입실취소가 가능하다.(코드정의서 M0015)
  830. // 00 : 임시, 10 : 의뢰, 20 : 확정, 30 : 대기, 40 : 수술중, 50 : 퇴실, 60 : 회복중, 70 : 퇴실
  831. // 09 : 임시취소, 19 : 의뢰취소, 29 : 확정취소
  832. // ------------------------------------------------------------------------------------------------
  833. function fInOutRoomSave(pFlag){
  834. var wRow = group3.switch1.opmain.grd_oppatlist.currentrow;
  835. var wDataPath = "ds_main_opPatlist_opPatInfo"
  836. sPid = ds_main_opPatlist_opPatInfo.getColumn(wRow, "pid"); // 01 환자번호
  837. sOprsrvno = ds_main_opPatlist_opPatInfo.getColumn(wRow, "oprsrvno"); // 02 수술예약(의뢰)번호(년도+일련번호)
  838. sOphistno = ds_main_opPatlist_opPatInfo.getColumn(wRow, "ophistno"); // 03 예약번호에따른이력번호
  839. sInstcd = ds_main_opPatlist_opPatInfo.getColumn(wRow, "instcd"); // 04 기관코드
  840. sJobProc = "pid" + "▦" // 01 환자번호
  841. + "oprsrvno" + "▦" // 02 수술예약
  842. + "ophistno" + "▦" // 03 이력번호
  843. + "instcd" + "▦" // 04 기관코드
  844. + "jobflag" + "▩" // 05 작업구분(1:입실저장,2:퇴실저장,9:입실취소)
  845. + sPid + "▦" // 01 환자번호
  846. + sOprsrvno + "▦" // 02 수술예약
  847. + sOphistno + "▦" // 03 이력번호
  848. + sInstcd + "▦" // 04 기관코드
  849. + pFlag + "▩" // 05 작업구분(1:입실저장,2:퇴실저장,9:입실취소)
  850. dsf_setCSVToDs("ds_send_JobProc", sJobProc);
  851. var oParam = {};
  852. oParam.id = "TXMNP00102";
  853. oParam.service = "opanstapp.OpAnstPatMngt";
  854. oParam.method = "reqExeMmodOprrOpCancel";
  855. oParam.inds = "JobProc=ds_send_JobProc";
  856. oParam.outds = "";
  857. oParam.async = false;
  858. oParam.callback = "cf_TXMNP00102";
  859. tranf_submit(oParam);
  860. if( arErrorCode.pop("TXMNP00102") > -1 ){ // 수술간호기록정보 입실취소
  861. sysf_messageBox("입실취소가", "I002");
  862. }
  863. }
  864. function cf_TXMNP00102(sSvcId, nErrorCode, sErrorMsg) {
  865. arErrorCode.push(sSvcId, nErrorCode);
  866. }
  867. /**
  868. * @group :
  869. * @ver : 2010.11.19
  870. * @by : DARK9258
  871. * @---------------------------------------------------
  872. * @type : function
  873. * @access : public
  874. * @desc : 환자 name라벨 출력
  875. * @param :
  876. * @return :
  877. * @---------------------------------------------------
  878. */
  879. function fPrintNameLabel(pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, pPort,roomcd, allyn){
  880. ////////////////////////////////////////////////////////////////////////////////////////// 원본_20090522
  881. // //20080905 port찾기
  882. // //port정보 가져오기
  883. // model.removenode('/root/send');
  884. // model.removenode('/root/main/barcdprntsetup');
  885. // model.makenode('/root/main/barcdprntsetup');
  886. // model.makeValue('/root/send/scrnid', 'SMMNP00100');
  887. // if(submit('TRLLC90101')){
  888. // pPort = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  889. // }
  890. //
  891. // if(document.all("CommAX") != null) {
  892. // //바코드 출력 시작
  893. //
  894. // var portOpenTF = "";
  895. //
  896. // // CommPort 설정
  897. // if (pPort == "" || pPort == null || pPort == " ") {
  898. // CommAX.CommPort = "1"; // default port setting
  899. // } else {
  900. // CommAX.CommPort = pPort; //Port 설정
  901. // }
  902. //
  903. // CommAX.Settings = "9600,n,8,1";
  904. //
  905. // portOpenTF = CommAX.PortOpen("true"); //Port Open
  906. //
  907. // if(portOpenTF == "TRUE") {
  908. //
  909. // var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  910. // var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  911. //
  912. // if(iLeft == "" || iLeft == "-"){
  913. // iLeft = 0;
  914. // }
  915. // if(iTop == "" || iTop == "-"){
  916. // iTop = 0;
  917. // }
  918. //
  919. // var sData = "^XA^LH0,20";//출력시작점
  920. //
  921. // //출력일
  922. // var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  923. // sData += "^CFA,20,20";//bold, height, width
  924. // sData += "^FO10,20";//위치지정(x축, y축)
  925. // sData += "^FD"+ prndd + "^FS";
  926. //
  927. // //수술정보
  928. // var opinfo = oproomcdnm + "R " + depthngnm + " " + pid;
  929. // sData += CommAX.PrtImgOut(20, 60, opinfo, 1, 1);//PrtImgOut(x축, y축, data, width, heigt)
  930. // sData += CommAX.HanImageData();
  931. //
  932. //
  933. // //환자명
  934. // //글자수가 4이상이면 left정렬 4이하이면 center정렬
  935. // var hx = 20; var hy = 105;
  936. // /*var len = hngnm.length;
  937. // if(len > 4){
  938. // hx = 10;
  939. // }else if(len == 4){
  940. // hx = 90;
  941. // }else if(len == 3){
  942. // hx = 120;
  943. // }else if(len == 2){
  944. // hx = 150;
  945. // }else if(len == 1){
  946. // hx = 180;
  947. // }*/
  948. // sData += CommAX.PrtImgOut(hx, hy, hngnm, 2, 2);//PrtImgOut(x축, y축, data, width, heigt)
  949. // sData += CommAX.HanImageData();
  950. //
  951. // //sexage
  952. // sData += "^CFE,20,20";
  953. // sData += "^FO300,120";//위치지정
  954. // sData += "^FD"+ sexage + "^FS";
  955. //
  956. // sData += "^PQ"+ prncnt + "^XZ";//출력장수
  957. //
  958. // CommAX.SendMessage(sData); // 출력
  959. // CommAX.PortOpen("false"); // 출력종료
  960. //
  961. //
  962. // } else {
  963. // messageBox("아래 사항을 확인후 재출력해주십시오."
  964. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  965. // + " \n 2.케이블 확인"
  966. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  967. // return;
  968. // }
  969. // }
  970. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  971. // SATO용 추가_20090522(ByJA)
  972. if(prncnt > 0){
  973. //1. 바코드 라벨 설정값 조회
  974. var scrnid = "SMMNP00400";
  975. ds_barcdprntsetup.clearData();
  976. fGetBarCodeInfo(scrnid); // CareCom.js
  977. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  978. //XML string 값을 파라미터로 넘김
  979. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  980. var sParamObj = new Object();
  981. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  982. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  983. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  984. sysf_trace(succYn);
  985. // => retrun DS
  986. // : ds_data_setupinfo(prntkind, commkind)
  987. // : ds_data_comm01(setupval)
  988. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  989. // : ds_data_comm03(setupval)
  990. // : ds_data_blank(left, top)
  991. // ------------------------------------------------------------------------------------------------------------
  992. lzzfMakeBrcdPrntObjHanDo("CommAX");
  993. //2. 바코드 라벨 환경설정
  994. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  995. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  996. /** <addon>
  997. *개발일시: 2010.05.13
  998. *개발자: 양천덕
  999. *요청병원: 세종병원
  1000. *요청파트: 간호
  1001. *개발내용: 바코드 출력 형식 변경으로 수정 처리(수술)
  1002. </addon>
  1003. */
  1004. if(allyn == "N") {
  1005. fPrtORPatNameLabel(barcdRef, pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, roomcd);
  1006. } else if(allyn == "Y") {
  1007. fPrtAllORPatNameLabel(barcdRef);
  1008. } else if(allyn == "T") {
  1009. var nPid, sHngnm, nSexage, sOproomcdnm, sDepthngnm, sRoomcd, nPrncnt;
  1010. for(var i=0; i<ds_prnt_opPatlist.rowcount; i++){
  1011. nPid = ds_prnt_opPatlist.getColumn(i, "pid");
  1012. sHngnm = ds_prnt_opPatlist.getColumn(i, "hngnm");
  1013. nSexage = ds_prnt_opPatlist.getColumn(i, "sa");
  1014. sOproomcdnm = ds_prnt_opPatlist.getColumn(i, "oproomcdnm");
  1015. sDepthngnm = ds_prnt_opPatlist.getColumn(i, "depthngnm");
  1016. sRoomcd = ds_prnt_opPatlist.getColumn(i, "roomcd");
  1017. nPrncnt = ds_prnt_opPatlist.getColumn(i, "prntcnt");
  1018. fPrtORPatNameLabel(barcdRef, nPid, sHngnm, nSexage, sOproomcdnm, sDepthngnm, nPrncnt, sRoomcd);
  1019. }
  1020. }
  1021. return;
  1022. //실행안됨
  1023. // //3. 환자라벨출력
  1024. // var esc = String.fromCharCode(27);
  1025. // var sPrntKind = model.getvalue(barcdRef + "/prntkind");
  1026. // var iLeft = model.getValue(barcdRef + "[1]/blank/left");
  1027. // var iTop = model.getValue(barcdRef + "[1]/blank/top");
  1028. // var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  1029. // if(iLeft == "" || iLeft == "-"){
  1030. // iLeft = 0;
  1031. // }
  1032. // if(iTop == "" || iTop == "-"){
  1033. // iTop = 0;
  1034. // }
  1035. //
  1036. // // SATO일 경우
  1037. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  1038. // // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  1039. // var sSndMsg = esc + "A" + esc + "A103500500";
  1040. //
  1041. // // 출력할 데이터 생성
  1042. // sSndMsg += esc + "V" + (parseInt(iTop)+20) + esc + "H" + (parseInt(iLeft)+50) + esc + "M" + prndd;
  1043. // sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+60 , parseInt(iLeft)+50, oproomcdnm + "R " + depthngnm + " " + pid, 1, 1); // 한글출력시 PrtImgOut함수 이용
  1044. // sSndMsg += CommAX.PrtImgOut(parseInt(iTop)+105, parseInt(iLeft)+50, hngnm, 2, 2); // 한글출력시 PrtImgOut함수 이용
  1045. // sSndMsg += esc + "V" + (parseInt(iTop)+120) + esc + "H" + (parseInt(iLeft)+320) + esc + "M" + sexage;
  1046. //
  1047. // // 종료 및 출력물 출력수량
  1048. // sSndMsg += esc + "Q" + prncnt + esc + "Z";
  1049. // var a = CommAX.SendMsg(sSndMsg);
  1050. // CommAX.PortOpen("false");
  1051. // }
  1052. // // SATO가 아닐 경우(기존)
  1053. // else{
  1054. // if(portOpenTF == "TRUE"){
  1055. // var sData = "^XA^LH0,20";//출력시작점
  1056. // sData += "^CFA,20,20^FO"+(parseInt(iLeft)+10)+","+(parseInt(iTop)+20)+"^FD"+ prndd + "^FS"; //출력일 bold, height, width, 위치지정(x축, y축)
  1057. // sData += CommAX.PrtImgOut((parseInt(iLeft)+20),(parseInt(iTop)+60) , oproomcdnm + "R " + depthngnm + " " + pid, 1, 1);//수술정보 PrtImgOut(x축, y축, data, width, heigt)
  1058. // sData += CommAX.HanImageData();
  1059. // sData += CommAX.PrtImgOut((parseInt(iLeft)+20),(parseInt(iTop)+105), hngnm, 2, 2);//환자명 글자수가 4이상이면 left정렬 4이하이면 center정렬 PrtImgOut(x축, y축, data, width, heigt)
  1060. // sData += CommAX.HanImageData();
  1061. // sData += "^CFE,20,20^FO"+(parseInt(iLeft)+300)+","+(parseInt(iTop)+120)+"^FD"+ sexage + "^FS";
  1062. // sData += "^PQ"+ prncnt + "^XZ";//출력장수
  1063. // CommAX.SendMessage(sData); // 출력
  1064. // CommAX.PortOpen("false"); // 출력종료
  1065. // } else {
  1066. // messageBox("아래 사항을 확인후 재출력해주십시오."
  1067. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  1068. // + " \n 2.케이블 확인"
  1069. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  1070. // return;
  1071. // }
  1072. // }
  1073. }
  1074. }
  1075. /**
  1076. * @group :
  1077. * @ver : 2007.10.17
  1078. * @by : Grace
  1079. * @---------------------------------------------------
  1080. * @type : function
  1081. * @access : public
  1082. * @desc : Exel 저장
  1083. * @param :
  1084. * @return :
  1085. * @---------------------------------------------------
  1086. */
  1087. function fSaveExcel(){
  1088. var opfromdd = ds_main_cond.getColumn(0, "opddfr");
  1089. var optodd = ds_main_cond.getColumn(0, "opddto");
  1090. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  1091. var oParam = {};
  1092. oParam.id = "TRMNP00106";
  1093. oParam.service = "opanstapp.OpAnstPatMngt";
  1094. oParam.method = "reqGetOpPatInfoExcel";
  1095. oParam.inds = "reqdata=ds_send_reqdata";
  1096. oParam.outds = "ds_main_oppatinfoexcel=oppatinfoexcel";
  1097. oParam.async = false;
  1098. //oParam.callback = "cf_TRMNP00106";
  1099. tranf_submit(oParam);
  1100. dsf_setTypeFormat(ds_main_oppatinfoexcel, "totopmin:INT^totperfmin:INT");
  1101. if( group3.grd_excel.rowcount > 0 ){
  1102. grdf_exportExcel(group3.grd_excel, "수술스케쥴("+opfromdd+"~"+optodd+")", "SheetName", false, "", "user", false);
  1103. } else {
  1104. sysf_messageBox("조회된 데이터가 ", "I004");
  1105. return;
  1106. }
  1107. }
  1108. /**
  1109. * @group :
  1110. * @ver : 2008.07.19
  1111. * @by : Grace
  1112. * @---------------------------------------------------
  1113. * @type : function
  1114. * @access : public
  1115. * @desc : 출력
  1116. * @param :
  1117. * @return :
  1118. * @---------------------------------------------------
  1119. */
  1120. function fPrntSche(){
  1121. var objDOM = rptf_createDOM(); // DOM 객체 설정
  1122. // rptf_setNodeListToDOM(objDOM, "root/main/opPatlist", ds_main_opPatlist_opPatInfo); // 데이터셋
  1123. rptf_setNodeListToDOM(objDOM, "root/main/opPatlist/opPatInfo", ds_main_opPatlist_opPatInfo); // 데이터셋
  1124. // rptf_setNodeListToDOM(objDOM, "root/main/opPatlist/opPatInfo", ds_main_opPatlist_opPatInfo); // 데이터셋
  1125. var opnmen = ds_temp.getColumn(0, "opnmen");
  1126. var diagnmen = ds_temp.getColumn(0, "diagnmen");
  1127. if( opnmen == "Y" ) {
  1128. rptf_setValueToDOM(objDOM, "/root/send/report/opnmflag", "E");
  1129. }else {
  1130. rptf_setValueToDOM(objDOM, "/root/send/report/opnmflag", "H");
  1131. }
  1132. // 진단명(영문/한글)별 출력화면 달리 설정_손성훈.
  1133. if( diagnmen == "Y" ) {
  1134. rptf_setValueToDOM(objDOM, "/root/send/report/diagnmflag", "E");
  1135. }else {
  1136. rptf_setValueToDOM(objDOM, "/root/send/report/diagnmflag", "H");
  1137. }
  1138. var objParam = new Object();
  1139. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  1140. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  1141. rptf_exeReportPreview30(["RPMNP00100"],[objParam], option);
  1142. }
  1143. /**
  1144. * @group :
  1145. * @ver : 2008.08.26
  1146. * @by : 김 진 명
  1147. * @---------------------------------------------------
  1148. * @type : function
  1149. * @access : public
  1150. * @desc : 수술실 이송요원 호출 함수
  1151. * @param :
  1152. * @return :
  1153. * @---------------------------------------------------
  1154. */
  1155. function fInsTranCallOP(pid, prcpnm, kind, rsrvdt, arvposcd, startposcd){
  1156. frmf_setParameter("status", "OP");
  1157. frmf_setParameter("pid", pid);
  1158. frmf_setParameter("prcpnm", prcpnm);
  1159. frmf_setParameter("kind", kind);
  1160. frmf_setParameter("rsrvdt", rsrvdt);
  1161. frmf_setParameter("arvposcd", arvposcd);
  1162. frmf_setParameter("startposcd", startposcd);
  1163. frmf_modal("SMMNW14100","SMMNW14100",null,"",1,300,150,"","","","","","M");
  1164. }
  1165. /**
  1166. * @desc : 화면ID에 해당하는 컬럼순서를 조회한다.
  1167. * @
  1168. * @param :
  1169. * @return :
  1170. * @author : 김영학
  1171. * @---------------------------------------------------
  1172. */
  1173. function reqOrderInfoOfCol(scrnid, grdid, compscd){
  1174. ds_send_reqdata.setColumn(0, "scrnid", scrnid);
  1175. ds_send_reqdata.setColumn(0, "compscd", compscd);
  1176. var oParam = {};
  1177. oParam.id = "TRMNB02401";
  1178. oParam.service = "wardcareapp.WardBizMngt";
  1179. oParam.method = "reqGetUserScrnEnvEstb";
  1180. oParam.inds = "req=ds_send_reqdata";
  1181. oParam.outds = "ds_init_userscrnenvinfo=gridseq";
  1182. oParam.async = false;
  1183. oParam.callback = "cf_TRMNB02401";
  1184. tranf_submit(oParam);
  1185. if( arErrorCode.pop("TRMNB02401") > -1 ){
  1186. var refdata = ds_init_userscrnenvinfo.getColumn(0, "compsrefcnts");
  1187. var sizedata = ds_init_userscrnenvinfo.getColumn(0, "compssizecnts");
  1188. if( !utlf_isNull(refdata) || !utlf_isNull(sizedata) ){
  1189. lf_setOrderInfoOfCol(grdid , refdata, sizedata);
  1190. }
  1191. }
  1192. }
  1193. function cf_TRMNB02401(sSvcId, nErrorCode, sErrorMsg) {
  1194. arErrorCode.push(sSvcId, nErrorCode);
  1195. }
  1196. var arrCellProperty = ["displaytype", "edittype", "tooltiptext", "tooltiptype", "mask", "suppress", "wordwrap", "expr", "text", "combocodecol", "combodatacol", "combodataset",
  1197. "combodisplay", "calendardisplay", "calendardisplaynulltype", "editdisplay", "expandshow", "class", "align", "background", "background2", "backgroundimage",
  1198. "color", "color2", "cursor", "font", "padding", "selectbackground", "selectcolor", "selectfont"];
  1199. function setOrderInfoOfCol(grdID, refdata, sizedata){
  1200. var grdObj = eval(grdID);
  1201. var refArray = refdata.split("^");
  1202. var sizeArray = sizedata.split("^");
  1203. grdObj.splitContentsCell("head", 0, 0, 0, grdObj.getCellCount("Head"), true);
  1204. grdObj.splitContentsCell("body", 0, 0, 0, grdObj.getCellCount("Body"), true);
  1205. var nFixedCol = -1;
  1206. var nLeftCol = -1;
  1207. for( var i=0 ; i<grdObj.getCellCount("Body") ; i++ ){
  1208. if( grdObj.getCellProperty("Body", i, "celltype") == "head" ){
  1209. nFixedCol++;
  1210. }
  1211. if( grdObj.getFormatColProperty(i, "band") == "left" ){
  1212. nLeftCol++;
  1213. }
  1214. }
  1215. for( var i=nLeftCol ; i>=0 ; i-- ){
  1216. grdObj.setFormatColProperty(i, "band", "body");
  1217. }
  1218. grdObj.enableredraw = false;
  1219. var nMaxColCnt = -1;
  1220. if( refArray.length > grdObj.getCellCount("Body") ){
  1221. nMaxColCnt = grdObj.getCellCount("Body");
  1222. }else{
  1223. nMaxColCnt = refArray.length;
  1224. }
  1225. for( var i=(nFixedCol+1) ; i<nMaxColCnt ; i++ ){
  1226. var colcnt = grdObj.getBindCellIndex("body", refArray[i]);
  1227. var nCol = i;
  1228. if( colcnt < 0 ){
  1229. colcnt = 0;
  1230. }
  1231. // 이동 컬럼과 대상컬럼의 인덱스가 같지 않은 경우만 이동.
  1232. if( colcnt != i && colcnt > nFixedCol && i > nFixedCol && colcnt != -1 ){
  1233. var headText = utlf_transNullToEmpty(grdObj.getCellProperty("Head", colcnt, "text"));
  1234. var bodyText = new Array();
  1235. for( var j=0 ; j<gridProperty.length ; j++ ){
  1236. bodyText[j] = grdObj.getCellProperty("Body", colcnt, gridProperty[j]);
  1237. }
  1238. grdObj.deleteContentsCol(colcnt);
  1239. nCol = grdObj.insertContentsCol(i);
  1240. grdObj.setCellProperty("Head", nCol, "text", headText);
  1241. for( var j=0 ; j<gridProperty.length ; j++ ){
  1242. if( !utlf_isNull(bodyText[j]) ){
  1243. grdObj.setCellProperty("Body", nCol, gridProperty[j], bodyText[j]);
  1244. }
  1245. }
  1246. }
  1247. grdObj.setFormatColProperty(nCol, "size", sizeArray[i]);
  1248. }
  1249. grdObj.enableredraw = true;
  1250. for( var i=0 ; i<=nLeftCol ; i++ ){
  1251. grdObj.setFormatColProperty(i, "band", "left");
  1252. }
  1253. for( var i=(grdObj.getCellCount("Head")-2) ; i>=(nFixedCol+1) ; i-- ){
  1254. if( !utlf_isNull(grdObj.getCellProperty("Head", i, "text")) &&
  1255. grdObj.getCellProperty("Head", i, "text") == grdObj.getCellProperty("Head", i+1, "text") ){
  1256. grdObj.mergeContentsCell("head", 0, i, 0, i+1, i, false);
  1257. }
  1258. }
  1259. for( var i=(grdObj.getCellCount("Body")-2) ; i>=(nFixedCol+1) ; i-- ){
  1260. if( grdObj.getCellProperty("Body", i, "text") == grdObj.getCellProperty("Body", i+1, "text") ){
  1261. grdObj.mergeContentsCell("body", 0, i, 0, i+1, i, false);
  1262. }
  1263. }
  1264. }
  1265. function fColumSetMove(scrnid, grd_nm){
  1266. // 컬럼 순서 저장에 따른 불러오기 추가 : 2009. 10. 11 han19
  1267. var sWardCD = frmf_getMenuParam();//model.getValue("/root/main/cond/wardcd") //20080725_메뉴설정에 따른 그리드 동적생성으로 변겅(ByJA)
  1268. var prestimportid = ds_main_cond.getColumn(0, "prestimportid");//model.getValue("/root/main/cond/prestimportid");
  1269. var compscd = "";
  1270. if(prestimportid == "nm") {
  1271. if (sWardCD == "Partrtn") { // 분만
  1272. compscd = "PA";
  1273. } else if(sWardCD == "NBaby"){ // 신생아
  1274. compscd = "NB";
  1275. } else if(sWardCD == "BMT"){ //BMT
  1276. compscd = "BT";
  1277. } else if(sWardCD == "spclinj"){ // 특수주사실
  1278. compscd = "SJ";
  1279. } else {
  1280. compscd = "NM";
  1281. }
  1282. } else if (prestimportid == "td") { // Todo List : 컬럼설정은 하지 않지만 구분값은 넣어놓음
  1283. compscd = "TD";
  1284. } else if (prestimportid =="om") { // Order Manage
  1285. compscd = "OM";
  1286. } else {
  1287. if (sWardCD == "Partrtn") { // 분만
  1288. compscd = "PA";
  1289. } else if(sWardCD == "NBaby"){ // 신생아
  1290. compscd = "NB";
  1291. } else if(sWardCD == "BMT"){ //BMT
  1292. compscd = "BT";
  1293. } else if(sWardCD == "spclinj"){ // 특수주사실
  1294. compscd = "SJ";
  1295. } else {
  1296. compscd = "NM";
  1297. }
  1298. }
  1299. reqOrderInfoOfCol(scrnid, grd_nm, compscd);
  1300. // 컬럼 순서 저장에 따른 불러오기 추가 : 2009. 10. 11 han19
  1301. }
  1302. function fCalcdate(calcn, calcd){
  1303. calcd = calcd.toDate("YYYYMMDD");
  1304. calcd = calcd.getAddDate(calcn , "D");
  1305. calcd = calcd.getDateFormat("YYYYMMDD");
  1306. return calcd;
  1307. }
  1308. /* ------------------------------------------------- */
  1309. /* ------End Of List ------------------------------- */
  1310. /* -------------------------------------------------- */
  1311. ]]></Script>