SMPID20400.js 62 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607
  1. //=================================================================================================
  2. // 외래사후심사 대상자조회 화면(김상진)
  3. // 수정이력
  4. // - 2007.03.22 / 정주미
  5. // - 2008.06.03 / 김상진
  6. //==================================================================================================
  7. /* --------------------------------------------------------------------------------------------------
  8. Fucntion Name || Description
  9. -----------------------------------------------------------------------------------------------------
  10. fInitialize : 화면 초기화
  11. fGetOutAftJudgTrgtManList() // "조회" Btn 외래사후심사대상자 조회를 요청한다.
  12. -------------------------------------------------------------------------------------------------- */
  13. // Global 변수 선언
  14. var gToday = new Date();
  15. var gBaseyear = gToday.getDateFormat("YYYY"); // (dateHelper.js)에서 제공하는 함수를 사용하여 해당 년를 구한다.
  16. var gBasemonth = gToday.getDateFormat("MM");
  17. var gBaseday = gToday.getDateFormat("DD");
  18. var gCurrentdd = gBaseyear + gBasemonth + gBaseday;
  19. var gCurrentym = gBaseyear + gBasemonth;
  20. var gUserid = getUserId();
  21. // 20100420 환경초기화를 위한 로딩상태 저장
  22. var gClbsmast_refdata = "";
  23. var gClbsmast_sizedata = "";
  24. var gSpecclbs_refdata = "";
  25. var gSpecclbs_sizedata = "";
  26. /**
  27. * @group :
  28. * @ver : 2008.06.02
  29. * @made by : jumi
  30. * @updated by : smartselly
  31. * @---------------------------------------------------
  32. * @type : function
  33. * @access : public
  34. * @desc : 화면 open시(와 초기화 버튼 클릭시) 화면 초기화 기능
  35. * @param :
  36. * @return :
  37. * @---------------------------------------------------
  38. */
  39. function fInitialize() {
  40. // 공통코드를 조회한다.
  41. // (ZBC001.js) com.ZBCMCODE 에서 기초코드 값 Get
  42. zbcfGetCodeList(
  43. new Array("P0008" // 보험유형
  44. ,"P0010" // 보조유형
  45. ,"P0151" // 심사상태 / 심사완료여부
  46. ,"P0291" // 청구분야(진료분야)
  47. ,"P0428" // 명세서구분코드
  48. ,"P0319" // 특정기호
  49. ,"P0155"
  50. ,"P0430" // 청구완료여부(명세서상태)
  51. ,"P0486"
  52. ),
  53. new Array("/root/init/P0008list"
  54. ,"/root/init/P0010list"
  55. ,"/root/init/P0151list"
  56. ,"/root/init/P0291list"
  57. ,"/root/init/P0428list"
  58. ,"/root/init/P0319list"
  59. ,"/root/init/P0155list"
  60. ,"/root/init/P0430list"
  61. ,"/root/init/P0486list"
  62. ),
  63. false );
  64. pamfGetCodeList(new Array("P0201"
  65. ,"PK032"
  66. ), new Array("/root/init/P0201sublist"
  67. ,"/root/init/PK032list"
  68. ));
  69. // 2008.06.04. smartselly
  70. // 화면기초combo(TRPID20401) + 심사차수(TRPID20405) + 심사자 default(TRPID20404) + 진료과,진료의(TRPID20309) 한번 submit 으로 통합
  71. // 사후 오류공통코드 포함 - 20091126 박창원
  72. var lv_date = gCurrentym.toDate("YYYYMM" + "01");
  73. lv_date = lv_date.getAddDate(-1, "M")
  74. gCurrentym = lv_date.getDateFormat("YYYYMM")
  75. model.setValue("/root/hidden/item_all/clamym",gCurrentym);
  76. model.setValue("/root/hidden/item_all/clamtoym",gCurrentym);
  77. model.setValue("/root/hidden/item_all/ioflag", "O");
  78. model.setValue("/root/hidden/item_all/judgid", gUserid );
  79. submit("TRPID20201",false);
  80. model.removeNodeset("root/init/judgrid");
  81. model.removeNodeset("root/init/suppkind");
  82. model.removeNodeset("root/init/orddrid");
  83. model.removeNodeset("root/init/orddrid2");
  84. model.removeNodeset("root/init/clamdept");
  85. model.removeNodeset("root/init/orddeptcd");
  86. model.removeNodeset("root/init/orddeptcd2");
  87. model.removeNodeset("root/init/item3");
  88. model.removeNodeset("root/init/clamdg");
  89. model.makeNode("root/init/judgrid");
  90. model.makeNode("root/init/suppkind");
  91. model.makeNode("root/init/orddrid");
  92. model.makeNode("root/init/orddrid2");
  93. model.makeNode("root/init/clamdept");
  94. model.makeNode("root/init/orddeptcd");
  95. model.makeNode("root/init/orddeptcd2");
  96. model.makeNode("root/init/item3");
  97. model.makeNode("root/init/clamdg");
  98. //----------------------------------------------
  99. // 20100222 일반의 조회 때문에 추가
  100. //----------------------------------------------
  101. model.removeNodeset("/root/init/tmporddrid/orddrid");
  102. model.makeValue("/root/init/tmporddrid/orddrid/orddridlist/cd","PAM99999");
  103. model.makeValue("/root/init/tmporddrid/orddrid/orddridlist/nm","일반의(과별)");
  104. model.makeValue("/root/init/tmporddrid/orddrid/orddridlist/dp","-");
  105. copyNodeType("/root/init/tmp/orddrid","/root/init/tmporddrid/orddrid","before");
  106. //----------------------------------------------
  107. //----------------------------------------------
  108. // 20100205 진료과선택시 전체의사 때문에 추가
  109. //----------------------------------------------
  110. model.removeNodeset("/root/init/tmporddrid/orddrid");
  111. model.makeValue("/root/init/tmporddrid/orddrid/orddridlist/cd","");
  112. model.makeValue("/root/init/tmporddrid/orddrid/orddridlist/nm","");
  113. model.makeValue("/root/init/tmporddrid/orddrid/orddridlist/dp","-");
  114. copyNodeType("/root/init/tmp/orddrid","/root/init/tmporddrid/orddrid","before");
  115. //----------------------------------------------
  116. model.copyNode("root/init/judgrid", "root/init/tmp/judgrid");
  117. model.copyNode("root/init/suppkind", "root/init/tmp/suppkind");
  118. model.copyNode("root/init/orddrid", "root/init/tmp/orddrid");
  119. model.copyNode("root/init/orddrid2", "root/init/tmp/orddrid2");
  120. model.copyNode("root/init/clamdept", "root/init/tmp/clamdept");
  121. model.copyNode("root/init/orddeptcd", "root/init/tmp/orddeptcd");
  122. model.copyNode("root/init/orddeptcd2", "root/init/tmp/orddeptcd2");
  123. model.copyNode("root/init/item3", "root/init/tmp/item3");
  124. model.copyNode("root/init/clamdg", "root/init/tmp/clamdg");
  125. model.removeNodeset("root/init/tmp/judgrid");
  126. model.removeNodeset("root/init/tmp/suppkind");
  127. model.removeNodeset("root/init/tmp/orddrid");
  128. model.removeNodeset("root/init/tmp/orddrid2");
  129. model.removeNodeset("root/init/tmp/clamdept");
  130. model.removeNodeset("root/init/tmp/orddeptcd");
  131. model.removeNodeset("root/init/tmp/orddeptcd2");
  132. model.removeNodeset("root/init/tmp/item3");
  133. model.removeNodeset("root/init/tmp/clamdg");
  134. //-----------------------------------------------------------------------
  135. // 20100420 환경저장 조회부분 처리전 로딩상태 저장 (환경초기화에서 사용)
  136. //-----------------------------------------------------------------------
  137. // 1. 대상자 리스트
  138. var clbsmast_obj = document.controls.item("grd_clbsmast");
  139. for (var i = 0; i < clbsmast_obj.cols; i++) {
  140. var refval = clbsmast_obj.colAttribute(i, "ref");
  141. gClbsmast_refdata += refval + "^";
  142. var sizeval = clbsmast_obj.colWidth(i);
  143. gClbsmast_sizedata += sizeval + "^";
  144. }
  145. gClbsmast_refdata = gClbsmast_refdata.substring(0, gClbsmast_refdata.length-1);
  146. gClbsmast_sizedata = gClbsmast_sizedata.substring(0, gClbsmast_sizedata.length-1);
  147. // 2. 선별대상자 리스트
  148. var specclbs_obj = document.controls.item("grd_specclbs");
  149. for (var i = 0; i < specclbs_obj.cols; i++) {
  150. var refval = specclbs_obj.colAttribute(i, "ref");
  151. gSpecclbs_refdata += refval + "^";
  152. var sizeval = specclbs_obj.colWidth(i);
  153. gSpecclbs_sizedata += sizeval + "^";
  154. }
  155. gSpecclbs_refdata = gSpecclbs_refdata.substring(0, gSpecclbs_refdata.length-1);
  156. gSpecclbs_sizedata = gSpecclbs_sizedata.substring(0, gSpecclbs_sizedata.length-1);
  157. //-----------------------------------------------------------------------
  158. //---------------------------------------------------------------------------------------------
  159. // 환경저장 조회부분(환경저장된 컬럼 ref순서대로 colMove시킨다.
  160. //---------------------------------------------------------------------------------------------
  161. model.setValue("/root/send/listval/uuee/scrnid", "SMPID20400"); // SMPID20400_외래사후심사대상자조회
  162. if (submit("TRPID21602",false)) {
  163. // 20100421 다중처리로 수정
  164. for ( x = 1; x <= model.getXPathValue( "count(/root/init/listval/uuee)" ) ; x++ ) {
  165. var compsnm = model.getValue("/root/init/listval/uuee[" + x + "]/compsnm");
  166. if (compsnm) { // Grid ID 정보
  167. var refdata = model.getValue("/root/init/listval/uuee[" + x + "]/compscnts"); // Grid의 칼럼명
  168. var sizedata = model.getValue("/root/init/listval/uuee[" + x + "]/compssizecnts"); // Grid의 칼럼Size
  169. var grdobj = document.controls.item(compsnm);
  170. var refarr = refdata.split("^");
  171. var sizearr = sizedata.split("^");
  172. var colcnt = "";
  173. var size = "";
  174. for(var i = 0; i < refarr.length; i++) {
  175. colcnt = grdobj.colref("" + refarr[i] + "");
  176. if (i != colcnt) {
  177. grdobj.colMove(i, colcnt, "before",false);
  178. }
  179. size = sizearr[i];
  180. grdobj.colWidth(i) = eval(size);
  181. }
  182. //grdobj.refresh()
  183. var caption = ""
  184. for( var i = 1; i < grdobj.cols ; i++ ){
  185. if (caption == "") {
  186. caption = grdobj.textMatrix(0,i);
  187. } else {
  188. caption += "^" + grdobj.textMatrix(0,i);
  189. }
  190. }
  191. grdobj.caption = caption;
  192. }
  193. }
  194. }
  195. // main / send / hidden 데이터를 초기화
  196. fInitSrchData();
  197. // 사후심사 화면에서 등록번호를 입력하고 Enter 친 경우 해당 환자를 조회
  198. var patunitsrch1 = model.getValue("/root/send/item1/patunitsrch1");
  199. model.setValue("/root/send/item1/patunitsrch1", patunitsrch1);
  200. if (patunitsrch1) { // 대상자 화면을 취소시 재조회
  201. fSetPatUnitSrch1pidSrch();
  202. }
  203. //model.refresh();
  204. // 로그인심사자 Default Setting
  205. // 2011.01.17 경북대김순애샘요청으로 막음. 진료과로 심사하신다고함
  206. /*
  207. if ( model.getValue("/root/init/item3/judgidyn") == "Y" ) {
  208. model.setValue("/root/send/item1/judgrid", gUserid );
  209. } else {
  210. model.setValue("/root/send/item1/judgrid", "" );
  211. }
  212. */
  213. // 청구차수조회위한 청구월, 내원구분 Default Setting
  214. model.setValue("/root/send/item1/clamym", gCurrentym);
  215. model.setValue("/root/send/item1/clamtoym", gCurrentym);
  216. //청구월기간조회 임시주석
  217. //model.setValue("/root/send/item1/clamtoym", gCurrentym);
  218. model.setValue("/root/send/item1/ioflag", "O");
  219. //cmb_judgrid.refresh();
  220. // 청구차수 Default Setting
  221. cmb_clamdg.select(0);
  222. cmb_srchcnt.select(0);
  223. // 심사상태 '미심사(A)'로 Default Setting
  224. cmb_judgendyn.select(5);
  225. //원내,원외 약품목수 초기화 -- 20091112 김상민 추가
  226. model.setValue("/root/send/item1/inoutflag", "3");
  227. model.setValue("/root/send/item1/drugcnt", "0");
  228. // 삭감처방 조회기준 초기화
  229. radio2.disabled = false;
  230. model.setValue("/root/send/item1/cutviewyn", "Y");
  231. model.setValue("/root/send/item1/cutprcpsel", "1");
  232. model.makeNode("/root/temp/tootpopupyn");
  233. //보험유형 기본 보험 + 급여로
  234. model.setValue("/root/send/item1/insukindcd", "1");
  235. cmb_insukind.refresh();
  236. model.refresh();
  237. }
  238. /**
  239. * @group :
  240. * @ver : 2008.06.02
  241. * @made by : jumi
  242. * @updated by : smartselly
  243. * @---------------------------------------------------
  244. * @type : function
  245. * @access : public
  246. * @desc : main / send / hidden 데이터를 초기화한다.
  247. * @param :
  248. * @return :
  249. * @---------------------------------------------------
  250. */
  251. function fInitSrchData() {
  252. // grid를 인스턴스에 mapping후 인스턴스에 해당하는 빈줄 1줄이 생기므로 grid 초기화
  253. model.removeNodeset("/root/main/list1/clbs");
  254. model.removeNodeset("/root/main/list2/judgcnt");
  255. // 청구과, 주치의 비활성화
  256. cmb_clamdeptcd.disabled = false;
  257. // 전체 청구과를 표시한다.
  258. cmb_clamdeptcd.choices.itemset.attribute("nodeset") = "/root/init/clamdept/clamdeptlist";
  259. cmb_orddrid.disabled = true;
  260. cmb_suppkind.choices.itemset.attribute("nodeset") = "/root/init/P0010list/P0010";
  261. model.resetInstanceNode("/root/send");
  262. model.resetInstanceNode("/root/hidden");
  263. // 오늘날짜로 청구일자을 표시한다.
  264. model.setValue("/root/send/item1/clamym", gCurrentym);
  265. model.setValue("/root/send/item1/clamtoym", gCurrentym);
  266. model.setValue("/root/hidden/clbs/basedd", gCurrentdd);
  267. model.setValue("/root/send/item1/ioflag", "O");
  268. // 조회 조건을 초기화한다.
  269. model.setValue("/root/send/item1/cmbtotordamt", "2"); // 2: 원미만
  270. model.setValue("/root/send/item1/cmbownbamt", "3"); // 3: 원이상
  271. model.setValue("/root/send/item1/choicdsrch1", "4"); // 4: EDI
  272. model.setValue("/root/send/item1/patmode", "1"); // 환자번호로 검색
  273. // 대상자 Grid의 메모 필드의 Btn 클릭시 보여지는 메모 저장용 Group을 감춘다.
  274. grp_judgmemo.visible = false;
  275. }
  276. /**
  277. * @group :
  278. * @ver : 2008.06.02
  279. * @made by : smartselly
  280. * @---------------------------------------------------
  281. * @type : function
  282. * @access : public
  283. * @desc : 화면 권한을 설정
  284. * @param :
  285. * @return :
  286. * @---------------------------------------------------
  287. */
  288. function fCheckAuth() {
  289. if (!isPopup()) { // (common.js) 자신이 팝업인지 아닌지를 리턴한다.
  290. model.setValue("properties/auth", "10100000"); // (RXP)팝업이 아닌 경우 처리권한을 부여하지 않는다.
  291. }
  292. var pAuth = !checkAuth("P"); // 출력권한(보고서 출력, 엑셀 내려받기 등)
  293. btn_excelsave.disabled = pAuth;
  294. btn_print.disabled = pAuth;
  295. var xAuth = !checkAuth("X"); // 처리권한(입력, 수정, 삭제 등)
  296. btn_confirm.disabled = xAuth;
  297. btn_cancel.disabled = xAuth;
  298. }
  299. //-------------------------
  300. // 환자조회
  301. //-------------------------
  302. function fGetPatinfo(srchcond) {
  303. var ipt_pid = model.getValue("/root/send/item1/patunitsrch1");
  304. if (ipt_pid) {
  305. model.setValue("/root/hidden/sppmc02500/cond/srchcond", srchcond); // 검색조건 : 1.등록번호, 2.환자명
  306. if (srchcond == "1") {
  307. model.setValue("/root/hidden/sppmc02500/cond/pid", ipt_pid);
  308. } else if (srchcond == "2") {
  309. model.setValue("/root/hidden/sppmc02500/cond/hngnm", ipt_pid);
  310. }
  311. } else {
  312. model.resetInstanceNode("/root/hidden/sppmc02500/cond");
  313. }
  314. // pam/commonweb/xrw/SPPMC02500_환자조회.xrw
  315. modal("SPPMC02500", "1", "150", "150", "SPPMC02500", "/root/hidden/sppmc02500/cond", "/root/send", "", ""); // SPPMC02500_환자조회.xrw
  316. var srch_pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  317. if (srch_pid) { // SPPMC02500_환자조회 화면에서 조회한 경우임
  318. model.removeNodeset("/root/main/patinfo/patinfolist"); // patinfolist가 제거됨 (resetInstanceNode의 경우 값은 지우고 노드는 남아있음)
  319. model.makeNode("/root/main/patinfo/patinfolist"); // SPPMC02500_환자조회 팝업을 다시 조회할 경우를 위해 다시 노드를 추가함
  320. model.setValue("/root/send/item1/patunitsrch1", srch_pid);
  321. } else {
  322. model.setValue("/root/send/item1/patunitsrch1", "");
  323. }
  324. ipt_patunitsrch.refresh();
  325. }
  326. /**
  327. * @group :
  328. * @ver : 2008.06.02
  329. * @made by : jumi
  330. * @updated by : smartselly
  331. * @---------------------------------------------------
  332. * @type : function
  333. * @access : public
  334. * @desc : 조회조건 체크
  335. * @param :
  336. * @return :
  337. * @---------------------------------------------------
  338. */
  339. function fCheckSrchCond(srchMode){
  340. // 환자단위조회를 하는 경우
  341. if (srchMode == "pidSrch") {
  342. var patunitsrch1 = model.getValue("/root/send/item1/patunitsrch1").getTrim(); // (stringHelper.js) 문자열 앞뒤 공백 제거
  343. var patmode = model.getValue("/root/send/item1/patmode"); // 환자조회시 번호로 할것인지 성명으로 할것인지 결정 - 20090810 박창원
  344. model.setValue("/root/send/item1/patunitsrch1", patunitsrch1);
  345. // 청구년월(fromdd ~ todd)를 확인한다.
  346. var clamym = model.getValue("/root/send/item1/clamym");
  347. if (!isValidDateTime(clamym,"YYYYMM")) {
  348. messageBox("올바른 형식의 청구년월을 ", "C001"); ///올바른 형식의 청구년월을 입력하십시오.
  349. return false;
  350. }
  351. var clamtoym = model.getValue("/root/send/item1/clamtoym");
  352. if (!isValidDateTime(clamtoym,"YYYYMM")) {
  353. messageBox("올바른 형식의 청구년월을 ", "C001"); ///올바른 형식의 청구년월을 입력하십시오.
  354. return false;
  355. }
  356. // 환자로 조회
  357. if (patunitsrch1 == "") {
  358. model.setValue("/root/send/item1/patunitsrch2", "");
  359. }
  360. // else if (patunitsrch1.isNumber()) { // (numericHelper.js) 숫자가 입력된 경우 환자번호로 조회한다.
  361. else if (patmode == "1") { // 환자번호로 조회한다.
  362. model.setValue("/root/send/item1/patunitsrch2", "pidSrch");
  363. // 문자입력시 이름 조회
  364. } else {
  365. if (patunitsrch1.length > 1) {
  366. model.setValue("/root/send/item1/patunitsrch2", "nmSrch");
  367. } else {
  368. messageBox("환자단위조회시 검색할 환자이름은 2글자 이상", "C001"); ///환자단위조회시 검색할 환자이름은 2글자 이상 입력하십시오.
  369. model.setFocus("ipt_patunitsrch");
  370. model.setValue("/root/send/item1/patunitsrch2", "");
  371. return false;
  372. }
  373. }
  374. }
  375. // 명세서별로 조회하는 경우
  376. else if (srchMode == "docuSrch") {
  377. // 명번호 범위를 확인한다.
  378. var docuseqno1 = model.getValue("/root/send/item1/docuseqno1");
  379. var docuseqno2 = model.getValue("/root/send/item1/docuseqno2");
  380. if (docuseqno1 != "" && docuseqno2 != "") {
  381. if (docuseqno1 > docuseqno2) {
  382. messageBox("명번호 검색 시작번호가 끝번호 보다 클 수", "I004"); ///명번호 검색 시작번호가 끝번호 보다 클 수 없습니다.
  383. return false;
  384. }
  385. model.setValue("/root/send/item1/patunitsrch2", "docuSrch");
  386. return true;
  387. } else {
  388. messageBox("명번호를", "C001"); ///명번호를 입력하십시오!
  389. return false;
  390. }
  391. }
  392. // 환자조회가 아닌경우
  393. else {
  394. model.setValue("/root/send/item1/patunitsrch2", "");
  395. // 명번호 범위를 확인한다.
  396. var docuseqno1 = model.getValue("/root/send/item1/docuseqno1");
  397. var docuseqno2 = model.getValue("/root/send/item1/docuseqno2");
  398. if (docuseqno1 != "" && docuseqno2 != "") {
  399. if (docuseqno1 > docuseqno2) {
  400. messageBox("명번호 검색 시작번호가 끝번호 보다 클 수", "I004"); ///명번호 검색 시작번호가 끝번호 보다 클 수 없습니다.
  401. return false;
  402. }
  403. }
  404. // 2008. 04. 23 / smartselly 상병코드 첫번째 조회값이 존재하고, 두번째 조회값 존재하지 않는 경우.
  405. var diagcdfr = model.getValue("/root/send/item1/diagcdfr");
  406. var diagcdto = model.getValue("/root/send/item1/diagcdto");
  407. if (diagcdfr != "" && diagcdto == "") {
  408. model.setValue("/root/send/item1/diagcdto", diagcdfr);
  409. }
  410. // 선별심사대상을 설정
  411. var choicdsrch2 = model.getValue("/root/send/item1/choicdsrch2").getTrim();
  412. model.setValue("/root/send/item1/choicdsrch2", choicdsrch2);
  413. if (choicdsrch2 != "") {
  414. var choicdsrch1 = model.getValue("/root/send/item1/choicdsrch1");
  415. if (choicdsrch1 == "") {
  416. messageBox("선별심사 조건을 명칭, 수가, EDI 중에", "C002"); ///선별심사 조건을 명칭, 수가, EDI 중에 선택하십시오.
  417. return false;
  418. }
  419. else if (choicdsrch1 == "1") { // 명칭인 경우
  420. for (var i=0; i < choicdsrch2.length; i++) {
  421. if (choicdsrch2.charCodeAt(i) > 255) { // 한글이 들어오면 255보다 크다.
  422. model.setValue("/root/send/item1/choicdsrch1", "2"); // 2: 한글명
  423. }
  424. }
  425. } else { // 수가와 EDI 코드 검색의 경우 대문자로 조건값을 변환한다.
  426. model.setValue("/root/send/item1/choicdsrch2", choicdsrch2.toUpperCase());
  427. }
  428. }
  429. // 총진료비, 본인부담금 입력 범위를 확인한다.
  430. var totordamt = model.getValue("/root/send/item1/totordamt");
  431. if (totordamt) {
  432. if (totordamt > 2147483647) { // java.lang.NumberFormatException: For input string: "2147483648" 에러 발생함
  433. messageBox("입력 가능한 총진료비 범위를", "E003"); ///입력 가능한 총진료비 범위를 초과하였습니다.
  434. return false;
  435. }
  436. }
  437. var ownbamt = model.getValue("/root/send/item1/ownbamt");
  438. if (ownbamt) {
  439. if (ownbamt > 2147483647) { // java.lang.NumberFormatException: For input string: "2147483648" 에러 발생함
  440. messageBox("입력 가능한 본인부담금 범위를", "E003"); ///입력 가능한 본인부담금 범위를 초과하였습니다.
  441. return false;
  442. }
  443. }
  444. // 상병기준 조회
  445. // 특정내역 기준 조회
  446. }
  447. return true;
  448. }
  449. // "조회" Btn 외래사후심사대상자 조회를 요청한다.
  450. function fGetOutAftJudgTrgtManList(srchMode){
  451. grp_judgmemo.visible = false; // 대상자 Grid의 메모 필드의 Btn 클릭시 보여지는 메모 저장용 Group을 감춘다.
  452. var allcntyn = model.getValue("/root/send/item1/allcnt");
  453. // 총건수 보기일때는 judgcnt만 초기화 - 20091126 박창원
  454. if (allcntyn != 'Y') {
  455. model.removeNodeset("/root/main/list1/clbs");
  456. }
  457. model.removeNodeset("/root/main/list2/judgcnt");
  458. if (fCheckSrchCond(srchMode)) {
  459. // 조회버튼으로 조회 시 offset은 "0"으로 설정하고 submit() 을 수행한다.
  460. /*
  461. opt_allcnt.value= "";
  462. opt_allend.value= "";
  463. opt_allunjudg.value= "";
  464. opt_allreservation.value= "";
  465. opt_alldelete.value= "";
  466. opt_alljudgprcs.value= "";
  467. opt_autodelete.value= "";
  468. opt_beforeend.value= "";
  469. opt_batchend.value= "";
  470. */
  471. model.setValue("/root/send/item1/lastclamym", "");
  472. model.setValue("/root/send/item1/lastclamdg", "");
  473. model.setValue("/root/send/item1/lastjudgno", "");
  474. model.setValue("/root/send/item1/lastpid", "");
  475. model.setValue("/root/send/item1/lastordcd", "");
  476. model.setValue("/root/send/item1/lastclamkey", "");
  477. model.setValue("/root/send/item1/lastedilnno", "");
  478. // 특정기호 전체 선택시 값 세팅 - 20091016 박창원
  479. var vall = model.getValue("/root/send/item7/vall");
  480. if (vall == 'Y') {
  481. model.setValue("/root/send/item1/spclmark",vall);
  482. }
  483. // 페이지 단위 조회시 기존 조회조건이 변경되었는지 체크한다.
  484. //model.copyNode("/root/hidden/item1", "/root/send/item1");
  485. // 총건수 보기일때는 총건수 산출작출 submit 호출 - 20091126 박창원
  486. if (allcntyn != 'Y') {
  487. submit("TRPID20402");
  488. // 검색 결과를 표시한다.
  489. fSetSrchJudgTrgtMan();
  490. } else {
  491. submit("TRPID20408");
  492. }
  493. if (getOpenerUID()) { // (common.js) Opener의 UID를 리턴, Opener가 없으면 "" 리턴
  494. // 대상자 리스트에서 선택된 row를 초기화한다. (대상자조회 pre/next 에서 사용)
  495. model.resetInstanceNode(opener.root.hidden.smpid20400.rslt.selectedRow);
  496. }
  497. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  498. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  499. grd_specclbs.refresh()
  500. } else {
  501. grd_clbsmast.refresh();
  502. }
  503. // 2008.05.17. / PJH / 윤영옥 / 조회옵션에서 심사중선택으로 나온 대상자는 전체가 전부 미심으로 변경되도록 하되, 변경전 msg 보여줄것
  504. // 20100120 사용자 오류 가능성 때문에 삭제 김용민
  505. /*
  506. if ( model.getValue("/root/send/item1/judgendyn") == "B" && grd_clbsmast.rows > 1 ) {
  507. fSetJudgEndYN("A");
  508. }
  509. */
  510. }
  511. var cutprcp = model.getValue("/root/send/item1/cutprcp");
  512. if(cutprcp == "Y"){
  513. var clbsList = instance1.selectSingleNode("/root/main/list1");
  514. //삭감처방은 GREEN색으로 색구분--2009-11-26
  515. var clbsNode = clbsList.childNodes;
  516. for (var i = 1; i <= clbsNode.length; i++) { // 조회된 대상자 만큼 돌면서
  517. // 선별심사 처방 색깔 구분
  518. var cutprcpyn = model.getValue("/root/main/list1/clbs["+ i +"]/cutprcpyn");
  519. if (cutprcpyn == "Y") {
  520. grd_clbsmast.rowStyle(i, "data", "background-color") = "#99cc00";
  521. } else {
  522. grd_clbsmast.rowStyle(i, "data", "background-color") = "#ffffff";
  523. }
  524. }
  525. } else {
  526. var clbsList = instance1.selectSingleNode("/root/main/list1");
  527. var clbsNode = clbsList.childNodes;
  528. for (var i = 1; i <= clbsNode.length; i++) { // 조회된 대상자 만큼 돌면서
  529. // 색깔 초기화
  530. grd_clbsmast.rowStyle(i, "data", "background-color") = "#ffffff";
  531. }
  532. }
  533. }
  534. // 사후심사 화면에서 등록번호를 입력하고 Enter 친 경우 해당 환자를 조회하여 보여준다.
  535. function fSetPatUnitSrch1pidSrch(){
  536. var patunitsrch1 = opener.model.getValue("/root/hidden/smpid20400/cond/pid");
  537. if (patunitsrch1 != "") {
  538. model.removeNodeset("/root/main/list1/clbs");
  539. model.removeNodeset("/root/main/list2/judgcnt");
  540. grp_judgmemo.visible = false; // 대상자 Grid의 메모 필드의 Btn 클릭시 보여지는 메모 저장용 Group을 감춘다.
  541. model.setValue("/root/send/item1/patunitsrch1", patunitsrch1);
  542. model.setValue("/root/send/item1/patunitsrch2", "pidSrch");
  543. // 조회버튼으로 조회 시 offset은 "0"으로 설정하고 submit() 을 수행한다.
  544. model.setValue("/root/send/item1/lastclamym", "");
  545. model.setValue("/root/send/item1/lastclamdg", "");
  546. model.setValue("/root/send/item1/lastjudgno", "");
  547. model.setValue("/root/send/item1/lastpid", "");
  548. model.setValue("/root/send/item1/lastpidsn", "");
  549. model.setValue("/root/send/item1/lastordcd", "");
  550. model.setValue("/root/send/item1/lastclamkey", "");
  551. model.setValue("/root/send/item1/lastedilnno", "");
  552. // 페이지 단위 조회시 기존 조회조건이 변경되었는지 체크한다.
  553. submit("TRPID20402");
  554. // 검색 결과를 표시한다.
  555. fSetSrchJudgTrgtMan();
  556. model.setFocus("ipt_patunitsrch");
  557. model.setValue(opener.root.hidden.smpid20400.rslt.oldPid, patunitsrch1); // 현재 조회된 환자의 등록번호를 저장
  558. //model.refresh();
  559. }
  560. }
  561. // 검색 결과를 표시한다.
  562. function fSetSrchJudgTrgtMan() {
  563. // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  564. fSetWorkStatCnt();
  565. // 한글명칭 검색시 Rdo에 선택이 표시되지 않으므로
  566. if (model.getValue("/root/send/item1/choicdsrch1") == "2") { // 2: 한글명
  567. model.setValue("/root/send/item1/choicdsrch1", "1");
  568. }
  569. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  570. var row = 0;
  571. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  572. row = grd_specclbs.rows - 1;
  573. grd_clbsmast.visible = false;
  574. grd_specclbs.visible = true;
  575. cap_judgtrgtman.text = "선별심사 대상자";
  576. } else {
  577. row = grd_clbsmast.rows - 1;
  578. grd_clbsmast.visible = true;
  579. grd_specclbs.visible = false;
  580. cap_judgtrgtman.text = "사후심사 대상자";
  581. }
  582. var clbsList = instance1.selectSingleNode("/root/main/list1/clbs");
  583. if (clbsList == null) { // 조회된 대상자가 없는 경우
  584. model.setValue("/root/send/item1/lastclamym", "");
  585. model.setValue("/root/send/item1/lastclamdg", "");
  586. model.setValue("/root/send/item1/lastjudgno", "");
  587. model.setValue("/root/send/item1/lastpid", "");
  588. model.setValue("/root/send/item1/lastpidsn", "");
  589. model.setValue("/root/send/item1/lastordcd", "");
  590. model.setValue("/root/send/item1/lastclamkey", "");
  591. model.setValue("/root/send/item1/lastedilnno", "");
  592. // 페이지 단위 조회시 기존 조회조건이 변경되었는지 체크한다.
  593. model.copyNode("/root/hidden/item1", "/root/send/item1");
  594. messageBox("검색된 심사대상자가", "I004"); ///검색된 심사대상자가 없습니다.
  595. return;
  596. }
  597. model.setValue("/root/send/item1/lastclamym", model.getValue("/root/main/list1/clbs["+ row +"]/clamym"));
  598. model.setValue("/root/send/item1/lastclamdg", model.getValue("/root/main/list1/clbs["+ row +"]/clamdg"));
  599. model.setValue("/root/send/item1/lastjudgno", model.getValue("/root/main/list1/clbs["+ row +"]/judgno"));
  600. model.setValue("/root/send/item1/lastpid", model.getValue("/root/main/list1/clbs["+ row +"]/pid"));
  601. model.setValue("/root/send/item1/lastpidsn", model.getValue("/root/main/list1/clbs["+ row +"]/pidsn"));
  602. model.setValue("/root/send/item1/lastordcd", model.getValue("/root/main/list1/clbs["+ row +"]/ordcd"));
  603. model.setValue("/root/send/item1/lastclamkey", model.getValue("/root/main/list1/clbs["+ row +"]/clamkey"));
  604. model.setValue("/root/send/item1/lastedilnno", model.getValue("/root/main/list1/clbs["+ row +"]/edilnno"));
  605. // 페이지 단위 조회시 기존 조회조건이 변경되었는지 체크한다.
  606. model.copyNode("/root/hidden/item1", "/root/send/item1");
  607. clbsList = instance1.selectSingleNode("/root/main/list1");
  608. var clbsNode = clbsList.childNodes;
  609. for (var i = 1; i <= clbsNode.length; i++) { // 조회된 대상자 만큼 돌면서
  610. var v252 = model.getValue("/root/main/list1/clbs["+ i +"]/v252");
  611. if (v252 == "Y")
  612. {
  613. grd_clbsmast.cellstyle("background-color",i,grd_clbsmast.colRef("oprcpyn") ) = "#ffcc99";
  614. }
  615. else
  616. {
  617. grd_clbsmast.cellstyle("background-color",i,grd_clbsmast.colRef("oprcpyn") ) = "#ffffff";
  618. }
  619. }
  620. /*
  621. // 2008-11-10 선별심사 색구분 제회요청(윤영옥선생님)
  622. clbsList = instance1.selectSingleNode("/root/main/list1"); //root/main/list1
  623. var clbsNode = clbsList.childNodes; //root/main/list1/clbs
  624. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  625. for (var i = 1; i <= clbsNode.length; i++) { // 조회된 대상자 만큼 돌면서
  626. // 선별심사 처방 색깔 구분
  627. var spcljudgyn = model.getValue("/root/main/list1/clbs["+ i +"]/spcljudgyn");
  628. if (spcljudgyn == "Y") {
  629. grd_specclbs.rowStyle(i, "data", "color") = "#ff3333";
  630. } else {
  631. grd_specclbs.rowStyle(i, "data", "color") = "#000000";
  632. }
  633. }
  634. } else {
  635. for (var i = 1; i <= clbsNode.length; i++) { // 조회된 대상자 만큼 돌면서
  636. // 선별심사 처방 색깔 구분
  637. var spcljudgyn = model.getValue("/root/main/list1/clbs["+ i +"]/spcljudgyn");
  638. if (spcljudgyn == "Y") {
  639. grd_clbsmast.rowStyle(i, "data", "color") = "#ff3333";
  640. } else {
  641. grd_clbsmast.rowStyle(i, "data", "color") = "#000000";
  642. }
  643. var v252 = model.getValue("/root/main/list1/clbs["+ i +"]/v252");
  644. }
  645. }
  646. */
  647. }
  648. // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  649. function fSetWorkStatCnt(){
  650. var srchmode = "clbsmast";
  651. //if (model.getValue("/root/send/item1/patunitsrch1") == "" && model.getValue("/root/send/item1/choicdsrch2")) {
  652. // srchmode = "specclbs";
  653. //}
  654. model.setValue("/root/hidden/clbs/srchmode", srchmode);
  655. model.setValue("/root/hidden/clbs/totcnt", instance1.getXPathString("count(/root/main/list1/clbs)")); // 총건수
  656. model.setValue("/root/hidden/clbs/endcnt", instance1.getXPathString("count(/root/main/list1/clbs[judgendyn='C' or judgendyn='E' or judgendyn='Z'])")); // 완료
  657. model.setValue("/root/hidden/clbs/unjudgcnt", instance1.getXPathString("count(/root/main/list1/clbs[judgendyn='A'])")); // 미심사
  658. model.setValue("/root/hidden/clbs/retecnt", instance1.getXPathString("count(/root/main/list1/clbs[judgendyn='N'])")); // 보류
  659. model.setValue("/root/hidden/clbs/delcnt", instance1.getXPathString("count(/root/main/list1/clbs[judgendyn='D'])")); // 삭제
  660. model.setValue("/root/hidden/clbs/autodelcnt", instance1.getXPathString("count(/root/main/list1/clbs[judgendyn='R'])")); // 자동삭제
  661. model.setValue("/root/hidden/clbs/judgprcscnt", instance1.getXPathString("count(/root/main/list1/clbs[judgendyn='B'])")); // 심사중
  662. model.setValue("/root/hidden/clbs/rptclamcnt", instance1.getXPathString("count(/root/main/list1/clbs[retdocuyn='Y'])")); // 반송불능여부
  663. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  664. var totCnt = 0;
  665. var cntE = 0; // 완료
  666. var cntA = 0; // 미심사
  667. var cntM = 0; // 보류
  668. var cntD = 0; // 삭제
  669. var cntR = 0; // 자동삭제
  670. var cntB = 0; // 심사중
  671. var cntJ = 0; // 반송불능여부
  672. for (var i = 1; i < grd_specclbs.rows; i++) {
  673. var curclamkey = model.getValue("/root/main/list1/clbs["+ i +"]/clamkey");
  674. var dupl = false;
  675. for (var j = (i-1); j >= 1; j--) {
  676. var preclamkey = model.getValue("/root/main/list1/clbs["+ j +"]/clamkey");
  677. if (curclamkey == preclamkey) {
  678. dupl = true;
  679. }
  680. }
  681. if (dupl == false) {
  682. var judgendyn = model.getValue("/root/main/list1/clbs["+ i +"]/judgendyn");
  683. if (judgendyn == "A") { // 미심사
  684. cntA++;
  685. }
  686. else if (judgendyn == "B") { // 심사중
  687. cntB++;
  688. }
  689. else if (judgendyn == "D") { // 삭제
  690. cntD++;
  691. }
  692. else if (judgendyn == "R") { // 자동삭제
  693. cntR++;
  694. }
  695. else if (judgendyn == "N") { // 보류
  696. cntM++;
  697. }
  698. else if (judgendyn == "C" || judgendyn == "E" || judgendyn == "Z") { // 완료
  699. cntE++;
  700. }
  701. var retdocuyn = model.getValue("/root/main/list1/clbs["+ i +"]/retdocuyn");
  702. if (retdocuyn == "Y") { // 반송불능여부
  703. cntJ++;
  704. }
  705. totCnt++;
  706. }
  707. }
  708. model.setValue("/root/hidden/clbs/totcnt", totCnt); // 총건수
  709. model.setValue("/root/hidden/clbs/endcnt", cntE); // 완료
  710. model.setValue("/root/hidden/clbs/unjudgcnt", cntA); // 미심사
  711. model.setValue("/root/hidden/clbs/retecnt", cntM); // 보류
  712. model.setValue("/root/hidden/clbs/autodelcnt", cntD); // 자동삭제
  713. model.setValue("/root/hidden/clbs/delcnt", cntD); // 삭제
  714. model.setValue("/root/hidden/clbs/judgprcscnt", cntB); // 심사중
  715. model.setValue("/root/hidden/clbs/rptclamcnt", cntJ); // 반송불능여부
  716. }
  717. model.refreshpart("/root/hidden/clbs/totcnt"); // 총건수
  718. model.refreshpart("/root/hidden/clbs/endcnt"); // 완료
  719. model.refreshpart("/root/hidden/clbs/unjudgcnt"); // 미심사
  720. model.refreshpart("/root/hidden/clbs/retecnt"); // 보류
  721. model.refreshpart("/root/hidden/clbs/delcnt"); // 삭제
  722. model.refreshpart("/root/hidden/clbs/autodelcnt"); // 자동삭제
  723. model.refreshpart("/root/hidden/clbs/judgprcscnt"); // 심사중
  724. model.refreshpart("/root/hidden/clbs/rptclamcnt"); // 반송불능여부
  725. }
  726. /*
  727. * @group :
  728. * @ver : 2008.08.11
  729. * @by : 김상진
  730. * @---------------------------------------------------
  731. * @type : function
  732. * @access : public
  733. * @desc : 일괄 심사완료 및 심사중해제
  734. * @param : 심사여부(A:미심사, C:심사완료)
  735. * @return :
  736. * @---------------------------------------------------
  737. */
  738. function fSetJudgEndYN(judgendyn) {
  739. var cnt = 0;
  740. var userid = getUserId(); // (common.js) 현재 로그인한 사용자 번호(ID)
  741. var errortype1 = "";
  742. var errortype2 = "";
  743. if (userid) {
  744. } else {
  745. userid = "12345678";
  746. }
  747. //심사중 해제 / 일괄완료 대상 저장 인스턴스 초기화
  748. model.removeNodeset("/root/send/list1/endclbs");
  749. var sendjudgendyn = model.getValue("/root/send/item1/judgendyn");
  750. // 심사상태 "심사중"을 조건으로 조회하여 "심사중 해제"를 요청한 경우에는
  751. // 대상자를 개별 선택할 필요가 없이 조회된 모든 대상자가 해제되도록 기능 부여
  752. //보류 추가
  753. if ((sendjudgendyn == "B" || sendjudgendyn == "N" ) && judgendyn == "A") {
  754. var alertmsg = "심사중";
  755. if (sendjudgendyn == "N" ){ alertmsg = "보류";}
  756. if (grd_clbsmast.rows > 1) { // 조회된 모든 심사중 대상자를 해제한다.
  757. for (var i = 1; i < grd_clbsmast.rows; i++) {
  758. var clamym = model.getValue("/root/main/list1/clbs[" + i + "]/clamym");
  759. var clamdg = model.getValue("/root/main/list1/clbs[" + i + "]/clamdg");
  760. var pid = model.getValue("/root/main/list1/clbs[" + i + "]/pid");
  761. var pidsn = model.getValue("/root/main/list1/clbs[" + i + "]/pidsn");
  762. // 20100120 완료상태일 경우도 심사중해제될수 있어 상태체크 조건 추가
  763. if ( model.getValue("/root/main/list1/clbs[" + i + "]/judgendyn") == "B" || model.getValue("/root/main/list1/clbs[" + i + "]/judgendyn") == "N") {
  764. cnt++;
  765. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/clamym", clamym);
  766. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/clamdg", clamdg);
  767. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/pid", pid);
  768. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/pidsn", pidsn);
  769. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/judgendyn", "A"); // A: 미심사
  770. }
  771. }
  772. if ( cnt > 0 ) {
  773. var ans = messageBox("조회된 모든 "+alertmsg+"인 자료 " + cnt + "건을 해제", "S001"); /// 조회된 모든 심사중 상태 *건을 해제 하시려면 예(Yes)\n아니면 아니오(No)
  774. if (ans == 6) { // return : yes=6, no=7
  775. submit("TXPID20302");
  776. if (ipt_patunitsrch.currentText.length > 1) {
  777. fGetOutAftJudgTrgtManList("pidSrch");
  778. } else {
  779. fGetOutAftJudgTrgtManList();
  780. }
  781. }
  782. }
  783. } else { // 조회된 대상자가 없는 경우임
  784. messageBox(alertmsg+"해제 할 대상자를 조회", "I008"); /// 심사중 해제 할 대상자를 조회 하십시오.
  785. }
  786. return;
  787. }
  788. else {
  789. if (grd_clbsmast.selectedRows == 0) {
  790. // "심사중해제" 버튼을 누른경우
  791. if (judgendyn == "A") {
  792. messageBox("심사중해제할 대상자를", "C002");
  793. }
  794. // "일괄완료" 버튼을 누른경우
  795. // 20090921 박창원 일괄완료의 플레그 값을 변경
  796. else if (judgendyn == "Z") {
  797. messageBox("일괄완료할 대상자를", "C002");
  798. }
  799. // "일괄보류" 버튼을 누른경우
  800. // 20090921 박창원 일괄완료의 플레그 값을 변경
  801. else if (judgendyn == "N") {
  802. messageBox("일괄보류할 대상자를", "C002");
  803. }
  804. return;
  805. }
  806. var chk;
  807. // 2008.04.24 / PJH / (윤영옥요청) 현재 심사중인 심사자와 관계없이 해제해달라는 요청으로 막음 처리
  808. for (var i = 0; i < grd_clbsmast.selectedRows; i++) {
  809. var row = grd_clbsmast.selectedrow(i);
  810. var sel_clamym = model.getValue("/root/main/list1/clbs[" + row + "]/clamym");
  811. var sel_clamdg = model.getValue("/root/main/list1/clbs[" + row + "]/clamdg");
  812. var sel_pid = model.getValue("/root/main/list1/clbs[" + row + "]/pid");
  813. var sel_pidsn = model.getValue("/root/main/list1/clbs[" + row + "]/pidsn");
  814. var sel_clamendyn = model.getValue("/root/main/list1/clbs[" + row + "]/clamendyn");
  815. var sel_judgendyn = model.getValue("/root/main/list1/clbs[" + row + "]/judgendyn");
  816. var sel_lockyn = model.getValue("/root/main/list1/clbs[" + row + "]/lockyn");
  817. var sel_diagnm = model.getValue("/root/main/list1/clbs[" + row + "]/diagnm");
  818. var sel_payownbrate = model.getValue("/root/main/list1/clbs[" + row + "]/payownbrate");
  819. var sel_mt014 = model.getValue("/root/main/list1/clbs[" + row + "]/mt014");
  820. chk = "false";
  821. // "일괄완료"할때는 미심사나 심사중인 경우만 가능
  822. // 20090921 박창원 일괄완료의 플레그 값을 변경
  823. // 20110207 경북대 일괄완료시 통합완료도 되게 추가요청
  824. if (judgendyn == "Z") {
  825. if (sel_diagnm != "" && (sel_judgendyn == "A" || sel_judgendyn == "B" || sel_judgendyn == "E" || sel_judgendyn == "N")
  826. && !((sel_payownbrate == 5 || sel_payownbrate == 10) && sel_mt014 == "" ) ) {
  827. chk = "true"
  828. }
  829. }
  830. // "심사중해제"이면 심사중인 경우만 가능
  831. else if (judgendyn == "A") {
  832. if (sel_judgendyn == "B") {
  833. chk = "true";
  834. }
  835. }
  836. //"일괄완료"할때는 미심사나 심사중인 경우만 가능
  837. else if (judgendyn == "N") {
  838. if (sel_judgendyn == "A" || sel_judgendyn == "B") {
  839. chk = "true"
  840. }
  841. }
  842. if (chk == "true") {
  843. cnt++;
  844. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/clamym", sel_clamym);
  845. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/clamdg", sel_clamdg);
  846. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/pid", sel_pid);
  847. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/pidsn", sel_pidsn);
  848. model.makeValue("/root/send/list1/endclbs[" + cnt + "]/judgendyn", judgendyn); // A: 미심사, C:일괄완료
  849. } else {
  850. errortype1 = "청구된 자료";
  851. }
  852. }
  853. if (cnt > 0) {
  854. if (judgendyn == "Z") {
  855. // 20090921 박창원 일괄완료의 플레그 값을 변경
  856. var ans = messageBox(cnt + "건을 일괄완료", "S001"); /// *건을 일괄완료 하시려면 예(Yes)\n아니면 아니오(No)
  857. var selectedmaxrow = 0;
  858. if (ans == 6) { // return : yes=6, no=7
  859. submit("TXPID20302");
  860. //2011.02.07 경북대 심사팀 오영화샘요청 일괄완료저장시 대상자 리프레쉬 안되게 요청
  861. //fGetOutAftJudgTrgtManList();
  862. for (var i = 0; i < grd_clbsmast.selectedRows; i++) {
  863. var row = grd_clbsmast.selectedrow(i);
  864. var sel_diagnm = model.getValue("/root/main/list1/clbs[" + row + "]/diagnm");
  865. var sel_judgendyn = model.getValue("/root/main/list1/clbs[" + row + "]/judgendyn");
  866. if (sel_diagnm != "" && (sel_judgendyn == "A" || sel_judgendyn == "B" || sel_judgendyn == "E" || sel_judgendyn == "N")) {
  867. model.setValue("/root/main/list1/clbs[" + row + "]/judgendyn", "Z");
  868. if (selectedmaxrow == 0)
  869. {
  870. selectedmaxrow = row;
  871. }
  872. }
  873. }
  874. grd_clbsmast.refresh();
  875. // 일괄완료 후 다음 심사 대상자 가져오기
  876. var selectedRow = selectedmaxrow;
  877. if (selectedRow) {
  878. var trgtmanlist = instance1.selectSingleNode("/root/main/list1/clbs");
  879. if (trgtmanlist == null) { // 조회된 대상자 목록이 없는 경우
  880. messageBox("조회된 심사대상자 목록이", "I004"); ///조회된 심사대상자 목록이 없습니다.
  881. } else {
  882. trgtmanlist = instance1.selectSingleNode("/root/main/list1");
  883. var maxRow = trgtmanlist.childNodes.length;
  884. var nextclamkey = "";
  885. if (selectedRow < maxRow) {
  886. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  887. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  888. // 다음대상자조회
  889. nextclamkey = fSrchNextJudgTrgtManSPEC1(selectedRow, judgendyn);
  890. } else {
  891. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/judgendyn", judgendyn);
  892. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/lastupdtrid", userid);
  893. // 다음대상자조회
  894. nextclamkey = fSrchNextJudgTrgtManCLBS1(selectedRow, judgendyn);
  895. }
  896. if (nextclamkey) {
  897. var irow = opener.model.getValue("/root/hidden/smpid20400/rslt/selectedRow");
  898. var clamym = model.getValue("/root/main/list1/clbs["+ irow +"]/clamym");
  899. var clamdg = model.getValue("/root/main/list1/clbs["+ irow +"]/clamdg");
  900. var pid = model.getValue("/root/main/list1/clbs["+ irow +"]/pid");
  901. var pidsn = model.getValue("/root/main/list1/clbs["+ irow +"]/pidsn");
  902. var gridjudgendyn = model.getValue("/root/main/list1/clbs["+ irow +"]/judgendyn");
  903. //var gridcutprcpyn = model.getValue("/root/main/list1/clbs["+ irow +"]/cutprcpyn");
  904. var gridcutprcpyn = model.getValue("/root/send/item1/cutprcpsel");
  905. var gridtootpopyn = model.getValue("/root/temp/tootpopupyn");
  906. model.setValue(opener.root.hidden.smpid20400.rslt.clamym, clamym);
  907. model.setValue(opener.root.hidden.smpid20400.rslt.clamdg, clamdg);
  908. model.setValue(opener.root.hidden.smpid20400.rslt.pid, pid);
  909. model.setValue(opener.root.hidden.smpid20400.rslt.pidsn, pidsn);
  910. model.setValue(opener.root.hidden.smpid20400.rslt.judgendyn, gridjudgendyn);
  911. model.setValue(opener.root.hidden.smpid20400.rslt.cutprcpyn, gridcutprcpyn);
  912. model.setValue(opener.root.hidden.smpid20400.rslt.tootpopupyn, gridtootpopyn);
  913. opener.javascript.fGetOutAftJudgMngt();
  914. setPopupRefresh(pid);
  915. return;
  916. } else {
  917. messageBox("다음 심사 대상자의 정보가", "I004"); ///다음 심사 대상자의 정보가 없습니다.
  918. }
  919. } else {
  920. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/judgendyn", judgendyn);
  921. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/lastupdtrid", userid);
  922. fSetWorkStatCnt(); // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  923. model.refresh();
  924. // 마지막 줄인 경우 이후 대상자가 없다.
  925. messageBox("조회된 마지막 심사대상자 입니다. 이후 심사 대상자가", "I004"); ///조회된 마지막 심사대상자 입니다. 이후 심사 대상자가 없습니다.
  926. }
  927. }
  928. }
  929. else {
  930. messageBox("화면이 변경되었으므로 다음 대상자를 다시", "C002"); ///화면이 변경되었으므로 다음 대상자를 다시 선택하십시오.
  931. }
  932. // 일괄완료 후 다음 대상자 가져오기 종료
  933. }
  934. }
  935. else if (judgendyn == "A") {
  936. var ans = messageBox(cnt + "건을 심사중해제", "S001"); /// *건을 심사중해제 하시려면 예(Yes)\n아니면 아니오(No)
  937. if (ans == 6) { // return : yes=6, no=7
  938. submit("TXPID20302");
  939. if (ipt_patunitsrch.currentText.length > 1) {
  940. fGetOutAftJudgTrgtManList("pidSrch");
  941. } else {
  942. fGetOutAftJudgTrgtManList();
  943. }
  944. }
  945. }
  946. else if (judgendyn == "N") {
  947. // 20090921 박창원 일괄완료의 플레그 값을 변경
  948. var ans = messageBox(cnt + "건을 일괄보류", "S001"); /// *건을 일괄완료 하시려면 예(Yes)\n아니면 아니오(No)
  949. var selectedmaxrow = 0;
  950. if (ans == 6) { // return : yes=6, no=7
  951. submit("TXPID20302");
  952. //2011.02.07 경북대 심사팀 오영화샘요청 일괄완료저장시 대상자 리프레쉬 안되게 요청
  953. //fGetOutAftJudgTrgtManList();
  954. for (var i = 0; i < grd_clbsmast.selectedRows; i++) {
  955. var row = grd_clbsmast.selectedrow(i);
  956. model.setValue("/root/main/list1/clbs[" + row + "]/judgendyn", judgendyn);
  957. if (selectedmaxrow == 0)
  958. {
  959. selectedmaxrow = row;
  960. }
  961. }
  962. grd_clbsmast.refresh();
  963. // 일괄완료 후 다음 심사 대상자 가져오기
  964. var selectedRow = selectedmaxrow;
  965. if (selectedRow) {
  966. var trgtmanlist = instance1.selectSingleNode("/root/main/list1/clbs");
  967. if (trgtmanlist == null) { // 조회된 대상자 목록이 없는 경우
  968. messageBox("조회된 심사대상자 목록이", "I004"); ///조회된 심사대상자 목록이 없습니다.
  969. } else {
  970. trgtmanlist = instance1.selectSingleNode("/root/main/list1");
  971. var maxRow = trgtmanlist.childNodes.length;
  972. var nextclamkey = "";
  973. if (selectedRow < maxRow) {
  974. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  975. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  976. // 다음대상자조회
  977. nextclamkey = fSrchNextJudgTrgtManSPEC1(selectedRow, judgendyn);
  978. } else {
  979. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/judgendyn", judgendyn);
  980. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/lastupdtrid", userid);
  981. // 다음대상자조회
  982. nextclamkey = fSrchNextJudgTrgtManCLBS1(selectedRow, judgendyn);
  983. }
  984. if (nextclamkey) {
  985. var irow = opener.model.getValue("/root/hidden/smpid20400/rslt/selectedRow");
  986. var clamym = model.getValue("/root/main/list1/clbs["+ irow +"]/clamym");
  987. var clamdg = model.getValue("/root/main/list1/clbs["+ irow +"]/clamdg");
  988. var pid = model.getValue("/root/main/list1/clbs["+ irow +"]/pid");
  989. var pidsn = model.getValue("/root/main/list1/clbs["+ irow +"]/pidsn");
  990. var gridjudgendyn = model.getValue("/root/main/list1/clbs["+ irow +"]/judgendyn");
  991. //var gridcutprcpyn = model.getValue("/root/main/list1/clbs["+ irow +"]/cutprcpyn");
  992. var gridcutprcpyn = model.getValue("/root/send/item1/cutprcpsel");
  993. var gridtootpopyn = model.getValue("/root/temp/tootpopupyn");
  994. model.setValue(opener.root.hidden.smpid20400.rslt.clamym, clamym);
  995. model.setValue(opener.root.hidden.smpid20400.rslt.clamdg, clamdg);
  996. model.setValue(opener.root.hidden.smpid20400.rslt.pid, pid);
  997. model.setValue(opener.root.hidden.smpid20400.rslt.pidsn, pidsn);
  998. model.setValue(opener.root.hidden.smpid20400.rslt.judgendyn, gridjudgendyn);
  999. model.setValue(opener.root.hidden.smpid20400.rslt.cutprcpyn, gridcutprcpyn);
  1000. model.setValue(opener.root.hidden.smpid20400.rslt.tootpopupyn, gridtootpopyn);
  1001. model.setValue(opener.root.hidden.orgjudgendyn, judgendyn);
  1002. opener.javascript.fGetOutAftJudgMngt();
  1003. setPopupRefresh(pid);
  1004. return;
  1005. } else {
  1006. messageBox("다음 심사 대상자의 정보가", "I004"); ///다음 심사 대상자의 정보가 없습니다.
  1007. }
  1008. } else {
  1009. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/judgendyn", judgendyn);
  1010. model.setValue("/root/main/list1/clbs["+ selectedRow +"]/lastupdtrid", userid);
  1011. fSetWorkStatCnt(); // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  1012. model.refresh();
  1013. // 마지막 줄인 경우 이후 대상자가 없다.
  1014. messageBox("조회된 마지막 심사대상자 입니다. 이후 심사 대상자가", "I004"); ///조회된 마지막 심사대상자 입니다. 이후 심사 대상자가 없습니다.
  1015. }
  1016. }
  1017. }
  1018. else {
  1019. messageBox("화면이 변경되었으므로 다음 대상자를 다시", "C002"); ///화면이 변경되었으므로 다음 대상자를 다시 선택하십시오.
  1020. }
  1021. // 일괄보류 후 다음 대상자 가져오기 종료
  1022. }
  1023. }
  1024. }
  1025. }
  1026. }
  1027. function fSrchNextJudgTrgtManSPEC1( selectedRow, judgendyn) { // selectedRow: 현재 선택된 row / judgendyn: 심사완료여부
  1028. var judgendcheck;
  1029. var nowjudgendyn;
  1030. var nextclamym = "";
  1031. var nextclamkey = "";
  1032. var trgtmanclamkey = model.getValue("/root/main/list1/clbs["+ selectedRow +"]/clamkey");
  1033. var selectjudgendyn = model.getValue("/root/send/item1/judgendyn");
  1034. var userid = getUserId();
  1035. for (var i = 1; i < grd_specclbs.rows; i++) {
  1036. if (trgtmanclamkey == model.getValue("/root/main/list1/clbs["+ i +"]/clamkey")) {
  1037. model.setValue("/root/main/list1/clbs["+ i +"]/judgendyn", judgendyn);
  1038. model.setValue("/root/main/list1/clbs["+ i +"]/lastupdtrid", userid);
  1039. } else if (i > selectedRow && nextclamkey == "") { // 현재 row 이후의 대상자 중 미심사 상태
  1040. // 조회조건이 심사완료, 통합완료, 일괄완료인경우는 바로 다음 대상자를 조회
  1041. if (selectjudgendyn == "C" || selectjudgendyn == "E" || selectjudgendyn == "Z") {
  1042. model.setValue(opener.root.hidden.smpid20400.rslt.selectedRow, i);
  1043. grd_specclbs.row = i;
  1044. nextclamkey = model.getValue("/root/main/list1/clbs["+ i +"]/clamkey");
  1045. // 나머지는 미심사, 보류, 심사중인 다음 대상자를 조회한다.
  1046. } else {
  1047. nowjudgendyn = model.getValue("/root/main/list1/clbs["+ i +"]/judgendyn");
  1048. if (nowjudgendyn == "A" || nowjudgendyn == "N" || nowjudgendyn == "B" ) {
  1049. model.setValue(opener.root.hidden.smpid20400.rslt.selectedRow, i);
  1050. grd_specclbs.row = i;
  1051. nextclamkey = model.getValue("/root/main/list1/clbs["+ i +"]/clamkey");
  1052. }
  1053. }
  1054. }
  1055. }
  1056. fSetWorkStatCnt(); // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  1057. model.refresh();
  1058. return nextclamkey;
  1059. }
  1060. function fSrchNextJudgTrgtManCLBS1( selectedRow, judgendyn) { // selectedRow: 현재 선택된 row
  1061. var judgendcheck;
  1062. var nowjudgendyn;
  1063. var selectjudgendyn;
  1064. var nextclamkey = "";
  1065. var trgtmanclamkey = model.getValue("/root/main/list1/clbs["+ selectedRow +"]/clamkey");
  1066. var selectjudgendyn = model.getValue("/root/send/item1/judgendyn");
  1067. // 현재 row 이후의 대상자 중 미심사 상태
  1068. for (var i = parseInt(selectedRow, 10) + 1; i < grd_clbsmast.rows; i++) {
  1069. if (trgtmanclamkey != model.getValue("/root/main/list1/clbs["+ i +"]/clamkey")) {
  1070. // 조회조건이 심사완료, 통합완료, 일괄완료인경우는 바로 다음 대상자를 조회
  1071. if (selectjudgendyn == "C" || selectjudgendyn == "E" || selectjudgendyn == "Z") {
  1072. model.setValue(opener.root.hidden.smpid20400.rslt.selectedRow, i);
  1073. grd_clbsmast.row = i;
  1074. nextclamkey = model.getValue("/root/main/list1/clbs["+ i +"]/clamkey");
  1075. fSetWorkStatCnt(); // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  1076. model.refresh();
  1077. return nextclamkey;
  1078. // 나머지는 미심사, 보류, 심사중인 다음 대상자를 조회한다.
  1079. } else {
  1080. nowjudgendyn = model.getValue("/root/main/list1/clbs["+ i +"]/judgendyn");
  1081. if (nowjudgendyn == "A" || nowjudgendyn == "N" || nowjudgendyn == "B" ) {
  1082. model.setValue(opener.root.hidden.smpid20400.rslt.selectedRow, i);
  1083. grd_clbsmast.row = i;
  1084. nextclamkey = model.getValue("/root/main/list1/clbs["+ i +"]/clamkey");
  1085. fSetWorkStatCnt(); // 총건수와 기타 심사상태에 따른 cnt를 표시한다.
  1086. model.refresh();
  1087. return nextclamkey;
  1088. }
  1089. }
  1090. }
  1091. }
  1092. model.refresh();
  1093. return nextclamkey;
  1094. }
  1095. function fGetSnglcalcscorcd() {
  1096. //-----------------------------------------------------------------------
  1097. // SMPIC00200_수가조회 parameter setting
  1098. //-----------------------------------------------------------------------
  1099. // 1. 기준일자 : 처방시작일
  1100. var ordfromdd = model.getValue("/root/main/item1/clbs/insukindcd");
  1101. if (ordfromdd) {
  1102. model.setValue("/root/hidden/smpic00200/judgsrch/con1_dd", ordfromdd);
  1103. }
  1104. // 2.그룹싱글구분 (G, S)
  1105. model.setValue("/root/hidden/smpic00200/judgsrch/con2_gsflag", "S");
  1106. // 3. 검색구분 (수가코드:calcscorcd, EDI코드:edicd, 한글명:hngnm)
  1107. model.setValue("/root/hidden/smpic00200/judgsrch/con3_search1", "hngnm");
  1108. // 4. 검색명
  1109. model.setValue("/root/hidden/smpic00200/judgsrch/con4_search2", "");
  1110. // 5. 보험유형
  1111. var insukindcd = model.getValue("/root/main/item1/clbs/insukindcd");
  1112. if (insukindcd == "11") {
  1113. model.setValue("/root/hidden/smpic00200/judgsrch/con5_insu", "insu");
  1114. }
  1115. else if (insukindcd == "21" || insukindcd == "22") {
  1116. model.setValue("/root/hidden/smpic00200/judgsrch/con5_insu", "proc");
  1117. }
  1118. else if (insukindcd == "31") {
  1119. model.setValue("/root/hidden/smpic00200/judgsrch/con5_insu", "autm");
  1120. }
  1121. else if (insukindcd == "41") {
  1122. model.setValue("/root/hidden/smpic00200/judgsrch/con5_insu", "indus");
  1123. } else {
  1124. model.setValue("/root/hidden/smpic00200/judgsrch/con5_insu", "insu");
  1125. }
  1126. model.removeNodeset("/root/hidden/smpic00200/rslt/mech"); // SMPIC00200_수가조회 에서 선택된 결과가 copyNode되는 경로임
  1127. model.removeNodeset("/root/hidden/smpic00200/rslt/picmmech"); // SMPIC00200_수가조회 에서 선택된 결과가 copyNode되는 경로임
  1128. modal("SMPIC00200", "1", "10", "10", "SMPIC00200", "root/hidden/smpic00200", "/root/temp", "", ""); // SMPIC00200_수가조회.xrw
  1129. var mechSelect = instance1.selectSingleNode("/root/temp/mech");
  1130. if (mechSelect == null) { // 선택한 코드가 없는 경우
  1131. messageBox("수가조회 화면에서 선택한 결과가", "I004"); ///수가조회 화면에서 선택한 결과가 없습니다.
  1132. return;
  1133. }
  1134. // SMPIC00200_수가조회 화면에서 보낸 결과 값에 대한 처리
  1135. model.makeNode("/root/hidden/smpic00200/rslt/mech");
  1136. model.makeNode("/root/hidden/smpic00200/rslt/picmmech");
  1137. model.copyNode("/root/hidden/smpic00200/rslt/mech", "/root/temp/mech");
  1138. model.copyNode("/root/hidden/smpic00200/rslt/picmmech", "/root/temp/picmmech");
  1139. model.removeNodeset("/root/temp"); // SMPIC00200_수가조회 에서 선택된 결과가 직접 전달되는 경로임
  1140. if (model.getValue("/root/hidden/smpic00200/rslt/mech/ordinptflag") != "A") { // 처방입력구분(코드군 P0141) A: 가능
  1141. messageBox("처방이 불가한 코드", "E008"); ///처방이 불가한 코드입니다.
  1142. return;
  1143. }
  1144. if (model.getValue("/root/hidden/smpic00200/rslt/mech/grupsnglflag") != "S") { // 그룹코드인 경우의 그룹코드에 속하는 싱글코드를 조회함.
  1145. model.setValue("/root/send/item1/choicdsrch2", model.getValue("/root/hidden/smpic00200/rslt/mech/calcscorcd"));
  1146. } else { // 싱글코드를 선택했을 때
  1147. model.setValue("/root/send/item1/choicdsrch2", model.getValue("/root/hidden/smpic00200/rslt/picmmech/picmmech_calcscorcd"));
  1148. }
  1149. model.setValue("/root/send/item1/choicdsrch1", "3");
  1150. rdo_mchrgcode.refresh();
  1151. ipt_choicdsrch.refresh();
  1152. }
  1153. // [SPPIZ00400_상병코드조회.xrw 에서 호출] 상병코드조회 팝업에서 선택한 상병을 상병 그리드에 반영
  1154. function fSetDiagCdNm() {
  1155. var diagcd = model.getValue("/root/hidden/sppiz00400/rslt/diagcd");
  1156. if (diagcd) {
  1157. model.setValue("/root/send/item1/diagcdfr", diagcd);
  1158. model.setValue("/root/send/item1/diagcdto", diagcd);
  1159. model.refreshpart("/root/send/item1/diagcdfr");
  1160. model.refreshpart("/root/send/item1/diagcdto");
  1161. }
  1162. }
  1163. //------------------------------------------------------------
  1164. // 진료정보조회 : SMMMO02500_환자진료정보.xrw
  1165. //------------------------------------------------------------
  1166. function fGetEmrInformation() {
  1167. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  1168. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  1169. grd_specclbs.refresh()
  1170. var row = grd_specclbs.row;
  1171. } else {
  1172. var row = grd_clbsmast.row;
  1173. }
  1174. fOpenSMMMO02500_1(model.getValue("/root/main/list1/clbs[" + row + "]/pid")); // SMMMO02500_환자진료정보.xrw
  1175. }
  1176. //------------------------------------------------------------
  1177. // EMR - 통합기록전체조회
  1178. //------------------------------------------------------------
  1179. function fGetAllEmrInformation() {
  1180. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  1181. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  1182. grd_specclbs.refresh()
  1183. var row = grd_specclbs.row;
  1184. } else {
  1185. var row = grd_clbsmast.row;
  1186. }
  1187. fOpenSMMRI00400(model.getValue("/root/main/list1/clbs[" + row + "]/pid"));
  1188. }
  1189. //------------------------------------------------------------
  1190. // 20100108 대상자 전체선택
  1191. //------------------------------------------------------------
  1192. function fsetAllClbslist() {
  1193. for( i = grd_clbsmast.fixedRows; i < grd_clbsmast.rows ; i++ ) {
  1194. grd_clbsmast.isSelected(i) = true;
  1195. }
  1196. }
  1197. function responseHandlerTRPID20402() {
  1198. copyNodeType("/root/main/list1","/root/hidden/list1","after");
  1199. model.removeNodeset("/root/hidden/list1/clbs");
  1200. fSetSrchJudgTrgtMan();
  1201. removeLoadingWindow();
  1202. model.refresh();
  1203. //
  1204. }
  1205. function fGetResetOptList() {
  1206. /*.value로 값 셋팅 화면느림. setvalue로 해야함. plet2*/
  1207. model.setValue(opt_allcnt.attribute("ref"), "");
  1208. model.setValue(opt_allend.attribute("ref"), "");
  1209. model.setValue(opt_allunjudg.attribute("ref"), "");
  1210. model.setValue(opt_allreservation.attribute("ref"), "");
  1211. model.setValue(opt_alldelete.attribute("ref"), "");
  1212. model.setValue(opt_alljudgprcs.attribute("ref"), "");
  1213. model.setValue(opt_autodelete.attribute("ref"),"");
  1214. model.setValue(opt_beforeend.attribute("ref"), "");
  1215. model.setValue(opt_batchend.attribute("ref"), "");
  1216. }
  1217. function setPopupRefresh(pid) {
  1218. var sChildSMMRI00400 = findChildWindowByScreenID("SMMRI00400");
  1219. if (sChildSMMRI00400 != null) {
  1220. var wndobj = getOpenWindow("SMMRI00400");
  1221. if(wndobj != null)
  1222. {
  1223. setParameter("SMMRI00400_param_pid", pid);
  1224. // 초기화함수 호출
  1225. wndobj.javascript.fInitalize();
  1226. }
  1227. }
  1228. var sChildSMPPI00700 = findChildWindowByScreenID("SMPPI00700");
  1229. if (sChildSMPPI00700 != null) {
  1230. var wndobj = getOpenWindow("SMPPI00700");
  1231. if(wndobj != null)
  1232. {
  1233. fGetDurginfo(wndobj);
  1234. }
  1235. }
  1236. var sChildSMAER00800 = findChildWindowByScreenID("SMAER00800");
  1237. if (sChildSMAER00800 != null) {
  1238. var wndobj = getOpenWindow("SMAER00800");
  1239. if(wndobj != null)
  1240. {
  1241. wndobj.javascript.model.makeValue("/root/send/data/singdata/srchdate1", model.getValue("/root/main/list1/clbs[" + grd_clbsmast.row + "]/indd"));
  1242. wndobj.javascript.model.makeValue("/root/send/data/singdata/srchpid", pid);
  1243. wndobj.javascript.model.makeValue("/root/send/data/singdata/orddeptcd", model.getValue("/root/main/list1/clbs[" + grd_clbsmast.row + "]/orddeptcd"));
  1244. wndobj.javascript.model.refresh();
  1245. wndobj.javascript.model.dispatch("xforms-ready");
  1246. }
  1247. }
  1248. var sChildSMPIJ02900 = findChildWindowByScreenID("SMPIJ02900");
  1249. if (sChildSMPIJ02900 != null) {
  1250. var wndobj = getOpenWindow("SMPIJ02900");
  1251. if(wndobj != null)
  1252. {
  1253. wndobj.javascript.model.dispatch("xforms-ready");
  1254. }
  1255. }
  1256. }
  1257. //약제누적팝업
  1258. function fGetDurginfo(wndobj) {
  1259. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  1260. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  1261. grd_specclbs.refresh()
  1262. var cur_row = grd_specclbs.row;
  1263. } else {
  1264. var cur_row = grd_clbsmast.row;
  1265. }
  1266. var vpid = model.getValue("/root/main/list1/clbs[" + cur_row + "]/pid");
  1267. var vhngnm = model.getValue("/root/main/list1/clbs[" + cur_row + "]/patnm");
  1268. var vprcpdd = getCurrentDate();
  1269. var vprcpcd = "";
  1270. setParameter("pid", vpid);
  1271. setParameter("hngnm", vhngnm);
  1272. setParameter("prcpdd", vprcpdd);
  1273. setParameter("prcpcd", vprcpcd);
  1274. if (wndobj != null) {
  1275. wndobj.javascript.fInitalize();
  1276. } else {
  1277. open("../../../pam/bfjudgcareweb/xrw/SMPPI00700_환자별약제누적관리", "1", "20", "80" ,"SMPPI00700_환자별약제누적관리", "", "");
  1278. }
  1279. }
  1280. function fMOpenSMPIJ02900() {
  1281. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  1282. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  1283. grd_specclbs.refresh()
  1284. var cur_row = grd_specclbs.row;
  1285. } else {
  1286. var cur_row = grd_clbsmast.row;
  1287. }
  1288. var vpid = model.getValue("/root/main/list1/clbs[" + cur_row + "]/pid");
  1289. setParameter("pid",vpid);
  1290. fOpenSMPIJ02900(vpid);
  1291. }
  1292. function fsetAllClsplist() {
  1293. modal("SPPIZ00200", "1", "10", "10", "SPPIZ00200", "", "", "", ""); // SPPIZ00200_첨부물자료관리.xrw
  1294. model.removeNodeset("/root/send/clsp/clsp");
  1295. model.resetInstanceNode("/root/send/saveclsp");
  1296. var clspcnt = getNodesetCount("/root/hidden/sppiz00200/rslt/clsp");
  1297. var spclmt015 = model.getValue("/root/hidden/sppiz00200/rslt/clsp[1]/spclspec");
  1298. var spclmt016 = model.getValue("/root/hidden/sppiz00200/rslt/clsp[2]/spclspec");
  1299. var totcnt = 0;
  1300. var message = messageBox("소명자료를 일괄 저장하시겠습니까?","Q999","");
  1301. if( message == 6 ){
  1302. for (var j=1; j <= clspcnt; j++ ){
  1303. var spclspec = model.getValue("/root/hidden/sppiz00200/rslt/clsp["+j+"]/spclspec");
  1304. var spclcd = model.getValue("/root/hidden/sppiz00200/rslt/clsp["+j+"]/spclcd");
  1305. var unitflag = model.getValue("/root/hidden/sppiz00200/rslt/clsp["+j+"]/unitflag");
  1306. if (spclspec != ""){
  1307. for (var i=0; i < grd_clbsmast.selectedRows; i++ ){
  1308. var row = grd_clbsmast.selectedrow(i);
  1309. var pid = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("pid"));
  1310. var pidsn = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("pidsn"));
  1311. var clamym = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("clamym"));
  1312. var clamdg = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("clamdg"));
  1313. var lockyn = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("lockyn"));
  1314. if (lockyn != "Y") {
  1315. totcnt = totcnt + 1;
  1316. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/pid", pid);
  1317. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/pidsn", pidsn);
  1318. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/clamym", clamym);
  1319. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/clamdg", clamdg);
  1320. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/workflag", "12");
  1321. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/unitflag", unitflag);
  1322. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/spclcd", spclcd);
  1323. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/spclspec", spclspec);
  1324. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/rowstat", "U");
  1325. }
  1326. }
  1327. }
  1328. }
  1329. if (spclmt015 != "" || spclmt016 != ""){
  1330. model.setValue("/root/send/saveclsp",getNodeListCSV(instance1.selectNodes("/root/send/clsp/clsp")));
  1331. submit("TXPID20308",false);
  1332. }
  1333. }
  1334. }
  1335. function fdelAllClsplist() {
  1336. model.removeNodeset("/root/send/clsp/clsp");
  1337. model.resetInstanceNode("/root/send/saveclsp");
  1338. var clspcnt = getNodesetCount("/root/hidden/sppiz00200/rslt/clsp");
  1339. var spclmt015 = model.getValue("/root/hidden/sppiz00200/rslt/clsp[1]/spclspec");
  1340. var spclmt016 = model.getValue("/root/hidden/sppiz00200/rslt/clsp[2]/spclspec");
  1341. var totcnt = 0;
  1342. var message = messageBox("소명자료를 일괄 삭제하시겠습니까?","Q999","");
  1343. if( message == 6 ){
  1344. for (var i=0; i < grd_clbsmast.selectedRows; i++ ){
  1345. var row = grd_clbsmast.selectedrow(i);
  1346. var pid = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("pid"));
  1347. var pidsn = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("pidsn"));
  1348. var clamym = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("clamym"));
  1349. var clamdg = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("clamdg"));
  1350. var lockyn = grd_clbsmast.valueMatrix(row,grd_clbsmast.colRef("lockyn"));
  1351. if (lockyn != "Y") {
  1352. totcnt = totcnt + 1;
  1353. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/pid", pid);
  1354. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/pidsn", pidsn);
  1355. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/clamym", clamym);
  1356. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/clamdg", clamdg);
  1357. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/workflag", "12");
  1358. model.makeValue("/root/send/clsp/clsp[" + totcnt + "]/rowstat", "D");
  1359. }
  1360. }
  1361. model.setValue("/root/send/saveclsp",getNodeListCSV(instance1.selectNodes("/root/send/clsp/clsp")));
  1362. submit("TXPID20309",false);
  1363. }
  1364. }
  1365. function fInsKindUpdtTrgtList(){
  1366. var srchmode = model.getValue("/root/hidden/clbs/srchmode");
  1367. if (srchmode == "specclbs") { // 선별심사 모드인 경우
  1368. grd_specclbs.refresh()
  1369. var clbsmast_obj = document.controls.item("grd_specclbs");
  1370. } else {
  1371. var clbsmast_obj = document.controls.item("grd_clbsmast");
  1372. }
  1373. var row = clbsmast_obj.row;
  1374. var vpid = clbsmast_obj.valueMatrix(row,clbsmast_obj.colRef("pid"));
  1375. var vorddeptcd = clbsmast_obj.valueMatrix(row,clbsmast_obj.colRef("orddeptcd"));
  1376. var vordfromdd = clbsmast_obj.valueMatrix(row,clbsmast_obj.colRef("ordfromdd"));
  1377. setParameter("sppid30000_pid", vpid);
  1378. setParameter("sppid30000_orddeptcd", vorddeptcd);
  1379. setParameter("sppid30000_orddd", vordfromdd);
  1380. var wndobj = getOpenWindow("SPPID30000");
  1381. if (wndobj != null) {
  1382. wndobj.javascript.fSetInit();
  1383. } else {
  1384. open("../../../pam/aftjudgweb/xrw/SPPID30000_유형변경대상자관리", "1", "20", "80" ,"SPPID30000_유형변경대상자관리", "", "");
  1385. }
  1386. }