AHA010.js 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. /*******************************
  2. @AHA010.js
  3. *@조두현
  4. */
  5. /** ==========================================================================================================
  6. @author : 조두현
  7. @version : 2008-01-16
  8. @desc : 예약/접수정보를 저장 비자건진 종검과 겹치는걸 피하기 위해
  9. @param :
  10. * Mode : 공통코드A0107참조
  11. **A 예약
  12. **B 예약보류
  13. **C 예약확인
  14. **D 예약취소
  15. **E 접수
  16. **F 접수취소
  17. **G 결과
  18. **H 판정
  19. * ==========================================================================================================*/
  20. function fSaveRsrvVisaAcpt(vMode){
  21. var vHealExamFlag = fGetHealExamFlag();
  22. if( vHealExamFlag == "" ) return -1;
  23. var sMode = "";
  24. switch(vMode){
  25. case "A" : sMode = "가예약";
  26. break;
  27. case "B" : sMode = "보류";
  28. break;
  29. case "C" : sMode = "예약";
  30. break;
  31. case "D" : sMode = "예약취소";
  32. break;
  33. case "E" : sMode = "접수";
  34. break;
  35. case "F" : sMode = "접수취소";
  36. break;
  37. }
  38. sMode = sMode + "정보를";
  39. if( messageBox(sMode, "Q002") != 6) return -1;
  40. //setInputNodeCurText();
  41. if( fCheckPatInfo() == false ) return -1 ;
  42. if( !fCheckAcpt(vMode) ) return -1;
  43. var vPidYN = "Y";
  44. //예약/예약보류는 등록번호 생성하지 않음.
  45. if( (vMode == "A") || (vMode == "B") ) {
  46. vPidYN = "N";
  47. }
  48. /**
  49. * 수진자정보
  50. */
  51. model.setValue("/root/main/info/patinfo/item/pidcretfg" , vPidYN);
  52. //alert(model.getValue("/root/main/info/patinfo/item/rgstno1" ));
  53. model.copyNode("/root/send/save", "/root/main/info/patinfo/item");
  54. //alert(model.getValue("/root/send/save/item/rgstno1" ));
  55. fCheckNodeExist("/root/send/save/userid" , true);
  56. model.setValue("/root/send/save/userid", getUserId() );
  57. fCheckNodeExist("/root/send/save/instcd" , true);
  58. model.setValue("/root/send/save/instcd", getUserInfo("dutplceinstcd") );
  59. /**
  60. * 예약접수정보
  61. */
  62. fCheckNodeExist("/root/main/info/rsrvacptinfo/item/mode", true );
  63. model.setValue("/root/main/info/rsrvacptinfo/item/mode",vMode);
  64. fCheckNodeExist("/root/main/info/rsrvacptinfo/item/healexamflag", true );
  65. model.setValue("/root/main/info/rsrvacptinfo/item/healexamflag",vHealExamFlag);
  66. //model.setValue("/root/main/info/rsrvacptinfo/item/visano",fGetVisano());
  67. model.duplicate("/root/send/save", "/root/main/info/rsrvacptinfo/item");
  68. model.makeValue("/root/send/save/pkgcd",model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  69. model.makeValue("/root/send/save/brthareacnts",model.getValue("/root/main/info/rsrvacptinfo/item/brthareacnts"));
  70. //추가검사내역
  71. model.makeNode("/root/send/save/addlst");
  72. var nodeList = instance1.selectNodes(grd_addlst.nodeset + "[sel='Y']");
  73. var rCSV = "";
  74. if( nodeList.length > 0) {
  75. rCSV = getNodeListCSV(nodeList);
  76. model.setValue("/root/send/save/addlst" , rCSV);
  77. }
  78. //model.setValue("/root/send/save/addlst" , grd_addlst.getUpdateData() );
  79. //일반건진의 경우
  80. if( vHealExamFlag == "G" ) {
  81. //PKG 내역
  82. if( grd_pkglst != null ){
  83. fCheckNodeExist("/root/send/save/pkglst", true);
  84. nodeList = instance1.selectNodes(grd_pkglst.nodeset + "[sel='Y']");
  85. if( nodeList.length > 0) {
  86. rCSV = getNodeListCSV(nodeList);
  87. model.setValue("/root/send/save/pkglst" , rCSV);
  88. }
  89. //model.setValue("/root/send/save/pkglst" , grd_pkglst.getUpdateData() );
  90. }
  91. }
  92. openLoadingBar(sMode + " 처리 중입니다..") ;//처리중 화면을 오픈한다.
  93. model.resetInstanceNode("/root/hidden");
  94. model.removeNodeset("/root/tmp");
  95. var retInstance = submit("TXAHA00102") ;
  96. var uncocd= model.getValue("/root/tmp/reqadd/uncocdsen");
  97. var retemr = false;
  98. model.removeNode("/root/hidden");
  99. if (retInstance==true){
  100. fSetInstance(0);
  101. retemr = submit("TXAHA00107");
  102. }
  103. model.makeValue("/root/tmp/reqacpt/cretno" , model.getValue("/root/hidden/reqacpt[1]/cretno"));
  104. model.makeValue("/root/tmp/reqacpt/acptseqno" , model.getValue("/root/hidden/reqacpt[1]/acptseqno"));
  105. model.makeValue("/root/tmp/reqacpt/ordtm" , model.getValue("/root/hidden/reqacpt[1]/ordtm"));
  106. model.makeValue("/root/tmp/reqacpt/otpt_orddd" , model.getValue("/root/hidden/reqacpt[1]/otpt_orddd"));
  107. model.makeValue("/root/tmp/reqacpt/orddd" , model.getValue("/root/hidden/reqacpt[1]/orddd"));
  108. if ((retInstance==true)&&(retemr==true)){
  109. fSetInstance(1);
  110. retemr = submit("TXAHA00107");
  111. }
  112. if ((retInstance==true)&&(retemr==true)){
  113. fSetInstance(2);
  114. retemr = submit("TXAHA00107");
  115. }
  116. if ((retInstance==true)&&(retemr==true)){
  117. fSetInstance(3);
  118. retemr = submit("TXAHA00107");
  119. }
  120. if ((retInstance==true)&&(retemr==true)){
  121. fSetInstance(4);
  122. retemr = submit("TXAHA00107");
  123. }
  124. if ((retInstance==true)&&(retemr==true)){
  125. fSetInstance(5);
  126. retemr = submit("TXAHA00107");
  127. }
  128. if ((retInstance==true)&&(retemr==true)){
  129. fSetInstance(6);
  130. retemr = submit("TXAHA00107");
  131. }
  132. if ((retInstance==true)&&(retemr==true)){
  133. fSetInstance(7);
  134. retemr = submit("TXAHA00107");
  135. }
  136. var retAcpt=false;
  137. if((retInstance==true) &&(retemr==true)){
  138. model.makeValue("/root/hidden/reqadd/uncocdsen",uncocd);
  139. // 태그정보
  140. model.makeNode("/root/hidden/taginfo");
  141. copyNodesetType("/root/hidden/taginfo","/root/main/info/taginfo","replace");
  142. retAcpt = submit("TXAHA00106") ;
  143. closeLoadingBar() ;//처리중 화면을 close한다.
  144. if( retAcpt == true ) {
  145. //fInitInfo(); //초기화
  146. ahafGetRsrvAcpDetltVisaInfo( model.getValue("/root/hidden/saveacpt/rsrvdd") , model.getValue("/root/hidden/saveacpt/rsrvno") );
  147. }
  148. else {
  149. return -1;
  150. }
  151. }else{
  152. return -1;
  153. }
  154. //test....
  155. /*
  156. if( (retAcpt == true ) || ( retAcpt == True )){
  157. var ret = 0 ;
  158. var rst = "R";
  159. if( vMode == "E" ){
  160. model.makeNode("/root/send/srchjobflag" );
  161. model.makeNode("/root/send/srchrcptdd" );
  162. model.makeNode("/root/send/srchrcptno" );
  163. model.makeNode("/root/send/srchrcptseqno");
  164. ret = fCalcAmt("RCPT");
  165. if( ret == 1) {
  166. //ahafRcptAmt("RCPT");
  167. ahafRcptAmt("RCPT"
  168. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd")
  169. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno")
  170. , model.getValue("/root/main/info/rsrvacptinfo/item/pid")
  171. , model.getValue("/root/main/info/rsrvacptinfo/item/orddd")
  172. , model.getValue("/root/main/info/rsrvacptinfo/item/rcptstat")
  173. , "/root/temp/rcptinfo/hidden" )
  174. rst = "T";
  175. }
  176. }
  177. else if( vMode == "F" ){
  178. model.makeNode("/root/send/srchjobflag" );
  179. model.makeNode("/root/send/srchrcptdd" );
  180. model.makeNode("/root/send/srchrcptno" );
  181. model.makeNode("/root/send/srchrcptseqno");
  182. ret = fCalcAmt("CANCEL") ;
  183. if( ret == 1) {
  184. ahafRcptAmt("CANCEL"
  185. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd")
  186. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno")
  187. , model.getValue("/root/main/info/rsrvacptinfo/item/pid")
  188. , model.getValue("/root/main/info/rsrvacptinfo/item/orddd")
  189. , model.getValue("/root/main/info/rsrvacptinfo/item/rcptstat")
  190. , "/root/temp/rcptinfo/hidden" )
  191. rst = "T";
  192. }
  193. }
  194. fInitInfo();
  195. ipt_pnm.currentText ="";
  196. fSetBtnStat();
  197. fGetList();
  198. }
  199. return 1;
  200. */
  201. }
  202. function ahafRcptAmtVisa(vJobFlag, vRsrvdd, vRsrvno, vPid, vOrddd, vRcptStat , vOpmiRoot ){
  203. var payownamt = model.getValue(vOpmiRoot + "/opmi_out/opmi_rcptamt") ;
  204. if( payownamt == "") {
  205. payownamt = "0";
  206. }
  207. //alert( payownamt );
  208. payownamt = parseInt(payownamt);
  209. //alert( payownamt );
  210. if( payownamt != 0 ) {
  211. ahafOpenRcpt(fGetHealExamFlag()
  212. , vRsrvdd
  213. , vRsrvno
  214. , vPid
  215. , vRcptStat
  216. , vOrddd );
  217. return ;
  218. }
  219. var vTmp = fGetHealExamFlag();
  220. if( vTmp == "" ){
  221. messageBox("건진분류 ERROR .", "E999");
  222. return ;
  223. }
  224. model.makeNode("/root/send/savercpt/srchhealexamflag");
  225. model.setValue("/root/send/savercpt/srchhealexamflag", vTmp );
  226. if( vPid == "" ) {
  227. messageBox("환자ID ERROR .", "E999");
  228. return ;
  229. }
  230. model.makeNode("/root/send/savercpt/srchpid");
  231. model.setValue("/root/send/savercpt/srchpid", vPid );
  232. if( vRsrvdd== "" ) {
  233. messageBox("등록일자 ERROR .", "E999");
  234. return ;
  235. }
  236. model.makeNode("/root/send/savercpt/srchrsrvdd" );
  237. model.setValue("/root/send/savercpt/srchrsrvdd", vRsrvdd );
  238. if( vRsrvno == "" ) {
  239. messageBox("등록번호 ERROR .", "E999");
  240. return ;
  241. }
  242. model.makeNode("/root/send/savercpt/srchrsrvno" );
  243. model.setValue("/root/send/savercpt/srchrsrvno", vRsrvno );
  244. model.makeNode("/root/send/savercpt/srchinstcd" );
  245. model.setValue("/root/send/savercpt/srchinstcd", getUserInfo("dutplceinstcd"));
  246. //2007-08-17 추가
  247. model.makeNode("/root/send/savercpt/srchjobflag" );
  248. model.makeNode("/root/send/savercpt/srchrcptdd" );
  249. model.makeNode("/root/send/savercpt/srchrcptno" );
  250. model.makeNode("/root/send/savercpt/srchrcptseqno");
  251. model.setValue("/root/send/savercpt/srchjobflag" ,vJobFlag);
  252. model.setValue("/root/send/savercpt/srchrcptdd" ,model.getValue(vOpmiRoot +"/opmi_out/org_rcptdd") );
  253. model.setValue("/root/send/savercpt/srchrcptno" ,model.getValue(vOpmiRoot +"/opmi_out/org_rcptno") );
  254. model.setValue("/root/send/savercpt/srchrcptseqno" ,model.getValue(vOpmiRoot +"/opmi_out/org_rcptseqno") );
  255. model.makeNode("/root/send/savercpt/opmi_out");
  256. model.copyNode("/root/send/savercpt/opmi_out", vOpmiRoot + "/opmi_out" );
  257. model.makeNode("/root/send/savercpt/dcgm_out");
  258. model.copyNode("/root/send/savercpt/dcgm_out", vOpmiRoot + "/dcgm_out" );
  259. model.makeNode("/root/send/savercpt/unco_out");
  260. model.copyNode("/root/send/savercpt/unco_out", vOpmiRoot + "/unco_out" );
  261. // 영수증채번을 먼저한다.
  262. // INPUT(1.수납일시)
  263. model.makeNode("/root/send/rcptdd" );
  264. model.makeNode("/root/send/genrkind" );
  265. model.setValue("/root/send/rcptdd" , getCurrentDate() );
  266. model.setValue( "/root/send/genrkind" , "R");
  267. if ( submit("TRAHA02105")){
  268. //영수증번호를 채번하여 셋팅한다.
  269. var rcptno = model.getValue("/root/temp/rcptno_out/rcptno/opmi_rcptno");
  270. model.makeNode( "/root/send/savercpt/opmi_rcptno");
  271. model.setValue( "/root/send/savercpt/opmi_rcptno", rcptno);
  272. }
  273. openLoadingBar("수납 처리중입니다..") ;//처리중 화면을 오픈한다.
  274. if( submit("TXAHA02102") == true ){
  275. messageBox("수납 ","I001");
  276. }
  277. closeLoadingBar() ;//처리중 화면을 close한다.
  278. }
  279. /** ==========================================================================================================
  280. @author : 조두현
  281. @version : 2008-02-12
  282. @desc : 예약접수 상세내역조회
  283. @param :
  284. * vMode : 리스트 구분
  285. * ==========================================================================================================*/
  286. function ahafGetRsrvAcptDetlVisa(vMode){
  287. fInitInfo();
  288. var vXpath = "";
  289. var idx = -1;
  290. switch (vMode) {
  291. case 1:
  292. vXpath = "/root/main/list/rsrvlst[";
  293. idx = grd_rsrvlst.row;
  294. break;
  295. case 2:
  296. vXpath = "/root/main/list/rsrvlst[";
  297. idx = grd_rsrventlst.row;
  298. break;
  299. case 3:
  300. vXpath = "/root/main/list/acptlst[";
  301. idx = grd_acptlst.row;
  302. break;
  303. case 4:
  304. vXpath = "/root/main/list/cncllst[";
  305. idx = grd_cncllst.row;
  306. break;
  307. case 5: //일반건진 2차대상자 리스트
  308. vXpath = "/root/main/list/sndlst[";
  309. idx = grd_sndlst.row;
  310. break;
  311. case 6 : //건진이력
  312. vXpath = "/root/main/info/histlst/item[";
  313. // idx = grd_sndlst.row;
  314. idx = grd_hist.row;
  315. break;
  316. case 8 : //건진이력
  317. vXpath = "/root/main/list/reexlst[";
  318. // idx = grd_sndlst.row;
  319. idx = grd_reexlst.row;
  320. break;
  321. default:
  322. messageBox("인자가 잘못되었습니다", "E999");
  323. return ;
  324. break;
  325. }
  326. if( idx < 1) {
  327. messageBox("건진내역을 ", "C002");
  328. return ;
  329. }
  330. var vRsrvdd = model.getValue(vXpath + idx + "]/rsrvdd");
  331. var vRsrvno = model.getValue(vXpath + idx + "]/rsrvno");
  332. /*
  333. * 가예약 일경우 환자정보 patm의 정보만으로 조회
  334. * pid가 0일 경우 ptbs에 정보가 없음
  335. */
  336. var vStatFlag = model.getValue(vXpath + idx + "]/statflag");
  337. var vPid = model.getValue(vXpath + idx + "]/pid");
  338. ahafGetRsrvAcpDetltVisaInfo(vRsrvdd, vRsrvno,vStatFlag , vPid);
  339. }
  340. /** ==========================================================================================================
  341. @author : 조두현
  342. @version : 2008-02-12
  343. @desc : 비자년번 자동생성 함수
  344. @param :
  345. * genrdd : 예약등록일자
  346. * genrkind : 구분(V)로 세팅
  347. * instcd : 기관코드
  348. @return : 비자년번 retNo
  349. * =================================================================================*/
  350. /*function fGetVisano(){
  351. var vCutVisa,vCopyVisa,vGetDD,retNo;
  352. vGetDD=getCurrentDate();
  353. //년도만 짤라냄
  354. vGetDD=vGetDD.substring(0,4);
  355. //20070000이런 식으로 나옴
  356. vGetDD=vGetDD.getRightPad(8,"0");
  357. model.makeNode("/root/send/visanosrch/genrdd");
  358. model.makeNode("/root/send/visanosrch/genrkind");
  359. model.makeNode("/root/send/visanosrch/instcd");
  360. model.setValue("/root/send/visanosrch/genrdd",vGetDD);
  361. model.setValue("/root/send/visanosrch/genrkind","V");
  362. model.setValue("/root/send/visanosrch/instcd",getUserInfo("dutplceinstcd"));
  363. retNo=submit("TRAHA00610");
  364. //model.removeNodeset("/root/main/info/rsrvacptinfo/item/visano");
  365. //model.resetInstanceNode("/root/main/info/rsrvacptinfo/item/visano");
  366. //fCheckNodeExist("/root/main/info/rsrvacptinfo/item/visano",true);
  367. //model.setValue("/root/main/info/rsrvacptinfo/item/visano",ipt_visayear.currentText);
  368. return retNo;
  369. }
  370. */
  371. /** ==========================================================================================================
  372. @author : 조두현
  373. @version : 2008-02-12
  374. @desc : 예약/접수 상세내역 조회
  375. @param :
  376. * vRsrvdd : 예약등록일자
  377. * vRsrvno : 예약번호
  378. @return : 건진상세내역
  379. * ==========================================================================================================*/
  380. function ahafGetRsrvAcpDetltVisaInfo( vRsrvdd, vRsrvno , vStatFlag , vPid ){
  381. if( (vRsrvdd == "") || (vRsrvno == "") ) return ;
  382. if(vStatFlag == "") vStatFlag == "";
  383. if(vPid == "") vPid == "";
  384. fCheckNodeExist("/root/send/srchhealexamflag" , true );
  385. fCheckNodeExist("/root/send/srchrsrvdd" , true );
  386. fCheckNodeExist("/root/send/srchrsrvno" , true );
  387. fCheckNodeExist("/root/send/srchinstcd" , true );
  388. fCheckNodeExist("/root/send/scrnnm" , true );
  389. model.setValue("/root/send/srchhealexamflag", fGetHealExamFlag());
  390. model.setValue("/root/send/srchrsrvdd" , vRsrvdd);
  391. model.setValue("/root/send/srchrsrvno" , vRsrvno);
  392. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  393. model.setValue("/root/send/scrnnm" , vStatFlag == "A"&& vPid== "0" ? "internet":"" );
  394. // model.makeValue("/root/send/srchage" , ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1"),model.getValue("/root/main/info/patinfo/item/rgstno2")) );
  395. model.resetInstanceNode("/root/main/info/patinfo/item");
  396. model.resetInstanceNode("/root/main/info/rsrvacptinfo/item");
  397. model.resetInstanceNode("/root/temp/info/rsrvacptinfo");
  398. model.resetInstanceNode("/root/temp/info/patinfo");
  399. if( submit("TRAHA04012") != true ) {
  400. return ;
  401. }
  402. var i = 0;
  403. //node clear현상때문임..
  404. // 건진정보
  405. var tmpnode = instance1.selectSingleNode("/root/temp/info/rsrvacptinfo");
  406. if( tmpnode != null){
  407. model.copyNode("/root/main/info/rsrvacptinfo/item", "/root/temp/info/rsrvacptinfo");
  408. }
  409. //추가검사내역
  410. model.removeNodeset("/root/main/info/rsrvacptinfo/addlst");
  411. var nodelst = instance1.selectNodes("/root/temp/info/addlst");
  412. model.refresh();
  413. if( nodelst.length > 0 ){
  414. for (i = 0; i < nodelst.length; i++){
  415. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  416. }
  417. }
  418. //추가패키지내역
  419. nodelst = instance1.selectNodes("/root/temp/info/pkglst");
  420. model.removeNodeset("/root/main/info/rsrvacptinfo/pkglst");
  421. model.refresh();
  422. if( nodelst.length > 0 ){
  423. for (i = 0; i < nodelst.length; i++){
  424. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  425. }
  426. }
  427. // 태그정보
  428. var tagNode = instance1.selectSingleNode("/root/temp/info/taginfo");
  429. btn_tag.attribute("text") = "태그지급";
  430. if(tagNode != null) {
  431. copyNodesetType("/root/main/info/taginfo","/root/temp/info/taginfo","replace");
  432. var suppStat = model.getValue("/root/main/info/taginfo/suppstat");
  433. if("0" == suppStat) {
  434. btn_tag.attribute("text") = "태그반납";
  435. ipt_tagno.disabled = true;
  436. }
  437. }
  438. // 결과상담 예약리스트
  439. model.resetInstanceNode("/root/main/info/rsltcnstinfo/choicnst");
  440. copyNodesetType("/root/main/info/rsltcnstinfo/cnstlst/cnst" , "/root/temp/info/cnst" , "replace");
  441. if(model.getValue("/root/main/info/rsltcnstinfo/choicnst/outexamyn") == "") {
  442. model.makeValue("/root/main/info/rsltcnstinfo/choicnst/outexamyn","N");
  443. }
  444. //환자정보
  445. tmpnode = instance1.selectSingleNode("/root/temp/info/patinfo");
  446. if( tmpnode != null){
  447. model.copyNode("/root/main/info/patinfo/item", "/root/temp/info/patinfo");
  448. }
  449. //할인액 정보
  450. if(model.getValue("/root/main/info/rsrvacptinfo/item/disccd")!="-"){
  451. var nname = model.getValue("/root/main/info/rsrvacptinfo/item/disccd");
  452. var ncount= getNodesetCount("/root/init/baseinfo/pamcdlst/disccdlst");
  453. for (var i=0;i<ncount;i++){
  454. if (nname == model.getValue("/root/init/baseinfo/pamcdlst/disccdlst["+i+"]/cd")){
  455. model.makeValue("/root/main/info/rsrvacptinfo/item/dcamt",model.getValue("/root/init/baseinfo/pamcdlst/disccdlst["+i+"]/dcamt"));
  456. model.makeValue("/root/main/info/rsrvacptinfo/item/adddcamt",model.getValue("/root/init/baseinfo/pamcdlst/disccdlst["+i+"]/adddcamt"));
  457. }
  458. }
  459. }
  460. //수납정보
  461. tmpnode = instance1.selectSingleNode("/root/temp/info/opmi_out");
  462. if( tmpnode != null){
  463. model.makeNode("/root/main/info/rcptinfo/pkgamt" );
  464. model.makeNode("/root/main/info/rcptinfo/addamt" );
  465. model.makeNode("/root/main/info/rcptinfo/subtotamt" );
  466. model.makeNode("/root/main/info/rcptinfo/preamt" );
  467. model.makeNode("/root/main/info/rcptinfo/discamt" );
  468. model.makeNode("/root/main/info/rcptinfo/uncoamt" );
  469. model.makeNode("/root/main/info/rcptinfo/realamt" );
  470. tmpnode = instance1.selectSingleNode("/root/temp/info/opmi_out/opmi_discamt");
  471. if (tmpnode!=null){
  472. model.setValue("/root/main/info/rcptinfo/pkgamt" , model.getValue("/root/temp/info/opmi_out/opmi_baseexamamt"));
  473. model.setValue("/root/main/info/rcptinfo/addamt" , model.getValue("/root/temp/info/opmi_out/opmi_addexamamt"));
  474. model.setValue("/root/main/info/rcptinfo/subtotamt" , model.getValue("/root/temp/info/opmi_out/opmi_totamt"));
  475. // model.setValue("/root/main/info/rcptinfo/subtotamt" , model.getValue("/root/temp/info/opmi_out/opmi_cmpyamt"));
  476. // model.setValue("/root/main/info/rcptinfo/preamt" , model.getValue("/root/temp/info/opmi_out/opmi_mdlremamt"));
  477. model.setValue("/root/main/info/rcptinfo/preamt" , model.getValue("/root/temp/info/opmi_out/opmi_mdlrcptamt"));
  478. // model.setValue("/root/main/info/rcptinfo/discamt" , model.getValue("/root/temp/info/opmi_out/opmi_totdiscamt"));
  479. model.makeNode("root/temp/info/opmi_out/opmi_discamt");
  480. model.setValue("/root/main/info/rcptinfo/discamt" , model.getValue("/root/temp/info/opmi_out/opmi_discamt"));
  481. model.makeValue("/root/temp/discamt" , model.getValue("/root/temp/info/opmi_out/opmi_discamt"));
  482. model.makeValue("/root/main/info/rcptinfo/uncoamt" , model.getValue("/root/temp/info/opmi_out/opmi_restamt"));
  483. model.makeValue("/root/main/info/rcptinfo/realamt" , model.getValue("/root/temp/info/opmi_out/opmi_rcptamt"));
  484. }
  485. model.makeValue("/root/temp/rcptCheck","true"); //수납된 내역 체크
  486. } else{
  487. model.makeValue("/root/send/srchcmpycd", model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  488. model.makeValue("/root/send/srchconseq", model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  489. model.makeValue("/root/send/srchconhistseq", model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  490. model.makeValue("/root/send/srchsex", model.getValue("/root/main/info/patinfo/item/sex"));
  491. model.makeValue("/root/send/srchpkgcd", model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  492. model.makeValue("/root/send/srchpid", model.getValue("/root/main/info/patinfo/item/pid"));
  493. model.makeValue("/root/send/srchage", ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1"),model.getValue("/root/main/info/patinfo/item/rgstno2")));
  494. //선수금(RCPTFLAG - P, R / 패키지 금액(할인 포함)/ 수납 내역 조회
  495. submit("TXAHA00903",false);
  496. model.makeValue("/root/main/info/rcptinfo/pkgamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/pkgamt"));
  497. model.makeValue("/root/main/info/rcptinfo/discamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/discamt"));
  498. model.makeValue("/root/temp/discamt", model.getValue("/root/main/info/rcptinfo/rcptinfo/discamt"));
  499. model.makeValue("/root/main/info/rcptinfo/subtotamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/subtotamt"));
  500. if((model.getValue("/root/main/info/rcptinfo/preamt")=="")|| (model.getValue("/root/main/info/rcptinfo/preamt")=="0")){
  501. model.makeValue("/root/main/info/rcptinfo/preamt", model.getValue("/root/main/info/rcptinfo/rcptinfo/cashamt"));
  502. }
  503. if(instance1.selectSingleNode("/root/main/info/rcptinfo/addamt") == null)
  504. model.makeValue("/root/main/info/rcptinfo/rcptinfo/addamt","0");
  505. model.makeValue("/root/main/info/rcptinfo/addamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/addamt"));
  506. if (model.getValue("/root/main/info/rsrvacptinfo/item/cmpyflag")=="Y"){
  507. model.makeValue("/root/main/info/rsrvacptinfo/item/pkguncocd" , model.getValue("/root/main/info/rcptinfo/rcptinfo/pkguncocd"));
  508. } else{
  509. model.makeValue("/root/main/info/rcptinfo/realamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/subtotamt"));
  510. }
  511. model.makeValue("/root/temp/rcptCheck","false"); //수납된 내역 체크
  512. }
  513. //화면상단정보 설정
  514. var sPid = model.getValue("/root/main/info/rsrvacptinfo/item/pid" );
  515. var sOrddd = model.getValue("/root/main/info/rsrvacptinfo/item/orddd" );
  516. var iCretno = model.getValue("/root/main/info/rsrvacptinfo/item/cretno" );
  517. if( (sPid != "" ) &&
  518. (sOrddd != "" ) &&
  519. (iCretno != "" ) &&
  520. (iCretno != "0" ) ){
  521. ahafSetScreenTopPatInfo( sPid, sOrddd, iCretno );
  522. }
  523. fSetBtnStat();
  524. model.setValue("/root/send/visaphotpath", model.getValue("/root/main/info/rsrvacptinfo/item/visaphotpath"));
  525. fnGetImage();
  526. //model.refresh();
  527. }
  528. /** ==========================================================================================================
  529. @author : 조두현
  530. @version : 2008-02-17
  531. @desc : 수진자 인적사항만 조회, 외국인일 경우 별도의 구분 없이 주민번호 뒷번호가 남/여, 5/6으로 처리.
  532. 뒷번호가 1000000->남자 번호없는 외국인 2000000->여자 번호없는 외국인
  533. @param :
  534. * 조회조건: vMode (0 -pnm:환자명, 1-rgstno: 주민번호, 2-pid:등록번호, 3-hpid:건진임시환자번호)
  535. * vPidXPath : pid node
  536. * vPnmXPath : pnm node
  537. * ==========================================================================================================*/
  538. /* function fGetPatInfoVisa(vMode ){
  539. var vCond = "";
  540. switch( vMode ){
  541. case 0: vCond = "pnm";
  542. break;
  543. case 1: vCond = "rgstno";
  544. if( fCheckRgstNoVisa() == false ){
  545. ipt_rgstno1.value = "";
  546. ipt_rgstno2.value = "";
  547. return ;
  548. }
  549. break;
  550. case 2: vCond = "pid";
  551. break;
  552. default : vCond = "hid";
  553. break;
  554. }
  555. model.removeNodeSet("/root/send/save");
  556. model.makeNode("/root/send/save");
  557. fCheckNodeExist("/root/send/srchcond" , true );
  558. fCheckNodeExist("/root/send/srchpnm" , true );
  559. fCheckNodeExist("/root/send/srchpid" , true );
  560. fCheckNodeExist("/root/send/srchrgstno1" , true );
  561. fCheckNodeExist("/root/send/srchrgstno2" , true );
  562. fCheckNodeExist("/root/send/srchhealexampid", true );
  563. fCheckNodeExist("/root/send/srchinstcd" , true );
  564. model.setValue("/root/send/srchcond" , vCond);
  565. if( vCond == "pnm") {
  566. model.setValue("/root/send/srchpnm" , ipt_pnm.currentText );
  567. }
  568. else
  569. if( vCond == "pid") {
  570. model.setValue("/root/send/srchpid" , ipt_pid.currentText );
  571. }
  572. else
  573. if( vCond == "rgstno") {
  574. model.setValue("/root/send/srchrgstno1" , ipt_rgstno1.currentText );
  575. model.setValue("/root/send/srchrgstno2" , ipt_rgstno2.currentText );
  576. }
  577. else {
  578. model.setValue("/root/send/srchhealexampid" , model.getValue("/root/main/info/patinfo/item/healexampid"));
  579. }
  580. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  581. fCheckNodeExist("/root/temp/patinfo/item", true);
  582. model.resetInstanceNode("/root/temp/patinfo/item");
  583. submit("TRAHA00101") ;
  584. //node clear현상때문임...
  585. var tmpnode = model.instance1.selectSingleNode("/root/temp/patinfo/item/pid");
  586. if( tmpnode != null ){
  587. model.copyNode("/root/main/info/patinfo/item", "/root/temp/patinfo/item");
  588. model.makeValue("/root/main/info/rsrvacptinfo/item/choiflag",model.getValue("/root/main/info/patinfo/item/choiflag"));
  589. }
  590. else {
  591. model.makeValue("/root/main/info/rsrvacptinfo/item/choiflag",model.getValue("/root/main/info/patinfo/item/choiflag"));
  592. }
  593. model.refresh();
  594. }
  595. */
  596. /** ==========================================================================================================
  597. * fCheckRgstNoVisa
  598. @author : 조두현
  599. @version : 2008-02-17
  600. @desc : 주민번호 유효여부 check 다만 뒷자리가 1000000,2000000이면 통과
  601. @param :
  602. ==========================================================================================================================*/
  603. /* function fCheckRgstNoVisa(){
  604. var vTmp = ipt_rgstno1.currentText + ipt_rgstno2.currentText ;
  605. if((ipt_rgstno1.currentText =='1000000') ||(ipt_rgstno2.currentText=='2000000') ){
  606. if( messageBox("유효하지 않은 주민번호 입니다. ", "Q003") == 6 ) {
  607. return true;
  608. }
  609. return false;
  610. }
  611. else if( isResidentNo(vTmp) == false ){
  612. if( messageBox("유효하지 않은 주민번호 입니다. ", "Q003") == 6 ) {
  613. return true;
  614. }
  615. model.setFocus("ipt_rgstno1");
  616. return false;
  617. }
  618. return true ;
  619. }
  620. */
  621. /** ==========================================================================================================
  622. @author : 조두현
  623. @version : 2008-02-17
  624. @desc : 주민번호로 생년월일/성별/나이 기본 setting
  625. @param :
  626. * ==========================================================================================================*/
  627. /*function fSetBrthDDVisa(){
  628. //if( ipt_brthdd.value != "" ) return ;
  629. var vrgstno1 = ipt_rgstno1.currentText;
  630. var vrgstno2 = ipt_rgstno2.currentText;
  631. var vSex = vrgstno2.substr( 0, 1) ;
  632. var vBrthdd = "";
  633. if( ( vSex == 3 ) || (vSex == 4) ) {
  634. vBrthdd = "20" + vrgstno1;
  635. }
  636. else {
  637. vBrthdd = "19" + vrgstno1;
  638. }
  639. ipt_brthdd.value = vBrthdd;
  640. opt_sex.value = getGender(vrgstno1+ vrgstno2);
  641. opt_age.value = getFullAgeVisa(vrgstno1+ vrgstno2);
  642. }
  643. */
  644. /**
  645. * @desc : 현재일자를 기준으로 나이계산
  646. * @param : pResidentNo - 중간 구분자를 제외한 주민번호 13자리
  647. * @param : pDate - 기준이 되는 Date Object 일자 (default는 오늘 일자)
  648. * @param : pPosition - 1세이하시 개월 계산
  649. * <pre>
  650. *
  651. * 함수 호출시 다음과 같은 두가지 형태로 사용한다.
  652. *
  653. * 1) getFullAge("1234567890123"); --> 오늘 일자를 기준으로 나이계산
  654. * 2) getFullAge("1234567890123", date); --> parameter 값으로 넘겨받은 date를 기준으로 나이계산
  655. *
  656. * </pre>
  657. * @return : 숫자 (오류시 -1)
  658. * @---------------------------------------------------
  659. */
  660. /*function getFullAgeVisa(pResidentNo, pDate, pPosition)
  661. {
  662. if(isNaN(pResidentNo)) return -1;
  663. var pivotYY = "";
  664. var pivotMM = "";
  665. var pivotDD = "";
  666. var regYY = "";
  667. var regMM = "";
  668. var regDD = "";
  669. if(typeof(pDate) == "undefined" || pDate == "" || pDate == null) {
  670. var today = new Date();
  671. pivotYY = today.getYear();
  672. pivotMM = today.getMonth() + 1;
  673. pivotDD = today.getDate();
  674. } else {
  675. pivotYY = pDate.getYear();
  676. pivotMM = pDate.getMonth() + 1;
  677. pivotDD = pDate.getDate();
  678. }
  679. if(pResidentNo.substr(6,7)=='1000000' || pResidentNo.substr(6,7)=='2000000'){
  680. plus_yy=pResidentNo.substr(0,2);
  681. regYY= 19+plus_yy;
  682. }
  683. else if(pResidentNo.substr(6,7)=='3000000' || pResidentNo.substr(6,7)=='4000000'){
  684. plus_yy=pResidentNo.substr(0,2);
  685. regYY+= 20+plus_yy;
  686. }
  687. else if(pResidentNo.length == 13 && isResidentNo(pResidentNo)){
  688. gender = pResidentNo.substr(6, 1);
  689. gender2 =pResidentNo.substr(6,7);
  690. regYY = eval(pResidentNo.substr(0, 2));
  691. regMM = eval(pResidentNo.substr(2, 2));
  692. regDD = eval(pResidentNo.substr(4, 2));
  693. if(gender == '3' || gender == '4' || gender == '7' || gender == '8') {
  694. regYY += 2000;
  695. } else if(gender == '0' || gender == '9') {
  696. regYY += 1800;
  697. } else {
  698. regYY += 1900;
  699. }
  700. }else if(pResidentNo.length == 8 && isValidDateTime(pResidentNo, "YYYYMMDD")){
  701. regYY = eval(pResidentNo.substr(0, 4));
  702. regMM = eval(pResidentNo.substr(4, 2));
  703. regDD = eval(pResidentNo.substr(6, 2));
  704. }
  705. var age = pivotYY - regYY;
  706. if(age > 0) {
  707. if(pivotMM == regMM) {
  708. if(pivotDD < regDD) {
  709. age -= 1;
  710. }
  711. } else if(pivotMM < regMM) {
  712. age -= 1;
  713. }
  714. }
  715. if ( pPosition == "M")
  716. {
  717. //12개월이하일때 계산
  718. if(age <= 0){
  719. if(pivotYY > regYY) {
  720. pivotMM += 12;
  721. }
  722. age = pivotMM - regMM ;
  723. if(pivotDD < regDD) {
  724. age -= 1;
  725. }
  726. age = "0."+age;
  727. }
  728. }
  729. return age;
  730. }
  731. */