SMPIB00500_필수심사대상생성기준관리.xrw 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>필수심사대상생성기준관리(SMPIB00500)</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list1>
  11. <surelist>
  12. <surecd/>
  13. <orddeptcd/>
  14. <diaggubun/>
  15. <diagcdfrom/>
  16. <diagnmfrom/>
  17. <diagcdto/>
  18. <diagnmto/>
  19. <amt/>
  20. <earncls1/>
  21. <earncls2/>
  22. <calcscorcd/>
  23. <ordnm/>
  24. <anticanflag/>
  25. <seq/>
  26. <changeflag/>
  27. </surelist>
  28. </list1>
  29. </main>
  30. <send>
  31. <itemchk>
  32. <surecd/>
  33. <orddeptcd/>
  34. <diaggubun/>
  35. <anticanflag/>
  36. <earncls1/>
  37. <earncls2/>
  38. <calcscorcd/>
  39. <ordnm/>
  40. <diagcd/>
  41. <diagnm/>
  42. </itemchk>
  43. <item2>
  44. <grdsrchnm>
  45. <searchkind/>
  46. <iptsearch/>
  47. </grdsrchnm>
  48. </item2>
  49. <item3>
  50. <srchdiag>
  51. <basedd/>
  52. <diagcd/>
  53. <diagnm/>
  54. <selectedrdodiagkind/>
  55. </srchdiag>
  56. </item3>
  57. <updatedata>
  58. <datalist/>
  59. </updatedata>
  60. </send>
  61. <init>
  62. <P0486list>
  63. <P0486>
  64. <cdnm/>
  65. <cdid/>
  66. </P0486>
  67. </P0486list>
  68. <orddeptcd>
  69. <orddeptcdlist>
  70. <cd/>
  71. <nm/>
  72. </orddeptcdlist>
  73. </orddeptcd>
  74. </init>
  75. <hidden>
  76. <sppiz00400>
  77. <rslt>
  78. <diagcd/>
  79. <diaghngnm/>
  80. <diagengnm/>
  81. </rslt>
  82. </sppiz00400>
  83. <smpic00200>
  84. <cond>
  85. <calcnm/>
  86. </cond>
  87. </smpic00200>
  88. </hidden>
  89. </root>
  90. </instance>
  91. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  92. <submission id="TRPAM00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/hidden/tmp"/>
  93. <submission id="TRPIB00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/item2/grdsrchnm" resultref="/root/temp"/>
  94. <submission id="TRPIB00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/itemchk" resultref="/root/main/list1"/>
  95. <submission id="TRPIB00502" mediatype="application/x-www-form-urlencoded" method="post" ref="root/send" resultref="root/init/ictplist"/>
  96. <submission id="TXPIB00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/updatedata" resultref="/root/result"/>
  97. <script type="javascript" ev:event="xforms-ready">
  98. <![CDATA[
  99. // (PAM.js) submission id="TRPAM00101" 를 사용하여 Combo item을 가져온다.
  100. pamGetDeptCDDrIDList();
  101. //처방분류코드 조회
  102. submit("TRPIB00502");
  103. // 공통코드를 조회한다.
  104. // (ZBC001.js) com.ZBCMCODE에서 기초코드 값을 가져와서 Combo 컨트롤 item으로 설정하기 위해 사용한다.
  105. zbcfGetCodeList(
  106. new Array("P0486"),new Array("/root/init/P0486list" ) // 필수심사항목
  107. );
  108. // 공백, 적용안함 등은 제외 (등록시는 사용안함)
  109. model.removeNodeset("/root/init/P0486list/P0486[cdid='' or cdid='X' or cdid='-' or cdid = '7']");
  110. // 필수심사항목 전체추가(맨위로)
  111. model.makeValue("/root/hidden/P0486list/P0486/cdid","");
  112. model.makeValue("/root/hidden/P0486list/P0486/cdnm","");
  113. copyNodeType("/root/init/P0486list","/root/hidden/P0486list","before");
  114. // 진료과 전체추가(맨위로)
  115. model.makeValue("/root/hidden/orddeptcd/orddeptcdlist/cd","-");
  116. model.makeValue("/root/hidden/orddeptcd/orddeptcdlist/nm","전체");
  117. copyNodeType("/root/init/orddeptcd","/root/hidden/orddeptcd","before");
  118. // 진료과 공백추가(맨위로)
  119. model.makeValue("/root/hidden/orddeptcd/orddeptcdlist/cd","");
  120. model.makeValue("/root/hidden/orddeptcd/orddeptcdlist/nm","");
  121. copyNodeType("/root/init/orddeptcd","/root/hidden/orddeptcd","before");
  122. // 처방대분류 전체추가(맨위로)
  123. model.makeValue("/root/hidden/ictp1List/ictp1/ictp1_earncls1","-");
  124. model.makeValue("/root/hidden/ictp1List/ictp1/ictp1_earncls1nm","-");
  125. copyNodeType("/root/init/ictplist/ictp1List","/root/hidden/ictp1List","before");
  126. // 처방대분류 공백추가(맨위로)
  127. model.makeValue("/root/hidden/ictp1List/ictp1/ictp1_earncls1","");
  128. model.makeValue("/root/hidden/ictp1List/ictp1/ictp1_earncls1nm","");
  129. copyNodeType("/root/init/ictplist/ictp1List","/root/hidden/ictp1List","before");
  130. // 처방중분류 전체추가(맨위로)
  131. model.makeValue("/root/hidden/ictp2List/ictp2/ictp2_earncls1","-");
  132. model.makeValue("/root/hidden/ictp2List/ictp2/ictp2_earncls2","-");
  133. model.makeValue("/root/hidden/ictp2List/ictp2/ictp2_earncls2nm","-");
  134. copyNodeType("/root/init/ictplist/ictp2List","/root/hidden/ictp2List","before");
  135. // 처방중분류 공백추가(맨위로)
  136. model.makeValue("/root/hidden/ictp2List/ictp2/ictp2_earncls1","");
  137. model.makeValue("/root/hidden/ictp2List/ictp2/ictp2_earncls2","");
  138. model.makeValue("/root/hidden/ictp2List/ictp2/ictp2_earncls2nm","");
  139. copyNodeType("/root/init/ictplist/ictp2List","/root/hidden/ictp2List","before");
  140. // 필요없는 인스턴스 / 임시추가 인스턴스 지우기
  141. model.removenode("/root/init/orddrid");
  142. model.removenode("/root/init/centcd");
  143. model.removenode("/root/init/subdeptcd");
  144. model.removenode("/root/hidden/P0486list");
  145. model.removenode("/root/hidden/orddeptcd");
  146. model.removenode("/root/hidden/ictp1List");
  147. model.removenode("/root/hidden/ictp2List");
  148. fInitialize();
  149. //fAddRow();
  150. ]]>
  151. </script>
  152. </model>
  153. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  154. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  155. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  156. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  157. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  158. <script type="javascript" src="../../../pam/pamcomnweb/js/PAM.js"/>
  159. <script type="javascript">
  160. <![CDATA[
  161. var glb_diagtype = "GRID"; // 상병조회( 그리드인지? 조회조건인지)
  162. // 화면 open시와 초기화 버튼 클릭시) 화면 초기화 기능을 수행한다.
  163. function fInitialize() {
  164. // 조회조건 초기화
  165. model.resetInstanceNode("/root/send/itemchk");
  166. var EarnCd1 = model.getValue("/root/send/itemchk/earncls1");
  167. cmb_earncls2.choices.itemset.attribute("nodeset") = "/root/init/ictplist/ictp2List/ictp2[ictp2_earncls1 = '' or ictp2_earncls1 = '"+ EarnCd1 + "']";
  168. // grid를 인스턴스에 mapping후 인스턴스에 해당하는 빈줄 1줄이 생기므로 grid 초기화
  169. model.removeNodeset("/root/main/list1/surelist");
  170. model.refresh(); // 지우지 말것.. 지우면 오류발생
  171. cmb_surecd.select(0);
  172. model.setFocus("cmb_surecd");
  173. }
  174. // 행추가
  175. function fAddRow() {
  176. grd_surelist.addRow(true, false);
  177. // 기본 데이타 넣어주기
  178. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/orddeptcd", "-");
  179. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/diaggubun", "-");
  180. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/amt", "0");
  181. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/earncls1", "-");
  182. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/earncls2", "-");
  183. fEarncls1(grd_surelist.row,false);
  184. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/anticanflag", "-");
  185. model.setValue("/root/main/list1/surelist[" + grd_surelist.row+" ]/changeflag", "I");
  186. }
  187. // 행삭제
  188. function fDeleteRow() {
  189. var row = grd_surelist.row;
  190. var rowstatus = grd_surelist.rowstatus(row);
  191. // 행추가를 한 행을 [행삭제]하면 행을 그리드에서 삭제, 기존에 존재하는 행을 [행삭제]하면 플래그를 D로 변경
  192. if (rowstatus == 1 || rowstatus == 3) {
  193. grd_surelist.deleteRow(row,true);
  194. } else {
  195. grd_surelist.rowstatus(row) = 4;
  196. }
  197. }
  198. //처방대분류 선택했을때 중분류를 그에맞게 셋팅
  199. function fEarncls1(jrow, clearflag) {
  200. if ( clearflag == true ) {
  201. model.setValue("/root/main/list1/surelist[" + jrow + "]/earncls2","-");
  202. }
  203. var EarnCd1 = model.getValue("/root/main/list1/surelist[" + jrow + "]/earncls1");
  204. grd_surelist.cellComboNodeset(jrow,grd_surelist.colRef("earncls2")) = "/root/init/ictplist/ictp2List/ictp2[ictp2_earncls1 = '-' or ictp2_earncls1 = '"+ EarnCd1 + "']";
  205. }
  206. //처방대분류 선택했을때 중분류를 그에맞게 셋팅
  207. function fSelectLIst() {
  208. // 행추가 없이도 자동 한줄추가에 따른 자동 추가된 행 제외 부분 추가
  209. for( i = grd_surelist.fixedRows; i < grd_surelist.rows ; i++ ) {
  210. var rowstatus = grd_surelist.rowStatus(i);
  211. if (rowstatus == 1 || rowstatus == 3) {
  212. var changeflag = model.getValue("/root/main/list1/surelist[" + i + "]/changeflag");
  213. if (changeflag == "I") {
  214. grd_surelist.rowStatus(i) = 0;
  215. }
  216. }
  217. }
  218. var updtdata = getGridUpdateData(grd_surelist);
  219. if (updtdata != "") // 그리드에 작업중인 내용이 있을때 조회여부를 체크한다.
  220. {
  221. var ret = messageBox("그리드에 작업중인 내용이 있습니다. 조회를","Q003");
  222. if(ret != 6){
  223. return false;
  224. }
  225. }
  226. // 그리드내용 지우기
  227. model.removeNodeset("/root/main/list1/surelist");
  228. // 조회
  229. submit("TRPIB00501");
  230. //model.refresh(); // 지우지 말것.. 지우면 오류발생
  231. // 처방대분류에 맞는 처방중분류 셋팅
  232. for(var i = grd_surelist.fixedRows; i < grd_surelist.rows ; i++ ) {
  233. // 속도가 느려져서 처방분류 항목만 변경
  234. if ( model.getValue("/root/main/list1/surelist[" + i + "]/surecd") == "4" ) {
  235. fEarncls1(i, false);
  236. }
  237. }
  238. model.refresh(); // 지우지 말것.. 지우면 오류발생
  239. //fAddRow(); // 조회후 한줄추가
  240. }
  241. function fSrchNm() {
  242. var today = getCurrentDate(); // 현재 날짜를 얻어옴
  243. var row = grd_surelist.row;
  244. var col = grd_surelist.col;
  245. // 수가코드
  246. if (col == grd_surelist.colRef("calcscorcd")) {
  247. model.setValue("/root/send/item2/grdsrchnm/iptsearch",model.getValue("/root/main/list1/surelist["+row+"]/calcscorcd"));
  248. model.setValue("/root/send/item2/grdsrchnm/searchkind","1");
  249. }
  250. // 시작상병코드
  251. else if (col == grd_surelist.colRef("diagcdfrom")){
  252. model.setValue("/root/send/item2/grdsrchnm/iptsearch",model.getValue("/root/main/list1/surelist["+row+"]/diagcdfrom"));
  253. model.setValue("/root/send/item2/grdsrchnm/searchkind","2");
  254. }
  255. // 종료상병코드
  256. else if (col == grd_surelist.colRef("diagcdto")){
  257. model.setValue("/root/send/item2/grdsrchnm/iptsearch",model.getValue("/root/main/list1/surelist["+row+"]/diagcdto"));
  258. model.setValue("/root/send/item2/grdsrchnm/searchkind","2");
  259. }
  260. // '-' -> 공백으로 변경
  261. if ( model.getValue("/root/send/item2/grdsrchnm/iptsearch") == "-" ) {
  262. model.setValue("/root/send/item2/grdsrchnm/iptsearch","");
  263. }
  264. submit("TRPIB00202");
  265. var hngnm = model.getValue("/root/temp/calcdiagnm/hngnm");
  266. if (hngnm == "") {
  267. if (col == grd_surelist.colRef("calcscorcd")) {
  268. modal("SMPIC00200" ,"", "10", "10", "SMPIC00200","/root/send/item2/grdsrchnm/iptsearch", "/root/temp", "", "");
  269. model.setValue("/root/main/list1/surelist["+row+"]/calcscorcd",model.getValue("/root/temp/picmmech/picmmech_calcscorcd"));
  270. model.setValue("/root/main/list1/surelist["+row+"]/ordnm",model.getValue("/root/temp/picmmech/picmmech_hngnm"));
  271. }
  272. else {
  273. if (col == grd_surelist.colRef("diagcdfrom") || col == grd_surelist.colRef("diagcdto")) {
  274. model.setValue("/root/send/item3/srchdiag/basedd", today);
  275. if (col == grd_surelist.colRef("diagcdfrom")) {
  276. model.setValue("/root/send/item3/srchdiag/diagcd", model.getValue("/root/main/list1/surelist["+row+"]/diagcdfrom"));
  277. } else {
  278. model.setValue("/root/send/item3/srchdiag/diagcd", model.getValue("/root/main/list1/surelist["+row+"]/diagcdto"));
  279. }
  280. // '-' -> 공백으로 변경
  281. if ( model.getValue("/root/send/item3/srchdiag/diagcd") == "-" ) {
  282. model.setValue("/root/send/item3/srchdiag/diagcd","");
  283. }
  284. model.setValue("/root/send/item3/srchdiag/selectedrdodiagkind","1"); // icd10으로
  285. glb_diagtype = "GRID";
  286. modal("SPPIZ00400" ,"", "10", "10", "SPPIZ00400", "/root/send/item3/srchdiag", "/root/init", "", "");
  287. }
  288. }
  289. // 팝업에서 아무것도 선택하지 않았을 경우- 그리드의 내용을 지운다.
  290. if (col == grd_surelist.colRef("calcscorcd")) {
  291. var srchnm = model.getValue("/root/temp/picmmech/picmmech_hngnm");
  292. if (srchnm == "") {
  293. model.setValue("/root/main/list1/surelist[" + row + " ]/calcscorcd","");
  294. model.setValue("/root/main/list1/surelist[" + row + " ]/ordnm","");
  295. }
  296. }
  297. if (col == grd_surelist.colRef("diagcdfrom")) {
  298. var srchnm = model.getValue("/root/hidden/sppiz00400/rslt/diaghngnm");
  299. if (srchnm == "") {
  300. model.setValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom","");
  301. model.setValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom","");
  302. }
  303. }
  304. if (col == grd_surelist.colRef("diagcdto")) {
  305. var srchnm = model.getValue("/root/hidden/sppiz00400/rslt/diaghngnm");
  306. if (srchnm == "") {
  307. model.setValue("/root/main/list1/surelist[" + row + " ]/diagcdto","");
  308. model.setValue("/root/main/list1/surelist[" + row + " ]/diagnmto","");
  309. }
  310. }
  311. }
  312. else {
  313. if (col == grd_surelist.colRef("calcscorcd")) {
  314. model.setValue("/root/main/list1/surelist["+row+"]/ordnm",model.getValue("/root/temp/calcdiagnm/hngnm"));
  315. }
  316. if (col == grd_surelist.colRef("diagcdfrom")) {
  317. model.setValue("/root/main/list1/surelist["+row+"]/diagnmfrom",model.getValue("/root/temp/calcdiagnm/hngnm"));
  318. var diagcdto = model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdto");
  319. var diagnmto = model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmto");
  320. if( ( diagcdto == "" || diagcdto == "-" )
  321. && ( diagnmto == "" || diagnmto == "-" )
  322. ) {
  323. model.setValue("/root/main/list1/surelist[" + row + " ]/diagcdto",model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom"));
  324. model.setValue("/root/main/list1/surelist[" + row + " ]/diagnmto",model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom"));
  325. }
  326. }
  327. if (col == grd_surelist.colRef("diagcdto")) {
  328. model.setValue("/root/main/list1/surelist["+row+"]/diagnmto",model.getValue("/root/temp/calcdiagnm/hngnm"));
  329. var diagcdfrom = model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom");
  330. var diagnmfrom = model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom");
  331. if( ( diagcdfrom == "" || diagcdfrom == "-" )
  332. && ( diagnmfrom == "" || diagnmfrom == "-" )
  333. ) {
  334. model.setValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom",model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdto"));
  335. model.setValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom",model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmto"));
  336. }
  337. }
  338. }
  339. }
  340. function fSetDiagCdNm() {
  341. if ( glb_diagtype == "SEARCH" ) {
  342. model.setValue("/root/send/itemchk/diagcd", model.getValue("/root/hidden/sppiz00400/rslt/diagcd"));
  343. model.setValue("/root/send/itemchk/diagnm", model.getValue("/root/hidden/sppiz00400/rslt/diaghngnm"));
  344. ipt_diagcd.refresh();
  345. ipt_diagnm.refresh();
  346. return;
  347. }
  348. model.setValue("/root/send/item2/grdsrchnm/searchkind","2");
  349. model.setValue("/root/send/item2/grdsrchnm/iptsearch",model.getValue("/root/hidden/sppiz00400/rslt/diagcd"));
  350. submit("TRPIB00202");
  351. model.setValue("/root/hidden/sppiz00400/rslt/diaghngnm",model.getValue("/root/temp/calcdiagnm/hngnm"));
  352. var row = grd_surelist.row;
  353. var col = grd_surelist.col;
  354. if (col == grd_surelist.colRef("diagcdfrom")) {
  355. model.setValue("/root/main/list1/surelist["+row+"]/diagcdfrom", model.getValue("/root/hidden/sppiz00400/rslt/diagcd"));
  356. model.setValue("/root/main/list1/surelist["+row+"]/diagnmfrom", model.getValue("/root/hidden/sppiz00400/rslt/diaghngnm"));
  357. var diagcdto = model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdto");
  358. var diagnmto = model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmto");
  359. if( ( diagcdto == "" || diagcdto == "-" )
  360. && ( diagnmto == "" || diagnmto == "-" )
  361. ) {
  362. model.setValue("/root/main/list1/surelist[" + row + " ]/diagcdto",model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom"));
  363. model.setValue("/root/main/list1/surelist[" + row + " ]/diagnmto",model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom"));
  364. }
  365. }
  366. if (col ==grd_surelist.colRef("diagcdto")) {
  367. model.setValue("/root/main/list1/surelist["+row+"]/diagcdto", model.getValue("/root/hidden/sppiz00400/rslt/diagcd"));
  368. model.setValue("/root/main/list1/surelist["+row+"]/diagnmto", model.getValue("/root/hidden/sppiz00400/rslt/diaghngnm"));
  369. var diagcdfrom = model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom");
  370. var diagnmfrom = model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom");
  371. if( ( diagcdfrom == "" || diagcdfrom == "-" )
  372. && ( diagnmfrom == "" || diagnmfrom == "-" )
  373. ) {
  374. model.setValue("/root/main/list1/surelist[" + row + " ]/diagcdfrom",model.getValue("/root/main/list1/surelist[" + row + " ]/diagcdto"));
  375. model.setValue("/root/main/list1/surelist[" + row + " ]/diagnmfrom",model.getValue("/root/main/list1/surelist[" + row + " ]/diagnmto"));
  376. }
  377. }
  378. }
  379. // 저장과 관련된 입력된 데이터의 항목을 검증한다.
  380. function fCheckSaveInfo() {
  381. // 행추가 없이도 자동 한줄추가에 따른 자동 추가된 행 제외 부분 추가
  382. for( i = grd_surelist.fixedRows; i < grd_surelist.rows ; i++ ) {
  383. var rowstatus = grd_surelist.rowStatus(i);
  384. if (rowstatus == 1 || rowstatus == 3) {
  385. var changeflag = model.getValue("/root/main/list1/surelist[" + i + "]/changeflag");
  386. if (changeflag == "I") {
  387. grd_surelist.rowStatus(i) = 0;
  388. }
  389. }
  390. }
  391. var updtdata = getGridUpdateData(grd_surelist);
  392. if (updtdata == "") {
  393. messageBox("변경된 데이터가","I004"); // 변경된 데이이터가 없습니다.
  394. return false;
  395. }
  396. // 수정된 데이타 유효성 확인
  397. for( i = grd_surelist.fixedRows; i < grd_surelist.rows ; i++ ) {
  398. var rowstatus = grd_surelist.rowStatus(i);
  399. if (rowstatus == 0) continue;
  400. var g_surecd = grd_surelist.valueMatrix(i,grd_surelist.colRef("surecd")); // 필수항목
  401. //var g_orddeptcd = grd_surelist.valueMatrix(i,grd_surelist.colRef("orddeptcd")); // 진료과
  402. //var g_diaggubun = grd_surelist.valueMatrix(i,grd_surelist.colRef("diaggubun")); // 상병구분
  403. var g_diagcdfrom = grd_surelist.valueMatrix(i,grd_surelist.colRef("diagcdfrom")); // 시작상병
  404. var g_diagcdto = grd_surelist.valueMatrix(i,grd_surelist.colRef("diagcdto")); // 종료상병
  405. var g_amt = grd_surelist.valueMatrix(i,grd_surelist.colRef("amt")); // 금액
  406. var g_earncls1 = grd_surelist.valueMatrix(i,grd_surelist.colRef("earncls1")); // 처방대분류
  407. var g_earncls2 = grd_surelist.valueMatrix(i,grd_surelist.colRef("earncls2")); // 처방중분류
  408. var g_calcscorcd = grd_surelist.valueMatrix(i,grd_surelist.colRef("calcscorcd")); // 수가코드
  409. //var g_anticanflag = grd_surelist.valueMatrix(i,grd_surelist.colRef("anticanflag")); // 항암제구분
  410. // 조건문을 단순화 하려고 변경후 비교
  411. if ( g_diagcdfrom == "-" ) g_diagcdfrom = "";
  412. if ( g_diagcdto == "-" ) g_diagcdto = "";
  413. if ( g_calcscorcd == "-" ) g_calcscorcd = "";
  414. if ( g_earncls1 == "-" ) g_earncls1 = "";
  415. if ( g_earncls2 == "-" ) g_earncls2 = "";
  416. if ( g_amt == "0" ) g_amt = "";
  417. // 필수항목구분
  418. if (g_surecd == "") {
  419. messageBox("필수항목구분은","I003");
  420. return false;
  421. }
  422. // 필수구분 상병일때 체크
  423. if ( g_surecd == "1" ) {
  424. if ( g_diagcdfrom == "" || g_diagcdto == "" ) {
  425. messageBox("상병 구분일때 시작,종료상병은","I003");
  426. return false;
  427. }
  428. if ( g_amt != "" ) {
  429. messageBox("상병 구분일때 금액은 제외대상입니다.","I999");
  430. return false;
  431. }
  432. if ( g_calcscorcd != "" ) {
  433. messageBox("상병 구분일때 수가코드는 제외대상입니다.","I999");
  434. return false;
  435. }
  436. if ( g_earncls1 != "" || g_earncls2 != "" ) {
  437. messageBox("상병 구분일때 처방분류는 제외대상입니다.","I999");
  438. return false;
  439. }
  440. }
  441. // 필수구분 총진료비,청구액일때 체크
  442. if ( g_surecd == "2" || g_surecd == "3" ) {
  443. if ( g_diagcdfrom != "" || g_diagcdto != "" ) {
  444. messageBox("진료비 구분일때 시작,종료상병은 제외대상입니다.","I999");
  445. return false;
  446. }
  447. if ( g_amt == "" ) {
  448. messageBox("진료비 구분일때 금액은","I003");
  449. return false;
  450. }
  451. if ( g_calcscorcd != "" ) {
  452. messageBox("진료비 구분일때 수가코드는 제외대상입니다.","I999");
  453. return false;
  454. }
  455. if ( g_earncls1 != "" || g_earncls2 != "" ) {
  456. messageBox("진료비 구분일때 처방분류는 제외대상입니다.","I999");
  457. return false;
  458. }
  459. }
  460. // 필수구분 처방분류일때 체크
  461. if ( g_surecd == "4" ) {
  462. if ( g_diagcdfrom != "" || g_diagcdto != "" ) {
  463. messageBox("처방분류 구분일때 시작,종료상병은 제외대상입니다.","I999");
  464. return false;
  465. }
  466. if ( g_amt != "" ) {
  467. messageBox("처방분류 구분일때 금액은 제외대상입니다.","I999");
  468. return false;
  469. }
  470. if ( g_calcscorcd != "" ) {
  471. messageBox("처방분류 구분일때 수가코드는 제외대상입니다.","I999");
  472. return false;
  473. }
  474. if ( g_earncls1 == "" && g_earncls2 == "" ) {
  475. messageBox("처방분류 구분일때 처방분류는","I003");
  476. return false;
  477. }
  478. }
  479. // 필수구분 처방코드일때 체크
  480. if ( g_surecd == "5" ) {
  481. if ( g_diagcdfrom != "" || g_diagcdto != "" ) {
  482. messageBox("처방코드 구분일때 시작,종료상병은 제외대상입니다.","I999");
  483. return false;
  484. }
  485. if ( g_amt != "" ) {
  486. messageBox("처방코드 구분일때 금액은 제외대상입니다.","I999");
  487. return false;
  488. }
  489. if ( g_calcscorcd == "" ) {
  490. messageBox("처방코드 구분일때 수가코드는","I003");
  491. return false;
  492. }
  493. if ( g_earncls1 != "" || g_earncls2 != "" ) {
  494. messageBox("처방코드 구분일때 처방분류는 제외대상입니다.","I999");
  495. return false;
  496. }
  497. }
  498. // 필수구분 항암제일때 체크
  499. if ( g_surecd == "6" ) {
  500. if ( g_diagcdfrom != "" || g_diagcdto != "" ) {
  501. messageBox("항암제 구분일때 시작,종료상병은 제외대상입니다.","I999");
  502. return false;
  503. }
  504. if ( g_amt != "" ) {
  505. messageBox("항암제 구분일때 금액은 제외대상입니다.","I999");
  506. return false;
  507. }
  508. if ( g_calcscorcd != "" ) {
  509. messageBox("항암제 구분일때 수가코드는 제외대상입니다.","I999");
  510. return false;
  511. }
  512. if ( g_earncls1 != "" || g_earncls2 != "" ) {
  513. messageBox("항암제 구분일때 처방분류는 제외대상입니다.","I999");
  514. return false;
  515. }
  516. }
  517. }
  518. return true;
  519. }
  520. ]]>
  521. </script>
  522. </xhtml:head>
  523. <xhtml:body pagewidth="1200" pageheight="800" guideline="1,1195;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  524. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  525. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:180px; height:13px; ">필수심사대상 생성기준관리</caption>
  526. </group>
  527. <group id="group3" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  528. <group id="group2" style="left:0px; top:10px; width:1194px; height:60px; vertical-align:top; ">
  529. <shape id="roundrect1" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:60px; "/>
  530. <button id="btn_srch" class="btn1_letter2" style="left:1128px; top:17px; width:56px; height:22px; ">
  531. <caption>조회</caption>
  532. <script type="javascript" ev:event="DOMActivate">
  533. <![CDATA[
  534. fSelectLIst();
  535. ]]>
  536. </script>
  537. </button>
  538. <line id="line13" class="line_4" style="x1:1118px; y1:7px; x2:1118px; y2:54px; "/>
  539. <caption id="caption8" class="search_name" style="left:10px; top:9px; width:113px; height:17px; ">필수심사항목 :</caption>
  540. <select1 id="cmb_surecd" ref="/root/send/itemchk/surecd" class="combo_search" appearance="minimal" style="left:125px; top:8px; width:90px; height:19px; ">
  541. <choices>
  542. <itemset nodeset="/root/init/P0486list/P0486">
  543. <label ref="cdnm"/>
  544. <value ref="cdid"/>
  545. </itemset>
  546. </choices>
  547. </select1>
  548. <select1 id="cmb_orddeptcd" ref="/root/send/itemchk/orddeptcd" class="combo_search" appearance="minimal" style="left:301px; top:8px; width:126px; height:19px; ">
  549. <choices>
  550. <itemset nodeset="/root/init/orddeptcd/orddeptcdlist">
  551. <label ref="nm"/>
  552. <value ref="cd"/>
  553. </itemset>
  554. </choices>
  555. </select1>
  556. <caption id="caption2" class="search_name" style="left:225px; top:9px; width:76px; height:17px; ">진료과 :</caption>
  557. <caption id="caption1" class="search_name" style="left:434px; top:9px; width:95px; height:17px; ">상병구분 :</caption>
  558. <select1 id="cmb_diaggubun" ref="/root/send/itemchk/diaggubun" class="combo_search" appearance="minimal" style="left:525px; top:8px; width:60px; height:19px; ">
  559. <choices>
  560. <item>
  561. <label/>
  562. <value/>
  563. </item>
  564. <item>
  565. <label>전 체</label>
  566. <value>-</value>
  567. </item>
  568. <item>
  569. <label>주상병</label>
  570. <value>M</value>
  571. </item>
  572. </choices>
  573. </select1>
  574. <caption id="caption11" class="search_name" style="left:905px; top:9px; width:75px; height:17px; ">항암제 :</caption>
  575. <select1 id="cmb_anticanflag" ref="/root/send/itemchk/anticanflag" class="combo_search" appearance="minimal" style="left:980px; top:8px; width:69px; height:19px; ">
  576. <choices>
  577. <item>
  578. <label/>
  579. <value/>
  580. </item>
  581. <item>
  582. <label>전체</label>
  583. <value>-</value>
  584. </item>
  585. <item>
  586. <label>2군</label>
  587. <value>2</value>
  588. </item>
  589. </choices>
  590. </select1>
  591. <caption id="caption10" class="search_name" style="left:745px; top:35px; width:99px; height:17px; ">처방중분류 :</caption>
  592. <select1 id="cmb_earncls2" ref="/root/send/itemchk/earncls2" class="combo_search" appearance="minimal" style="left:845px; top:35px; width:205px; height:19px; ">
  593. <choices>
  594. <itemset nodeset="/root/init/ictplist/ictp2List/ictp2">
  595. <label ref="ictp2_earncls2nm"/>
  596. <value ref="ictp2_earncls2"/>
  597. </itemset>
  598. </choices>
  599. </select1>
  600. <select1 id="cmb_earncls1" ref="/root/send/itemchk/earncls1" class="combo_search" appearance="minimal" style="left:535px; top:35px; width:205px; height:19px; ">
  601. <choices>
  602. <itemset nodeset="/root/init/ictplist/ictp1List/ictp1[ictp1_earncls1 != '-']">
  603. <label ref="ictp1_earncls1nm"/>
  604. <value ref="ictp1_earncls1"/>
  605. </itemset>
  606. </choices>
  607. <script type="javascript" ev:event="xforms-value-changed">
  608. <![CDATA[
  609. model.setValue("/root/send/itemchk/earncls2","");
  610. var EarnCd1 = model.getValue("/root/send/itemchk/earncls1");
  611. cmb_earncls2.choices.itemset.attribute("nodeset") = "/root/init/ictplist/ictp2List/ictp2[ictp2_earncls1 = '' or ictp2_earncls1 = '"+ EarnCd1 + "']";
  612. cmb_earncls2.refresh();
  613. ]]>
  614. </script>
  615. </select1>
  616. <caption id="caption9" class="search_name" style="left:434px; top:35px; width:99px; height:17px; ">처방대분류 :</caption>
  617. <input id="ipt_calcscorcd" ref="/root/send/itemchk/calcscorcd" class="input_search" imemode="disabled" inputtype="button" maxlength="10" _chartype="upper" style="left:103px; top:35px; width:112px; height:19px; ">
  618. <script type="javascript" ev:event="onbuttonclick">
  619. <![CDATA[
  620. modal("SMPIC00200" ,"", "10", "10", "SMPIC00200", "/root/send/item1/itemjchk/calcscorcd", "/root/temp", "", "");
  621. var calcscorcd = model.getValue("/root/temp/picmmech/picmmech_calcscorcd");
  622. var ordnm = model.getValue("/root/temp/picmmech/picmmech_hngnm");
  623. if (calcscorcd != "") {
  624. model.setValue("/root/send/itemchk/calcscorcd", calcscorcd);
  625. model.setValue("/root/send/itemchk/ordnm",ordnm);
  626. ipt_calcscorcd.refresh();
  627. ipt_ordnm.refresh();
  628. }
  629. ]]>
  630. </script>
  631. </input>
  632. <caption id="caption7" class="search_name" style="left:10px; top:35px; width:86px; height:17px; ">수가코드 :</caption>
  633. <input id="ipt_ordnm" ref="/root/send/itemchk/ordnm" editable="false" style="left:230px; top:35px; width:197px; height:19px; "/>
  634. <caption id="caption3" class="search_name" style="left:589px; top:9px; width:86px; height:17px; ">상병코드 :</caption>
  635. <input id="ipt_diagcd" ref="/root/send/itemchk/diagcd" class="input_search" imemode="disabled" inputtype="button" maxlength="5" _chartype="upper" style="left:675px; top:8px; width:65px; height:19px; ">
  636. <script type="javascript" ev:event="onbuttonclick">
  637. <![CDATA[
  638. glb_diagtype = "SEARCH";
  639. var today = getCurrentDate(); // 현재 날짜를 얻어옴
  640. model.setValue("/root/send/item3/srchdiag/basedd", today);
  641. model.setValue("/root/send/item3/srchdiag/diagcd","");
  642. model.setValue("/root/send/item3/srchdiag/selectedrdodiagkind","1"); // icd10으로
  643. modal("SPPIZ00400" ,"", "10", "10", "SPPIZ00400", "/root/send/item3/srchdiag", "/root/init", "", "");
  644. ]]>
  645. </script>
  646. </input>
  647. <input id="ipt_diagnm" ref="/root/send/itemchk/diagnm" editable="false" style="left:745px; top:8px; width:150px; height:19px; "/>
  648. </group>
  649. <line id="line3" class="line_1" style="x1:0px; y1:94px; x2:1194px; y2:94px; "/>
  650. <datagrid id="grd_surelist" nodeset="/root/main/list1/surelist" overflow="scroll" scroll="auto" caption="필수항목^진료과^상병구분^시작상병^시작상병명^종료상병^종료상병명^금액^처방대분류^처방중분류^수가코드^수가명^항암제^순번^changeflag" colsep="^" colwidth="69, 89, 61, 59, 138, 59, 138, 64, 100, 100, 80, 149, 45, 30, 30" dataheight="23" ellipsis="true" explorerbar="sortshowmove" extendlastcol="scroll" focuscolor="#b9e5fb" frozencols="2" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" tooltip="true" style="left:0px; top:99px; width:1194px; height:641px; ">
  651. <col disabled="true" ref="surecd" type="combo">
  652. <choices>
  653. <itemset nodeset="/root/init/P0486list/P0486[cdid != '']">
  654. <label ref="cdnm"/>
  655. <value ref="cdid"/>
  656. </itemset>
  657. </choices>
  658. </col>
  659. <col ref="orddeptcd" type="combo">
  660. <choices>
  661. <itemset nodeset="/root/init/orddeptcd/orddeptcdlist[cd != '']">
  662. <label ref="nm"/>
  663. <value ref="cd"/>
  664. </itemset>
  665. </choices>
  666. </col>
  667. <col ref="diaggubun" type="combo">
  668. <choices>
  669. <item>
  670. <label>전체</label>
  671. <value>-</value>
  672. </item>
  673. <item>
  674. <label>주상병</label>
  675. <value>M</value>
  676. </item>
  677. </choices>
  678. </col>
  679. <col imemode="disabled" ref="diagcdfrom" type="inputbutton" maxlength="5" _chartype="upper"/>
  680. <col ref="diagnmfrom"/>
  681. <col imemode="disabled" ref="diagcdto" type="inputbutton" maxlength="5" _chartype="upper"/>
  682. <col ref="diagnmto"/>
  683. <col ref="amt" type="input" format="#,###" maxlength="10" style="text-align:right; "/>
  684. <col ref="earncls1" type="combo">
  685. <choices>
  686. <itemset nodeset="/root/init/ictplist/ictp1List/ictp1[ictp1_earncls1 != '']">
  687. <label ref="ictp1_earncls1nm"/>
  688. <value ref="ictp1_earncls1"/>
  689. </itemset>
  690. </choices>
  691. </col>
  692. <col ref="earncls2" type="combo">
  693. <choices>
  694. <itemset nodeset="/root/init/ictplist/ictp2List/ictp2[ictp2_earncls2 != '']">
  695. <label ref="ictp2_earncls2nm"/>
  696. <value ref="ictp2_earncls2"/>
  697. </itemset>
  698. </choices>
  699. </col>
  700. <col ref="calcscorcd" type="inputbutton" maxlength="10" _chartype="upper"/>
  701. <col ref="ordnm"/>
  702. <col ref="anticanflag" type="combo">
  703. <choices>
  704. <item>
  705. <label>전체</label>
  706. <value>-</value>
  707. </item>
  708. <item>
  709. <label>2군</label>
  710. <value>2</value>
  711. </item>
  712. </choices>
  713. </col>
  714. <col ref="seq" visibility="hidden"/>
  715. <col ref="changeflag" visibility="hidden"/>
  716. <script type="javascript" ev:event="onaftersort">
  717. <![CDATA[
  718. grd_surelist.gridToInstance();
  719. ]]>
  720. </script>
  721. <script type="javascript" ev:event="xforms-value-changed">
  722. <![CDATA[
  723. var row = grd_surelist.row;
  724. var col = grd_surelist.col;
  725. if ( col == grd_surelist.colRef("earncls1") ) {
  726. fEarncls1(row, true);
  727. }
  728. // 저장, 조회시 작업내역 확인하기 위한 flag 값 변경
  729. model.setValue("/root/main/list1/surelist[" + row+ "]/changeflag","U");
  730. ]]>
  731. </script>
  732. <script type="javascript" ev:event="onbuttonclick">
  733. <![CDATA[
  734. var col = grd_surelist.col;
  735. var row = grd_surelist.row;
  736. var oldvalue = grd_surelist.valueMatrix(row,col);
  737. if ( col == grd_surelist.colRef("calcscorcd")
  738. || col == grd_surelist.colRef("diagcdfrom")
  739. || col == grd_surelist.colRef("diagcdto")
  740. ) { // 수가코드, 시작상병코드, 종료상병코드
  741. fSrchNm();
  742. }
  743. var newvalue = grd_surelist.valueMatrix(row,col);
  744. if ( oldvalue == "-" ) { oldvalue = ""; }
  745. if ( newvalue == "-" ) { newvalue = ""; }
  746. if ( oldvalue != newvalue ) {
  747. var rowstatus = grd_surelist.rowStatus(row);
  748. if (rowstatus == 1 || rowstatus == 3) {
  749. model.setValue("/root/main/list1/surelist[" + row+ "]/changeflag","U");
  750. } else if (rowstatus == 0) {
  751. grd_surelist.rowstatus(row) = 2;
  752. }
  753. }
  754. ]]>
  755. </script>
  756. <script type="javascript" ev:event="onendedit">
  757. <![CDATA[
  758. var col = grd_surelist.col;
  759. var row = grd_surelist.row;
  760. var oldvalue = grd_surelist.valueMatrix(row,col);
  761. if ( col == grd_surelist.colRef("calcscorcd")
  762. || col == grd_surelist.colRef("diagcdfrom")
  763. || col == grd_surelist.colRef("diagcdto")
  764. ) { // 수가코드, 시작상병코드, 종료상병코드
  765. fSrchNm();
  766. }
  767. var newvalue = grd_surelist.valueMatrix(row,col);
  768. if ( oldvalue == "-" ) { oldvalue = ""; }
  769. if ( newvalue == "-" ) { newvalue = ""; }
  770. if ( oldvalue != newvalue ) {
  771. var rowstatus = grd_surelist.rowStatus(row);
  772. if (rowstatus == 1 || rowstatus == 3) {
  773. model.setValue("/root/main/list1/surelist[" + row+ "]/changeflag","U");
  774. } else if (rowstatus == 0) {
  775. grd_surelist.rowstatus(row) = 2;
  776. }
  777. }
  778. ]]>
  779. </script>
  780. </datagrid>
  781. <caption id="caption5" class="tit_2" style="left:5px; top:79px; width:190px; height:13px; ">필수심사대상 생성기준 목록</caption>
  782. <button id="btn_delRow" class="btn2_letter3" style="left:1140px; top:74px; width:53px; height:19px; ">
  783. <caption>행삭제</caption>
  784. <script type="javascript" ev:event="DOMActivate">
  785. <![CDATA[
  786. fDeleteRow();
  787. ]]>
  788. </script>
  789. </button>
  790. <button id="btn_addRow" class="btn2_letter3" style="left:1083px; top:74px; width:53px; height:19px; ">
  791. <caption>행추가</caption>
  792. <script type="javascript" ev:event="DOMActivate">
  793. <![CDATA[
  794. fAddRow();
  795. grd_surelist.col = 1; // 행추가된 row 로 이동한다.
  796. ]]>
  797. </script>
  798. </button>
  799. </group>
  800. <group id="grp_btn" scroll="auto" style="left:0px; top:757px; width:1195px; height:27px; ">
  801. <line id="line23" class="line_6" style="x1:0px; y1:0px; x2:1194px; y2:0px; "/>
  802. <button id="button5" class="btn4_letter3" style="left:1125px; top:5px; width:68px; height:22px; ">
  803. <caption>초기화</caption>
  804. <script type="javascript" ev:event="DOMActivate">
  805. <![CDATA[
  806. fInitialize();
  807. fAddRow(); // 빈줄추가
  808. ]]>
  809. </script>
  810. </button>
  811. <button id="btn_save" class="btn4_letter2" style="left:1064px; top:5px; width:56px; height:22px; ">
  812. <caption>저장</caption>
  813. <script type="javascript" ev:event="DOMActivate">
  814. <![CDATA[
  815. if ( fCheckSaveInfo() == false ) return; // 저장될 데이터의 유효성 체크
  816. model.setValue("/root/send/updatedata/datalist",grd_surelist.getupdatedata());
  817. if ( submit("TXPIB00501") ) {
  818. grd_surelist.clearStatus(); // submit() 성공하면 그리드의 i,u 상태 제거
  819. fSelectLIst(); // 저장 성공시 재조회
  820. messageBox("정상적으로 저장되었습니다.", "I999");
  821. }
  822. ]]>
  823. </script>
  824. </button>
  825. </group>
  826. </xhtml:body>
  827. </xhtml:html>