SMLBD00600.js 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837
  1. /*
  2. 공여자등록(SMLBD00600.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var focusInBackColor = "#ffcc99";
  7. var focusOutBackColor = "#ffffff";
  8. //-------------------------
  9. // 화면 호출시
  10. //-------------------------
  11. function finit() {
  12. model.removeNodeset("/root/main/patinfo/patlist"); //환자현황 리스트를 지운다.
  13. model.removeNodeset("/root/main/patmapinfo/patmap"); //공여자매핑 현황 리스트를 지운다.
  14. model.removeNodeset("/root/main/dnorprcpinfo/dnorprcplist"); //헌혈경력이력을 지운다.
  15. zbcfGetCodeList(new Array("M0376","L0095"), new Array("/root/init/M0376list","/root/init/L0095list")); //혈액형,직업코드
  16. fcode(); //콤보에 값설정
  17. datagrid7.extendLastCol = "scroll"; //그리드우측여백정리
  18. datagrid8.extendLastCol = "scroll"; //그리드우측여백정리
  19. datagrid9.extendLastCol = "scroll"; //그리드우측여백정리
  20. datagrid7.frozenCols = datagrid7.colRef("brgstno"); //헌혈경력이력
  21. datagrid9.frozenCols = datagrid9.colRef("dnorrrgstno"); //공여자매핑 현황 리스트
  22. datagrid8.frozenCols = datagrid8.colRef("rrgstno"); //환자현황 리스트
  23. //----------------------------------------------------------------
  24. //조회시 자료가 없으면 instance가 제거된다. 그러므로 복사해놓는다.
  25. //----------------------------------------------------------------
  26. model.makenode("/root/tmp");
  27. model.copyNode("/root/tmp","/root/main/dnorprcpinfo"); //공여자 입력정보 저장
  28. fGetPatinfo();
  29. }
  30. //--------------------------
  31. // 상단정보 내리기
  32. //--------------------------
  33. function fGetPatinfo() {
  34. var sPath = "/root/main/paminfo";
  35. //설정된 상단정보를 불러옴
  36. var node = getGlobalVariable("paminfo");
  37. if (node !=null) {
  38. model.makeNode(sPath);
  39. setCSVToNode(sPath, node);
  40. var pid, indd, cretno, mskind, histstat;
  41. pid = model.getValue(sPath +"/list/pid");
  42. //patinfo 정보 셋팅
  43. if ( !isNull(pid) ) {
  44. model.setValue("/root/main/leftref/cond" , "2");
  45. model.setValue("/root/main/leftref/conddata", model.getValue(sPath +"/list/pid"));
  46. fpatient();
  47. }
  48. }
  49. }
  50. /**
  51. * @group :
  52. * @ver : 2007.12.18
  53. * @by : 신혁춘
  54. * @---------------------------------------------------
  55. * @type : function
  56. * @access : public
  57. * @desc : 공통코드 조회
  58. * @param :
  59. * @return :
  60. * @---------------------------------------------------
  61. */
  62. function fcode(flag){
  63. submit("TRLBD00601")
  64. }
  65. /**
  66. * @group :
  67. * @ver : 2007.12.18
  68. * @by : 신혁춘
  69. * @---------------------------------------------------
  70. * @type : function
  71. * @access : public
  72. * @desc : 환자리스트 조회
  73. * @param :
  74. * @return :
  75. * @---------------------------------------------------
  76. */
  77. function fpatient(flag){
  78. var cond = model.getValue("/root/main/leftref/cond");
  79. var conddata = model.getValue("/root/main/leftref/conddata");
  80. //조회값
  81. if(conddata.length==0){
  82. messageBox("검색할 값을 ", "C001");
  83. model.setfocus("inp_code");
  84. return;
  85. }
  86. //주민번호로 조회인 경우
  87. if(cond == "0"){
  88. if(conddata.length<6){
  89. if(conddata.length==0){
  90. }else{
  91. messageBox("최소6자 이상", "C001");
  92. model.setfocus("inp_code");
  93. return;
  94. }
  95. }
  96. }
  97. //이름으로 조회인 경우
  98. if(cond == "1"){
  99. if(conddata.length<2){
  100. if(conddata.length==0){
  101. return;
  102. }else{
  103. messageBox("최소2자 이상", "C001");
  104. model.setfocus("inp_code");
  105. return;
  106. }
  107. }
  108. }
  109. model.removeNodeset("/root/send");
  110. model.makeValue("/root/send/cond",model.getValue("/root/main/leftref/cond"));
  111. model.makeValue("/root/send/conddata",conddata);
  112. submit("TRLBD00602")
  113. }
  114. /**
  115. * @group :
  116. * @ver : 2007.12.20
  117. * @by : 신혁춘
  118. * @---------------------------------------------------
  119. * @type : function
  120. * @access : public
  121. * @desc : 공여자 정보 조회
  122. * @param :
  123. * @return :
  124. * @---------------------------------------------------
  125. */
  126. function fdnorselt(flag){
  127. if(flag != "mapping"){ //조회버튼클릭시 또는 공여자조회 주민번호 입력란에서 enter시
  128. var gbtext = model.getValue("/root/main/rghtref/dnorrrgstno"); //공여자조회 주민번호 입력란
  129. if(gbtext == ""){
  130. messageBox("검색할 값을", "C001");
  131. model.setfocus("inp_dnorno");
  132. return;
  133. }
  134. if(gbtext.length<13){
  135. messageBox("주민번호가 정상적이지 않습니다.", "E999", "");
  136. model.setfocus("inp_dnorno");
  137. return;
  138. }
  139. }
  140. if(flag == "mapping"){ //공여자 매핑현황리스트에서 클릭시
  141. var iRow = datagrid9.row //공여자 매핑현황리스트
  142. var Rows = datagrid9.rows
  143. var xPatMap = "/root/main/patmapinfo/patmap"; //공여자 매핑현황리스트
  144. model.setValue("/root/main/rghtref/dnorno", model.getValue(xPatMap+"["+iRow+"]/dnorno"));
  145. model.setValue("/root/main/rghtref/dnornm", model.getValue(xPatMap+"["+iRow+"]/dnornm"));
  146. model.setValue("/root/main/rghtref/dnorrrgstno",model.getValue(xPatMap+"["+iRow+"]/dnorrrgstno"));
  147. for(i=1; i<Rows; i++){ //선택정리
  148. model.setValue(xPatMap+"["+i+"]/flag","0");
  149. }
  150. model.setValue(xPatMap+"["+iRow+"]/flag","1");
  151. }
  152. model.removeNodeset("/root/send");
  153. //model.makeValue("/root/send/gbtext",model.getValue("/root/main/rghtref/gbtext"));
  154. model.makeValue("/root/send/dnorno",model.getValue("/root/main/rghtref/dnorno"));
  155. if(submit("TRLBD00603")){
  156. /*
  157. var doncareryn = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncareryn"); //헌혈경험유무
  158. if(doncareryn == "Y"){
  159. input56.disabled = false; //헌혈경험 무
  160. input58.disabled = false; //최근헌혈일
  161. input58.refresh();
  162. input56.refresh();
  163. }else{
  164. input56.disabled = true;
  165. input58.disabled = true;
  166. input58.refresh();
  167. input56.refresh();
  168. // model.makenode("/root/main/dnorprcpinfo/dnorprcp");
  169. // model.copyNode("/root/main/dnorprcpinfo/dnorprcp", "/root/send/tmp");
  170. }
  171. */
  172. if(flag == "mapping"){
  173. var iRow = datagrid9.row //공여자매핑정보
  174. var xPatMap = "/root/main/patmapinfo/patmap"; //공여자매핑정보
  175. model.setValue("/root/main/dnorprcpinfo/dnorprcp/doncode",model.getValue(xPatMap+"["+iRow+"]/doncode"));
  176. radio14.refresh(); //헌혈구분
  177. }
  178. var tempinstance = "/root/main/dnorprcpinfo";
  179. if (model.instances(0).selectNodes(tempinstance+ "/dnorprcp").length == 0) {
  180. model.copyNode(tempinstance,"/root/tmp"); //공여자 입력정보 저장
  181. }
  182. }
  183. }
  184. /**
  185. * @group :
  186. * @ver : 2007.12.26
  187. * @by : 신혁춘
  188. * @---------------------------------------------------
  189. * @type : function
  190. * @access : public
  191. * @desc : 공여자 정보 저장
  192. * @param :
  193. * @return :
  194. * @---------------------------------------------------
  195. */
  196. function fdnorsave(){
  197. //-----------check()
  198. var xPath = "/root/main/dnorprcpinfo/dnorprcp";
  199. var nNode = model.instances(0).selectSingleNode(xPath);
  200. var max = nNode.childNodes.length;
  201. for (var idx=0;idx<max;idx++) {
  202. var obj = nNode.childNodes(idx);
  203. var objNm = obj.nodeName;
  204. var chkflag = false;
  205. //필수체크항목리스트
  206. switch (objNm) {
  207. case "dnorrrgstno1":
  208. case "dnorrrgstno2":
  209. case "dnorsex":
  210. case "dnorage":
  211. case "dnornm":
  212. case "jobcd":
  213. case "bdht":
  214. case "bdwt":
  215. case "btype":
  216. // case "dnorabo":
  217. // case "dnorrh":
  218. // case "doncareryn":
  219. // case "dontims":
  220. // case "rectdondd":
  221. // case "homezipcd1":
  222. // case "homezipcd2":
  223. // case "homezipcdseqno":
  224. // case "homeaddr":
  225. // case "homedetladdr":
  226. case "hometel":
  227. case "mpphonno":
  228. // case "workplcezipcd1":
  229. // case "workplcezipcd2":
  230. // case "workplcezipcdseqno":
  231. // case "workplceaddr":
  232. // case "workplcedetladdr":
  233. // case "email":
  234. // case "workplcetel":
  235. // case "delyn":
  236. if (model.getValue(xPath + "/" + objNm) == "") {
  237. chkflag = true;
  238. break;
  239. }
  240. }
  241. if (chkflag == true) {
  242. messageBox("필수입력사항입니다. 값을 입력하십시오.", "E999", "");
  243. var objContNm = fControlFind(xPath + "/" + objNm);
  244. if (objContNm != "") {
  245. model.setFocus(objContNm);
  246. }
  247. return;
  248. }
  249. // alert(obj.text,obj.xml,obj.nodeName );
  250. }
  251. //-----------------------------
  252. var doncareryn = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncareryn")
  253. var rrgstno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1") +
  254. model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2")
  255. if(doncareryn == "N"){
  256. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dontims" , " ")
  257. model.setValue("/root/main/dnorprcpinfo/dnorprcp/rectdondd", " ")
  258. }
  259. //사용하지 않음 btype에 합쳐진 혈액형이 들어감(20080115)
  260. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorabo" , '-' );
  261. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorrh" , '-' );
  262. model.removeNodeset("/root/send");
  263. model.makenode("/root/send");
  264. model.copyNode("/root/send", "/root/main/dnorprcpinfo/dnorprcp");
  265. if(submit("TXLBD00601")){
  266. /*
  267. //저장전 조회항목에 반영한 후 저장 시키고 조회한다.
  268. var dnorno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorno");
  269. var dnornm = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnornm");
  270. var dnorrrgstno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1") + "-" +
  271. model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2");
  272. model.setValue("/root/main/rghtref/dnorno", dnorno );
  273. model.setValue("/root/main/rghtref/dnornm", dnornm );
  274. model.setValue("/root/main/rghtref/dnorrrgstno",dnorrrgstno );
  275. model.refresh();
  276. fdnorselt()
  277. */
  278. }
  279. // if (submit("TXLBD00601")){
  280. // readfunc();
  281. // model.setValue("/root/send/baseinfo3/pid", model.getValue("/root/main/patinfo/patlist[" + irow + "]/pid"));
  282. // btn_sea.disabled = false;
  283. // input39.disabled = false;
  284. // submit("TRLBD00604");
  285. // if (model.getValue("/root/main/patmapinfo/patmap[" + 1 + "]/dnorno") == ""){
  286. // model.removeNodeset("/root/main/patmapinfo/patmap");
  287. // }
  288. // resetfunc();
  289. // datasetup(irow);
  290. // }
  291. // model.refresh();
  292. }
  293. //---------------------
  294. // control 찾기
  295. //---------------------
  296. function fControlFind(xPath) {
  297. var childObjCnt = document.controls.length;
  298. var childObj;
  299. for (var i=0; i < childObjCnt; i++) {
  300. childObj = document.controls.item(i);
  301. var ref = childObj.attribute("ref");
  302. if (ref == xPath) {
  303. return childObj.attribute("id");
  304. break;
  305. }
  306. }
  307. return "";
  308. }
  309. //---------------------
  310. /**
  311. * @group :
  312. * @ver : 2007.12.26
  313. * @by : 신혁춘
  314. * @---------------------------------------------------
  315. * @type : function
  316. * @access : public
  317. * @desc : 공여자 정보 mapping 저장
  318. * @param :
  319. * @return :
  320. * @---------------------------------------------------
  321. */
  322. function fmapping(flag){
  323. //매핑생성
  324. if(flag == "ins"){
  325. var dnorno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorno"); //공여자입력란
  326. var doncode = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncode");
  327. var Rows = datagrid8.rows; //환자리스트
  328. var iRow = datagrid8.row;
  329. if(iRow<0){
  330. messageBox("환자를 선택 하지", "E007");
  331. return;
  332. }
  333. if(dnorno==""){
  334. messageBox("공여자를 검색 또는 저장이 되지 않아 Mapping을", "E001");
  335. return;
  336. }
  337. if(doncode==""){
  338. messageBox("헌혈구분을 선택 하지 않아 Mapping을", "E001");
  339. return;
  340. }
  341. var xPatList = "/root/main/patinfo/patlist"; //환자리스트
  342. model.removeNodeset("/root/send");
  343. for(i=1; i<Rows; i++){
  344. var flag = model.getValue(xPatList+"["+i+"]/flag"); //선택되었으면
  345. if(flag == 1){
  346. model.makeValue("/root/send/pid", model.getValue(xPatList+"["+i+"]/pid"));
  347. model.makeValue("/root/send/hngnm", model.getValue(xPatList+"["+i+"]/hngnm"));
  348. model.makeValue("/root/send/sex", model.getValue(xPatList+"["+i+"]/sex"));
  349. model.makeValue("/root/send/age", model.getValue(xPatList+"["+i+"]/age"));
  350. model.makeValue("/root/send/rrgstno1", model.getValue(xPatList+"["+i+"]/rrgstno1"));
  351. model.makeValue("/root/send/rrgstno2", model.getValue(xPatList+"["+i+"]/rrgstno2"));
  352. break;
  353. }
  354. }
  355. model.makeValue("/root/send/m", "I");
  356. model.makeValue("/root/send/dnorno", model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorno"));
  357. //model.makeValue("/root/send/dnorseqno", model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorseqno"));
  358. var tempcode = "";
  359. var tempflag = "";
  360. var tempkindcd = "";
  361. tempcode = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncode");
  362. tempflag = tempcode.substr(0,1);
  363. tempkindcd = tempcode.substr(1,1);
  364. model.makeValue("/root/send/donflag" ,tempflag );
  365. model.makeValue("/root/send/donkindcd" ,tempkindcd );
  366. /*
  367. }else if(flag == "upt"){
  368. //매핑수정
  369. var iRow = datagrid9.row; //공여자 매핑현황 리스트
  370. var xPatMap = "/root/main/patmapinfo/patmap"; //공여자 매핑현황 리스트
  371. var Rows = datagrid8.rows; //환자 현황 리스트
  372. var xPatList = "/root/main/patinfo/patlist"; //환자 현황 리스트
  373. if(iRow < 0){
  374. messageBox("공여자를 선택 하지", "E007");
  375. return;
  376. }
  377. // model.removeNodeset("/root/send");
  378. // for(i=1; i<Row; i++){
  379. // var flag = model.getValue(xPatList+"["+i+"]/flag");
  380. // if(flag == 1){
  381. // model.makeValue("/root/send/pid",model.getValue(xPatList+"["+i+"]/pid"));
  382. // }
  383. // }
  384. model.makeValue("/root/send/m","U");
  385. model.makeValue("/root/send/pid", model.getValue(xPatMap+"["+iRow+"]/pid"));
  386. model.makeValue("/root/send/dnorno", model.getValue(xPatMap+"["+iRow+"]/dnorno"));
  387. model.makeValue("/root/send/dnorseqno", model.getValue(xPatMap+"["+iRow+"]/dnorseqno"));
  388. var tempcode = "";
  389. var tempflag = "";
  390. var tempkindcd = "";
  391. tempcode = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncode");
  392. tempflag = tempcode.substr(0,1);
  393. tempkindcd = tempcode.substr(1,1);
  394. model.makeValue("/root/send/donflag" ,tempflag );
  395. model.makeValue("/root/send/donkindcd" ,tempkindcd );
  396. */
  397. }else if(flag == "del"){
  398. //매핑취소
  399. var iRow = datagrid9.row; //공여자 매핑현황 리스트
  400. var xPatMap = "/root/main/patmapinfo/patmap"; //공여자 매핑현황 리스트
  401. var Rows = datagrid8.rows; //환자 현황 리스트
  402. var xPatList = "/root/main/patinfo/patlist"; //환자 현황 리스트
  403. if(iRow < 0){
  404. messageBox("공여자를 선택 하지", "E007");
  405. return;
  406. }
  407. model.removeNodeset("/root/send");
  408. /*
  409. for(i=1; i<Row; i++){
  410. var flag = model.getValue(xPatList+"["+i+"]/flag");
  411. if(flag == 1){
  412. model.makeValue("/root/send/pid",model.getValue(xPatList+"["+i+"]/pid"));
  413. }
  414. }
  415. */
  416. model.makeValue("/root/send/m","D");
  417. model.makeValue("/root/send/pid", model.getValue(xPatMap+"["+iRow+"]/pid"));
  418. model.makeValue("/root/send/dnorno", model.getValue(xPatMap+"["+iRow+"]/dnorno"));
  419. model.makeValue("/root/send/dnorseqno", model.getValue(xPatMap+"["+iRow+"]/dnorseqno"));
  420. }
  421. if(submit("TXLBD00602")){
  422. fpatmapselect("map")
  423. }
  424. }
  425. /**
  426. * @group :
  427. * @ver : 2007.12.27
  428. * @by : 신혁춘
  429. * @---------------------------------------------------
  430. * @type : function
  431. * @access : public
  432. * @desc : 공여자 정보 mapping 정보 조회
  433. * @param :
  434. * @return :
  435. * @---------------------------------------------------
  436. */
  437. function fpatmapselect(flag){
  438. var Rows = datagrid8.rows;
  439. var iRow = datagrid8.row;
  440. var xPatList = "/root/main/patinfo/patlist"; //환자현황 리스트
  441. //model.setValue("/root/main/dnorprcpinfo/dnorprcp/doncode","");
  442. if (Rows <= 1 || iRow < 0) return;
  443. if(flag != "map"){
  444. for(i=1; i<Rows; i++){
  445. model.setValue(xPatList+"["+i+"]/flag","0");
  446. }
  447. model.setValue(xPatList+"["+iRow+"]/flag","1");
  448. }
  449. model.removeNodeset("/root/send");
  450. model.makeValue("/root/send/pid",model.getValue(xPatList+"["+iRow+"]/pid"));
  451. if(submit("TRLBD00604")){
  452. }
  453. }
  454. /**
  455. * @group :
  456. * @ver : 2007.12.27
  457. * @by : 신혁춘
  458. * @---------------------------------------------------
  459. * @type : function
  460. * @access : public
  461. * @desc : 공여자 정보 조회
  462. * @param :
  463. * @return :
  464. * @---------------------------------------------------
  465. */
  466. function fdnorprcprrg(){
  467. setInputNodeCurText();
  468. var dnorrrgstno1 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1");
  469. var dnorrrgstno2 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2");
  470. if(dnorrrgstno2.length == 7 && dnorrrgstno1.length == 6){
  471. rrgstno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1") + model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2")
  472. input59.value = rrgstno;
  473. input59.refresh();
  474. fdnorselt();
  475. var dnornm = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnornm");
  476. if(dnornm == ""){
  477. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1",dnorrrgstno1);
  478. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2",dnorrrgstno2);
  479. model.refresh();
  480. input59.value = "";
  481. input59.refresh();
  482. }
  483. }
  484. }
  485. //-------------------------------------
  486. // 주민 번호 확인
  487. //-------------------------------------
  488. function fdnorrrgstnocheck(flag) {
  489. var dnorrrgstno1 = "";
  490. var dnorrrgstno2 = "";
  491. var tempValue1 = "";
  492. var tempValue2 = "";
  493. dnorrrgstno1 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1");
  494. dnorrrgstno2 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2"); //input45.currentText;
  495. tempValue1 = dnorrrgstno1 + dnorrrgstno2;
  496. //나이자동계산설정
  497. tempValue2 = getFullAge(tempValue1);
  498. if ( tempValue2 == -1) {
  499. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorage", "");
  500. } else {
  501. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorage", tempValue2);
  502. }
  503. inp_inage.refresh();
  504. //주민번호체크
  505. tempValue2 = isResidentNo(tempValue1);
  506. if (tempValue2) {
  507. tempValue2 = getGender(dnorrrgstno2);
  508. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorsex", tempValue2 );
  509. } else {
  510. messageBox("유효한 주민번호가 아닙니다.", "E999", "");
  511. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorsex", "" );
  512. model.setfocus("inp_inrrgstno2");
  513. return;
  514. }
  515. rad_insex.refresh();
  516. }
  517. // --------------------------------------------------
  518. // 상단환자정보세팅하기
  519. // --------------------------------------------------
  520. function fSetPatInfo()
  521. {
  522. var pGrd = datagrid8;
  523. if (pGrd.rows <=1 || pGrd.row <= 0) return;
  524. var sPath = "/root/main/patinfo/patlist["+ pGrd.row+"]" ;
  525. //우측마우스버튼클릭시도 상단올릴수 있도록
  526. // var sChk = model.getValue(sPath + "/flag"); //선택된자료만
  527. // if (sChk != "1") return;
  528. var siogb = model.getValue(sPath + "/iogb");
  529. if (siogb == "입원") siogb = "I";
  530. if (siogb == "외래") siogb = "O";
  531. if (siogb == "") {
  532. messageBox("접수정보가 없습니다.", "E999", "");
  533. return;
  534. }
  535. var pid = model.getValue(sPath + "/pid");
  536. var orddd = model.getValue(sPath + "/orddd");
  537. var cretno = model.getValue(sPath + "/cretno");
  538. var instcd = getUserInfo("dutplceinstcd");
  539. var param = siogb + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  540. setParameter("condparam", param);
  541. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  542. /*
  543. var useyn = getParameter("SPMMO08900_rtn_useyn");
  544. if(useyn == "Y"){
  545. setParameter("SPMMO08900_rtn_useyn", "");
  546. fInitPamInfo(); //화면 기본 정보 설정
  547. }else{
  548. return;
  549. }
  550. */
  551. }
  552. // --------------------------------------------------
  553. // 오른쪽 마우스버튼
  554. // --------------------------------------------------
  555. function fnonmousedown() {
  556. var pGrd = datagrid8;
  557. pGrd.row = pGrd.mouseRow;
  558. if (pGrd.rows <= 1 || pGrd.row <= 0 ) return;
  559. fShowPopupMenu("datagrid8","/root/main/menuitems/inmenu/item");
  560. /*
  561. if (model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/pid")== "") return;
  562. var colnm = grd_dscList.valueMatrix(0, grd_dscList.mouseCol);
  563. var tmpcareinrmdd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/tmpcareinrmdd");
  564. var oppatflagcd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/oppatflagcd");
  565. colnm = colnm.substring(0,2);
  566. var sdschdd1 = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/dschdd");
  567. sdschdd1 = sdschdd1.replace("-","");
  568. sdschdd1 = sdschdd1.substring(0,1);
  569. //---(수술환자+angio(수술정보없음)
  570. // if(oppatflagcd=="D"&&colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  571. // fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  572. // }else {
  573. // fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  574. // }
  575. if (rdo_dscflag.value == "D") {
  576. //if(colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  577. if(colnm== "입실") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  578. fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  579. }else {
  580. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  581. }
  582. } else {
  583. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  584. }
  585. */
  586. }
  587. // --------------------------------------------------
  588. // 팝업메뉴
  589. // --------------------------------------------------
  590. function fShowPopupMenu(gridID, menuPath)
  591. {
  592. var gridObj = document.controls.item(gridID);
  593. if(event.button == 3) {
  594. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  595. window.setPopupMenu(true, menuPath, "name", "func", false);
  596. }else{
  597. window.setPopupMenu(false);
  598. }
  599. }
  600. }
  601. //-------------------------------------
  602. // 오른쪽 마우스 호출되는 팝업둑ENR
  603. //-------------------------------------
  604. function fSetPopup01() {
  605. //상단올리기
  606. fSetPatInfo();
  607. modal("SMLBD01300", "", "", "", "", "", ""); //공여자처방입력
  608. }
  609. function fSetPopup02() {
  610. //상단올리기
  611. fSetPatInfo();
  612. modal("SMLBD00700", "", "", "", "", "", ""); //공여자문진
  613. }
  614. function fSetPopup03() {
  615. //상단올리기
  616. fSetPatInfo();
  617. modal("SMMRF02300", "", "", "", "", "", ""); //ocr서식지출력
  618. }
  619. function fSetPopup04() {
  620. //상단올리기
  621. fSetPatInfo();
  622. modal("SMLBD00900", "", "", "", "", "", ""); //검사결과판정조회
  623. }
  624. function fSetPopup05() {
  625. //상단올리기
  626. fSetPatInfo();
  627. modal("SMMMO02500", "", "", "", "", "", ""); //환자진료정보조회
  628. }
  629. function fSetPopup06() {
  630. //상단올리기
  631. fSetPatInfo();
  632. modal("SMAER00800", "", "", "", "", "", ""); //통합검사결과조회
  633. }
  634. /*
  635. * 팝업
  636. */
  637. function fSearchPatInfo() {
  638. var flag = model.getValue("/root/main/rghtref/dnorno");
  639. // var vPid = "";
  640. // if (flag =="") return;
  641. vTemp = model.getValue("/root/main/rghtref/dnorno");
  642. var vsrchcond = "1";
  643. //dnorno
  644. model.removenode("/root/temp");
  645. model.makeValue("/root/temp/srchcond", vsrchcond);
  646. model.makeValue("/root/temp/dnorno", vTemp);
  647. model.makeValue("/root/temp/autoflag", "Y"); //Y:조회 내역이 1건일 경우 자동 화면 닫기
  648. //NON:조회 내역이 없을 경우 자동 화면 닫기
  649. //dnornm
  650. if ( vTemp.isNumber() != true ) {
  651. vsrchcond = "2";
  652. model.removenode("/root/temp");
  653. model.makeValue("/root/temp/srchcond", vsrchcond);
  654. model.makeValue("/root/temp/dnornm", vTemp);
  655. model.makeValue("/root/temp/autoflag", "Y");
  656. }
  657. //팝업조건설정
  658. modal("SPLBD02000", "1","150", "150", "SPLBD02000", "/root/temp", "/root/send");
  659. //리턴값
  660. if (model.getValue("/root/main/popupendflag") == "ok") {
  661. var idnorno = model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnorno");
  662. var idnornm = model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnornm");
  663. var irrgstno = model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnorrrgstno1") +
  664. model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnorrrgstno2") ;
  665. model.setValue("/root/main/rghtref/dnorno", idnorno );
  666. model.setValue("/root/main/rghtref/dnornm", idnornm );
  667. model.setValue("/root/main/rghtref/dnorrrgstno",irrgstno );
  668. model.refresh();
  669. //조회값이 존재하면 자동으로 조회함
  670. fdnorselt();
  671. }
  672. }
  673. /*
  674. * 엑셀출력
  675. */
  676. function fExcel(){
  677. var pGrd = datagrid8;
  678. if (pGrd.rows > pGrd.fixedrows ) {
  679. var fileName = window.fileDialog("save", ",", false, "공여자리스트_"+getCurrentDate(), "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  680. if (fileName != "") {
  681. //1번true : 숨긴 row에 대한 display(true)
  682. //2번true : 숨긴 col에 대한 display(true)
  683. //false : 콤보에서 label값을 기록(false)
  684. pGrd.saveExcel(fileName, "SheetName", false, false, "", "", false);
  685. messageBox("엑셀저장이 ", "I002", ""); //I002 : 완료되었습니다.
  686. }
  687. } else {
  688. messageBox("자료가 존재하지 않습니다.", "E999", "");
  689. }
  690. }
  691. /*
  692. 공여자 신규 등록
  693. */
  694. function fDnorInsert() {
  695. //model.resetInstanceNode("/root/main/dnorprcpinfo/dnorprcp");
  696. //model.removeNodeset("/root/main/dnorprcpinfo/dnorprcplist");
  697. //resetInstanceNode
  698. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  699. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  700. model.resetInstanceNode("/root/main/rghtref"); //조회항목 CLEAR
  701. model.resetInstanceNode("/root/main/dnorprcpinfo/dnorprcp"); //입력항목 CLEAR
  702. model.refresh();
  703. alert("공여자를 신규로 입력합니다");
  704. model.setfocus("inp_inrrgstno1");
  705. }
  706. //--------------------------
  707. // 컨트롤focusin backcolor
  708. //--------------------------
  709. function ffocusInBackColor() {
  710. var Control = document.all.item(event.currentTarget);
  711. Control.attribute("background-color") = focusInBackColor;
  712. }
  713. function ffocusOutBackColor() {
  714. var Control = document.all.item(event.currentTarget);
  715. Control.attribute("background-color") = focusOutBackColor;
  716. }