SPMMD03300_Allergy관리.xrw 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149
  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>약물유해반응(ADR)/Allergy</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <adrlists>
  11. </adrlists>
  12. <astlists>
  13. </astlists>
  14. <allergylists>
  15. </allergylists>
  16. <allergyinfo/>
  17. <paminfo/>
  18. <foodlists/>
  19. <paramlist/>
  20. </main>
  21. <hidden>
  22. <getdata>
  23. <cd/>
  24. <nm/>
  25. </getdata>
  26. <allergylists>
  27. <allergylist/>
  28. </allergylists>
  29. <resultref>
  30. <info/>
  31. </resultref>
  32. </hidden>
  33. <send>
  34. <reqdata/>
  35. <savedata>
  36. <adrlist/>
  37. <allergylist/>
  38. </savedata>
  39. </send>
  40. <init>
  41. <cond>
  42. <ioflag/>
  43. <pid/>
  44. <orddd/>
  45. <cretno/>
  46. <seqno/>
  47. <orddeptcd/>
  48. </cond>
  49. <M0090list>
  50. <M0090>
  51. <cdid/>
  52. <cdnm/>
  53. </M0090>
  54. </M0090list>
  55. <M0423list>
  56. <M0423>
  57. <cdid/>
  58. <cdnm/>
  59. </M0423>
  60. </M0423list>
  61. </init>
  62. <temp>
  63. <cond>
  64. <gridflag>D</gridflag>
  65. </cond>
  66. <msglists/>
  67. <receivedata>
  68. <receiveref/>
  69. <receivecmt/>
  70. <receivedrugpnm/>
  71. <receivedrugflag/>
  72. <receivedrugcom/>
  73. </receivedata>
  74. <reqdata>
  75. <send>
  76. <receiveref/>
  77. <receivedrugpnm/>
  78. <receivedrugflag/>
  79. <receivedrugcom/>
  80. </send>
  81. </reqdata>
  82. <getdata>
  83. <drugcd/>
  84. </getdata>
  85. </temp>
  86. </root>
  87. </instance>
  88. <!--bind id="bind1" ref="/root/main/allergylists/allergylist/clscd" readonly="../editable = 'T'"/-->
  89. <script type="javascript" ev:event="xforms-ready">
  90. <![CDATA[
  91. fInitialize();
  92. //fSetAllergyGridLoad();
  93. //grd_allergylist..disabled = true;
  94. // 그리드 색상변경
  95. //initGridStyle("grd_allergylist");
  96. //setRowStyle("grd_allergylist" , "1" , "F" , "editable" );
  97. for (var i = 1; i < grd_allergylist.rows; i ++){
  98. if(model.getValue("/root/main/allergylists/allergylist["+i+"]/editable") == "F") {
  99. grd_allergylist.isReadOnly(i, grd_allergylist.colRef("drugcd")) = true; // 2
  100. grd_allergylist.isReadOnly(i, grd_allergylist.colRef("gridcombo")) = true; // 3
  101. grd_allergylist.isReadOnly(i, grd_allergylist.colRef("rgstdt")) = true; // 5
  102. grd_allergylist.isReadOnly(i, grd_allergylist.colRef("rgster")) = true; // 6
  103. grd_allergylist.isReadOnly(i, grd_allergylist.colRef("cretno")) = true; // 7
  104. }
  105. }
  106. for (var i = 1; i < grd_adrlist.rows; i ++){
  107. // 기존의 editable이 F 인 데이터를 read only 처리한 로직에서
  108. // 무조건 read only 로 설정하고 수정버튼 클릭시 처리하는것으로 수정
  109. // [2008.05.06 회의 후 수정버튼 추가로 인한 변경 ]
  110. //if(model.getValue("/root/main/adrlists/adrlist["+i+"]/editable") == "F") {
  111. grd_adrlist.isReadOnly(i, grd_adrlist.colRef("drugnm")) = true; // 원인약물 6
  112. grd_adrlist.isReadOnly(i, grd_adrlist.colRef("symp")) = true; // 증상 7
  113. grd_adrlist.isReadOnly(i, grd_adrlist.colRef("sympmnftdd")) = true; // 발생일 10
  114. grd_adrlist.isReadOnly(i, grd_adrlist.colRef("cmt")) = true; // 비고 14
  115. grd_adrlist.isReadOnly(i, grd_adrlist.colRef("severity")) = true; // 심각도
  116. //}
  117. }
  118. model.removenode("/root/init/M0090list/M0090[cdid='03']"); // 약물을 ADR에서 처리하는것으로 변경했으므로 콤보에서 제외
  119. model.setFocus("/root/init/M0090list/M0090[cdid='02']");
  120. // grd_allergylist.clscd.select(2);
  121. //fSetADRGridLoad();
  122. //local test setting
  123. /*zbcfGetCodeList(new Array("M0340"), new Array("/root/init/M0340list"));
  124. model.setValue("/root/init/cond/pid", "2874");
  125. model.setValue("/root/init/cond/cretno", 1);
  126. model.copyNode("/root/send/reqdata", "/root/init/cond");
  127. submit("TRMMD03101"); //약물유해반응
  128. submit("TRMMD03102");
  129. submit("TRMMD03103"); */
  130. ]]>
  131. </script>
  132. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  133. <submission id="TRMMD03101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/adrlists"/>
  134. <submission id="TRMMD03102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/astlists"/>
  135. <submission id="TRMMD03103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/allergylists"/>
  136. <submission id="TRMMD03104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/main/allergyinfo"/>
  137. <submission id="TXMMD03101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/temp/msglists"/>
  138. <submission id="TXMMD03102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/temp/msglists"/>
  139. <submission id="TRASB01402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/hidden/resultref"/>
  140. <submission id="TXMMD03103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/temp/msglists"/>
  141. </model>
  142. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  143. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  144. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  145. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  146. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  147. <script type="javascript">
  148. <![CDATA[
  149. var vOpener = "";
  150. function fInitialize() {
  151. // var pid=getPatientId();
  152. zbcfGetCodeList(new Array("M0090"), new Array("/root/init/M0090list"));
  153. zbcfGetCodeList(new Array("M0423"), new Array("/root/init/M0423list"));
  154. var vFlag = opener.javascript.getParameter("SPMMD03300_opener");
  155. var pamInfoCvs = getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  156. if (vFlag == "opener") { //opener 있을 경우 [환자진료정보조회 : SMMMO02500]
  157. var pid = opener.javascript.getParameter("SPMMD03300_pid");
  158. vOpener = "Y";
  159. }
  160. else if(pamInfoCvs != ""){ //cvs가 ""이 아닌 경우에만 처리함.
  161. model.removeNodeSet("/root/main/paminfo/list");
  162. setCSVToNode("/root/main/paminfo", pamInfoCvs);
  163. var pid = model.getValue("/root/main/paminfo/list/pid");
  164. vOpener = "N";
  165. }
  166. //상단정보받기
  167. /*var pamInfoCvs = getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  168. if(pamInfoCvs != ""){ //cvs가 ""이 아닌 경우에만 처리함.
  169. model.removeNodeSet("/root/main/paminfo/list");
  170. setCSVToNode("/root/main/paminfo", pamInfoCvs);
  171. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  172. if(ioflag == "I"){
  173. model.setValue("/root/init/cond/ioflag", ioflag);
  174. model.setValue("/root/init/cond/pid", model.getValue("/root/main/paminfo/list/pid"));
  175. model.setValue("/root/init/cond/orddd", model.getValue("/root/main/paminfo/list/indd"));
  176. model.setValue("/root/init/cond/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  177. model.setValue("/root/init/cond/seqno", model.getValue("/root/main/paminfo/list/seqno"));
  178. model.setValue("/root/init/cond/orddeptcd", model.getValue("/root/main/paminfo/list/orddeptcd"));
  179. model.refresh();
  180. }else if(ioflag == "O"){
  181. model.setValue("/root/init/cond/ioflag", ioflag);
  182. model.setValue("/root/init/cond/pid", model.getValue("/root/main/paminfo/list/pid"));
  183. model.setValue("/root/init/cond/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  184. model.setValue("/root/init/cond/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  185. model.setValue("/root/init/cond/seqno", model.getValue("/root/main/paminfo/list/acptseqno"));
  186. model.setValue("/root/init/cond/orddeptcd", model.getValue("/root/main/paminfo/list/orddeptcd"));
  187. model.refresh();
  188. }else{
  189. var rtn = messageBox("상단의 정보와 ", "E004");
  190. return;
  191. }
  192. } */
  193. //if( (model.getValue("/root/init/cond/ioflag") != null) || (model.getValue("/root/init/cond/ioflag") != "")) {
  194. if( (pid != null) || (pid != "")) {
  195. model.setValue("/root/init/cond/pid", pid);
  196. model.copyNode("/root/send/reqdata", "/root/init/cond");
  197. submit("TRMMD03101"); //ADR 약물유해반응
  198. submit("TRMMD03102"); //ast결과
  199. if(submit("TRMMD03103")) { //allergy
  200. model.copyNode("/root/hidden/allergylists/allergylist", "/root/main/allergylists/allergylist");
  201. }
  202. }
  203. fchkDrConfm();
  204. }
  205. function fchkDrConfm() {
  206. if ( vOpener == "N") var pid = getPatientId();
  207. else var pid = opener.javascript.getParameter("SPMMD03300_pid");
  208. // if(pid != "" && getUserInfo("jobkindcd") == "0330"){ // 세션정보 == 의사
  209. if(pid != ""){ // 세션정보 == 의사
  210. model.removeNodeset("/root/send/savedata");
  211. model.makeNode("/root/send/savedata");
  212. model.makeValue("/root/init/cond/pid", pid);
  213. model.makeValue("/root/init/cond/drcnfmyn", 'N');
  214. model.makeValue("/root/send/savedata/pid", model.getValue("/root/init/cond/pid"));
  215. model.makeValue("/root/send/savedata/drcnfmyn",model.getValue("/root/init/cond/drcnfmyn"));
  216. model.makeNode("/root/send/savedata/adrlist");
  217. model.copyNode("/root/send/savedata/adrlist", "/root/main/adrlists");
  218. model.makeNode("/root/send/savedata/allergylist");
  219. model.copyNode("/root/send/savedata/allergylist", "/root/main/allergylists");
  220. submit("TXMMD03103"); //Allergy 의사 확인 여부 입력
  221. if ( vOpener == "N") setPatientInfo("newallergy", "N");
  222. }
  223. }
  224. function fSetAllergyGridLoad() {
  225. grd_allergylist.insertRow(0);
  226. //model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/hosoutyn" , "N");
  227. var node = instance1.selectSingleNode("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/clscd");
  228. if( node != null && isNull(node.value)){
  229. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/rgstdt", getCurrentDate());
  230. }
  231. model.setfocus( "grd_allergylist" );
  232. grd_allergylist.editCell();
  233. //신규저장 status 설정
  234. //model.makeValue("/root/main/cond/status", "i");
  235. //model.makeValue("/root/main/cond/pid", model.getValue("/root/init/cond/pid"));
  236. //model.makeValue("/root/main/cond/cretno", model.getValue("/root/init/cond/cretno"));
  237. if ( vOpener == "N") model.makeValue("/root/main/cond/pid", getPatientId());
  238. else model.makeValue("/root/main/cond/pid", opener.javascript.getParameter("SPMMD03300_pid"));
  239. model.makeNode("/root/send/savedata");
  240. model.copyNode("/root/send/savedata", "/root/main/cond");
  241. }
  242. function fSetADRGridLoad() {
  243. grd_adrlist.insertRow(0);
  244. var node = instance1.selectSingleNode("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugnm");
  245. if( node != null && isNull(node.value)){
  246. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/sympmnftdd", getCurrentDate());
  247. }
  248. model.setfocus( "grd_adrlist" );
  249. grd_adrlist.editCell();
  250. //신규저장 status 설정
  251. //model.makeValue("/root/main/cond/status", "i");
  252. //model.makeValue("/root/main/cond/pid", model.getValue("/root/init/cond/pid"));
  253. //model.makeValue("/root/main/cond/cretno", model.getValue("/root/init/cond/cretno"));
  254. if ( vOpener == "N") model.makeValue("/root/main/cond/pid", getPatientId());
  255. else model.makeValue("/root/main/cond/pid", opener.javascript.getParameter("SPMMD03300_pid"));
  256. model.makeNode("/root/send/savedata");
  257. model.copyNode("/root/send/savedata", "/root/main/cond");
  258. }
  259. function fSetModalParam(param) {
  260. switch(param){
  261. case 10: fSetDrugParam(param); break;
  262. case 20: fSetFoodParam(); break;
  263. case 30: break;
  264. }
  265. }
  266. function fSetDrugParam(param) {
  267. if(param == 10) model.setValue("/root/temp/cond/gridflag", "A"); //allergy
  268. else model.setValue("/root/temp/cond/gridflag", "D"); //adr
  269. // model.setValue("/root/temp/reqdata/send/receiveref", "/root/temp/receivedata/receiveref");
  270. model.makeValue("/root/temp/reqdata/send/receiveref", "/root/temp/receivedata/receiveref");
  271. model.makeValue("/root/temp/reqdata/send/receivedrugpnm", "/root/temp/receivedata/receivedrugpnm");
  272. model.makeValue("/root/temp/reqdata/send/receivedrugflag", "/root/temp/receivedata/receivedrugflag");
  273. model.makeValue("/root/temp/reqdata/send/receivedrugcom", "/root/temp/receivedata/receivedrugcom");
  274. modal("SPMMD03400",0,100,150,"SPMMD03400","/root/temp/reqdata/send","/root/temp/receivedata");
  275. // modal("SPMMD03400",0,100,150,"SPMMD03400","/root/temp/reqdata/send/receiveref","/root/temp/receivedata/receiveref");
  276. if( instance1.selectSingleNode("/root/temp/receivedata/receiveref") ){
  277. if( !isNull(model.getValue("/root/temp/receivedata/receiveref")) ){
  278. var drugcd = model.getValue("/root/temp/receivedata/receiveref");
  279. //model.removeNodeset("/root/send/reqdata");
  280. if (model.getValue("/root/temp/receivedata/receivedrugflag") == "" ) {
  281. model.setValue("/root/temp/receivedata/receivedrugflag", "C");
  282. }
  283. if (model.getValue("/root/temp/receivedata/receivedrugflag") == "C") {
  284. model.makeValue("/root/send/reqdata/drugcd", drugcd);
  285. submit("TRASB01402");
  286. //onbuttonclick 이벤트일경우는 update flag가 setting 안됨 --> 강제로 설정
  287. if(model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugnm") != model.getValue("/root/hidden/resultref/info/hngnm")) {
  288. grd_adrlist.addStatus(grd_adrlist.row, "update");
  289. }
  290. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugcd", drugcd);
  291. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugnm", model.getValue("/root/hidden/resultref/info/hngnm"));
  292. model.makeValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/comflag", model.getValue("/root/temp/receivedata/receivedrugflag"));
  293. model.refresh();
  294. } else {
  295. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugcd", model.getValue("/root/temp/receivedata/receiveref"));
  296. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugnm", model.getValue("/root/temp/receivedata/receivedrugpnm"));
  297. model.makeValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/comflag", model.getValue("/root/temp/receivedata/receivedrugflag"));
  298. model.refresh();
  299. }
  300. }
  301. }
  302. }
  303. function fSetFoodParam() {
  304. modal("SPMMD03200",0,100,150,"SPMMD03200");
  305. if(model.getValue("/root/main/foodlists/foodlist/clsnm") !="") {
  306. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/drugnm", model.getValue("/root/main/foodlists/foodlist/clsnm"));
  307. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/drugcd", model.getValue("/root/main/foodlists/foodlist/clscd"));
  308. }
  309. //onbuttonclick 이벤트일경우는 update flag가 setting 안됨 --> 강제로 설정
  310. if(model.getValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/drugnm") != model.getValue("/root/hidden/allergylists/allergylist["+grd_allergylist.row+"]/drugnm")) {
  311. grd_allergylist.addStatus(grd_allergylist.row, "update");
  312. }
  313. if(model.getValue("/root/main/foodlists/foodlist/clscd") == "13") {
  314. grd_allergylist.editCell();
  315. }
  316. }
  317. function fSetAntibioComcd(){
  318. //kimsj ?? 체크필요
  319. var strCSV = getParameter("saveparam");
  320. setCSVToNode("/root/main/paramlist", strCSV, "info");
  321. var nodeList1 = instance1.selectNodes("/root/main/paramlist/info/comcd");
  322. var nodeList2= instance1.selectNodes("/root/main/paramlist/info/comnm");
  323. var paramCnt = nodeList1.length;
  324. if(paramCnt > 0){
  325. for(var i=0; i<nodeList1.length; i++){
  326. var comCd = nodeList1.item(i).value;
  327. var comNm = nodeList2.item(i).value;
  328. if( model.getValue("/root/temp/cond/gridflag") == "A") {
  329. var nodeListRecomm = instance1.selectNodes("/root/main/allergylists/allergylist[drugcd = '"+comCd+"']/comnm");
  330. if ( nodeListRecomm != null && nodeListRecomm.length > 0 ){
  331. continue;
  332. }
  333. model.setValue("/root/main/allergylists/allergylist["+ grd_allergylist.mouseRow + "]/drugcd", comCd);
  334. model.setValue("/root/main/allergylists/allergylist["+ grd_allergylist.mouseRow +"]/drugnm", comNm);
  335. } else if( model.getValue("/root/temp/cond/gridflag") == "D") {
  336. var nodeListRecomm = instance1.selectNodes("/root/main/adrlists/adrlist[drugcd = '"+comCd+"']/comnm");
  337. if ( nodeListRecomm != null && nodeListRecomm.length > 0 ){
  338. continue;
  339. }
  340. model.setValue("/root/main/adrlists/adrlist["+ grd_adrlist.mouseRow + "]/drugcd", comCd);
  341. model.setValue("/root/main/adrlists/adrlist["+ grd_adrlist.mouseRow +"]/drugnm", comNm);
  342. }
  343. }
  344. }
  345. model.removeNodeset("/root/main/paramlist");
  346. model.makeNode("/root/main/paramlist");
  347. clearParameter("saveparam");
  348. }
  349. // 등록자와 의사만 수정/삭제 권한 있음 . 체크로직 추가 필요 getUserInfo("jobkindnm") getUserInfo("jobkindcd") = 0330
  350. function fCheckAuthority() {
  351. var rgster = model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/rgstrnm" );
  352. var rgstrid = model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/rgstrid" );
  353. var userName = getUserInfo("usernm");
  354. var userid = getUserId();
  355. var jobKind = getUserInfo("jobkindcd");
  356. var drChkFlag = fGetHardCDList("1");
  357. if ( drChkFlag =="true" || rgstrid == userid) {
  358. return true;
  359. } else {
  360. messageBox("의사나 입력자 본인외에는 수정/삭제", "E001");
  361. return false;
  362. }
  363. //return true
  364. }
  365. function fInputAdr(opt) {
  366. /*if (model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/clsflag") == "A" ) {
  367. messageBox("과거력은 상세내역이 없습니다", "I");
  368. } else { }
  369. */
  370. if (opt == "D" ){
  371. if (model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/clsflag") == "A" || model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/editable") == "F") {
  372. messageBox("ADR회신 대상에 해당되지 않습니다", "I");
  373. } else {
  374. if (model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/clsflag") == "C" ){
  375. model.removeNodeset("/root/temp/cnstinfo");
  376. model.makeNode("/root/temp/cnstinfo");
  377. model.copyNode("/root/temp/cnstinfo", "/root/main/adrlists/adrlist["+grd_adrlist.row+"]");
  378. modal("SPADC62200", 1, 0, 0 ,"SPADC62200", "/root/temp/cnstinfo", "/root/temp/cnstinfo");
  379. }
  380. }
  381. } else {
  382. modal("SPADC60900",0,100,150,"SPADC60900");
  383. fInitialize();
  384. }
  385. //alert("ADR 입력 화면이 개발되지 않았습니다.");
  386. }
  387. function fInputCmt() {
  388. //model.setValue("/root/temp/reqdata/send/receiveref", "/root/temp/receivedata/receiveref");
  389. //modal("SPMMD03400",0,100,150,"SPMMD03400","/root/temp/reqdata/send/receiveref","/root/temp/receivedata/receiveref");
  390. modal("SPMMD03600",0,100,150,"SPMMD03600","","/root/temp/receivedata/receivecmt");
  391. if( !isNull(model.getValue("/root/temp/receivedata/receivecmt")) ){
  392. var cmt = model.getValue("/root/temp/receivedata/receivecmt");
  393. if(model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/cmt") != cmt) {
  394. grd_adrlist.addStatus(grd_adrlist.row, "update");
  395. }
  396. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/cmt", cmt);
  397. }
  398. }
  399. ]]>
  400. </script>
  401. </xhtml:head>
  402. <xhtml:body pagewidth="830" pageheight="820" style="margin-left:8; margin-right:8; ">
  403. <group id="grp_tle" style="left:0px; top:0px; width:800px; height:13px; ">
  404. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:145px; height:14px; ">Allergy관리</caption>
  405. </group>
  406. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:800px; height:742px; ">
  407. <line id="line1" class="line_1" style="x1:0px; y1:26px; x2:800px; y2:26px; "/>
  408. <datagrid id="grd_adrlist" nodeset="/root/main/adrlists/adrlist" caption="inptflag^pkval^cretno^clscd^cd^원인약물^증상^인과관계 ^심각도 ^회신내용^발생일^등록자^진료과코드^진료과^분류^비고^상태" colsep="^" colwidth="0, 0, 0, 0, 0, 105, 130, 110, 93, 54, 85, 60, 0, 75, 64, 58, 0, 100, 100" dataheight="25" defaultrows="0" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="35" rowsep="|" tooltip="true" style="left:0px; top:31px; width:800px; height:214px; ">
  409. <col ref="inptflag"/>
  410. <col ref="pkval"/>
  411. <col ref="cretno"/>
  412. <col ref="clscd"/>
  413. <col ref="drugcd"/>
  414. <col editable="false" ref="drugnm" type="inputbutton"/>
  415. <col ref="symp" type="input"/>
  416. <col class="gridcombo" disabled="true" ref="casrslt" type="combo">
  417. <choices>
  418. <item>
  419. <label>Certain(확실함)</label>
  420. <value>CT</value>
  421. </item>
  422. <item>
  423. <label>Probable(상당히 확실함)</label>
  424. <value>PB</value>
  425. </item>
  426. <item>
  427. <label>Possible(가능함)</label>
  428. <value>PL</value>
  429. </item>
  430. <item>
  431. <label>unlikely(가능성적음)</label>
  432. <value>UL</value>
  433. </item>
  434. <item>
  435. <label>Conditional(평가곤란)</label>
  436. <value>CD</value>
  437. </item>
  438. <item>
  439. <label>Unassessible(평가불가)</label>
  440. <value>UA</value>
  441. </item>
  442. </choices>
  443. </col>
  444. <col class="gridcombo" ref="severity" type="combo">
  445. <choices>
  446. <!-- <item>
  447. <label>-</label>
  448. <value>-</value>
  449. </item>-->
  450. <item>
  451. <label>serious</label>
  452. <value>S</value>
  453. </item>
  454. <item>
  455. <label>non-serious</label>
  456. <value>N</value>
  457. </item>
  458. </choices>
  459. </col>
  460. <col ref="detailinfo" type="inputbutton"/>
  461. <col ref="sympmnftdd" type="inputdate"/>
  462. <col ref="rgstrnm"/>
  463. <col ref="orddeptcd"/>
  464. <col disabled="true" ref="orddeptnm"/>
  465. <col class="gridcombo" disabled="true" ref="clsflag" type="combo">
  466. <choices>
  467. <item>
  468. <label>과거력</label>
  469. <value>A</value>
  470. </item>
  471. <item>
  472. <label>평가중</label>
  473. <value>B</value>
  474. </item>
  475. <item>
  476. <label>평가완료</label>
  477. <value>C</value>
  478. </item>
  479. </choices>
  480. </col>
  481. <col disabled="true" ref="cmt" type="input"/>
  482. <col disabled="true" ref="comflag" type="input"/>
  483. <col disabled="true" ref="formrecseq" type="input" visibility="hidden"/>
  484. <col disabled="true" ref="pid" type="input" visibility="hidden"/>
  485. <script type="javascript" ev:event="onaftersort">
  486. <![CDATA[
  487. grd_adrlist.gridToInstance();
  488. ]]>
  489. </script>
  490. <script type="javascript" ev:event="onbuttonclick">
  491. <![CDATA[
  492. if ( grd_adrlist.col == grd_adrlist.colref("drugnm")) { // 원인약물
  493. fSetDrugParam('10');
  494. } else if(grd_adrlist.col == grd_adrlist.colref("detailinfo")){ // 상세
  495. fInputAdr('D');
  496. }
  497. ]]>
  498. </script>
  499. <script type="javascript" ev:event="onkeypress">
  500. <![CDATA[
  501. if ( event.keycode == 13) {
  502. //fSetADRGridLoad();
  503. }
  504. ]]>
  505. </script>
  506. </datagrid>
  507. <!--datagrid id="grd_adrlist" nodeset="/root/main/adrlists/adrlist" caption="m^pid^inptflag^pkval^cretno^clscd^cd^원인약물^증상^인과관계^상세^발생일^등록자^진료과^분류^비고" colsep="^" colwidth="0,0,0,0,0, 0, 0, 109, 136, 136, 31, 92, 79, 75, 64, 58" dataheight="25" defaultrows="0" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" style="left:0px; top:31px; width:800px; height:214px; ">
  508. <col ref="m"/><col ref="pid"/><col ref="inptflag"/><col ref="pkval"/><col ref="cretno"/>
  509. <col ref="clscd"/>
  510. <col ref="drugcd"/>
  511. <col ref="drugnm" type="inputbutton"/>
  512. <col ref="symp" type="input"/>
  513. <col class="gridcombo" ref="casrslt" type="combo">
  514. <choices>
  515. <item>
  516. <label>Certain(90%)</label>
  517. <value>CT</value>
  518. </item>
  519. <item>
  520. <label>Conditional(평가곤란)</label>
  521. <value>CD</value>
  522. </item>
  523. </choices>
  524. </col>
  525. <col type="inputbutton"/>
  526. <col ref="sympmnftdd" type="inputdate"/>
  527. <col ref="rgstrnm"/>
  528. <col disabled="true" ref="orddeptnm"/>
  529. <col class="gridcombo" ref="clsflag" type="combo">
  530. <choices>
  531. <item>
  532. <label>과거력</label>
  533. <value>A</value>
  534. </item>
  535. <item>
  536. <label>평가중</label>
  537. <value>B</value>
  538. </item>
  539. <item>
  540. <label>평가완료</label>
  541. <value>C</value>
  542. </item>
  543. </choices>
  544. </col>
  545. <col ref="comment" type="input"/>
  546. <script type="javascript" ev:event="onaftersort">
  547. <![CDATA[
  548. grd_adrlist.gridToInstance();
  549. ]]>
  550. </script>
  551. <script type="javascript" ev:event="onbuttonclick">
  552. <![CDATA[
  553. if ( grd_adrlist.col == grd_adrlist.colref("drugnm")) { // 원인약물
  554. fSetDrugParam('10');
  555. } else { // 상세
  556. }
  557. ]]>
  558. </script>
  559. <script type="javascript" ev:event="onkeypress">
  560. <![CDATA[
  561. if ( event.keycode == 13) {
  562. //fSetADRGridLoad();
  563. }
  564. ]]>
  565. </script>
  566. </datagrid-->
  567. <line id="line6" class="line_1" style="x1:0px; y1:273px; x2:800px; y2:273px; "/>
  568. <caption id="caption12" class="tit_2" style="left:0px; top:258px; width:136px; height:13px; ">Skin test 결과</caption>
  569. <datagrid id="grd_astlist" nodeset="/root/main/astlists/astlist" caption="대상약물^결과^등록일^등록자^결과확정자" colsep="^" colwidth="255, 258, 95, 85, 85" dataheight="25" defaultrows="0" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" tooltip="true" style="left:0px; top:278px; width:800px; height:214px; ">
  570. <col ref="drugnm"/>
  571. <col ref="result"/>
  572. <col ref="rgstdt" format="yyyy-mm-dd"/>
  573. <col ref="rgster"/>
  574. <col ref="rsltconfirmer"/>
  575. <script type="javascript" ev:event="onaftersort">
  576. <![CDATA[
  577. grd_astlist.gridToInstance();
  578. ]]>
  579. </script>
  580. </datagrid>
  581. <caption id="importcaption1" class="tit_2" style="left:0px; top:11px; width:180px; height:13px; ">약물유해반응(ADR)</caption>
  582. <caption id="importcaption2" class="tit_2" style="left:0px; top:505px; width:185px; height:13px; ">음식 및 기타 Allergy반응</caption>
  583. <line id="importline1" class="line_1" style="x1:0px; y1:520px; x2:800px; y2:520px; "/>
  584. <datagrid id="grd_allergylist" nodeset="/root/main/allergylists/allergylist" caption="수정가능여부^cd^분류^증상^등록일^등록자^cretno" colsep="^" colwidth="0, 0, 101, 450, 108, 119, 0" dataheight="25" defaultrows="0" ellipsis="true" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" style="left:0px; top:525px; width:800px; height:214px; ">
  585. <col ref="editable"/>
  586. <!--col class="gridcombo" ref="clscd" type="combo">
  587. <choices>
  588. <itemset nodeset="/root/init/M0090list/M0090">
  589. <label ref="cdnm"/>
  590. <value ref="cdid"/>
  591. </itemset>
  592. </choices>
  593. </col>
  594. <col class="gridcombo" ref="hosoutyn" type="combo">
  595. <choices>
  596. <item>
  597. <label>원외약</label>
  598. <value>Y</value>
  599. </item>
  600. <item>
  601. <label>원내약</label>
  602. <value>N</value>
  603. </item>
  604. </choices>
  605. </col>
  606. <script type="javascript" ev:event="xforms-value-changed">
  607. <![CDATA[
  608. var clscd=model.getValue("/root/main/allergylists/allergylist["+ grd_allergylist.row +"]/clscd");
  609. var hosoutyn=model.getValue("/root/main/allergylists/allergylist["+ grd_allergylist.row +"]/hosoutyn");
  610. if( grd_allergylist.col==2 ) {
  611. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/hosoutyn", "");
  612. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/comclscd", "");
  613. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/drugcd", "");
  614. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/drugnm", "");
  615. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/symp", "");
  616. if(clscd == '03'){ // 분류가 약물일때 원외약여부,추정계열 선택가능.
  617. grd_allergylist.isReadOnly(grd_allergylist.row, 3) = false;
  618. grd_allergylist.isReadOnly(grd_allergylist.row, 4) = false;
  619. } else {
  620. grd_allergylist.isReadOnly(grd_allergylist.row, 3) = true;
  621. grd_allergylist.isReadOnly(grd_allergylist.row, 4) = true;
  622. }
  623. }
  624. /*
  625. if( grd_allergylist.col==3 ) {
  626. if(hosoutyn == 'Y'){ // 원외약여부가 원외약(Y)일때
  627. grd_allergylist.editCell();
  628. }
  629. }
  630. */
  631. ]]>
  632. </script>
  633. <col id="cmb_comclscd" class="gridcombo" ref="comclscd" type="combo">
  634. <choices>
  635. <itemset nodeset="/root/init/M0423list/M0423">
  636. <label ref="cdnm"/>
  637. <value ref="cdid"/>
  638. </itemset>
  639. </choices>
  640. </col-->
  641. <col ref="drugcd" visibility="hidden"/>
  642. <!--col ref="drugnm" type="inputbutton"/-->
  643. <col class="gridcombo" ref="clscd" type="combo">
  644. <choices>
  645. <itemset nodeset="/root/init/M0090list/M0090">
  646. <label ref="cdnm"/>
  647. <value ref="cdid"/>
  648. </itemset>
  649. </choices>
  650. </col>
  651. <col ref="symp" type="input"/>
  652. <col ref="rgstdt" type="input" format="yyyy-mm-dd"/>
  653. <col ref="rgster"/>
  654. <col ref="cretno"/>
  655. <script type="javascript" ev:event="onaftersort">
  656. <![CDATA[
  657. grd_allergylist.gridToInstance();
  658. ]]>
  659. </script>
  660. <!--script type="javascript" ev:event="onbuttonclick">
  661. <![CDATA[
  662. var clscd=model.getValue("/root/main/allergylists/allergylist["+ grd_allergylist.row +"]/clscd");
  663. var param="";
  664. if( clscd== "03") param=10;
  665. else if(clscd== "01") param=20;
  666. else if(clscd== "02" || clscd== "04" || clscd== "05") param=30;
  667. if( grd_allergylist.col==3 ) {
  668. fSetModalParam(param);
  669. }
  670. ]]>
  671. </script-->
  672. <script type="javascript" ev:event="onkeypress">
  673. <![CDATA[
  674. if ( event.keycode == 13) {
  675. //fSetAllergyGridLoad();
  676. }
  677. ]]>
  678. </script>
  679. </datagrid>
  680. <button id="btn_del" class="btn2_letter2" visibility="visible" style="left:712px; top:500px; width:42px; height:19px; ">
  681. <caption>삭제</caption>
  682. <script type="javascript" ev:event="DOMActivate">
  683. <![CDATA[
  684. var iRow = grd_allergylist.row - grd_allergylist.fixedRows + 1;
  685. if(iRow < 1){
  686. return;
  687. } else {
  688. //삭제저장 status 설정 2008.07.07 정연우
  689. model.makeValue("/root/main/cond/status", "d");
  690. model.makeValue("/root/main/cond/pid", model.getValue("/root/init/cond/pid"));
  691. model.makeValue("/root/main/cond/cretno", model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/cretno"));
  692. model.makeNode("/root/send/savedata");
  693. model.copyNode("/root/send/savedata", "/root/main/cond");
  694. //삭제저장 status 설정 2008.07.07 정연우
  695. grd_allergylist.deleteItem(grd_allergylist.row);
  696. }
  697. ]]>
  698. </script>
  699. </button>
  700. <button id="btn_add" class="btn2_letter2" visibility="visible" style="left:667px; top:500px; width:42px; height:19px; ">
  701. <caption>입력</caption>
  702. <script type="javascript" ev:event="DOMActivate">
  703. <![CDATA[
  704. //grd_allergylist.insertRow(0);
  705. grd_allergylist.addItem();
  706. //model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/hosoutyn" , "N");
  707. var node = instance1.selectSingleNode("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/clscd");
  708. if( node != null && isNull(node.value)){
  709. model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/rgstdt", getCurrentDate());
  710. //model.setValue("/root/main/allergylists/allergylist["+grd_allergylist.row+"]/rgster", getUserName());
  711. }
  712. //신규저장 status 설정
  713. model.makeValue("/root/main/cond/status", "i");
  714. model.makeValue("/root/main/cond/pid", model.getValue("/root/init/cond/pid"));
  715. model.makeValue("/root/main/cond/cretno", model.getValue("/root/init/cond/cretno"));
  716. model.makeNode("/root/send/savedata");
  717. model.copyNode("/root/send/savedata", "/root/main/cond");
  718. ]]>
  719. </script>
  720. </button>
  721. <button id="button1" class="btn5_letter2" visibility="visible" style="left:757px; top:500px; width:42px; height:19px; ">
  722. <caption>저장</caption>
  723. <script type="javascript" ev:event="DOMActivate">
  724. <![CDATA[
  725. /*
  726. var nodeList = instance1.selectNodes("/root/main/allergylists/allergylist");
  727. for(var i=1; i<=nodeList.length; i++){
  728. var node = nodeList.item(i-1);
  729. var clscd = node.selectSingleNode("clscd"); //분류
  730. var symp = node.selectSingleNode("symp"); //증상
  731. var comclscd = node.selectSingleNode("comclscd"); //추정계열
  732. var drugnm = node.selectSingleNode("drugnm"); //추정약물
  733. if( grd_allergylist.rowStatus(i) == 1 || grd_allergylist.rowStatus(i) == 2 || grd_allergylist.rowStatus(i) == 3 ) {
  734. if(clscd.text == ""){
  735. messageBox("분류는", "I003");
  736. return;
  737. }
  738. if(symp.text == ""){
  739. messageBox("증상은", "I003");
  740. return;
  741. }
  742. if(comclscd.text == "" && drugnm.text == ""){
  743. messageBox("추정계열 또는 추정약물/음식/기타는", "I003");
  744. return;
  745. }
  746. }
  747. }
  748. */
  749. // var pid=getPatientId();
  750. if ( vOpener == "N") var pid = getPatientId();
  751. else var pid = opener.javascript.getParameter("SPMMD03300_pid");
  752. if( (pid == null) || (pid == "")) {
  753. messageBox("환자정보가", "I004");
  754. return;
  755. }
  756. var nodeList = instance1.selectNodes("/root/main/allergylists/allergylist");
  757. for(var i=1; i<=nodeList.length; i++){
  758. var rgster = model.getValue("/root/main/allergylists/allergylist["+i+"]/rgster" );
  759. var userName = getUserName();
  760. if (grd_allergylist.rowStatus(i) == "2" && rgster != userName ) {
  761. messageBox("입력자 본인외에는 수정", "E001");
  762. return;
  763. }
  764. }
  765. for(var i=1; i<=getNodesetCount("/root/main/allergylists/allergylist"); i++) {
  766. var sDrugnm = model.getValue("/root/main/allergylists/allergylist["+i+"]/clscd" );
  767. if(sDrugnm == ""){
  768. messageBox("분류는", "I003");
  769. return;
  770. }
  771. }
  772. model.makeValue("/root/init/cond/drcnfmyn", 'N');
  773. model.copyNode("/root/send/savedata", "/root/init/cond");
  774. model.makeValue("/root/send/savedata/data1",grd_allergylist.getUpdateData());
  775. if(submit("TXMMD03101")) {
  776. if(submit("TXMMD03103")){ //Allergy 의사 확인 여부 입력
  777. submit("TRMMD03101");
  778. submit("TRMMD03103");
  779. }
  780. }
  781. fchkDrConfm();
  782. //상단설정정보
  783. if(submit("TRMMD03104")) {
  784. var sAYN = model.getValue("/root/main/allergyinfo/info/existyn");
  785. // 배성미 선생님 요청 Allergy|ADR 구분이 애매하므로 구분없이 무조건 불들어오도록 수정
  786. // reqGetAlgyDispUpInfo 의 데이터가 pid|Y^N 으로 들어와도 둘다 불들어오도록 pid|Y^Y 로 수정
  787. // AlgyMngtImpl.java 의 reqGetAlgyDispUpInfo 에서
  788. // getVO.set("existyn", reqVO.getString("pid") + "|" +algyVO.getString("existyn") + "^" +algyVO.getString("existyn") 로
  789. // 가져올수 있으나 타화면에서 사용할 가능성 있으므로 스크립트에서 처리
  790. // 차후 다시 구분을 원할경우 아래 부분 삭제할것 2008.07.15 정연우
  791. var sAYNArray = sAYN.split("|");
  792. var sAYNArray2 = sAYNArray[1].split("^");
  793. if(sAYNArray2[0] == "Y" || sAYNArray2[1] == "Y"){ sAYN = sAYNArray[0] + "|Y^Y";}
  794. // 여기까지
  795. if ( vOpener == "N") setPatientInfo("allergy", sAYN);
  796. }
  797. model.removeNodeset("/root/send/savedata");
  798. model.makeNode("/root/send/savedata");
  799. model.copyNode("/root/send/savedata", "/root/main/cond");
  800. //fSetAllergyGridLoad();
  801. //fSetADRGridLoad();
  802. ]]>
  803. </script>
  804. </button>
  805. <button id="button2" class="btn2_letter5" visibility="visible" style="left:587px; top:6px; width:75px; height:19px; ">
  806. <caption>부작용신고</caption>
  807. <script type="javascript" ev:event="DOMActivate">
  808. <![CDATA[
  809. // var temp = messageBox("과거력을 입력", "S003", "ADR을 입력");
  810. var temp = messageBox("과거력을 입력 하시려면 예(Y), \nADR 의뢰를 하시려면 아니오(N)를 선택하십시오. \n\n◈ 과거력 (Y) : 문진으로 확인한 사항 입력 \n◈ ADR 의뢰 (N) : 현 증상과 약물유해반응의 인과관계평가 의뢰", "S");
  811. if(temp == 6){
  812. //grd_allergylist.insertRow(0);
  813. grd_adrlist.addItem();
  814. var node = instance1.selectSingleNode("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/drugcd");
  815. if( node != null && isNull(node.value)){
  816. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/sympmnftdd", getCurrentDate());
  817. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/clscd", "03");
  818. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/casrslt", "PL"); //20100722 과거력 입력시 DEFAULT(possible)
  819. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/severity", "S"); //20100722 과거력 입력시 DEFAULT(serious)
  820. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/clsflag", "A");
  821. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/rgstrnm", getUserName());
  822. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/orddeptcd", getPatientInfoDetail("orddeptcd"));
  823. model.setValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/orddeptnm", getPatientInfo("orddept"));
  824. grd_adrlist.isReadOnly(grd_adrlist.row, grd_adrlist.colRef("rgstrnm")) = true; //11 등록자
  825. }
  826. //신규저장 status 설정
  827. model.makeValue("/root/main/cond/status", "i");
  828. model.makeValue("/root/main/cond/pid", model.getValue("/root/init/cond/pid"));
  829. model.makeValue("/root/main/cond/cretno", model.getValue("/root/init/cond/cretno"));
  830. model.makeNode("/root/send/savedata");
  831. model.copyNode("/root/send/savedata", "/root/main/cond");
  832. } else if(temp == 7){
  833. fInputAdr();
  834. } else { // temp == 2 (취소)
  835. return;
  836. }
  837. ]]>
  838. </script>
  839. </button>
  840. <button id="button3" class="btn2_letter2" visibility="visible" style="left:712px; top:6px; width:42px; height:19px; ">
  841. <caption>삭제</caption>
  842. <script type="javascript" ev:event="DOMActivate">
  843. <![CDATA[
  844. var sRows = grd_adrlist.selectedRows;
  845. if (sRows == 0) {
  846. messageBox("삭제할 행을","C002")
  847. } else {
  848. if( fCheckAuthority()) { // 권한 체크
  849. var inptflagStr = (model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/inptflag"));
  850. if (inptflagStr == '01'){ // Allergy일때 그냥 삭제
  851. var iRow = grd_adrlist.row - grd_adrlist.fixedRows + 1;
  852. if(iRow < 1){
  853. return;
  854. } else {
  855. //삭제저장 status 설정 2008.07.07 정연우
  856. model.makeValue("/root/main/cond/status", "d");
  857. model.makeValue("/root/main/cond/pid", model.getValue("/root/init/cond/pid"));
  858. model.makeValue("/root/main/cond/cretno", model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/cretno"));
  859. model.makeNode("/root/send/savedata");
  860. model.copyNode("/root/send/savedata", "/root/main/cond");
  861. //삭제저장 status 설정 2008.07.07 정연우
  862. //grd_adrlist.deleteItem(grd_adrlist.row);
  863. grd_adrlist.rowStatus(grd_adrlist.row) = 4;
  864. grd_adrlist.refresh();
  865. }
  866. } else if (inptflagStr == '02'){ // 조영제
  867. var approYn = "Y"; // 테스트용
  868. if(approYn = "Y") {
  869. // 승인전일경우 ADR화면 팝업
  870. fInputAdr();
  871. } else {
  872. // 승인후일경우 수정/삭제 요청 사유 입력창 팝업(비고에 입력)
  873. fInputCmt();
  874. }
  875. } else if (inptflagStr == '04'){ // ADR
  876. fInputAdr();
  877. } else { // '03' 간호정보조사지
  878. //alert("간호정보조사지");
  879. }
  880. } else {
  881. return;
  882. }
  883. }
  884. ]]>
  885. </script>
  886. </button>
  887. <button id="button4" class="btn5_letter2" visibility="visible" style="left:757px; top:6px; width:42px; height:19px; ">
  888. <caption>저장</caption>
  889. <script type="javascript" ev:event="DOMActivate">
  890. <![CDATA[
  891. if ( vOpener == "N") var pid = getPatientId();
  892. else var pid = opener.javascript.getParameter("SPMMD03300_pid");
  893. if( (pid == null) || (pid == "")) {
  894. messageBox("환자정보가", "I004");
  895. return;
  896. }
  897. for(var i=1; i<=getNodesetCount("/root/main/adrlists/adrlist"); i++) {
  898. var sDrugnm = model.getValue("/root/main/adrlists/adrlist["+i+"]/drugnm" );
  899. if(sDrugnm == ""){
  900. messageBox("원인약물은", "I003");
  901. return;
  902. }
  903. }
  904. model.makeValue("/root/init/cond/drcnfmyn", 'N');
  905. model.copyNode("/root/send/savedata", "/root/init/cond");
  906. //model.makeValue("/root/send/savedata/data1", grd_adrlist.getUpdateData());
  907. model.makeValue("/root/send/savedata/data1", grd_adrlist.getUpdateData());
  908. if(submit("TXMMD03101")) {
  909. if(submit("TXMMD03103")){ //Allergy 의사 확인 여부 입력
  910. submit("TRMMD03101");
  911. submit("TRMMD03103");
  912. }
  913. }
  914. fchkDrConfm();
  915. //상단설정정보
  916. //차후 ADR 개발완료후 ADR 에 관한 상단정보설정으로 변경 필요할듯..
  917. if(submit("TRMMD03104")) {
  918. var sAYN = model.getValue("/root/main/allergyinfo/info/existyn");
  919. //alert(sAYN);
  920. // 배성미 선생님 요청. Allergy|ADR 구분이 애매하므로 구분없이 무조건 불들어오도록 수정
  921. // reqGetAlgyDispUpInfo 의 데이터가 pid|Y^N 으로 들어와도 둘다 불들어오도록 pid|Y^Y 로 수정
  922. // AlgyMngtImpl.java 의 reqGetAlgyDispUpInfo 에서
  923. // getVO.set("existyn", reqVO.getString("pid") + "|" +algyVO.getString("existyn") + "^" +algyVO.getString("existyn") 로
  924. // 가져올수 있으나 타화면에서 사용할 가능성 있으므로 스크립트에서 처리
  925. // 차후 다시 구분을 원할경우 아래 부분 삭제할것 2008.07.15 정연우
  926. var sAYNArray = sAYN.split("|");
  927. var sAYNArray2 = sAYNArray[1].split("^");
  928. if(sAYNArray2[0] == "Y" || sAYNArray2[1] == "Y"){ sAYN = sAYNArray[0] + "|Y^Y";}
  929. // 여기까지
  930. if ( vOpener == "N") setPatientInfo("allergy", sAYN);
  931. //setPatientInfo("newallergy", "Y");
  932. }
  933. model.removeNodeset("/root/send/savedata");
  934. model.makeNode("/root/send/savedata");
  935. model.copyNode("/root/send/savedata", "/root/main/cond");
  936. model.refresh();
  937. //fSetAllergyGridLoad();
  938. //fSetADRGridLoad();
  939. ]]>
  940. </script>
  941. </button>
  942. <!--button id="btn_adrins" class="btn2_letter11" style="left:658px; top:6px; width:141px; height:19px; ">
  943. <caption>약물유해반응의뢰서 입력</caption>
  944. <script type="javascript" ev:event="DOMActivate">
  945. <![CDATA[
  946. messageBox("약물유해반응 의뢰서 입력기능이 아직 가동되지", "E007","이상반응 모니터링팀으로 의뢰하시기 바랍니다.(전화:약제팀 1705)");
  947. //modal("SPADC60900",0,100,150,"SPADC60900","/root/temp/receivedata/receiveref","/root/temp/receivedata/receiveref");
  948. ]]>
  949. </script>
  950. </button-->
  951. <line id="importline3" class="line_3" style="x1:0px; y1:246px; x2:800px; y2:246px; "/>
  952. <line id="importline4" class="line_3" style="x1:0px; y1:493px; x2:800px; y2:493px; "/>
  953. <line id="importline5" class="line_3" style="x1:0px; y1:740px; x2:800px; y2:740px; "/>
  954. <datagrid id="grd_food" nodeset="/root/main/foodlists/foodlist" visibility="hidden" caption="식품항목^코드" colsep="^" colwidth="80, 145" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:310px; top:435px; width:263px; height:85px; ">
  955. <col ref="clsnm" style="left:0px; top:23px; width:100px; height:23px; "/>
  956. <col ref="clscd"/>
  957. </datagrid>
  958. <button id="button5" class="btn2_letter2" visibility="hidden" style="left:575px; top:501px; width:42px; height:19px; ">
  959. <caption>삭제</caption>
  960. <script type="javascript" ev:event="DOMActivate">
  961. <![CDATA[
  962. grd_allergylist.addStatus(grd_allergylist.row, "delete");
  963. ]]>
  964. </script>
  965. </button>
  966. <caption id="caption1" class="hand" style="left:134px; top:0px; width:456px; height:26px; font-size:8pt; ">
  967. <![CDATA[아래와 같이 약물유해반응이 보고된 바 있는 환자입니다. 처방시 참고하십시오.
  968. 또한, 약물유해반응이 의심될 시 의뢰서를 입력하여 주시기 바랍니다.]]>
  969. </caption>
  970. <!--caption id="caption2" class="hand" style="left:130px; top:504px; width:271px; height:15px; font-size:8pt; text-align:left; vertical-align:bottom; ">약물명을 모를 시 추정계열을 선택하십시오.</caption-->
  971. <button id="button6" class="btn2_letter2" visibility="visible" style="left:667px; top:6px; width:42px; height:19px; ">
  972. <caption>수정</caption>
  973. <script type="javascript" ev:event="DOMActivate">
  974. <![CDATA[
  975. var sRows = grd_adrlist.selectedRows;
  976. if (sRows == 0) {
  977. messageBox("수정할 행을","C002")
  978. } else {
  979. if (!fCheckAuthority()) return; // 권한 체크
  980. var inptflagStr = (model.getValue("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/inptflag"));
  981. //if (inptflagStr == '01'){ // Allergy일때 항목 수정모드로..
  982. if (inptflagStr == '01' || inptflagStr == '03'){ // 간호정보조사지('03')도 과거력으로 처리
  983. grd_adrlist.isReadOnly(grd_adrlist.row, grd_adrlist.colRef("drugnm")) = false; //6 원인약물
  984. grd_adrlist.isReadOnly(grd_adrlist.row, grd_adrlist.colRef("symp")) = false; //7 증상
  985. grd_adrlist.isReadOnly(grd_adrlist.row, grd_adrlist.colRef("severity")) = false; // 심각도
  986. //model.setFocus("/root/main/adrlists/adrlist["+grd_adrlist.row+"]/symp");
  987. //grd_adrlist.ShowCell(grd_adrlist.row, 7);
  988. } else if (inptflagStr == '02'){ // 조영제
  989. var approYn = "Y"; // 테스트용
  990. if(approYn = "Y") {
  991. // 승인전일경우 ADR화면 팝업
  992. fInputAdr();
  993. } else {
  994. // 승인후일경우 수정/삭제 요청 사유 입력창 팝업(비고에 입력)
  995. fInputCmt();
  996. }
  997. } else if (inptflagStr == '04'){ // ADR
  998. fInputAdr();
  999. } else {
  1000. return;
  1001. }
  1002. }
  1003. ]]>
  1004. </script>
  1005. </button>
  1006. <button id="button7" class="btn2_letter2" style="left:317px; top:33px; width:42px; height:19px; ">
  1007. <caption>설명</caption>
  1008. <script type="javascript" ev:event="DOMActivate">
  1009. <![CDATA[
  1010. open("SPADC62600");
  1011. window.children.item("SPADC62600").btn_cfm.visible = false;
  1012. window.children.item("SPADC62600").grd_whoumc.colHidden(0)= true;
  1013. ]]>
  1014. </script>
  1015. </button>
  1016. <button id="button8" class="btn2_letter2" style="left:413px; top:33px; width:42px; height:19px; ">
  1017. <caption>설명</caption>
  1018. <script type="javascript" ev:event="DOMActivate">
  1019. <![CDATA[
  1020. open("SPADC63000");
  1021. window.children.item("SPADC63000").btn_cfm.visible = false;
  1022. window.children.item("SPADC63000").grd_whoumc.colHidden(0)= true;
  1023. ]]>
  1024. </script>
  1025. </button>
  1026. </group>
  1027. </xhtml:body>
  1028. </xhtml:html>