SMMNA00600.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898
  1. /*
  2. 공여자등록(SMMNA00600.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("TRMNA00601")
  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("TRMNA00602")
  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("TRMNA00603")){
  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. // control 찾기
  186. //---------------------
  187. function fControlFind(xPath) {
  188. var childObjCnt = document.controls.length;
  189. var childObj;
  190. for (var i=0; i < childObjCnt; i++) {
  191. childObj = document.controls.item(i);
  192. var ref = childObj.attribute("ref");
  193. if (ref == xPath) {
  194. return childObj.attribute("id");
  195. break;
  196. }
  197. }
  198. return "";
  199. }
  200. //---------------------
  201. /**
  202. * 20090219 dhkim
  203. * 저장전 유효성체크
  204. */
  205. function fIsValid(){
  206. var xPath = "/root/main/dnorprcpinfo/dnorprcp";
  207. var nNode = model.instances(0).selectSingleNode(xPath);
  208. var max = nNode.childNodes.length;
  209. var obj, objNm, chkflag, objContNm;
  210. if (model.getValue(xPath + "/dnorrrgstno1") == "") {
  211. messageBox("주민등록번호를 입력하세요.", "E999", "");
  212. objContNm = fControlFind(xPath + "/dnorrrgstno1");
  213. if(objContNm != "") {
  214. model.setFocus(objContNm);
  215. }
  216. return false;
  217. }
  218. if (model.getValue(xPath + "/dnorrrgstno2") == "") {
  219. messageBox("주민등록번호를 입력하세요.", "E999", "");
  220. objContNm = fControlFind(xPath + "/dnorrrgstno2");
  221. if(objContNm != "") {
  222. model.setFocus(objContNm);
  223. }
  224. return false;
  225. }
  226. if (model.getValue(xPath + "/dnorsex") == "") {
  227. messageBox("성별을 입력하세요.", "E999", "");
  228. objContNm = fControlFind(xPath + "/dnorsex");
  229. if(objContNm != "") {
  230. model.setFocus(objContNm);
  231. }
  232. return false;
  233. }
  234. if (model.getValue(xPath + "/dnorage") == "") {
  235. messageBox("나이를 입력하세요.", "E999", "");
  236. objContNm = fControlFind(xPath + "/dnorage");
  237. if(objContNm != "") {
  238. model.setFocus(objContNm);
  239. }
  240. return false;
  241. }
  242. if (model.getValue(xPath + "/dnornm") == "") {
  243. messageBox("성명을 입력하세요.", "E999", "");
  244. objContNm = fControlFind(xPath + "/dnornm");
  245. if(objContNm != "") {
  246. model.setFocus(objContNm);
  247. }
  248. return false;
  249. }
  250. if (model.getValue(xPath + "/jobcd") == "") {
  251. messageBox("직업을 입력하세요.", "E999", "");
  252. objContNm = fControlFind(xPath + "/jobcd");
  253. if(objContNm != "") {
  254. model.setFocus(objContNm);
  255. }
  256. return false;
  257. }
  258. if (model.getValue(xPath + "/bdht") == "") {
  259. messageBox("신장을 입력하세요.", "E999", "");
  260. objContNm = fControlFind(xPath + "/bdht");
  261. if(objContNm != "") {
  262. model.setFocus(objContNm);
  263. }
  264. return false;
  265. }
  266. if (model.getValue(xPath + "/bdwt") == "") {
  267. messageBox("체중을 입력하세요.", "E999", "");
  268. objContNm = fControlFind(xPath + "/bdwt");
  269. if(objContNm != "") {
  270. model.setFocus(objContNm);
  271. }
  272. return false;
  273. }
  274. if (model.getValue(xPath + "/btype") == "") {
  275. messageBox("혈액형을 입력하세요.", "E999", "");
  276. objContNm = fControlFind(xPath + "/btype");
  277. if(objContNm != "") {
  278. model.setFocus(objContNm);
  279. }
  280. return false;
  281. }
  282. if (model.getValue(xPath + "/doncareryn") == "") {
  283. messageBox("헌혈경험을 입력하세요.", "E999", "");
  284. objContNm = fControlFind(xPath + "/doncareryn");
  285. if(objContNm != "") {
  286. model.setFocus(objContNm);
  287. }
  288. return false;
  289. }
  290. var rrgstno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1")
  291. + model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2"); //주민번호
  292. //20090212 dhkim
  293. //나이 만17세 미만 50세 이상인 경우 저장시 '공여자 나이를 확인하세요' valid체크
  294. var birth = getFullAge(rrgstno);
  295. var dnorage = model.getValue(xPath + "/dnorage");
  296. if(birth < 17 || birth >= 50 || dnorage < 17 || dnorage >= 50){
  297. messageBox("공여자 나이를 확인하세요.", "E999", "");
  298. objContNm = fControlFind(xPath + "/dnorrrgstno1");
  299. if(objContNm != "") {
  300. model.setFocus(objContNm);
  301. }
  302. return false;
  303. }
  304. return true;
  305. }
  306. /**
  307. * @group :
  308. * @ver : 2007.12.26
  309. * @by : 신혁춘
  310. * @---------------------------------------------------
  311. * @type : function
  312. * @access : public
  313. * @desc : 공여자 정보 저장
  314. * @param :
  315. * @return :
  316. * @---------------------------------------------------
  317. */
  318. function fdnorsave(){
  319. var xPath = "/root/main/dnorprcpinfo/dnorprcp";
  320. var nNode = model.instances(0).selectSingleNode(xPath);
  321. var max = nNode.childNodes.length;
  322. if(fIsValid()){
  323. //20080903 default 입력
  324. var dontims = model.getValue(xPath + "/dontims");//헌혈횟수
  325. var rectdondd = model.getValue(xPath + "/rectdondd");//최근헌혈일
  326. var doncareryn = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncareryn");//헌혈경험
  327. if(dontims == null || dontims == ''){
  328. dontims = '0';
  329. }
  330. if(rectdondd == null || rectdondd == ''){
  331. rectdondd = '00000000';
  332. }
  333. if(doncareryn == "N"){//헌혈경험무
  334. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dontims" , "0");//헌혈횟수
  335. model.setValue("/root/main/dnorprcpinfo/dnorprcp/rectdondd", "00000000");//최근헌혈일
  336. }else{//헌혈경험유
  337. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dontims" , dontims);
  338. model.setValue("/root/main/dnorprcpinfo/dnorprcp/rectdondd", rectdondd);
  339. }
  340. //사용하지 않음 btype에 합쳐진 혈액형이 들어감(20080115)
  341. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorabo", '-');
  342. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorrh", '-');
  343. model.removeNodeset("/root/send");
  344. model.makenode("/root/send");
  345. model.copyNode("/root/send", "/root/main/dnorprcpinfo/dnorprcp");
  346. if(!submit("TXMNA00601")){
  347. messageBox('공여자 등록을 실패하였습니다.', 'E999');
  348. return;
  349. }
  350. }
  351. }
  352. /**
  353. * @group :
  354. * @ver : 2007.12.26
  355. * @by : 신혁춘
  356. * @---------------------------------------------------
  357. * @type : function
  358. * @access : public
  359. * @desc : 공여자 정보 mapping 저장
  360. * @param :
  361. * @return :
  362. * @---------------------------------------------------
  363. */
  364. function fmapping(flag){
  365. //매핑생성
  366. if(flag == "ins"){
  367. var dnorno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorno"); //공여자입력란
  368. var doncode = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncode");
  369. var Rows = datagrid8.rows; //환자리스트
  370. var iRow = datagrid8.row;
  371. if(iRow<0){
  372. messageBox("환자를 선택 하지", "E007");
  373. return;
  374. }
  375. if(dnorno==""){
  376. messageBox("공여자를 검색 또는 저장이 되지 않아 Mapping을", "E001");
  377. return;
  378. }
  379. if(doncode==""){
  380. messageBox("헌혈구분을 선택 하지 않아 Mapping을", "E001");
  381. return;
  382. }
  383. var xPatList = "/root/main/patinfo/patlist"; //환자리스트
  384. model.removeNodeset("/root/send");
  385. for(i=1; i<Rows; i++){
  386. var flag = model.getValue(xPatList+"["+i+"]/flag"); //선택되었으면
  387. if(flag == 1){
  388. model.makeValue("/root/send/pid", model.getValue(xPatList+"["+i+"]/pid"));
  389. model.makeValue("/root/send/hngnm", model.getValue(xPatList+"["+i+"]/hngnm"));
  390. model.makeValue("/root/send/sex", model.getValue(xPatList+"["+i+"]/sex"));
  391. model.makeValue("/root/send/age", model.getValue(xPatList+"["+i+"]/age"));
  392. model.makeValue("/root/send/rrgstno1", model.getValue(xPatList+"["+i+"]/rrgstno1"));
  393. model.makeValue("/root/send/rrgstno2", model.getValue(xPatList+"["+i+"]/rrgstno2"));
  394. break;
  395. }
  396. }
  397. model.makeValue("/root/send/m", "I");
  398. model.makeValue("/root/send/dnorno", model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorno"));
  399. //model.makeValue("/root/send/dnorseqno", model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorseqno"));
  400. var tempcode = "";
  401. var tempflag = "";
  402. var tempkindcd = "";
  403. tempcode = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncode");
  404. tempflag = tempcode.substr(0,1);
  405. tempkindcd = tempcode.substr(1,1);
  406. model.makeValue("/root/send/donflag" ,tempflag );
  407. model.makeValue("/root/send/donkindcd" ,tempkindcd );
  408. /*
  409. }else if(flag == "upt"){
  410. //매핑수정
  411. var iRow = datagrid9.row; //공여자 매핑현황 리스트
  412. var xPatMap = "/root/main/patmapinfo/patmap"; //공여자 매핑현황 리스트
  413. var Rows = datagrid8.rows; //환자 현황 리스트
  414. var xPatList = "/root/main/patinfo/patlist"; //환자 현황 리스트
  415. if(iRow < 0){
  416. messageBox("공여자를 선택 하지", "E007");
  417. return;
  418. }
  419. // model.removeNodeset("/root/send");
  420. // for(i=1; i<Row; i++){
  421. // var flag = model.getValue(xPatList+"["+i+"]/flag");
  422. // if(flag == 1){
  423. // model.makeValue("/root/send/pid",model.getValue(xPatList+"["+i+"]/pid"));
  424. // }
  425. // }
  426. model.makeValue("/root/send/m","U");
  427. model.makeValue("/root/send/pid", model.getValue(xPatMap+"["+iRow+"]/pid"));
  428. model.makeValue("/root/send/dnorno", model.getValue(xPatMap+"["+iRow+"]/dnorno"));
  429. model.makeValue("/root/send/dnorseqno", model.getValue(xPatMap+"["+iRow+"]/dnorseqno"));
  430. var tempcode = "";
  431. var tempflag = "";
  432. var tempkindcd = "";
  433. tempcode = model.getValue("/root/main/dnorprcpinfo/dnorprcp/doncode");
  434. tempflag = tempcode.substr(0,1);
  435. tempkindcd = tempcode.substr(1,1);
  436. model.makeValue("/root/send/donflag" ,tempflag );
  437. model.makeValue("/root/send/donkindcd" ,tempkindcd );
  438. */
  439. }else if(flag == "del"){
  440. //매핑취소
  441. var iRow = datagrid9.row; //공여자 매핑현황 리스트
  442. var xPatMap = "/root/main/patmapinfo/patmap"; //공여자 매핑현황 리스트
  443. var Rows = datagrid8.rows; //환자 현황 리스트
  444. var xPatList = "/root/main/patinfo/patlist"; //환자 현황 리스트
  445. if(iRow < 0){
  446. messageBox("공여자를 선택 하지", "E007");
  447. return;
  448. }
  449. model.removeNodeset("/root/send");
  450. /*
  451. for(i=1; i<Row; i++){
  452. var flag = model.getValue(xPatList+"["+i+"]/flag");
  453. if(flag == 1){
  454. model.makeValue("/root/send/pid",model.getValue(xPatList+"["+i+"]/pid"));
  455. }
  456. }
  457. */
  458. model.makeValue("/root/send/m","D");
  459. model.makeValue("/root/send/pid", model.getValue(xPatMap+"["+iRow+"]/pid"));
  460. model.makeValue("/root/send/dnorno", model.getValue(xPatMap+"["+iRow+"]/dnorno"));
  461. model.makeValue("/root/send/dnorseqno", model.getValue(xPatMap+"["+iRow+"]/dnorseqno"));
  462. }
  463. if(submit("TXMNA00602")){
  464. fpatmapselect("map")
  465. }
  466. }
  467. /**
  468. * @group :
  469. * @ver : 2007.12.27
  470. * @by : 신혁춘
  471. * @---------------------------------------------------
  472. * @type : function
  473. * @access : public
  474. * @desc : 공여자 정보 mapping 정보 조회
  475. * @param :
  476. * @return :
  477. * @---------------------------------------------------
  478. */
  479. function fpatmapselect(flag){
  480. var Rows = datagrid8.rows;
  481. var iRow = datagrid8.row;
  482. var xPatList = "/root/main/patinfo/patlist"; //환자현황 리스트
  483. //model.setValue("/root/main/dnorprcpinfo/dnorprcp/doncode","");
  484. if (Rows <= 1 || iRow < 0) return;
  485. if(flag != "map"){
  486. for(i=1; i<Rows; i++){
  487. model.setValue(xPatList+"["+i+"]/flag","0");
  488. }
  489. model.setValue(xPatList+"["+iRow+"]/flag","1");
  490. }
  491. model.removeNodeset("/root/send");
  492. model.makeValue("/root/send/pid",model.getValue(xPatList+"["+iRow+"]/pid"));
  493. if(submit("TRMNA00604")){
  494. }
  495. }
  496. /**
  497. * @group :
  498. * @ver : 2007.12.27
  499. * @by : 신혁춘
  500. * @---------------------------------------------------
  501. * @type : function
  502. * @access : public
  503. * @desc : 공여자 정보 조회
  504. * @param :
  505. * @return :
  506. * @---------------------------------------------------
  507. */
  508. function fdnorprcprrg(){
  509. setInputNodeCurText();
  510. var dnorrrgstno1 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1");
  511. var dnorrrgstno2 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2");
  512. if(dnorrrgstno2.length == 7 && dnorrrgstno1.length == 6){
  513. rrgstno = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1") + model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2")
  514. input59.value = rrgstno;
  515. input59.refresh();
  516. fdnorselt();
  517. var dnornm = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnornm");
  518. if(dnornm == ""){
  519. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1",dnorrrgstno1);
  520. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2",dnorrrgstno2);
  521. model.refresh();
  522. input59.value = "";
  523. input59.refresh();
  524. }
  525. }
  526. }
  527. //-------------------------------------
  528. // 주민 번호 확인
  529. //-------------------------------------
  530. function fdnorrrgstnocheck(flag) {
  531. var dnorrrgstno1 = "";
  532. var dnorrrgstno2 = "";
  533. var tempValue1 = "";
  534. var tempValue2 = "";
  535. dnorrrgstno1 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno1");
  536. dnorrrgstno2 = model.getValue("/root/main/dnorprcpinfo/dnorprcp/dnorrrgstno2"); //input45.currentText;
  537. tempValue1 = dnorrrgstno1 + dnorrrgstno2;
  538. //나이자동계산설정
  539. tempValue2 = getFullAge(tempValue1);
  540. if ( tempValue2 == -1) {
  541. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorage", "");
  542. } else {
  543. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorage", tempValue2);
  544. }
  545. inp_inage.refresh();
  546. //주민번호체크
  547. tempValue2 = isResidentNo(tempValue1);
  548. if (tempValue2) {
  549. tempValue2 = getGender(dnorrrgstno2);
  550. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorsex", tempValue2 );
  551. } else {
  552. messageBox("유효한 주민번호가 아닙니다.", "E999", "");
  553. model.setValue("/root/main/dnorprcpinfo/dnorprcp/dnorsex", "" );
  554. model.setfocus("inp_inrrgstno2");
  555. return;
  556. }
  557. rad_insex.refresh();
  558. }
  559. // --------------------------------------------------
  560. // 상단환자정보세팅하기
  561. // --------------------------------------------------
  562. function fSetPatInfo()
  563. {
  564. var pGrd = datagrid8;
  565. if (pGrd.rows <=1 || pGrd.row <= 0) return;
  566. var pGrdRow = pGrd.row;
  567. var sPath = "/root/main/patinfo/patlist["+ pGrdRow+"]" ;
  568. //우측마우스버튼클릭시도 상단올릴수 있도록
  569. // var sChk = model.getValue(sPath + "/flag"); //선택된자료만
  570. // if (sChk != "1") return;
  571. var siogb = model.getValue(sPath + "/iogb");
  572. if (siogb == "입원") siogb = "I";
  573. if (siogb == "외래") siogb = "O";
  574. if (siogb == "") {
  575. messageBox("접수정보가 없습니다.", "E999", "");
  576. return;
  577. }
  578. var pid = model.getValue(sPath + "/pid");
  579. var orddd = model.getValue(sPath + "/orddd");
  580. var cretno = model.getValue(sPath + "/cretno");
  581. var instcd = getUserInfo("dutplceinstcd");
  582. var param = siogb + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  583. //alert(param);
  584. setParameter("condparam", param);
  585. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  586. /*
  587. var useyn = getParameter("SPMMO08900_rtn_useyn");
  588. if(useyn == "Y"){
  589. setParameter("SPMMO08900_rtn_useyn", "");
  590. fInitPamInfo(); //화면 기본 정보 설정
  591. }else{
  592. return;
  593. }
  594. */
  595. }
  596. // --------------------------------------------------
  597. // 오른쪽 마우스버튼
  598. // --------------------------------------------------
  599. function fnonmousedown() {
  600. var pGrd = datagrid8;
  601. pGrd.row = pGrd.mouseRow;
  602. if (pGrd.rows <= 1 || pGrd.row <= 0 ) return;
  603. fShowPopupMenu("datagrid8","/root/main/menuitems/inmenu/item");
  604. /*
  605. if (model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/pid")== "") return;
  606. var colnm = grd_dscList.valueMatrix(0, grd_dscList.mouseCol);
  607. var tmpcareinrmdd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/tmpcareinrmdd");
  608. var oppatflagcd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/oppatflagcd");
  609. colnm = colnm.substring(0,2);
  610. var sdschdd1 = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/dschdd");
  611. sdschdd1 = sdschdd1.replace("-","");
  612. sdschdd1 = sdschdd1.substring(0,1);
  613. //---(수술환자+angio(수술정보없음)
  614. // if(oppatflagcd=="D"&&colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  615. // fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  616. // }else {
  617. // fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  618. // }
  619. if (rdo_dscflag.value == "D") {
  620. //if(colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  621. if(colnm== "입실") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  622. fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  623. }else {
  624. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  625. }
  626. } else {
  627. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  628. }
  629. */
  630. }
  631. // --------------------------------------------------
  632. // 팝업메뉴
  633. // --------------------------------------------------
  634. function fShowPopupMenu(gridID, menuPath)
  635. {
  636. var gridObj = document.controls.item(gridID);
  637. if(event.button == 3) {
  638. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  639. window.setPopupMenu(true, menuPath, "name", "func", false);
  640. }else{
  641. window.setPopupMenu(false);
  642. }
  643. }
  644. }
  645. //-------------------------------------
  646. // 오른쪽 마우스 호출되는 팝업둑ENR
  647. //-------------------------------------
  648. function fSetPopup01() {
  649. //상단올리기
  650. fSetPatInfo();
  651. modal("SMMNA01300", "", "", "", "", "", ""); //공여자처방입력
  652. }
  653. function fSetPopup02() {
  654. //상단올리기
  655. fSetPatInfo();
  656. modal("SMMNA00700", "", "", "", "", "", ""); //공여자문진
  657. }
  658. function fSetPopup03() {
  659. //상단올리기
  660. fSetPatInfo();
  661. modal("SMMRF02300", "", "", "", "", "", ""); //ocr서식지출력
  662. }
  663. function fSetPopup04() {
  664. //상단올리기
  665. fSetPatInfo();
  666. modal("SMMNA00900", "", "", "", "", "", ""); //검사결과판정조회
  667. }
  668. function fSetPopup05() {
  669. //상단올리기
  670. fSetPatInfo();
  671. modal("SMMMO02500", "", "", "", "", "", ""); //환자진료정보조회
  672. }
  673. function fSetPopup06() {
  674. //상단올리기
  675. fSetPatInfo();
  676. modal("SMAER00800", "", "", "", "", "", ""); //통합검사결과조회
  677. }
  678. /*
  679. * 팝업
  680. */
  681. function fSearchPatInfo() {
  682. var flag = model.getValue("/root/main/rghtref/dnorno");
  683. // var vPid = "";
  684. // if (flag =="") return;
  685. vTemp = model.getValue("/root/main/rghtref/dnorno");
  686. var vsrchcond = "1";
  687. //dnorno
  688. model.removenode("/root/temp");
  689. model.makeValue("/root/temp/srchcond", vsrchcond);
  690. model.makeValue("/root/temp/dnorno", vTemp);
  691. model.makeValue("/root/temp/autoflag", "Y"); //Y:조회 내역이 1건일 경우 자동 화면 닫기
  692. //NON:조회 내역이 없을 경우 자동 화면 닫기
  693. //dnornm
  694. if ( vTemp.isNumber() != true ) {
  695. vsrchcond = "2";
  696. model.removenode("/root/temp");
  697. model.makeValue("/root/temp/srchcond", vsrchcond);
  698. model.makeValue("/root/temp/dnornm", vTemp);
  699. model.makeValue("/root/temp/autoflag", "Y");
  700. }
  701. //팝업조건설정
  702. modal("SPMNA02000", "1","150", "150", "SPMNA02000", "/root/temp", "/root/send");
  703. //리턴값
  704. if (model.getValue("/root/main/popupendflag") == "ok") {
  705. var idnorno = model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnorno");
  706. var idnornm = model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnornm");
  707. var irrgstno = model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnorrrgstno1") +
  708. model.getValue("/root/main/dnorpopinfo/dnorpoplist/dnorrrgstno2") ;
  709. model.setValue("/root/main/rghtref/dnorno", idnorno );
  710. model.setValue("/root/main/rghtref/dnornm", idnornm );
  711. model.setValue("/root/main/rghtref/dnorrrgstno",irrgstno );
  712. model.refresh();
  713. //조회값이 존재하면 자동으로 조회함
  714. fdnorselt();
  715. }
  716. }
  717. /*
  718. * 엑셀출력
  719. */
  720. function fExcel(){
  721. var pGrd = datagrid8;
  722. if (pGrd.rows > pGrd.fixedrows ) {
  723. var fileName = window.fileDialog("save", ",", false, "공여자리스트_"+getCurrentDate(), "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  724. if (fileName != "") {
  725. //1번true : 숨긴 row에 대한 display(true)
  726. //2번true : 숨긴 col에 대한 display(true)
  727. //false : 콤보에서 label값을 기록(false)
  728. pGrd.saveExcel(fileName, "SheetName", false, false, "", "", false);
  729. messageBox("엑셀저장이 ", "I002", ""); //I002 : 완료되었습니다.
  730. }
  731. } else {
  732. messageBox("자료가 존재하지 않습니다.", "E999", "");
  733. }
  734. }
  735. /*
  736. 공여자 신규 등록
  737. */
  738. function fDnorInsert() {
  739. //model.resetInstanceNode("/root/main/dnorprcpinfo/dnorprcp");
  740. //model.removeNodeset("/root/main/dnorprcpinfo/dnorprcplist");
  741. //resetInstanceNode
  742. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  743. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  744. model.resetInstanceNode("/root/main/rghtref"); //조회항목 CLEAR
  745. model.resetInstanceNode("/root/main/dnorprcpinfo/dnorprcp"); //입력항목 CLEAR
  746. model.refresh();
  747. alert("공여자를 신규로 입력합니다");
  748. model.setfocus("inp_inrrgstno1");
  749. }
  750. //--------------------------
  751. // 컨트롤focusin backcolor
  752. //--------------------------
  753. function ffocusInBackColor() {
  754. var Control = document.all.item(event.currentTarget);
  755. Control.attribute("background-color") = focusInBackColor;
  756. }
  757. function ffocusOutBackColor() {
  758. var Control = document.all.item(event.currentTarget);
  759. Control.attribute("background-color") = focusOutBackColor;
  760. }