SMMNI00100_20100604.js 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851
  1. //2010.06.04 김달현
  2. //injroomweb/js/SMMNI00100.js에 있던 주석처리되어 있는 펑션들을 이 파일에 옮겨놓음.
  3. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  4. //+++++++++++++++++++++++++++++++++++++++++++2009.03.18 dhkim+++++++++++++++++++++++++++++++++++++++++++++++//
  5. //+++++++++++++++++++++++++++++++++++++++++++주석처리한 펑션 start++++++++++++++++++++++++++++++++++++++++++++//
  6. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  7. //20090318 dhkim 사용하지 않는 펑션 주석처리
  8. /*
  9. / **
  10. * @group :
  11. * @ver : 2007.05.15
  12. * @by : 신혁춘
  13. * @---------------------------------------------------
  14. * @type : function
  15. * @access : public
  16. * @desc : acting 체크
  17. * @param :
  18. * @return :
  19. * @---------------------------------------------------
  20. * /
  21. function facting(flag){
  22. var iRow = grd_biztrgtman.row;
  23. var Row = grd_prcpdetl.rows;
  24. var jRow=grd_prcpdetl.row;
  25. var oRow = grd_ordsper.row;
  26. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  27. //acting채크 시 환자 선택 여부 파악
  28. if(Row==1){
  29. messageBox("환자가 선택되지", "E007")
  30. return;
  31. }
  32. var chek = 0;
  33. var kRow = 0;
  34. for (i=1; i<Row; i++){
  35. chek = chek + grd_prcpdetl.textmatrix(i,1);
  36. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  37. kRow = kRow +","+ i
  38. }
  39. }
  40. if(chek==0){
  41. messageBox("하나 이상의 처방내역을", "C002")
  42. return;
  43. }
  44. var kRows = kRow.split(",");
  45. for(i=1; i<kRows.length; i++){
  46. var exec = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execdd");
  47. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  48. var execchk = getCurrentDate();
  49. var execord = exec.substr(0,8);
  50. var endyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/endyn");
  51. var act50yn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/act50yn");
  52. var dracptyn = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptyn");
  53. var dracptdt = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/dracptdt");
  54. // Acting버튼 클릭시
  55. if (flag=="Y"){
  56. if(exec != "-"){
  57. messageBox("Acting을 실시한 곳은 다시 Acting을", "E001")
  58. return;
  59. }
  60. }
  61. // Acting취소버튼 클릭시
  62. if (flag=="N"){
  63. if(exec == "-"){
  64. messageBox("Acting을 실시하지 않은 곳은 Acting 취소을", "E001")
  65. return;
  66. }
  67. if(execord != execchk){
  68. messageBox("Acting을 실시한 일자와 현재 일자가 동일하지 않은 곳은 Acting 취소을", "E001")
  69. return;
  70. }
  71. if(prcpclscd == "B4"){
  72. messageBox("혈액은 Acting 취소을 ", "E001")
  73. return;
  74. }
  75. // 마감된 처방을 Acting취소시 마감반환사유 프로세스 입력되도록
  76. if (endyn == "Y") {
  77. messageBox("마감된 Acting처방을 취소하려면 반환사유를 ", "C001")
  78. model.makeValue("/root/main/cond/list/prcpdd",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpdd"));
  79. model.makeValue("/root/main/cond/list/prcpno",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpno"));
  80. model.makeValue("/root/main/cond/list/prcphistno",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcphistno"));
  81. model.makeValue("/root/main/cond/list/execprcpno",model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/execprcpno"));
  82. model.makeValue("/root/main/cond/list/instcd",getUserInfo("dutplceinstcd"));
  83. model.makeValue("/root/main/cond/list/ioflag","O");
  84. // 반환사유 팝업
  85. modal("SPPAS03000", "2", "100", "100", "SPPAS03000", "root/main/cond", "root/target", "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
  86. }
  87. }
  88. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat");
  89. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  90. var cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  91. if (flag=="Y"){
  92. if(prcpclscd == "B4"){
  93. messageBox("혈액은 수혈 기록을 통해서만 Acting을 할 수 있습니다.", "E")
  94. return;
  95. }
  96. if(prcpclscd == "A7"){
  97. if(stat != "2"){
  98. messageBox("조제완료 되지 않은 항암제는 Acting을", "E001")
  99. return;
  100. }
  101. if(prcpclscd == "B4"){
  102. messageBox("혈액은 Acting 은 수혈기록을 통해서만 Acting 할 수 있습니다.", "E")
  103. return;
  104. }
  105. }
  106. if(cdnm == "마약"){
  107. if(stat != "5"){
  108. messageBox("불출 되지 않은 마약은 Acting을", "E001")
  109. return;
  110. }
  111. }
  112. }
  113. } // for end
  114. if(kRows.length >= 3){
  115. var chkactorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  116. for (i=1; i<kRows.length; i++){
  117. var chkactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  118. if(chkactorddd != chkactorddd1){
  119. messageBox("ACting은 동일한 예약일자가 아니면 Acting실시", "E001");
  120. return;
  121. }
  122. }
  123. }
  124. // if (flag=="N"){
  125. // messageBox("처방을 실시할 부서는 주사실로 저장합니다.", "I");
  126. // var prcpexecdeptcd = "3120000000"
  127. // }
  128. if (flag=="Y"){
  129. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec")
  130. }
  131. var ordddlong = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/orddd")
  132. var orddd = ordddlong.substring(0,8);
  133. model.removeNodeset("/root/send");
  134. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  135. if(submit("TRMNI00108")){
  136. if(model.getValue("/root/init/acting/chking/actingchk") > 0){
  137. messageBox("현재 입원 환자는 Acting을", "E001")
  138. return;
  139. }
  140. }
  141. model.removeNodeset("/root/send");
  142. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  143. model.makeValue("/root/send/orddd",orddd);
  144. model.makeValue("/root/send/drugdd",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  145. model.makeValue("/root/send/acting",flag);
  146. model.makeValue("/root/send/prcpexecdeptcd",prcpexecdeptcd);
  147. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  148. model.makeValue("/root/send/endyn",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/endyn")); // 마감여부
  149. model.makeValue("/root/send/act50yn",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/act50yn")); //
  150. model.makeValue("/root/send/dracptyn",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptyn")); //
  151. model.makeValue("/root/send/dracptdt",model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/dracptdt")); //
  152. if(submit("TXMNI00102")){
  153. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  154. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  155. alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  156. }
  157. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  158. fbiztrgtman("acting");
  159. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  160. //처방 상세내역
  161. fBiztrgtClick("acting");
  162. }else if (oRow != ""){
  163. grd_ordsper.row = oRow;
  164. fordsper();
  165. }
  166. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  167. model.copyNode("/root/hidden/main", "/root/main");
  168. }
  169. }
  170. */
  171. //20090318 dhkim 사용하지 않는 펑션 주석처리
  172. /*
  173. / **
  174. * @group :
  175. * @ver : 2007.05.22
  176. * @by : 신혁춘
  177. * @---------------------------------------------------
  178. * @type : function
  179. * @access : public
  180. * @desc : 변경내용저장
  181. * @param :
  182. * @return :
  183. * @---------------------------------------------------
  184. * /
  185. function fChangeSave(flag){
  186. var iRow = grd_biztrgtman.row;
  187. var oRow = grd_ordsper.row;
  188. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist"
  189. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  190. //var prcpno = grd_prcpdetl.textmatrix(iRow, 17);
  191. var Row = grd_prcpdetl.rows;
  192. //변경내용저장 시 환자 선택 여부 파악
  193. if(Row==1){
  194. messageBox("환자가 선택되지", "E007")
  195. return;
  196. }
  197. var kRow = 0;
  198. var chek = 0;
  199. for (i=1; i<Row; i++){
  200. chek = chek + grd_prcpdetl.textmatrix(i,1);
  201. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  202. kRow = kRow +","+ i
  203. }
  204. }
  205. if(chek==0){
  206. messageBox("하나 이상의 처방내역을", "C002")
  207. return;
  208. }
  209. var kRows = kRow.split(",");
  210. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  211. var chkactorddd1, drugno;
  212. //20081223 dhkim
  213. //약번호의 경우 항암 뿐 아니라 마약의 경우에도 따지 므로 메세지를 구분할 필요가 있음
  214. var cdnm;
  215. if(kRows.length >= 3){
  216. for (i=1; i<kRows.length; i++){
  217. chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  218. drugno = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  219. //20081223 dhkim
  220. cdnm = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/cdnm");
  221. if(drugno != "0"){
  222. if(cdnm == "마약"){
  223. messageBox("마약 불출신청 접수 후 예약일자 변경을", "E001");
  224. }else{
  225. messageBox("항암 전송후 예약일자 변경을", "E001");
  226. }
  227. return;
  228. }
  229. if(chkactorddd != chkactorddd1){
  230. messageBox("초기 동일한 예약일자가 아니면 저장", "E001");
  231. return;
  232. }
  233. }
  234. }
  235. var lRow = 0;
  236. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  237. for (i=1; i<Row; i++){
  238. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  239. if(chkactorddd == chkactorddd1){
  240. lRow = lRow +","+ i
  241. }
  242. }
  243. var lRows = lRow.split(",");
  244. for (i=1; i<Row; i++){
  245. var actordddchk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  246. var actordddchk1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  247. if (actordddchk != actordddchk1){
  248. if (kRow != lRow){
  249. messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  250. return;
  251. }
  252. }
  253. }
  254. var vewactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  255. for (i=1; i<kRows.length; i++){
  256. var vewactorddd2 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  257. if(vewactorddd1 != vewactorddd2){
  258. messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  259. return;
  260. }
  261. }
  262. if(flag != "Ant"){
  263. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  264. var flag = "Change";
  265. model.removeNodeset("/root/send");
  266. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  267. model.makeValue("/root/send/drugdd",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  268. model.makeValue("/root/send/ordtm",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  269. model.makeValue("/root/send/acting",flag);
  270. model.makeValue("/root/send/prcpexecdeptcd",prcpexecdeptcd);
  271. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  272. if(submit("TXMNI00102")){
  273. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  274. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  275. //20090318 dhkim messageBox로 변경
  276. //alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  277. messageBox(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'), "E");
  278. }
  279. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  280. fbiztrgtman("acting");
  281. if (model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  282. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  283. grd_biztrgtman.row = iRow;
  284. //처방 상세내역
  285. fBiztrgtClick("acting");
  286. }else if (oRow != ""){
  287. grd_ordsper.row = oRow;
  288. fordsper();
  289. }
  290. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  291. model.copyNode("/root/hidden/main", "/root/main");
  292. }
  293. }
  294. }
  295. */
  296. //20090318 dhkim 사용하지 않는 펑션 주석처리
  297. /*
  298. / **
  299. * @group :
  300. * @ver : 2007.10.09
  301. * @by : 신혁춘
  302. * @---------------------------------------------------
  303. * @type : function
  304. * @access : public
  305. * @desc : 처방전출력 연결
  306. * @param :
  307. * @return :
  308. * @---------------------------------------------------
  309. * /
  310. function fRexpert() {
  311. var mpsacting = model.getValue("/root/main/mpsacting")
  312. model.removenode("/root/send");
  313. var Row = grd_prcpdetl.rows;
  314. var jRow=grd_prcpdetl.row;
  315. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  316. var xrexportPath = "/root/send/report/for"
  317. var xordsperPath = "/root/main/rghtlist/ordsperlist"
  318. //처방전출력 연결 시 환자 선택 여부 파악
  319. if(Row==1){
  320. messageBox("환자가 선택되지", "E007")
  321. return;
  322. }
  323. var chek = 0;
  324. var kRow = 0;
  325. for (i=1; i<Row; i++){
  326. chek = chek + grd_prcpdetl.textmatrix(i,1);
  327. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  328. kRow = kRow +","+ i
  329. }
  330. }
  331. if(chek==0){
  332. messageBox("하나 이상의 처방내역을", "C002")
  333. return;
  334. }
  335. var kRows = kRow.split(",");
  336. if(mpsacting == "1"){
  337. for(i=1; i<kRows.length; i++){
  338. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat")
  339. if (stat == "6"){
  340. messageBox("Acting을 실시한 곳은 처방전+Acting을", "E001")
  341. return;
  342. }
  343. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd");
  344. if(prcpclscd == "B4" || prcpclscd == "A7"){
  345. if(stat != "5"){
  346. messageBox("불출되지 않은 혈액및 항암제는 처방전+ActingActing을", "E001")
  347. return;
  348. }
  349. }
  350. }
  351. }
  352. model.makeNode("/root/send/report");
  353. model.copyNode("/root/send/report", "/root/main/prcpdetl");
  354. //for(i=1; i<kRows.length; i++){
  355. // model.makeValue(xrexportPath+"["+i+"]","");
  356. // model.copyNode(xrexportPath+"["+i+"]", xPrcpDetlPath+"["+i+"]")
  357. //}
  358. model.makeValue("/root/send/report/only/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  359. model.makeValue("/root/send/report/only/hngnm",model.getValue("/root/main/rghtref/rghtreflist/hngnm"));
  360. model.makeValue("/root/send/report/only/gndrage",model.getValue("/root/main/rghtref/rghtreflist/gndrage"));
  361. var flags = model.getValue("/root/hidden/flags");
  362. if(flags == "grd_ordsper"){
  363. var oRow = grd_ordsper.row;
  364. model.makeValue("/root/send/report/only/depthngnm",model.getValue(xordsperPath+"["+oRow+"]/depthngnm"));
  365. model.makeValue("/root/send/report/only/usernm",model.getValue(xordsperPath+"["+oRow+"]/usernm"));
  366. }else if (flags == "grd_biztrgtman"){
  367. var iRow = grd_biztrgtman.row;
  368. model.makeValue("/root/send/report/only/depthngnm",model.getValue(xBizTrgtManListPath+"["+iRow+"]/depthngnm"));
  369. model.makeValue("/root/send/report/only/usernm",model.getValue(xBizTrgtManListPath+"["+iRow+"]/usernm"));
  370. }
  371. model.makeValue("/root/send/report/only/termhngnm",model.getValue("/root/main/rghtlist/snwinfolist/termhngnm"));
  372. var printday = getCurrentDate();
  373. var printtime = getCurrentTime();
  374. model.makeValue("/root/send/report/only/printdaytime",(printday+printtime));
  375. model.makeValue("/root/send/report/only/mpsacting",model.getValue("/root/main/mpsacting"));
  376. exeReportPreview("RPMNI00100", "XMLSTR" , "" , "" , "true" , "", "", "", "", "true");
  377. if(mpsacting == "1"){
  378. facting("Y");
  379. }else{
  380. model.removenode("/root/send");
  381. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  382. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  383. if(submit("TXMNI00105")){
  384. model.removeNodeset("/root/send");
  385. model.makeValue("/root/send/pid",model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid"));
  386. model.makeValue("/root/send/drugdd",model.getValue(xBizTrgtManListPath+"["+iRow+"]/orddd"));
  387. model.makeValue("/root/send/exec",model.getValue("/root/main/leftref/exec"));
  388. if(submit("TRMNI00103")){
  389. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  390. var Row = grd_prcpdetl.rows;
  391. var mixchk = 0;
  392. var rcptchk; //20090305 dhkim 후수납관련필드추가
  393. //처방상태 값에 따른 처방상세내역 리스트에 상태값 을 나타내는 로직 시작
  394. for(i=1; i<Row; i++){
  395. var execdd = model.getValue(xPrcpDetlPath+"["+i+"]/execrid");
  396. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat");
  397. var execprcpstatcd = model.getValue(xPrcpDetlPath+"["+i+"]/execprcpstatcd");
  398. var prcpclscd = model.getValue(xPrcpDetlPath+"["+i+"]/prcpclscd");
  399. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno");
  400. var cdnm = model.getValue(xPrcpDetlPath+"["+i+"]/cdnm");
  401. var etcprcpresncd = model.getValue(xPrcpDetlPath+"["+i+"]/etcprcpresncd"); // 수혈반납 및 폐기사유코드
  402. var blodcomstat = model.getValue(xPrcpDetlPath+"["+i+"]/blodcomstat"); // 성분제제상태
  403. //20090305 dhkim 후수납관련필드추가
  404. rcptchk = model.getValue(xPrcpDetlPath+"["+i+"]/rcptchk"); // 후수납상태
  405. //20090305 dhkim
  406. //항암 전송완료 상태로 보여주는 부분 후수납의 경우 230조건 제외할것
  407. //후수납 : rcptchk값이 V, Y, F일때는 230조건 제외,
  408. // rcptchk값이 R일때는 230조건
  409. //20090312 dhkim vip환자의 경우는 수납여부 체크하지 않음
  410. //20090313 dhkim vip환자와 당일선검사환자의 경우는 수납여부 체크하지 않음
  411. if(
  412. (
  413. (rcptchk == 'R' && execprcpstatcd == "230")
  414. || (rcptchk == 'V')
  415. || (rcptchk == 'Y')
  416. // || (rcptchk == 'F')
  417. )
  418. && drugno != "0"
  419. && cdnm!="마약"
  420. ){
  421. //alert(rcptchk + ' ' + execprcpstatcd + ' ' + drugno);
  422. grd_prcpdetl.textmatrix(i, 3) = 13 //전송완료
  423. }
  424. /*
  425. if(drugno != "0" && execprcpstatcd == "230" && cdnm!="마약"){
  426. grd_prcpdetl.textmatrix(i, 3) = 13 //전송완료
  427. }
  428. * /
  429. if(execprcpstatcd == "300"){
  430. grd_prcpdetl.textmatrix(i, 3) = 1 //조제보류
  431. }
  432. if(execprcpstatcd == "310" || execprcpstatcd == "315" &&
  433. (prcpclscd == "A7"
  434. //20090310 dhkim 무균약추가
  435. || prcpclscd == "A9"
  436. )
  437. ){
  438. grd_prcpdetl.textmatrix(i, 3) = 2 //조제완료
  439. var mixk = model.getValue(xPrcpDetlPath+"["+i+"]/mix")
  440. var actordddk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd")
  441. var rsrvtmk = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm")
  442. var ordddk = model.getValue(xPrcpDetlPath+"["+i+"]/orddd")
  443. for (r=0; r<Row; r++){
  444. var mixr = model.getValue(xPrcpDetlPath+"["+r+"]/mix");
  445. var actordddr = model.getValue(xPrcpDetlPath+"["+r+"]/actorddd")
  446. var rsrvtmr = model.getValue(xPrcpDetlPath+"["+r+"]/rsrvtm")
  447. var ordddr = model.getValue(xPrcpDetlPath+"["+r+"]/orddd")
  448. if(mixk == mixr && actordddr == actordddk && rsrvtmr == rsrvtmk && ordddr == ordddk && rsrvtmk != '000000'){
  449. grd_prcpdetl.textmatrix(r, 3) = 2 //조제완료
  450. }
  451. }
  452. }
  453. var printyn = model.getValue(xPrcpDetlPath+"["+i+"]/printyn")
  454. if(printyn == "Y" && execprcpstatcd != "610"){
  455. //grd_prcpdetl.cellstyle("background-color", i, 0, i, 19) = '#FFFFCC';
  456. grd_prcpdetl.cellstyle("background-color", i, 0, i, 20) = '#FFFFCC';//[20081125 dhkim] 투여속도추가로 col id 증가
  457. }
  458. if(execprcpstatcd == "500" || execprcpstatcd == "505" || execprcpstatcd == "510"){
  459. grd_prcpdetl.textmatrix(i, 3) = 11 //접수
  460. }
  461. if(execprcpstatcd == "520" || execprcpstatcd == "525"){
  462. grd_prcpdetl.textmatrix(i, 3) = 4 //준비완료
  463. }
  464. if(execprcpstatcd == "530"){
  465. if (blodcomstat == "8") {
  466. grd_prcpdetl.textmatrix(i, 3) = 14 //잔여폐기
  467. }
  468. else {
  469. grd_prcpdetl.textmatrix(i, 3) = 5 //불출
  470. }
  471. }
  472. if(execprcpstatcd == "540"){
  473. grd_prcpdetl.textmatrix(i, 3) = 7 //반납의뢰
  474. }
  475. if(execprcpstatcd == "550"){
  476. grd_prcpdetl.textmatrix(i, 3) = 8 //반납완료
  477. }
  478. if(execprcpstatcd == "560"){
  479. if (etcprcpresncd == "07" || etcprcpresncd == "12") {
  480. grd_prcpdetl.textmatrix(i, 3) = 14 //잔여폐기
  481. }
  482. else {
  483. grd_prcpdetl.textmatrix(i, 3) = 9 //폐기의뢰
  484. }
  485. }
  486. if(execprcpstatcd == "570"){
  487. grd_prcpdetl.textmatrix(i, 3) = 10 //폐기완료
  488. }
  489. /*
  490. if(execprcpstatcd == "530"){
  491. grd_prcpdetl.textmatrix(i, 3) = 5 //출고
  492. }
  493. * /
  494. if(execprcpstatcd == "320"){
  495. grd_prcpdetl.textmatrix(i, 3) = 5 //출고
  496. }
  497. if(prcpclscd =="B4"){
  498. if(execprcpstatcd == "610"){
  499. grd_prcpdetl.textmatrix(i, 3) = 12 //실시완료
  500. }
  501. }else{
  502. if(execprcpstatcd == "610"){
  503. grd_prcpdetl.textmatrix(i, 3) = 6 //시행완료
  504. }
  505. }
  506. var mix = model.getValue(xPrcpDetlPath+"["+i+"]/mix")
  507. var actorddd = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd")
  508. var rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm")
  509. var orddd = model.getValue(xPrcpDetlPath+"["+i+"]/orddd")
  510. if(prcpclscd == "A7"){
  511. for (k=0; k<Row; k++){
  512. var mixs = model.getValue(xPrcpDetlPath+"["+k+"]/mix");
  513. var actorddds = model.getValue(xPrcpDetlPath+"["+k+"]/actorddd")
  514. var rsrvtms = model.getValue(xPrcpDetlPath+"["+k+"]/rsrvtm")
  515. var orddds = model.getValue(xPrcpDetlPath+"["+k+"]/orddd")
  516. if(mix == mixs && mix != '-' && actorddds == actorddd && rsrvtms == rsrvtm && orddds == orddd){
  517. grd_prcpdetl.textmatrix(k, 2) = 'A7'
  518. }
  519. }
  520. }
  521. } // for end
  522. } //처방 상태값을 나타내는 로직 끝
  523. }
  524. }
  525. }
  526. */
  527. //20090318 dhkim 사용하지 않는 펑션 주석처리
  528. /*
  529. / **
  530. * @group :
  531. * @ver : 2007.10.29
  532. * @by : 신혁춘
  533. * @---------------------------------------------------
  534. * @type : function
  535. * @access : public
  536. * @desc : 특조전송
  537. * @param :
  538. * @return :
  539. * @---------------------------------------------------
  540. * /
  541. function fAnticncr() {
  542. var oRow = grd_ordsper.row;
  543. var iRow = grd_biztrgtman.row;
  544. model.removenode("/root/send");
  545. var Row = grd_prcpdetl.rows;
  546. var jRow=grd_prcpdetl.row;
  547. var xPrcpDetlPath = "/root/main/prcpdetl/prcpdetllist"
  548. var xordsperPath = "/root/main/rghtlist/ordsperlist"
  549. var xhiddenPrcpDetlPath = "/root/hidden/main/prcpdetl/prcpdetllist"
  550. //처방전출력 연결 시 환자 선택 여부 파악
  551. if(Row==1){
  552. messageBox("환자가 선택되지", "E007")
  553. return;
  554. }
  555. var chek = 0;
  556. var kRow = 0;
  557. for (i=1; i<Row; i++){
  558. chek = chek + grd_prcpdetl.textmatrix(i,1);
  559. if(grd_prcpdetl.textmatrix(i,1) == "1"){
  560. kRow = kRow +","+ i
  561. var rsrvtm = model.getValue(xPrcpDetlPath+"["+i+"]/rsrvtm")
  562. if(rsrvtm == "000000"){
  563. messageBox("예약시간을", "C002")
  564. return;
  565. }
  566. }
  567. }
  568. if(chek==0){
  569. messageBox("하나 이상의 항암을", "C002")
  570. return;
  571. }
  572. var kRows = kRow.split(",");
  573. var kchek = 0;
  574. for(i=1; i<kRows.length; i++){
  575. var prcpclscd = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/prcpclscd")
  576. if(prcpclscd=="A7"){
  577. kchek = kchek + 1
  578. }
  579. }
  580. if(kchek == 0){
  581. messageBox("하나 이상의 항암을", "C002")
  582. return;
  583. }
  584. for(i=1; i<kRows.length; i++){
  585. var stat = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/stat")
  586. if (stat == "6"){
  587. messageBox("Acting을 실시한 곳은 특조전송을", "E001")
  588. return;
  589. }
  590. var drugnochk = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno");
  591. if (drugnochk != "0"){
  592. messageBox("한번 항암 전송을 실시한 곳은 특조전송을", "E001")
  593. return;
  594. }
  595. }
  596. var chkd = 0
  597. for(j=1; j<Row; j++){
  598. var stat = model.getValue(xPrcpDetlPath+"["+j+"]/stat")
  599. var flag = model.getValue(xPrcpDetlPath+"["+j+"]/flag")
  600. var prcpclscdnow = model.getValue(xPrcpDetlPath+"["+j+"]/prcpclscdnow")
  601. if ((flag == "0" || flag == "") && prcpclscdnow == "A7" && stat == ""){
  602. chkd = chkd + 1
  603. }
  604. }
  605. if(chkd > 0){
  606. if(messageBox("특조전송할 처방이 모두 선택되지 않았습니다. 전송을 실시 하겠습니까?", "Q") != 6) return;
  607. }
  608. var a = 0;
  609. for (i=1; i<kRows.length; i++){
  610. if(i == 1){
  611. a = i
  612. }else{
  613. a = i - 1
  614. }
  615. if(model.getValue(xhiddenPrcpDetlPath+"["+kRows[a]+"]/actorddd") != model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd")){
  616. var doublek = "dd"
  617. var drugno = model.getValue(xPrcpDetlPath+"["+i+"]/drugno")
  618. if(drugno != "0"){
  619. //messageBox("항암 전송후 예약일자 변경을", "E001")
  620. //return;
  621. }
  622. }
  623. }
  624. //if(kRows.length >= 3){
  625. //var chkactorddd = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/rsrvtm");
  626. // for (i=1; i<kRows.length; i++){
  627. // var chkactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/rsrvtm");
  628. // if(chkactorddd != chkactorddd1){
  629. // messageBox("동일한 예약일자가 아니면 특조전송을 실시", "E001");
  630. // return;
  631. // }
  632. // }
  633. //}
  634. var kRows = kRow.split(",");
  635. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  636. if(kRows.length >= 3){
  637. for (i=1; i<kRows.length; i++){
  638. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  639. var drugno = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/drugno")
  640. if(drugno != "0"){
  641. //messageBox("항암 전송후 예약일자 변경을", "E001")
  642. //return;
  643. }
  644. }
  645. }
  646. var lRow = 0;
  647. var chkactorddd = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  648. for (i=1; i<Row; i++){
  649. var chkactorddd1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  650. if(chkactorddd == chkactorddd1){
  651. lRow = lRow +","+ i
  652. }
  653. }
  654. var lRows = lRow.split(",");
  655. for (i=1; i<Row; i++){
  656. var actordddchk = model.getValue(xPrcpDetlPath+"["+i+"]/actorddd");
  657. var actordddchk1 = model.getValue(xhiddenPrcpDetlPath+"["+i+"]/actorddd");
  658. if (actordddchk != actordddchk1){
  659. if (kRow != lRow){
  660. messageBox("동일한 일자를 모두 선택 하지 않으면 저장", "E001");
  661. return;
  662. }
  663. }
  664. }
  665. var vewactorddd1 = model.getValue(xPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  666. var vewactorddd4 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd");
  667. for (i=1; i<kRows.length; i++){
  668. var vewactorddd2 = model.getValue(xPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  669. var vewactorddd3 = model.getValue(xhiddenPrcpDetlPath+"["+kRows[i]+"]/actorddd");
  670. if(vewactorddd1 != vewactorddd2 && vewactorddd4==vewactorddd3){
  671. messageBox("예약 일자를 모두 동일한 일자로 변경 하지 않으면 저장", "E001");
  672. return;
  673. }
  674. }
  675. if(doublek != "dd"){
  676. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  677. var flag = "Change"
  678. model.removeNodeset("/root/send");
  679. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  680. model.makeValue("/root/send/drugdd",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  681. model.makeValue("/root/send/ordtm",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  682. model.makeValue("/root/send/acting",flag);
  683. model.makeValue("/root/send/prcpexecdeptcd",prcpexecdeptcd);
  684. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  685. model.makeValue("/root/send/anticncr/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  686. if(submit("TXMNI00102")){
  687. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  688. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  689. //20090318 dhkim messageBox로 변경
  690. //alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  691. messageBox(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'), "E");
  692. }
  693. if(submit("TXMNI00103")){
  694. model.makeValue("/root/send/pid",model.getValue("/root/send/anticncr/pid"));
  695. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  696. fbiztrgtman("acting");
  697. if(model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  698. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  699. grd_biztrgtman.row = iRow;
  700. //처방 상세내역
  701. fBiztrgtClick("acting");
  702. }else if (oRow != ""){
  703. grd_ordsper.row = oRow;
  704. fordsper();
  705. }
  706. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  707. model.copyNode("/root/hidden/main", "/root/main");
  708. messageBox("특조전송을", "I002");
  709. }
  710. }
  711. }else{
  712. var prcpexecdeptcd = model.getValue("/root/main/leftref/exec");
  713. var flag = "Change"
  714. model.removeNodeset("/root/send");
  715. model.makeValue("/root/send/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  716. model.makeValue("/root/send/drugdd",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/actorddd"));
  717. model.makeValue("/root/send/ordtm",model.getValue(xhiddenPrcpDetlPath+"["+kRows[1]+"]/ordtm"));
  718. model.makeValue("/root/send/acting",flag);
  719. model.makeValue("/root/send/prcpexecdeptcd",prcpexecdeptcd);
  720. model.makeValue("/root/send/prcpdetl",grd_prcpdetl.getupdatedataAll("i"));
  721. model.makeValue("/root/send/anticncr/pid",model.getValue("/root/main/rghtref/rghtreflist/pid"));
  722. if(submit("TXMNI00102")){
  723. //20081212 dhkim 0원수납 에러메세지 테스트 ..
  724. if(model.getValue('/root/savechangeinfo/rcptinfo/rcptYn') == 'N'){
  725. alert(model.getValue('/root/savechangeinfo/rcptinfo/errMsg'));
  726. }
  727. if(submit("TXMNI00103")){
  728. model.makeValue("/root/send/pid",model.getValue("/root/send/anticncr/pid"));
  729. //변경내용저장 실행후 업무대상리스트 다시 조회 실시
  730. fbiztrgtman("acting");
  731. if(model.getValue("/root/main/rghtref/rghtreflist/pid") == model.getValue(xBizTrgtManListPath+"["+iRow+"]/pid")){
  732. //업무대상리스트 다시 조회후 현제 Row의 위치에 선택 실시
  733. grd_biztrgtman.row = iRow;
  734. //처방 상세내역
  735. fBiztrgtClick("acting");
  736. }else if (oRow != ""){
  737. grd_ordsper.row = oRow;
  738. fordsper();
  739. }
  740. //예약일자 변경시 이전 날짜 선택 여부를 위해서 노드를 copy해둠
  741. model.copyNode("/root/hidden/main", "/root/main");
  742. }
  743. messageBox("특조전송을", "I002");
  744. }
  745. }
  746. }
  747. */
  748. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  749. //+++++++++++++++++++++++++++++++++++++++++++2009.03.18 dhkim+++++++++++++++++++++++++++++++++++++++++++++++//
  750. //+++++++++++++++++++++++++++++++++++++++++++주석처리한 펑션 end ++++++++++++++++++++++++++++++++++++++++++++//
  751. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//