SSIRB00700_변경계획서.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  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>변경계획서</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <reptdetl>
  11. <item>
  12. <instcd/>
  13. <subjid/>
  14. <subjno/>
  15. <reptseqno/>
  16. <judgappdg/>
  17. <reptkind/>
  18. <fstplanjudgdd/>
  19. <acptyn/>
  20. <acptdd/>
  21. <subjnm/>
  22. <roothospidxcasecnt/>
  23. <prcsidxcase/>
  24. <cnts1/>
  25. <cnts2/>
  26. <cnts3/>
  27. <cnts4/>
  28. <cnts5/>
  29. <cnts6/>
  30. <cnts7/>
  31. <cnts8/>
  32. <cnts9/>
  33. <attfile/>
  34. </item>
  35. </reptdetl>
  36. </main>
  37. <send>
  38. <savedata>
  39. </savedata>
  40. <searchitem>
  41. <reptkind/>
  42. <subjid/>
  43. <instcd/>
  44. <reptseqno/>
  45. <totstdycost/>
  46. <direccost/>
  47. <consorflag/>
  48. </searchitem>
  49. <attach/>
  50. </send>
  51. <hidden/>
  52. <init>
  53. <hosp>
  54. <ret>
  55. <instcd/>
  56. <hospnm/>
  57. </ret>
  58. </hosp>
  59. </init>
  60. <rex>
  61. <view>
  62. <appformhead>
  63. <subjnm/>
  64. <subjno/>
  65. <hospnm/>
  66. <depthngnm/>
  67. <cdnm/>
  68. <usernm/>
  69. </appformhead>
  70. <irsdcollareser>
  71. <subjid/>
  72. <instcd/>
  73. <userid/>
  74. <userkind/>
  75. <usernm/>
  76. <posnm/>
  77. <jobposnm/>
  78. </irsdcollareser>
  79. <imcmreqinst>
  80. <cmpynm/>
  81. <prsdnm/>
  82. <jobposnm/>
  83. </imcmreqinst>
  84. </view>
  85. <data>
  86. <a/>
  87. </data>
  88. </rex>
  89. </root>
  90. </instance>
  91. <submission id="TRIRB00122" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/init/hosp"/>
  92. <submission id="TRIRB00124" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/main/reptdetl"/>
  93. <submission id="TXIRB00121" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" replace="instance" resultref="/root/hidden"/>
  94. <submission id="TRIRS00131" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/rex/view"/>
  95. <submission id="TRIRS00135" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  96. <submission id="TXIRB00132" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" replace="instance" resultref="/root/hidden"/>
  97. <submission id="TXIRS00199" mediatype="multipart/form-data" method="form-data-post" ref="/root/send" resultref="/root/hidden"/>
  98. </model>
  99. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  100. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  101. <script type="javascript" ev:event="xforms-ready">
  102. <![CDATA[
  103. //권한이 없는경우 보고서 상단의 파일첨부,첨부삭제,임시저장,보고서접수 버튼 숨기기
  104. if ( opener.javascript.getParameter("actionyn") == "N" ) {
  105. ipt_filenm.visible = true;
  106. btn_fileatt.visible = false;
  107. btn_filedel.visible = false;
  108. btn_tmpsave.visible = false;
  109. btn_reptacpt.visible = false;
  110. btn_filedown.visible=true;
  111. }
  112. submit("TRIRB00122"); //병원 조회
  113. model.setValue("/root/send/searchitem/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  114. model.setValue("/root/send/searchitem/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  115. model.setValue("/root/send/searchitem/reptseqno", parent.model.getValue("/root/send/searchitem2/reptseqno"));
  116. model.setValue("/root/send/searchitem/reptkind", parent.model.getValue("/root/send/searchitem2/reptkind"));
  117. model.setValue("/root/send/searchitem/totstdycost", parent.model.getValue("/root/send/searchitem2/totstdycost"));
  118. model.setValue("/root/send/searchitem/direccost", parent.model.getValue("/root/send/searchitem2/direccost"));
  119. var consorflag = parent.model.getValue("/root/send/searchitem/consorflag");
  120. if ( consorflag == "Y" ) {
  121. model.setValue("/root/send/searchitem/consorflag", "Y");
  122. }
  123. //화면 오픈시 Y일 경우만 자동조회하고 Y가 아닐 경우는 빈 양식 오픈후 필수값만 세팅해준다.
  124. if ( parent.model.getValue("/root/send/searchitem2/autosrchyn") == "Y" ) {
  125. submit("TRIRB00124"); //결과보고서 내용 조회
  126. }
  127. model.setValue("/root/main/reptdetl/item/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  128. model.setValue("/root/main/reptdetl/item/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  129. model.setValue("/root/main/reptdetl/item/judgappdg", parent.model.getValue("/root/send/searchitem2/judgappdg"));
  130. model.setValue("/root/main/reptdetl/item/roothospidxcasecnt", parent.model.getValue("/root/send/searchitem2/roothospidxcasecnt"));
  131. model.setValue("/root/main/reptdetl/item/subjno", parent.model.getValue("/root/send/searchitem2/subjno"));
  132. model.setValue("/root/main/reptdetl/item/subjnm", parent.model.getValue("/root/send/searchitem2/subjnm"));
  133. model.refresh();
  134. ]]>
  135. </script>
  136. </xhtml:head>
  137. <xhtml:body guideline="2,442;1,1180;1,589;">
  138. <line id="line15" class="line_1" style="x1:5px; y1:48px; x2:1178px; y2:47px; "/>
  139. <caption id="caption7" class="tit_2" style="left:10px; top:31px; width:705px; height:13px; ">신규 작성 시 신규 버튼 클릭 후 접수 여부를 미접수로 저장하셔야지 과제변경항목추가 버튼이 활성화 됩니다.</caption>
  140. <caption id="caption21" class="cell_1" style="left:5px; top:52px; width:85px; height:23px; text-align:center; vertical-align:middle; ">선택된 병원</caption>
  141. <select1 id="cmb_instcd" ref="/root/main/reptdetl/item/instcd" class="combo_search" disabled="true" appearance="minimal" style="left:92px; top:53px; width:168px; height:19px; ">
  142. <choices>
  143. <itemset nodeset="/root/init/hosp/ret">
  144. <label ref="hospnm"/>
  145. <value ref="instcd"/>
  146. </itemset>
  147. </choices>
  148. </select1>
  149. <caption id="caption1" class="tit_2" style="left:10px; top:78px; width:705px; height:13px; ">변경 내용 요약 (기본사항변경일 경우 변경할 과제내용을 "과제변경 항목추가" 버튼을 이용하시기 바랍니다.)</caption>
  150. <caption id="caption2" class="cell_1" style="left:5px; top:94px; width:85px; height:23px; text-align:center; vertical-align:middle; ">접수여부</caption>
  151. <select1 id="cmb_acptyn" ref="/root/main/reptdetl/item/acptyn" class="combo_search" disabled="true" appearance="minimal" style="left:92px; top:95px; width:75px; height:19px; ">
  152. <choices>
  153. <item>
  154. <label>접수</label>
  155. <value>Y</value>
  156. </item>
  157. <item>
  158. <label>미접수</label>
  159. <value>N</value>
  160. </item>
  161. </choices>
  162. </select1>
  163. <caption id="caption6" class="cell_1" style="left:5px; top:119px; width:85px; height:55px; text-align:center; vertical-align:middle; ">기본사항</caption>
  164. <textarea id="tar_cnts1" ref="/root/main/reptdetl/item/cnts1" style="left:92px; top:119px; width:497px; height:55px; "/>
  165. <caption id="caption3" class="cell_1" style="left:5px; top:179px; width:85px; height:55px; text-align:center; vertical-align:middle; ">
  166. <![CDATA[연구목적
  167. 및 배경]]>
  168. </caption>
  169. <textarea id="tar_cnts2" ref="/root/main/reptdetl/item/cnts2" style="left:92px; top:179px; width:497px; height:55px; "/>
  170. <caption id="caption4" class="cell_1" style="left:5px; top:239px; width:85px; height:55px; text-align:center; vertical-align:middle; ">
  171. <![CDATA[임상시험
  172. 대상관련]]>
  173. </caption>
  174. <textarea id="tar_cnts3" ref="/root/main/reptdetl/item/cnts3" style="left:92px; top:239px; width:497px; height:55px; "/>
  175. <caption id="caption5" class="cell_1" style="left:5px; top:299px; width:85px; height:55px; text-align:center; vertical-align:middle; ">피험자 관련</caption>
  176. <textarea id="tar_cnts4" ref="/root/main/reptdetl/item/cnts4" style="left:92px; top:299px; width:497px; height:55px; "/>
  177. <caption id="caption8" class="cell_1" style="left:5px; top:359px; width:85px; height:55px; text-align:center; vertical-align:middle; ">임상시험 방법</caption>
  178. <textarea id="tar_cnts5" ref="/root/main/reptdetl/item/cnts5" style="left:92px; top:359px; width:497px; height:55px; "/>
  179. <caption id="caption9" class="cell_1" style="left:592px; top:119px; width:85px; height:55px; text-align:center; vertical-align:middle; ">통계관련</caption>
  180. <textarea id="tar_cnts6" ref="/root/main/reptdetl/item/cnts6" style="left:679px; top:119px; width:497px; height:55px; "/>
  181. <textarea id="tar_cnts7" ref="/root/main/reptdetl/item/cnts7" style="left:679px; top:179px; width:497px; height:55px; "/>
  182. <caption id="caption10" class="cell_1" style="left:592px; top:179px; width:85px; height:55px; text-align:center; vertical-align:middle; ">
  183. <![CDATA[피험자 동의
  184. 및 안전관련]]>
  185. </caption>
  186. <textarea id="tar_cnts8" ref="/root/main/reptdetl/item/cnts8" style="left:679px; top:239px; width:497px; height:55px; "/>
  187. <caption id="caption11" class="cell_1" style="left:592px; top:239px; width:85px; height:55px; text-align:center; vertical-align:middle; ">기 타</caption>
  188. <textarea id="tar_cnts9" ref="/root/main/reptdetl/item/cnts9" style="left:679px; top:359px; width:497px; height:55px; "/>
  189. <caption id="caption12" class="cell_1" style="left:592px; top:359px; width:85px; height:55px; text-align:center; vertical-align:middle; ">변경사유</caption>
  190. <caption id="caption13" class="tit_2" style="left:594px; top:340px; width:101px; height:13px; ">변경사유</caption>
  191. <button id="btn_filedel" class="btn5_letter4" style="left:963px; top:5px; width:64px; height:19px; ">
  192. <caption>첨부삭제</caption>
  193. <script type="javascript" ev:event="onclick">
  194. <![CDATA[
  195. alert("죄송합니다. 구현되지 않은 버튼 이벤트 입니다.");
  196. ]]>
  197. </script>
  198. </button>
  199. <input id="ipt_filenm" ref="/root/main/reptdetl/item/attfile" class="input_default" style="left:695px; top:5px; width:200px; height:19px; "/>
  200. <button id="btn_fileatt" class="btn2_letter4" style="left:897px; top:5px; width:64px; height:19px; ">
  201. <caption>파일첨부</caption>
  202. <script type="javascript" ev:event="onclick">
  203. <![CDATA[
  204. var maxsize = upload1.attribute("filesize");
  205. files = window.fileDialog("open", "|", true);
  206. filelist = files.split("|");
  207. for(var i = 0 ; i < filelist.length ; i++ ) {
  208. grd_attach.addRow(false);
  209. grd_attach.valueMatrix(grd_attach.rows - 1, 0) = filelist[i];
  210. if (!checkFileSize(upload1)){
  211. grd_attach.removeItem();
  212. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  213. return;
  214. }
  215. }
  216. if (submit("TXIRS00199")) {
  217. messageBox("Upload가 성공적으로 이루어졌습니다.","I999");
  218. model.removeNodeset("/root/send/attach");
  219. parent.model.setValue("/root/temp/ivieweryn", "N"); //중간보고서 iviewer 호출 여부 = N
  220. parent.btn_report5.selected = true;
  221. parent.btn_report5.dispatch("DOMActivate");
  222. model.refresh();
  223. }
  224. ]]>
  225. </script>
  226. </button>
  227. <button id="btn_tmpsave" class="btn2_letter4" style="left:1030px; top:5px; width:64px; height:19px; ">
  228. <caption>임시저장</caption>
  229. <script type="javascript" ev:event="DOMActivate">
  230. <![CDATA[
  231. //접수 후 수정불가
  232. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  233. messageBox("이미 접수되어 저장 또는 수정", "E001");
  234. return;
  235. }
  236. model.copyNode("/root/send/savedata", "/root/main/reptdetl/item");
  237. model.setValue("/root/send/savedata/reptkind", "5"); //보고서종류=변경계획서(5)
  238. model.setValue("/root/send/savedata/acptyn", "N"); //접수여부=미접수(N)
  239. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  240. var instcd = model.getValue("/root/send/savedata/instcd");
  241. if ( instcd == '' ) {
  242. messageBox("병원을 ", "C002");
  243. }
  244. submit("TXIRB00132");
  245. } else {
  246. submit("TXIRB00121");
  247. }
  248. model.setValue("/root/main/reptdetl/item/acptyn", "N"); //접수여부를 미접수로 보여줌.
  249. model.refresh();
  250. parent.model.setValue("/root/temp/ivieweryn", "N"); //변경계획서 iviewer 호출 여부 = N
  251. parent.btn_report5.selected = true;
  252. parent.btn_report5.dispatch("DOMActivate");
  253. ]]>
  254. </script>
  255. </button>
  256. <button id="btn_reptacpt" class="btn2_letter5" style="left:1097px; top:5px; width:75px; height:19px; ">
  257. <caption>보고서접수</caption>
  258. <script type="javascript" ev:event="DOMActivate">
  259. <![CDATA[
  260. //접수 후 수정불가
  261. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  262. messageBox("이미 접수되어 저장 또는 수정", "E001");
  263. return;
  264. }
  265. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  266. if ( reptseqno != '') {
  267. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  268. }
  269. model.copyNode("/root/send/savedata", "/root/main/reptdetl/item");
  270. model.setValue("/root/send/savedata/reptkind", "5"); //보고서종류=변경계획서(5)
  271. model.setValue("/root/send/savedata/acptyn", "Y"); //접수여부=접수(Y)
  272. model.setValue("/root/send/savedata/acptdd", getCurrentDate()); //접수일=오늘날짜
  273. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  274. var instcd = model.getValue("/root/send/savedata/instcd");
  275. if ( instcd == '' ) {
  276. messageBox("병원을 ", "C002");
  277. }
  278. submit("TXIRB00132");
  279. } else {
  280. submit("TXIRB00121");
  281. }
  282. model.setValue("/root/main/reptdetl/item/acptyn", "Y"); //접수여부를 접수로 보여줌.
  283. model.refresh();
  284. parent.model.setValue("/root/temp/ivieweryn", "N"); //변경계획서 iviewer 호출 여부 = N
  285. parent.btn_report5.selected = true;
  286. parent.btn_report5.dispatch("DOMActivate");
  287. ]]>
  288. </script>
  289. </button>
  290. <button id="btn_subjchngitem" class="btn2_letter8" style="left:945px; top:25px; width:108px; height:19px; ">
  291. <caption>과제변경 항목추가</caption>
  292. <script type="javascript" ev:event="DOMActivate">
  293. <![CDATA[
  294. setParameter("instcd", model.getValue("/root/send/searchitem/instcd"));
  295. setParameter("subjid", model.getValue("/root/send/searchitem/subjid"));
  296. setParameter("reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  297. setParameter("reptkind", model.getValue("/root/send/searchitem/reptkind"));
  298. setParameter("totstdycost", model.getValue("/root/send/searchitem/totstdycost"));
  299. setParameter("direccost", model.getValue("/root/send/searchitem/direccost"));
  300. //window.load("../../../crc/comsubjweb/xrw/SPIMR00300_공통코드조회팝업.xrw","modal","code", "left:600px; top:50px; width:1500px; height:540px;min:hidden;max:hidden;resize:false;" ,"", "");
  301. window.load("../../../crc/reqsubjcmpyweb/xrw/SPIRB00100_과제변경항목.xrw","modal","code", "left:200px; top:50px; width:1500px; height:540px;min:hidden;max:hidden;resize:false;" ,"", "");
  302. ]]>
  303. </script>
  304. </button>
  305. <button id="button2" class="btn2_letter9" style="left:1055px; top:25px; width:119px; height:19px; ">
  306. <caption>변경계획보고서 출력</caption>
  307. <script type="javascript" ev:event="DOMActivate">
  308. <![CDATA[
  309. if(submit("TRIRS00131")) {
  310. exeReportPreview("PSIRB00700", "XMLSTR" , "/root/rex");
  311. }
  312. ]]>
  313. </script>
  314. </button>
  315. <caption id="caption14" class="tit_2" style="left:10px; top:10px; width:140px; height:14px; ">변경계획서</caption>
  316. <button id="btn_filedown" class="btn2_letter4" visibility="hidden" style="left:900px; top:5px; width:64px; height:19px; ">
  317. <caption>내려받기</caption>
  318. <script type="javascript" ev:event="DOMActivate">
  319. <![CDATA[
  320. var s = model.getValue("/root/main/reptdetl/item/attfile");
  321. var ss = s.split("/");
  322. var filepath = "";
  323. var filenm = "";
  324. for ( var i = 0; i < ss.length; i ++){
  325. if ( i < ss.length -2 ) {
  326. filepath = filepath+ss[i] +"/";
  327. } else if ( i < ss.length -1 ) {
  328. filepath = filepath+ss[i] ;
  329. } else {
  330. filenm = ss[i];
  331. }
  332. }
  333. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  334. if (localfile != "") {
  335. model.download(getActionURL("TRIRS00135")+"&filepath="+filepath,localfile);
  336. var rtn = messageBox("파일을", "Q004");
  337. if( rtn == 6 ) {
  338. window.exec(localfile);
  339. }
  340. }
  341. ]]>
  342. </script>
  343. </button>
  344. <upload id="upload1" nodeset="/root/send/attach/file" ext="zip" filecount="5" filesize="10485760" validate="true" style="left:690px; top:75px; width:100px; height:20px; "/>
  345. <datagrid id="grd_attach" nodeset="/root/send/attach" visibility="hidden" caption="파일경로^" colwidth="644" extendlastcol="scroll" mergecellsfixedrows="bycolrec" style="left:140px; top:180px; width:665px; height:150px; ">
  346. <col ref="file"/>
  347. </datagrid>
  348. </xhtml:body>
  349. </xhtml:html>