SPMMO01100_처방상세약.xrw 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>[약]</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <prcp>
  11. <prcplist>
  12. <status/>
  13. <prcpstatcd/>
  14. <prcpclscd/>
  15. <prcpkindcd/>
  16. <prcpcd/>
  17. <prcpnm/>
  18. <prcpvol/>
  19. <prcpvolunitnm/>
  20. <prcpqty/>
  21. <prcpqtyunitnm/>
  22. <prcptims/>
  23. <prcpdayno/>
  24. <drugmthdspccdnm/>
  25. <prcpmixno/>
  26. <payflagcd/>
  27. <prcpdelivefact/>
  28. <hosinhosoutflag/>
  29. <prcpexecdeptcd/>
  30. <prcphopedd/>
  31. <choiordflag/>
  32. <rgstdt/>
  33. <rgstridnm/>
  34. <testrsltunit/>
  35. <testrsltcnts/>
  36. <prcpgenrflag/>
  37. <prcphistcd/>
  38. <tempprcpflag/>
  39. <prcpsetcd/>
  40. <prcpvolunitflag/>
  41. <prcpqtyunitflag/>
  42. <orgprcpqty/>
  43. <drugspd/>
  44. <drugspdunitflag/>
  45. <powdflag/>
  46. <prnprcpflag/>
  47. <prepprcpflag/>
  48. <selfprcpflag/>
  49. <selfdrugflag/>
  50. <drugpackflag/>
  51. <erprcpflag/>
  52. <precureprcpflag/>
  53. <nigtprcpflag/>
  54. <portprcpflag/>
  55. <fixprcpflag/>
  56. <anamneflag/>
  57. <fastprcpflag/>
  58. <erreadflag/>
  59. <prcpdirecflag/>
  60. <tnsuseflag/>
  61. <tnsfiltflag/>
  62. <trnptbftestflag/>
  63. <offictourhealexamflag/>
  64. <stemcellflag/>
  65. <angioflagcd/>
  66. <opansflagcd/>
  67. <ansttm/>
  68. <mealcalrcnts/>
  69. <mealprotcnts/>
  70. <mealupdtflag/>
  71. <hosinprcpresncd/>
  72. <etcprcpresncd/>
  73. <drugmthdspccd/>
  74. <issdeptcd/>
  75. <prcpauthflag/>
  76. <prcpinptflag/>
  77. <prcpsignflag/>
  78. <rateprcpflag/>
  79. <prcprefseq/>
  80. <ordreqlnkno/>
  81. <testreqlnkno/>
  82. <prcplnkdd/>
  83. <prcplnkno/>
  84. <oprsrvno/>
  85. <tootfact/>
  86. <clinccmtcnts>2. 기타</clinccmtcnts>
  87. <prcpessninptflag/>
  88. <grupsnglflag/>
  89. <drugrateqty/>
  90. <asttestflag/>
  91. <clincstdyflag/>
  92. <prtlno/>
  93. <clincstdycd/>
  94. <optermcd/>
  95. <prcpflag/>
  96. <hscttempprcpflag/>
  97. <inclprcpcd/>
  98. <inclprcpno/>
  99. <pampkspec/>
  100. <prcppkspec/>
  101. <calcscormastspec/>
  102. <drugmastspec/>
  103. <rateprcpspec/>
  104. <matrsetprcpspec/>
  105. <suppdeptspec/>
  106. <contprcpspec/>
  107. <etclnkspec/>
  108. <srchcondcnts/>
  109. <orgprcpnm/>
  110. <chkcol/>
  111. <hsctdelivepos/>
  112. <hsctlnkno/>
  113. <etcprcpflag/>
  114. <aftcertflag/>
  115. <aftcertdrid/>
  116. <prcpvalidd/>
  117. <insukind/>
  118. <specdrid/>
  119. <anticncrprtlno/>
  120. <anticncrdayno/>
  121. <druglnkno/>
  122. <rehbprcpcurefreqflag/>
  123. <dietprcpgenrflag/>
  124. <irpayflag/>
  125. <irflag/>
  126. <procerdietflag/>
  127. <diagtestconttestintvlflag/>
  128. <drugindependpackflag/>
  129. <diagtestconttestbasetm/>
  130. <diagtestconttestorgtims/>
  131. <ermediscmngtresncd/>
  132. <rehbprcpenddd/>
  133. <matrallsizespecid/>
  134. <rehbprcpcurepartcd/>
  135. <lowdrugresncd/>
  136. <tfdtlcd/>
  137. <dnorreqlnkno/>
  138. <subcretno/>
  139. <exptmthdfact/>
  140. <lowdrugresnetcfact/>
  141. <diagtestconttestcdspec/>
  142. <drgacptflag/>
  143. <drprcpetc1/>
  144. <drprcpetc2/>
  145. <drprcpetc3/>
  146. <drprcpetc4/>
  147. <drprcpetc5/>
  148. <drprcpetc6/>
  149. <drprcpetc7/>
  150. <drprcpetc8/>
  151. <drprcpetc9/>
  152. <drprcpetc10/>
  153. <tempcol1/>
  154. <tempcol2/>
  155. <tempcol3/>
  156. <tempcol4/>
  157. <tempcol5/>
  158. <tempcol6/>
  159. <tempcol7/>
  160. <tempcol8/>
  161. <tempcol9/>
  162. <tempcol10/>
  163. <tempcol11/>
  164. <tempcol12/>
  165. <tempcol13/>
  166. <tempcol14/>
  167. <tempcol15/>
  168. <tempcol16/>
  169. <tempcol17/>
  170. <tempcol18/>
  171. <tempcol19/>
  172. <tempcol20/>
  173. <tempcol21/>
  174. <tempcol22/>
  175. <tempcol23/>
  176. <tempcol24/>
  177. <tempcol25/>
  178. <prnresncd/>
  179. </prcplist>
  180. </prcp>
  181. <temp>
  182. <clinccmtcnts/>
  183. <prnuseyn/>
  184. <prntms/>
  185. <prnresncmt/>
  186. <prnresnnm/>
  187. <prnhardcd/>
  188. <prnprcpresncd/>
  189. <prnterm/>
  190. </temp>
  191. </main>
  192. <init>
  193. <hosinprcpresncd/>
  194. <payflagcd/>
  195. <orddept/>
  196. <bfhosinprcpresncd/>
  197. <drgacptflag/>
  198. </init>
  199. <tmedmthd>
  200. <tmedmthdlist>
  201. <status/>
  202. <abbrnm/>
  203. <mthdcnts/>
  204. <mthdcd/>
  205. <basecnt/>
  206. <adminpath/>
  207. <mealflag/>
  208. <drdirecyn/>
  209. </tmedmthdlist>
  210. </tmedmthd>
  211. <drugcalc>
  212. <prcpvol/>
  213. <prcpqty/>
  214. <prcptims/>
  215. <drprcpetc7/>
  216. <drprcpetc8/>
  217. </drugcalc>
  218. <send>
  219. <cond1/>
  220. <cond2/>
  221. <cond3/>
  222. <cond4/>
  223. <cond5/>
  224. <cond6/>
  225. </send>
  226. <orddept/>
  227. <temp>
  228. <send/>
  229. <patsupkind/>
  230. </temp>
  231. </root>
  232. </instance>
  233. <script type="javascript" ev:event="xforms-model-construct-done">
  234. <![CDATA[
  235. var colHidnValue = grdBaseColHidn("D");
  236. grdBaseColHidn(colHidnValue, "grd_prcplist", 50, "prcpvol", "prcpqty", "drprcpetc7", "drprcpetc8");
  237. //30일 이상의 마약처방인 경우, 사유를 입력할 수 있도록 변경, 2008. 06. 12 오지훈
  238. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  239. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  240. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  241. var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
  242. reqHardCodeInfo("/root/main/temp/prnuseyn", "/root/main/temp/prnuseyn", "173");
  243. model.setValue ( "/root/send/cond1", "172" );
  244. submit("TRMMB16401" );
  245. if ( spcldrug == "M" ) {
  246. rdo_clinccmtcnts.visible = true;
  247. ipt_clinccmtcnts.visible = true;
  248. if(prcpdayno >= 30){ //2.기타인 경우 input box에 clinccmtcnts의 값을 설정
  249. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){
  250. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", "2. 기타");
  251. model.setValue("/root/main/temp/clinccmtcnts", clinccmtcnts);
  252. ipt_clinccmtcnts.disabled = false;
  253. }
  254. }
  255. }else{
  256. rdo_clinccmtcnts.visible = false;
  257. ipt_clinccmtcnts.visible = false;
  258. caption22.attribute("top")= 117;
  259. input1.attribute("top") = 132;
  260. button1.attribute("top") = 155;
  261. button2.attribute("top") = 155;
  262. button3.attribute("top") = 113;
  263. }
  264. //20090115 마정민수정: 내복제-생물학적제제-능동면역약인 경우 접종차수 활성화
  265. if ( model.getValue("/root/main/prcp/prcplist/tempcol2") == "03|08|02" ) {
  266. grd_prcplist.colWidth(7) = "120"
  267. grd_prcplist.colWidth(8) = "192"
  268. radio3.visible = true;
  269. }// 입력된 PRN 처방 사유와 횟수가 있으면 보여주되 하드코드 173번, 화면코드를 구분기준으로 한다. 2010-01-02 by LYJ
  270. if ( (model.getValue("/root/main/prcp/prcplist/prnprcpflag")=="Y" && opener.javascript.getParameter("SPMMO01100_prcp") !="SMMMO00100") || (model.getValue("/root/main/prcp/prcplist/prnprcpflag")=="Y" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" )){
  271. input1.disabled = true;
  272. caption1.visible = true;
  273. caption2.visible = true;
  274. caption3.visible = true;
  275. caption4.visible = true;
  276. input1.visible = true;
  277. input2.visible = true;
  278. input4.visible = true;
  279. input5.visible = true;
  280. combo1.visible = true;
  281. var SPMMO01100_prndetl = opener.javascript.getParameter("SPMMO01100_prndetl");
  282. var SetPrnPrcpDetl = SPMMO01100_prndetl.split("|");
  283. if ( SetPrnPrcpDetl.length >2){
  284. model.setValue("/root/main/temp/prntms", SetPrnPrcpDetl[0]);
  285. model.setValue("/root/main/temp/prnprcpresncd", SetPrnPrcpDetl[1]);
  286. if (SetPrnPrcpDetl[2] != '-'){
  287. model.setValue("/root/main/temp/prnresncmt", SetPrnPrcpDetl[2]);
  288. }
  289. if ( SetPrnPrcpDetl.length >3){
  290. model.setValue("/root/main/temp/prnterm", SetPrnPrcpDetl[3]);
  291. }
  292. }
  293. }
  294. //by sonjy 20091021 수가계산방법 4일때는 일수입력 불가 처리.변경요청번호 : 3667
  295. var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
  296. if( calcmthdcd == "4" ) {
  297. model.setValue(grd_prcplist.nodeset + "/prcpdayno", "1");
  298. grd_prcplist.colDisabled (grd_prcplist.colRef("prcpdayno") ) = true;
  299. }else {
  300. grd_prcplist.colDisabled (grd_prcplist.colRef("prcpdayno") ) = false;
  301. }
  302. model.refresh();
  303. ]]>
  304. </script>
  305. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  306. <submission id="TRMMO01901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/tmedmthd"/>
  307. <submission id="TRZSD00109" mediatype="application/x-www-form-urlencoded" method="post"/>
  308. <submission id="TRMMO00116" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/orddept"/>
  309. <submission id="TRMMO15701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp/send" resultref="/root/temp/patsupkind"/>
  310. <submission id="TRMMB16401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/temp/prnhardcd"/>
  311. <bind id="bind1" ref="/root/main/prcp/prcplist/prcpqty" readonly="../inclprcpno &gt; 0"/>
  312. <bind id="bind2" ref="/root/main/prcp/prcplist/prcpvol" readonly="../inclprcpno &gt; 0"/>
  313. <bind id="bind3" ref="/root/main/prcp/prcplist/prcptims" readonly="../inclprcpno &gt; 0 or ../erprcpflag = 'Y' or ../prnprcpflag = 'Y'"/>
  314. <bind id="bind4" ref="/root/main/prcp/prcplist/prcpdayno" readonly="../inclprcpno &gt; 0"/>
  315. <script type="javascript" ev:event="xforms-ready">
  316. <![CDATA[
  317. //원내, 원외 처방 처리
  318. //1. 외래: /root/main/prcp/prcplist/hosinhosoutflag 값이 O이면 원외
  319. //1.1 처방화면에 원내처방 사유가 있으면 복사시 값을 가져온다.
  320. //1.2 처방 자체에 원내처방 사유가 있으면 적용된다. 단 처방화면에 원내처방 사유가 있을경우 그걸로 적용
  321. //1.3 처방화면에서 원내처방 사유를 적용하면 그걸로 전부 적용된다.
  322. //1.4 처방상세화면에서 원내처방 사유를 적용할 때 그것이 처방화면의 원내처방 사유와 동일할 경우 그걸로 모두 적용한다.
  323. //1.5 원내/원외, 원내처방사유 enable
  324. //2.입원: 원내, 원내처방사유 00
  325. //2.1 원내/원외, 원내처방사유 disable
  326. //3.응급: 입원과 동일하다.
  327. //3.1 원내/원외, 원내처방사유 enable
  328. //4.DSC: 입원과 동일하다.
  329. //4.1 퇴원처방, 퇴원후 외래처방은 원외이다. ( 입원, 응급과 같게 하라고 해서 처리안함 )
  330. //4.2 원내/원외, 원내처방사유 enable
  331. zbcfGetCodeList(new Array("P0323","M0029", "P0506" ),new Array("/root/init/hosinprcpresncd","/root/init/payflagcd","/root/init/drgacptflag"));
  332. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  333. var pParentNode = null;
  334. var node01 = instance1.selectSingleNode("/root/init/hosinprcpresncd/P0323[cdid='01']");
  335. if(node01 != null){
  336. pParentNode = node01.parentNode;
  337. pParentNode.removeChild(node01);
  338. }
  339. //reqHardCodeInfo("/root/main/temp", "/root/main/temp", "172");
  340. //원무에서 화면을 열 경우, 공통코드 조회 이외의 로직은 처리하지 않음 2008. 06. 16 오지훈
  341. var prcppopupflag = opener.javascript.getParameter("prcppopupflag");
  342. if(prcppopupflag == "PAM"){
  343. button1.visible = false; //확인 버튼은 화면에서 사라짐
  344. return;
  345. }
  346. document.title = document.title + "[" + model.getValue("/root/main/prcp/prcplist/prcpcd") + " : " + model.getValue("/root/main/prcp/prcplist/orgprcpnm") + "]";
  347. //zbcfGetDeptCodeList(getUserInfo("dutplceinstcd"), "insuuseyn", "", "/root/init/orddept" , "depthngnm"); //부서코드 콤보 조회
  348. //if(getNodeSetCnt("/root/orddept/dept") >= 2){btn_srchexecdept.disabled = true;}
  349. fPrcpExecDeptSrch();
  350. var hosinhosoutflag = model.getValue("/root/main/prcp/prcplist/hosinhosoutflag");
  351. if ( prcpgenrflag == "O" || prcpgenrflag == "E" || prcpgenrflag == "D" ) { //외래, 응급, DSC 이면 prn처방 disable
  352. if ( opener.model.getValue ( "/root/usge" ) == "prcp" ) {
  353. if ( prcpgenrflag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  354. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("prnprcpflag")) = true;
  355. }
  356. //원내처방사유 변경시 아니오를 선택할 경우 원래값으로 돌아가기 위해 전원내처방사유를 관리한다.
  357. //값은 원내처방사유가 변경될 때마다 같이 변경된다.
  358. model.setValue ( "/root/init/bfhosinprcpresncd", model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ));
  359. }
  360. }
  361. if ( hosinhosoutflag != "O" ) {
  362. if ( prcpgenrflag == "I" ) { // 입원은 원내/원외, 원내처방사유 disable
  363. radio1.disabled = true;
  364. radio2.disabled = true;
  365. grd_prcpdetl2.colDisabled(10) = true;
  366. }
  367. }
  368. model.refresh();
  369. model.setfocus("button1");
  370. ]]>
  371. </script>
  372. <submission id="TRMMB04103" mediatype="application/x-www-form-urlencoded" method="post"/>
  373. </model>
  374. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  375. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  376. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  377. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  378. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  379. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  380. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO00100.js"/>
  381. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  382. <script type="javascript">
  383. <![CDATA[
  384. /**
  385. * @desc : 원외예외사유 setting check
  386. * @author : sonjy 2008-09-12
  387. */
  388. function fChkHosInResnCd(){
  389. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  390. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  391. var drugmastspec = model.getValue( "/root/main/prcp/prcplist/drugmastspec"); //약품정보
  392. var spcldrug = getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ); //마약구분
  393. var selfinjyn = getArrayData ( drugmastspec + "^", 0, 20, "^", "|" ); //자가주사가능여부
  394. //SON0930 약품마스터의 원내외구분이 주사및 환자사유에 우선한다. 배성미 선생님 요청 .
  395. var hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" ); //약품원내외구분
  396. var g3yn =""; //응급 g3여부
  397. if( prcpgenrflag == "E" && opener.model.getValue ( "/root/init/erresn" ) != "G3" && model.getValue( "/root/main/prcp/prcplist/prcpkindcd") == "60") {
  398. g3yn = "N";
  399. }
  400. //입원은 disable 임으로 select 할 이유가 없다.
  401. if ( model.getValue ( "/root/main/prcp/prcplist/hosinhosoutflag" ) == "I") { //원내를 선택하면
  402. if( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "90" ) {
  403. //원외요구시 => by sonjy 20081016
  404. //마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  405. // if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (spcldrug == "M") ||
  406. // (hosinflag == "I") || (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && selfinjyn != "Y" && hosinflag != "O" ) ) { //SON0930
  407. // ){
  408. // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
  409. if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) ||
  410. // (spcldrug == "M") ||
  411. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "M") ||
  412. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "H" ) ||
  413. (hosinflag == "I") ||
  414. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && hosinflag == "I" )) { //SON0930
  415. // ){
  416. messageBox("마약, 주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
  417. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  418. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", model.getValue ( "/root/init/bfhosinprcpresncd" ));
  419. grd_prcpdetl2.rebuild();
  420. return ;
  421. }
  422. //마약, MSET은 원외불가. by sonjy 20080912 end
  423. }
  424. else
  425. if ( hosinprcpresncd != "00" && g3yn == "" ) { //원무에 있는 원내처방 사유 코드가 있다면
  426. //SON0930 약품 원내외 구분 적용.
  427. if( hosinflag == "O" && prcpgenrflag == "O" ) {
  428. messageBox("원외로만 처방이 가능한 약품", "I009");
  429. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  430. model.refresh();
  431. return ;
  432. }
  433. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", hosinprcpresncd );
  434. }
  435. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. start
  436. else {
  437. //SON0930 약품 원내외 구분 적용.
  438. if( hosinflag == "O" && ( prcpgenrflag == "O" || g3yn == "N" ) ) {
  439. messageBox("원외로만 처방이 가능한 약품", "I009");
  440. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  441. model.refresh();
  442. return ;
  443. }
  444. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", getArrayData ( drugmastspec, 0, 12, "^", "|" ) );
  445. }
  446. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = false; //원내처방 사유코드를 입력할 수 있다.
  447. //grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = false;
  448. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. end
  449. } else { //원외를 선택하면
  450. //마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  451. // if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (spcldrug == "M") ||
  452. // (hosinflag == "I") || (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && selfinjyn != "Y" && hosinflag != "O" ) ) { //SON0930
  453. // // ){
  454. // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
  455. if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) ||
  456. // (spcldrug == "M") ||
  457. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "M") ||
  458. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "H" ) ||
  459. (hosinflag == "I") ||
  460. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && hosinflag == "I" )) { //SON0930
  461. // ){
  462. messageBox("마약, 주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
  463. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  464. model.refresh();
  465. return ;
  466. }
  467. //마약, MSET은 원외불가. by sonjy 20080912 end
  468. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  469. model.setValue("/root/main/prcp/prcplist/hosinprcpresncd","00");
  470. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = true; //원내처방 사유코드를 입력할 수는 없다.
  471. }
  472. }
  473. ]]>
  474. </script>
  475. </xhtml:head>
  476. <xhtml:body pagewidth="802" pageheight="220" guideline="1,786;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  477. <caption id="caption22" class="tit_2" style="left:2px; top:108px; width:82px; height:13px; ">전달사항</caption>
  478. <button id="button1" class="btn4_letter2" style="left:670px; top:166px; width:56px; height:22px; ">
  479. <caption>확인</caption>
  480. <script type="javascript" ev:event="onclick">
  481. <![CDATA[
  482. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  483. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  484. //if ( getStringLength (textarea1.value) > 250 ) {
  485. //model.alert( "전달사항에 값을 너무 많이 입력하셨습니다." );
  486. //}
  487. //마약처방인 경우, 사유 전달, 2008. 06. 12 오지훈
  488. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  489. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  490. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  491. if ( spcldrug == "M" && prcpdayno >= 30) {
  492. var clinccmtcnts = rdo_clinccmtcnts.value;
  493. if(clinccmtcnts == "-"){
  494. messageBox("30일 이상의 마약처방 사유를", "C002");
  495. return;
  496. }
  497. if(clinccmtcnts == "2. 기타" && model.getValue("/root/main/temp/clinccmtcnts")==""){
  498. messageBox("30일 이상의 마약처방 사유를", "C001");
  499. return;
  500. }else{
  501. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){ //1. 다음 진료일까지의 기간이 30일 초가 선택
  502. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", model.getValue("/root/main/temp/clinccmtcnts"));
  503. }
  504. }
  505. }
  506. var prcpkindcd = model.getValue ("/root/main/prcp/prcplist/prcpkindcd" ) ;
  507. //외래이고, 원무의 원내사유가 없고, 원내선택하고, 원채처방사유가 없을 경우
  508. if ( prcpgenrflag == "O" &&
  509. model.getValue ("/root/main/prcp/prcplist/hosinhosoutflag" ) == "I" &&
  510. model.getValue ("/root/main/prcp/prcplist/hosinprcpresncd" ) == "00" ) {
  511. messageBox ( "해당 약품의 원내사유가 존재하지 않습니다. 원내로 내시려면 처방화면의 환자원내사유를 선택 ", "I008" );
  512. return;
  513. }
  514. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
  515. model.close();
  516. ]]>
  517. </script>
  518. <script type="javascript" ev:event="onkeydown">
  519. <![CDATA[
  520. if(event.keyCode == "13") {
  521. button1.dispatch("onclick");
  522. }
  523. ]]>
  524. </script>
  525. </button>
  526. <button id="button2" class="btn4_letter2" style="left:729px; top:166px; width:56px; height:22px; ">
  527. <caption>취소</caption>
  528. <script type="javascript" ev:event="onclick">
  529. <![CDATA[
  530. model.close();
  531. ]]>
  532. </script>
  533. </button>
  534. <line id="line7" class="line_1" style="x1:2px; y1:0px; x2:786px; y2:0px; "/>
  535. <datagrid id="grd_prcplist" nodeset="/root/main/prcp/prcplist" caption="1회용량^1회용량^1회용량^1회수량^1회수량^1회수량^횟수^일수^급여^용법^따로포장^접종차수^DRG인정^기왕증" colsep="^" colwidth="50, 50, 50, 50, 50, 50, 50, 50, 80, 220, 60, 0, 60,45" dataheight="23" defaultrows="12" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" style="left:2px; top:5px; width:784px; height:48px; ">
  536. <col imemode="disabled" ref="prcpvol" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  537. <col imemode="disabled" ref="drprcpetc7" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  538. <col ref="prcpvolunitnm" style="text-align:center; "/>
  539. <col imemode="disabled" ref="prcpqty" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  540. <col imemode="disabled" ref="drprcpetc8" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  541. <col ref="prcpqtyunitnm" style="text-align:center; "/>
  542. <col imemode="disabled" ref="prcptims" type="input" format="#,###" style="text-align:center; "/>
  543. <col imemode="disabled" ref="prcpdayno" type="input" format="#,###" style="text-align:center; "/>
  544. <col class="gridcombo" ref="payflagcd" type="combo" style="text-align:center; ">
  545. <choices>
  546. <itemset nodeset="/root/init/payflagcd/M0029">
  547. <label ref="cdnm"/>
  548. <value ref="cdid"/>
  549. </itemset>
  550. </choices>
  551. </col>
  552. <col ref="drugmthdspccdnm" type="DrugMthdSpcCdNm" style="text-align:left; ">
  553. <script type="javascript" ev:event="ondblclick">
  554. <![CDATA[
  555. fPrcpModal ("SPMMO01900", 50, 10);
  556. ]]>
  557. </script>
  558. </col>
  559. <col checkvalue="Y,N" ref="drugindependpackflag" type="checkbox"/>
  560. <col/>
  561. <col class="gridcombo" ref="drgacptflag" type="combo" style="text-align:center; ">
  562. <choices>
  563. <itemset nodeset="/root/init/drgacptflag/P0506">
  564. <label ref="cdnm"/>
  565. <value ref="cdid"/>
  566. </itemset>
  567. </choices>
  568. </col>
  569. <col checkvalue="Y,N" ref="anamneflag" type="checkbox"/>
  570. <script type="javascript" ev:event="xforms-value-changed">
  571. <![CDATA[
  572. if ( grd_prcplist.col == grd_prcplist.colRef("prcpvol")) {
  573. DrugCalc ("prcpvol" , grd_prcplist.row);
  574. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcpqty")) {
  575. DrugCalc ( "prcpqty" , grd_prcplist.row);
  576. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc7")) {
  577. DrugCalc ( "drprcpetc7" , grd_prcplist.row);
  578. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc8")) {
  579. DrugCalc ( "drprcpetc8" , grd_prcplist.row);
  580. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcptims")) {
  581. if ( model.getValue ( prcpNode + "/prcpclscd") == "A2" ) {
  582. DrugCalc ( "prcptims" , grd_prcplist.row);
  583. fBaseMthd(1);
  584. }
  585. } else if (grd_prcplist.col == grd_prcplist.colRef("prcpdayno")) {
  586. //by sonjy 20091019 변경요청번호 : 3667 수가계산구분 4인 약/주사에 대해 일수 1로 고정
  587. var drugmastspec = model.getValue ( prcpNode + "/drugmastspec") ;
  588. var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
  589. if( calcmthdcd == "4" ) {
  590. model.setValue ( prcpNode + "/prcpdayno", "1" );
  591. }
  592. } else if (grd_prcplist.col == grd_prcplist.colRef("anamneflag")) {
  593. var clincstdyflag = grd_prcpdetl2.valueMatrix(1, grd_prcpdetl2.colRef("clincstdyflag"));
  594. if(clincstdyflag == "Y") {
  595. messageBox ( "기왕증은 임상연구와 동시에 선택 할 수", "I004" );
  596. grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag")) = "N";
  597. return;
  598. }
  599. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  600. var anamneflag = grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag"));
  601. if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
  602. if(anamneflag == "Y"){ //기왕증이 Y로 처리된 경우에만 보조유형선택 팝업 open
  603. var pid = opener.model.getValue("/root/paminfo/list/pid");
  604. var indd = opener.model.getValue("/root/paminfo/list/indd");
  605. var subcretno = fGetSubcretno(pid, indd, "anamneflag");
  606. model.setValue("/root/main/prcp/prcplist/subcretno", subcretno);
  607. if(subcretno == "0"){
  608. messageBox ( "환자의 부유형이 없거나 또는 선택되지 않았습니다.", "I999" );
  609. grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag")) = "N";
  610. }
  611. }else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
  612. model.setValue("/root/main/prcp/prcplist/subcretno", "0");
  613. }
  614. } else {
  615. messageBox ( "외래 환자는 기왕증을 선택 할 수", "I004" );
  616. grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag")) = "N";
  617. }
  618. } else if ( grd_prcplist.col == grd_prcplist.colref("drgacptflag")) {
  619. if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "A" ) { // PCA용 약제
  620. messageBox ( "급여구분이 '본인부담'으로 변경 됩니다.", "I" );
  621. model.setValue ( "/root/main/prcp/prcplist/payflagcd", "1" );
  622. } else if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "B" ) { // 미용성형
  623. messageBox ( "급여구분이 '비급여'로 변경 됩니다.", "I" );
  624. model.setValue ( "/root/main/prcp/prcplist/payflagcd", "2" );
  625. }
  626. }
  627. ]]>
  628. </script>
  629. <script type="javascript" ev:event="onstartedit">
  630. <![CDATA[
  631. if ( grd_prcplist.col == grd_prcplist.colRef("prcpvol")) {
  632. bfDrugCalc ( "prcpvol", grd_prcplist.row );
  633. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc7")) {
  634. bfDrugCalc ( "drprcpetc7", grd_prcplist.row );
  635. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcpvol")) {
  636. bfDrugCalc ( "prcpvol", grd_prcplist.row );
  637. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc8")) {
  638. bfDrugCalc ( "drprcpetc8", grd_prcplist.row );
  639. }
  640. ]]>
  641. </script>
  642. </datagrid>
  643. <datagrid id="grd_prcpdetl2" nodeset="/root/main/prcp/prcplist" caption="응급^PRN^Prep^pow^self^선처치^시행부서^임상연구^원내/원외^원내/원외^원내처방사유" colsep="^" colwidth="40, 40, 40, 40, 40, 45, 100, 55, 30, 30, 323" dataheight="23" defaultrows="12" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" selectionmode="free" style="left:2px; top:54px; width:784px; height:48px; ">
  644. <col checkvalue="Y,N" ref="erprcpflag" type="checkbox"/>
  645. <col checkvalue="Y,N" ref="prnprcpflag" type="checkbox"/>
  646. <col checkvalue="Y,N" ref="prepprcpflag" type="checkbox"/>
  647. <col checkvalue="Y,N" ref="powdflag" type="checkbox"/>
  648. <col checkvalue="Y,N" ref="selfdrugflag" type="checkbox"/>
  649. <col checkvalue="Y,N" ref="precureprcpflag" type="checkbox"/>
  650. <col class="gridcombo" checkvalue="Y,N" itemcount="30" ref="prcpexecdeptcd" type="combo">
  651. <choices>
  652. <itemset nodeset="/root/orddept/dept">
  653. <label ref="depthngnm"/>
  654. <value ref="deptcd"/>
  655. </itemset>
  656. </choices>
  657. </col>
  658. <col checkvalue="Y,N" ref="clincstdyflag" type="checkbox"/>
  659. <col/>
  660. <col/>
  661. <col class="gridcombo" disabled="false" ref="hosinprcpresncd" type="combo" style="text-align:left; ">
  662. <choices>
  663. <itemset nodeset="/root/init/hosinprcpresncd/P0323">
  664. <label ref="cdnm"/>
  665. <value ref="cdid"/>
  666. </itemset>
  667. </choices>
  668. </col>
  669. <script type="javascript" ev:event="xforms-value-changed">
  670. <![CDATA[
  671. if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("prnprcpflag")) {
  672. if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) == "Y" ) {
  673. //PRN 체크시 drugmastspec 의 34번째 컬럼으로 그 가능여부를 따져 블로킹 및 사유, 횟수를
  674. //입력받는 팝업을 띄워준다 . 2010-01-02 by LYJ
  675. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  676. var prnl = getArrayData ( drugmastspec, 0, 33, "^", "|" );
  677. if ((prnl == "N" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01100_prcp") =="SPMQP01400") || (prnl == "N" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ) || (prnl == "N" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01100_prcp") =="SMMMB00200")){
  678. messageBox ( "PRN 지정이 불가능한 처방입니다." , "E" );
  679. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" )
  680. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  681. input1.disabled = false;
  682. caption1.visible = false;
  683. caption2.visible = false;
  684. caption3.visible = false;
  685. caption4.visible = false;
  686. input2.visible = false;
  687. input4.visible = false;
  688. input5.visible = false;
  689. combo1.visible = false;
  690. } else if (prnl =="Y"){
  691. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
  692. //20090115 마정민 수정 PRN처방 1회만 되게 수정
  693. if ( model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
  694. messageBox ( "PRN 처방은 1일 최대 3회로 제한합니다." , "E" );
  695. var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
  696. //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
  697. var prcpqty = model.getValue ( "/root/main/prcp/prcplist/prcpqty" );
  698. var prcpvol = model.getValue ( "/root/main/prcp/prcplist/prcpvol" );
  699. if ( prcptims != "0" && model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) {
  700. prcpqty = (eval(prcpqty)*1000/eval(prcptims));
  701. prcpvol = (eval(prcpvol)*1000/eval(prcptims));
  702. model.setValue ( "/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
  703. model.setValue ( "/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
  704. }
  705. model.setValue ( "/root/main/prcp/prcplist/prcptims", "1" );
  706. if ( model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) {
  707. fBaseMthd(1);
  708. }
  709. }
  710. // 하드코드 173번의 적용여부와 CP,항암프로토콜,처방메인의 구분을 위해 화면코드를 가져와 팝업 띄우기 여부를 결정한다. 2010-01-02 by LYJ
  711. if((model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ) || (model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01100_prcp") =="SPMQP01400") || (model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01100_prcp") =="SMMMB00200")) {
  712. var xpt = window.screenleft + 50;
  713. var ypt = window.screenTop + 50;
  714. var coord = getRelativeCoordinate ( xpt, ypt );
  715. var mon = coord[0];
  716. xpt = coord[1];
  717. ypt = coord[2];
  718. modal("SPMMO19200",mon,xpt, ypt, "SPMMO19200", "/root/tmp/prnresncd", "/root/main/prcp/prcplist/prnresncd", "sysmenu:hidden;", false );
  719. var SPMMO19200_prnNum = getParameter("SPMMO19200_prnNum");
  720. var SPMMO19200_resncd = getParameter("SPMMO19200_resncd");
  721. var SPMMO19200_resncmt = getParameter("SPMMO19200_resncmt");
  722. var SPMMO19200_resnnm = getParameter("SPMMO19200_resnnm");
  723. var SPMMO19200_prnTerm = getParameter("SPMMO19200_prnTerm");
  724. var resnyn = getParameter("SPMMO19200_rtn1");
  725. if( resnyn == "N" ){
  726. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" );
  727. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  728. model.setValue ( "/root/main/prcp/prcplist/drprcpetc6", "-" );
  729. input1.disabled = false;
  730. caption1.visible = false;
  731. caption2.visible = false;
  732. caption3.visible = false;
  733. caption4.visible = false;
  734. input2.visible = false;
  735. input4.visible = false;
  736. input5.visible = false;
  737. combo1.visible = false;
  738. }else if(resnyn == "Y") {
  739. var Sprnprcpdtl = SPMMO19200_prnNum + "|" + SPMMO19200_resncd +"|" + SPMMO19200_resncmt + "|" + SPMMO19200_prnTerm;
  740. model.setValue ( "/root/main/prcp/prcplist/drprcpetc6" , Sprnprcpdtl);
  741. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "Y" );
  742. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
  743. if(SPMMO19200_prnTerm == "") {
  744. model.setValue ("/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt );
  745. } else {
  746. model.setValue ("/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt + ", PRN간격 : " + SPMMO19200_prnTerm);
  747. }
  748. model.setValue ( "/root/main/temp/prntms", SPMMO19200_prnNum);
  749. model.setValue ("/root/main/temp/prnterm", SPMMO19200_prnTerm);
  750. model.setValue ( "/root/main/temp/prnresncmt", SPMMO19200_resncmt);
  751. model.setValue( "/root/main/temp/prnprcpresncd", SPMMO19200_resncd);
  752. input1.disabled = true;
  753. caption1.visible = true;
  754. caption2.visible = true;
  755. caption3.visible = true;
  756. caption4.visible = true;
  757. input2.visible = true;
  758. input4.visible = true;
  759. input5.visible = true;
  760. combo1.visible = true;
  761. }
  762. }
  763. }
  764. } else {
  765. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  766. input1.disabled = false;
  767. caption1.visible = false;
  768. caption2.visible = false;
  769. caption3.visible = false;
  770. caption4.visible = false;
  771. input2.visible = false;
  772. input4.visible = false;
  773. input5.visible = false;
  774. combo1.visible = false;
  775. }
  776. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("hosinprcpresncd")) { //원내처방 사유를 선택해서 처방화면의 원내처방 사유랑 같은 것이 있으면 모두 그것으로 바꿈
  777. if ( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "00" ) {
  778. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  779. } else {
  780. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  781. }
  782. if ( opener.model.getValue ( "/root/usge" ) == "prcp" ) {
  783. //약속처방, 지시처방에서는 되면 안됨
  784. var hosinprcpresncd = model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" );
  785. //by sonjy 20081016 원외요구 사유 처리
  786. if( hosinprcpresncd == "90" ){
  787. fChkHosInResnCd();
  788. return ;
  789. }
  790. var openerHosinprcpresncd = opener.model.getValue ( "/root/init/hosinprcpresncd/P0034[cdid='" + hosinprcpresncd + "']/cdid" );
  791. if ( !isNull(openerHosinprcpresncd) && hosinprcpresncd != "00" ) {
  792. if ( messageBox ( "모든 약,주사 처방에 같은 원내처방 사유를", "Q009" ) == "6" ) {
  793. opener.model.setValue ( "/root/init/hosinprcpresncd", openerHosinprcpresncd );
  794. fChngHosinPrcpResn("child", openerHosinprcpresncd);
  795. opener.model.refresh();
  796. } else {
  797. //아니오를 선택할 경우 변경전 데이터로 돌린다.
  798. var bfhosinprcpresncd = model.getValue ( "/root/init/bfhosinprcpresncd" );
  799. if ( bfhosinprcpresncd == "00" ) {
  800. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  801. } else {
  802. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  803. }
  804. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", bfhosinprcpresncd );
  805. grd_prcpdetl2.rebuild();
  806. return;
  807. }
  808. }
  809. model.setValue ( "/root/init/bfhosinprcpresncd", hosinprcpresncd );
  810. }
  811. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("erprcpflag")) {
  812. if ( model.getValue ( "/root/main/prcp/prcplist/erprcpflag" ) == "Y") {
  813. if (model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
  814. messageBox ( "응급 처방의 횟수는 1만 가능합니다. 1회로 수정하겠습니다." , "E" );
  815. var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
  816. //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
  817. var prcpqty = model.getValue ( "/root/main/prcp/prcplist/prcpqty" );
  818. var prcpvol = model.getValue ( "/root/main/prcp/prcplist/prcpvol" );
  819. if ( prcptims != "0" && model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) {
  820. prcpqty = (eval(prcpqty)*1000/eval(prcptims));
  821. prcpvol = (eval(prcpvol)*1000/eval(prcptims));
  822. model.setValue ( "/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
  823. model.setValue ( "/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
  824. }
  825. model.setValue ( "/root/main/prcp/prcplist/prcptims", "1" );
  826. }
  827. if ( model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) { // 디폴트 용법 셋팅
  828. fBaseMthd(1);
  829. }
  830. } else { //응급 체크 해제시 지금복용 용법에서 기본용법으로 변경
  831. var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
  832. fBaseMthd(prcptims);
  833. }
  834. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("clincstdyflag")) {
  835. var anamneflag = grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag"));
  836. if(anamneflag == "Y") {
  837. messageBox ( "임상연구는 기왕증과 동시에 선택 할 수", "I004" );
  838. grd_prcpdetl2.valueMatrix(1, grd_prcpdetl2.colRef("clincstdyflag")) = "N";
  839. return;
  840. }
  841. fSubcretnoSet("0", grd_prcpdetl2);
  842. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("powdflag") && model.getValue("/root/main/prcp/prcplist/powdflag" ) == "Y" ) {
  843. //20090218 마정민 수정 산제불가, 산제주의시 대체처방
  844. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec" );
  845. if ( getArrayData ( drugmastspec + "^", 0, 19, "^", "|" ) == "2" ) { //산제불가
  846. opener.javascript.setParameter ( "SPMMO01100_powdaltdrug", "2" );
  847. window.close();
  848. return;
  849. } else if ( getArrayData ( drugmastspec + "^", 0, 19, "^", "|" ) == "1" ) { //산제주의
  850. opener.javascript.setParameter ( "SPMMO01100_powdaltdrug", "1" );
  851. window.close();
  852. return;
  853. }
  854. }
  855. model.refresh();
  856. ]]>
  857. </script>
  858. </datagrid>
  859. <input id="input1" ref="/root/main/prcp/prcplist/prcpdelivefact" style="left:2px; top:123px; width:784px; height:19px; "/>
  860. <select1 id="radio1" ref="/root/main/prcp/prcplist/hosinhosoutflag" appearance="full" overflow="visible" style="left:411px; top:80px; width:14px; height:20px; border-style:none; ">
  861. <choices>
  862. <item>
  863. <label/>
  864. <value>I</value>
  865. </item>
  866. </choices>
  867. <script type="javascript" ev:event="xforms-value-changed">
  868. <![CDATA[
  869. fChkHosInResnCd(); /*
  870. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  871. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  872. //입원은 disable 임으로 select 할 이유가 없다.
  873. if ( model.getValue ( "/root/main/prcp/prcplist/hosinhosoutflag" ) == "I") { //원내를 선택하면
  874. if ( hosinprcpresncd != "00" ) { //원무에 있는 원내처방 사유 코드가 있다면
  875. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", hosinprcpresncd ) ;
  876. }
  877. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. start
  878. else {
  879. var drugmastspec = model.getValue( "/root/main/prcp/prcplist/drugmastspec");
  880. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", getArrayData ( drugmastspec, 0, 12, "^", "|" ) );
  881. }
  882. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. end
  883. // grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = false; by sonjy 2008-09-12 막음처리.
  884. } else { //원외를 선택하면
  885. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  886. model.setValue("/root/main/prcp/prcplist/hosinprcpresncd","00");
  887. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = true; //원내처방 사유코드를 입력할 수는 없다.
  888. } */
  889. ]]>
  890. </script>
  891. </select1>
  892. <select1 id="radio2" ref="/root/main/prcp/prcplist/hosinhosoutflag" appearance="full" overflow="visible" style="left:440px; top:80px; width:14px; height:20px; border-style:none; ">
  893. <choices>
  894. <item>
  895. <label/>
  896. <value>O</value>
  897. </item>
  898. </choices>
  899. <script type="javascript" ev:event="xforms-value-changed">
  900. <![CDATA[
  901. fChkHosInResnCd();
  902. /*
  903. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  904. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  905. var drugmastspec = model.getValue( "/root/main/prcp/prcplist/drugmastspec");
  906. //입원은 disable 임으로 select 할 이유가 없다.
  907. if ( model.getValue ( "/root/main/prcp/prcplist/hosinhosoutflag" ) == "I") { //원내를 선택하면
  908. if ( hosinprcpresncd != "00" ) { //원무에 있는 원내처방 사유 코드가 있다면
  909. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", hosinprcpresncd );
  910. }
  911. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. start
  912. else {
  913. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", getArrayData ( drugmastspec, 0, 12, "^", "|" ) );
  914. }
  915. //grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = false;
  916. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. end
  917. } else { //원외를 선택하면
  918. //마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  919. if( model.getValue( "/root/main/prcp/prcplist/inclprcpno") != 0 || getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ) == "M" ||
  920. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") == "A6" && getArrayData ( drugmastspec + "^", 0, 20, "^", "|" ) != "Y" )){
  921. messageBox("마약, 주사 및 MSET코드내 묶인 약제는 원외처방이 불가합니다.", "I");
  922. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  923. return ;
  924. }
  925. //마약, MSET은 원외불가. by sonjy 20080912 end
  926. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  927. model.setValue("/root/main/prcp/prcplist/hosinprcpresncd","00");
  928. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = true; //원내처방 사유코드를 입력할 수는 없다.
  929. } */
  930. ]]>
  931. </script>
  932. </select1>
  933. <button id="button3" class="icon_search" style="left:75px; top:104px; width:16px; height:16px; ">
  934. <caption/>
  935. <script type="javascript" ev:event="DOMActivate">
  936. <![CDATA[
  937. var sPrnPrcpFlag = model.getValue ( "/root/main/prcp/prcplist/prnprcpflag"); // PRN 처방여부
  938. if(sPrnPrcpFlag == "Y") {
  939. messageBox ( "PRN처방은 전달사항을 수정할수 없습니다.", "E" );
  940. } else {
  941. setParameter ( "SPMMB02200_cond2", "3" );
  942. fPrcpModal ( "SPMMB02200", 50, 50 );
  943. model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", getParameter ( "SPMMB02200_clinccmt" ));
  944. model.refresh();
  945. }
  946. ]]>
  947. </script>
  948. </button>
  949. <button id="btn_srchexecdept" class="icon_search" style="left:329px; top:58px; width:16px; height:16px; ">
  950. <caption/>
  951. <script type="javascript" ev:event="DOMActivate">
  952. <![CDATA[
  953. modal("SPMMB02500");
  954. ]]>
  955. </script>
  956. </button>
  957. <select1 id="rdo_clinccmtcnts" ref="/root/main/prcp/prcplist/clinccmtcnts" appearance="full" rows="2" vcellspacing="2" overflow="visible" style="left:3px; top:171px; width:231px; height:35px; border-style:none; ">
  958. <choices>
  959. <item>
  960. <label>1. 다음 진료일까지의 기간이 30일 초과</label>
  961. <value>1. 다음 진료일까지의 기간이 30일 초과</value>
  962. </item>
  963. <item>
  964. <label>2. 기타</label>
  965. <value>2. 기타</value>
  966. </item>
  967. </choices>
  968. <script type="javascript" ev:event="xforms-value-changed">
  969. <![CDATA[
  970. if(rdo_clinccmtcnts.label == "2. 기타"){
  971. ipt_clinccmtcnts.disabled = false;
  972. }else{
  973. ipt_clinccmtcnts.value = "";
  974. ipt_clinccmtcnts.disabled = true;
  975. }
  976. model.refresh();
  977. ]]>
  978. </script>
  979. </select1>
  980. <input id="ipt_clinccmtcnts" ref="/root/main/temp/clinccmtcnts" disabled="true" style="left:67px; top:189px; width:593px; height:19px; "/>
  981. <select1 id="radio3" ref="/root/main/prcp/prcplist/mealcalrcnts" visibility="hidden" appearance="full" cols="5" overflow="visible" style="left:524px; top:32px; width:188px; height:20px; border-style:none; ">
  982. <choices>
  983. <item>
  984. <label>1차</label>
  985. <value>1</value>
  986. </item>
  987. <item>
  988. <label>2차</label>
  989. <value>2</value>
  990. </item>
  991. <item>
  992. <label>3차</label>
  993. <value>3</value>
  994. </item>
  995. <item>
  996. <label>4차</label>
  997. <value>4</value>
  998. </item>
  999. <item>
  1000. <label>5차</label>
  1001. <value>5</value>
  1002. </item>
  1003. </choices>
  1004. </select1>
  1005. <caption id="caption1" class="tit_2" visibility="hidden" style="left:2px; top:153px; width:82px; height:13px; ">PRN</caption>
  1006. <caption id="caption2" visibility="hidden" style="left:65px; top:150px; width:35px; height:20px; ">횟수:</caption>
  1007. <caption id="caption3" visibility="hidden" style="left:120px; top:150px; width:56px; height:20px; ">회 사유:</caption>
  1008. <caption id="caption4" visibility="hidden" style="left:385px; top:153px; width:55px; height:20px; ">투여간격:</caption>
  1009. <output id="input2" ref="/root/main/temp/prntms" visibility="hidden" style="left:96px; top:151px; width:24px; height:19px; border-color:#c0c0c0; border-style:solid; "/>
  1010. <output id="input4" ref="/root/main/temp/prnresncmt" visibility="hidden" style="left:255px; top:151px; width:125px; height:19px; border-color:#c0c0c0; border-style:solid; "/>
  1011. <output id="input5" ref="/root/main/temp/prnterm" visibility="hidden" style="left:440px; top:151px; width:220px; height:19px; border-color:#c0c0c0; border-style:solid; "/>
  1012. <select1 id="combo1" ref="/root/main/temp/prnprcpresncd" disabled="true" visibility="hidden" appearance="minimal" style="left:170px; top:151px; width:80px; height:19px; ">
  1013. <choices>
  1014. <itemset nodeset="/root/main/temp/hardcd/hardcd">
  1015. <label ref="hardcdnm"/>
  1016. <value ref="hardcd"/>
  1017. </itemset>
  1018. </choices>
  1019. </select1>
  1020. </xhtml:body>
  1021. </xhtml:html>