SMPMC04201_전자카드출력.xfdl 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMPMC04201" position="absolute 0 0 727 521" titletext="전자카드출력" onload="SMPMC04201_onload" ontimer="SMPMC04201_ontimer" onclose="SMPMC04201_onclose">
  5. <Layouts>
  6. <Layout>
  7. <Div id="group1" scrollbars="autoboth" position="absolute 0 489 725 516" style="" anchor="left right bottom">
  8. <Layouts>
  9. <Layout>
  10. <Shape id="line32" class="line_6" linetype="horizontal" position="absolute 0 0 725 3" style="" anchor="left top right"/>
  11. <Button id="button5" class="btn4" position="absolute 563 5 643 27" text="발급시작" onclick="group1_button5_onclick" anchor="top right"/>
  12. <Button id="button6" class="btn4" position="absolute 645 5 725 27" text="발급중지" onclick="group1_button6_onclick" anchor="top right"/>
  13. </Layout>
  14. </Layouts>
  15. </Div>
  16. <Div id="group3" position="absolute 0 0 725 25" style="">
  17. <Layouts>
  18. <Layout>
  19. <Static id="caption22" class="tit_1" position="absolute 0 0 120 25" style="" text="전자카드출력" anchor="default"/>
  20. </Layout>
  21. </Layouts>
  22. </Div>
  23. <Div id="group2" position="absolute 0 23 725 489" style="" anchor="all">
  24. <Layouts>
  25. <Layout>
  26. <Div id="group5" position="absolute 0 0 725 465" style="" anchor="all">
  27. <Layouts>
  28. <Layout>
  29. <Grid id="datagrid1" binddataset="ds_main_isswaitpat_isswaitpatlist" position="absolute 0 31 725 465" style="" anchor="all">
  30. <Formats>
  31. <Format id="default">
  32. <Columns>
  33. <Column size="24"/>
  34. <Column size="64"/>
  35. <Column size="100"/>
  36. <Column size="100"/>
  37. <Column size="65"/>
  38. <Column size="70"/>
  39. <Column size="100"/>
  40. <Column size="100"/>
  41. <Column size="80"/>
  42. </Columns>
  43. <Rows>
  44. <Row size="24" band="head"/>
  45. <Row size="24"/>
  46. </Rows>
  47. <Band id="head">
  48. <Cell/>
  49. <Cell col="1" text="발급상태"/>
  50. <Cell col="2" text="등록번호"/>
  51. <Cell col="3" text="환자명"/>
  52. <Cell col="4" colspan="2" text="주민등록번호" taborder="undefined"/>
  53. <Cell col="6" text="발급일자"/>
  54. <Cell col="7" text="발급시간"/>
  55. <Cell col="8" text="발급자"/>
  56. </Band>
  57. <Band id="body">
  58. <Cell celltype="head" expr="currow + 1"/>
  59. <Cell col="1" displaytype="combo" edittype="combo" text="bind:issyn" combodataset="ds_init_issyn" combocodecol="value" combodatacol="label"/>
  60. <Cell col="2" text="bind:pid"/>
  61. <Cell col="3" text="bind:hngnm"/>
  62. <Cell col="4" text="bind:rrgstno1"/>
  63. <Cell col="5" text="bind:rrgstno2"/>
  64. <Cell col="6" displaytype="date" text="bind:issdd" mask="yyyy-MM-dd" calendardisplaynulltype="nulltext"/>
  65. <Cell col="7" displaytype="date" text="bind:isstm" mask="HH:mm:ss" calendardisplaynulltype="nulltext"/>
  66. <Cell col="8" text="bind:issrid"/>
  67. </Band>
  68. </Format>
  69. </Formats>
  70. </Grid>
  71. <Shape id="line2" class="line_10" linetype="horizontal" position="absolute 0 27 725 31" style="" anchor="left top right"/>
  72. <Static id="caption14" class="tit_2" position="absolute 0 10 144 27" style="" text="발급대기내역" anchor="default"/>
  73. </Layout>
  74. </Layouts>
  75. </Div>
  76. </Layout>
  77. </Layouts>
  78. </Div>
  79. <ActiveX id="NWSerial_EMB" progid="{648a5600-2c6e-101b-82b6-000000000014}" visible="false" position="absolute 515 482 555 517" style="" anchor="default" windowed="true"/>
  80. </Layout>
  81. </Layouts>
  82. <Objects>
  83. <Dataset id="ds_main_isswaitpat" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  84. <ColumnInfo/>
  85. </Dataset>
  86. <Dataset id="ds_main" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  87. <ColumnInfo/>
  88. </Dataset>
  89. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  90. <ColumnInfo/>
  91. </Dataset>
  92. <Dataset id="ds_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  93. <ColumnInfo>
  94. <Column id="rsrvlist" type="STRING" size="256"/>
  95. </ColumnInfo>
  96. <Rows>
  97. <Row>
  98. <Col id="rsrvlist"/>
  99. </Row>
  100. </Rows>
  101. </Dataset>
  102. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  103. <ColumnInfo>
  104. <Column id="send" type="STRING" size="256"/>
  105. </ColumnInfo>
  106. <Rows>
  107. <Row>
  108. <Col id="send"/>
  109. </Row>
  110. </Rows>
  111. </Dataset>
  112. <Dataset id="ds_main_isswaitpat_isswaitpatlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  113. <ColumnInfo>
  114. <Column id="issyn" type="STRING" size="256"/>
  115. <Column id="pid" type="STRING" size="256"/>
  116. <Column id="hngnm" type="STRING" size="256"/>
  117. <Column id="rrgstno1" type="STRING" size="256"/>
  118. <Column id="rrgstno2" type="STRING" size="256"/>
  119. <Column id="issdd" type="STRING" size="256"/>
  120. <Column id="isstm" type="STRING" size="256"/>
  121. <Column id="issrid" type="STRING" size="256"/>
  122. </ColumnInfo>
  123. <Rows>
  124. <Row>
  125. <Col id="issyn"/>
  126. <Col id="pid"/>
  127. <Col id="hngnm"/>
  128. <Col id="rrgstno1"/>
  129. <Col id="rrgstno2"/>
  130. <Col id="issdd"/>
  131. <Col id="isstm"/>
  132. <Col id="issrid"/>
  133. </Row>
  134. </Rows>
  135. </Dataset>
  136. <Dataset id="ds_init_PAM" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  137. <ColumnInfo>
  138. <Column id="P0018list" type="STRING" size="256"/>
  139. </ColumnInfo>
  140. </Dataset>
  141. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  142. <ColumnInfo>
  143. <Column id="patcardissue" type="STRING" size="256"/>
  144. <Column id="session" type="STRING" size="256"/>
  145. </ColumnInfo>
  146. <Rows>
  147. <Row>
  148. <Col id="patcardissue"/>
  149. <Col id="session"/>
  150. </Row>
  151. </Rows>
  152. </Dataset>
  153. <Dataset id="ds_init_issyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  154. <ColumnInfo>
  155. <Column id="label" type="STRING" size="256"/>
  156. <Column id="value" type="STRING" size="256"/>
  157. </ColumnInfo>
  158. <Rows>
  159. <Row>
  160. <Col id="label">대기</Col>
  161. <Col id="value">N</Col>
  162. </Row>
  163. <Row>
  164. <Col id="label">발급중</Col>
  165. <Col id="value">I</Col>
  166. </Row>
  167. <Row>
  168. <Col id="label">발급오류</Col>
  169. <Col id="value">E</Col>
  170. </Row>
  171. <Row>
  172. <Col id="label">발급완료</Col>
  173. <Col id="value">Y</Col>
  174. </Row>
  175. </Rows>
  176. </Dataset>
  177. <Dataset id="ds_hidden_patcardissue" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  178. <Dataset id="ds_hidden_session" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  179. <Dataset id="ds_main_patcardissue_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  180. </Objects>
  181. <Bind/>
  182. <Script type="xscript4.0"><![CDATA[include 'com_commonxp::comm_main.xjs';
  183. include 'com_basiccodexp::ZBC001.xjs';
  184. include 'pam_opatmngtxp::PMOCOM.xjs';
  185. include 'pam_pamcomnxp::PAM.xjs';
  186. include 'pam_pamcomnxp::PAM001.xjs';
  187. include 'pam_ipatmngtxp::PMI001.xjs';
  188. function SMPMC04201_onload(obj:Form, e:LoadEventInfo) {
  189. frmf_initForm(obj);
  190. grdf_initGrid(group2.group5.datagrid1);
  191. //grdf_setGridSort(grd_XXX);
  192. //grdf_setRowTypeIcon(grd_XXX, 0_컬럼위치값);
  193. // 2009.09.29 - 출력물 자동 출력여부를 위해서 원무공통코드조회
  194. var arrParam = [ {dsNm: "ds_init_PAM_P0018list", cdGrpId: "P0018" } ];
  195. pamfGetCodeList(arrParam);
  196. //2007-10-04 이동식 추가 - 환자카드발급 PC정보를 읽어온다.
  197. fGetPCID();
  198. //END..
  199. //세션정보 조회
  200. fGetUserInfosSampling();
  201. group1.button6.enable = true;
  202. group1.button5.enable = false;
  203. //2009-10-23 이동식 수정 - 병원별 기종 차이로 인한 인터벌 시간 변경
  204. var sInstcd = ds_hidden_session.getColumn(0, "sess_dutplceinstcd");
  205. if( sInstcd != '011' && sInstcd != '013' && sInstcd != '014' && sInstcd != '017' ){
  206. sInstcd = '018'; //부천성가 기기 변경으로 인한 test 번호
  207. }
  208. if( sInstcd == '011' && sInstcd == '017' || sInstcd == '018' ){
  209. gIntervalTime = 5000;
  210. }else{
  211. gIntervalTime = 30000;
  212. }
  213. fInit();
  214. }
  215. var IssCard = null;
  216. var gTimerID;
  217. var gIntervalTime;
  218. //초기화
  219. function fInit(){
  220. //다음번 발행 카드 대상 환자 번호 저장
  221. // var pid = '-';
  222. // if( ds_main_isswaitpat_isswaitpatlist_pid.rowcount;> 1 ){
  223. // pid = ds_main_isswaitpat_isswaitpatlist.getColumn(2, "pid")
  224. // }
  225. var issno = ds_hidden_patcardissue.getColumn(0, "pcinfo");
  226. if( utlf_isNull(issno)){
  227. //window.clearInterval(gTimerID);
  228. //gTimerID = window.setInterval("fInit()", gIntervalTime);
  229. sysf_messageBox("PC 고유번호 정보를 찾을 수 없습니다.", "E999", "");
  230. group1.button6.enable = false;
  231. group1.button5.enable = true;
  232. return false;
  233. }
  234. //데이터 초기화
  235. ds_main_isswaitpat_isswaitpatlist.clearData();
  236. //dsf_makeValue( ds_main, "isswaitpat", "string", "" );
  237. //카드발급 데이터 조회
  238. // dsf_makeValue( ds_main_patcardissue_send, "pid", "string", pid);
  239. dsf_makeValue( ds_main_patcardissue_send, "issno", "string", issno);
  240. //submit("TRPMC04203");
  241. var oParam = {};
  242. oParam.id = "TRPMC04203";
  243. oParam.service = "pamcomnapp.PamComn";
  244. oParam.method = "reqGetIssInfo";
  245. oParam.inds = "req=ds_main_patcardissue_send";
  246. oParam.outds = "ds_main_isswaitpat_isswaitpatlist=getinfo";
  247. oParam.async = false;
  248. tranf_submit(oParam);
  249. //데이터 없으면 리턴
  250. if( ds_main_isswaitpat_isswaitpatlist.rowcount < 1 ){
  251. //window.clearInterval(gTimerID);
  252. //gTimerID = window.setInterval("fInit()", 3000);
  253. gTimerID = 0;
  254. setTimer(gTimerID, 3000);
  255. return false;
  256. }else{
  257. //데이터 초기화
  258. ds_main_patcardissue.clearData();
  259. dsf_makeValue( ds_main_patcardissue, "getinfo", "string", "" );
  260. dsf_makeValue( ds_main_patcardissue, "issinfo", "string", "" );
  261. dsf_makeValue( ds_main_patcardissue, "setinfo", "string", "" );
  262. dsf_makeValue( ds_main_patcardissue_send, "pid", "string", "" );
  263. dsf_makeValue( ds_main_patcardissue_send, "issdd", "string", "" );
  264. dsf_makeValue( ds_main_patcardissue_send, "issno", "string", "" );
  265. dsf_makeValue( ds_main_patcardissue_send, "issyn", "string", "" );
  266. dsf_makeValue( ds_main_patcardissue_send, "remfact", "string", "" );
  267. //model.copyNode("ds_main_patcardissue_getinfo", "ds_main_isswaitpat_isswaitpatlist[1]");
  268. ds_main_patcardissue_getinfo.clearData();
  269. ds_main_patcardissue_getinfo.addRow();
  270. ds_main_patcardissue_getinfo.copyRow( 0, ds_main_isswaitpat_isswaitpatlist, 0);
  271. ds_main_isswaitpat_isswaitpatlist.setColumn( 0, "issyn", 'I'); //발급중
  272. try{
  273. if( fIssuePatientCard() == true ){
  274. //ds_main_isswaitpat.setColumn( 0, "isswaitpatlist[1]_issyn", 'Y'); //발급완료
  275. ds_main_patcardissue_send.setColumn( 0, "pid", ds_main_isswaitpat_isswaitpatlist.getColumn(1, "pid"));
  276. ds_main_patcardissue_send.setColumn( 0, "issdd", ds_main_isswaitpat_isswaitpatlist.getColumn(1, "issdd"));
  277. ds_main_patcardissue_send.setColumn( 0, "issno", issno);
  278. ds_main_patcardissue_send.setColumn( 0, "issyn", 'Y');
  279. }else{
  280. ds_main_isswaitpat.setColumn( 0, "isswaitpatlist[1]_issyn", 'E'); //발급오류
  281. ds_main_patcardissue_send.setColumn( 0, "pid", ds_main_isswaitpat_isswaitpatlist.getColumn(1, "pid"));
  282. ds_main_patcardissue_send.setColumn( 0, "issdd", ds_main_isswaitpat_isswaitpatlist.getColumn(1, "issdd"));
  283. ds_main_patcardissue_send.setColumn( 0, "issno", issno);
  284. ds_main_patcardissue_send.setColumn( 0, "issyn", 'E');
  285. //
  286. //window.clearInterval(gTimerID);
  287. killTimer(gTimerID);
  288. if( sysf_messageBox("환자카드발행 중 오류 발생!! 계속 진행하시겠습니까?", "Q999", "") == '6' ){
  289. //gTimerID = window.setInterval("fInit()", 5000);
  290. gTimerID = 0;
  291. setTimer(gTimerID, 5000);
  292. group1.button6.enable = true;
  293. group1.button5.enable = false;
  294. }else{
  295. group1.button6.enable = false;
  296. group1.button5.enable = true;
  297. }
  298. }
  299. }catch(e){
  300. ds_main_patcardissue_send.setColumn( 0, "pid", ds_main_isswaitpat_isswaitpatlist.getColumn(1, "pid"));
  301. ds_main_patcardissue_send.setColumn( 0, "issdd", ds_main_isswaitpat_isswaitpatlist.getColumn(1, "issdd"));
  302. ds_main_patcardissue_send.setColumn( 0, "issno", issno);
  303. ds_main_patcardissue_send.setColumn( 0, "issyn", 'E');
  304. ds_main_patcardissue_send.setColumn( 0, "remfact", e.description);
  305. sysf_messageBox("[" + e.description + "]" + "환자카드 발행중 오류가 발생하여 카드발행을 중단합니다. 다시 시작하시려면 하단의 발급시작버튼을 눌러주세요!", "E999", "");
  306. //window.clearInterval(gTimerID);
  307. killTimer(gTimerID);
  308. group1.button6.enable = false;
  309. group1.button5.enable = true;
  310. }
  311. //submit("TXPMC04203");
  312. var oParam = {};
  313. oParam.id = "TRPMC04203";
  314. oParam.service = "pamcomnapp.PamComn";
  315. oParam.method = "reqSetIssInfo";
  316. oParam.inds = "req=ds_main_patcardissue_send";
  317. oParam.outds = "ds_main_isswaitpat_isswaitpatlist=getinfo";
  318. oParam.async = false;
  319. tranf_submit(oParam);
  320. }
  321. //model.refresh();
  322. }
  323. function fIssOtherCard(){
  324. IssCard.PortOpen = false;
  325. fInit();
  326. }
  327. function fIssOtherCard2(){
  328. //IssCard.PortOpen = false;
  329. fInit();
  330. }
  331. //2007-10-04 이동식 추가 - 환자카드발급신청
  332. function fIssuePatientCard(){
  333. /*
  334. 01. rid : 레포트명
  335. 02. dataType : 연계방법
  336. 03. paramsXPath : 매개변수필드 XPath
  337. 04. submitId : SubmitID
  338. 05. print : 출력여부
  339. 06. printDialog : 인쇄 창 보임 여부
  340. 07. fileType : 저장타입
  341. 08. fileName : 파일명
  342. 09. fileDialog : 파일 저장 창 보임여부
  343. 10. closeYn : 미리보기창닫기여부
  344. 11. monNo : 모니터 번호
  345. 12. parentObjId : 부모객체명
  346. 13. printPaperBin : 트레이번호
  347. 14. userService : 데이터 소스
  348. 15. showButton : 툴바버튼보임여부
  349. 16. printCount : 프린트장수
  350. 17. zoomRate : 미리보기뷰어 비율
  351. 18. printOption : 출력시 선택 옵션
  352. 19. dataXPath : 데이터 XPath
  353. 20. mainDataXPath : 메인리포트 반복XPath
  354. 21. subDataXPath : 서브리포트1 반복Xpath
  355. exeReportPreview(rid, dataType, paramsXPath, submitId, print, printDialog, fileType, fileName, fileDialog, closeYn, monNo, parentObjId, printPaperBin, userService, showButton, printCount, zoomRate, printOption, dataXPath, mainDataXPath, subDataXPath)
  356. c:\windows\device.ini 파일에 1A나 1B등 써놓으면 같은 내용을 가진 PC들은 그룹으로 지정되어 프린터 물려있는 PC자동으로 찾아서 출력함!
  357. */
  358. var sInstcd = ds_hidden_session.getColumn(0, "sess_dutplceinstcd");
  359. if( sInstcd!= '011' && sInstcd != '013' && sInstcd != '014' && sInstcd != '017' ){
  360. //sInstcd = '018';
  361. }
  362. //발급로직 start!!
  363. var pid = ds_main_patcardissue_getinfo.getColumn(0, "pid");
  364. var hngnm = ds_main_patcardissue_getinfo.getColumn(0, "hngnm");
  365. var engnm = ds_main_patcardissue_getinfo.getColumn(0, "engnm");
  366. var insukind = ds_main_patcardissue_getinfo.getColumn(0, "insukind");
  367. var rrgstno1 = ds_main_patcardissue_getinfo.getColumn(0, "rrgstno1");
  368. var rrgstno2 = ds_main_patcardissue_getinfo.getColumn(0, "rrgstno2");
  369. var rrgstno = ds_main_patcardissue_getinfo.getColumn(0, "rrgstno1") + ds_main_patcardissue_getinfo.getColumn(0, "rrgstno2");
  370. var sex = ds_main_patcardissue_getinfo.getColumn(0, "sex");
  371. //성가 환자카드로직 기존로직 제외
  372. if( sInstcd == '999' ){
  373. var spc = '';
  374. for( var i = 1; i <= 13 - pid.length; i ++ ){
  375. spc = spc + ' ';
  376. }
  377. //엠보싱세팅
  378. var emb = '';
  379. //등록번호 시작이 영문일때
  380. if( pid.substr(0,1) == 'A' || pid.substr(0,1) == 'B' ){
  381. emb = '#DCL#080550 1#FC1#800 2#FC2#500 3#FC1#200 4#FC1#200 #END#______'; //환자번호가 알파벳으로 시작
  382. spc = spc + ' '; // 간격 재조정
  383. }else{
  384. emb = '#DCL#080550 1#FC2#800 2#FC2#500 3#FC1#200 4#FC1#200 #END#______'; //환자번호가 숫자로만.
  385. }
  386. rrgstno = rrgstno1 + '-' + rrgstno2.substr(0, 1) + '******';
  387. var totalStr = '#DCC##EMB#' + pid + spc + insukind + '"' + engnm + '"' + rrgstno + ' ' + sex + '#GRD#1"' + pid + '"' + '#END#______';
  388. try{
  389. body.removeChild("NWSerial_EMB");
  390. if (components["NWSerial_EMB"] == null) { // 최초 한번만 createChild() 한다.
  391. body.createChild("xforms:object", "id:NWSerial_EMB; clsid:{648A5600-2C6E-101B-82B6-000000000014}; visibility:hidden; left:0px; top:0px; width:0px; height:0px; ");
  392. }
  393. IssCard = NWSerial_EMB;
  394. //Sets and returns the communications port number.
  395. IssCard.CommPort = 2;
  396. //Sets and returns the baud rate, parity, data bit, and stop bit
  397. IssCard.Settings = "9600,E,7,1";
  398. IssCard.InputLen = 0;
  399. IssCard.InBufferCount = 0;
  400. //Sets and returns the state of the communications port
  401. var portOpenYN = IssCard.PortOpen;
  402. if( portOpenYN == false ){
  403. IssCard.PortOpen = true;
  404. }
  405. portOpenYN = IssCard.PortOpen;
  406. if( portOpenYN == false ){
  407. sysf_messageBox("포트 연결에 실패하였습니다.", "E999", "");
  408. return false;
  409. }
  410. IssCard.Output = emb ;
  411. //타이머 3000 msecs
  412. var start = new Date().getTime();
  413. var msecs = '3000';
  414. var cur = start;
  415. while(cur - start < msecs){
  416. cur = new Date().getTime();
  417. }
  418. IssCard.Output = totalStr;
  419. var outBufferCount = IssCard.OutBufferCount;
  420. var inBufferCount = IssCard.InBufferCount;
  421. var cntLoof = 0;
  422. while( outBufferCount != 0 || inBufferCount == 0){
  423. cntLoof = parseInt(cntLoof) + 1;
  424. if( cntLoof > 30 ){
  425. throw "시간 초과 오류입니다.";
  426. }
  427. //타이머 3000 msecs
  428. var start = new Date().getTime();
  429. var msecs = '1000';
  430. var cur = start;
  431. while(cur - start < msecs){
  432. cur = new Date().getTime();
  433. }
  434. outBufferCount = IssCard.OutBufferCount;
  435. inBufferCount = IssCard.InBufferCount;
  436. }
  437. // window.clearInterval(gTimerID);
  438. // gTimerID = window.setInterval("fIssOtherCard()", gIntervalTime);
  439. gTimerID = 1;
  440. setTimer(gTimerID, gIntervalTime);
  441. return true;
  442. }catch(e){
  443. ds_main_patcardissue_send.setColumn( 0, "remfact", e);
  444. IssCard.PortOpen = false;
  445. return false;
  446. }
  447. //의정부 환자카드발급로직
  448. }else if( sInstcd == '013' ){
  449. //엠보싱세팅
  450. var emb = '';
  451. //환자이름 시작이 영문일때
  452. var sKorEngCheck = hngnm.charCodeAt(0);
  453. var sNameString = '';
  454. //영어 이외의 문자일 때 - 한글로 인식
  455. if( !( ( 0x61 <= sKorEngCheck && sKorEngCheck <= 0x7A ) || ( 0x41 <= sKorEngCheck && sKorEngCheck <= 0x5A ) ) ) {
  456. emb = "(((_!#)))______ #DCL#080400 1#FC2#0800 2#FC2#0500 3#FC2#0220 #END#______";
  457. sNameString = engnm;
  458. //영문일 경우 - 영어로 인식
  459. }else{
  460. emb = "(((_!#)))______ #DCL#080400 1#FC2#0800 2#FC1#0500 3#FC2#0220 #END#______";
  461. sNameString = hngnm.toLowerCase( );
  462. }
  463. //성별세팅
  464. if( rrgstno2.substr(0, 1) == '1' || rrgstno2.substr(0, 1) == '3' || rrgstno2.substr(0, 1) == '5' || rrgstno2.substr(0, 1) == '7'){ //남자
  465. sex = ".";
  466. }else{
  467. sex = ",";
  468. }
  469. //기타 정보 세팅
  470. var FS = "!";
  471. var pidLength = 10 - parseInt(pid.length);
  472. var BarTmp = pid;
  473. for( var i = 0; i < pidLength; i++ ){
  474. BarTmp = '0' + BarTmp;
  475. }
  476. var Bar = "#GRD#1" + FS + BarTmp + FS + "#END#______";
  477. var IDTmp = '';
  478. var sPNRN = rrgstno1 + '-' + rrgstno2.substr(0, 1) + '******';
  479. var totalStr = "(((_!#))) #DCC##EMB#" + pid + " " + insukind + FS + sNameString + FS + sPNRN + " " + sex + Bar;
  480. try{
  481. if (components["NWSerial_EMB"] == null) { // 최초 한번만 createChild() 한다.
  482. body.createChild("xforms:object", "id:NWSerial_EMB; clsid:{648A5600-2C6E-101B-82B6-000000000014}; visibility:hidden; left:0px; top:0px; width:0px; height:0px; ");
  483. }
  484. IssCard = NWSerial_EMB;
  485. //Sets and returns the communications port number.
  486. IssCard.CommPort = 5;
  487. //Sets and returns the baud rate, parity, data bit, and stop bit
  488. IssCard.Settings = "1200,N,8,1";
  489. IssCard.InputLen = 0;
  490. IssCard.InBufferCount = 0;
  491. //Sets and returns the state of the communications port
  492. var portOpenYN = IssCard.PortOpen;
  493. if( portOpenYN == false ){
  494. IssCard.PortOpen = true;
  495. }
  496. portOpenYN = IssCard.PortOpen;
  497. if( portOpenYN == false ){
  498. sysf_messageBox("포트 연결에 실패하였습니다.", "E999", "");
  499. return false;
  500. }
  501. IssCard.Output = emb ;
  502. //타이머 3000 msecs
  503. var start = new Date().getTime();
  504. var msecs = '3000';
  505. var cur = start;
  506. while(cur - start < msecs){
  507. cur = new Date().getTime();
  508. }
  509. IssCard.Output = totalStr;
  510. var outBufferCount = IssCard.OutBufferCount;
  511. var inBufferCount = IssCard.InBufferCount;
  512. var cntLoof = 0;
  513. while( outBufferCount != 0 || inBufferCount == 0){
  514. cntLoof = parseInt(cntLoof) + 1;
  515. if( cntLoof > 30 ){
  516. throw "시간 초과 오류입니다.";
  517. }
  518. //타이머 3000 msecs
  519. var start = new Date().getTime();
  520. var msecs = '1000';
  521. var cur = start;
  522. while(cur - start < msecs){
  523. cur = new Date().getTime();
  524. }
  525. outBufferCount = IssCard.OutBufferCount;
  526. inBufferCount = IssCard.InBufferCount;
  527. }
  528. //window.clearInterval(gTimerID);
  529. //gTimerID = window.setInterval("fIssOtherCard()", gIntervalTime);
  530. gTimerID = 1;
  531. setTimer(gTimerID, gIntervalTime);
  532. return true;
  533. }catch(e){
  534. ds_main_patcardissue_send.setColumn( 0, "remfact", e);
  535. IssCard.PortOpen = false;
  536. return false;
  537. }
  538. //수원
  539. }else if(sInstcd == '017'){
  540. try{
  541. ds_temp_rsrvlist.clearData();
  542. dsf_makeValue( ds_temp_rsrvlist, "issyn", "string", "" ); // 발급상태
  543. dsf_makeValue( ds_temp_rsrvlist, "pid", "string", "" ); // 등록번호
  544. dsf_makeValue( ds_temp_rsrvlist, "hngnm", "string", "" ); // 환자이름
  545. dsf_makeValue( ds_temp_rsrvlist, "rrgstno1", "string", "" );
  546. dsf_makeValue( ds_temp_rsrvlist, "rrgstno2", "string", "" );
  547. dsf_makeValue( ds_temp_rsrvlist, "issdd", "string", "" );
  548. dsf_makeValue( ds_temp_rsrvlist, "isstm", "string", "" );
  549. dsf_makeValue( ds_temp_rsrvlist, "issrid", "string", "" );
  550. ds_temp_rsrvlist.setColumn( 0, "pid", pid); // 등록번호
  551. ds_temp_rsrvlist.setColumn( 0, "hngnm", hngnm); // 환자이름
  552. /*
  553. var sPrinter;
  554. var trayno;
  555. var sDirectionOption;
  556. // 2009.06.19 - local에 설정된 파일을 우선시 한다.
  557. // print1:입원약정서, print2:입원환자카드, print3:선택신청, print4:성빈센트 카드프린터
  558. var printInfo = pmifGetPrintSetting("print4");
  559. if (printInfo.length == 2) {
  560. sPrinter = printInfo[0];
  561. trayno = printInfo[1];
  562. sDirectionOption = "printdirection=1";
  563. } else {
  564. sPrinter = ds_init_PAM_P0018list_P0018.lookupExpr("cdid == '4'", "cdnm");
  565. if (utlf_isNull(sPrinter)) {
  566. sPrinter = "true";
  567. } else {
  568. sDirectionOption = "printdirection=1";
  569. }
  570. }
  571. */
  572. //공통코드 P0045에서 프린터 명칭과 트레이 호출 - 환자카드발행
  573. fGetPrintName();
  574. var print_name = sysf_getGlobalVariable("SPPAO00100_P0045_5_nm","p");
  575. var print_tray = sysf_getGlobalVariable("SPPAO00100_P0045_5_tray","p");
  576. var sDirectionOption = "printdirection=1";
  577. //호출끝
  578. //환자카드발행
  579. //exeReportPreview("RPPMC04201", "XMLSTR" , "" , "" , print_name, "", "", "", "", "true", "", "",print_tray, "", "", "", "", sDirectionOption);
  580. var objDOM = rptf_createDOM();
  581. var objParam = new Object();
  582. rptf_setNodeListToDOM(objDOM, "root/temp/rsrvlist" , ds_temp_rsrvlist);
  583. objParam.xml_data_XML1 = objDOM.documentElement.source;
  584. var option = "open=1;save=1;directprint=0;printdialog=1;print=1;zoom=0";
  585. rptf_exeReportPreview30(["RPPMC04201"],[objParam], option);
  586. //window.clearInterval(gTimerID);
  587. //gTimerID = window.setInterval("fIssOtherCard2()", gIntervalTime);
  588. gTimerID = 2;
  589. setTimer(gTimerID, gIntervalTime);
  590. return true;
  591. }catch(e){
  592. return false;
  593. }
  594. //여의도, 부천은 같은 동일기종사용
  595. }else if(sInstcd == '011' || sInstcd == '014'){
  596. try{
  597. ds_temp_rsrvlist.clearData();
  598. dsf_makeValue( ds_temp_rsrvlist, "issyn", "string", "" ); // 발급상태
  599. dsf_makeValue( ds_temp_rsrvlist, "pid", "string", "" ); // 등록번호
  600. dsf_makeValue( ds_temp_rsrvlist, "hngnm", "string", "" ); // 환자이름
  601. dsf_makeValue( ds_temp_rsrvlist, "rrgstno1", "string", "" );
  602. dsf_makeValue( ds_temp_rsrvlist, "rrgstno2", "string", "" );
  603. dsf_makeValue( ds_temp_rsrvlist, "issdd", "string", "" );
  604. dsf_makeValue( ds_temp_rsrvlist, "isstm", "string", "" );
  605. dsf_makeValue( ds_temp_rsrvlist, "issrid", "string", "" );
  606. ds_temp_rsrvlist.setColumn( 0, "pid", pid); // 등록번호
  607. var rrgstno = rrgstno1 + "-" + rrgstno2.substr(0,1);
  608. ds_temp_rsrvlist.setColumn( 0, "rrgstno1", rrgstno); // 주민번호
  609. //환자이름 시작이 영문일때
  610. var sKorEngCheck = hngnm.charCodeAt(0);
  611. var sNameString = '';
  612. var sLastName ='';
  613. //영어 이외의 문자일 때 - 한글로 인식
  614. if(!((0x61 <= sKorEngCheck && sKorEngCheck <= 0x7A) || (0x41 <= sKorEngCheck && sKorEngCheck <= 0x5A))) {
  615. var a = parseInt(hngnm.length) - 1;
  616. if ( a < 3) {
  617. for( var i = 0; i <= a; i++ ){
  618. if (i == a) {
  619. sNameString = hngnm.substr(i, 1);
  620. } else {
  621. sNameString = hngnm.substr(i, 1) + " ";
  622. }
  623. sLastName = sLastName + sNameString;
  624. }
  625. } else {
  626. sLastName = hngnm;
  627. }
  628. // 영어로 인식
  629. }else{
  630. sLastName = hngnm;
  631. }
  632. ds_temp_rsrvlist.setColumn( 0, "hngnm", sLastName); // 환자이름
  633. /*
  634. var sPrinter;
  635. var trayno;
  636. var sDirectionOption;
  637. // 2009.06.19 - local에 설정된 파일을 우선시 한다.
  638. // print1:입원약정서, print2:입원환자카드, print3:선택신청, print4:성빈센트 카드프린터
  639. var printInfo = pmifGetPrintSetting("print4");
  640. if (printInfo.length == 2) {
  641. sPrinter = printInfo[0];
  642. trayno = printInfo[1];
  643. sDirectionOption = "printdirection=1";
  644. } else {
  645. sPrinter = ds_init_PAM_P0018list_P0018.lookupExpr("cdid == '4'", "cdnm");
  646. if (utlf_isNull(sPrinter)) {
  647. sPrinter = "true";
  648. } else {
  649. sDirectionOption = "printdirection=1";
  650. }
  651. }
  652. */
  653. //공통코드 P0045에서 프린터 명칭과 트레이 호출 - 환자카드발행
  654. fGetPrintName();
  655. var print_name = sysf_getGlobalVariable("SPPAO00100_P0045_5_nm","p");
  656. var print_tray = sysf_getGlobalVariable("SPPAO00100_P0045_5_tray","p");
  657. var sDirectionOption = "printdirection=1";
  658. //호출끝
  659. //환자카드발행
  660. if(sInstcd == '011') {
  661. //exeReportPreview("RPPMC04203", "XMLSTR" , "" , "" , print_name, "", "", "", "", "true", "", "",print_tray, "", "", "", "", sDirectionOption); //여의도
  662. var objDOM = rptf_createDOM();
  663. var objParam = new Object();
  664. rptf_setNodeListToDOM(objDOM, "root/temp/rsrvlist" , ds_temp_rsrvlist);
  665. objParam.xml_data_XML1 = objDOM.documentElement.source;
  666. var option = "open=1;save=1;directprint=0;printdialog=1;print=1;zoom=0";
  667. rptf_exeReportPreview30(["RPPMC04203"],[objParam], option);
  668. }
  669. if(sInstcd == '014') {
  670. //exeReportPreview("RPPMC04202", "XMLSTR" , "" , "" , print_name, "", "", "", "", "true", "", "",print_tray, "", "", "", "", sDirectionOption); //성가
  671. var objDOM = rptf_createDOM();
  672. var objParam = new Object();
  673. rptf_setNodeListToDOM(objDOM, "root/temp/rsrvlist" , ds_temp_rsrvlist);
  674. objParam.xml_data_XML1 = objDOM.documentElement.source;
  675. var option = "open=1;save=1;directprint=0;printdialog=1;print=1;zoom=0";
  676. rptf_exeReportPreview30(["RPPMC04202"],[objParam], option);
  677. }
  678. //window.clearInterval(gTimerID);
  679. //gTimerID = window.setInterval("fIssOtherCard2()", gIntervalTime);
  680. gTimerID = 2;
  681. setTimer(gTimerID, gIntervalTime);
  682. return true;
  683. }catch(e){
  684. return false;
  685. }
  686. }
  687. }
  688. //END..
  689. function group1_button5_onclick(obj:Button, e:ClickEventInfo) {
  690. group1.button6.enable = true;
  691. group1.button5.enable = false;
  692. fInit();
  693. }
  694. function group1_button6_onclick(obj:Button, e:ClickEventInfo) {
  695. //window.clearInterval(gTimerID);
  696. killTimer(gTimerID);
  697. group1.button6.enable = false;
  698. group1.button5.enable = true;
  699. }
  700. function SMPMC04201_ontimer(obj:Form, e:TimerEventInfo)
  701. {
  702. killTimer(gTimerID);
  703. if(e.timerid == 0) {
  704. fInit();
  705. }
  706. else if(e.timerid == 1) {
  707. fIssOtherCard();
  708. }
  709. else if(e.timerid == 2) {
  710. fIssOtherCard2();
  711. }
  712. }
  713. function SMPMC04201_onclose(obj:Form, e:CloseEventInfo)
  714. {
  715. killTimer(gTimerID);
  716. }
  717. ]]></Script>
  718. </Form>
  719. </FDL>