SMLBD00700.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  1. /*
  2. 공여자문진(SMLBD00700.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. //-----------------------------------
  7. // 화면 호출시
  8. //-----------------------------------
  9. var focusInBackColor = "#ffcc99";
  10. var focusOutBackColor = "#ffffff";
  11. function finit() {
  12. model.setValue("/root/main/dnorinqrinfo/dnorprcp/testdd", getCurrentDate());
  13. model.removeNodeset("/root/main/patmapinfo/patmap");
  14. model.removeNodeset("/root/main/dnorinfo/inqrlist");
  15. model.removeNodeset("/root/main/dnorinqrinfo/donlist");
  16. fcode();
  17. zbcfGetCodeList(new Array("M0376"), new Array("/root/init/M0376list")); //혈액형
  18. fGetPatinfo();
  19. }
  20. //--------------------------
  21. // 컨트롤focusin backcolor
  22. //--------------------------
  23. function ffocusInBackColor() {
  24. var Control = document.all.item(event.currentTarget);
  25. Control.attribute("background-color") = focusInBackColor;
  26. }
  27. function ffocusOutBackColor() {
  28. var Control = document.all.item(event.currentTarget);
  29. Control.attribute("background-color") = focusOutBackColor;
  30. }
  31. //--------------------------
  32. // 상단정보 내리기
  33. //--------------------------
  34. function fGetPatinfo() {
  35. var sPath = "/root/main/paminfo";
  36. //설정된 상단정보를 불러옴
  37. var node = getGlobalVariable("paminfo");
  38. if (node !=null) {
  39. model.makeNode(sPath);
  40. setCSVToNode(sPath, node);
  41. var pid, indd, cretno, mskind, histstat;
  42. pid = model.getValue(sPath +"/list/pid");
  43. //patinfo 정보 셋팅
  44. if ( !isNull(pid) ) {
  45. model.setValue("/root/main/leftref/code1" , "1");
  46. model.setValue("/root/main/leftref/code2" , "1");
  47. model.setValue("/root/main/leftref/codedata", model.getValue(sPath +"/list/pid") );
  48. fpatmapsel();
  49. }
  50. }
  51. }
  52. /**
  53. * @group :
  54. * @ver : 2007.12.28
  55. * @by : 신혁춘
  56. * @---------------------------------------------------
  57. * @type : function
  58. * @access : public
  59. * @desc : 공통코드 조회
  60. * @param :
  61. * @return :
  62. * @---------------------------------------------------
  63. */
  64. function fcode(flag){
  65. submit("TRLBD00701")
  66. }
  67. /**
  68. * @group :
  69. * @ver : 2007.12.28
  70. * @by : 신혁춘
  71. * @---------------------------------------------------
  72. * @type : function
  73. * @access : public
  74. * @desc : Mapping 정보 조회
  75. * @param :
  76. * @return :
  77. * @---------------------------------------------------
  78. */
  79. function fpatmapsel(flag){
  80. var cond1 = model.getValue("/root/main/leftref/code1");
  81. var cond2 = model.getValue("/root/main/leftref/code2");
  82. var conddata = model.getValue("/root/main/leftref/codedata");
  83. if(conddata.length==0){
  84. messageBox("검색할 값을", "C001");
  85. return;
  86. }
  87. if(cond2 == "2"){
  88. if(conddata.length<6){
  89. if(conddata.length==0){
  90. }else{
  91. messageBox("최소6자 이상", "C001");
  92. return;
  93. }
  94. }
  95. }
  96. if(cond2 == "3"){
  97. if(conddata.length<2){
  98. if(conddata.length==0){
  99. return;
  100. }else{
  101. messageBox("최소2자 이상", "C001");
  102. return;
  103. }
  104. }
  105. }
  106. model.removeNodeset("/root/send");
  107. model.makeValue("/root/send/code1",model.getValue("/root/main/leftref/code1"));
  108. model.makeValue("/root/send/code2",model.getValue("/root/main/leftref/code2"));
  109. model.makeValue("/root/send/codedata",conddata);
  110. submit("TRLBD00702")
  111. }
  112. /**
  113. * @group :
  114. * @ver : 2007.12.28
  115. * @by : 신혁춘
  116. * @---------------------------------------------------
  117. * @type : function
  118. * @access : public
  119. * @desc : 공여자 문진내역 조회
  120. * @param :
  121. * @return :
  122. * @---------------------------------------------------
  123. */
  124. function fdnorsel(flag){
  125. var iRow = datagrid1.row - 1
  126. var xPatMap = "/root/main/patmapinfo/patmap";
  127. model.removeNodeset("/root/send");
  128. model.makeValue("/root/send/tnsrpid",model.getValue(xPatMap+"["+iRow+"]/tnsrpid"));
  129. model.makeValue("/root/send/dnorno",model.getValue(xPatMap+"["+iRow+"]/dnorno"));
  130. model.makeValue("/root/send/dnorseqno",model.getValue(xPatMap+"["+iRow+"]/dnorseqno"));
  131. submit("TRLBD00703")
  132. resetfunc();
  133. }
  134. /**7
  135. * @group :
  136. * @ver : 2007.12.29
  137. * @by : 신혁춘
  138. * @---------------------------------------------------
  139. * @type : function
  140. * @access : public
  141. * @desc : 문진내역 조회후 기록정보 세팅
  142. * @param :
  143. * @return :
  144. * @---------------------------------------------------
  145. */
  146. function resetfunc(){
  147. model.resetInstanceNode("/root/main/dnorinqrinfo/dnorprcp");
  148. model.removeNodeset("/root/main/dnorinqrinfo/donlist");
  149. model.refresh();
  150. var irow = datagrid1.row - 1;
  151. model.setValue("/root/main/dnorinqrinfo/dnorprcp/tnsrpid", model.getValue("/root/main/patmapinfo/patmap[" + irow + "]/tnsrpid"));
  152. model.setValue("/root/main/dnorinqrinfo/dnorprcp/tnsrnm", model.getValue("/root/main/patmapinfo/patmap[" + irow + "]/tnsrnm"));
  153. model.setValue("/root/main/dnorinqrinfo/dnorprcp/dnorno", model.getValue("/root/main/patmapinfo/patmap[" + irow + "]/dnorno"));
  154. model.setValue("/root/main/dnorinqrinfo/dnorprcp/dnorseqno", model.getValue("/root/main/patmapinfo/patmap[" + irow + "]/dnorseqno"));
  155. model.setValue("/root/main/dnorinqrinfo/dnorprcp/btype", model.getValue("/root/main/dnorinfo/dnordetl/btype"));
  156. model.setValue("/root/main/dnorinqrinfo/dnorprcp/tnsrabo", "-");
  157. model.setValue("/root/main/dnorinqrinfo/dnorprcp/tnsrrh", "-");
  158. model.setValue("/root/main/dnorinqrinfo/dnorprcp/bpjudg", "1");
  159. model.setValue("/root/main/dnorinqrinfo/dnorprcp/bptpjudg", "1");
  160. model.setValue("/root/main/dnorinqrinfo/dnorprcp/pulsejudg", "1");
  161. model.setValue("/root/main/dnorinqrinfo/dnorprcp/blodjudg", "1");
  162. model.setValue("/root/main/dnorinqrinfo/dnorprcp/hemogjudg", "1");
  163. model.setValue("/root/main/dnorinqrinfo/dnorprcp/bplateletjudg","1");
  164. model.setValue("/root/main/dnorinqrinfo/dnorprcp/pasttotprotjudg", "1");
  165. model.setValue("/root/main/dnorinqrinfo/dnorprcp/agejudg", "1");
  166. model.setValue("/root/main/dnorinqrinfo/dnorprcp/tnsrrh", "+");
  167. model.setValue("/root/main/dnorinqrinfo/dnorprcp/inqrdd", getCurrentDate());
  168. model.setValue("/root/main/dnorinqrinfo/dnorprcp/ingrtm", getCurrentTime());
  169. model.setValue("/root/main/dnorinqrinfo/dnorprcp/ingrrid", getUserId());
  170. model.setValue("/root/main/dnorinqrinfo/dnorprcp/recrid", getUserId());
  171. model.setValue("/root/main/dnorinqrinfo/dnorprcp/recnm", getUserName());
  172. model.setValue("/root/main/dnorinqrinfo/dnorprcp/recdd", getCurrentDate());
  173. model.setValue("/root/main/dnorinqrinfo/dnorprcp/rectm", getCurrentTime());
  174. model.setValue("/root/main/dnorinqrinfo/dnorprcp/iudgb", "I");
  175. //----------------(20080204)
  176. model.setValue("/root/main/dnorinqrinfo/dnorprcp/testdd", getCurrentDate());
  177. model.setValue("/root/main/dnorinqrinfo/dnorprcp/patrela", "2");
  178. model.setValue("/root/main/dnorinqrinfo/dnorprcp/donflag", "2");
  179. //----------------
  180. case1.disabled = false;
  181. model.setFocus("inp_testdd");
  182. model.refresh();
  183. }
  184. /**
  185. * @group :
  186. * @ver : 2007.12.29
  187. * @by : 신혁춘
  188. * @---------------------------------------------------
  189. * @type : function
  190. * @access : public
  191. * @desc : 기록정보 저장
  192. * @param :
  193. * @return :
  194. * @---------------------------------------------------
  195. */
  196. function fSave(){
  197. //----------------(20080204)
  198. // 필수입력사항 체크
  199. // var sPath = "/root/main/dnorinqrinfo/dnorprcp";
  200. // if (model.getValue(sPath + "/testdd") == "") {
  201. // messageBox("검사일자가 존재하지 않습니다.", "E999", "");
  202. // return;
  203. // }
  204. var xPath = "/root/main/dnorinqrinfo/dnorprcp";
  205. var nNode = model.instances(0).selectSingleNode(xPath);
  206. var max = nNode.childNodes.length;
  207. for (var idx=0;idx<max;idx++) {
  208. var obj = nNode.childNodes(idx);
  209. var objNm = obj.nodeName;
  210. var chkflag = false;
  211. //필수체크항목리스트
  212. switch (objNm) {
  213. case "recrid":
  214. case "recnm":
  215. case "recdd":
  216. case "rectm":
  217. case "testdd":
  218. case "btype":
  219. case "tnsrabo":
  220. case "tnsrrh":
  221. case "patrela":
  222. //case "patrelachon":
  223. case "doncareryn":
  224. //case "rectdondd":
  225. case "donflag":
  226. case "donkind":
  227. case "comdon":
  228. case "donrefrslt":
  229. case "donchfmmthd":
  230. //case "etcresn":
  231. case "bpnval1":
  232. case "bpnval2":
  233. case "bpjudg":
  234. case "bdtpnval":
  235. case "bptpjudg":
  236. case "pulsenval":
  237. case "pulsejudg":
  238. case "blodnval":
  239. case "blodjudg":
  240. case "hemognval":
  241. case "hemogjudg":
  242. case "bplateletnval":
  243. case "bplateletjudg":
  244. case "pasttotprotnval":
  245. case "pasttotprotjudg":
  246. case "agenval":
  247. case "agejudg":
  248. if (model.getValue(xPath + "/" + objNm) == "") {
  249. chkflag = true;
  250. break;
  251. }
  252. }
  253. if (chkflag == true) {
  254. messageBox("필수입력사항입니다.", "E999", "");
  255. var objContNm = fControlFind(xPath + "/" + objNm);
  256. if (objContNm != "") {
  257. model.setFocus(objContNm);
  258. }
  259. return;
  260. }
  261. // alert(obj.text,obj.xml,obj.nodeName );
  262. }
  263. // alert("저장확인");
  264. // return;
  265. //----------------
  266. model.removeNodeset("/root/send");
  267. model.makenode("/root/send/dnorprcp")
  268. model.copyNode("/root/send/dnorprcp", "/root/main/dnorinqrinfo/dnorprcp");
  269. model.makeValue("/root/send/donlist",datagrid2.getUpdateDataAll("i"));
  270. if (submit("TXLBD00701")){
  271. var dayt = model.getValue("/root/main/dnorinqrinfo/dnorprcp/recdd");
  272. var timet = model.getValue("/root/main/dnorinqrinfo/dnorprcp/rectm");
  273. var gs = dayt+timet
  274. fdnorsel();
  275. fdnorprcpsel(gs)
  276. }
  277. }
  278. //---------------------
  279. // control 찾기
  280. //---------------------
  281. function fControlFind(xPath) {
  282. var childObjCnt = document.controls.length;
  283. var childObj;
  284. for (var i=0; i < childObjCnt; i++) {
  285. childObj = document.controls.item(i);
  286. var ref = childObj.attribute("ref");
  287. if (ref == xPath) {
  288. return childObj.attribute("id");
  289. break;
  290. }
  291. }
  292. return "";
  293. }
  294. //---------------------
  295. /**
  296. * @group :
  297. * @ver : 2007.12.29
  298. * @by : 신혁춘
  299. * @---------------------------------------------------
  300. * @type : function
  301. * @access : public
  302. * @desc : 기록정보 조회
  303. * @param :
  304. * @return :
  305. * @---------------------------------------------------
  306. */
  307. function fdnorprcpsel(flag){
  308. var xInqrList = "/root/main/dnorinfo/inqrlist";
  309. if(flag != null){
  310. var Row = datagrid4.rows;
  311. for(i=0; i<Row; i++){
  312. var tt = model.getValue(xInqrList+"["+i+"]/inqrddtm")
  313. if(flag == tt){
  314. var iRow = i
  315. break;
  316. }
  317. }
  318. }else{
  319. var iRow = datagrid4.row;
  320. }
  321. model.removeNodeset("/root/send");
  322. model.makeValue("/root/send/tnsrpid", model.getValue(xInqrList+"["+iRow+"]/tnsrpid"));
  323. model.makeValue("/root/send/dnorno", model.getValue(xInqrList+"["+iRow+"]/dnorno"));
  324. model.makeValue("/root/send/dnorseqno", model.getValue(xInqrList+"["+iRow+"]/dnorseqno"));
  325. model.makeValue("/root/send/seqno", model.getValue(xInqrList+"["+iRow+"]/seqno"));
  326. if (submit("TRLBD00704")){
  327. }
  328. }
  329. /**
  330. * @group :
  331. * @ver : 2007.12.29
  332. * @by : 신혁춘
  333. * @---------------------------------------------------
  334. * @type : function
  335. * @access : public
  336. * @desc : 기록정보 삭제
  337. * @param :
  338. * @return :
  339. * @---------------------------------------------------
  340. */
  341. function fdel(){
  342. model.removeNodeset("/root/send");
  343. model.makenode("/root/send/dnorprcp")
  344. model.copyNode("/root/send/dnorprcp", "/root/main/dnorinqrinfo/dnorprcp");
  345. if (submit("TXLBD00702")){
  346. fdnorsel();
  347. }
  348. }
  349. // --------------------------------------------------
  350. // 오른쪽 마우스버튼
  351. // --------------------------------------------------
  352. function fnonmousedown() {
  353. var pGrd = datagrid1;
  354. pGrd.row = pGrd.mouseRow;
  355. if (pGrd.rows <= 1 || pGrd.row <= 0 ) return;
  356. fShowPopupMenu("datagrid1","/root/main/menuitems/inmenu/item");
  357. /*
  358. if (model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/pid")== "") return;
  359. var colnm = grd_dscList.valueMatrix(0, grd_dscList.mouseCol);
  360. var tmpcareinrmdd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/tmpcareinrmdd");
  361. var oppatflagcd = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/oppatflagcd");
  362. colnm = colnm.substring(0,2);
  363. var sdschdd1 = model.getValue( "/root/main/dsc/dscList["+grd_dscList.mouseRow+"]/dschdd");
  364. sdschdd1 = sdschdd1.replace("-","");
  365. sdschdd1 = sdschdd1.substring(0,1);
  366. //---(수술환자+angio(수술정보없음)
  367. // if(oppatflagcd=="D"&&colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  368. // fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  369. // }else {
  370. // fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  371. // }
  372. if (rdo_dscflag.value == "D") {
  373. //if(colnm== "입실"&&tmpcareinrmdd.substring(0,1)=="-") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  374. if(colnm== "입실") { // DSC 환자, 입실시각칼럼, 입실시각이 적용되지 않은 경우("-")에만 입실시각 메뉴 나타나도록
  375. fShowPopupMenu("grd_dscList","/root/main/menuitems/inmenu/item");
  376. }else {
  377. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  378. }
  379. } else {
  380. fShowPopupMenu("grd_dscList","/root/main/menuitems/grdmenu/item");
  381. }
  382. */
  383. }
  384. // --------------------------------------------------
  385. // 팝업메뉴
  386. // --------------------------------------------------
  387. function fShowPopupMenu(gridID, menuPath)
  388. {
  389. var gridObj = document.controls.item(gridID);
  390. if(event.button == 3) {
  391. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  392. window.setPopupMenu(true, menuPath, "name", "func", false);
  393. }else{
  394. window.setPopupMenu(false);
  395. }
  396. }
  397. }
  398. //-------------------------------------
  399. // 오른쪽 마우스 호출되는 팝업둑ENR
  400. //-------------------------------------
  401. function fSetPopup01() {
  402. //상단올리기
  403. fSetPatInfo();
  404. modal("SMLBD01300", "", "", "", "", "", ""); //공여자처방입력
  405. }
  406. function fSetPopup02() {
  407. //상단올리기
  408. fSetPatInfo();
  409. modal("SMLBD00600", "", "", "", "", "", ""); //공여자등록
  410. }
  411. function fSetPopup03() {
  412. //상단올리기
  413. fSetPatInfo();
  414. modal("SMMRF02300", "", "", "", "", "", ""); //ocr서식지출력
  415. }
  416. function fSetPopup04() {
  417. //상단올리기
  418. fSetPatInfo();
  419. modal("SMLBD00900", "", "", "", "", "", ""); //검사결과판정조회
  420. }
  421. // --------------------------------------------------
  422. // 상단환자정보세팅하기
  423. // --------------------------------------------------
  424. function fSetPatInfo()
  425. {
  426. return;
  427. var pGrd = datagrid1;
  428. if (pGrd.rows <=1 || pGrd.row <= 0) return;
  429. var sPath = "/root/main/patmapinfo/patmap["+ pGrd.row+"]" ;
  430. //우측마우스버튼클릭시도 상단올릴수 있도록
  431. // var sChk = model.getValue(sPath + "/flag"); //선택된자료만
  432. // if (sChk != "1") return;
  433. var siogb = model.getValue(sPath + "/iogb");
  434. if (siogb == "입원") siogb = "I";
  435. if (siogb == "외래") siogb = "O";
  436. if (siogb == "") {
  437. messageBox("접수정보가 없습니다.", "E999", "");
  438. return;
  439. }
  440. var pid = model.getValue(sPath + "/pid");
  441. var orddd = model.getValue(sPath + "/orddd");
  442. var cretno = model.getValue(sPath + "/cretno");
  443. var instcd = getUserInfo("dutplceinstcd");
  444. var param = siogb + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
  445. setParameter("condparam", param);
  446. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  447. /*
  448. var useyn = getParameter("SPMMO08900_rtn_useyn");
  449. if(useyn == "Y"){
  450. setParameter("SPMMO08900_rtn_useyn", "");
  451. fInitPamInfo(); //화면 기본 정보 설정
  452. }else{
  453. return;
  454. }
  455. */
  456. }
  457. //------------------------
  458. // 혈액 부적격 항목 내역 row 추가
  459. //------------------------
  460. function fAddRow() {
  461. datagrid2.addRow();
  462. var irow = datagrid2.row;
  463. var irow1 = datagrid1.row - 1;
  464. model.setValue("/root/main/dnorinqrinfo/donlist[" + irow + "]/tnsrpid", model.getValue("/root/main/patmapinfo/patmap[" + irow1 + "]/tnsrpid"));
  465. model.setValue("/root/main/dnorinqrinfo/donlist[" + irow + "]/dnorno", model.getValue("/root/main/patmapinfo/patmap[" + irow1 + "]/dnorno"));
  466. model.setValue("/root/main/dnorinqrinfo/donlist[" + irow + "]/dnorseqno", model.getValue("/root/main/patmapinfo/patmap[" + irow1 + "]/dnorseqno"));
  467. model.refresh();
  468. //첫번째 컴럼으로 이동하고 입력모드이벤트를 호출함
  469. datagrid2.col= datagrid2.colRef("disqitemno");
  470. datagrid2.dispatch("onentercell");
  471. }
  472. //------------------------
  473. // 혈액 부적격 항목 내역 row 삭제
  474. //------------------------
  475. function fDeleteRow() {
  476. datagrid2.deleteItem(datagrid2.row);
  477. }
  478. //------------------------
  479. // 혈액 부적격 항목 입력 모드 설정(onentercell이벤트에서 호출)
  480. //------------------------
  481. function fEditMode() {
  482. //그리드 입력사항이면 edit 모드로 설정함
  483. if( datagrid2.colType(datagrid2.col) == "input" ) {
  484. datagrid2.editCell();
  485. }
  486. var colref = datagrid2.colAttribute(datagrid2.col,"ref");
  487. switch (colref) {
  488. case "disqdetlresn":
  489. datagrid2.colAttribute(datagrid2.col, "imemode") ="hangul"; //한글설정
  490. break;
  491. }
  492. }