SMMNP00800.js 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887
  1. /* ---------------------------------------------------------------------
  2. 회복기록 사항(SMMNP00300.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By 김 진 명
  6. : 2008.04.28
  7. ---------------------------------------------------------------------- */
  8. /* --------------------------------------------------*/
  9. /* type : function */
  10. /* access : public */
  11. /* desc : 수술실간호기록/수술료 마감화면 초기화 */
  12. /* param : */
  13. /* return : */
  14. /* --------------------------------------------------*/
  15. function fInit() {
  16. var param = getScreenMenuParameter();
  17. if( param == "G"||param == "g" ) {
  18. bbt_tSave.disible = "true";
  19. button1.disible = "true";
  20. button2.disible = "true";
  21. button3.disible = "true";
  22. }
  23. var curtDate = getCurrentDate();
  24. curtDate = curtDate.substr(0, 8);
  25. model.setValue("/root/main/cond/opfromdd", curtDate);
  26. model.setValue("/root/main/cond/optodd" , curtDate);
  27. var dutplceinstcd = getUserInfo("dutplceinstcd");
  28. if( dutplceinstcd == "014" ) {
  29. chk_dcc.visible = true;
  30. chk_dsc.visible = false;
  31. }else {
  32. chk_dcc.visible = false;
  33. chk_dsc.visible = true;
  34. }
  35. grp_oplist.visible = "true";
  36. grp_anstlist.visible = "false";
  37. submit("TRMNP03004", false);
  38. //submit("TRMNP03401"); // 수술방가져오기
  39. //removeComboItem("cmb_oproomlist");
  40. addComboItem("cmb_rosette", "전 체", "", "above" );
  41. model.removenode("/root/send");
  42. model.makeNode("/root/send");
  43. model.makeValue("/root/send/reqdata/opcnfmdd" ,model.getValue("/root/main/cond/opfromdd") );
  44. model.makeValue("/root/send/reqdata/rosette" ,model.getValue("/root/main/cond/oprosette"));
  45. submit("TRMNP03002", false); // 수술실코드 가져오기
  46. addComboItem("cmb_oproomlist","전체","","above");
  47. grd_anstlist.explorerbar = "sort";
  48. grd_oplist.explorerbar = "sort";
  49. grd_anstlist.fixedcellcheckbox(0,1) = true; //그리드 헤더에 체크버튼 추가
  50. grd_anstlist.fixedcellcheckbox(0,3) = true; //그리드 헤더에 체크버튼 추가
  51. grd_anstlist.fixedcellcheckbox(0,5) = true; //그리드 헤더에 체크버튼 추가
  52. grd_oplist.fixedcellcheckbox(0,1) = true; //그리드 헤더에 체크버튼 추가
  53. grd_oplist.fixedcellcheckbox(0,3) = true; //그리드 헤더에 체크버튼 추가
  54. model.removenode("/root/main/oprecinfo/opendlist");
  55. model.removenode("/root/main/anstrecinfo/anstendlist");
  56. model.refresh();
  57. }
  58. /* --------------------------------------------------*/
  59. /* type : function */
  60. /* access : public */
  61. /* desc : 콤보아이템 제거 */
  62. /* param : */
  63. /* return : */
  64. /* --------------------------------------------------*/
  65. function removeComboItem( comboID ) {
  66. var comboObj = document.all.item(comboID);
  67. var comboItemNodeSet = comboObj.choices.itemset.attribute("nodeset");
  68. model.removenode(comboItemNodeSet + "[1]");
  69. model.refresh();
  70. }
  71. /* --------------------------------------------------*/
  72. /* type : function */
  73. /* access : public */
  74. /* desc : 수술실간호기록/수술료 조회 */
  75. /* param : */
  76. /* return : */
  77. /* --------------------------------------------------*/
  78. function fSearch() {
  79. var optypeflag1 = model.getValue("/root/main/cond/optypeflag1");
  80. var optypeflag2 = model.getValue("/root/main/cond/optypeflag2");
  81. var optypeflag3 = model.getValue("/root/main/cond/optypeflag3");
  82. if( ( optypeflag1 == "1" )&&( optypeflag2 == "2" )&&( optypeflag3 == "3" ) ) {
  83. model.setValue("/root/main/cond/optypeflag", "7");//정규, 응급, 추가
  84. }else if( ( optypeflag1 == "1" )&&( optypeflag2 == "2" ) ) {
  85. model.setValue("/root/main/cond/optypeflag", "4");//정규, 응급
  86. }else if( ( optypeflag1 == "1" )&&( optypeflag3 == "3" ) ) {
  87. model.setValue("/root/main/cond/optypeflag", "5");//정규, 추가
  88. }else if( ( optypeflag2 == "2" )&&( optypeflag3 == "3" ) ) {
  89. model.setValue("/root/main/cond/optypeflag", "6");//응급, 추가
  90. }else if( optypeflag1 == "1" ) {
  91. model.setValue("/root/main/cond/optypeflag", "1");//정규
  92. }else if( optypeflag2 == "2" ) {
  93. model.setValue("/root/main/cond/optypeflag", "2");//응급
  94. }else if( optypeflag3 == "3" ) {
  95. model.setValue("/root/main/cond/optypeflag", "3");//추가
  96. }
  97. var ioflag1 = model.getValue("/root/main/cond/ioflag1");//DSC/DCC
  98. var ioflag2 = model.getValue("/root/main/cond/ioflag2");//병실
  99. var ioflag3 = model.getValue("/root/main/cond/ioflag3");//ER
  100. var ioflag4 = model.getValue("/root/main/cond/ioflag4");//외래
  101. var ioflag;
  102. if( ioflag1 != "" ) {
  103. if( ioflag == "" ) {
  104. ioflag = "'" + ioflag1 + "'";
  105. }else {
  106. ioflag = ioflag + ", '" + ioflag1 + "'";
  107. }
  108. }
  109. if( ioflag2 != "" ) {
  110. if( ioflag == "" ) {
  111. ioflag = "'" + ioflag2 + "'";
  112. }else {
  113. ioflag = ioflag + ", '" + ioflag2 + "'";
  114. }
  115. }
  116. if( ioflag3 != "" ) {
  117. if( ioflag == "" ) {
  118. ioflag = "'" + ioflag3 + "'";
  119. }else {
  120. ioflag = ioflag + ", '" + ioflag3 + "'";
  121. }
  122. }
  123. if( ioflag4 != "" ) {
  124. if( ioflag == "" ) {
  125. ioflag = "'" + ioflag4 + "'";
  126. }else {
  127. ioflag = ioflag + ", '" + ioflag4 + "'";
  128. }
  129. }
  130. model.removenode("/root/send");
  131. model.makeNode("/root/send/reqdata");
  132. model.copyNode("/root/send/reqdata", "/root/main/cond");
  133. model.makeValue("/root/send/reqdata/instcd", getUserInfo("dutplceinstcd"));
  134. var deptflag = model.getValue("/root/main/cond/deptflag");
  135. if( deptflag == "O" ) {//수술
  136. submit("TRMNP00801");
  137. }else { //마취, 회복
  138. submit("TRMNP00802");
  139. }
  140. }
  141. /* --------------------------------------------------*/
  142. /* type : function */
  143. /* access : public */
  144. /* desc : 수술실간호기록/수술료 마감완료 */
  145. /* param : */
  146. /* return : */
  147. /* --------------------------------------------------*/
  148. function fEndPrcpRec() {
  149. var iRows = -1, iNode = "";
  150. var chkflag, oprsrvno, opprcpchk = "false", oprecchk = "false", prcpendflag = "0", recendflag = "0", flagValue1 = "0", flagValue2 = "0";
  151. var anstprcpchk = "false", recovprcprchk = "false", recovrecchk = "false";
  152. var cnt = 0, cnt2 = 0;
  153. var deptflag = model.getValue("/root/main/cond/deptflag");
  154. if( deptflag == "O" ) {
  155. iRows = grd_oplist.rows;
  156. iNode = "/root/main/oprecinfo/opendlist[";
  157. }else {
  158. iRows = grd_anstlist.rows;
  159. iNode = "/root/main/anstrecinfo/anstendlist[";
  160. }
  161. var prcpendlist = "oprsrvno▦prcpendflag";
  162. var recendlist = "oprsrvno▦recendflag";
  163. for( var i = 1; i <= iRows; i++ ) {
  164. if( deptflag == "O" ) {
  165. oprecchk = model.getValue(iNode + i + "]/oprecchk");//수술기록
  166. opprcpchk = model.getValue(iNode + i + "]/opprcpchk");//수술간호처방
  167. oprsrvno = model.getValue(iNode + i + "]/oprsrvno") ;
  168. prcpendflag = model.getValue(iNode + i + "]/prcpendflag");
  169. recendflag = model.getValue(iNode + i + "]/recendflag");
  170. if( opprcpchk == "true" ) {
  171. cnt += 1;
  172. flagValue1 = fEndPrcpFlagRtn(prcpendflag, "1");//플래값 체크(1:수술, 2:마취, 3:회복, 4:수술/마취, 5:수술/회복, 6:마취/회복, 7:수술/마취/회복)
  173. prcpendlist = prcpendlist + "▩" + oprsrvno + "▦" + flagValue1;
  174. }
  175. if( oprecchk == "true" ) {
  176. cnt2 += 1;
  177. flagValue2 = fEndRecFlagRtn(recendflag, "1");//플래값 체크(1:수술, 2:회복, 3:수술/회복
  178. recendlist = recendlist + "▩" + oprsrvno + "▦" + flagValue2;
  179. }
  180. }else if( deptflag == "A" ){
  181. anstprcpchk = model.getValue(iNode + i + "]/anstprcpchk");//마취간호처방
  182. oprsrvno = model.getValue(iNode + i + "]/oprsrvno");
  183. prcpendflag = model.getValue(iNode + i + "]/prcpendflag");
  184. recendflag = model.getValue(iNode + i + "]/recendflag");
  185. if( anstprcpchk == "true" ) {
  186. cnt += 1;
  187. flagValue1 = fEndPrcpFlagRtn(prcpendflag, "1");//플래값 체크(1:수술, 2:마취, 3:회복, 4:수술/마취, 5:수술/회복, 6:마취/회복, 7:수술/마취/회복)
  188. prcpendflag = flagValue1;
  189. prcpendlist = prcpendlist + "▩" + oprsrvno + "▦" + flagValue1;
  190. }
  191. }else if( deptflag == "R" ) {
  192. recovprcprchk = model.getValue(iNode + i + "]/recovprcprchk");//회복실간호처방
  193. recovrecchk = model.getValue(iNode + i + "]/recovrecchk");//회복실기록
  194. oprsrvno = model.getValue(iNode + i + "]/oprsrvno");
  195. prcpendflag = model.getValue(iNode + i + "]/prcpendflag");
  196. recendflag = model.getValue(iNode + i + "]/recendflag");
  197. if( recovrecchk == "true" ) {
  198. cnt2 += 1;
  199. flagValue2 = fEndRecFlagRtn(recendflag, "1");//플래값 체크(1:수술, 2:회복, 3:수술/회복
  200. recendlist = recendlist + "▩" + oprsrvno + "▦" + flagValue2;
  201. }
  202. if( recovprcprchk == "true" ) {
  203. cnt += 1;
  204. flagValue1 = fEndPrcpFlagRtn(prcpendflag, "1");//플래값 체크(1:수술, 2:마취, 3:회복, 4:수술/마취, 5:수술/회복, 6:마취/회복, 7:수술/마취/회복)
  205. prcpendlist = prcpendlist + "▩" + oprsrvno + "▦" + flagValue1;
  206. }
  207. }
  208. }
  209. model.removenode("/root/send");
  210. if( ( cnt + cnt2 ) > 0 ) {
  211. if( cnt > 0 ) {//처방
  212. model.makeNode("/root/send/prcpenddata");
  213. model.setValue("/root/send/prcpenddata", prcpendlist);
  214. submit("TXMNP00801", false);
  215. }
  216. if( cnt2 > 0 ) {//기록
  217. model.makeNode("/root/send/recenddata");
  218. model.setValue("/root/send/recenddata", recendlist);
  219. submit("TXMNP00802", false);
  220. }
  221. fSearch();
  222. }else {
  223. messageBox("선택한것이 ", "I004");
  224. }
  225. }
  226. /* --------------------------------------------------*/
  227. /* type : function */
  228. /* access : public */
  229. /* desc : 수술실간호기록/수술료 간호처방 체크 */
  230. /* param : flag 현재 마감 플래그 값 */
  231. /* param : callflag 1:마감완료, 2:마감취소 */
  232. /* return : flagValue 새로운 플래그 값 */
  233. /* --------------------------------------------------*/
  234. function fEndPrcpFlagRtn(flag, callflag) {
  235. var flagValue = "0"
  236. var deptflag = model.getValue("/root/main/cond/deptflag");
  237. if( callflag == "1" ) {//마감완료
  238. switch(flag) {
  239. case "0" :
  240. if( deptflag == "O" ){//수술
  241. flagValue = "1";
  242. }else if( deptflag == "A" ){//마취
  243. flagValue = "2";
  244. }else if( deptflag == "R" ){//회복
  245. flagValue = "3";
  246. }
  247. break;
  248. case "1" :
  249. if( deptflag == "O" ){//수술
  250. flagValue = "1";
  251. }else if( deptflag == "A" ){//마취
  252. flagValue = "4";
  253. }else if( deptflag == "R" ){//회복
  254. flagValue = "5";
  255. }
  256. break;
  257. case "2" :
  258. if( deptflag == "O" ){//수술
  259. flagValue = "4";
  260. }else if( deptflag == "A" ){//마취
  261. flagValue = "2";
  262. }else if( deptflag == "R" ){//회복
  263. flagValue = "6";
  264. }
  265. break;
  266. case "3" :
  267. if( deptflag == "O" ){//수술
  268. flagValue = "5";
  269. }else if( deptflag == "A" ){//마취
  270. flagValue = "6";
  271. }else if( deptflag == "R" ){//회복
  272. flagValue = "3";
  273. }
  274. break;
  275. case "4" :
  276. if( deptflag == "O" ){//수술
  277. flagValue = "4";
  278. }else if( deptflag == "A" ){//마취
  279. flagValue = "4";
  280. }else if( deptflag == "R" ){//회복
  281. flagValue = "7";
  282. }
  283. break;
  284. case "5" :
  285. if( deptflag == "O" ){//수술
  286. flagValue = "5";
  287. }else if( deptflag == "A" ){//마취
  288. flagValue = "7";
  289. }else if( deptflag == "R" ){//회복
  290. flagValue = "5";
  291. }
  292. break;
  293. case "6" :
  294. if( deptflag == "O" ){//수술
  295. flagValue = "7";
  296. }else if( deptflag == "A" ){//마취
  297. flagValue = "6";
  298. }else if( deptflag == "R" ){//회복
  299. flagValue = "6";
  300. }
  301. break;
  302. case "7" :
  303. flagValue = "7";
  304. break;
  305. }
  306. }else {//마감취소
  307. switch(flag) {
  308. case "0" :
  309. if( deptflag == "O" ){//수술
  310. flagValue = "0";
  311. }else if( deptflag == "A" ){//마취
  312. flagValue = "0";
  313. }else if( deptflag == "R" ){//회복
  314. flagValue = "0";
  315. }
  316. break;
  317. case "1" :
  318. if( deptflag == "O" ){//수술
  319. flagValue = "0";
  320. }else if( deptflag == "A" ){//마취
  321. flagValue = "1";
  322. }else if( deptflag == "R" ){//회복
  323. flagValue = "1";
  324. }
  325. break;
  326. case "2" :
  327. if( deptflag == "O" ){//수술
  328. flagValue = "2";
  329. }else if( deptflag == "A" ){//마취
  330. flagValue = "0";
  331. }else if( deptflag == "R" ){//회복
  332. flagValue = "0";
  333. }
  334. break;
  335. case "3" :
  336. if( deptflag == "O" ){//수술
  337. flagValue = "3";
  338. }else if( deptflag == "A" ){//마취
  339. flagValue = "3";
  340. }else if( deptflag == "R" ){//회복
  341. flagValue = "0";
  342. }
  343. break;
  344. case "4" :
  345. if( deptflag == "O" ){//수술
  346. flagValue = "2";
  347. }else if( deptflag == "A" ){//마취
  348. flagValue = "1";
  349. }else if( deptflag == "R" ){//회복
  350. flagValue = "4";
  351. }
  352. break;
  353. case "5" :
  354. if( deptflag == "O" ){//수술
  355. flagValue = "3";
  356. }else if( deptflag == "A" ){//마취
  357. flagValue = "5";
  358. }else if( deptflag == "R" ){//회복
  359. flagValue = "1";
  360. }
  361. break;
  362. case "6" :
  363. if( deptflag == "O" ){//수술
  364. flagValue = "6";
  365. }else if( deptflag == "A" ){//마취
  366. flagValue = "3";
  367. }else if( deptflag == "R" ){//회복
  368. flagValue = "2";
  369. }
  370. break;
  371. case "7" :
  372. if( deptflag == "O" ){//수술
  373. flagValue = "6";
  374. }else if( deptflag == "A" ){//마취
  375. flagValue = "5";
  376. }else if( deptflag == "R" ){//회복
  377. flagValue = "4";
  378. }
  379. break;
  380. }
  381. }
  382. return flagValue;
  383. }
  384. /* --------------------------------------------------*/
  385. /* type : function */
  386. /* access : public */
  387. /* desc : 수술실간호기록/수술료 기록 체크 */
  388. /* param : flag 현재 마감 플래그 값 */
  389. /* param : callflag 1:마감완료, 2:마감취소 */
  390. /* return : flagValue 새로운 플래그 값 */
  391. /* --------------------------------------------------*/
  392. function fEndRecFlagRtn(flag, callflag) {
  393. var flagValue = "0"
  394. var deptflag = model.getValue("/root/main/cond/deptflag");
  395. if( callflag == "1" ) {//마감완료
  396. switch(flag) {
  397. case "0" :
  398. if( deptflag == "O" ){//수술
  399. flagValue = "1";
  400. }else if( deptflag == "R" ){//회복
  401. flagValue = "2";
  402. }
  403. break;
  404. case "1" :
  405. if( deptflag == "O" ){//수술
  406. flagValue = "1";
  407. }else if( deptflag == "R" ){//회복
  408. flagValue = "3";
  409. }
  410. break;
  411. case "2" :
  412. if( deptflag == "O" ){//수술
  413. flagValue = "3";
  414. }else if( deptflag == "R" ){//회복
  415. flagValue = "2";
  416. }
  417. break;
  418. case "3" :
  419. flagValue = "3";
  420. break;
  421. }
  422. }else {//마감취소
  423. switch(flag) {
  424. case "0" :
  425. if( deptflag == "O" ){//수술
  426. flagValue = "0";
  427. }else if( deptflag == "R" ){//회복
  428. flagValue = "0";
  429. }
  430. break;
  431. case "1" :
  432. if( deptflag == "O" ){//수술
  433. flagValue = "0";
  434. }else if( deptflag == "R" ){//회복
  435. flagValue = "1";
  436. }
  437. break;
  438. case "2" :
  439. if( deptflag == "O" ){//수술
  440. flagValue = "2";
  441. }else if( deptflag == "R" ){//회복
  442. flagValue = "0";
  443. }
  444. break;
  445. case "3" :
  446. if( deptflag == "O" ){//수술
  447. flagValue = "2";
  448. }else if( deptflag == "R" ){//회복
  449. flagValue = "1";
  450. }
  451. break;
  452. }
  453. }
  454. return flagValue;
  455. }
  456. /* --------------------------------------------------*/
  457. /* type : function */
  458. /* access : public */
  459. /* desc : 수술실간호기록/수술료 마감완료 취소 */
  460. /* param : */
  461. /* return : */
  462. /* --------------------------------------------------*/
  463. function fEndPrcpRecCncl() {
  464. var iRows = -1, iNode = "";
  465. var chkflag, oprsrvno, opprcpchk = "false", oprecchk = "false", prcpendflag = "0", recendflag = "0", flagValue1 = "0", flagValue2 = "0";
  466. var anstprcpchk = "false", recovprcprchk = "false", recovrecchk = "false";
  467. var cnt = 0, cnt2 = 0;
  468. var deptflag = model.getValue("/root/main/cond/deptflag");
  469. if( deptflag == "O" ) {
  470. iRows = grd_oplist.rows;
  471. iNode = "/root/main/oprecinfo/opendlist[";
  472. }else {
  473. iRows = grd_anstlist.rows;
  474. iNode = "/root/main/anstrecinfo/anstendlist[";
  475. }
  476. var prcpendlist = "oprsrvno▦prcpendflag";
  477. var recendlist = "oprsrvno▦recendflag";
  478. for( var i = 1; i <= iRows; i++ ) {
  479. if( deptflag == "O" ) {
  480. oprecchk = model.getValue(iNode + i + "]/oprecchk");//수술기록
  481. opprcpchk = model.getValue(iNode + i + "]/opprcpchk");//수술간호처방
  482. oprsrvno = model.getValue(iNode + i + "]/oprsrvno");
  483. prcpendflag = model.getValue(iNode + i + "]/prcpendflag");
  484. recendflag = model.getValue(iNode + i + "]/recendflag");
  485. if( opprcpchk == "true" ) {
  486. cnt += 1;
  487. flagValue1 = fEndPrcpFlagRtn(prcpendflag, "2");//플래값 체크(1:수술, 2:마취, 3:회복, 4:수술/마취, 5:수술/회복, 6:마취/회복, 7:수술/마취/회복)
  488. prcpendlist = prcpendlist + "▩" + oprsrvno + "▦" + flagValue1;
  489. }
  490. if( oprecchk == "true" ) {
  491. cnt2 += 1;
  492. flagValue2 = fEndRecFlagRtn(recendflag, "2");//플래값 체크(1:수술, 2:회복, 3:수술/회복
  493. recendlist = recendlist + "▩" + oprsrvno + "▦" + flagValue2;
  494. }
  495. }else if( deptflag == "A" ){
  496. anstprcpchk = model.getValue(iNode + i + "]/anstprcpchk");//마취간호처방
  497. oprsrvno = model.getValue(iNode + i + "]/oprsrvno");
  498. prcpendflag = model.getValue(iNode + i + "]/prcpendflag");
  499. recendflag = model.getValue(iNode + i + "]/recendflag");
  500. if( anstprcpchk == "true" ) {
  501. cnt += 1;
  502. flagValue1 = fEndPrcpFlagRtn(prcpendflag, "2");//플래값 체크(1:수술, 2:마취, 3:회복, 4:수술/마취, 5:수술/회복, 6:마취/회복, 7:수술/마취/회복)
  503. prcpendflag = flagValue1;
  504. prcpendlist = prcpendlist + "▩" + oprsrvno + "▦" + flagValue1;
  505. }
  506. }else if( deptflag == "R" ){
  507. recovprcprchk = model.getValue(iNode + i + "]/recovprcprchk");//회복실간호처방
  508. recovrecchk = model.getValue(iNode + i + "]/recovrecchk");//회복실기록
  509. oprsrvno = model.getValue(iNode + i + "]/oprsrvno");
  510. prcpendflag = model.getValue(iNode + i + "]/prcpendflag");
  511. recendflag = model.getValue(iNode + i + "]/recendflag");
  512. if( recovrecchk == "true" ) {
  513. cnt2 += 1;
  514. flagValue2 = fEndRecFlagRtn(recendflag, "2");//플래값 체크(1:수술, 2:회복, 3:수술/회복
  515. recendlist = recendlist + "▩" + oprsrvno + "▦" + flagValue2;
  516. }
  517. if( recovprcprchk == "true" ) {
  518. cnt += 1;
  519. flagValue1 = fEndPrcpFlagRtn(prcpendflag, "2");//플래값 체크(1:수술, 2:마취, 3:회복, 4:수술/마취, 5:수술/회복, 6:마취/회복, 7:수술/마취/회복)
  520. prcpendlist = prcpendlist + "▩" + oprsrvno + "▦" + flagValue1;
  521. }
  522. }
  523. }
  524. model.removenode("/root/send");
  525. if( ( cnt + cnt2 ) > 0 ) {
  526. if( cnt > 0 ) {//처방
  527. model.makeNode("/root/send/prcpenddata");
  528. model.setValue("/root/send/prcpenddata", prcpendlist);
  529. submit("TXMNP00801", false);
  530. }
  531. if( cnt2 > 0 ) {//기록
  532. model.makeNode("/root/send/recenddata");
  533. model.setValue("/root/send/recenddata", recendlist);
  534. submit("TXMNP00802", false);
  535. }
  536. fSearch();
  537. }else {
  538. messageBox("선택한것이 ", "I004");
  539. }
  540. }
  541. /**
  542. * @group :
  543. * @ver : 2010. 03. 16
  544. * @by : 김 진 명
  545. * @---------------------------------------------------
  546. * @type : function
  547. * @access : public
  548. * @desc : 화면상단정보설정
  549. * @param :
  550. * @return :
  551. * @---------------------------------------------------
  552. */
  553. function fSetParam(pFlag){
  554. if( pFlag == "O" ) {
  555. if(grd_oplist.rows == "1"){
  556. return;
  557. }
  558. var sPath = "/root/main/oprecinfo/opendlist";
  559. var iRow = grd_oplist.row;
  560. }else {
  561. if(grd_anstlist.rows == "1"){
  562. return;
  563. }
  564. var sPath = "/root/main/anstrecinfo/anstendlist";
  565. var iRow = grd_anstlist.row;
  566. }
  567. var sPatFlag = model.getValue(sPath+"["+iRow+"]/oppatflagcd");
  568. //2008-08-28 오전 9:26:44 taebum add 수술기록 관련 요구사항 처리중
  569. var sOpenSusulOprsrvno = model.getAttribute("susulrec_oprsrvno");
  570. var sCurrentOprsrvno = model.getValue(sPath+"["+iRow+"]/oprsrvno");
  571. if(sOpenSusulOprsrvno != null && sOpenSusulOprsrvno != "" && sOpenSusulOprsrvno != "undefined"){
  572. if(sOpenSusulOprsrvno != sCurrentOprsrvno){
  573. var sOpenSusulPid = model.getAttribute("susulrec_pid" );
  574. var sOpenSusulHngnm = model.getAttribute("susulrec_hngnm");
  575. messageBox("등록번호 : "+sOpenSusulPid+" "+sOpenSusulHngnm+"님의 수술기록 작성 중 입니다. 작성완료 후 수술기록을 닫으시기 바랍니다.", "");
  576. return;
  577. }
  578. }
  579. //2008-08-30 오후 2:52:48 taebum
  580. //환자구분이 DSC일 경우 수술구분이 정규이면서 현재일자가 수술일자 이전일 경우 CartList만
  581. //저장할 수 있도록 외래상단정보 세팅. 후 수술마취 간호처방에 parameter를 전송한다.
  582. //2008-09-26 오전 11:05:01 taebum DSC 뿐 아니라 외래로 확정한 케이스에도 CartList 저장 및 상단 정보 생성요청 적용중.
  583. var sTmpIndd = model.getValue(sPath+"["+iRow+"]/indd");
  584. var orddeptcd = model.getValue(sPath+"["+iRow+"]/orddeptcd");
  585. var opcnfmdd = model.getValue(sPath+"["+iRow+"]/opcnfmdd");
  586. var sCurrentdd = getCurrentDate();
  587. if(sTmpIndd == "" || sTmpIndd == null || sTmpIndd == "undefined"){
  588. var sTmpPid = model.getValue(sPath+"["+iRow+"]/pid");
  589. model.removenode("/root/send");
  590. model.makeNode("/root/send/reqdata" ); //저장 후 조회조건
  591. model.makeValue("/root/send/reqdata/pid" , sTmpPid);
  592. model.makeValue("/root/send/reqdata/opcnfmdd", opcnfmdd);
  593. model.makeValue("/root/send/reqdata/orddeptcd", orddeptcd);
  594. submit("TRMNP00108");
  595. if(model.getValue("/root/HideData/otptinfo/pid") != ""&&model.getValue("/root/HideData/otptinfo/pid") != null &&model.getValue("/root/HideData/otptinfo/pid") != "undefined" ){
  596. if (sPatFlag == "") {
  597. sPatFlag = "O";
  598. }
  599. var param = "";
  600. if(sPatFlag == "D" || sPatFlag == "I" || sPatFlag == "E"){
  601. //외래환자 상단올리기
  602. //2009-05-11 YCD 외래 환자 상단정보 세팅 변경
  603. param = model.getValue("/root/HideData/otptinfo/ordtype") + "▦"
  604. + model.getValue("/root/HideData/otptinfo/pid") + "▦"
  605. + model.getValue("/root/HideData/otptinfo/orddd") + "▦"
  606. + model.getValue("/root/HideData/otptinfo/cretno") + "▦"
  607. + model.getValue("/root/HideData/otptinfo/instcd") + "▦"
  608. + "" + "▦"
  609. + model.getValue("/root/HideData/otptinfo/orgorddd");
  610. }else {
  611. param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  612. + model.getValue(sPath+"["+iRow+"]/pid" ) + "▦" // 02 등록번호
  613. + model.getValue(sPath+"["+iRow+"]/opcnfmdd" ) + "▦" // 03 수술시작일자
  614. + model.getValue(sPath+"["+iRow+"]/cretno" ) + "▦" // 04 cretno(없는 경우 ""로 처리)
  615. + model.getValue(sPath+"["+iRow+"]/instcd" ) + "▦" // 05 기관코드
  616. + model.getValue(sPath+"["+iRow+"]/deptcd" ) + "▦" // 06 집도과부서
  617. + model.getValue(sPath+"["+iRow+"]/perfdrid1" ) + "▦" // 07 집도의ID
  618. + sPatFlag + "▦" // 08 환자구분
  619. + "F▦" // 09 F -처리구분 무조건 F로 설정
  620. + model.getValue(sPath+"["+iRow+"]/oprsrvno" ) + "▦" // 10 수술예약번호
  621. + model.getValue(sPath+"["+iRow+"]/ophistno" ) + "▦" // 11 수술이력번호
  622. + model.getValue(sPath+"["+iRow+"]/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  623. }
  624. setParameter("condparam", param);
  625. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  626. }
  627. }else {
  628. var param = "T▦" // 01 O:외래, I:입원구분, T:수술예약
  629. + model.getValue(sPath+"["+iRow+"]/pid" ) + "▦" // 02 등록번호
  630. + model.getValue(sPath+"["+iRow+"]/opcnfmdd" ) + "▦" // 03 수술시작일자
  631. + "▦" // 04 cretno(없는 경우 ""로 처리)
  632. + model.getValue(sPath+"["+iRow+"]/instcd" ) + "▦" // 05 기관코드
  633. + model.getValue(sPath+"["+iRow+"]/deptcd" ) + "▦" // 06 집도과부서
  634. + model.getValue(sPath+"["+iRow+"]/perfdrid1" ) + "▦" // 07 집도의ID
  635. + sPatFlag + "▦" // 08 환자구분
  636. + "F▦" // 09 F -처리구분 무조건 F로 설정
  637. + model.getValue(sPath+"["+iRow+"]/oprsrvno" ) + "▦" // 10 수술예약번호
  638. + model.getValue(sPath+"["+iRow+"]/ophistno" ) + "▦" // 11 수술이력번호
  639. + model.getValue(sPath+"["+iRow+"]/opcnfmdd" ) + "▦"; // 12 조회일자 2007-09-13 오지훈 추가...
  640. setParameter("condparam", param);
  641. modal("SPMMO08900", 1, "", "", "", "SPMMO08900", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  642. }
  643. }
  644. /**
  645. * @group :
  646. * @ver : 2009.06.23
  647. * @by : 김진명
  648. * @---------------------------------------------------
  649. * @type : function
  650. * @access : public
  651. * @desc : 화면 오른쪽 마우스 팝업 설정
  652. * @param :
  653. * @param :
  654. * @return :
  655. * @---------------------------------------------------
  656. */
  657. function fShowPopup(pData){
  658. var sDeptflag = model.getValue("/root/main/cond/deptflag");
  659. if( sDeptflag == "O" ) {//수술
  660. var oprsrvno = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oprsrvno");
  661. var ophistcd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/ophistcd");
  662. var ophistno = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/ophistno");
  663. var pid = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/pid");
  664. var oppatflagcd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oppatflagcd");
  665. var oproomnm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oproomnm");
  666. var deptflag = model.getValue("/root/main/cond/deptflag");
  667. var indd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/indd");
  668. var orddeptcd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/orddeptcd");
  669. var instcd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/instcd");
  670. var opcnfmdd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/opcnfmdd");
  671. }else {
  672. var oprsrvno = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/oprsrvno");
  673. var ophistcd = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/ophistcd");
  674. var ophistno = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/ophistno");
  675. var pid = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/pid");
  676. var oppatflagcd = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/oppatflagcd");
  677. var oproomnm = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/oproomnm");
  678. var deptflag = model.getValue("/root/main/cond/deptflag");
  679. var indd = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/indd");
  680. var orddeptcd = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/orddeptcd");
  681. var instcd = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/instcd");
  682. var opcnfmdd = model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/opcnfmdd");
  683. }
  684. fSetParam(sDeptflag);
  685. switch(pData) {
  686. case "1" ://확정처방조회
  687. clearParameter();
  688. setParameter("oprsrvno", oprsrvno);
  689. setParameter("ophistcd", ophistcd);
  690. setParameter("ophistno", ophistno);
  691. setParameter("pid", pid);
  692. setParameter("deptflag", deptflag);
  693. setParameter("oppatflagcd", oppatflagcd);
  694. setParameter("oproomnm", oproomnm);
  695. modal("SPMNP01900" ,"", "", "", "SPMNP01900");
  696. break;
  697. case "2" ://확정처방저장
  698. var sCurrentdd = getCurrentDate();
  699. if(indd == "" || indd == null || indd == "undefined"){
  700. model.setAttribute("SuSulOrder_Oprsinfo_oprsrvno", oprsrvno);
  701. model.setAttribute("SuSulOrder_Oprsinfo_instcd" , instcd);
  702. model.setAttribute("SuSulOrder_Oprsinfo_ophistno", ophistno);
  703. model.setAttribute("SuSulOrder_Oprsinfo_ophistcd", ophistcd);
  704. }
  705. open("SMMNP01800", "", "100", "100", "SMMNP01800", "", "");
  706. break;
  707. case "3" ://확정처방출력
  708. clearParameter();
  709. group5.visible = true;
  710. break;
  711. case "4" ://수술간호기록
  712. open("SMMNP00300", "", "100", "100", "SMMNP00300", "", "");
  713. break;
  714. case "5" ://반납내역서조회
  715. var patnm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/patnm");
  716. var pid = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/pid");
  717. var roomcd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/roomcd");
  718. var sa = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/sa");
  719. var perfdeptabbr = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/deptnm");
  720. var perfnm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/perfnm");
  721. var opnm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/opnm");
  722. var oproomnm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oproomnm");
  723. var wardnm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/wardnm");
  724. var optype = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/optype");
  725. var tm = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/opcnfmdt");
  726. var patinfo = wardnm + " " + roomcd + " " + patnm + " " + sa + " " + pid;
  727. var opcnfmdd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/opcnfmdd");
  728. var opinfo = perfdeptabbr + " " + oproomnm + " " + perfnm + " " + opnm;
  729. var disp1 = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/disp1");
  730. var disp2 = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/disp2");
  731. var disp3 = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/disp3");
  732. var patflagcd = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oppatflagcd");
  733. var ccrtstat = model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/ccrtstat");
  734. if( ccrtstat < "5" ) {
  735. messageBox("확정처방 이후만 조회 가능합니다.", "E000");
  736. return;
  737. }
  738. clearParameter();
  739. setParameter("patinfo", patinfo);
  740. setParameter("opcnfmdd", opcnfmdd);
  741. setParameter("opinfo", opinfo);
  742. setParameter("patnm", patnm);
  743. setParameter("pid", pid);
  744. setParameter("roomcd", roomcd);
  745. setParameter("sa", sa);
  746. setParameter("perfdeptabbr", perfdeptabbr);
  747. setParameter("opnm", opnm);
  748. setParameter("perfnm", perfnm);
  749. setParameter("oproomnm", oproomnm);
  750. setParameter("wardnm", wardnm);
  751. setParameter("optype", optype);
  752. setParameter("patflagcd", patflagcd);
  753. setParameter("disp1", disp1);
  754. setParameter("disp2", disp2);
  755. setParameter("disp3", disp3);
  756. setParameter("tm", tm);
  757. setParameter("oprsrvno", model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oprsrvno"));
  758. setParameter("opdd", opcnfmdd);
  759. setParameter("cartgubn", "O");
  760. modal("SMMNP03600" ,"", "", "", "SMMNP03600");
  761. break;
  762. }
  763. }
  764. //--------------------------------------------------
  765. // 처방 출력
  766. //--------------------------------------------------
  767. function fPrntPrcpList() {
  768. model.removenode("/root/send");
  769. model.makeValue("/root/send/instcd" , getUserInfo("dutplceinstcd")); // 기관코드
  770. if( model.getValue("/root/main/cond/deptflag") == "O" ) {//수술
  771. model.makeValue("/root/send/oprsrvno" , model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/oprsrvno")); // 수술예약(의뢰)번호 (년도 + 일련번호)
  772. model.makeValue("/root/send/ophistno" , model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/ophistno")); // 예약번호에따른이력번호
  773. model.makeValue("/root/send/ophistcd" , model.getValue("/root/main/oprecinfo/opendlist[" + grd_oplist.row + "]/ophistcd")); // 수술예약의이력코드
  774. }else {//마취, 회복
  775. model.makeValue("/root/send/oprsrvno" , model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/oprsrvno")); // 수술예약(의뢰)번호 (년도 + 일련번호)
  776. model.makeValue("/root/send/ophistno" , model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/ophistno")); // 예약번호에따른이력번호
  777. model.makeValue("/root/send/ophistcd" , model.getValue("/root/main/anstrecinfo/anstendlist[" + grd_anstlist.row + "]/ophistcd")); // 수술예약의이력코드
  778. }
  779. submit("TRMNP01800"); // 수술예약정보를 가져온다
  780. var node = instance1.selectSingleNode("/root/main/MmohoprsLists/mmohoprslist/prnti");
  781. if( node == null ) {
  782. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prnti", model.getValue("/root/main/cond/prnti"));
  783. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntii", model.getValue("/root/main/cond/prntii"));
  784. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiii", model.getValue("/root/main/cond/prntiii"));
  785. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiv", model.getValue("/root/main/cond/prntiv"));
  786. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/cartgubn", model.getValue("/root/main/cond/deptflag"));
  787. }else {
  788. model.setValue("/root/main/MmohoprsLists/mmohoprslist/prnti", model.getValue("/root/main/cond/prnti"));
  789. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntii", model.getValue("/root/main/cond/prntii"));
  790. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiii", model.getValue("/root/main/cond/prntiii"));
  791. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/prntiv", model.getValue("/root/main/cond/prntiv"));
  792. model.makeValue("/root/main/MmohoprsLists/mmohoprslist/cartgubn", model.getValue("/root/main/cond/deptflag"));
  793. }
  794. exeReportPreview("RPMNP01800", "XML", "/root/main/MmohoprsLists/mmohoprslist", "", "", "", "", "", "", "true", "", "", "", "emr");
  795. }
  796. function fCalcdate(calcn, calcd){
  797. calcd = calcd.toDate("YYYYMMDD");
  798. calcd = calcd.getAddDate(calcn , "D");
  799. calcd = calcd.getDateFormat("YYYYMMDD");
  800. return calcd;
  801. }
  802. /* ------------------------------------------------- */
  803. /* ------End Of List ------------------------------- */
  804. /* -------------------------------------------------- */