SPMMO08400_병기분류등록.xrw 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908
  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>Cancer Stage 분류</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <result>
  10. <savetnmlist/>
  11. <savecncrlist/>
  12. </result>
  13. <bfrow/>
  14. <temp/>
  15. <init>
  16. <inptimpsiresncd>
  17. </inptimpsiresncd>
  18. <cncrflagkind2>
  19. </cncrflagkind2>
  20. <cncrflagkind1>
  21. </cncrflagkind1>
  22. <stageflag>
  23. </stageflag>
  24. <payflagcd/>
  25. <drugthrpcd/>
  26. <stage>
  27. <row/>
  28. </stage>
  29. <displaystagecombo/>
  30. <cncrflag1/>
  31. </init>
  32. <temptnm>
  33. <genrdd/>
  34. <genrno/>
  35. <histno/>
  36. <instcd/>
  37. <histcd/>
  38. <pid/>
  39. <orddd/>
  40. <cretno/>
  41. <orddeptcd/>
  42. <genrflagcd/>
  43. <icd10cd/>
  44. <diagcd/>
  45. <stagecd/>
  46. <tnmcd1/>
  47. <tnmcd2/>
  48. <tnmcd3/>
  49. <stageflag/>
  50. <cncrflag1/>
  51. <cncrflagkind1/>
  52. <cncrflag2/>
  53. <cncrflagkind2/>
  54. <inptimpsiflag/>
  55. <inptimpsiresncd/>
  56. <rgstdeptcd/>
  57. <rgstdd/>
  58. <rgsttm/>
  59. <rgstrid/>
  60. <updtdeptcd/>
  61. <updtdd/>
  62. <updttm/>
  63. <updtrid/>
  64. <fstrgstrid/>
  65. <fstrgstdt/>
  66. <lastupdtrid/>
  67. <lastupdtdt/>
  68. <inptimpsietcresnnm/>
  69. <mataflag/>
  70. <cncrflag/>
  71. <diagnm/>
  72. <attackflag/>
  73. <tempcol1/>
  74. <tempcol2/>
  75. <tempcol3/>
  76. <status/>
  77. <displaystage/>
  78. </temptnm>
  79. <tempcncr>
  80. <genrdd/>
  81. <genrno/>
  82. <histno/>
  83. <instcd/>
  84. <pid/>
  85. <orddd/>
  86. <cretno/>
  87. <genrflagcd/>
  88. <histcd/>
  89. <prcpdd/>
  90. <drugthrpcd/>
  91. <drugtims/>
  92. <drugpridstartno/>
  93. <drugpridstartdayno/>
  94. <drugpridendno/>
  95. <drugpridenddayno/>
  96. <rgstdeptcd/>
  97. <rgstdd/>
  98. <rgsttm/>
  99. <rgstrid/>
  100. <updtdeptcd/>
  101. <updtdd/>
  102. <updttm/>
  103. <updtrid/>
  104. <fstrgstrid/>
  105. <fstrgstdt/>
  106. <lastupdtrid/>
  107. <lastupdtdt/>
  108. <tempcol1/>
  109. <tempcol2/>
  110. <tempcol3/>
  111. <status/>
  112. </tempcncr>
  113. <stagecls>
  114. <stageclslist>
  115. <stage/>
  116. <t/>
  117. <n/>
  118. <m/>
  119. <displaystage/>
  120. </stageclslist>
  121. </stagecls>
  122. <send>
  123. <cond1/>
  124. <cond2/>
  125. </send>
  126. <tempresult>
  127. <savetnmlist/>
  128. <savecncrlist/>
  129. <savenewlist/>
  130. </tempresult>
  131. <copyresult/>
  132. </root>
  133. </instance>
  134. <script type="javascript" ev:event="xforms-model-construct-done">
  135. <![CDATA[
  136. zbcfGetCodeList(new Array( "M0326","M0327","M0328","M0329", "M0331" ),
  137. new Array("/root/init/inptimpsiresncd", "/root/init/cncrflagkind2", "/root/init/cncrflagkind1","/root/init/stageflag", "/root/init/drugthrpcd"));
  138. var srcNodeList1 = model.instances(0).selectNodes("/root/tempresult/savetnmlist");
  139. var srcNodeList2 = model.instances(0).selectNodes("/root/tempresult/savecncrlist");
  140. var destNode = model.instances(0).selectSingleNode("/root/result");
  141. var copydestNode = model.instances(0).selectSingleNode("/root/copyresult");
  142. model.removeNodeset ("/root/result/savetnmlist");
  143. model.removeNodeset ( "/root/result/savecncrlist" );
  144. model.setValue ( "/root/bfrow", "" );
  145. if ( srcNodeList1.length == 0 && srcNodeList2.length == 0 ) {
  146. }
  147. model.refresh();
  148. var row=0;
  149. for ( i=0; i < srcNodeList1.length; i++ ){
  150. row = i+1;
  151. if (model.getValue ( "/root/tempresult/savetnmlist[" + row + "]/status" ) == "I" || model.getValue ( "/root/tempresult/savetnmlist[" + row + "]/status" ) == "U") {
  152. destNode.appendChild(srcNodeList1.item(i).cloneNode(true));
  153. if ( model.getValue ( "/root/tempresult/savetnmlist[" + row + "]/status" ) == "U" ) {
  154. button91.disabled = false;
  155. } else {
  156. button91.disabled = true;
  157. }
  158. } else {
  159. copydestNode.appendChild(srcNodeList1.item(i).cloneNode(true));
  160. button91.disabled = true;
  161. }
  162. }
  163. model.refresh();
  164. for ( i=0; i < srcNodeList2.length; i++ ) {
  165. destNode.appendChild(srcNodeList2.item(i).cloneNode(true));
  166. }
  167. model.refresh();
  168. combo2.disabled = true;
  169. input5.disabled = true;
  170. // datagrid2.attribute ( "visibility" ) = "hidden";
  171. radio2.disabled = true;
  172. combo1.disabled = true;
  173. if ( isNull ( model.getValue ( "/root/result/savecncrlist/pid" ))) {
  174. radio3.disabled = true;
  175. combo3.disabled = true;
  176. combo4.disabled = true;
  177. combo5.disabled = true;
  178. }
  179. if ( isNull ( model.getValue ( "/root/result/savetnmlist/pid" ))) {
  180. bool1.disabled = true;
  181. bool2.disabled = true;
  182. bool3.disabled = true;
  183. combo2.disabled = true;
  184. input1.disabled = true;
  185. input2.disabled = true;
  186. input3.disabled = true;
  187. input4.disabled = true;
  188. input5.disabled = true;
  189. radio1.disabled = true;
  190. combo6.disabled = true;
  191. }
  192. fReqStageCls(model.getValue("/root/result/savetnmlist/icd10cd"));
  193. submit("TRMMO08402", false);
  194. ]]>
  195. </script>
  196. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  197. <script type="javascript" ev:event="xforms-ready">
  198. <![CDATA[
  199. if (! isNull ( model.getValue ( "/root/result/savecncrlist/pid" ))) {
  200. model.copyNode ( "/root/tempcncr", "/root/result/savecncrlist" );
  201. if ( model.getValue ( "/root/tempcncr/tempcol1") == "Y" ) {
  202. if ( messageBox ( model.getValue ( "/root/tempcncr/tempcol3"), "Q" ) == "6" ) {
  203. var tempcol2 = model.getValue ( "/root/tempcncr/tempcol2") + "^";
  204. var drugthrpcd = getArrayData (tempcol2, 0, 0, "^", "|" );
  205. var drugtims = getArrayData (tempcol2, 0, 1, "^", "|" );
  206. var drugpridstartno = getArrayData (tempcol2, 0, 2, "^", "|" );
  207. var drugpridstartdayno = getArrayData (tempcol2, 0, 3, "^", "|" );
  208. var drugpridendno = getArrayData (tempcol2, 0, 4, "^", "|" );
  209. var drugpridenddayno = getArrayData (tempcol2, 0, 5, "^", "|" );
  210. model.setValue ( "/root/tempcncr/drugthrpcd", drugthrpcd );
  211. model.setValue ( "/root/tempcncr/drugtims", drugtims );
  212. model.setValue ( "/root/tempcncr/drugpridstartno", drugpridstartno );
  213. model.setValue ( "/root/tempcncr/drugpridstartdayno", drugpridstartdayno );
  214. model.setValue ( "/root/tempcncr/drugpridendno", drugpridendno );
  215. model.setValue ( "/root/tempcncr/drugpridenddayno", drugpridenddayno );
  216. // model.refresh(); // 위치를 아래로 이동.
  217. }
  218. }
  219. model.refresh();
  220. }
  221. fSetTempTnm (1);
  222. ]]>
  223. </script>
  224. <submission id="TRMMO08401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/stagecls"/>
  225. <submission id="TXMMO08401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  226. <submission id="TRMMO08402" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/init/stage"/>
  227. </model>
  228. </xhtml:head>
  229. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  230. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  231. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  232. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  233. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  234. <script type="javascript">
  235. <![CDATA[
  236. function fReqStageCls(diagcd){
  237. model.resetInstanceNode("/root/send");
  238. model.setValue("/root/send/cond1", diagcd);
  239. if(submit("TRMMO08401")){
  240. }
  241. }
  242. function fSetTempTnm (currow) {
  243. if ( isNull ( model.getValue ( "/root/result/savetnmlist/pid" ))) {
  244. return;
  245. }
  246. datagrid1.row = currow;
  247. var bfrow = model.getValue ( "/root/bfrow" );
  248. if ( !isNull ( bfrow )) {
  249. if ( isNull(model.getValue ("/root/temptnm/stagecd")) && !isNull(model.getValue ( "/root/temptnm/displaystage" ))) {
  250. model.setValue ("/root/temptnm/stagecd", model.getValue ( "/root/temptnm/displaystage" ));
  251. }
  252. model.copyNode ( "/root/result/savetnmlist[" + bfrow + "]" , "/root/temptnm" );
  253. }
  254. model.copyNode ( "/root/temptnm", "/root/result/savetnmlist[" + currow + "]" );
  255. model.setValue("/root/init/displaystagecombo", model.getValue("/root/temptnm/stagecd") );
  256. model.setValue ( "/root/bfrow", currow );
  257. var mataflag = model.getValue ( "/root/temptnm/mataflag" ); //병기 입력에 대한 Stage 자료가 없음 구분
  258. if ( mataflag == "N" ) { //N일때는 분류표에서 state 입력
  259. input1.disabled = true;
  260. input2.disabled = true;
  261. input3.disabled = true;
  262. input4.disabled = true;
  263. combo6.disabled = true;
  264. } else {
  265. input1.disabled = false;
  266. input2.disabled = false;
  267. input3.disabled = false;
  268. input4.disabled = false;
  269. combo6.disabled = false;
  270. }
  271. //입력불가 setting
  272. if ( model.getValue ( "/root/temptnm/inptimpsiflag" ) == "Y" ) {
  273. input1.disabled = true;
  274. input2.disabled = true;
  275. input3.disabled = true;
  276. input4.disabled = true;
  277. combo6.disabled = true;
  278. radio1.disabled = true;
  279. combo2.disabled = false;
  280. model.setValue ( "/root/temptnm/stagecd", "" );
  281. model.setValue ( "/root/temptnm/tnmcd1", "" );
  282. model.setValue ( "/root/temptnm/tnmcd2", "" );
  283. model.setValue ( "/root/temptnm/tnmcd3" , "" );
  284. model.setValue ( "/root/temptnm/stageflag", "-" );
  285. model.setValue( "/root/init/displaystagecombo", "");
  286. } else {
  287. model.setValue ( "/root/temptnm/inptimpsiresncd", "-" );
  288. model.setValue ( "/root/temptnm/inptimpsietcresnnm", "" );
  289. model.setValue ( "/root/temptnm/inptimpsiflag", "N" );
  290. input1.disabled = false;
  291. radio1.disabled = false;
  292. combo2.disabled = true;
  293. if ( model.getValue ( "/root/temptnm/mataflag" ) == "N" ) { //N일때는 분류표에서 state 입력
  294. input1.disabled = true;
  295. input2.disabled = true;
  296. input3.disabled = true;
  297. input4.disabled = true;
  298. combo6.disabled = true;
  299. } else {
  300. input1.disabled = false;
  301. input2.disabled = false;
  302. input3.disabled = false;
  303. input4.disabled = false;
  304. combo6.disabled = false;
  305. }
  306. }
  307. if ( model.getValue ( "/root/temptnm/nptimpsiresncd" ) == "99" ) {
  308. input5.disabled = false;
  309. } else {
  310. input5.disabled = true;
  311. }
  312. //소세포암 setting
  313. if ( model.getValue ( "/root/temptnm/cncrflag1" ) == "Y" ) {
  314. radio2.disabled = false;
  315. bool2.disabled= false;
  316. if ( model.getValue("/root/temptnm/cncrflagkind1") == "-" ) {
  317. model.setValue( "/root/temptnm/cncrflag1", "N" );
  318. }
  319. } else {
  320. if (model.getValue("/root/init/cncrflag1")=="Y"){
  321. radio2.disabled = false;
  322. bool2.disabled= false;
  323. }
  324. else{
  325. radio2.disabled = true;
  326. bool2.disabled= true;
  327. }
  328. }
  329. //난세포암 setting
  330. if ( model.getValue ( "/root/temptnm/cncrflag2" ) == "Y" ) {
  331. combo1.disabled = false;
  332. bool3.disabled= false;
  333. } else {
  334. combo1.disabled = true;
  335. bool3.disabled= true;
  336. }
  337. model.refresh();
  338. if ( model.getValue ( "/root/temptnm/tempcol1") == "Y" ) {
  339. if ( messageBox ( model.getValue ( "/root/temptnm/tempcol3"), "Q" ) == "6" ) {
  340. var copyrow = eval(model.getValue ( "/root/temptnm/tempcol2")) + 1;
  341. model.copyNode ( "/root/temptnm", "/root/copyresult/savetnmlist[" + copyrow + "]" );
  342. model.refresh();
  343. }
  344. model.setValue ( "/root/temptnm/tempcol1", "N" );
  345. }
  346. }
  347. ]]>
  348. </script>
  349. <xhtml:body pagewidth="530" pageheight="760" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  350. <datagrid id="datagrid2" nodeset="/root/stagecls/stageclslist" caption="Stage^T^N^M" colsep="^" colwidth="100, 60, 60, 49" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:154px; top:199px; width:282px; height:301px; ">
  351. <col ref="displaystage" style="text-align:center; "/>
  352. <col ref="t" style="text-align:center; "/>
  353. <col ref="n" style="text-align:center; "/>
  354. <col ref="m" style="text-align:center; "/>
  355. <script type="javascript" ev:event="ondblclick">
  356. <![CDATA[
  357. if (model.getValue("/root/temptnm/inptimpsiflag" ) == "N" ) {
  358. var stage = model.getValue ( "/root/stagecls/stageclslist[" + datagrid2.row + "]/stage" );
  359. var t = model.getValue ( "/root/stagecls/stageclslist[" + datagrid2.row + "]/t" );
  360. var n = model.getValue ( "/root/stagecls/stageclslist[" + datagrid2.row + "]/n" );
  361. var m = model.getValue ( "/root/stagecls/stageclslist[" + datagrid2.row + "]/m" );
  362. var displaystage = model.getValue ( "/root/stagecls/stageclslist[" + datagrid2.row + "]/displaystage" );
  363. model.setValue ( "/root/temptnm/stagecd" , stage );
  364. model.setValue ( "/root/temptnm/tnmcd1" , t );
  365. model.setValue ( "/root/temptnm/tnmcd2" , n );
  366. model.setValue ( "/root/temptnm/tnmcd3" , m );
  367. model.setValue ( "/root/temptnm/displaystage" , displaystage );
  368. model.setValue("/root/init/displaystagecombo", stage);
  369. model.refresh();
  370. }
  371. ]]>
  372. </script>
  373. </datagrid>
  374. <line id="line7" class="line_2" style="x1:2px; y1:637px; x2:507px; y2:637px; "/>
  375. <caption id="caption11" class="cell_1" style="left:2px; top:586px; width:100px; height:50px; "/>
  376. <caption id="caption9" class="cell_1" style="left:2px; top:532px; width:100px; height:50px; "/>
  377. <button id="button1" class="btn2_letter3" style="left:451px; top:1px; width:53px; height:19px; ">
  378. <caption>초기화</caption>
  379. </button>
  380. <button id="button2" class="btn2_letter5" style="left:373px; top:1px; width:75px; height:19px; ">
  381. <caption>AJCC참조</caption>
  382. <script type="javascript" ev:event="DOMActivate">
  383. <![CDATA[
  384. modal ( "SPMMO13900" );
  385. ]]>
  386. </script>
  387. </button>
  388. <button id="button91" class="btn5_letter3" style="left:323px; top:730px; width:53px; height:19px; ">
  389. <caption>삭 제</caption>
  390. <script type="javascript" ev:event="DOMActivate">
  391. <![CDATA[
  392. fSetTempTnm (datagrid1.row);
  393. if ( !isNull(model.getValue ("/root/result/savetnmlist/pid")) || !isNull(model.getValue ("/root/result/savecncrlist/pid")) ) {
  394. if ( !isNull(model.getValue ("/root/result/savetnmlist/pid" ))) {
  395. var savetnmlistlen = model.instances(0).selectNodes( "/root/result/savetnmlist" ).length;
  396. for ( var i =1; i <= savetnmlistlen; i++ ) {
  397. model.setValue ( "/root/result/savetnmlist[" + i + "]/status", "D" );
  398. }
  399. var savetnmlistNodeList = model.instances(0).selectNodes( "/root/result/savetnmlist" );
  400. model.setValue ( "/root/send/cond1", getNodeListCSV(savetnmlistNodeList));
  401. }
  402. if ( !isNull(model.getValue ("/root/result/savecncrlist/pid" ))) {
  403. var savecncrlistlen = model.instances(0).selectNodes( "/root/result/savecncrlist" ).length;
  404. for ( var i =1; i <= savecncrlistlen; i++ ) {
  405. model.setValue ( "/root/result/savecncrlist[" + i + "]/status", "D" );
  406. }
  407. var savecncrlistNodeList = model.instances(0).selectNodes( "/root/result/savecncrlist" );
  408. model.setValue ( "/root/send/cond2", getNodeListCSV(savecncrlistNodeList));
  409. }
  410. submit ( "TXMMO08401" , false);
  411. opener.javascript.setParameter ( "SPMMO08400_rtn1", "Y" );
  412. window.close();
  413. }
  414. ]]>
  415. </script>
  416. </button>
  417. <button id="button90" class="btn5_letter3" style="left:379px; top:730px; width:53px; height:19px; ">
  418. <caption>등 록</caption>
  419. <script type="javascript" ev:event="DOMActivate">
  420. <![CDATA[
  421. fSetTempTnm (datagrid1.row);
  422. for ( var i = 1; i < datagrid1.rows; i++ ) {
  423. if ( model.getValue ( "/root/result/savetnmlist[" + i + "]/inptimpsiflag" ) != "Y" ) {
  424. var attackflag = model.getValue ( "/root/result/savetnmlist[" + i + "]/attackflag" );
  425. var stagecd = model.getValue ( "/root/result/savetnmlist[" + i + "]/stagecd" );
  426. var tnmcd1 = model.getValue ( "/root/result/savetnmlist[" + i + "]/tnmcd1" );
  427. var tnmcd2 = model.getValue ( "/root/result/savetnmlist[" + i + "]/tnmcd2" );
  428. var tnmcd3 = model.getValue ( "/root/result/savetnmlist[" + i + "]/tnmcd3" );
  429. if ( attackflag == "-" || isNull(attackflag) ) {
  430. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "발병상태가 입력되지 않았습니다." );
  431. return;
  432. }
  433. if ( model.getValue ( "/root/result/savetnmlist[" + i + "]/cncrflag2" ) != "Y" ) {// 난세포암이 아닐 때 만 체크한다. 난세포암은 GRADE로 체크.
  434. if ( model.getValue ( "/root/result/savetnmlist[" + i + "]/cncrflag1" ) != "Y" ) {
  435. if ( isNull(stagecd) || isNull(tnmcd1) || isNull(tnmcd2) || isNull(tnmcd3)) {
  436. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "Stage 분류가 입력되지 않았습니다." );
  437. return;
  438. }
  439. }
  440. //STAGE구분(1:임상적, 2:병리적) -> 반드시 '1' or '2' 가 입력되어야됨 단, 입력불가구분이 'Y'일 경우 '-'
  441. var stageflag = model.getValue ( "/root/result/savetnmlist[" + i + "]/stageflag" );
  442. if ( stageflag == "-" || isNull(stageflag)) {
  443. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "Stage 구분이 입력되지 않았습니다.");
  444. return;
  445. }
  446. }
  447. } else {
  448. var inptimpsiresncd = model.getValue ( "/root/result/savetnmlist[" + i + "]/inptimpsiresncd" );
  449. if ( inptimpsiresncd == "-" || isNull(inptimpsiresncd)) {
  450. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "입력불가 사유가 입력되지 않았습니다.");
  451. return;
  452. }
  453. if ( inptimpsiresncd == "99" ) {
  454. var inptimpsietcresnnm = model.getValue ( "/root/result/savetnmlist[" + i + "]/inptimpsietcresnnm" );
  455. if ( isNull(inptimpsietcresnnm)) {
  456. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "입력불가 기타사유가 입력되지 않았습니다.");
  457. return;
  458. }
  459. }
  460. }
  461. if ( model.getValue ( "/root/result/savetnmlist[" + i + "]/cncrflag1" ) == "Y" ) {
  462. //소세포암에 대한 선택 종류 -> 소세포암구분이 'Y'일 경우 '1' or '2' 가 입력되어야됨, 그렇지 안을 경우 '-'
  463. var cncrflagkind1 = model.getValue ( "/root/result/savetnmlist[" + i + "]/cncrflagkind1" );
  464. if ( cncrflagkind1 == "-" || isNull(cncrflagkind1)) {
  465. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "소세포암 구분이 입력되지 않았습니다.");
  466. return;
  467. }
  468. }
  469. if ( model.getValue ( "/root/result/savetnmlist[" + i + "]/cncrflag2" ) == "Y" ) {
  470. //Grade -> 난소암구분이 'N'이 아닐 경우 반드시 '-'가 아니어야 됨
  471. var cncrflagkind2 = model.getValue ( "/root/result/savetnmlist[" + i + "]/cncrflagkind2" );
  472. if ( cncrflagkind2 == "-" || isNull(cncrflagkind2)) {
  473. model.alert ( model.getValue ( "/root/result/savetnmlist[" + i + "]/diagnm" ) + " " + "난소암 GRADE가 입력되지 않았습니다.");
  474. return;
  475. }
  476. }
  477. }
  478. if ( !isNull(model.getValue ("/root/result/savecncrlist/pid" ))) {
  479. if ( isNull (model.getValue ( "/root/tempcncr/drugthrpcd" ))) {
  480. messageBox ( "투여요법이 입력되지" , "E007" );
  481. return;
  482. }
  483. if ( isNull (model.getValue ( "/root/tempcncr/drugtims" ))) {
  484. messageBox ( "투여단계가 입력되지" , "E007" );
  485. return;
  486. }
  487. if ( isNull (model.getValue ( "/root/tempcncr/drugpridstartno" ))) {
  488. messageBox ( "투여주기1이 입력되지" , "E007" );
  489. return;
  490. }
  491. var savecncrlistlen = model.instances(0).selectNodes( "/root/result/savecncrlist" ).length;
  492. for ( var i =1; i <= savecncrlistlen; i++ ) {
  493. var prcpdd = model.getValue ( "/root/result/savecncrlist[" + i + "]/prcpdd" );
  494. model.copyNode ( "/root/result/savecncrlist[" + i + "]" , "/root/tempcncr" );
  495. model.setValue ( "/root/result/savecncrlist[" + i + "]/prcpdd", prcpdd );
  496. //model.copyNode ( "/root/result/savecncrlist[" + i + "]" , "/root/tempcncr" );
  497. }
  498. var savecncrlistNodeList = model.instances(0).selectNodes( "/root/result/savecncrlist" );
  499. model.setValue ( "/root/send/cond2", getNodeListCSV(savecncrlistNodeList));
  500. }
  501. var savetnmlistNodeList = model.instances(0).selectNodes( "/root/result/savetnmlist" );
  502. model.setValue ( "/root/send/cond1", getNodeListCSV(savetnmlistNodeList));
  503. submit ( "TXMMO08401" , false);
  504. opener.javascript.setParameter ( "SPMMO08400_rtn1", "Y" );
  505. window.close();
  506. ]]>
  507. </script>
  508. </button>
  509. <select id="checkbox3" overflow="visible" appearance="full" style="left:7px; top:129px; width:85px; height:20px; border-style:none; ">
  510. <choices>
  511. <item>
  512. <label>입력불가</label>
  513. <value>Y</value>
  514. </item>
  515. </choices>
  516. </select>
  517. <caption id="caption10" style="left:105px; top:537px; width:405px; height:20px; ">* 선택하신 상병의 암이 소세포암인 경우 다음 구분을 선택하여 주십시오.</caption>
  518. <caption id="caption1" class="cell_1" style="left:2px; top:29px; width:100px; height:94px; ">ICD-10 코드</caption>
  519. <line id="line13" class="line_1" style="x1:2px; y1:24px; x2:507px; y2:24px; "/>
  520. <select1 id="combo1" ref="/root/temptnm/cncrflagkind2" class="combo_search" appearance="minimal" style="left:153px; top:613px; width:100px; height:19px; ">
  521. <choices>
  522. <itemset nodeset="/root/init/cncrflagkind2/M0327">
  523. <label ref="cdnm"/>
  524. <value ref="cdid"/>
  525. </itemset>
  526. </choices>
  527. </select1>
  528. <caption id="caption2" class="cell_1" style="left:2px; top:178px; width:100px; height:23px; ">분류</caption>
  529. <line id="line14" class="line_2" style="x1:2px; y1:175px; x2:507px; y2:175px; "/>
  530. <select1 id="combo2" ref="/root/temptnm/inptimpsiresncd" class="combo_search" appearance="minimal" style="left:104px; top:128px; width:116px; height:19px; ">
  531. <choices>
  532. <itemset nodeset="/root/init/inptimpsiresncd/M0326">
  533. <label ref="cdnm"/>
  534. <value ref="cdid"/>
  535. </itemset>
  536. </choices>
  537. <script type="javascript" ev:event="xforms-value-changed">
  538. <![CDATA[
  539. if ( model.getValue ( "/root/temptnm/inptimpsiresncd" ) == "99" ) {
  540. input5.disabled = false;
  541. } else {
  542. model.setValue ( "/root/temptnm/inptimpsietcresnnm" , "" );
  543. input5.disabled = true;
  544. }
  545. model.refresh();
  546. ]]>
  547. </script>
  548. </select1>
  549. <caption id="caption12" style="left:105px; top:592px; width:405px; height:20px; ">* 선택하신 상병의 암이 난소암인 경우 다음 구분을 선택하여 주십시오.</caption>
  550. <caption id="caption3" style="left:106px; top:179px; width:48px; height:20px; ">STAGE:</caption>
  551. <caption id="caption13" class="tit_2" style="left:5px; top:647px; width:121px; height:13px; ">투여단계 및 주기</caption>
  552. <caption id="caption4" style="left:264px; top:179px; width:20px; height:20px; ">T:</caption>
  553. <select1 id="radio1" ref="/root/temptnm/stageflag" appearance="full" cellspacing="10" cols="2" overflow="visible" style="left:106px; top:507px; width:130px; height:20px; border-style:none; ">
  554. <choices>
  555. <itemset nodeset="/root/init/stageflag/M0329">
  556. <label ref="cdnm"/>
  557. <value ref="cdid"/>
  558. </itemset>
  559. </choices>
  560. </select1>
  561. <line id="line1" class="line_2" style="x1:2px; y1:502px; x2:507px; y2:502px; "/>
  562. <caption id="caption5" style="left:324px; top:179px; width:20px; height:20px; ">N:</caption>
  563. <caption id="caption15" style="left:105px; top:613px; width:50px; height:20px; ">GRADE:</caption>
  564. <select1 id="radio2" ref="/root/temptnm/cncrflagkind1" appearance="full" cellspacing="20" cols="2" overflow="visible" style="left:106px; top:559px; width:330px; height:20px; border-style:none; ">
  565. <choices>
  566. <itemset nodeset="/root/init/cncrflagkind1/M0328">
  567. <label ref="cdnm"/>
  568. <value ref="cdid"/>
  569. </itemset>
  570. </choices>
  571. <script type="javascript" ev:event="onclick">
  572. <![CDATA[
  573. if (model.getValue("/root/temptnm/cncrflagkind1")=="1"||model.getValue("/root/temptnm/cncrflagkind1")=="2"){
  574. model.setValue("/root/temptnm/cncrflag1","Y");
  575. model.refresh()
  576. }
  577. ]]>
  578. </script>
  579. </select1>
  580. <line id="line2" class="line_2" style="x1:2px; y1:529px; x2:507px; y2:529px; "/>
  581. <caption id="caption6" style="left:381px; top:179px; width:25px; height:20px; ">M:</caption>
  582. <input id="input1" ref="/root/temptnm/displaystage" class="input_default" visibility="hidden" style="left:35px; top:315px; width:100px; height:19px; font-weight:bold; "/>
  583. <caption id="caption16" class="cell_1" style="left:2px; top:126px; width:100px; height:23px; "/>
  584. <line id="line3" class="line_2" style="x1:2px; y1:583px; x2:507px; y2:583px; "/>
  585. <input id="input2" ref="/root/temptnm/tnmcd1" class="input_default" style="left:278px; top:179px; width:35px; height:19px; font-weight:bold; "/>
  586. <line id="line4" class="line_1" style="x1:2px; y1:662px; x2:507px; y2:662px; "/>
  587. <caption id="caption8" class="cell_1" style="left:2px; top:505px; width:100px; height:23px; ">구분</caption>
  588. <input id="input3" ref="/root/temptnm/tnmcd2" class="input_default" style="left:339px; top:179px; width:35px; height:19px; font-weight:bold; "/>
  589. <line id="line5" class="line_2" style="x1:2px; y1:124px; x2:507px; y2:124px; "/>
  590. <input id="input4" ref="/root/temptnm/tnmcd3" class="input_default" style="left:400px; top:179px; width:35px; height:19px; font-weight:bold; "/>
  591. <caption id="caption18" class="tit_2" style="left:5px; top:10px; width:121px; height:13px; ">Stage 분류</caption>
  592. <input id="input5" ref="/root/temptnm/inptimpsietcresnnm" class="input_search" style="left:223px; top:128px; width:283px; height:19px; "/>
  593. <datagrid id="datagrid1" nodeset="/root/result/savetnmlist" caption="진단코드^진단명" colsep="^" colwidth="100, 300" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:103px; top:29px; width:403px; height:94px; ">
  594. <col ref="icd10cd"/>
  595. <col ref="diagnm"/>
  596. <script type="javascript" ev:event="onclick">
  597. <![CDATA[
  598. if( datagrid1.isCell(event.target) && datagrid1.row >= datagrid1.fixedRows ){
  599. fReqStageCls(model.getValue("/root/result/savetnmlist[" + datagrid1.row + "]/icd10cd"));
  600. fSetTempTnm(datagrid1.row);
  601. }
  602. ]]>
  603. </script>
  604. </datagrid>
  605. <bool id="bool1" checkvalue="Y,N" ref="/root/temptnm/inptimpsiflag" style="left:6px; top:127px; width:20px; height:20px; ">
  606. <script type="javascript" ev:event="xforms-value-changed">
  607. <![CDATA[
  608. if ( model.getValue ( "/root/temptnm/inptimpsiflag" ) == "Y" ) {
  609. input1.disabled = true;
  610. input2.disabled = true;
  611. input3.disabled = true;
  612. input4.disabled = true;
  613. radio1.disabled = true;
  614. radio4.disabled = true;
  615. combo2.disabled = false;
  616. combo6.disabled = true;
  617. model.setValue ( "/root/temptnm/stagecd", "" );
  618. model.setValue ( "/root/temptnm/tnmcd1", "" );
  619. model.setValue ( "/root/temptnm/tnmcd2", "" );
  620. model.setValue ( "/root/temptnm/tnmcd3" , "" );
  621. model.setValue ( "/root/temptnm/stageflag", "-" );
  622. model.setValue ( "/root/temptnm/attackflag", "-" );
  623. model.setValue ( "/root/init/displaystagecombo", "");
  624. } else {
  625. model.setValue ( "/root/temptnm/inptimpsiresncd", "-" );
  626. model.setValue ( "/root/temptnm/inptimpsietcresnnm", "" );
  627. model.setValue ( "/root/temptnm/inptimpsiflag", "N" );
  628. input1.disabled = false;
  629. radio1.disabled = false;
  630. radio4.disabled = false;
  631. combo2.disabled = true;
  632. if ( model.getValue ( "/root/temptnm/mataflag" ) == "N" ) { //N일때는 분류표에서 state 입력
  633. input1.disabled = true;
  634. input2.disabled = true;
  635. input3.disabled = true;
  636. input4.disabled = true;
  637. combo6.disabled = true;
  638. } else {
  639. input1.disabled = false;
  640. input2.disabled = false;
  641. input3.disabled = false;
  642. input4.disabled = false;
  643. combo6.disabled = false;
  644. }
  645. }
  646. if ( model.getValue ( "/root/temptnm/nptimpsiresncd" ) == "99" ) {
  647. input5.disabled = false;
  648. } else {
  649. input5.disabled = true;
  650. }
  651. model.refresh();
  652. ]]>
  653. </script>
  654. </bool>
  655. <caption id="caption17" style="left:27px; top:129px; width:65px; height:20px; ">입력불가</caption>
  656. <bool id="bool2" checkvalue="Y,N" ref="/root/temptnm/cncrflag1" style="left:2px; top:545px; width:25px; height:20px; ">
  657. <script type="javascript" ev:event="xforms-value-changed">
  658. <![CDATA[
  659. if (model.getValue("/root/temptnm/cncrflag1")=="N"){
  660. model.setValue("/root/temptnm/cncrflagkind1","");
  661. model.refresh();
  662. }
  663. ]]>
  664. </script>
  665. </bool>
  666. <caption id="caption19" style="left:27px; top:546px; width:70px; height:20px; ">소세포암</caption>
  667. <bool id="bool3" checkvalue="Y,N" ref="/root/temptnm/cncrflag2" style="left:1px; top:600px; width:28px; height:20px; ">
  668. <script type="javascript" ev:event="xforms-value-changed">
  669. <![CDATA[
  670. if ( model.getValue ( "/root/temptnm/cncrflag2" ) == "Y" ) {
  671. combo1.disabled = false;
  672. } else {
  673. combo1.disabled = true;
  674. model.setValue ( "/root/temptnm/cncrflagkind2", "-" );
  675. }
  676. ]]>
  677. </script>
  678. </bool>
  679. <caption id="caption20" style="left:27px; top:600px; width:55px; height:20px; ">난세포암</caption>
  680. <caption id="caption21" class="cell_1" style="left:2px; top:667px; width:100px; height:23px; ">투여요법</caption>
  681. <line id="line6" class="line_2" style="x1:2px; y1:691px; x2:507px; y2:691px; "/>
  682. <select1 id="radio3" ref="/root/tempcncr/drugthrpcd" appearance="full" cols="4" overflow="visible" style="left:106px; top:670px; width:100px; height:20px; border-style:none; ">
  683. <choices>
  684. <itemset nodeset="/root/init/drugthrpcd/M0331">
  685. <label ref="cdnm"/>
  686. <value ref="cdid"/>
  687. </itemset>
  688. </choices>
  689. </select1>
  690. <caption id="caption14" class="cell_1" style="left:2px; top:693px; width:100px; height:23px; ">투여단계</caption>
  691. <select1 id="combo3" ref="/root/tempcncr/drugtims" appearance="minimal" style="left:105px; top:695px; width:85px; height:19px; ">
  692. <choices>
  693. <item>
  694. <label>1st-Line</label>
  695. <value>1</value>
  696. </item>
  697. <item>
  698. <label>2st-Line</label>
  699. <value>2</value>
  700. </item>
  701. <item>
  702. <label>3st-Line</label>
  703. <value>3</value>
  704. </item>
  705. <item>
  706. <label>4st-Line</label>
  707. <value>4</value>
  708. </item>
  709. <item>
  710. <label>5st-Line</label>
  711. <value>5</value>
  712. </item>
  713. <item>
  714. <label>6st-Line</label>
  715. <value>6</value>
  716. </item>
  717. </choices>
  718. </select1>
  719. <caption id="caption22" class="cell_1" style="left:193px; top:693px; width:63px; height:23px; ">투여주기1</caption>
  720. <caption id="caption23" class="cell_1" style="left:347px; top:693px; width:66px; height:23px; ">투여주기2</caption>
  721. <select1 id="combo4" ref="/root/tempcncr/drugpridstartno" appearance="minimal" style="left:259px; top:695px; width:85px; height:19px; ">
  722. <choices>
  723. <item>
  724. <label>1st-cycle</label>
  725. <value>1</value>
  726. </item>
  727. <item>
  728. <label>2st-cycle</label>
  729. <value>2</value>
  730. </item>
  731. <item>
  732. <label>3st-cycle</label>
  733. <value>3</value>
  734. </item>
  735. <item>
  736. <label>4st-cycle</label>
  737. <value>4</value>
  738. </item>
  739. <item>
  740. <label>5st-cycle</label>
  741. <value>5</value>
  742. </item>
  743. <item>
  744. <label>6st-cycle</label>
  745. <value>6</value>
  746. </item>
  747. <item>
  748. <label>7st-cycle</label>
  749. <value>7</value>
  750. </item>
  751. <item>
  752. <label>8st-cycle</label>
  753. <value>8</value>
  754. </item>
  755. <item>
  756. <label>9st-cycle</label>
  757. <value>9</value>
  758. </item>
  759. <item>
  760. <label>10st-cycle</label>
  761. <value>10</value>
  762. </item>
  763. <item>
  764. <label>11st-cycle</label>
  765. <value>11</value>
  766. </item>
  767. <item>
  768. <label>12st-cycle</label>
  769. <value>12</value>
  770. </item>
  771. </choices>
  772. </select1>
  773. <line id="line8" class="line_3" style="x1:2px; y1:717px; x2:507px; y2:717px; "/>
  774. <select1 id="combo5" ref="/root/tempcncr/drugpridendno" appearance="minimal" style="left:415px; top:695px; width:85px; height:19px; ">
  775. <choices>
  776. <item>
  777. <label>-</label>
  778. <value>-</value>
  779. </item>
  780. <item>
  781. <label>1st-cycle</label>
  782. <value>1</value>
  783. </item>
  784. <item>
  785. <label>2st-cycle</label>
  786. <value>2</value>
  787. </item>
  788. <item>
  789. <label>3st-cycle</label>
  790. <value>3</value>
  791. </item>
  792. <item>
  793. <label>4st-cycle</label>
  794. <value>4</value>
  795. </item>
  796. <item>
  797. <label>5st-cycle</label>
  798. <value>5</value>
  799. </item>
  800. <item>
  801. <label>6st-cycle</label>
  802. <value>6</value>
  803. </item>
  804. <item>
  805. <label>7st-cycle</label>
  806. <value>7</value>
  807. </item>
  808. <item>
  809. <label>8st-cycle</label>
  810. <value>8</value>
  811. </item>
  812. <item>
  813. <label>9st-cycle</label>
  814. <value>9</value>
  815. </item>
  816. <item>
  817. <label>10st-cycle</label>
  818. <value>10</value>
  819. </item>
  820. <item>
  821. <label>11st-cycle</label>
  822. <value>11</value>
  823. </item>
  824. </choices>
  825. </select1>
  826. <line id="line9" class="line_2" style="x1:2px; y1:150px; x2:507px; y2:150px; "/>
  827. <caption id="caption24" class="cell_1" style="left:2px; top:152px; width:100px; height:23px; ">발병 상태</caption>
  828. <select1 id="radio4" ref="/root/temptnm/attackflag" appearance="full" cols="2" overflow="visible" style="left:105px; top:155px; width:100px; height:20px; border-style:none; ">
  829. <choices>
  830. <item>
  831. <label>초발</label>
  832. <value>1</value>
  833. </item>
  834. <item>
  835. <label>재발</label>
  836. <value>2</value>
  837. </item>
  838. </choices>
  839. </select1>
  840. <button id="button3" class="btn2_letter3" style="left:435px; top:730px; width:53px; height:19px; ">
  841. <caption>닫 기</caption>
  842. <script type="javascript" ev:event="DOMActivate">
  843. <![CDATA[
  844. window.close();
  845. ]]>
  846. </script>
  847. </button>
  848. <select1 id="combo6" ref="/root/init/displaystagecombo" appearance="minimal" style="left:155px; top:179px; width:97px; height:19px; ">
  849. <choices>
  850. <itemset nodeset="/root/init/stage/row">
  851. <label ref="displaystage"/>
  852. <value ref="stage"/>
  853. </itemset>
  854. </choices>
  855. <script type="javascript" ev:event="xforms-value-changed">
  856. <![CDATA[
  857. model.setValue ( "/root/temptnm/stagecd" , combo6.value );
  858. model.setValue ( "/root/temptnm/displaystage" , combo6.label );
  859. model.refresh();
  860. ]]>
  861. </script>
  862. </select1>
  863. <button id="button4" class="btn2_letter6" style="left:10px; top:730px; width:53px; height:19px; ">
  864. <caption>이전등록조회</caption>
  865. <script type="javascript" ev:event="DOMActivate">
  866. <![CDATA[
  867. window.javascript.open("SPMMO08500", null, null, null, "SPMMO08500", "", "", "", false);
  868. ]]>
  869. </script>
  870. </button>
  871. </xhtml:body>
  872. </xhtml:html>