SMMNP00100.xjs 86 KB

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