SMMNP06000.xjs 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
  3. DSC MAIN 등록 (SMMNP06000.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. : Create By Francis Choi
  7. : 2015.05.02
  8. ---------------------------------------------------------------------- */
  9. // --------------------------------------------------
  10. // 화면 Loading시 처리하는 함수
  11. // --------------------------------------------------
  12. function fInitScreen() {
  13. group2.ipt_opcnfmdd.value = utlf_getCurrentDate();
  14. var instcd = sysf_getUserInfo("dutplceinstcd");
  15. var standard_yn = "orduseyn";
  16. var ord_deptflag = 'D';
  17. var rslt_ref = "/root/main/cond/orddeptlist";
  18. fGetNursHardCdInfo("'049'", group2.ipt_opcnfmdd.value); //ds_codelist를 받아옴
  19. if( ds_codelist.rowcount < 1 ){
  20. sysf_messageBox("부서 세팅 기준자료를 확인하시기 바랍니다.", "I000");
  21. return;
  22. }
  23. ds_main_cond.setColumn(0, "prestimportid", frmf_getMenuParam()); // tab 기본값 (DSC Main)
  24. ds_main_cond.setColumn(0, "wardcd", ds_codelist.getColumn(0, "cdid"));
  25. //model.setValue("/root/main/cond/wardcd", "2360800000"); // 통원수술센터 setting
  26. swt_main.tabindex = 0;
  27. appf_getDeptCodeList(instcd, standard_yn, ord_deptflag, "", "", "", "", "", "ds_main_cond_orddeptlist_dept");
  28. //20101214_KNUH_Start 진료과에 전체추가 및 바로선택
  29. frmf_addComboItem( "group2.cmb_orddeptlist", "전 체", "", "");
  30. group2.cmb_orddeptlist.index = 0;
  31. //20101214_KNUH_End
  32. var arrParam = [{dsNm: "ds_init_M0065list_M0065", cdGrpId: "M0065"}
  33. ,{dsNm: "ds_init_M0020list_M0020", cdGrpId: "M0020"}];
  34. appf_getCodeList(arrParam); //수술환자의 현재 위치 장소에 대한 종류
  35. ds_send.setColumn(0, "opcnfmdd" ,group2.ipt_opcnfmdd.value );
  36. var oParam = {};
  37. oParam.id = "TRMNP06001";
  38. oParam.service = "opanstapp.OpAnstDscMngt";
  39. oParam.method = "reqGetOmcdlist";
  40. oParam.inds = "req=ds_send";
  41. oParam.outds = "ds_init_omcdlist=omcdlist";
  42. oParam.async = false;
  43. //oParam.callback = "cf_TRMNP06001";
  44. tranf_submit(oParam);
  45. /// 20191127 김현석, 수술방 구분에 "전체" 항목 추가..
  46. ds_init_omcdlist.insertRow(0);
  47. ds_init_omcdlist.setColumn(0, "oproomcd", "");
  48. ds_init_omcdlist.setColumn(0, "oproomnm", "전체");
  49. // cmb_orddeptlist.refresh();
  50. fInqurySelectedPrgm(); // 오픈시 수술확정리스트 조회
  51. // 바코드OCX 생성
  52. //lzzfMakeBrcdPrntObjHanDo(Object명);
  53. //lzzfMakeBrcdPrntObjHanDo("CommAX");
  54. }
  55. // --------------------------------------------------
  56. // 조회 클릭시 탭상태값에 따른 조회
  57. // --------------------------------------------------
  58. function fInqurySelectedPrgm()
  59. {
  60. switch(ds_main_cond.getColumn(0, "prestimportid")) {
  61. case "om": // Order Manage 호출
  62. swt_main.tabindex = 1;
  63. group1.cap_color.visible = true;
  64. group1.cap_uncnfm.visible = true;
  65. group1.cap_prcp.visible = true;
  66. //cap_color.attribute("left") = "15px";
  67. //cap_uncnfm.attribute("left") = "35px";
  68. //cap_prcp.attribute("left") = "120px";
  69. //cap_prcp.attribute("color") = "#0000ff";
  70. fnOrderManageParam(); //(20080417)
  71. //model.setValue("/root/main/cond/orddd", model.getValue("/root/main/cond/opcnfmdd")); // 업무일자(20080417)
  72. //model.toggle("case_om"); //Order Manage
  73. fv_OrderDepth.fGetOMPatList("dsc");
  74. break;
  75. case "prn": //Order Manage의 Prn 처방을 Direct 호출
  76. swt_main.tabindex = 1;
  77. group1.cap_color.visible = false;
  78. group1.cap_uncnfm.visible = false;
  79. group1.cap_prcp.visible = true;
  80. //cap_ser.visible = false;
  81. group1.cap_prcp.position.left = 698;
  82. group1.cap_prcp.position.width = 100;
  83. group1.cap_prcp.color = "#000000";
  84. fnOrderManageParam(); //(20080417)
  85. //model.setValue("/root/main/cond/orddd", model.getValue("/root/main/cond/opcnfmdd")); // 업무일자(20080417)
  86. fSetPrnMode();
  87. fv_OrderDepth.fGetOMPatList("dsc");
  88. break;
  89. // case "rp" :
  90. // if( swt_main.case_dm.grd_dscList.currentrow < 0 ) {
  91. // sysf_messageBox("환자를 선택하셔야 합니다.!", "E000");
  92. // ds_main_cond.setColumn(0, "prestimportid", "dm");
  93. // fInqurySelectedPrgm();
  94. // return;
  95. // }
  96. // swt_main.tabindex = 2;
  97. // //btn_rp.selected = false;//예약처방전송버튼활성화
  98. // grp_btn.sha_state.visible = false;//프로토콜메인 환자상태 캡션
  99. // grp_btn.cap_state.visible = false;//프로토콜메인 환자상태 캡션
  100. // group1.cap_color.visible = false;//미확인컬러 캡션
  101. // group1.cap_uncnfm.visible = false;//미확인 캡션
  102. // group1.cap_prcp.visible = false;//일반/반환/퇴원 캡션
  103. // //caption7.visible = false;//전실승인캡션
  104. // //tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  105. //
  106. // var pid = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid");
  107. // var indd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd");
  108. // var cretno = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "cretno");
  109. // var ordtype = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "iocls");
  110. // var medispclid = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "chngmedispclid");
  111. // var roomcd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "roomcd");
  112. // var sexage = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "sexage");
  113. // var hngnm = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "hngnm");
  114. //
  115. // if(utlf_isNull(indd)){
  116. // indd = utlf_getCurrentDate();
  117. // }
  118. //
  119. // fGetRsrvPrcpChemo(pid, indd, cretno, ordtype, medispclid, roomcd, sexage, hngnm);
  120. //
  121. // break;
  122. default:
  123. swt_main.tabindex = 0;
  124. grp_btn.sha_state.visible = true;//프로토콜메인 환자상태 캡션
  125. grp_btn.cap_state.visible = true;//프로토콜메인 환자상태 캡션
  126. group1.cap_color.visible = false;
  127. group1.cap_uncnfm.visible = false;
  128. group1.cap_prcp.visible = false;
  129. fDscDataRead();
  130. break;
  131. }
  132. }
  133. /* --------------------------------------------------*/
  134. /* type : function */
  135. /* access : public */
  136. /* desc : order manage tab클릭시 추가정보 넘김 */
  137. /* param : 기관코드 */
  138. /* return : */
  139. /* --------------------------------------------------*/
  140. function fnOrderManageParam() {
  141. //(20080417)
  142. var pGrd = swt_main.case_dm.grd_dscList;
  143. var opcnfmdd = "";
  144. var statflag1 = "";
  145. var statflag2 = "";
  146. var sPath = ds_main_cond;
  147. // 업무일자
  148. opcnfmdd = ds_main_cond.getColumn(0, "opcnfmdd");
  149. ds_main_cond.setColumn(0, "orddd", opcnfmdd );
  150. /*
  151. //재원정보
  152. statflag1 = model.getValue( "/root/main/dsc/dscList["+pGrd.row+"]/INDSCHSTAT")
  153. if (statflag1 = "ⓓ" ) statflag2 = "3"; //퇴원예고
  154. if (statflag1 = "퇴원" ) statflag2 = "4"; //퇴원
  155. if (statflag2 != "")
  156. model.setValue( sPath + "/indschacptstat", statflag2);
  157. */
  158. }
  159. /* --------------------------------------------------*/
  160. /* type : function */
  161. /* access : public */
  162. /* desc : DSC Main을 조회 */
  163. /* param : 기관코드 */
  164. /* return : */
  165. /* --------------------------------------------------*/
  166. function fDscDataRead() {
  167. //20080917
  168. ds_main_dsc_dscList.rowposition = -1;
  169. fMsgDisp();//메세지 지우기
  170. // model.removenode("/root/send");
  171. // model.removeNodeset("/root/main/dsc");
  172. //model.makeValue("/root/send/opdeptcd" , cmb_opdeptcd.value ); // 수행부서
  173. ds_send.setColumn(0, "opcnfmdd" , group2.ipt_opcnfmdd.value );
  174. ds_send.setColumn(0, "dscflag" , group2.rdo_dscflag.value ); // 수술환자구분코드
  175. ds_send.setColumn(0, "opflag" , group2.rdo_opflag.value ); // 수술진행
  176. ds_send.setColumn(0, "opflagex" , group2.chk_opflagex.value ); // 취소제외
  177. ds_send.setColumn(0, "orddeptcd" , group2.cmb_orddeptlist.value); // 진료과
  178. ds_send.setColumn(0, "drcd" , group2.cmb_drcd.value ); // 집도의
  179. ds_send.setColumn(0, "oproomcd" , group2.cmb_oproomcd.value );
  180. ds_send.setColumn(0, "pid" , group2.ipt_pid.value );
  181. var oParam = {};
  182. oParam.id = "TRMNP06003";
  183. oParam.service = "opanstapp.OpAnstDscMngt";
  184. oParam.method = "reqGetDscList";
  185. oParam.inds = "req=ds_send";
  186. oParam.outds = "ds_main_dsc_dscList=dscList";
  187. oParam.async = false;
  188. oParam.callback = "cf_TRMNP06003";
  189. tranf_submit(oParam);
  190. if( utlf_isNull(ds_main_dsc_dscList.getColumnInfo("medispclid")) ){
  191. ds_main_dsc_dscList.addColumn("medispclid", "string");
  192. }
  193. ds_main_dsc_dscList.updateColID("medispclid", "atdoctid");
  194. ds_main_dsc_dscList.addColumn("tmpcareinrmdd", "string");
  195. ds_main_dsc_dscList.addColumn("colEdittype", "string");
  196. ds_main_dsc_dscList.rowposition = -1;
  197. if(arErrorCode.pop("TRMNP06003") > -1){
  198. var opstatcd ;
  199. var medipostyn;
  200. //var brateflag = "";
  201. var sExprColor = "EXPR(";
  202. var sExprBack = "EXPR(";
  203. for(var i = 0; i < swt_main.case_dm.grd_dscList.rowcount; i++){
  204. //grd_dscList.removeStatus(i, "update");
  205. //20080917 수술취소환자 붉은색으로 표시
  206. opstatcd = ds_main_dsc_dscList.getColumn(i, "opstatcd" );
  207. medipostyn = ds_main_dsc_dscList.getColumn(i, "medipostyn" );
  208. if(opstatcd == '29'){
  209. sExprColor += "currow == "+i+" ? '#FF0000' : ";
  210. // grd_dscList.cellStyle("color", i, grd_dscList.colRef("careinrmdd"), i, grd_dscList.colRef("oprccount")) = "#FF0000";
  211. // }else{
  212. // grd_dscList.cellStyle("color", i, grd_dscList.colRef("careinrmdd"), i, grd_dscList.colRef("oprccount")) = "#000000";
  213. }
  214. if(medipostyn == "Y") {
  215. sExprBack += "currow == "+i+" ? '#ffff00' : ";
  216. // grd_dscList.cellstyle("background-color", i, 1, i, grd_dscList.cols-1) ="#ffff00";
  217. // } else {
  218. // grd_dscList.cellstyle("background-color", i, 1, i, grd_dscList.cols-1) ="#FFFFF8";
  219. }
  220. /*brateflag = model.getValue('/root/main/dsc/dscList[' + i + ']/brateflag' );
  221. if (brateflag == "O") {
  222. model.removenode("/root/send/judinfo");
  223. model.makeValue("/root/send/judinfo/pid", model.getValue('/root/main/dsc/dscList[' + i + ']/pid'));
  224. model.makeValue("/root/send/judinfo/indd", model.getValue('/root/main/dsc/dscList[' + i + ']/indd'));
  225. model.makeValue("/root/send/judinfo/cretno", model.getValue('/root/main/dsc/dscList[' + i + ']/cretno'));
  226. submit("");
  227. }*/
  228. }
  229. sExprColor += "'')";
  230. sExprBack += "'#FFFFF8')";
  231. for( var i=1 ; i<swt_main.case_dm.grd_dscList.getCellCount("Body") ; i++ ){
  232. swt_main.case_dm.grd_dscList.setCellProperty("Body", i, "color", sExprColor);
  233. swt_main.case_dm.grd_dscList.setCellProperty("Body", i, "color2", sExprColor);
  234. swt_main.case_dm.grd_dscList.setCellProperty("Body", i, "selectcolor", sExprColor);
  235. swt_main.case_dm.grd_dscList.setCellProperty("Body", i, "background", sExprBack);
  236. swt_main.case_dm.grd_dscList.setCellProperty("Body", i, "background2", sExprBack);
  237. //swt_main.case_dm.grd_dscList.setCellProperty("Body", i, "selectbackground", sExprBack);
  238. }
  239. ds_main_MmohiprcLists_CureList.clearData();
  240. ds_main_MmohiprcLists_CartList.clearData();
  241. fInputNo();
  242. }else{
  243. sysf_messageBox("dsc환자조회를 실패하였습니다.", "E");
  244. return;
  245. }
  246. }
  247. function cf_TRMNP06003(sSvcId, nErrorCode, sErrorMsg) {
  248. arErrorCode.push(sSvcId, nErrorCode);
  249. }
  250. //--------------------
  251. //(20080129)
  252. //--------------------
  253. // 간호퇴원확정이후는 입실시간/퇴실시간변경 불가로 처리예정
  254. function fInputNo() {
  255. //-----------------------------------------------
  256. //선택불가로 변경
  257. //-----------------------------------------------
  258. var pGrd = swt_main.case_dm.grd_dscList;
  259. if (pGrd.rowcount <= 0 ) return;
  260. //전부 수정불가
  261. //pGrd.isReadOnly(1,pGrd.colRef("careinrmdd"),pGrd.rows-1,pGrd.colRef("careinrmdd"))= true;
  262. ds_main_dsc_dscList.enableevent = false;
  263. ds_main_dsc_dscList.updatecontrol = false;
  264. for (var row=0;row<pGrd.rowcount;row++) {
  265. ds_main_dsc_dscList.setColumn(row, "tmpcareinrmdd", ds_main_dsc_dscList.getColumn(row, "careinrmdd"));
  266. //colEdittype
  267. var temp = ds_main_dsc_dscList.getColumn(row, "indschstat");
  268. if (false == finputCheck(temp)) {
  269. ds_main_dsc_dscList.setColumn(row, "colEdittype", "none");
  270. continue;
  271. }
  272. //입력가능
  273. ds_main_dsc_dscList.setColumn(row, "colEdittype", "mask");
  274. }
  275. ds_main_dsc_dscList.updatecontrol = true;
  276. ds_main_dsc_dscList.enableevent = true;
  277. }
  278. function finputCheck(temp) {
  279. if ( temp == "ⓓ" || utlf_isNull(temp)) {
  280. return true; //수정가능(퇴원예고이거나 ""인경우)
  281. } else {
  282. return false; //수정불가
  283. }
  284. }
  285. /* --------------------------------------------------*/
  286. /* type : function */
  287. /* access : public */
  288. /* desc : 처방상세내역 조회하기 */
  289. /* param : row */
  290. /* return : */
  291. /* --------------------------------------------------*/
  292. function fDscDataView(pRow) {
  293. //var tPath = "/root/main/dscdetl/";
  294. var sPath = ds_main_dsc_dscList;
  295. ds_main_MmohiprcLists_CartList.clearData();
  296. ds_main_MmohiprcLists_CureList.clearData();
  297. ds_send.setColumn(0, "instcd" , "" ); // 기관코드
  298. ds_send.setColumn(0, "pid" , ds_main_dsc_dscList.getColumn(pRow, "pid" )); // 등록(환자)번호
  299. ds_send.setColumn(0, "orddd" , ds_main_dsc_dscList.getColumn(pRow, "indd" )); // 진료(입원)일자
  300. ds_send.setColumn(0, "cretno" , ds_main_dsc_dscList.getColumn(pRow, "cretno")); // 생성번호
  301. ds_send.setColumn(0, "oprsrvno", ds_main_dsc_dscList.getColumn(pRow, "oprsrvno")); // 수술예약번호
  302. ds_send.setColumn(0, "seqflag" , ds_main_dsc_dscList.getColumn(pRow, "seqflag")); // 1:DSC 2:수술
  303. var oParam = {};
  304. oParam.id = "TRMNP06004";
  305. oParam.service = "opanstapp.OpAnstDscMngt";
  306. oParam.method = "reqGetMmohiprcList";
  307. oParam.inds = "req=ds_send";
  308. oParam.outds = "ds_main_MmohiprcLists_CureList=CureList ds_main_MmohiprcLists_CartList=CartList";
  309. oParam.async = false;
  310. //oParam.callback = "cf_TRMNP06004";
  311. tranf_submit(oParam);
  312. ds_main_MmohiprcLists_CureList.rowposition = -1;
  313. ds_main_MmohiprcLists_CartList.rowposition = -1;
  314. }
  315. /* --------------------------------------------------*/
  316. /* type : function */
  317. /* access : public */
  318. /* desc : 환자정보 가져오기 */
  319. /* param : 검색구분 */
  320. /* return : */
  321. /* --------------------------------------------------*/
  322. function fSearchPatInfo(qryflag) {
  323. frmf_modal("SPPMC02500","SPPMC02500",null,"",1,150,150,"","","","","","M");
  324. //환자번호 copy
  325. var popupendflag = frmf_getParameter("SPPMC02500_popupendflag");
  326. if (popupendflag == "ok"){
  327. ds_main_rghtref_rghtreflist.setColumn(0, "pid", ds_patinfolist.getColumn(0, "pid"));
  328. var pid = ds_patinfolist.getColumn(0, "pid");
  329. if (!utlf_isNull(pid) && pid != " " && pid != "-"){
  330. fpidref();
  331. }
  332. }
  333. }
  334. /* --------------------------------------------------*/
  335. /* type : function */
  336. /* access : public */
  337. /* desc : 등록번호에 따른 환자정보 검색 */
  338. /* param : */
  339. /* return : */
  340. /* --------------------------------------------------*/
  341. function fpidref(){
  342. var pid = group2.ipt_pid.value;
  343. ds_send.setColumn(0, "pid",pid);
  344. var oParam = {};
  345. oParam.id = "TRMNI00102";
  346. oParam.service = "injroomapp.InjRoomPatMngt";
  347. oParam.method = "reqGetPidRef";
  348. oParam.inds = "refCond=ds_send";
  349. oParam.outds = "ds_main_rghtref_rghtreflist=rghtreflist";
  350. oParam.async = false;
  351. oParam.callback = "cf_TRMNI00102";
  352. tranf_submit(oParam);
  353. if(arErrorCode.pop("TRMNI00102") > -1){
  354. var hngnm=ds_main_rghtref_rghtreflist.getColumn(0, "hngnm");
  355. //데이타가 없을시 이전 출력 내용 삭제.
  356. if(utlf_isNull(hngnm)){
  357. group2.opt_hngnm.value="";
  358. group2.opt_gndrage.value="";
  359. group2.opt_rrgstno.value="";
  360. ds_main_rghtref_rghtreflist.setColumn(0, "pid", "");
  361. return;
  362. }
  363. }
  364. }
  365. function cf_TRMNI00102(sSvcId, nErrorCode, sErrorMsg) {
  366. arErrorCode.push(sSvcId, nErrorCode);
  367. }
  368. // --------------------------------------------------
  369. // 팝업메뉴
  370. // --------------------------------------------------
  371. // function fShowPopupMenu(gridID, menuPath)
  372. // {
  373. // var gridObj = this.objects[gridID];
  374. //
  375. // if( menuPath == "ds_main_menuitems_inmenu_item" ){
  376. // pMenu_inmenumenu.trackPopup(e.screenX, e.screenY);
  377. // }else if( menuPath == "ds_main_menuitems_grdmenu_item" ){
  378. // pMenu_grdmenumenu.trackPopup(e.screenX, e.screenY);
  379. // }
  380. // }
  381. // --------------------------------------------------
  382. // 환자이름표출력
  383. // --------------------------------------------------
  384. function fOpenNamePrint(){
  385. var pRow = swt_main.case_dm.grd_dscList.currentrow;
  386. var sPath = ds_main_dsc_dscList;
  387. var calcdd = ds_main_dsc_dscList.getColumn(pRow, "careinrmdd");
  388. var grdStat = ds_main_dsc_dscList.getRowType(pRow);
  389. if(calcdd == '--' || (calcdd != '--' && grdStat != 1)){//입실시각이 입력되지 않았거나 입실시각을 입력했으나 저장하지 않은상태
  390. sysf_messageBox('입실시각적용 후 환자이름표출력이 가능합니다.', 'E999');
  391. return;
  392. }
  393. var dschdd = ds_main_dsc_dscList.getColumn(pRow, "dschdd");
  394. if(dschdd != '-'){
  395. sysf_messageBox("이미 퇴실처리된 환자입니다.", "E999", "");
  396. return;
  397. }
  398. fGetPatName();
  399. }
  400. //정보호출
  401. function fGetPatName() {
  402. var row = swt_main.case_dm.grd_dscList.currentrow;
  403. if (row >= 0) {
  404. var pid = ds_main_dsc_dscList.getColumn(row, "pid");
  405. var wardcd = ds_main_cond.getColumn(0, "wardcd");
  406. ds_send_patnameinfo.setColumn(0, "pid", pid);
  407. ds_send_patnameinfo.setColumn(0, "wardcd", wardcd);
  408. var oParam = {};
  409. oParam.id = "TRMNW00210";
  410. oParam.service = "wardcareapp.WardCareMngt";
  411. oParam.method = "reqGetPatNamelist";
  412. oParam.inds = "req=ds_send_patnameinfo";
  413. oParam.outds = "ds_temp2_patnamelist=patnamelist";
  414. oParam.async = false;
  415. //oParam.callback = "cf_TRMNW00210";
  416. tranf_submit(oParam);
  417. ds_send_temp2_patnamelist.clearData();
  418. //alert(instance1.selectNodesXml("/root/main_nm/temp2/patnamelist"));
  419. ds_send_temp2_patnamelist.copyData(ds_temp2_patnamelist);
  420. var objDOM = rptf_createDOM(); // DOM 객체 설정
  421. rptf_setNodeListToDOM(objDOM, "root/send/temp2/patnamelist", ds_send_temp2_patnamelist); // 데이터셋
  422. var objParam = new Object();
  423. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  424. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  425. rptf_exeReportPreview30(["RPMNW00210"],[objParam], option);
  426. //exeReportPreview("RPMNR06302", "XMLSTR", "/root/main/prtinfo", "", "true", "", "", "", "", "", "", "grp_report"); //미리보기 없이 출력
  427. }
  428. }
  429. // --------------------------------------------------
  430. // 입실시각 적용(환자팔찌출력)
  431. // --------------------------------------------------
  432. function fSetIntime()
  433. {
  434. var pRow = swt_main.case_dm.grd_dscList.currentrow;
  435. var sPath = ds_main_dsc_dscList;
  436. /* 20081004 수정
  437. var temp = model.getValue("/root/main/dsc/dscList[" + pRow + "]/indschstat");
  438. if (false == finputCheck(temp)) {
  439. messageBox("재원상태를 확인하십시오.", "E999", "");
  440. return;
  441. }
  442. */
  443. var dschdd = ds_main_dsc_dscList.getColumn(pRow, "dschdd");
  444. if(dschdd != '-'){
  445. sysf_messageBox("이미 퇴실처리된 환자입니다.", "E999", "");
  446. return;
  447. }
  448. ds_main_dsc_dscList.setColumn(pRow, "careinrmdd", utlf_getCurrentDate()+""+utlf_getCurrentTime().substring(0,4));
  449. //grd_dscList.addStatus(pRow, "update");
  450. fOpenPatBC();
  451. }
  452. // --------------------------------------------------
  453. // 저장한 간호입실시간을 지우는 경우
  454. // 입실시각 취소
  455. // --------------------------------------------------
  456. function fClsIntime()
  457. {
  458. var pRow = swt_main.case_dm.grd_dscList.currentrow;
  459. var sPath = ds_main_dsc_dscList;
  460. var temp = ds_main_dsc_dscList.getColumn(pRow, "indschstat");
  461. if(!utlf_isNull(temp)) {
  462. sysf_messageBox("재원상태를 확인하십시오.", "E999", "");
  463. return;
  464. }
  465. if(!utlf_isNull(ds_main_dsc_dscList.getColumn(pRow, "pid"))) { //선택된 환자가 있는 경우
  466. ds_main_dsc_dscList.setColumn(pRow, "careinrmdd", '');
  467. }
  468. }
  469. // --------------------------------------------------
  470. // 환자팔찌 재출력
  471. // --------------------------------------------------
  472. function fOpenPatBC()
  473. {
  474. //20080117 적용테스트
  475. //return;
  476. var pRow = swt_main.case_dm.grd_dscList.currentrow;
  477. var sPath = ds_main_dsc_dscList;
  478. //----------------(20071114:angio환자제외시킴)
  479. //if (model.getValue(sPath +"oprsrvno") == "") {
  480. // messageBox("angio환자는 팔찌출력을 ", "E001");
  481. // return;
  482. //}
  483. //----------------aa
  484. /*
  485. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  486. var sPrntKind = model.getValue(barcdRef + "[1]/prntkind");
  487. var sSndMsg = "";
  488. if (sPrntKind == 0) return;
  489. var sCommKind = model.getValue(barcdRef + "[1]/commkind");
  490. */
  491. //20080905 추가
  492. //port정보 가져오기
  493. ds_barcdprntsetup.clearData();
  494. ds_send.setColumn(0, "scrnid", "SMMNP06000");
  495. var comport = '1';
  496. var oParam = {};
  497. oParam.id = "TRLLC90101";
  498. oParam.service = "diagtestapplib.LisCommon";
  499. oParam.method = "reqGetSetUpInfo";
  500. oParam.inds = "scrnid=ds_send";
  501. oParam.outds = "ds_barcdprntsetup=getSetUpInfo";
  502. oParam.async = false;
  503. oParam.callback = "cf_TRLLC90101";
  504. tranf_submit(oParam);
  505. if(arErrorCode.pop("TRLLC90101") > -1){
  506. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  507. //XML string 값을 파라미터로 넘김
  508. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  509. var sParamObj = new Object();
  510. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  511. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  512. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  513. sysf_trace(succYn);
  514. // => retrun DS
  515. // : ds_data_setupinfo(prntkind, commkind)
  516. // : ds_data_comm01(setupval)
  517. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  518. // : ds_data_comm03(setupval)
  519. // : ds_data_blank(left, top)
  520. // ------------------------------------------------------------------------------------------------------------
  521. comport = ds_data_comm02.getColumn(0, "comm");
  522. }
  523. // 바코드 라벨 환경설정
  524. lzzfMakeBrcdPrntObjHanDo("CommAX");
  525. // 환자정보 상단으로..
  526. fSetPatInfo();
  527. //설정된 상단정보를 불러옴
  528. var node = sysf_getGlobalVariable("paminfo");
  529. dsf_setCSVToDs("ds_main_paminfo_list", node);
  530. var pid, indd, cretno, mskind, histstat;
  531. //patinfo 정보 셋팅
  532. pid = ds_main_dsc_dscList.getColumn(pRow, "pid");
  533. indd = ds_main_dsc_dscList.getColumn(pRow, "indd" );
  534. cretno = ds_main_dsc_dscList.getColumn(pRow, "cretno");
  535. mskind = ds_main_dsc_dscList.getColumn(pRow, "mskind");
  536. histstat = ds_main_dsc_dscList.getColumn(pRow, "histstat");
  537. // model.makeNode("/root/send/data17");
  538. // model.makeNode("/root/hidden/h_receipt");
  539. // model.makeNode("/root/hidden/h_receipt/receipt");
  540. /*
  541. model.makeValue("/root/send/data17/pid",pid);
  542. model.makeValue("/root/send/data17/indd",indd);
  543. model.makeValue("/root/send/data17/cretno",cretno);
  544. model.makeValue("/root/send/data17/mskind",mskind);
  545. model.makeValue("/root/send/data17/histstat",histstat);
  546. submit("TRPMI00115");
  547. fOpenBrcdPrnt();
  548. */
  549. //원무 메소드 호출
  550. //fInPatBarCodePrn(pid, indd, cretno, mskind, histstat, comport);
  551. /* 삭제된 파라미터 : pPort - COM Port 지정값
  552. * 추가된 파라미터 : pSetyn - 프린터설정정보 셋팅여부
  553. * pScrid - 프린터설정정보 조회용 화면 아이디
  554. * pBarcdRef - 설정정보 xpath
  555. */
  556. lf_pmifPrintBarCode(pid, indd, cretno, mskind, histstat, "N", "SMMNP06000", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); // 20090527 변경됨.
  557. }
  558. function cf_TRLLC90101(sSvcId, nErrorCode, sErrorMsg) {
  559. arErrorCode.push(sSvcId, nErrorCode);
  560. }
  561. // --------------------------------------------------
  562. // 검사결과조회 오픈
  563. // --------------------------------------------------
  564. function fOpenTestRslt()
  565. {
  566. fSetPatInfo();
  567. frmf_open("SMAER00800", "SMAER00800", null, null, 1, 20, 128, null, null, null, null, null, "M");
  568. }
  569. // --------------------------------------------------
  570. // 수술준비확인창 오픈
  571. // --------------------------------------------------
  572. function fOpenTPR()
  573. {
  574. fSetPatInfo();
  575. frmf_setParameter("OpMenu", "W");
  576. frmf_open("SMMNP00200", "SMMNP00200", null, null, 1, 20, 128, null, null, null, null, null, "M");
  577. }
  578. // --------------------------------------------------
  579. // 투약기록 오픈
  580. // --------------------------------------------------
  581. function fOpenMediRecord()
  582. {
  583. fSetPatInfo();
  584. frmf_open("SMMNR00600", "SMMNR00600", null, null, 1, 20, 128, null, null, null, null, null, "M");
  585. }
  586. // --------------------------------------------------
  587. // 간호기록TypeII 오픈 -- 1차 오픈에서 제외됨
  588. // --------------------------------------------------
  589. function fOpenNursingRecord()
  590. {
  591. fSetPatInfo();
  592. var sPath = "/root/main/dsc/dscList["+grd_dscList.row+"]";
  593. var parammsg = "recflag▦dutplaccd▦reclnkkey▩D▦34100▦"
  594. + model.getValue(sPath+"/oprsrvno")+","
  595. + model.getValue(sPath+"/ophistno")+","
  596. + model.getValue(sPath+"/instcd")+"▩"
  597. setParameter("SMMNR03400_ParamBase",parammsg);
  598. modal("SMMNR03400","1","20","128");
  599. }
  600. // --------------------------------------------------
  601. // 간호처방 오픈
  602. // --------------------------------------------------
  603. function fOpenCarePrcp()
  604. {
  605. fSetPatInfo();
  606. frmf_open("SMMNW10900", "SMMNW10900", null, null, 1, 20, 128, null, null, null, null, null, "M"); //간호처방
  607. }
  608. // --------------------------------------------------
  609. // 퇴실정리 오픈(20080129)
  610. // --------------------------------------------------
  611. function fOpenOutRm()
  612. {
  613. var pGrd = swt_main.case_dm.grd_dscList;
  614. //20090123 dhkim
  615. //itc김숙인 변경요청사항 반영
  616. //입실시각이 입력되지 않은 상태에서 오른쪽 마우스의 퇴실정리 선택시 [입실체크 후 퇴실정리가 가능합니다.]라는 blocking메시지와 함께 퇴실정리 blocking함.
  617. var calcdd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "careinrmdd");
  618. var grdStat = ds_main_dsc_dscList.getRowType(ds_main_dsc_dscList.rowposition);
  619. if(calcdd == '--' || (calcdd != '--' && grdStat != 1)){//입실시각이 입력되지 않았거나 입실시각을 입력했으나 저장하지 않은상태
  620. sysf_messageBox('입실체크 후 퇴실정리가 가능합니다.', 'E999');
  621. return;
  622. }
  623. if (pGrd.rowcount <= -1 || pGrd.currentrow < 0) {
  624. sysf_messageBox("자료를 선택하십시오.", "E999", "");
  625. return;
  626. }
  627. if (utlf_isNull(ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid"))) {
  628. sysf_messageBox("등록번호가 없습니다.", "E999", "");
  629. return;
  630. }
  631. // 상단올리기
  632. fSetPatInfo();
  633. frmf_open("SMMNP06010", "SMMNP06010", null, null, 1, 20, 128, null, null, null, null, null, "M"); //yjh1
  634. }
  635. // --------------------------------------------------
  636. // 상단환자정보세팅하기
  637. // --------------------------------------------------
  638. function fSetPatInfo()
  639. {
  640. var sPath = ds_main_dsc_dscList;
  641. var sPatFlag = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "oppatflagcd");
  642. if (utlf_isNull(sPatFlag)) sPatFlag = "I"; //수술정보없는경우는 'I'
  643. //올리기 변경:수술하지 않는 사람도 나옴
  644. var sOprsrvno = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "oprsrvno");
  645. var param = "";
  646. //수술취소된 경우 T로 올리지 말것.(아직 구현안함)
  647. //20080917 dhkim 수술취소환자의 경우
  648. var opstatcd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "opstatcd");//수술상태
  649. if (!utlf_isNull(sOprsrvno) && opstatcd != '29') { //20080917 dhkim 수정. 수술일정이 있고 취소상태가 아닌 환자 상단올리기
  650. //수술전용 상단 올리기
  651. param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  652. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid" ) + "▦" // 02 등록번호
  653. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "opcnfmdd" ) + "▦" // 03 수술시작일자
  654. + "▦" // 04 cretno(없는 경우 ""로 처리)
  655. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "instcd" ) + "▦" // 05 기관코드
  656. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "perfdeptcd" ) + "▦" // 06 집도과부서
  657. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "perfdrid" ) + "▦" // 07 집도의ID
  658. + sPatFlag + "▦" // 08 환자구분
  659. + "F▦" // 09 F -처리구분 무조건 F로 설정
  660. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "oprsrvno" ) + "▦" // 10 수술예약번호
  661. + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "ophistno" ) + "▦" // 11 수술이력번호
  662. + ds_main_cond.getColumn(0, "opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  663. } else if(!utlf_isNull(sOprsrvno) && opstatcd == '29'){
  664. //20080917 dhkim 수정. 수술일정취소된 환자 상단올리기
  665. param = "I" //dsc
  666. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid") //등록번호
  667. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd") //입원일자
  668. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "cretno") //입원생성번호
  669. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "instcd") //기관코드
  670. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd") //진료일자(당일입원환자를 조회하므로)
  671. //alert(param);
  672. //condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  673. } else {
  674. // 상단 세팅을 위한 파라미터(입원전용)
  675. param = "I"
  676. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid") //등록번호
  677. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd") //입원일자
  678. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "cretno") //입원생성번호
  679. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "instcd") //기관코드
  680. + "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd") //진료일자(당일입원환자를 조회하므로)
  681. /* 퇴원정리(병동) 확인해봐야함...
  682. // 상단 환자정보 parameter
  683. var sIoflag = "I";
  684. var sPid = model.getValue(dschPath + "[" + iRow + "]/pid");
  685. model.removenode ("/root/send");
  686. model.makeNode ("/root/send");
  687. model.makeValue ("/root/send/reqdata/pid" , sPid);
  688. model.makeValue ("/root/send/reqdata/histstat", sIoflag);
  689. model.removeNodeset("/root/temp/gettoplist");
  690. submit("TRMND00103");
  691. var sCretno = model.getValue("/root/temp/gettoplist/gettopinfo/cretno" ); //생성번호
  692. var sSeqno = model.getValue("/root/temp/gettoplist/gettopinfo/seqno" ); //일련번호
  693. var sInstcd = model.getValue("/root/temp/gettoplist/gettopinfo/instcd" ); //기관코드
  694. var sIndd = model.getValue("/root/temp/gettoplist/gettopinfo/indd" ); //입원일자
  695. var sOrddd = model.getValue("/root/temp/gettoplist/gettopinfo/orddd" ); //진료일자
  696. var sAcptseqno = model.getValue("/root/temp/gettoplist/gettopinfo/acptseqno"); //등록일련번호
  697. var sOrgorddd = model.getValue("/root/temp/gettoplist/gettopinfo/orgorddd" ); //원진료일자
  698. var sOrddd = model.getValue("/root/temp/gettoplist/gettopinfo/orddd" ); //진료일자
  699. var sParam;
  700. sParam = (sIoflag + "▦" + sPid + "▦" + sIndd + "▦" + sCretno + "▦" + sInstcd + "▦" + sOrddd);
  701. setParameter("condparam", sParam);
  702. */
  703. }
  704. //alert(sOprsrvno +"/" + param);
  705. // setParameter("condparam", param);
  706. // modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  707. appf_initPatientInfo(param); //상단정보 셋팅
  708. var curNurType2Obj = frmf_findPopup("SMMNP00200");
  709. if(!utlf_isNull(curNurType2Obj)){//준비확인이 열려있으면 상단 환자로 재조회2010.01.04 K.J.M
  710. curNurType2Obj.fFormInit();
  711. }
  712. // 하단 처방상세조회, 수술상세조회
  713. fDscDataView(swt_main.case_dm.grd_dscList.currentrow);
  714. }
  715. // --------------------------------------------------
  716. // DSC 메인리스트 입실시각, 퇴실시각 수정된 내용 저장
  717. // --------------------------------------------------
  718. function fSaveDscList(){
  719. if(!checkGridUpdate(ds_main_dsc_dscList)){
  720. sysf_messageBox("저장할 자료가 존재하지 않습니다.", "E");
  721. return;
  722. }
  723. //alert(grd_dscList.getUpdateData());
  724. ds_rtndata_dsc_dscList.clearData();
  725. ds_send_dscList.clearData();
  726. ds_main_dsc_dscList.enableevent = false;
  727. ds_main_dsc_dscList.updatecontrol = false;
  728. grdf_setStatusColumn(ds_main_dsc_dscList, "status");
  729. ds_main_dsc_dscList.updatecontrol = true;
  730. ds_main_dsc_dscList.enableevent = true;
  731. if( utlf_isNull(ds_send_dscList.getColumnInfo("tmpcareinrmdd")) ){
  732. ds_send_dscList.addColumn("tmpcareinrmdd", "string");
  733. }
  734. for( var i=0 ; i<ds_main_dsc_dscList.rowcount ; i++ ){
  735. if( ds_main_dsc_dscList.getRowType(i) == 2 || ds_main_dsc_dscList.getRowType(i) == 4 || ds_main_dsc_dscList.getRowType(i) == 8 ){
  736. var nRow = ds_send_dscList.addRow();
  737. ds_send_dscList.copyRow(nRow, ds_main_dsc_dscList, i);
  738. ds_send_dscList.setColumn(nRow, "tmpcareinrmdd", ds_main_dsc_dscList.getColumn(i, "careinrmdd"));
  739. }
  740. }
  741. if( utlf_isNull(ds_send_dscList.getColumnInfo("medispclid")) ){
  742. ds_send_dscList.addColumn("medispclid", "string");
  743. }
  744. if( !utlf_isNull(ds_send_dscList.getColumnInfo("medispclid")) ){
  745. ds_send_dscList.updateColID("medispclid", "atdoctid");
  746. }
  747. //20180327 이돈희 : 보험 유형이 일반인 환자는 팝업으로 알리기(요청번호 : 20180129022)
  748. var strInsukindPid = ""; // 보험 유형이 일반인 환자의 차트번호 정보
  749. for( var iIndex=0 ; iIndex<ds_send_dscList.rowcount ; iIndex++ ){
  750. //insukind 51 : 일반
  751. if(ds_send_dscList.getColumn(iIndex, "insukind") == "51"){
  752. strInsukindPid = strInsukindPid + " " + ds_send_dscList.getColumn(iIndex, "pid");
  753. }
  754. }
  755. if(!utlf_isNull(strInsukindPid)){
  756. sysf_messageBox(strInsukindPid + " 환자의 보험유형은 일반입니다.", "E");
  757. }
  758. var oParam = {};
  759. oParam.id = "TXMNP06001";
  760. oParam.service = "opanstapp.OpAnstDscMngt";
  761. oParam.method = "reqExeDSCInOutInf";
  762. oParam.inds = "dscList=ds_send_dscList";
  763. oParam.outds = "ds_rtndata_dsc_dscList=dscList";
  764. oParam.async = false;
  765. oParam.callback = "cf_TXMNP06001";
  766. tranf_submit(oParam);
  767. if( utlf_isNull(ds_rtndata_dsc_dscList.getColumnInfo("medispclid")) ){
  768. ds_rtndata_dsc_dscList.addColumn("medispclid", "string");
  769. }
  770. ds_rtndata_dsc_dscList.updateColID("medispclid", "atdoctid");
  771. ds_rtndata_dsc_dscList.addColumn("tmpcareinrmdd", "string");
  772. if(arErrorCode.pop("TXMNP06001") > -1) {
  773. //if(getNodesetCnt(model, "/root/rtndata/dsc/dscList") > 0){
  774. // var rtnMsg = messageBox("입실체크 환자에 대한 외래예약 처방 조회를", "Q004");
  775. // var chkcnt = 0 ;
  776. // if("6" == rtnMsg){
  777. // for(var i = 1 ; i <= getNodesetCnt(model, "/root/rtndata/dsc/dscList") ; i++){
  778. // var rtnVO = fGetRsrvPrcp(i);
  779. // if(rtnVO == "E"){
  780. // messageBox("외래 예약처방 승계에 필요한 정보가 누락되어 처리를 실패하였습니다.", "C000");
  781. // }else if(rtnVO == "X"){
  782. // chkcnt++;
  783. // }
  784. // }
  785. // }
  786. //
  787. // if(getNodesetCnt(model, "/root/rtndata/dsc/dscList") == chkcnt){
  788. // messageBox("외래 예약처방이 존재하지 않습니다.", "I000");
  789. // }
  790. //}
  791. ds_rtndata_dsc_dscList.enableevent = false;
  792. ds_rtndata_dsc_dscList.updatecontrol = false;
  793. for( var i=0 ; i<ds_rtndata_dsc_dscList.rowcount ; i++ ){
  794. ds_rtndata_dsc_dscList.setColumn(i, "tmpcareinrmdd", ds_rtndata_dsc_dscList.getColumn(i, "careinrmdd"));
  795. }
  796. ds_rtndata_dsc_dscList.updatecontrol = true;
  797. ds_rtndata_dsc_dscList.enableevent = true;
  798. //20180207 이돈희 주석 : 선택진료 삭제(요청번호 : 20180123006)
  799. //fCheckSpecOrdSign();
  800. fDscDataRead(); // 조회
  801. }
  802. }
  803. function cf_TXMNP06001(sSvcId, nErrorCode, sErrorMsg) {
  804. arErrorCode.push(sSvcId, nErrorCode);
  805. }
  806. // --------------------------------------------------
  807. // 외래예약처방 선택 및 저장 화면 호출_20090508추가(ByJA)
  808. // --------------------------------------------------
  809. function fGetRsrvPrcp(pRow){
  810. // 외래예약처방정보 조회
  811. model.removeNodeset("/root/send");
  812. model.makeValue ( "/root/send/cond1", model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/pid") );
  813. model.makeValue ( "/root/send/cond2", sysf_getUserInfo("dutplceinstcd"));
  814. model.makeValue ( "/root/send/cond3", utlf_getCurrentDate());
  815. submit ( "TRMMO00129", false );
  816. // 외래예약처방정보 존재시 외래예약처방 저장화면 호출
  817. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcplist");
  818. var sParamPid = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/pid" );
  819. var sParamIndd = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/indd" );
  820. var sParamCretno = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/cretno" );
  821. var sParamIoflag = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/iocls" );
  822. var sParamActcertdrid = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/chngmedispclid" );
  823. var sParamSexAge = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/sexage" );
  824. var sParamPatNm = model.getValue("/root/rtndata/dsc/dscList["+pRow+"]/hngnm" );
  825. if ( srcNodeList.length > 0 ) {
  826. if(sParamPid == "" || sParamIndd == "" || sParamCretno == "" || sParamIoflag == "" || sParamActcertdrid == "" || sParamPatNm == "") return "E" ;
  827. setParameter ( "SPMMO18200_pid" , sParamPid );
  828. setParameter ( "SPMMO18200_orddd" , sParamIndd );
  829. setParameter ( "SPMMO18200_cretno" , sParamCretno );
  830. setParameter ( "SPMMO18200_prcpdd" , utlf_getCurrentDate() );
  831. setParameter ( "SPMMO18200_prcpinptflag" , "00" ); // 임시로 09임. 추후 번호배정되어 수정해야함.
  832. setParameter ( "SPMMO18200_ioflag" , sParamIoflag );
  833. setParameter ( "SPMMO18200_prcpkindcd" , "00" );
  834. setParameter ( "SPMMO18200_prcpsignflag" , "1" ); // 필요시 적용_처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료(default))
  835. setParameter ( "SPMMO18200_aftcertflag" , "12" ); // 필요시 적용_후인증여부
  836. setParameter ( "SPMMO18200_aftcertdrid" , sParamActcertdrid ); // 필요시 적용_후인증의사ID chngmedispclid
  837. setParameter ( "SPMMO18200_title" , "환자번호: " + sParamPid + " 환자명 : " + sParamPatNm + " S/A : " + sParamSexAge);
  838. //setParameter ( "SPMMO18200_prcpstatcd", "000"); //필요시 적용
  839. //setParameter ( "SPMMO18200_oprsrvno", "0"); //필요시 적용
  840. //setParameter ( "SPMMO18200_prcpauthflag", "0"); //필요시 적용
  841. var xpt = window.screenleft + 200;
  842. var ypt = window.screenTop + 100;
  843. var coord = getRelativeCoordinate ( xpt, ypt );
  844. var mon = coord[0];
  845. xpt = coord[1];
  846. ypt = coord[2];
  847. modal ( "SPMMO18200", mon, xpt, ypt, "SPMMO01000", "/root/result", "/root/result", "", false ); // 외래예약처방 저장화면 호출
  848. clearParameter ( "SPMMO18200_pid" );
  849. clearParameter ( "SPMMO18200_orddd" );
  850. clearParameter ( "SPMMO18200_cretno" );
  851. clearParameter ( "SPMMO18200_prcpdd" );
  852. clearParameter ( "SPMMO18200_prcpinptflag" );
  853. clearParameter ( "SPMMO18200_ioflag" );
  854. clearParameter ( "SPMMO18200_prcpkindcd" );
  855. clearParameter ( "SPMMO18200_prcpsignflag" );
  856. clearParameter ( "SPMMO18200_aftcertflag" );
  857. clearParameter ( "SPMMO18200_aftcertdrid" );
  858. return getParameter("SPMMO18200_rtnyn");
  859. }else{
  860. return "X";
  861. }
  862. }
  863. // --------------------------------------------------
  864. // 그리드 수정여부 확인
  865. // --------------------------------------------------
  866. function checkGridUpdate(dataset)
  867. {
  868. var bReturn = false;
  869. for( var i=0 ; i<dataset.rowcount ; i++ ){
  870. if( dataset.getRowType(i) == 4 ){
  871. bReturn = true;
  872. break;
  873. }
  874. }
  875. return bReturn;
  876. }
  877. // --------------------------------------------------
  878. // 리스트 출력
  879. // --------------------------------------------------
  880. function fPrntList(){
  881. /*
  882. var opcnfmdd = model.getValue("/root/main/dsc/dscList[1]/opcnfmdd");
  883. if (opcnfmdd == ""){
  884. messageBox("조회가 되지", "E007");
  885. return;
  886. }
  887. */
  888. var pGrd = swt_main.case_dm.grd_dscList;
  889. if (swt_main.case_dm.grd_dscList.rowcount <= 0){
  890. sysf_messageBox("조회가 되지", "E007");
  891. return;
  892. }
  893. var objDOM = rptf_createDOM(); // DOM 객체 설정
  894. rptf_setNodeListToDOM(objDOM, "root/send/dsc/dscList", ds_main_dsc_dscList); // 데이터셋
  895. var objParam = new Object();
  896. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  897. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  898. rptf_exeReportPreview30(["RPMNP06000"],[objParam], option);
  899. }
  900. // --------------------------------------------------
  901. // 엑셀 출력
  902. // --------------------------------------------------
  903. function fPrntExcl(){
  904. var opcnfmdd = ds_main_dsc_dscList.getColumn(0, "opcnfmdd");
  905. if (utlf_isNull(opcnfmdd)){
  906. sysf_messageBox("조회가 되지", "E007");
  907. return;
  908. }
  909. var sPrntDD = ds_main_cond.getColumn(0, "opcnfmdd");
  910. grdf_exportExcel(swt_main.case_dm.grd_dscList, "DSC환자정보_("+sPrntDD+")", "SheetName", false, "", "user", false);
  911. }
  912. // --------------------------------------------------
  913. // dsc메인에서 오른쪽 마우스버튼
  914. // --------------------------------------------------
  915. // function fnonmousedown() {
  916. //
  917. // if (utlf_isNull(ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid"))) return;
  918. //
  919. // var colnm = utlf_transNullToEmpty(swt_main.case_dm.grd_dscList.getCellText(-1, swt_main.case_dm.grd_dscList.currentcol));
  920. // var tmpcareinrmdd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "tmpcareinrmdd");
  921. // var oppatflagcd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "oppatflagcd");
  922. // //20101214_KNUH_Start seqflag 추가
  923. // var seqflag = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "seqflag"); ;
  924. // //20101214_KNUH_End
  925. //
  926. // colnm = colnm.substring(0,2);
  927. //
  928. // var sdschdd1 = utlf_transNullToEmpty(ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "dschdd"));
  929. // sdschdd1 = sdschdd1.replace("-","");
  930. // sdschdd1 = sdschdd1.substring(0,1);
  931. //
  932. // //---(수술환자+angio(수술정보없음)
  933. // // if(oppatflagcd=="D"&&colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  934. // // fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  935. // // }else {
  936. // // fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  937. // // }
  938. //
  939. // if(seqflag == "1") {
  940. // if (group2.rdo_dscflag.value == "D") {
  941. // //if(colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  942. // if(colnm== "입실") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  943. // pMenu_inmenumenu.trackPopup(e.screenX, e.screenY);
  944. // }else {
  945. // pMenu_grdmenumenu.trackPopup(e.screenX, e.screenY);
  946. // }
  947. // } else {
  948. // pMenu_grdmenumenu.trackPopup(e.screenX, e.screenY);
  949. // }
  950. // }
  951. // }
  952. //--------------------------------
  953. // 수술상태에 따른 지시사항 메시지 표시
  954. //--------------------------------
  955. function fMsgDisp() {
  956. var pGrd = swt_main.case_dm.grd_dscList;
  957. var pid = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid");
  958. var hngnm = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "hngnm");
  959. var sMsg = "";
  960. if ( pGrd.rowcount <=0 || pGrd.currentrow <= -1 )
  961. sMsg = "";
  962. var sPath = ds_main_dsc_dscList;
  963. var opstatcd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "opstatcd"); //수술상태값
  964. var prcpcnt = parseInt( ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "iprccount")) + parseInt( ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "oprccount") );//처방갯수
  965. var inflag = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "careinrmdd");//dsc입실여부
  966. var indschstat = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indschstat");//재원상태
  967. inflag = fReplace(inflag, "-","");
  968. inflag = fReplace(inflag, " ","")
  969. //alert( opstatcd + "/" + inflag + "/" + prcpcnt);
  970. //마취취소 + 입실 전 + 진료처방 유
  971. if (opstatcd == '29' && utlf_isNull(inflag) && prcpcnt > 0)
  972. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실전이며 진료처방이 있습니다. 원무팀에 전화로 '입원정보' 삭제를 요청하십시오.";
  973. //마취취소 + 입실 후 + 진료처방 무 + 퇴원예고없음
  974. if (opstatcd == '29' && !utlf_isNull(inflag) && prcpcnt == 0 && utlf_isNull(indschstat))
  975. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 진료처방이 없습니다. 원무팀에 전화로 '입원정보' 삭제를 요청하십시오.";
  976. //마취취소 + 입실 후 + 진료처방 무 + 퇴원예고있음 (20080917 dhkim - process 문의필요)
  977. if (opstatcd == '29' && !utlf_isNull(inflag) && prcpcnt == 0 && indschstat == 'ⓓ')
  978. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 퇴원예고 되었습니다. 퇴실정리를 하십시오.";
  979. //마취취소 + 입실 후 + 진료처방 유 + 퇴원예고없음 (20080917 dhkim - 퇴원예고 메세지 변경)
  980. if (opstatcd == '29' && !utlf_isNull(inflag) && prcpcnt > 0 && utlf_isNull(indschstat))
  981. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 진료처방이 있습니다. 진료팀에 퇴원예고를 요청하십시오.";
  982. //마취취소 + 입실 후 + 진료처방 유 + 퇴원예고있음 (20080917 dhkim - 퇴원예고 메세지 변경)
  983. if (opstatcd == '29' && !utlf_isNull(inflag) && prcpcnt > 0 && indschstat == 'ⓓ')
  984. sMsg = hngnm + "(" + pid + ")님은 수술 취소가 되었고 DSC 입실후이며 진료처방이 있습니다. 퇴실정리를 하십시오.";
  985. if(!utlf_isNull(sMsg)){
  986. swt_main.case_dm.out_msg.visible = true;
  987. }else{
  988. swt_main.case_dm.out_msg.visible = false;
  989. }
  990. swt_main.case_dm.out_msg.value = sMsg;
  991. }
  992. //--------------------------------
  993. // 문자열 바꾸기
  994. //--------------------------------
  995. function fReplace(str0,str1,str2) {
  996. str0 += "";
  997. str1 += "";
  998. str2 += "";
  999. while ( str0.indexOf(str1) > -1 ) {
  1000. str0 = str0.replace(str1,str2);
  1001. }
  1002. return str0;
  1003. }
  1004. //-----------------------------------------
  1005. // dsc 퇴실 취소(20080129)
  1006. //-----------------------------------------
  1007. function fOutCancel() {
  1008. var pGrd = swt_main.case_dm.grd_dscList;
  1009. var sPath = ds_main_dsc_dscList;
  1010. if (pGrd.rowcount <= 0 || pGrd.currentrow < 0) {
  1011. sysf_messageBox("자료가 선택되지 않았습니다.", "E999", "");
  1012. return;
  1013. }
  1014. var sChk = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indschstat" );
  1015. var dschdd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "dschdd");
  1016. //테스트중....
  1017. //alert(sChk+dschdd);
  1018. var jPid = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid"); // 등록번호
  1019. var jIndd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd"); // 입원일자
  1020. var jCretno = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "cretno"); // 생성번호
  1021. ds_send_judginfo.setColumn(0, "pid", jPid);
  1022. ds_send_judginfo.setColumn(0, "indd", jIndd);
  1023. ds_send_judginfo.setColumn(0, "cretno", jCretno);
  1024. var oParam = {};
  1025. oParam.id = "TRMNE00113";
  1026. oParam.service = "ercareapp.ERInRmOutRmMngt";
  1027. oParam.method = "reqGetJudgStat";
  1028. oParam.inds = "req=ds_send_judginfo";
  1029. oParam.outds = "ds_judginfo=judginfo";
  1030. oParam.async = false;
  1031. //oParam.callback = "cf_TRMNE00113";
  1032. tranf_submit(oParam);
  1033. var jJudginfo = ds_judginfo.getColumn(0, "dschjudgprcsstat");
  1034. if (jJudginfo != "A") {
  1035. sysf_messageBox(" 심사상태를 해제하고 퇴실취소를 진행하세요.\r\n\r\n" +
  1036. "※ 일과시간 중 - 심사실로 연락, 일과시간 외 - 응급수납으로 연락", "E999");
  1037. return;
  1038. }
  1039. if (sChk == "ⓒ" || (sChk == "◆" && dschdd != '-')) {
  1040. //20081218 dhkim
  1041. //6시간미만 환자의 경우 심사를 거치지 않고 바로 퇴원수납을 하는 경우가 존재함(안과의경우만해당)
  1042. //그리하여 퇴원수납여부를 체크해 퇴원수납된 환자의 경우 퇴실취소를 하지 못하도록 blocking처리 추가
  1043. var rcptyn = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "rcptyn");
  1044. if(rcptyn == 'Y'){
  1045. sysf_messageBox("이미 퇴원수납된 환자입니다.\r\n원무팀에 퇴원수납취소를 요청하신 후\r\n간호퇴실취소를 진행 하십시오.", "E999", "");
  1046. return;
  1047. }
  1048. //20081219 dhkim
  1049. //오늘일자환자가 아니면 취소불가
  1050. var indd = ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd");
  1051. if(indd != utlf_getCurrentDate()){
  1052. sysf_messageBox("입원일이 오늘인 환자만 간호퇴실취소 할 수 있습니다.", "E999", "");
  1053. return;
  1054. }
  1055. //if(!checkGridUpdate(grd_dscList))
  1056. //{
  1057. // alert("저장할 자료가 존재하지 않습니다.");
  1058. // return;
  1059. //}
  1060. if (sysf_messageBox("간호사퇴원정리완료 취소 ",'Q003',"") != 6) return;
  1061. var sHeader = "m▦careinrmdd▦pid▦indd▦cretno▦seqno▩";
  1062. var sData = "u" +
  1063. "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "careinrmdd") +
  1064. "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid") +
  1065. "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd") +
  1066. "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "cretno") +
  1067. "▦" + ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "seqno") + "▩";
  1068. ds_send_dscList.clearData();
  1069. ds_send_dscList.addRow();
  1070. ds_send_dscList.setColumn(0, "status", "u");
  1071. ds_send_dscList.setColumn(0, "careinrmdd", ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "careinrmdd"));
  1072. ds_send_dscList.setColumn(0, "pid", ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "pid"));
  1073. ds_send_dscList.setColumn(0, "indd", ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "indd"));
  1074. ds_send_dscList.setColumn(0, "cretno", ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "cretno"));
  1075. ds_send_dscList.setColumn(0, "seqno", ds_main_dsc_dscList.getColumn(ds_main_dsc_dscList.rowposition, "seqno"));
  1076. //model.makeValue("/root/send/dscList",grd_dscList.getUpdateData());
  1077. // alert( sHeader + sData);
  1078. // return;
  1079. var oParam = {};
  1080. oParam.id = "TXMNP06002";
  1081. oParam.service = "opanstapp.OpAnstDscMngt";
  1082. oParam.method = "reqExeDSCInOutInfOutCancel";
  1083. oParam.inds = "dscList=ds_send_dscList";
  1084. oParam.outds = "";
  1085. oParam.async = false;
  1086. oParam.callback = "cf_TXMNP06002";
  1087. tranf_submit(oParam);
  1088. if ( arErrorCode.pop("TXMNP06002") > -1 ) {
  1089. fDscDataRead(); // 조회
  1090. }
  1091. } else {
  1092. sysf_messageBox("간호퇴실취소할 수 없는 상태입니다.", "E999", "");
  1093. }
  1094. }
  1095. function cf_TXMNP06002(sSvcId, nErrorCode, sErrorMsg) {
  1096. arErrorCode.push(sSvcId, nErrorCode);
  1097. }
  1098. /**
  1099. * @group :
  1100. * @ver : 2010.11.19
  1101. * @by : DARK9258
  1102. * @---------------------------------------------------
  1103. * @type : function
  1104. * @access : public
  1105. * @desc : 환자 name라벨 출력
  1106. * @param :
  1107. * @return :
  1108. * @---------------------------------------------------
  1109. */
  1110. function fPrintNameLabel(pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt, pPort){
  1111. ////////////////////////////////////////////////////////////////////////////////////////// 원본_20090522
  1112. // //20080905 port찾기
  1113. // //port정보 가져오기
  1114. // model.removenode('/root/send');
  1115. // model.removenode('/root/main/barcdprntsetup');
  1116. // model.makenode('/root/main/barcdprntsetup');
  1117. // model.makeValue('/root/send/scrnid', 'SMMNP00100');
  1118. // if(submit('TRLLC90101')){
  1119. // pPort = model.getValue('/root/main/barcdprntsetup/prntsetupinfo/setupinfo[1]/comm02/comm');
  1120. // }
  1121. //
  1122. // if(document.all("CommAX") != null) {
  1123. // //바코드 출력 시작
  1124. //
  1125. // var portOpenTF = "";
  1126. //
  1127. // // CommPort 설정
  1128. // if (pPort == "" || pPort == null || pPort == " ") {
  1129. // CommAX.CommPort = "1"; // default port setting
  1130. // } else {
  1131. // CommAX.CommPort = pPort; //Port 설정
  1132. // }
  1133. //
  1134. // CommAX.Settings = "9600,n,8,1";
  1135. //
  1136. // portOpenTF = CommAX.PortOpen("true"); //Port Open
  1137. //
  1138. // if(portOpenTF == "TRUE") {
  1139. //
  1140. // var iLeft = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left");
  1141. // var iTop = model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top");
  1142. //
  1143. // if(iLeft == "" || iLeft == "-"){
  1144. // iLeft = 0;
  1145. // }
  1146. // if(iTop == "" || iTop == "-"){
  1147. // iTop = 0;
  1148. // }
  1149. //
  1150. // var sData = "^XA^LH0,20";//출력시작점
  1151. //
  1152. // //출력일
  1153. // var prndd = getCurrentDate().substr(0,4) + "/" + getCurrentDate().substr(4,2) + "/" + getCurrentDate().substr(6,2);
  1154. // sData += "^CFA,20,20";//bold, height, width
  1155. // sData += "^FO10,20";//위치지정(x축, y축)
  1156. // sData += "^FD"+ prndd + "^FS";
  1157. //
  1158. // //수술정보
  1159. // var opinfo = oproomcdnm + "R " + depthngnm + " " + pid;
  1160. // sData += CommAX.PrtImgOut(20, 60, opinfo, 1, 1);//PrtImgOut(x축, y축, data, width, heigt)
  1161. // sData += CommAX.HanImageData();
  1162. //
  1163. //
  1164. // //환자명
  1165. // //글자수가 4이상이면 left정렬 4이하이면 center정렬
  1166. // var hx = 20; var hy = 105;
  1167. // /*var len = hngnm.length;
  1168. // if(len > 4){
  1169. // hx = 10;
  1170. // }else if(len == 4){
  1171. // hx = 90;
  1172. // }else if(len == 3){
  1173. // hx = 120;
  1174. // }else if(len == 2){
  1175. // hx = 150;
  1176. // }else if(len == 1){
  1177. // hx = 180;
  1178. // }*/
  1179. // sData += CommAX.PrtImgOut(hx, hy, hngnm, 2, 2);//PrtImgOut(x축, y축, data, width, heigt)
  1180. // sData += CommAX.HanImageData();
  1181. //
  1182. // //sexage
  1183. // sData += "^CFE,20,20";
  1184. // sData += "^FO300,120";//위치지정
  1185. // sData += "^FD"+ sexage + "^FS";
  1186. //
  1187. // sData += "^PQ"+ prncnt + "^XZ";//출력장수
  1188. //
  1189. // CommAX.SendMessage(sData); // 출력
  1190. // CommAX.PortOpen("false"); // 출력종료
  1191. //
  1192. //
  1193. // } else {
  1194. // messageBox("아래 사항을 확인후 재출력해주십시오."
  1195. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  1196. // + " \n 2.케이블 확인"
  1197. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  1198. // return;
  1199. // }
  1200. // }
  1201. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1202. // SATO용 추가_20090522(ByJA)
  1203. if(prncnt > 0){
  1204. //1. 바코드 라벨 설정값 조회
  1205. var scrnid = "SMMNP06000";
  1206. ds_barcdprntsetup.clearData();
  1207. ds_main_prntsetupinfo.clearData();
  1208. fGetBarCodeInfo(scrnid); // CareCom.js
  1209. if( ds_main_prntsetupinfo.rowcount > 0 ){
  1210. ds_barcdprntsetup.copyData(ds_main_prntsetupinfo);
  1211. }
  1212. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  1213. //XML string 값을 파라미터로 넘김
  1214. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  1215. var sParamObj = new Object();
  1216. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  1217. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  1218. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  1219. sysf_trace(succYn);
  1220. // => retrun DS
  1221. // : ds_data_setupinfo(prntkind, commkind)
  1222. // : ds_data_comm01(setupval)
  1223. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  1224. // : ds_data_comm03(setupval)
  1225. // : ds_data_blank(left, top)
  1226. // ------------------------------------------------------------------------------------------------------------
  1227. lzzfMakeBrcdPrntObjHanDo("CommAX");
  1228. //2. 바코드 라벨 환경설정
  1229. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  1230. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  1231. /** <addon>
  1232. *개발일시: 2010.05.13
  1233. *개발자: 양천덕
  1234. *요청병원: 세종병원
  1235. *요청파트: 간호
  1236. *개발내용: 바코드 출력 형식 변경으로 수정 처리(수술)
  1237. </addon>
  1238. */
  1239. fPrtORPatNameLabel(barcdRef, pid, hngnm, sexage, oproomcdnm, depthngnm, prncnt);
  1240. return;
  1241. }
  1242. }
  1243. function fLabelPrt() {
  1244. group5.visible = true;//출력장수 선택
  1245. }
  1246. // 입실시 선택진료 확인
  1247. function fCheckSpecOrdSign() {
  1248. ds_main_paminfo_list.clearData();
  1249. var node = sysf_getGlobalVariable("paminfo");
  1250. dsf_setCSVToDs("ds_main_paminfo_list", node);
  1251. var s_pid = ds_main_paminfo_list.getColumn(0, "pid");;
  1252. var s_ordtype = 'I';
  1253. var s_orddd = ds_main_paminfo_list.getColumn(0, "indd");
  1254. var s_orddeptcd = ds_main_paminfo_list.getColumn(0, "orddeptcd");
  1255. var s_orddrid = ds_main_paminfo_list.getColumn(0, "medispclid");
  1256. var s_fromdd = ds_main_paminfo_list.getColumn(0, "indd");
  1257. var s_hngnm = ds_main_paminfo_list.getColumn(0, "hngnm");
  1258. var s_rrgstno1 = ds_main_paminfo_list.getColumn(0, "rrgstno1");
  1259. var s_rrgstno2 = ds_main_paminfo_list.getColumn(0, "rrgstno2");
  1260. var s_specordyn = ds_main_paminfo_list.getColumn(0, "specordyn");
  1261. var sOrddeptcdMsg = ds_main_paminfo_list.getColumn(0, "orddeptnm");
  1262. var sOrddridMsg = ds_main_paminfo_list.getColumn(0, "orddrnm");
  1263. //alert(s_pid);
  1264. ds_send_data26.setColumn(0, "pid", s_pid); // pid
  1265. ds_send_data26.setColumn(0, "ordtype", "I"); // ordtype
  1266. ds_send_data26.setColumn(0, "indd", s_orddd);// orddd
  1267. ds_send_data26.setColumn(0, "orddd", s_orddd);// orddd
  1268. ds_send_data26.setColumn(0, "orddeptcd", s_orddeptcd); // orddeptcd
  1269. ds_send_data26.setColumn(0, "medispclid", s_orddrid); // orddrid
  1270. ds_send_data26.setColumn(0, "orddrid", s_orddrid); // orddrid
  1271. var oParam = {};
  1272. oParam.id = "TRPMI00406";
  1273. oParam.service = "ipatmngtapp.InhospUpdt";
  1274. oParam.method = "reqGetSpecOrdAppYN";
  1275. oParam.inds = "req=ds_send_data26";
  1276. oParam.outds = "ds_tempchk_specapp=rgst";
  1277. oParam.async = false;
  1278. //oParam.callback = "cf_TRPMI00406";
  1279. tranf_submit(oParam);
  1280. if (ds_tempchk_specapp.getColumn(0, "rgstyn") == "N") {
  1281. var sMsg = "[" + utlf_transNullToEmpty(sOrddeptcdMsg) + "]" + "[" + utlf_transNullToEmpty(sOrddridMsg) + "]";
  1282. if( s_specordyn == "Y") {
  1283. if( sysf_messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?", "Q999", "") == 6 ){
  1284. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  1285. }
  1286. } else {
  1287. if( sysf_messageBox(sMsg + " 진료지원 위임이 되어 있지 않습니다. 위임하시겠습니까?", "Q999", "") == 6 ){
  1288. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  1289. }
  1290. }
  1291. } else {
  1292. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  1293. }
  1294. }
  1295. /* ------------------------------------------------- */
  1296. /* ------End Of List ------------------------------- */
  1297. /* -------------------------------------------------- */
  1298. ]]></Script>