SSIRB01100_변동위반보고서.xrw 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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. <verplan/>
  33. <veraprv/>
  34. <vercrf/>
  35. <verib/>
  36. <attfile/>
  37. <reptchoose/>
  38. <screenmenu/>
  39. <stdykind2/>
  40. <rc/>
  41. <resercnfmyn/>
  42. <firstdg/>
  43. <firstjudgdd/>
  44. </item>
  45. <test>
  46. <subjid/>
  47. <reptkind/>
  48. <reptseqno/>
  49. <instcd/>
  50. <testeeid/>
  51. <testeenm/>
  52. <subtesteegndr/>
  53. <awardd/>
  54. <genrdd/>
  55. </test>
  56. </reptdetl>
  57. <reptlist>
  58. <item>
  59. <subjno/>
  60. <judgdd/>
  61. <judgkind/>
  62. <judgrslt/>
  63. <judgitem/>
  64. <judgitem1/>
  65. <judgitem2/>
  66. <judgitem3/>
  67. <judgitem4/>
  68. </item>
  69. </reptlist>
  70. </main>
  71. <send>
  72. <savedata>
  73. </savedata>
  74. <searchitem>
  75. <reptkind/>
  76. <subjid/>
  77. <instcd/>
  78. <reptseqno/>
  79. <consorflag/>
  80. <croinstcd/>
  81. </searchitem>
  82. </send>
  83. <hidden>
  84. </hidden>
  85. <init>
  86. <hosp>
  87. <ret>
  88. <instcd/>
  89. <hospnm/>
  90. </ret>
  91. </hosp>
  92. </init>
  93. <rex>
  94. <view>
  95. <appformhead>
  96. <subjnm/>
  97. <subjno/>
  98. <hospnm/>
  99. <depthngnm/>
  100. <cdnm/>
  101. <usernm/>
  102. <hospcd/>
  103. <judgdd/>
  104. <judgappdg/>
  105. </appformhead>
  106. <irsdcollareser>
  107. <subjid/>
  108. <instcd/>
  109. <userid/>
  110. <userkind/>
  111. <usernm/>
  112. <posnm/>
  113. <jobposnm/>
  114. </irsdcollareser>
  115. <imcmreqinst>
  116. <cmpynm/>
  117. <prsdnm/>
  118. <jobposnm/>
  119. </imcmreqinst>
  120. <irsdpharmst>
  121. <usernm/>
  122. <posnm/>
  123. <jobposnm/>
  124. <subjid/>
  125. <instcd/>
  126. <userid/>
  127. <userkind/>
  128. <telnumber/>
  129. </irsdpharmst>
  130. <irsdcodi>
  131. <usernm/>
  132. <posnm/>
  133. <jobposnm/>
  134. <subjid/>
  135. <instcd/>
  136. <userid/>
  137. <userkind/>
  138. <telnumber/>
  139. </irsdcodi>
  140. <imcmreser>
  141. <usernm/>
  142. <hometel/>
  143. <cmpytelno/>
  144. <faxno/>
  145. <email/>
  146. </imcmreser>
  147. </view>
  148. <basesubjinfo>
  149. <basesubjinfo>
  150. <subjid/>
  151. <perchgrid/>
  152. <acptyn/>
  153. <judgkind/>
  154. <subjnm/>
  155. <subjpwd/>
  156. <clinictrgtflag/>
  157. <reqinstflag/>
  158. <stdycostsuppinst/>
  159. <stdycostsuppinstnm/>
  160. <itemnm/>
  161. <comnm/>
  162. <allidxcase/>
  163. <stdystartdd/>
  164. <stdyenddd/>
  165. <appdd/>
  166. <testeeaprvflag/>
  167. <relprstdata1/>
  168. <relprstdata2/>
  169. <relprstdata3/>
  170. <relprstdata4/>
  171. <relprstdata5/>
  172. <prstdataetc5/>
  173. <resercd/>
  174. <reqinstcd/>
  175. <concernrela/>
  176. <verplan/>
  177. <veraprv/>
  178. <vercrf/>
  179. <verib/>
  180. <consorflag/>
  181. <deptcd/>
  182. <reqcnfmyn/>
  183. <inqrgoal/>
  184. <trgtsick/>
  185. <inqrmthd/>
  186. <stdykind1/>
  187. <etctrgt1/>
  188. <stdykind2/>
  189. <etctrgt2/>
  190. <stdykind3/>
  191. <manynation/>
  192. <manyinst/>
  193. <cmcinstcnt/>
  194. <stdykind4/>
  195. <etctrgt4/>
  196. <stdytrgt/>
  197. <etctrgt/>
  198. <agenestdyflag/>
  199. <cellcurestdyyn/>
  200. <testeestat/>
  201. <fratesteeflag/>
  202. <stdyspcl1/>
  203. <stdyspcl2/>
  204. <stdyspcl3/>
  205. <stdyspcl4/>
  206. <stdyspcl5/>
  207. <stdyspcl6/>
  208. <stdyspcl7/>
  209. <examadjthosp/>
  210. <examadjtprf/>
  211. <allexamresppos/>
  212. <allexamrespnm/>
  213. <foodscrtgovpassyn/>
  214. <prmisnnatiyn/>
  215. <intermarketyn/>
  216. <judgkindcode/>
  217. <reqinstchrgid/>
  218. <reqinstchrgnm/>
  219. <reqinstjobposnm/>
  220. <croinstnm/>
  221. </basesubjinfo>
  222. </basesubjinfo>
  223. <basehospinfo>
  224. <basehospinfo>
  225. <subjid/>
  226. <instcd/>
  227. <subjno/>
  228. <condd/>
  229. <reqyn/>
  230. <reqdt/>
  231. <totstdycost/>
  232. <direccost/>
  233. <stdystartdd/>
  234. <stdyenddd/>
  235. <crccaprvyn/>
  236. <crccaprvdd/>
  237. <rtnresn/>
  238. <roothospidxcasecnt/>
  239. <depomthd/>
  240. <respstdyempno/>
  241. <respstdycnfmsubjyn/>
  242. <respstdycnfmexecyn/>
  243. <respstdycnfmselfyn/>
  244. <mdlreptdd/>
  245. <subjenddd/>
  246. <subjdiscontinudd/>
  247. <subjdiscontinuresn/>
  248. <subrecuyn/>
  249. <subrecuenddd/>
  250. <reqjudgcostdepoyn/>
  251. <reqjudgcostdepodd/>
  252. <irbjudgcostamt/>
  253. <irbjudgcostdepoyn/>
  254. <irbjudgcostdepodd/>
  255. <irbjudgflag/>
  256. <conacptyn/>
  257. <conacptdd/>
  258. <conyn/>
  259. <concondd/>
  260. <examdrugwinyn/>
  261. <examdrugwindd/>
  262. <stdycostcalcyn/>
  263. <captyn/>
  264. <captdd/>
  265. <crcccnfm1/>
  266. <crcccnfm2/>
  267. <crcccnfm3/>
  268. <irbjudgyn/>
  269. <subjattfile/>
  270. <judgcnvtyn/>
  271. <mdlschedd/>
  272. <endschedd/>
  273. <rsltschedd/>
  274. <contschedd/>
  275. </basehospinfo>
  276. </basehospinfo>
  277. <data>
  278. <cnts1/>
  279. <cnts2/>
  280. <resercnfmyn/>
  281. <acptdd/>
  282. <firstdg/>
  283. <firstjudgdd/>
  284. </data>
  285. <reptdetl>
  286. <subjid/>
  287. <reptkind/>
  288. <reptseqno/>
  289. <instcd/>
  290. <testeeid/>
  291. <testeenm/>
  292. <subtesteegndr/>
  293. <awardd/>
  294. <genrdd/>
  295. </reptdetl>
  296. </rex>
  297. <temp/>
  298. </root>
  299. </instance>
  300. <submission id="TRIRB00102" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/init/hosp"/>
  301. <submission id="TRIRB00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/main/reptdetl"/>
  302. <submission id="TXIRB00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" replace="instance" resultref="/root/hidden"/>
  303. <submission id="TRIRS00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/rex/view"/>
  304. <submission id="TRIRS00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/rex/basesubjinfo"/>
  305. <submission id="TRIRS00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/rex/basehospinfo"/>
  306. <submission id="TRIRS00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  307. <submission id="TXIRB00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" replace="instance" resultref="/root/hidden"/>
  308. <submission id="TXIRS00199" mediatype="multipart/form-data" method="form-data-post" ref="/root/send" resultref="/root/hidden"/>
  309. <submission id="TXIRB00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/hidden"/>
  310. <submission id="TXIRB00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/hidden"/>
  311. <submission id="TXIRS00198" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  312. </model>
  313. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  314. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  315. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  316. <script type="javascript" ev:event="xforms-ready">
  317. <![CDATA[
  318. model.removeNodeset("/root/main/reptdetl/test");
  319. //권한이 없는경우 보고서 상단의 파일첨부,첨부삭제,임시저장,보고서접수 버튼 숨기기
  320. if ( opener.javascript.getParameter("actionyn") == "N" ) {
  321. ipt_filenm.visible = true;
  322. btn_fileatt.visible = false;
  323. btn_filedel.visible = false;
  324. btn_tmpsave.visible = false;
  325. btn_reptacpt.visible = false;
  326. btn_filedown.visible=true;
  327. button1.visible = false;
  328. }
  329. if ( parent.model.getValue("/root/send/report") == "Y" ) {
  330. ipt_filenm.visible = true;
  331. btn_fileatt.visible = false;
  332. btn_filedel.visible = false;
  333. btn_tmpsave.visible = false;
  334. btn_reptacpt.visible = false;
  335. btn_filedown.visible=true;
  336. button1.visible = false;
  337. }
  338. submit("TRIRB00102"); //병원 조회
  339. model.setValue("/root/send/searchitem/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  340. model.setValue("/root/send/searchitem/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  341. model.setValue("/root/send/searchitem/reptseqno", parent.model.getValue("/root/send/searchitem2/reptseqno"));
  342. model.setValue("/root/send/searchitem/reptkind", parent.model.getValue("/root/send/searchitem2/reptkind"));
  343. var consorflag = parent.model.getValue("/root/send/searchitem/consorflag");
  344. if ( consorflag == "Y" ) {
  345. //submit("TRIRB00107"); //공동과제보완답변서 대상 조회
  346. model.setValue("/root/send/searchitem/consorflag", "Y");
  347. } else {
  348. //submit("TRIRB00105"); //보완답변서 대상 조회
  349. }
  350. //화면 오픈시 Y일 경우만 자동조회하고 Y가 아닐 경우는 빈 양식 오픈후 필수값만 세팅해준다.
  351. if ( parent.model.getValue("/root/send/searchitem2/autosrchyn") == "Y" ) {
  352. submit("TRIRB00104"); //변동위반보고서 내용 조회
  353. // model.setValue("/root/main/reptdetl/item/cnts1", model.getValue("/root/main/reptlist/item/judgitem"));
  354. }
  355. model.setValue("/root/main/reptdetl/item/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  356. model.setValue("/root/main/reptdetl/item/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  357. model.setValue("/root/main/reptdetl/item/judgappdg", parent.model.getValue("/root/send/searchitem2/judgappdg"));
  358. model.setValue("/root/main/reptdetl/item/roothospidxcasecnt", parent.model.getValue("/root/send/searchitem2/roothospidxcasecnt"));
  359. model.setValue("/root/main/reptdetl/item/subjno", parent.model.getValue("/root/send/searchitem2/subjno"));
  360. model.setValue("/root/main/reptdetl/item/subjnm", parent.model.getValue("/root/send/searchitem2/subjnm"));
  361. model.setValue("/root/main/reptdetl/item/fstplanjudgdd", parent.model.getValue("/root/send/searchitem2/judgdd"));
  362. model.setValue("/root/main/reptdetl/item/verplan", parent.model.getValue("/root/send/searchitem2/verplan"));
  363. model.setValue("/root/main/reptdetl/item/veraprv", parent.model.getValue("/root/send/searchitem2/veraprv"));
  364. model.setValue("/root/main/reptdetl/item/vercrf", parent.model.getValue("/root/send/searchitem2/vercrf"));
  365. model.setValue("/root/main/reptdetl/item/verib", parent.model.getValue("/root/send/searchitem2/verib"));
  366. model.setValue("/root/main/reptdetl/item/screenmenu", parent.model.getValue("/root/init/screenmenu"));
  367. model.setValue("/root/main/reptdetl/item/stdykind2", parent.model.getValue("/root/send/searchitem2/stdykind2"));
  368. model.setValue("/root/main/reptdetl/item/rc", parent.model.getValue("/root/send/searchitem2/rc"));
  369. model.makeValue("/root/main/reptdetl/item/resercnfmyn", parent.model.getValue("/root/send/searchitem2/resercnfmyn"));
  370. model.setValue("/root/send/searchitem/croinstcd", parent.model.getValue("/root/send/searchitem2/croinstcd"));
  371. model.refresh();
  372. ]]>
  373. </script>
  374. </xhtml:head>
  375. <xhtml:body guideline="2,455;">
  376. <line id="line13" class="line_3" style="x1:5px; y1:453px; x2:858px; y2:453px; "/>
  377. <caption id="caption10" class="cell_1" style="left:656px; top:66px; width:105px; height:23px; text-align:center; vertical-align:middle; ">목표례수</caption>
  378. <select1 id="cmb_instcd" ref="/root/main/reptdetl/item/instcd" class="combo_search" disabled="true" appearance="minimal" style="left:553px; top:41px; width:100px; height:19px; ">
  379. <choices>
  380. <itemset nodeset="/root/init/hosp/ret">
  381. <label ref="hospnm"/>
  382. <value ref="instcd"/>
  383. </itemset>
  384. </choices>
  385. </select1>
  386. <select1 id="cmb_acptyn" ref="/root/main/reptdetl/item/acptyn" class="combo_search" disabled="true" appearance="minimal" style="left:763px; top:42px; width:90px; height:19px; ">
  387. <choices>
  388. <item>
  389. <label>접수</label>
  390. <value>Y</value>
  391. </item>
  392. <item>
  393. <label>미접수</label>
  394. <value>N</value>
  395. </item>
  396. </choices>
  397. </select1>
  398. <caption id="caption3" class="cell_1" style="left:445px; top:41px; width:105px; height:23px; text-align:center; vertical-align:middle; ">선택된병원</caption>
  399. <caption id="caption4" class="cell_1" style="left:656px; top:41px; width:105px; height:23px; text-align:center; vertical-align:middle; ">접수여부</caption>
  400. <caption id="caption14" class="cell_1" style="left:166px; top:41px; width:171px; height:23px; text-align:center; vertical-align:middle; ">최초임상시험 계획서 심사일자</caption>
  401. <caption id="caption7" class="cell_1" style="left:5px; top:41px; width:105px; height:23px; text-align:center; vertical-align:middle; ">심사차수</caption>
  402. <input id="ipt_judgappdg" ref="/root/main/reptdetl/item/judgappdg" class="input_default" disabled="true" style="left:113px; top:42px; width:50px; height:19px; "/>
  403. <input id="ipt_vercrf" ref="/root/main/reptdetl/item/subjnm" class="input_default" disabled="true" style="left:113px; top:67px; width:540px; height:19px; "/>
  404. <caption id="caption8" class="cell_1" style="left:5px; top:66px; width:105px; height:23px; text-align:center; vertical-align:middle; ">연구과제명</caption>
  405. <input id="ipt_fstplanjudgdd" ref="/root/main/reptdetl/item/fstplanjudgdd" class="input_search" disabled="true" inputtype="date" appearance="input" style="left:341px; top:42px; width:100px; height:19px; "/>
  406. <input id="ipt_verib" ref="/root/main/reptdetl/item/roothospidxcasecnt" class="input_default" disabled="true" style="left:763px; top:68px; width:90px; height:19px; "/>
  407. <line id="line2" class="line_1" style="x1:5px; y1:35px; x2:858px; y2:35px; "/>
  408. <caption id="caption1" class="tit_2" style="left:15px; top:15px; width:216px; height:14px; ">임상연구계획서 변동/위반 보고서</caption>
  409. <button id="btn_fileatt" class="btn2_letter4" _auth="X" style="left:415px; top:13px; width:64px; height:19px; ">
  410. <caption>파일첨부</caption>
  411. <script type="javascript" ev:event="DOMActivate">
  412. <![CDATA[
  413. if ( model.getValue("/root/main/reptdetl/item/acptyn") == '' ) {
  414. messageBox("임시저장 후 첨부파일을 올리세요", "I");
  415. return;
  416. }
  417. var maxsize = upload1.attribute("filesize");
  418. files = window.fileDialog("open", "|", true);
  419. filelist = files.split("|");
  420. for(var i = 0 ; i < filelist.length ; i++ ) {
  421. grd_attach.addRow(false);
  422. grd_attach.valueMatrix(grd_attach.rows - 1, 0) = filelist[i];
  423. if (!checkFileSize(upload1)){
  424. grd_attach.removeItem();
  425. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  426. return;
  427. }
  428. }
  429. if ( filelist[0] != "") {
  430. if (submit("TXIRS00199")) {
  431. messageBox("Upload가 성공적으로 이루어졌습니다.","I999");
  432. model.removeNodeset("/root/send/attach");
  433. parent.model.setValue("/root/temp/ivieweryn", "N"); //중간보고서 iviewer 호출 여부 = N
  434. parent.btn_report9.selected = true;
  435. parent.btn_report9.dispatch("DOMActivate");
  436. model.refresh();
  437. }
  438. }
  439. submit("TRIRB00104");
  440. model.setValue("/root/main/reptdetl/item/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  441. model.setValue("/root/main/reptdetl/item/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  442. model.setValue("/root/main/reptdetl/item/judgappdg", parent.model.getValue("/root/send/searchitem2/judgappdg"));
  443. model.setValue("/root/main/reptdetl/item/roothospidxcasecnt", parent.model.getValue("/root/send/searchitem2/roothospidxcasecnt"));
  444. model.setValue("/root/main/reptdetl/item/subjno", parent.model.getValue("/root/send/searchitem2/subjno"));
  445. model.setValue("/root/main/reptdetl/item/subjnm", parent.model.getValue("/root/send/searchitem2/subjnm"));
  446. model.setValue("/root/main/reptdetl/item/fstplanjudgdd", parent.model.getValue("/root/send/searchitem2/judgdd"));
  447. model.setValue("/root/main/reptdetl/item/screenmenu", parent.model.getValue("/root/init/screenmenu"));
  448. model.setValue("/root/main/reptdetl/item/stdykind2", parent.model.getValue("/root/send/searchitem2/stdykind2"));
  449. model.setValue("/root/main/reptdetl/item/rc", parent.model.getValue("/root/send/searchitem2/rc"));
  450. model.refresh();
  451. ]]>
  452. </script>
  453. </button>
  454. <button id="btn_filedel" class="btn5_letter4" _auth="X" style="left:481px; top:13px; width:64px; height:19px; ">
  455. <caption>첨부삭제</caption>
  456. <script type="javascript" ev:event="DOMActivate">
  457. <![CDATA[
  458. //접수 후 수정불가
  459. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  460. messageBox("이미 접수되어 저장 또는 수정", "E001");
  461. return;
  462. } else {
  463. if (submit("TXIRS00198")) {
  464. messageBox("첨부파일이 삭제되었습니다.","I999");
  465. model.refresh();
  466. }
  467. }
  468. if ( model.getValue("/root/hidden/ret/reptseqno") != '' ) {
  469. submit("TRIRB00104");
  470. }
  471. ]]>
  472. </script>
  473. </button>
  474. <input id="ipt_filenm" ref="/root/main/reptdetl/item/attfile" class="input_default" style="left:253px; top:13px; width:157px; height:19px; "/>
  475. <button id="btn_reptacpt" class="btn2_letter5" _auth="X" style="left:660px; top:13px; width:75px; height:19px; ">
  476. <caption>보고서접수</caption>
  477. <script type="javascript" ev:event="DOMActivate">
  478. <![CDATA[
  479. //접수 후 수정불가
  480. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  481. messageBox("이미 접수되어 저장 또는 수정", "E001");
  482. return;
  483. }
  484. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  485. if ( reptseqno != '') {
  486. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  487. }
  488. model.copyNode("/root/send/savedata", "/root/main/reptdetl/item");
  489. model.setValue("/root/send/savedata/reptkind", "A"); //보고서종류=변동위반보고서
  490. model.setValue("/root/send/savedata/acptyn", "Y"); //접수여부=접수(Y)
  491. model.setValue("/root/send/savedata/acptdd", getCurrentDate()); //접수일=오늘날짜
  492. model.makeValue("/root/send/savedata/croinstcd", model.getValue("/root/send/searchitem/croinstcd"));
  493. if ( model.getValue("/root/main/reptdetl/item/reptchoose") == 'V') {
  494. model.makeValue("/root/send/savedata/judgkind", "S"); //심의종류
  495. } else {
  496. model.makeValue("/root/send/savedata/judgkind", "N"); //심의종류
  497. }
  498. for ( i = 1; i < grd_test.rows; i++ ) {
  499. model.setValue("/root/main/reptdetl/test["+ i +"]/reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  500. }
  501. var update1 = instance1.selectNodes("/root/main/reptdetl/test");
  502. var rCSV1 = getNodeListCSV(update1);
  503. if ( rCSV1 != null ) {
  504. for ( i = 1; i < grd_test.rows; i++ ) {
  505. if ( model.getValue("/root/main/reptdetl/test["+ i +"]/testeeid") == "" ) {
  506. messageBox("피험자번호를", "C001");
  507. return;
  508. }
  509. }
  510. model.makeNode("/root/send/savedata/test");
  511. model.setValue("/root/send/savedata/test", rCSV1);
  512. }
  513. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  514. var instcd = model.getValue("/root/send/savedata/instcd");
  515. if ( instcd == '' ) {
  516. messageBox("병원을 ", "C002");
  517. }
  518. submit("TXIRB00102");
  519. } else {
  520. submit("TXIRB00101");
  521. }
  522. grd_test.clearStatus();
  523. model.setValue( "/root/send/searchitem/reptseqno",model.getValue("/root/hidden/ret/reptseqno"));
  524. parent.model.setValue("/root/temp/ivieweryn", "N"); //보완답변서 iviewer 호출 여부 = N
  525. parent.btn_report9.selected = true;
  526. parent.btn_report9.dispatch("DOMActivate");
  527. model.removeNodeset("/root/send/savedata");
  528. model.makeNode("/root/send/savedata");
  529. ]]>
  530. </script>
  531. </button>
  532. <button id="btn_tmpsave" class="btn2_letter4" _auth="X" style="left:548px; top:13px; width:64px; height:19px; ">
  533. <caption>임시저장</caption>
  534. <script type="javascript" ev:event="DOMActivate">
  535. <![CDATA[
  536. //접수 후 수정불가
  537. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  538. messageBox("이미 접수되어 저장 또는 수정", "E001");
  539. return;
  540. }
  541. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  542. if ( reptseqno != "") {
  543. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  544. }
  545. model.copyNode("/root/send/savedata", "/root/main/reptdetl/item");
  546. model.setValue("/root/send/savedata/reptkind", "A"); //보고서종류=변동위반보고서
  547. model.setValue("/root/send/savedata/acptyn", "N"); //접수여부=미접수(N)
  548. model.setValue( "/root/send/searchitem/reptseqno",model.getValue("/root/hidden/ret/reptseqno"));
  549. model.makeValue("/root/send/savedata/croinstcd", model.getValue("/root/send/searchitem/croinstcd"));
  550. if ( model.getValue("/root/main/reptdetl/item/reptchoose") == 'V') {
  551. model.makeValue("/root/send/savedata/judgkind", "S"); //심의종류
  552. } else {
  553. model.makeValue("/root/send/savedata/judgkind", "N"); //심의종류
  554. }
  555. /*
  556. for ( i = 1; i < grd_test.rows; i++ ) {
  557. model.setValue("/root/main/reptdetl/test["+ i +"]/reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  558. }
  559. */
  560. var update1 = instance1.selectNodes("/root/main/reptdetl/test");
  561. var rCSV1 = getNodeListCSV(update1);
  562. if ( rCSV1 != null ) {
  563. for ( i = 1; i < grd_test.rows; i++ ) {
  564. if ( model.getValue("/root/main/reptdetl/test["+ i +"]/testeeid") == "" ) {
  565. messageBox("피험자번호를", "C001");
  566. return;
  567. }
  568. }
  569. model.makeNode("/root/send/savedata/test");
  570. model.setValue("/root/send/savedata/test", rCSV1);
  571. }
  572. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  573. var instcd = model.getValue("/root/send/savedata/instcd");
  574. if ( instcd == '' ) {
  575. messageBox("병원을 ", "C002");
  576. }
  577. submit("TXIRB00102");
  578. } else {
  579. submit("TXIRB00101");
  580. }
  581. grd_test.clearStatus();
  582. parent.model.setValue("/root/temp/ivieweryn", "N"); //보완답변서 iviewer 호출 여부 = N
  583. parent.btn_report9.selected = true;
  584. parent.btn_report9.dispatch("DOMActivate");
  585. model.removeNodeset("/root/send/savedata");
  586. model.makeNode("/root/send/savedata");
  587. ]]>
  588. </script>
  589. </button>
  590. <button id="button18" class="btn2_letter9" _auth="P" style="left:738px; top:13px; width:119px; height:19px; ">
  591. <caption>변동위반보고서 출력</caption>
  592. <script type="javascript" ev:event="DOMActivate">
  593. <![CDATA[
  594. if(submit("TRIRS00101")) {
  595. submit("TRIRS00102");
  596. submit("TRIRS00103");
  597. model.setValue("/root/rex/data/resercnfmyn", model.getValue("/root/main/reptdetl/item/resercnfmyn"));
  598. var cnts5 = model.getValue("/root/rex/data/cnts5");
  599. var cnts6 = model.getValue("/root/rex/data/cnts6");
  600. var cnts7 = model.getValue("/root/rex/data/cnts7");
  601. var cnts8 = model.getValue("/root/rex/data/cnts8");
  602. var j = 0;
  603. var p = 0;
  604. var k = 0;
  605. model.copyNode("/root/rex/reptdetl", "/root/main/reptdetl");
  606. // 피험자 정보 목록에서 최초인지일은 min값을 가져옴
  607. var getdd = 99991231;
  608. for (var i=1; i < grd_test.rows; i++)
  609. {
  610. if (getdd > parseInt(model.getValue("/root/main/reptdetl/test["+i+"]/awardd")))
  611. getdd = model.getValue("/root/main/reptdetl/test["+i+"]/awardd");
  612. }
  613. if (getdd != "99991231")
  614. model.setValue("/root/rex/reptdetl/test/awardd", getdd);
  615. if ( cnts5.indexOf("\n",p ) >=0 ){
  616. while ( (j = cnts5.indexOf("\n",p ))>=0){
  617. var sdata = cnts5.substring( p, j );
  618. p = j + 1;
  619. k = k + 1;
  620. model.makeValue("/root/rex/reptdetl/item[1]/cnts5info["+k+"]/cnts5", sdata.replace("\n","") );
  621. }
  622. if ( p<cnts5.length){ // 제일 마지막 엔터 뒤 문장 처리
  623. var sdata = cnts5.substring( p, cnts5.length );
  624. k = k + 1;
  625. model.makeValue("/root/rex/reptdetl/item[1]/cnts5info["+k+"]/cnts5", sdata.replace("\n","") );
  626. }
  627. } else { //엔터없을때 처리
  628. k = k + 1;
  629. model.makeNode("/root/rex/reptdetl");
  630. model.makeValue("/root/rex/reptdetl/item[1]/cnts5info["+k+"]/cnts5", cnts5);
  631. }
  632. j = 0;
  633. p = 0;
  634. k = 0;
  635. if ( cnts6.indexOf("\n",p ) >=0 ){
  636. while ( (j = cnts6.indexOf("\n",p ))>=0){
  637. var sdata = cnts6.substring( p, j );
  638. p = j + 1;
  639. k = k + 1;
  640. model.makeValue("/root/rex/reptdetl/item[1]/cnts6info["+k+"]/cnts6", sdata.replace("\n","") );
  641. }
  642. if ( p<cnts6.length){ // 제일 마지막 엔터 뒤 문장 처리
  643. var sdata = cnts6.substring( p, cnts6.length );
  644. k = k + 1;
  645. model.makeValue("/root/rex/reptdetl/item[1]/cnts6info["+k+"]/cnts6", sdata.replace("\n","") );
  646. }
  647. } else { //엔터없을때 처리
  648. k = k + 1;
  649. model.makeNode("/root/rex/reptdetl");
  650. model.makeValue("/root/rex/reptdetl/item[1]/cnts6info["+k+"]/cnts6", cnts6);
  651. }
  652. j = 0;
  653. p = 0;
  654. k = 0;
  655. if ( cnts7.indexOf("\n",p ) >=0 ){
  656. while ( (j = cnts7.indexOf("\n",p ))>=0){
  657. var sdata = cnts7.substring( p, j );
  658. p = j + 1;
  659. k = k + 1;
  660. model.makeValue("/root/rex/reptdetl/item[1]/cnts7info["+k+"]/cnts7", sdata.replace("\n","") );
  661. }
  662. if ( p<cnts7.length){ // 제일 마지막 엔터 뒤 문장 처리
  663. var sdata = cnts7.substring( p, cnts7.length );
  664. k = k + 1;
  665. model.makeValue("/root/rex/reptdetl/item[1]/cnts7info["+k+"]/cnts7", sdata.replace("\n","") );
  666. }
  667. } else { //엔터없을때 처리
  668. k = k + 1;
  669. model.makeNode("/root/rex/reptdetl");
  670. model.makeValue("/root/rex/reptdetl/item[1]/cnts7info["+k+"]/cnts7", cnts7);
  671. }
  672. j = 0;
  673. p = 0;
  674. k = 0;
  675. if ( cnts8.indexOf("\n",p ) >=0 ){
  676. while ( (j = cnts8.indexOf("\n",p ))>=0){
  677. var sdata = cnts8.substring( p, j );
  678. p = j + 1;
  679. k = k + 1;
  680. model.makeValue("/root/rex/reptdetl/item[1]/cnts8info["+k+"]/cnts8", sdata.replace("\n","") );
  681. }
  682. if ( p<cnts8.length){ // 제일 마지막 엔터 뒤 문장 처리
  683. var sdata = cnts8.substring( p, cnts8.length );
  684. k = k + 1;
  685. model.makeValue("/root/rex/reptdetl/item[1]/cnts8info["+k+"]/cnts8", sdata.replace("\n","") );
  686. }
  687. } else { //엔터없을때 처리
  688. k = k + 1;
  689. model.makeNode("/root/rex/reptdetl");
  690. model.makeValue("/root/rex/reptdetl/item[1]/cnts8info["+k+"]/cnts8", cnts8);
  691. }
  692. exeReportPreview("PSIRB01000", "XMLSTR" , "/root/rex");
  693. }
  694. ]]>
  695. </script>
  696. </button>
  697. <upload id="upload1" nodeset="/root/send/attach/file" ext="zip" filecount="5" filesize="52428800" validate="true" style="left:235px; top:5px; width:100px; height:20px; "/>
  698. <datagrid id="grd_attach" nodeset="/root/send/attach" visibility="hidden" caption="파일경로^" colwidth="644" extendlastcol="scroll" mergecellsfixedrows="bycolrec" style="left:120px; top:35px; width:665px; height:150px; ">
  699. <col ref="file"/>
  700. </datagrid>
  701. <button id="button1" class="btn5_letter2" _auth="X" style="left:615px; top:13px; width:42px; height:19px; ">
  702. <caption>삭제</caption>
  703. <script type="javascript" ev:event="DOMActivate">
  704. <![CDATA[
  705. //접수 후 수정불가
  706. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  707. messageBox("이미 접수되어 저장 또는 수정", "E001");
  708. return;
  709. }
  710. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  711. if ( reptseqno != '') {
  712. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  713. }
  714. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  715. /* var instcd = model.getValue("/root/send/savedata/instcd");
  716. if ( instcd == '' ) {
  717. messageBox("병원을 ", "C002");
  718. } */
  719. submit("TXIRB00104");
  720. } else {
  721. submit("TXIRB00103");
  722. }
  723. model.refresh();
  724. parent.model.setValue("/root/temp/ivieweryn", "N");
  725. parent.btn_report9.selected = true;
  726. parent.btn_report9.dispatch("DOMActivate");
  727. ]]>
  728. </script>
  729. </button>
  730. <caption id="caption2" class="cell_1" style="left:5px; top:91px; width:105px; height:23px; text-align:center; vertical-align:middle; ">과제번호</caption>
  731. <input id="output1" ref="/root/main/reptdetl/item/subjno" class="input_default" disabled="true" style="left:113px; top:92px; width:540px; height:19px; "/>
  732. <caption id="caption5" class="cell_1" style="left:656px; top:91px; width:105px; height:23px; text-align:center; vertical-align:middle; ">진행례수</caption>
  733. <input id="output2" ref="/root/main/reptdetl/item/prcsidxcase" class="input_default" maxlength="5" format="99999" style="left:763px; top:92px; width:90px; height:19px; "/>
  734. <datagrid id="grd_test" nodeset="/root/main/reptdetl/test" caption="^^^^피험자번호^피험자약자^성별^최초인지일^발생일" colsep="^" colwidth="0, 0, 0, 0, 210, 288, 70, 110, 110" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:5px; top:140px; width:848px; height:75px; ">
  735. <col ref="subjid" visibility="hidden"/>
  736. <col ref="reptkind" visibility="hidden"/>
  737. <col ref="reptseqno" visibility="hidden"/>
  738. <col ref="instcd" visibility="hidden"/>
  739. <col ref="testeeid" type="input" maxlength="30"/>
  740. <col ref="testeenm" type="input" maxlength="30"/>
  741. <col class="gridcombo" ref="subtesteegndr" type="combo" style="text-align:center; ">
  742. <choices>
  743. <item>
  744. <label>남</label>
  745. <value>M</value>
  746. </item>
  747. <item>
  748. <label>여</label>
  749. <value>F</value>
  750. </item>
  751. </choices>
  752. </col>
  753. <col ref="awardd" type="inputdate" style="text-align:center; "/>
  754. <col ref="genrdd" type="inputdate" style="text-align:center; "/>
  755. <col ref="subtesteeht" visibility="hidden"/>
  756. <col ref="subtesteebdwt" visibility="hidden"/>
  757. <col ref="subtesteebrthdd" visibility="hidden"/>
  758. </datagrid>
  759. <caption id="caption33" class="tit_2" style="left:15px; top:122px; width:140px; height:13px; ">피험자 정보</caption>
  760. <button id="btn_rowdel" class="btn2_letter3" _auth="X" style="left:760px; top:118px; width:53px; height:19px; ">
  761. <caption>행삭제</caption>
  762. <script type="javascript" ev:event="DOMActivate">
  763. <![CDATA[
  764. grd_test.deleterow(grd_test.row);
  765. ]]>
  766. </script>
  767. </button>
  768. <button id="btn_rowadd" class="btn2_letter3" _auth="X" style="left:705px; top:118px; width:53px; height:19px; ">
  769. <caption>행추가</caption>
  770. <script type="javascript" ev:event="DOMActivate">
  771. <![CDATA[
  772. grd_test.addRow(true, true);
  773. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/instcd", model.getValue("/root/send/searchitem/instcd"));
  774. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/subjid", model.getValue("/root/send/searchitem/subjid"));
  775. //해당 보고서가 신규작성일 경우 보고서일련번호가 없으므로 최초시작번호인 1로 셋팅한다.
  776. if ( model.getValue("/root/send/searchitem/reptseqno") != "" ) {
  777. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  778. } else {
  779. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/reptseqno", 1);
  780. }
  781. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/reptkind", "A"); //보고서종류=변동위반보고서(9)
  782. model.refresh();
  783. ]]>
  784. </script>
  785. </button>
  786. <caption id="caption6" class="tit_2" style="left:15px; top:222px; width:140px; height:14px; ">변동/위반 보고</caption>
  787. <caption id="caption9" class="cell_1" style="left:5px; top:241px; width:105px; height:51px; text-align:center; vertical-align:middle; ">변동/위반 내용</caption>
  788. <caption id="caption11" class="cell_1" style="left:5px; top:294px; width:105px; height:51px; text-align:center; vertical-align:middle; ">변동/위반 이유</caption>
  789. <caption id="caption12" class="cell_1" style="left:5px; top:347px; width:105px; height:51px; text-align:center; vertical-align:middle; ">이후 취해진 조치</caption>
  790. <caption id="caption13" class="cell_1" style="left:5px; top:400px; width:105px; height:51px; text-align:center; vertical-align:middle; ">
  791. <![CDATA[재발 방지를
  792. 위한 조치]]>
  793. </caption>
  794. <textarea id="textarea7" ref="/root/main/reptdetl/item/cnts5" style="left:113px; top:241px; width:740px; height:51px; "/>
  795. <textarea id="textarea1" ref="/root/main/reptdetl/item/cnts6" style="left:113px; top:294px; width:740px; height:51px; "/>
  796. <textarea id="textarea2" ref="/root/main/reptdetl/item/cnts7" style="left:113px; top:347px; width:740px; height:51px; "/>
  797. <textarea id="textarea3" ref="/root/main/reptdetl/item/cnts8" style="left:112px; top:400px; width:740px; height:51px; "/>
  798. <button id="btn_filedown" class="btn2_letter4" visibility="hidden" _auth="R" style="left:415px; top:13px; width:64px; height:19px; ">
  799. <caption>내려받기</caption>
  800. <script type="javascript" ev:event="DOMActivate">
  801. <![CDATA[
  802. var s = model.getValue("/root/main/reptdetl/item/attfile");
  803. var ss = s.split("/");
  804. var filepath = "";
  805. var filenm = "";
  806. for ( var i = 0; i < ss.length; i ++){
  807. if ( i < ss.length -2 ) {
  808. filepath = filepath+ss[i] +"/";
  809. } else if ( i < ss.length -1 ) {
  810. filepath = filepath+ss[i] ;
  811. } else {
  812. filenm = ss[i];
  813. }
  814. }
  815. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  816. if (localfile != "") {
  817. model.download(getActionURL("TRIRS00105")+"&filepath="+filepath,localfile);
  818. var rtn = messageBox("파일을", "Q004");
  819. if( rtn == 6 ) {
  820. window.exec(localfile);
  821. }
  822. }
  823. ]]>
  824. </script>
  825. </button>
  826. </xhtml:body>
  827. </xhtml:html>