SSIRB00600_SAE(원외).xrw 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970
  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>SAE(원외)</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <reptdetl>
  11. <item>
  12. <instcd/>
  13. <subjid/>
  14. <reptseqno/>
  15. <judgappdg/>
  16. <reptkind/>
  17. <fstplanjudgdd/>
  18. <acptyn/>
  19. <acptdd/>
  20. <reptcls/>
  21. <trobreactcls/>
  22. <cnts1/>
  23. <cnts2/>
  24. <cnts3/>
  25. <acptdd/>
  26. <attfile/>
  27. <screenmenu/>
  28. <stdykind2/>
  29. <rc/>
  30. <resercnfmyn/>
  31. <resercnfmdd/>
  32. <reptclsyn1/>
  33. <reptclsyn2/>
  34. <reptclsyn3/>
  35. <trobreactreptyn1/>
  36. <trobreactreptyn2/>
  37. <cnts19/>
  38. <subtesteeproctyn1/>
  39. <subtesteeproctyn2/>
  40. <cnts11/>
  41. </item>
  42. <test>
  43. <subjid/>
  44. <reptkind/>
  45. <reptseqno/>
  46. <testeeid/>
  47. <instcd/>
  48. <testeenm/>
  49. <subtesteegndr/>
  50. <subtesteeht/>
  51. <subtesteebdwt/>
  52. <subtesteebrthdd/>
  53. </test>
  54. </reptdetl>
  55. </main>
  56. <send>
  57. <savedata>
  58. </savedata>
  59. <searchitem>
  60. <reptkind/>
  61. <subjid/>
  62. <instcd/>
  63. <reptseqno/>
  64. <consorflag/>
  65. <croinstcd/>
  66. </searchitem>
  67. <attach/>
  68. </send>
  69. <hidden/>
  70. <init>
  71. <hosp>
  72. <ret>
  73. <instcd/>
  74. <hospnm/>
  75. </ret>
  76. </hosp>
  77. </init>
  78. <rex>
  79. <view>
  80. <appformhead>
  81. <subjnm/>
  82. <subjno/>
  83. <hospnm/>
  84. <depthngnm/>
  85. <cdnm/>
  86. <usernm/>
  87. <hospcd/>
  88. <acptdd/>
  89. <engsubjnm/>
  90. <telnumber/>
  91. </appformhead>
  92. <irsdcollareser>
  93. <subjid/>
  94. <instcd/>
  95. <userid/>
  96. <userkind/>
  97. <usernm/>
  98. <posnm/>
  99. <jobposnm/>
  100. <telnumber/>
  101. </irsdcollareser>
  102. <imcmreqinst>
  103. <cmpynm/>
  104. <prsdnm/>
  105. <jobposnm/>
  106. </imcmreqinst>
  107. </view>
  108. <reptdetl>
  109. <item>
  110. <instcd/>
  111. <subjid/>
  112. <reptseqno/>
  113. <judgappdg/>
  114. <reptkind/>
  115. <fstplanjudgdd/>
  116. <acptyn/>
  117. <acptdd/>
  118. <reptcls/>
  119. <trobreactcls/>
  120. <cnts1/>
  121. <cnts2/>
  122. <cnts3/>
  123. <reptclsyn1/>
  124. <reptclsyn2/>
  125. <reptclsyn3/>
  126. <trobreactreptyn1/>
  127. <trobreactreptyn2/>
  128. <cnts11/>
  129. <cnts19/>
  130. </item>
  131. <test>
  132. <subjid/>
  133. <reptkind/>
  134. <reptseqno/>
  135. <testeeid/>
  136. <instcd/>
  137. <testeenm/>
  138. <subtesteegndr/>
  139. <subtesteeht/>
  140. <subtesteebdwt/>
  141. <subtesteebrthdd/>
  142. </test>
  143. </reptdetl>
  144. <basesubjinfo>
  145. <basesubjinfo>
  146. <subjid/>
  147. <perchgrid/>
  148. <acptyn/>
  149. <judgkind/>
  150. <subjnm/>
  151. <subjpwd/>
  152. <clinictrgtflag/>
  153. <reqinstflag/>
  154. <stdycostsuppinst/>
  155. <stdycostsuppinstnm/>
  156. <itemnm/>
  157. <comnm/>
  158. <allidxcase/>
  159. <stdystartdd/>
  160. <stdyenddd/>
  161. <appdd/>
  162. <testeeaprvflag/>
  163. <relprstdata1/>
  164. <relprstdata2/>
  165. <relprstdata3/>
  166. <relprstdata4/>
  167. <relprstdata5/>
  168. <prstdataetc5/>
  169. <resercd/>
  170. <reqinstcd/>
  171. <concernrela/>
  172. <verplan/>
  173. <veraprv/>
  174. <vercrf/>
  175. <verib/>
  176. <consorflag/>
  177. <deptcd/>
  178. <reqcnfmyn/>
  179. <inqrgoal/>
  180. <trgtsick/>
  181. <inqrmthd/>
  182. <stdykind1/>
  183. <etctrgt1/>
  184. <stdykind2/>
  185. <etctrgt2/>
  186. <stdykind3/>
  187. <manynation/>
  188. <manyinst/>
  189. <cmcinstcnt/>
  190. <stdykind4/>
  191. <etctrgt4/>
  192. <stdytrgt/>
  193. <etctrgt/>
  194. <agenestdyflag/>
  195. <cellcurestdyyn/>
  196. <testeestat/>
  197. <fratesteeflag/>
  198. <stdyspcl1/>
  199. <stdyspcl2/>
  200. <stdyspcl3/>
  201. <stdyspcl4/>
  202. <stdyspcl5/>
  203. <stdyspcl6/>
  204. <stdyspcl7/>
  205. <examadjthosp/>
  206. <examadjtprf/>
  207. <allexamresppos/>
  208. <allexamrespnm/>
  209. <foodscrtgovpassyn/>
  210. <prmisnnatiyn/>
  211. <intermarketyn/>
  212. <judgkindcode/>
  213. </basesubjinfo>
  214. </basesubjinfo>
  215. <data>
  216. <a/>
  217. </data>
  218. </rex>
  219. <temp/>
  220. </root>
  221. </instance>
  222. <submission id="TRIRB00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/main/reptdetl"/>
  223. <submission id="TRIRB00102" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/init/hosp"/>
  224. <submission id="TXIRB00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" replace="instance" resultref="/root/hidden"/>
  225. <submission id="TRIRS00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/rex/view"/>
  226. <submission id="TXIRB00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" replace="instance" resultref="/root/hidden"/>
  227. <submission id="TRIRS00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/rex/basesubjinfo"/>
  228. <submission id="TRIRS00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  229. <submission id="TXIRS00199" mediatype="multipart/form-data" method="form-data-post" ref="/root/send" resultref="/root/hidden"/>
  230. <submission id="TXIRB00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/hidden"/>
  231. <submission id="TXIRB00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" replace="instance" resultref="/root/hidden"/>
  232. <submission id="TXIRS00198" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  233. </model>
  234. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  235. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  236. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  237. <script type="javascript">
  238. <![CDATA[
  239. function add_validationchk()
  240. {
  241. if (model.getValue("/root/main/reptdetl/item/trobreactreptyn2") == "Y")
  242. {
  243. if (model.getValue("/root/main/reptdetl/item/trobreactcls") == "")
  244. {
  245. messageBox("중대한 이상반응이 체크되었습니다. 그러므로 [이상반응분류]를", "C002");
  246. return false;
  247. }
  248. }
  249. if (model.getValue("/root/main/reptdetl/item/cnts11") == "1")
  250. {
  251. if (model.getValue("/root/main/reptdetl/item/cnts19") == "")
  252. {
  253. messageBox("예상가능이 [예]입니다. 그러므로 [근거]를", "C001");
  254. return false;
  255. }
  256. }
  257. return true;
  258. }
  259. ]]>
  260. </script>
  261. <script type="javascript" ev:event="xforms-ready">
  262. <![CDATA[
  263. model.removeNodeset("/root/main/reptdetl/test");
  264. //권한이 없는경우 보고서 상단의 파일첨부,첨부삭제,임시저장,보고서접수 버튼 숨기기
  265. if ( opener.javascript.getParameter("actionyn") == "N" ) {
  266. ipt_filenm.visible = true;
  267. btn_fileatt.visible = false;
  268. btn_filedel.visible = false;
  269. btn_tmpsave.visible = false;
  270. btn_reptacpt.visible = false;
  271. btn_filedown.visible=true;
  272. button1.visible = false;
  273. }
  274. if ( parent.model.getValue("/root/send/report") == "Y" ) {
  275. ipt_filenm.visible = true;
  276. btn_fileatt.visible = false;
  277. btn_filedel.visible = false;
  278. btn_tmpsave.visible = false;
  279. btn_reptacpt.visible = false;
  280. btn_filedown.visible=true;
  281. button1.visible = false;
  282. }
  283. submit("TRIRB00102"); //병원 조회
  284. var consorflag = parent.model.getValue("/root/send/searchitem/consorflag");
  285. if ( consorflag == "Y") {
  286. model.setValue("/root/send/searchitem/consorflag", "Y");
  287. }
  288. model.setValue("/root/send/searchitem/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  289. model.setValue("/root/send/searchitem/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  290. model.setValue("/root/send/searchitem/reptseqno", parent.model.getValue("/root/send/searchitem2/reptseqno"));
  291. model.setValue("/root/send/searchitem/reptkind", parent.model.getValue("/root/send/searchitem2/reptkind"));
  292. //화면 오픈시 Y일 경우만 자동조회하고 Y가 아닐 경우는 빈 양식 오픈후 필수값만 세팅해준다.
  293. if ( parent.model.getValue("/root/send/searchitem2/autosrchyn") == "Y" ) {
  294. submit("TRIRB00104"); //SAE(원외) 내용 조회
  295. }
  296. model.setValue("/root/main/reptdetl/item/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  297. model.setValue("/root/main/reptdetl/item/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  298. model.setValue("/root/main/reptdetl/item/judgappdg", parent.model.getValue("/root/send/searchitem2/judgappdg"));
  299. //model.setValue("/root/main/reptdetl/item/subjno", parent.model.getValue("/root/send/searchitem2/subjno"));
  300. //model.setValue("/root/main/reptdetl/item/subjnm", parent.model.getValue("/root/send/searchitem2/subjnm"));
  301. model.setValue("/root/main/reptdetl/item/fstplanjudgdd", parent.model.getValue("/root/send/searchitem2/judgdd"));
  302. model.setValue("/root/main/reptdetl/item/screenmenu", parent.model.getValue("/root/init/screenmenu"));
  303. model.setValue("/root/main/reptdetl/item/stdykind2", parent.model.getValue("/root/send/searchitem2/stdykind2"));
  304. model.setValue("/root/main/reptdetl/item/rc", parent.model.getValue("/root/send/searchitem2/rc"));
  305. model.makeValue("/root/main/reptdetl/item/resercnfmyn", parent.model.getValue("/root/send/searchitem2/resercnfmyn"));
  306. model.setValue("/root/send/searchitem/croinstcd", parent.model.getValue("/root/send/searchitem2/croinstcd"));
  307. model.refresh();
  308. ]]>
  309. </script>
  310. </xhtml:head>
  311. <xhtml:body guideline="2,542;">
  312. <input id="ipt_judgappdg" ref="/root/main/reptdetl/item/judgappdg" class="input_default" disabled="true" style="left:107px; top:32px; width:100px; height:19px; "/>
  313. <caption id="caption40" class="cell_1" style="left:5px; top:298px; width:160px; height:28px; text-align:center; vertical-align:middle; ">연구자 인과관계 평가</caption>
  314. <caption id="caption30" class="cell_1" style="left:210px; top:30px; width:180px; height:23px; text-align:center; vertical-align:middle; ">최초임상시험 계획서 심사일자</caption>
  315. <caption id="caption31" class="cell_1" style="left:495px; top:30px; width:100px; height:23px; text-align:center; vertical-align:middle; ">선택된병원</caption>
  316. <datagrid id="grd_test" nodeset="/root/main/reptdetl/test" caption="^^^^피험자번호^피험자약자^성별^생년월일^키 CM^몸무게 Kg" colsep="^" colwidth="0, 0, 0, 0, 110, 100, 70, 108, 85, 93" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:5px; top:80px; width:610px; height:75px; ">
  317. <col ref="subjid" visibility="hidden"/>
  318. <col ref="reptkind" visibility="hidden"/>
  319. <col ref="reptseqno" visibility="hidden"/>
  320. <col ref="instcd" visibility="hidden"/>
  321. <col ref="testeeid" type="input" maxlength="30"/>
  322. <col ref="testeenm" type="input" maxlength="30"/>
  323. <col class="gridcombo" ref="subtesteegndr" type="combo" style="text-align:center; ">
  324. <choices>
  325. <item>
  326. <label>남</label>
  327. <value>M</value>
  328. </item>
  329. <item>
  330. <label>여</label>
  331. <value>F</value>
  332. </item>
  333. </choices>
  334. </col>
  335. <col ref="subtesteebrthdd" type="inputdate"/>
  336. <col ref="subtesteeht" type="input" maxlength="10" style="text-align:right; "/>
  337. <col ref="subtesteebdwt" type="input" maxlength="10" style="text-align:right; "/>
  338. <col ref="awardd" visibility="hidden"/>
  339. <col ref="genrdd" visibility="hidden"/>
  340. </datagrid>
  341. <button id="btn_rowadd" class="btn2_letter3" _auth="X" style="left:504px; top:60px; width:53px; height:19px; ">
  342. <caption>행추가</caption>
  343. <script type="javascript" ev:event="DOMActivate">
  344. <![CDATA[
  345. grd_test.addRow();
  346. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/instcd", model.getValue("/root/send/searchitem/instcd"));
  347. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/subjid", model.getValue("/root/send/searchitem/subjid"));
  348. //해당 보고서가 신규작성일 경우 보고서일련번호가 없으므로 최초시작번호인 1로 셋팅한다.
  349. if ( model.getValue("/root/send/searchitem/reptseqno") != "" ) {
  350. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  351. } else {
  352. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/reptseqno", 1);
  353. }
  354. model.setValue("/root/main/reptdetl/test["+ grd_test.row +"]/reptkind", "4"); //보고서종류=SAE(원외)(4)
  355. ]]>
  356. </script>
  357. </button>
  358. <button id="btn_rowdel" class="btn2_letter3" _auth="X" style="left:559px; top:60px; width:53px; height:19px; ">
  359. <caption>행삭제</caption>
  360. <script type="javascript" ev:event="DOMActivate">
  361. <![CDATA[
  362. grd_test.deleterow(grd_test.row);
  363. ]]>
  364. </script>
  365. </button>
  366. <caption id="caption32" class="cell_1" style="left:700px; top:30px; width:100px; height:23px; text-align:center; vertical-align:middle; ">접수여부</caption>
  367. <caption id="caption33" class="tit_2" style="left:10px; top:62px; width:140px; height:13px; ">피험자 정보</caption>
  368. <caption id="caption34" class="tit_2" style="left:10px; top:162px; width:140px; height:13px; ">이상 약물 반응</caption>
  369. <input id="ipt_cnts1" ref="/root/main/reptdetl/item/cnts1" class="input_default" style="left:136px; top:207px; width:479px; height:19px; "/>
  370. <caption id="caption35" class="cell_1" style="left:5px; top:180px; width:129px; height:23px; text-align:center; vertical-align:middle; ">보고분류</caption>
  371. <caption id="caption36" class="cell_1" style="left:5px; top:205px; width:129px; height:23px; text-align:center; vertical-align:middle; ">Report No/ Patient No</caption>
  372. <line id="line17" class="line_1" style="x1:5px; y1:28px; x2:1070px; y2:27px; "/>
  373. <line id="line18" class="line_3" style="x1:5px; y1:54px; x2:1070px; y2:54px; "/>
  374. <select1 id="cmb_instcd" ref="/root/main/reptdetl/item/instcd" class="combo_search" disabled="true" appearance="minimal" style="left:598px; top:32px; width:100px; height:19px; ">
  375. <choices>
  376. <itemset nodeset="/root/init/hosp/ret">
  377. <label ref="hospnm"/>
  378. <value ref="instcd"/>
  379. </itemset>
  380. </choices>
  381. </select1>
  382. <line id="line19" class="line_3" style="x1:5px; y1:177px; x2:615px; y2:177px; "/>
  383. <caption id="caption38" class="cell_1" style="left:5px; top:230px; width:48px; height:66px; text-align:center; vertical-align:middle; ">
  384. <![CDATA[이상
  385. 반응]]>
  386. </caption>
  387. <select1 id="cmb_acptyn" ref="/root/main/reptdetl/item/acptyn" class="combo_search" disabled="true" appearance="minimal" style="left:803px; top:32px; width:90px; height:19px; ">
  388. <choices>
  389. <item>
  390. <label>접수</label>
  391. <value>Y</value>
  392. </item>
  393. <item>
  394. <label>미접수</label>
  395. <value>N</value>
  396. </item>
  397. </choices>
  398. </select1>
  399. <caption id="caption39" class="cell_1" style="left:5px; top:328px; width:610px; height:23px; text-align:center; vertical-align:middle; ">이상반응내용</caption>
  400. <button id="button11" class="btn2_letter14" _auth="P" style="left:896px; top:32px; width:174px; height:19px; ">
  401. <caption>이상반응 발생보고서(원외) 출력</caption>
  402. <script type="javascript" ev:event="DOMActivate">
  403. <![CDATA[
  404. if(submit("TRIRS00101")) {
  405. submit("TRIRS00102");
  406. model.copyNode("/root/rex/reptdetl", "/root/main/reptdetl");
  407. var testeeid = "";
  408. var testeenm ="";
  409. var data = "";
  410. for ( var i =1; i < grd_test.rows; i++ ) {
  411. testeeid = model.getValue("/root/main/reptdetl/test["+i+"]/testeeid");
  412. testeenm = model.getValue("/root/main/reptdetl/test["+i+"]/testeenm");
  413. data += testeeid + "/" + testeenm + "\n";
  414. }
  415. model.makeValue("/root/rex/view/appformhead/data", data);
  416. if ( model.getValue("/root/main/reptdetl/item/apctdd") != '') {
  417. model.makeValue("/root/rex/view/appformhead/acptdd", model.getValue("/root/main/reptdetl/item/apctdd"));
  418. } else {
  419. model.makeValue("/root/rex/view/appformhead/acptdd", getCurrentDate());
  420. }
  421. var data = model.getValue("/root/rex/reptdetl/item/cnts2");
  422. var j = 0;
  423. var p = 0;
  424. var k = 0;
  425. if ( data.indexOf("\n",p ) >=0 ){
  426. while ( (j = data.indexOf("\n",p ))>=0){
  427. var sdata = data.substring( p, j );
  428. p = j + 1;
  429. k = k + 1;
  430. model.makeValue("/root/rex/reptdetl/item[1]/cnts2info["+k+"]/cnts2", sdata.replace("\n","") );
  431. }
  432. if ( p<data.length){ // 제일 마지막 엔터 뒤 문장 처리
  433. var sdata = data.substring( p, data.length );
  434. k = k + 1;
  435. model.makeValue("/root/rex/reptdetl/item[1]/cnts2info["+k+"]/cnts2", sdata.replace("\n","") );
  436. }
  437. } else { //엔터없을때 처리
  438. k = k + 1;
  439. model.makeNode("/root/rex/reptdetl");
  440. model.makeValue("/root/rex/reptdetl/item[1]/cnts2info["+k+"]/cnts2", data);
  441. }
  442. exeReportPreview("PSIRB00600", "XMLSTR" , "/root/rex");
  443. }
  444. ]]>
  445. </script>
  446. </button>
  447. <caption id="caption28" class="cell_1" style="left:5px; top:30px; width:100px; height:23px; text-align:center; vertical-align:middle; ">심사차수</caption>
  448. <textarea id="tar_cnts2" ref="/root/main/reptdetl/item/cnts2" style="left:5px; top:353px; width:610px; height:135px; "/>
  449. <input id="ipt_fstplanjudgdd" ref="/root/main/reptdetl/item/fstplanjudgdd" class="input_search" disabled="true" inputtype="date" style="left:392px; top:32px; width:100px; height:19px; "/>
  450. <select1 id="cmb_trobreactcls" ref="/root/main/reptdetl/item/trobreactcls" class="combo_search" disabled="true" appearance="minimal" style="left:166px; top:252px; width:449px; height:19px; ">
  451. <choices>
  452. <item>
  453. <label>사망</label>
  454. <value>1</value>
  455. </item>
  456. <item>
  457. <label>생명을 위협하는 경우</label>
  458. <value>2</value>
  459. </item>
  460. <item>
  461. <label>입원 또는 입원 기간의 연장이 필요한 경우</label>
  462. <value>3</value>
  463. </item>
  464. <item>
  465. <label>지속적 또는 의미있는 불구나 기능저하를 초래하는 경우</label>
  466. <value>4</value>
  467. </item>
  468. <item>
  469. <label>선천적 기형 또는 이상을 초래하는 경우</label>
  470. <value>5</value>
  471. </item>
  472. <item>
  473. <label>기타 의학적으로 중요한 경우</label>
  474. <value>6</value>
  475. </item>
  476. </choices>
  477. </select1>
  478. <button id="btn_filedel" class="btn5_letter4" _auth="X" style="left:818px; top:5px; width:64px; height:19px; ">
  479. <caption>첨부삭제</caption>
  480. <script type="javascript" ev:event="onclick">
  481. <![CDATA[
  482. //접수 후 수정불가
  483. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  484. messageBox("이미 접수되어 저장 또는 수정", "E001");
  485. return;
  486. } else {
  487. if (submit("TXIRS00198")) {
  488. messageBox("첨부파일이 삭제되었습니다.","I999");
  489. model.refresh();
  490. }
  491. }
  492. if ( model.getValue("/root/hidden/ret/reptseqno") != '' ) {
  493. submit("TRIRB00104"); //SAE(원외) 내용 조회
  494. }
  495. ]]>
  496. </script>
  497. </button>
  498. <input id="ipt_filenm" ref="/root/main/reptdetl/item/attfile" class="input_default" style="left:550px; top:5px; width:200px; height:19px; "/>
  499. <button id="btn_fileatt" class="btn2_letter4" _auth="X" style="left:752px; top:5px; width:64px; height:19px; ">
  500. <caption>파일첨부</caption>
  501. <script type="javascript" ev:event="onclick">
  502. <![CDATA[
  503. if ( model.getValue("/root/main/reptdetl/item/acptyn") == '' ) {
  504. messageBox("임시저장 후 첨부파일을 올리세요", "I");
  505. return;
  506. }
  507. var maxsize = upload1.attribute("filesize");
  508. files = window.fileDialog("open", "|", true);
  509. filelist = files.split("|");
  510. for(var i = 0 ; i < filelist.length ; i++ ) {
  511. grd_attach.addRow(false);
  512. grd_attach.valueMatrix(grd_attach.rows - 1, 0) = filelist[i];
  513. if (!checkFileSize(upload1)){
  514. grd_attach.removeItem();
  515. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  516. return;
  517. }
  518. }
  519. if ( filelist[0] != "") {
  520. if (submit("TXIRS00199")) {
  521. messageBox("Upload가 성공적으로 이루어졌습니다.","I999");
  522. model.removeNodeset("/root/send/attach");
  523. parent.model.setValue("/root/temp/ivieweryn", "N"); //중간보고서 iviewer 호출 여부 = N
  524. parent.btn_report4.selected = true;
  525. parent.btn_report4.dispatch("DOMActivate");
  526. model.refresh();
  527. }
  528. }
  529. submit("TRIRB00104"); //SAE(원외) 내용 조회
  530. model.setValue("/root/main/reptdetl/item/subjid", parent.model.getValue("/root/send/searchitem2/subjid"));
  531. model.setValue("/root/main/reptdetl/item/instcd", parent.model.getValue("/root/send/searchitem2/instcd"));
  532. model.setValue("/root/main/reptdetl/item/judgappdg", parent.model.getValue("/root/send/searchitem2/judgappdg"));
  533. model.setValue("/root/main/reptdetl/item/roothospidxcasecnt", parent.model.getValue("/root/send/searchitem2/roothospidxcasecnt"));
  534. model.setValue("/root/main/reptdetl/item/subjno", parent.model.getValue("/root/send/searchitem2/subjno"));
  535. model.setValue("/root/main/reptdetl/item/subjnm", parent.model.getValue("/root/send/searchitem2/subjnm"));
  536. model.setValue("/root/main/reptdetl/item/fstplanjudgdd", parent.model.getValue("/root/send/searchitem2/judgdd"));
  537. model.setValue("/root/main/reptdetl/item/screenmenu", parent.model.getValue("/root/init/screenmenu"));
  538. model.setValue("/root/main/reptdetl/item/stdykind2", parent.model.getValue("/root/send/searchitem2/stdykind2"));
  539. model.setValue("/root/main/reptdetl/item/rc", parent.model.getValue("/root/send/searchitem2/rc"));
  540. model.refresh();
  541. ]]>
  542. </script>
  543. </button>
  544. <button id="btn_tmpsave" class="btn2_letter4" _auth="X" style="left:885px; top:5px; width:64px; height:19px; ">
  545. <caption>임시저장</caption>
  546. <script type="javascript" ev:event="DOMActivate">
  547. <![CDATA[
  548. //접수 후 수정불가
  549. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  550. messageBox("이미 접수되어 저장 또는 수정", "E001");
  551. return;
  552. }
  553. // ***** 2009.10.23(김재우 추가) *****
  554. if (add_validationchk() == false){
  555. return;
  556. }
  557. // ***** 2009.10.23 *****
  558. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  559. if ( reptseqno != '') {
  560. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  561. }
  562. model.copyNode("/root/send/savedata", "/root/main/reptdetl/item");
  563. model.setValue("/root/send/savedata/reptkind", "4"); //보고서종류=SAE(원외)(4)
  564. model.setValue("/root/send/savedata/acptyn", "N"); //접수여부=미접수(N)
  565. model.makeValue("/root/send/savedata/croinstcd", model.getValue("/root/send/searchitem/croinstcd"));
  566. model.makeValue("/root/send/savedata/judgkind", "N"); //심의종류
  567. //피험자정보 그리드 필수입력항목 체크
  568. /* var update = getGridUpdateData(grd_test);
  569. if ( update != "" ) {
  570. for ( i=1; i<grd_test.rows; i++ ) {
  571. if ( model.getValue("/root/main/reptdetl/test["+ i +"]/testeeid") == "" ) {
  572. messageBox("피험자번호를", "C001");
  573. return;
  574. }
  575. }
  576. model.makeNode("/root/send/savedata/test");
  577. model.setValue("/root/send/savedata/test", update);
  578. }
  579. */
  580. for ( i = 1; i < grd_test.rows; i++ ) {
  581. model.setValue("/root/main/reptdetl/test["+ i +"]/reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  582. }
  583. var update1 = instance1.selectNodes("/root/main/reptdetl/test");
  584. var rCSV1 = getNodeListCSV(update1);
  585. if ( rCSV1 != null ) {
  586. for ( i = 1; i < grd_test.rows; i++ ) {
  587. if ( model.getValue("/root/main/reptdetl/test["+ i +"]/testeeid") == "" ) {
  588. messageBox("피험자번호를", "C001");
  589. return;
  590. }
  591. }
  592. model.makeNode("/root/send/savedata/test");
  593. model.setValue("/root/send/savedata/test", rCSV1);
  594. }
  595. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  596. var instcd = model.getValue("/root/send/savedata/instcd");
  597. if ( instcd == '' ) {
  598. messageBox("병원을 ", "C002");
  599. }
  600. else {
  601. submit("TXIRB00102");
  602. }
  603. } else {
  604. submit("TXIRB00101");
  605. }
  606. grd_test.clearStatus();
  607. model.resetInstanceNode("/root/send/savedata");
  608. model.removenode("/root/send/savedata/test");
  609. model.setValue("/root/main/reptdetl/item/acptyn", "N"); //접수여부를 미접수로 보여줌.
  610. model.setValue( "/root/send/searchitem/reptseqno",model.getValue("/root/hidden/ret/reptseqno"));
  611. model.refresh();
  612. parent.model.setValue("/root/temp/ivieweryn", "N"); //SAE(원외) iviewer 호출 여부 = N
  613. parent.btn_report4.selected = true;
  614. parent.btn_report4.dispatch("DOMActivate");
  615. model.removeNodeset("/root/send/savedata");
  616. model.makeNode("/root/send/savedata");
  617. ]]>
  618. </script>
  619. </button>
  620. <button id="btn_reptacpt" class="btn2_letter5" _auth="X" style="left:997px; top:5px; width:75px; height:19px; ">
  621. <caption>보고서접수</caption>
  622. <script type="javascript" ev:event="DOMActivate">
  623. <![CDATA[
  624. //접수 후 수정불가
  625. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  626. messageBox("이미 접수되어 저장 또는 수정", "E001");
  627. return;
  628. }
  629. // ***** 2009.10.23(김재우 추가) *****
  630. if (add_validationchk() == false){
  631. return;
  632. }
  633. // ***** 2009.10.23 *****
  634. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  635. if ( reptseqno != '') {
  636. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  637. }
  638. model.copyNode("/root/send/savedata", "/root/main/reptdetl/item");
  639. model.setValue("/root/send/savedata/reptkind", "4"); //보고서종류=SAE(원외)(4)
  640. model.setValue("/root/send/savedata/acptyn", "Y"); //접수여부=접수(Y)
  641. model.setValue("/root/send/savedata/acptdd", getCurrentDate()); //접수일=오늘날짜
  642. model.makeValue("/root/send/savedata/croinstcd", model.getValue("/root/send/searchitem/croinstcd"));
  643. model.makeValue("/root/send/savedata/judgkind", "N"); //심의종류
  644. /* //피험자정보 그리드 필수입력항목 체크
  645. var update = getGridUpdateData(grd_test);
  646. if ( update != "" ) {
  647. for ( i=1; i<grd_test.rows; i++ ) {
  648. if ( model.getValue("/root/main/reptdetl/test["+ i +"]/testeeid") == "" ) {
  649. messageBox("피험자번호를", "C001");
  650. return;
  651. }
  652. }
  653. model.makeNode("/root/send/savedata/test");
  654. model.setValue("/root/send/savedata/test", update);
  655. }
  656. */
  657. for ( i = 1; i < grd_test.rows; i++ ) {
  658. model.setValue("/root/main/reptdetl/test["+ i +"]/reptseqno", model.getValue("/root/send/searchitem/reptseqno"));
  659. }
  660. var update1 = instance1.selectNodes("/root/main/reptdetl/test");
  661. var rCSV1 = getNodeListCSV(update1);
  662. if ( rCSV1 != null ) {
  663. for ( i = 1; i < grd_test.rows; i++ ) {
  664. if ( model.getValue("/root/main/reptdetl/test["+ i +"]/testeeid") == "" ) {
  665. messageBox("피험자번호를", "C001");
  666. return;
  667. }
  668. }
  669. model.makeNode("/root/send/savedata/test");
  670. model.setValue("/root/send/savedata/test", rCSV1);
  671. }
  672. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  673. var instcd = model.getValue("/root/send/savedata/instcd");
  674. if ( instcd == '' ) {
  675. messageBox("병원을 ", "C002");
  676. }
  677. else {
  678. submit("TXIRB00102");
  679. }
  680. } else {
  681. submit("TXIRB00101");
  682. }
  683. model.resetInstanceNode("/root/send/savedata");
  684. model.removenode("/root/send/savedata/test");
  685. model.setValue("/root/main/reptdetl/item/acptyn", "Y"); //접수여부를 접수로 보여줌.
  686. model.setValue( "/root/send/searchitem/reptseqno",model.getValue("/root/hidden/ret/reptseqno"));
  687. model.refresh();
  688. parent.model.setValue("/root/temp/ivieweryn", "N"); //SAE(원외) iviewer 호출 여부 = N
  689. parent.btn_report4.selected = true;
  690. parent.btn_report4.dispatch("DOMActivate");
  691. model.removeNodeset("/root/send/savedata");
  692. model.makeNode("/root/send/savedata");
  693. ]]>
  694. </script>
  695. </button>
  696. <caption id="caption7" class="tit_2" style="left:10px; top:10px; width:140px; height:14px; ">SAE(원외)</caption>
  697. <button id="btn_filedown" class="btn2_letter4" visibility="hidden" _auth="R" style="left:755px; top:5px; width:64px; height:19px; ">
  698. <caption>내려받기</caption>
  699. <script type="javascript" ev:event="DOMActivate">
  700. <![CDATA[
  701. var s = model.getValue("/root/main/reptdetl/item/attfile");
  702. var ss = s.split("/");
  703. var filepath = "";
  704. var filenm = "";
  705. for ( var i = 0; i < ss.length; i ++){
  706. if ( i < ss.length -2 ) {
  707. filepath = filepath+ss[i] +"/";
  708. } else if ( i < ss.length -1 ) {
  709. filepath = filepath+ss[i] ;
  710. } else {
  711. filenm = ss[i];
  712. }
  713. }
  714. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  715. if (localfile != "") {
  716. model.download(getActionURL("TRIRS00105")+"&filepath="+filepath,localfile);
  717. var rtn = messageBox("파일을", "Q004");
  718. if( rtn == 6 ) {
  719. window.exec(localfile);
  720. }
  721. }
  722. ]]>
  723. </script>
  724. </button>
  725. <upload id="upload1" nodeset="/root/send/attach/file" ext="zip" filecount="5" filesize="52428800" validate="true" style="left:695px; top:70px; width:100px; height:20px; "/>
  726. <datagrid id="grd_attach" nodeset="/root/send/attach" visibility="hidden" caption="파일경로^" colwidth="644" extendlastcol="scroll" mergecellsfixedrows="bycolrec" style="left:225px; top:50px; width:665px; height:150px; ">
  727. <col ref="file"/>
  728. </datagrid>
  729. <button id="button1" class="btn5_letter2" _auth="X" style="left:952px; top:5px; width:42px; height:19px; ">
  730. <caption>삭제</caption>
  731. <script type="javascript" ev:event="DOMActivate">
  732. <![CDATA[
  733. //접수 후 수정불가
  734. if ( model.getValue("/root/main/reptdetl/item/acptyn") == "Y" ) {
  735. messageBox("이미 접수되어 저장 또는 수정", "E001");
  736. return;
  737. }
  738. var reptseqno = model.getValue("/root/hidden/ret/reptseqno");
  739. if ( reptseqno != '') {
  740. model.setValue("/root/main/reptdetl/item/reptseqno", model.getValue("/root/hidden/ret/reptseqno"));
  741. }
  742. if (model.getValue("/root/send/searchitem/consorflag") == 'Y') {
  743. submit("TXIRB00104");
  744. } else {
  745. submit("TXIRB00103");
  746. }
  747. model.refresh();
  748. parent.model.setValue("/root/temp/ivieweryn", "N"); //SAE(원외) iviewer 호출 여부 = N
  749. parent.btn_report4.selected = true;
  750. parent.btn_report4.dispatch("DOMActivate");
  751. ]]>
  752. </script>
  753. </button>
  754. <select1 id="combo1" ref="/root/main/reptdetl/item/cnts3" class="combo_search" appearance="minimal" style="left:167px; top:303px; width:448px; height:19px; ">
  755. <choices>
  756. <item>
  757. <label>관련성이 명백함</label>
  758. <value>1</value>
  759. </item>
  760. <item>
  761. <label>관련성이 많음</label>
  762. <value>2</value>
  763. </item>
  764. <item>
  765. <label>관련성이 의심됨</label>
  766. <value>3</value>
  767. </item>
  768. <item>
  769. <label>관련성이 적음</label>
  770. <value>4</value>
  771. </item>
  772. <item>
  773. <label>관련성이 없음</label>
  774. <value>5</value>
  775. </item>
  776. <item>
  777. <label>평가 불가능</label>
  778. <value>6</value>
  779. </item>
  780. </choices>
  781. </select1>
  782. <caption id="caption1" style="left:645px; top:425px; width:450px; height:144px; font-size:10pt; font-weight:bold; color:#ff0000; vertical-align:top; line-spacing:9; ">
  783. <![CDATA[** 원외 이상반응 보고가 2건 이상인 경우에는 따로 작성하지 마시고,
  784. '이상반응내용' 입력란에 이상반응 여러 건을 한 번에 입력하여
  785. 주시기 바랍니다. 각 건당 필수 입력 사항은 위와 동일합니다.
  786. *** 위의 내용이 다 포함되지 않을 경우 보고서가 반려될 수도 있음을
  787. 알려드립니다.
  788. ]]>
  789. </caption>
  790. <caption id="caption2" style="left:665px; top:130px; width:410px; height:288px; font-size:10pt; font-weight:bold; color:#0000ff; vertical-align:top; line-spacing:9; ">
  791. <![CDATA[1. Report No./Patient No.
  792. 2. 보고 분류(초회/추적)
  793. 3. 이상반응 분류(심각도에 따른 6가지 분류 중 한 가지 선택)
  794. 4. 이상반응 내용
  795. 5. 연구자 인과 관계 평가(임상용 의약품과의 인과관계 여부)
  796. 6. 예상가능성 여부(expected or unexpected) - 예상 가능한
  797. 이상반응인 경우 근거 첨부
  798. 7. 스폰서 주도의 연구인 경우 스폰서의 의견
  799. 8. 계획서/동의서 변경이 필요한지 여부
  800. -> 임상용 의약품과 인과 관계가 있으면서 예상 불가능한
  801. 중대한 이상반응의 경우 본원 연구의 지속 여부에 대한
  802. 연구자의 의견을 첨부해 주시기 바랍니다.]]>
  803. </caption>
  804. <select id="checkbox1" ref="/root/main/reptdetl/item/reptclsyn1" overflow="visible" appearance="full" style="left:138px; top:183px; width:70px; height:19px; border-style:none; ">
  805. <choices>
  806. <item>
  807. <label>초회보고</label>
  808. <value>Y</value>
  809. </item>
  810. </choices>
  811. </select>
  812. <select id="chk_reptcls" ref="/root/main/reptdetl/item/reptclsyn2" overflow="visible" appearance="full" style="left:212px; top:183px; width:70px; height:19px; border-style:none; ">
  813. <choices>
  814. <item>
  815. <label>추적보고</label>
  816. <value>Y</value>
  817. </item>
  818. </choices>
  819. </select>
  820. <select id="checkbox2" ref="/root/main/reptdetl/item/reptclsyn3" overflow="visible" appearance="full" style="left:287px; top:183px; width:70px; height:19px; border-style:none; ">
  821. <choices>
  822. <item>
  823. <label>최종보고</label>
  824. <value>Y</value>
  825. </item>
  826. </choices>
  827. </select>
  828. <select id="checkbox3" ref="/root/main/reptdetl/item/trobreactreptyn1" overflow="visible" appearance="full" style="left:55px; top:232px; width:375px; height:19px; border-style:none; ">
  829. <choices>
  830. <item>
  831. <label>이상반응(계획서에 보고하지 않아도 된다고 명시된 사항은 제외)</label>
  832. <value>Y</value>
  833. </item>
  834. </choices>
  835. </select>
  836. <select id="checkbox4" ref="/root/main/reptdetl/item/trobreactreptyn2" class="cell_1" overflow="visible" appearance="full" style="left:55px; top:252px; width:110px; height:19px; border-style:none; ">
  837. <choices>
  838. <item>
  839. <label>중대한 이상반응</label>
  840. <value>Y</value>
  841. </item>
  842. </choices>
  843. <script type="javascript" ev:event="xforms-value-changed">
  844. <![CDATA[
  845. var trobreactyn = model.getValue("/root/main/reptdetl/item/trobreactreptyn2");
  846. if(trobreactyn == "Y")
  847. cmb_trobreactcls.disabled = false;
  848. else
  849. cmb_trobreactcls.disabled = true;
  850. ]]>
  851. </script>
  852. </select>
  853. <select1 id="combo2" ref="/root/main/reptdetl/item/cnts11" class="combo_search" appearance="minimal" style="left:167px; top:275px; width:63px; height:19px; ">
  854. <choices>
  855. <item>
  856. <label>예</label>
  857. <value>1</value>
  858. </item>
  859. <item>
  860. <label>아니오</label>
  861. <value>2</value>
  862. </item>
  863. </choices>
  864. <script type="javascript" ev:event="xforms-value-changed">
  865. <![CDATA[
  866. var cnts11 = model.getValue("/root/main/reptdetl/item/cnts11");
  867. if(cnts11 == "1")
  868. input5.disabled = false;
  869. else
  870. input5.disabled = true;
  871. ]]>
  872. </script>
  873. </select1>
  874. <caption id="caption13" class="cell_1" style="left:233px; top:273px; width:46px; height:23px; text-align:center; vertical-align:middle; ">근거</caption>
  875. <caption id="caption5" class="cell_1" style="left:55px; top:273px; width:110px; height:23px; text-align:center; vertical-align:middle; ">예상가능</caption>
  876. <input id="input5" ref="/root/main/reptdetl/item/cnts19" class="input_default" disabled="true" style="left:282px; top:275px; width:333px; height:19px; "/>
  877. <caption id="caption14" class="cell_1" style="left:5px; top:490px; width:100px; height:48px; text-align:center; vertical-align:middle; ">
  878. <![CDATA[피험자 보호를
  879. 위한 조치]]>
  880. </caption>
  881. <caption id="caption15" class="cell_1" style="left:106px; top:490px; width:294px; height:23px; text-align:left; vertical-align:middle; ">연구 계획서의 변경이 필요한가?</caption>
  882. <caption id="caption16" class="cell_1" style="left:106px; top:515px; width:294px; height:23px; text-align:left; vertical-align:middle; ">피험자 설명문 및 동의서 변경이 필요한가?</caption>
  883. <select1 id="combo8" ref="/root/main/reptdetl/item/subtesteeproctyn1" class="combo_search" appearance="minimal" style="left:408px; top:492px; width:207px; height:19px; ">
  884. <choices>
  885. <item>
  886. <label>
  887. <![CDATA[예(-> 변경계획서 첨부)]]>
  888. </label>
  889. <value>Y</value>
  890. </item>
  891. <item>
  892. <label>아니오</label>
  893. <value>N</value>
  894. </item>
  895. </choices>
  896. </select1>
  897. <select1 id="combo9" ref="/root/main/reptdetl/item/subtesteeproctyn2" class="combo_search" appearance="minimal" style="left:408px; top:517px; width:207px; height:19px; ">
  898. <choices>
  899. <item>
  900. <label>
  901. <![CDATA[예(-> 변경계획서 첨부)]]>
  902. </label>
  903. <value>Y</value>
  904. </item>
  905. <item>
  906. <label>아니오</label>
  907. <value>N</value>
  908. </item>
  909. </choices>
  910. </select1>
  911. <caption id="caption3" style="left:645px; top:80px; width:430px; height:72px; font-size:10pt; font-weight:bold; color:#ff0000; vertical-align:top; line-spacing:9; ">
  912. <![CDATA[* 원외 이상반응 보고 시 다음과 같은 사항이 모두 기재되어 있는지
  913. 반드시 확인 후 제출하시기 바랍니다.
  914. ]]>
  915. </caption>
  916. <line id="line1" class="line_3" style="x1:5px; y1:540px; x2:615px; y2:540px; "/>
  917. </xhtml:body>
  918. </xhtml:html>