SPMMO01200_처방상세주사.xrw 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>[주사]</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <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/>
  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. </prcplist>
  179. </prcp>
  180. <temp>
  181. <clinccmtcnts/>
  182. <prnuseyn/>
  183. <prntms/>
  184. <prnresncmt/>
  185. <prnresnnm/>
  186. <prnhardcd/>
  187. <prnprcpresncd/>
  188. <prnterm/>
  189. </temp>
  190. </main>
  191. <init>
  192. <hosinprcpresncd/>
  193. <drugspdunitflag/>
  194. <payflagcd/>
  195. <orddept/>
  196. <bfhosinprcpresncd/>
  197. <orddept/>
  198. <drgacptflag/>
  199. </init>
  200. <drugcalc>
  201. <prcpvol/>
  202. <prcpqty/>
  203. <prcptims/>
  204. <drprcpetc7/>
  205. <drprcpetc8/>
  206. </drugcalc>
  207. <dept/>
  208. <orddept/>
  209. <send>
  210. <cond1/>
  211. </send>
  212. <temp>
  213. <send/>
  214. <patsupkind/>
  215. </temp>
  216. </root>
  217. </instance>
  218. <script type="javascript" ev:event="xforms-model-construct-done">
  219. <![CDATA[
  220. var colHidnValue = grdBaseColHidn("D");
  221. grdBaseColHidn(colHidnValue, "grd_prcplist", 50, "prcpvol", "prcpqty", "drprcpetc7", "drprcpetc8");
  222. zbcfGetCodeList(new Array("P0323", "M0040", "M0029", "P0506"), new Array("/root/init/hosinprcpresncd","/root/init/drugspdunitflag","/root/init/payflagcd","/root/init/drgacptflag"));
  223. //원무에서 화면을 열 경우, 공통코드 조회 이외의 로직은 처리하지 않음 2008. 06. 16 오지훈
  224. var prcppopupflag = opener.javascript.getParameter("prcppopupflag");
  225. if(prcppopupflag == "PAM"){
  226. return;
  227. }
  228. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  229. var pParentNode = null;
  230. var node01 = instance1.selectSingleNode("/root/init/hosinprcpresncd/P0323[cdid='01']");
  231. if(node01 != null){
  232. pParentNode = node01.parentNode;
  233. pParentNode.removeChild(node01);
  234. }
  235. reqHardCodeInfo("/root/main/temp/prnuseyn", "/root/main/temp/prnuseyn", "173");
  236. model.setValue ( "/root/send/cond1", "172" );
  237. submit("TRMMB16401" );
  238. document.title = document.title + "[" + model.getValue("/root/main/prcp/prcplist/prcpcd") + " : " + model.getValue("/root/main/prcp/prcplist/orgprcpnm") + "]";
  239. fPrcpExecDeptSrch();
  240. var tempcol2 = model.getValue ( "/root/main/prcp/prcplist/tempcol2" );
  241. var earnclscd = opener.model.getValue ( "/root/initsrch/earnclsauto[earnclsflag='2' and earnclscd='" + tempcol2 + "']/earnclscd" );
  242. if ( !isNull(earnclscd)) {
  243. radio1.disabled = false;
  244. //alert ( earnclscd );
  245. }
  246. //예방주사 버튼 활성화 처방
  247. var hosinhosoutflag = model.getValue("/root/main/prcp/prcplist/hosinhosoutflag");
  248. if ( prcpgenrflag == "O" || prcpgenrflag == "E" || prcpgenrflag == "D") { //외래이면 prn처방 disable
  249. if ( opener.model.getValue ( "/root/usge" ) == "prcp" ) {
  250. if ( prcpgenrflag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  251. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("prnprcpflag")) = true;
  252. }
  253. //원내처방사유 변경시 아니오를 선택할 경우 원래값으로 돌아가기 위해 전원내처방사유를 관리한다.
  254. //값은 원내처방사유가 변경될 때마다 같이 변경된다.
  255. model.setValue ( "/root/init/bfhosinprcpresncd", model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ));
  256. }
  257. }
  258. if ( hosinhosoutflag != "O" ) {
  259. if ( prcpgenrflag == "I" ) { // 입원은 원내/원외, 원내처방사유 disable
  260. radio2.disabled = true;
  261. radio3.disabled = true;
  262. grd_prcpdetl2.colDisabled(12) = true;
  263. }
  264. }
  265. fContPrcpDdInit ( grd_prcpdetl2, 9 );
  266. //30일 이상의 마약처방인 경우, 사유를 입력할 수 있도록 변경, 2008. 06. 12 오지훈
  267. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  268. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  269. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  270. var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
  271. if ( spcldrug == "M" ) {
  272. rdo_clinccmtcnts.visible = true;
  273. ipt_clinccmtcnts.visible = true;
  274. if(prcpdayno >= 30){ //2.기타인 경우 input box에 clinccmtcnts의 값을 설정
  275. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){
  276. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", "2. 기타");
  277. model.setValue("/root/main/temp/clinccmtcnts", clinccmtcnts);
  278. ipt_clinccmtcnts.disabled = false;
  279. }
  280. }
  281. }else{
  282. rdo_clinccmtcnts.visible = false;
  283. ipt_clinccmtcnts.visible = false;
  284. caption22.attribute("top")= 117;
  285. input1.attribute("top") = 132;
  286. button1.attribute("top") = 155;
  287. button2.attribute("top") = 155;
  288. button4.attribute("top") = 113;
  289. }
  290. //by sonjy 20091021 수가계산방법 4일때는 일수입력 불가 처리.변경요청번호 : 3667
  291. var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
  292. if( calcmthdcd == "4" ) {
  293. model.setValue(grd_prcplist.nodeset + "/prcpdayno", "1");
  294. grd_prcplist.colDisabled (grd_prcplist.colRef("prcpdayno") ) = true;
  295. }else {
  296. grd_prcplist.colDisabled (grd_prcplist.colRef("prcpdayno") ) = false;
  297. }
  298. // 입력된 PRN 처방 사유와 횟수가 있으면 보여주되 하드코드 173번, 화면코드를 구분기준으로 한다. 2010-01-02 by LYJ
  299. 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" )){
  300. input1.disabled = true;
  301. caption1.visible = true;
  302. caption2.visible = true;
  303. caption3.visible = true;
  304. caption4.visible = true;
  305. output1.visible = true;
  306. output2.visible = true;
  307. output4.visible = true;
  308. combo1.visible = true;
  309. var SPMMO01200_prndetl = opener.javascript.getParameter("SPMMO01200_prndetl");
  310. var SetPrnPrcpDetl = SPMMO01200_prndetl.split("|");
  311. if ( SetPrnPrcpDetl.length >2){
  312. model.setValue("/root/main/temp/prntms", SetPrnPrcpDetl[0]);
  313. model.setValue("/root/main/temp/prnprcpresncd", SetPrnPrcpDetl[1]);
  314. if (SetPrnPrcpDetl[2] != '-'){
  315. model.setValue("/root/main/temp/prnresncmt", SetPrnPrcpDetl[2]);
  316. }
  317. if (SetPrnPrcpDetl.length >3){
  318. model.setValue("/root/main/temp/prnterm", SetPrnPrcpDetl[3]);
  319. }
  320. }
  321. }
  322. model.refresh();
  323. model.setfocus("button1");
  324. ]]>
  325. </script>
  326. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  327. <submission id="TRMMO04103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/dept" resultref="/root/init/orddept"/>
  328. <submission id="TRZSD00109" mediatype="application/x-www-form-urlencoded" method="post"/>
  329. <submission id="TRMMO00116" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/orddept"/>
  330. <submission id="TRMMO15701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/temp/send" resultref="/root/temp/patsupkind"/>
  331. <submission id="TRMMB04103" mediatype="application/x-www-form-urlencoded" method="post"/>
  332. <submission id="TRMMB16401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/temp/prnhardcd"/>
  333. <bind id="bind1" ref="/root/main/prcp/prcplist/prcpqty" readonly="../inclprcpno &gt; 0"/>
  334. <bind id="bind2" ref="/root/main/prcp/prcplist/prcpvol" readonly="../inclprcpno &gt; 0"/>
  335. <bind id="bind3" ref="/root/main/prcp/prcplist/prcptims" readonly="../inclprcpno &gt; 0 or ../erprcpflag = 'Y' or ../prnprcpflag = 'Y'"/>
  336. <bind id="bind4" ref="/root/main/prcp/prcplist/prcpdayno" readonly="../inclprcpno &gt; 0"/>
  337. </model>
  338. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  339. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  340. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  341. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  342. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  343. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  344. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO00100.js"/>
  345. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  346. <script type="javascript">
  347. <![CDATA[
  348. /**
  349. * @desc : 원외예외사유 setting check
  350. * @author : sonjy 2008-09-12
  351. */
  352. function fChkHosInResnCd(){
  353. if( !checkOpener() ) return ;
  354. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  355. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  356. var drugmastspec = model.getValue( "/root/main/prcp/prcplist/drugmastspec"); //약품정보
  357. var spcldrug = getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ); //마약구분
  358. var selfinjyn = getArrayData ( drugmastspec + "^", 0, 20, "^", "|" ); //자가주사가능여부
  359. var erflag = "" ;
  360. //SON0930 약품마스터의 원내외구분이 주사및 환자사유에 우선한다. 배성미 선생님 요청 .
  361. var hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" ); //약품원내외구분
  362. //by sonjy 20080922 비응급환자 퇴원처방 일 경우 check. start
  363. if( prcpgenrflag == "E" && opener.model.getValue("/root/init/erresn") != "G3" && model.getValue( "/root/main/prcp/prcplist/prcpkindcd") == "60" ){
  364. erflag = "Y";
  365. }
  366. //by sonjy 20080922 end
  367. //입원은 disable 임으로 select 할 이유가 없다.
  368. if ( model.getValue ( "/root/main/prcp/prcplist/hosinhosoutflag" ) == "I") { //원내를 선택하면
  369. if( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "90" ) {
  370. //원외요구시 => by sonjy 20081016
  371. //마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  372. // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
  373. if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) ||
  374. // (spcldrug == "M") ||
  375. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "M") ||
  376. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "H" ) ||
  377. (hosinflag == "I") ||
  378. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && hosinflag == "I" )) { //SON0930
  379. // ){
  380. messageBox("마약주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
  381. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  382. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", model.getValue ( "/root/init/bfhosinprcpresncd" ));
  383. grd_prcpdetl2.rebuild();
  384. return ;
  385. }
  386. //마약, MSET은 원외불가. by sonjy 20080912 end
  387. } else
  388. if ( hosinprcpresncd != "00" && erflag == "" ) { //원무에 있는 원내처방 사유 코드가 있다면
  389. //SON0930 약품 원내외 구분 적용.
  390. if( hosinflag == "O" && prcpgenrflag == "O" ) {
  391. messageBox("원외로만 처방이 가능한 약품", "I009");
  392. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  393. model.refresh();
  394. return ;
  395. }
  396. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", hosinprcpresncd );
  397. }
  398. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. start
  399. else {
  400. //SON0930 약품 원내외 구분 적용.
  401. if( hosinflag == "O" && ( prcpgenrflag == "O" || erflag == "Y" ) ) {
  402. messageBox("원외로만 처방이 가능한 약품 ", "I009");
  403. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  404. model.refresh();
  405. return ;
  406. }
  407. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", getArrayData ( drugmastspec, 0, 12, "^", "|" ) );
  408. }
  409. //grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = false;
  410. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. end
  411. } else { //원외를 선택하면
  412. //마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  413. // if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (spcldrug == "M") ||
  414. // (hosinflag == "I") || (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && selfinjyn != "Y" && hosinflag != "O" ) ) { //SON0930
  415. // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
  416. if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) ||
  417. // (spcldrug == "M") ||
  418. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "M") ||
  419. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && spcldrug == "H" ) ||
  420. (hosinflag == "I") ||
  421. (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && hosinflag == "I" )) { //SON0930
  422. // ){
  423. // (model.getValue( "/root/main/prcp/prcplist/prcpclscd") =="A6" && selfinjyn != "Y" ) ){
  424. messageBox("마약주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
  425. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  426. model.refresh();
  427. return ;
  428. }
  429. //20090316 마정민 수정. 변경요청서 1072 마정민 수정. 자가주사 원외처방시 자동Y처리
  430. if ( selfinjyn == "Y" ) {
  431. model.setValue ( "/root/main/prcp/prcplist/selfprcpflag", "Y" );
  432. }
  433. //마약, MSET은 원외불가. by sonjy 20080912 end
  434. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  435. model.setValue("/root/main/prcp/prcplist/hosinprcpresncd","00");
  436. grd_prcpdetl2.colDisabled(grd_prcpdetl2.colref("hosinprcpresncd")) = true; //원내처방 사유코드를 입력할 수는 없다.
  437. }
  438. }
  439. ]]>
  440. </script>
  441. </xhtml:head>
  442. <xhtml:body pagewidth="802" pageheight="230" guideline="1,786;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  443. <caption id="caption22" class="tit_2" style="left:2px; top:107px; width:82px; height:13px; ">전달사항</caption>
  444. <button id="button1" class="btn4_letter2" style="left:669px; top:160px; width:56px; height:22px; ">
  445. <caption>확인</caption>
  446. <script type="javascript" ev:event="onclick">
  447. <![CDATA[
  448. //if ( getStringLength (textarea1.value) > 250 ) {
  449. // model.alert( "전달사항에 값을 너무 많이 입력하셨습니다." );
  450. //}
  451. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  452. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  453. //마약처방인 경우, 사유 전달, 2008. 06. 12 오지훈
  454. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  455. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  456. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  457. if ( spcldrug == "M" && prcpdayno >= 30) {
  458. var clinccmtcnts = rdo_clinccmtcnts.value;
  459. if(clinccmtcnts == "-"){
  460. messageBox("30일 이상의 마약처방 사유를", "C002");
  461. return;
  462. }
  463. if(clinccmtcnts == "2. 기타" && model.getValue("/root/main/temp/clinccmtcnts")==""){
  464. messageBox("30일 이상의 마약처방 사유를", "C001");
  465. return;
  466. }else{
  467. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){ //1. 다음 진료일까지의 기간이 30일 초가 선택
  468. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", model.getValue("/root/main/temp/clinccmtcnts"));
  469. }
  470. }
  471. }
  472. if ( prcpgenrflag == "O" && model.getValue ("/root/main/prcp/prcplist/hosinhosoutflag" ) == "I" && model.getValue ("/root/main/prcp/prcplist/hosinprcpresncd" ) == "00" ) {
  473. messageBox ( "해당 약품의 원내처방 사유가 존재하지 않습니다. 수가팀에 문의", "I008" );
  474. return;
  475. }
  476. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
  477. model.close();
  478. ]]>
  479. </script>
  480. <script type="javascript" ev:event="onkeydown">
  481. <![CDATA[
  482. if(event.keyCode == "13") {
  483. button1.dispatch("onclick");
  484. }
  485. ]]>
  486. </script>
  487. </button>
  488. <button id="button2" class="btn4_letter2" style="left:728px; top:160px; width:56px; height:22px; ">
  489. <caption>취소</caption>
  490. <script type="javascript" ev:event="onclick">
  491. <![CDATA[
  492. model.close();
  493. ]]>
  494. </script>
  495. </button>
  496. <line id="line7" class="line_1" style="x1:2px; y1:0px; x2:786px; y2:0px; "/>
  497. <datagrid id="grd_prcpdetl2" nodeset="/root/main/prcp/prcplist" caption="응급^PRN^prep^AST^home^self^선처치^시행부서^임상연구^지정일^원내/원외^원내/원외^원내처방사유" colsep="^" colwidth="30, 30, 32, 32, 40, 30, 45, 80, 60, 100, 30, 30, 244" dataheight="23" defaultrows="12" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" style="left:2px; top:54px; width:784px; height:48px; ">
  498. <col checkvalue="Y,N" ref="erprcpflag" type="checkbox"/>
  499. <col checkvalue="Y,N" ref="prnprcpflag" type="checkbox"/>
  500. <col checkvalue="Y,N" ref="prepprcpflag" type="checkbox"/>
  501. <col checkvalue="Y,N" ref="asttestflag" type="checkbox"/>
  502. <col checkvalue="Y,N" ref="selfprcpflag" type="checkbox"/>
  503. <col checkvalue="Y,N" ref="selfdrugflag" type="checkbox"/>
  504. <col checkvalue="Y,N" ref="precureprcpflag" type="checkbox" style="text-align:center; "/>
  505. <col class="gridcombo" itemcount="30" ref="prcpexecdeptcd" type="combo">
  506. <choices>
  507. <itemset nodeset="/root/orddept/dept">
  508. <label ref="depthngnm"/>
  509. <value ref="deptcd"/>
  510. </itemset>
  511. </choices>
  512. </col>
  513. <col checkvalue="Y,N" ref="clincstdyflag" type="checkbox"/>
  514. <col style="text-align:center; "/>
  515. <col/>
  516. <col/>
  517. <col class="gridcombo" disabled="false" ref="hosinprcpresncd" type="combo" style="text-align:left; ">
  518. <choices>
  519. <itemset nodeset="/root/init/hosinprcpresncd/P0323">
  520. <label ref="cdnm"/>
  521. <value ref="cdid"/>
  522. </itemset>
  523. </choices>
  524. </col>
  525. <script type="javascript" ev:event="ondblclick">
  526. <![CDATA[
  527. if ( grd_prcpdetl2.col == 9 ) {
  528. if ( model.getValue ( "/root/main/prcp/prcplist/selfprcpflag" ) == "Y" ) {
  529. messageBox ( "자가주사는 지정일을 선택", "E001" )
  530. } else {
  531. fContPrcpDd( grd_prcpdetl2, "/root/main/prcp/prcplist" , "child" );
  532. fContPrcpDdInit ( grd_prcpdetl2, 9 );
  533. }
  534. }
  535. ]]>
  536. </script>
  537. <script type="javascript" ev:event="xforms-value-changed">
  538. <![CDATA[
  539. if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("prnprcpflag")) {
  540. //PRN 체크시 drugmastspec 의 34번째 컬럼으로 그 가능여부를 따져 블로킹 및 사유, 횟수를
  541. //입력받는 팝업을 띄워준다 . 2010-01-02 by LYJ
  542. if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) == "Y" ) {
  543. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  544. var prnl = getArrayData ( drugmastspec, 0, 33, "^", "|" );
  545. if ((prnl == "N" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01200_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("SPMMO01200_prcp") =="SMMMB00200")){
  546. messageBox ( "PRN 지정이 불가능한 처방입니다." , "E" );
  547. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" )
  548. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  549. input1.disabled = false;
  550. caption1.visible = false;
  551. caption2.visible = false;
  552. caption3.visible = false;
  553. caption4.visible = false;
  554. output1.visible = false;
  555. output2.visible = false;
  556. output4.visible = false;
  557. combo1.visible = false;
  558. } else if (prnl =="Y"){
  559. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
  560. //20090115 마정민 수정 PRN처방 1회만 되게 수정
  561. if ( model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
  562. messageBox ( "PRN 처방은 1일 최대 3회로 제한합니다." , "E" );
  563. var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
  564. //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
  565. var prcpqty = model.getValue ( "/root/main/prcp/prcplist/prcpqty" );
  566. var prcpvol = model.getValue ( "/root/main/prcp/prcplist/prcpvol" );
  567. if ( prcptims != "0" ) {
  568. prcpqty = (eval(prcpqty)*1000/eval(prcptims));
  569. prcpvol = (eval(prcpvol)*1000/eval(prcptims));
  570. model.setValue ( "/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
  571. model.setValue ( "/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
  572. }
  573. model.setValue ( "/root/main/prcp/prcplist/prcptims", "1" );
  574. if ( model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) {
  575. fBaseMthd(1);
  576. }
  577. }
  578. // 하드코드 173번의 적용여부와 CP,항암프로토콜,처방메인의 구분을 위해 화면코드를 가져와 팝업 띄우기 여부를 결정한다. 2010-01-02 by LYJ
  579. if((model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ) || (model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01200_prcp") =="SPMQP01400") || (model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="N" && opener.javascript.getParameter("SPMMO01200_prcp") =="SMMMB00200")) {
  580. var xpt = window.screenleft + 50;
  581. var ypt = window.screenTop + 50;
  582. var coord = getRelativeCoordinate ( xpt, ypt );
  583. var mon = coord[0];
  584. xpt = coord[1];
  585. ypt = coord[2];
  586. modal("SPMMO19200",mon,xpt, ypt, "SPMMO19200", "/root/tmp/prnresncd", "/root/main/prcp/prcplist/prnresncd", "sysmenu:hidden;", false );
  587. var SPMMO19200_prnNum = getParameter("SPMMO19200_prnNum");
  588. var SPMMO19200_resncd = getParameter("SPMMO19200_resncd");
  589. var SPMMO19200_resncmt = getParameter("SPMMO19200_resncmt");
  590. var SPMMO19200_resnnm = getParameter("SPMMO19200_resnnm");
  591. var SPMMO19200_prnTerm = getParameter("SPMMO19200_prnTerm");
  592. var resnyn = getParameter("SPMMO19200_rtn1");
  593. if( resnyn == "N" ){
  594. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" );
  595. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  596. model.setValue ( "/root/main/prcp/prcplist/drprcpetc6", "-" );
  597. input1.disabled = false;
  598. caption1.visible = false;
  599. caption2.visible = false;
  600. caption3.visible = false;
  601. caption4.visible = false;
  602. output1.visible = false;
  603. output2.visible = false;
  604. output4.visible = false;
  605. combo1.visible = false;
  606. }else if(resnyn == "Y") {
  607. var Sprnprcpdtl = SPMMO19200_prnNum + "|" + SPMMO19200_resncd+ "|" + SPMMO19200_resncmt + "|" + SPMMO19200_prnTerm;
  608. model.setValue ( "/root/main/prcp/prcplist/drprcpetc6" , Sprnprcpdtl);
  609. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "Y" );
  610. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag" , "Y" );
  611. if(SPMMO19200_prnTerm == "") {
  612. model.setValue ("/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt );
  613. } else {
  614. model.setValue ("/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt + ", PRN간격 : " + SPMMO19200_prnTerm);
  615. }
  616. model.setValue ("/root/main/temp/prntms", SPMMO19200_prnNum);
  617. model.setValue ("/root/main/temp/prnterm", SPMMO19200_prnTerm);
  618. model.setValue ("/root/main/temp/prnresncmt", SPMMO19200_resncmt);
  619. model.setValue("/root/main/temp/prnprcpresncd", SPMMO19200_resncd);
  620. input1.disabled = true;
  621. caption1.visible = true;
  622. caption2.visible = true;
  623. caption3.visible = true;
  624. caption4.visible = true;
  625. output1.visible = true;
  626. output2.visible = true;
  627. output4.visible = true;
  628. combo1.visible = true;
  629. }
  630. }
  631. }
  632. } else {
  633. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  634. input1.disabled = false;
  635. caption1.visible = false;
  636. caption2.visible = false;
  637. caption3.visible = false;
  638. caption4.visible = false;
  639. output1.visible = false;
  640. output2.visible = false;
  641. output4.visible = false;
  642. combo1.visible = false;
  643. }
  644. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("selfprcpflag")) {
  645. if ( model.getValue ( prcpNode + "/selfprcpflag" ) == "Y" ) {
  646. model.setValue ( prcpNode + "/contprcpspec", "-" );
  647. var prcpdd = opener.model.getValue ( "/root/init/prcpdd" );
  648. grd_prcpdetl2.valueMatrix ( 1, 9 ) = fDateFormat ( prcpdd );
  649. // selfprcpflag가 Y가 아니면 home에 체크할때 체크 안되도록 메시지를 띄운다. 20081006 MoonSH
  650. var currow = opener.grd_prcplist.row ;
  651. var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" ); //외래입원구분
  652. var prcpcd = model.getValue("/root/main/prcp/prcplist/prcpcd");
  653. var prcpnm = model.getValue("/root/main/prcp/prcplist/prcpnm");
  654. var drugmastspec = opener.model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/drugmastspec");
  655. var prcpclscd = opener.model.getValue ( "/root/main/prcp/prcplist[" + currow + "]/prcpclscd" );
  656. if ( prcpgenrflag == "O" ) {
  657. if ( getArrayData (drugmastspec, 0, 20, "^", "|" ) != "Y" ) {
  658. messageBox ( "자가주사가 불가한 처방입니다.", "E" );
  659. model.setValue("/root/main/prcp/prcplist/selfprcpflag", "N");
  660. }
  661. } else {
  662. //20090316 마정민 수정. 변경요청번호 1072. 퇴원약에 자가주사만 home 지정할 수 있도록 수정
  663. var prcpkindcd = model.getValue("/root/main/prcp/prcplist/prcpkindcd");
  664. if ( (prcpkindcd == "50" || prcpkindcd == "60" ) && getArrayData (drugmastspec, 0, 20, "^", "|" ) != "Y" ) {
  665. messageBox ( "home 체크가 불가한 처방입니다.", "E" );
  666. model.setValue("/root/main/prcp/prcplist/selfprcpflag", "N");
  667. }
  668. }
  669. }
  670. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("hosinprcpresncd")) { //원내처방 사유를 선택해서 처방화면의 원내처방 사유랑 같은 것이 있으면 모두 그것으로 바꿈
  671. if ( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "00" ) {
  672. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  673. } else {
  674. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  675. }
  676. if ( opener.model.getValue ( "/root/usge" ) == "prcp" ) {
  677. //약속처방, 지시처방에서는 되면 안됨
  678. var hosinprcpresncd = model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" );
  679. var openerHosinprcpresncd = opener.model.getValue ( "/root/init/hosinprcpresncd/P0034[cdid='" + hosinprcpresncd + "']/cdid" );
  680. //by sonjy 20081016 원외요구 사유 처리
  681. if( hosinprcpresncd == "90" ){
  682. fChkHosInResnCd();
  683. return ;
  684. }
  685. if ( !isNull(openerHosinprcpresncd) && hosinprcpresncd != "00" ) {
  686. if ( messageBox ( "모든 약,주사 처방에 같은 원내처방 사유를", "Q009" ) == "6" ) {
  687. opener.model.setValue ( "/root/init/hosinprcpresncd", openerHosinprcpresncd );
  688. fChngHosinPrcpResn("child", openerHosinprcpresncd);
  689. opener.model.refresh();
  690. } else {
  691. //아니오를 선택할 경우 변경전 데이터로 돌린다.
  692. var bfhosinprcpresncd = model.getValue ( "/root/init/bfhosinprcpresncd" );
  693. if ( bfhosinprcpresncd == "00" ) {
  694. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  695. } else {
  696. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  697. }
  698. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", bfhosinprcpresncd );
  699. grd_prcpdetl2.rebuild();
  700. return;
  701. }
  702. }
  703. model.setValue ( "/root/init/bfhosinprcpresncd", hosinprcpresncd );
  704. }
  705. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("erprcpflag")) {
  706. if ( model.getValue ( "/root/main/prcp/prcplist/erprcpflag" ) == "Y" && model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
  707. messageBox ( "응급 처방의 횟수는 1만 가능합니다. 1회로 수정하겠습니다." , "E" );
  708. var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
  709. if ( prcptims != "1" ) {
  710. //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
  711. var prcpqty = model.getValue ( "/root/main/prcp/prcplist/prcpqty" );
  712. var prcpvol = model.getValue ( "/root/main/prcp/prcplist/prcpvol" );
  713. if ( prcptims != "0" ) {
  714. prcpqty = (eval(prcpqty)*1000/eval(prcptims));
  715. prcpvol = (eval(prcpvol)*1000/eval(prcptims));
  716. model.setValue ( "/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
  717. model.setValue ( "/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
  718. }
  719. model.setValue ( "/root/main/prcp/prcplist/prcptims", "1" );
  720. }
  721. }
  722. } else if ( grd_prcpdetl2.col == grd_prcpdetl2.colref("clincstdyflag")) {
  723. var anamneflag = grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag"));
  724. if(anamneflag == "Y") {
  725. messageBox ( "임상연구는 기왕증과 동시에 선택 할 수", "I004" );
  726. grd_prcpdetl2.valueMatrix(1, grd_prcpdetl2.colRef("clincstdyflag")) = "N";
  727. return;
  728. }
  729. fSubcretnoSet("0", grd_prcpdetl2);
  730. }
  731. model.refresh();
  732. ]]>
  733. </script>
  734. </datagrid>
  735. <datagrid id="grd_prcplist" nodeset="/root/main/prcp/prcplist" caption="1회용량^1회용량^1회용량^1회수량^1회수량^1회수량^투여속도^투여속도^횟수^일수^용법^DRG인정^기왕증^접종차수" colsep="^" colwidth="40, 40, 30, 40, 40, 30, 50, 50, 35, 35, 155, 60, 45, 165" dataheight="23" defaultrows="12" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" selectionmode="free" style="left:2px; top:5px; width:784px; height:48px; ">
  736. <col imemode="disabled" ref="prcpvol" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  737. <col imemode="disabled" ref="drprcpetc7" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  738. <col ref="prcpvolunitnm" style="text-align:center; ">
  739. <choices/>
  740. </col>
  741. <col imemode="disabled" ref="prcpqty" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  742. <col imemode="disabled" ref="drprcpetc8" type="input" format="#.#" maxlength="5.3" style="text-align:center; "/>
  743. <col ref="prcpqtyunitnm" style="text-align:center; "/>
  744. <col imemode="disabled" ref="drugspd" type="input" format="#,###" style="text-align:center; "/>
  745. <col class="gridcombo" ref="drugspdunitflag" type="combo" style="text-align:center; ">
  746. <choices>
  747. <itemset nodeset="/root/init/drugspdunitflag/M0040">
  748. <label ref="cdnm"/>
  749. <value ref="cdid"/>
  750. </itemset>
  751. </choices>
  752. </col>
  753. <col imemode="disabled" ref="prcptims" type="input" format="#,###" style="text-align:center; "/>
  754. <col imemode="disabled" ref="prcpdayno" type="input" format="###" style="text-align:center; "/>
  755. <col ref="drugmthdspccdnm" style="text-align:left; ">
  756. <script type="javascript" ev:event="ondblclick">
  757. <![CDATA[
  758. fPrcpModal ("SPMMO01900", 50, 10);
  759. ]]>
  760. </script>
  761. </col>
  762. <col class="gridcombo" ref="drgacptflag" type="combo" style="text-align:center; ">
  763. <choices>
  764. <itemset nodeset="/root/init/drgacptflag/P0506">
  765. <label ref="cdnm"/>
  766. <value ref="cdid"/>
  767. </itemset>
  768. </choices>
  769. </col>
  770. <col checkvalue="Y,N" ref="anamneflag" type="checkbox"/>
  771. <col format="###" style="text-align:center; "/>
  772. <script type="javascript" ev:event="onstartedit">
  773. <![CDATA[
  774. if ( grd_prcplist.col == grd_prcplist.colRef("prcpvol")) {
  775. bfDrugCalc ( "prcpvol", grd_prcplist.row );
  776. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc7")) {
  777. bfDrugCalc ( "drprcpetc7", grd_prcplist.row );
  778. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcpvol")) {
  779. bfDrugCalc ( "prcpvol", grd_prcplist.row );
  780. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc8")) {
  781. bfDrugCalc ( "drprcpetc8", grd_prcplist.row );
  782. }
  783. ]]>
  784. </script>
  785. <script type="javascript" ev:event="xforms-value-changed">
  786. <![CDATA[
  787. if ( grd_prcplist.col == grd_prcplist.colRef("prcpvol")) {
  788. DrugCalc ("prcpvol" , grd_prcplist.row);
  789. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc7")) {
  790. DrugCalc ("drprcpetc7" , grd_prcplist.row);
  791. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcpqty")) {
  792. DrugCalc ( "prcpqty" , grd_prcplist.row);
  793. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  794. var PrcpQty = model.getValue ( prcpNode + "[" + grd_prcplist.row + "]/prcpqty" );
  795. var bfPrcpQty = model.getValue ( "/root/drugcalc/prcpqty" );
  796. var cnclInptTxt = model.getValue(prcpNode + "[" + grd_prcplist.row + "]/prcpcd");
  797. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  798. if(model.getValue(prcpNode + "[" + grd_prcplist.row + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && eval(PrcpQty) < 1){
  799. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  800. //model.setValue ( prcpNode + "[" + grd_prcplist.row + "]/prcpqty", bfPrcpQty );
  801. return;
  802. } //end
  803. } else if ( grd_prcplist.col == grd_prcplist.colRef("drprcpetc8")) {
  804. DrugCalc ( "drprcpetc8" , grd_prcplist.row);
  805. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  806. var PrcpQty = model.getValue ( prcpNode + "[" + grd_prcplist.row + "]/prcpqty" );
  807. var bfPrcpQty = model.getValue ( "/root/drugcalc/prcpqty" );
  808. var cnclInptTxt = model.getValue(prcpNode + "[" + grd_prcplist.row + "]/prcpcd");
  809. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  810. if(model.getValue(prcpNode + "[" + grd_prcplist.row + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && eval(PrcpQty) < 1){
  811. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  812. //model.setValue ( prcpNode + "[" + grd_prcplist.row + "]/prcpqty", bfPrcpQty );
  813. return;
  814. } //end
  815. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcptims")) {
  816. DrugCalc ( "prcptims" , grd_prcplist.row);
  817. } else if ( grd_prcplist.col == grd_prcplist.colRef("prcpdayno")) {
  818. var prcpdd = model.getValue ( "/root/init/prcpdd"); //일수 1로 지정 시 오류발생하여 prcpdd 선언해줌 (2010.02.22 JJE)
  819. //by sonjy 20091019 변경요청번호 : 3667 수가계산구분 4인 약/주사에 대해 일수 1로 고정
  820. var drugmastspec = model.getValue ( prcpNode + "/drugmastspec") ;
  821. var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
  822. if( calcmthdcd == "4" ) {
  823. model.setValue("/root/main/prcp/prcplist/prcpdayno", "1");
  824. return ;
  825. }
  826. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  827. //by sonjy 20091020 성빈센트 오류사항 수정 : home check하였으나 일수 지정 창이 뜨는 문제.
  828. if(prcpgenrflag == "O" && model.getValue ( prcpNode + "/selfprcpflag") != "Y") {
  829. var prcpdayno = grd_prcplist.valueMatrix(1, grd_prcplist.colRef("prcpdayno"));
  830. var startdd = model.getValue("/root/paminfo/list/orddd");
  831. var reqparam = startdd + "▩";
  832. //변경된 일수만큼의 일자 parameter를 생성함
  833. for(var i = 1; i < prcpdayno; i++){
  834. var dd = ((startdd.toDate()).getAddDate(i)).getDateFormat();
  835. reqparam += dd + "▩";
  836. }
  837. reqparam = reqparam.substring(0, reqparam.length-1);
  838. setParameter("paramcalflag", "multi");
  839. setParameter("defaultday" , startdd);
  840. setParameter("reqparam" , reqparam);
  841. setParameter("prcpdayno" , prcpdayno);
  842. fPrcpModal("SPMMO10600", 20, 50);
  843. //달력에서 선택된 일자만큼 처방상세정보 생성 및 처방 정보 설정
  844. if ( !isNull(getParameter("rtn"))) { //20080703 마정민 수정 값이 있을 때문 처리
  845. var actordddArray = getParameter("rtn").split("▩");
  846. var contprcpspec = "status|actorddd|execprcpstatcd|prcpdd|execprcpno";
  847. for(var i = 0; i < actordddArray.length; i++){
  848. var actorddd = actordddArray[i];
  849. contprcpspec = contprcpspec + "^I|" + actorddd + "|" + "" + "|" + startdd + "|" + "";
  850. }
  851. var rtnval = "";
  852. var contprcpspecArray = contprcpspec.split("^");
  853. for(var i = 1; i < contprcpspecArray.length; i++){
  854. var tmp = contprcpspecArray[i].split("|");
  855. rtnval = rtnval + tmp[1] + ",";
  856. }
  857. rtnval = rtnval.substring(0, rtnval.length-1);
  858. if(actordddArray.length == 1 && actorddd == prcpdd){
  859. model.setValue("/root/main/prcp/prcplist/contprcpspec", "-");
  860. }else{
  861. model.setValue("/root/main/prcp/prcplist/contprcpspec", contprcpspec);
  862. }
  863. model.setValue("/root/main/prcp/prcplist/prcpdayno", actordddArray.length);
  864. fContPrcpDdInit ( grd_prcpdetl2, 9 );
  865. }
  866. }
  867. }
  868. //by sonjy 20090921 주사상세팝업에서 기왕증 check시 보조유형 선택 팝업 뜨지 않는 오류 수정 . event처리 오류였음. (endedit => value changed로 변경 )
  869. else if (grd_prcplist.col == grd_prcplist.colRef("anamneflag")) {
  870. var clincstdyflag = grd_prcpdetl2.valueMatrix(1, grd_prcpdetl2.colRef("clincstdyflag"));
  871. if(clincstdyflag == "Y") {
  872. messageBox ( "기왕증은 임상연구와 동시에 선택 할 수", "I004" );
  873. grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag")) = "N";
  874. return;
  875. }
  876. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  877. var anamneflag = grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag"));
  878. if(prcpgenrflag == "I" || prcpgenrflag == "D" || prcpgenrflag == "E"){
  879. if(anamneflag == "Y"){ //기왕증이 Y로 처리된 경우에만 보조유형선택 팝업 open
  880. var pid = opener.model.getValue("/root/paminfo/list/pid");
  881. var indd = opener.model.getValue("/root/paminfo/list/indd");
  882. var subcretno = fGetSubcretno(pid, indd, "anamneflag");
  883. model.setValue("/root/main/prcp/prcplist/subcretno", subcretno);
  884. if(subcretno == "0"){
  885. messageBox ( "환자의 부유형이 없거나 또는 선택되지 않았습니다.", "I999" );
  886. grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag")) = "N";
  887. }
  888. }else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
  889. model.setValue("/root/main/prcp/prcplist/subcretno", "0");
  890. }
  891. } else {
  892. messageBox ( "외래 환자는 기왕증을 선택 할 수", "I004" );
  893. grd_prcplist.valueMatrix(1, grd_prcplist.colRef("anamneflag")) = "N";
  894. }
  895. } else if ( grd_prcplist.col == grd_prcplist.colref("drgacptflag")) {
  896. if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "A" ) { // PCA용 약제
  897. messageBox ( "급여구분이 '본인부담'으로 변경 됩니다.", "I" );
  898. model.setValue ( "/root/main/prcp/prcplist/payflagcd", "1" );
  899. } else if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "B" ) { // 미용성형
  900. messageBox ( "급여구분이 '비급여'로 변경 됩니다.", "I" );
  901. model.setValue ( "/root/main/prcp/prcplist/payflagcd", "2" );
  902. }
  903. }
  904. ]]>
  905. </script>
  906. </datagrid>
  907. <input id="input1" ref="/root/main/prcp/prcplist/prcpdelivefact" style="left:2px; top:122px; width:784px; height:19px; "/>
  908. <select1 id="radio1" ref="/root/main/prcp/prcplist/mealcalrcnts" disabled="true" appearance="full" cols="5" overflow="visible" style="left:594px; top:32px; width:188px; height:20px; border-style:none; ">
  909. <choices>
  910. <item>
  911. <label>1차</label>
  912. <value>1</value>
  913. </item>
  914. <item>
  915. <label>2차</label>
  916. <value>2</value>
  917. </item>
  918. <item>
  919. <label>3차</label>
  920. <value>3</value>
  921. </item>
  922. <item>
  923. <label>4차</label>
  924. <value>4</value>
  925. </item>
  926. <item>
  927. <label>5차</label>
  928. <value>5</value>
  929. </item>
  930. </choices>
  931. </select1>
  932. <button id="button3" class="btn2_letter2" style="left:738px; top:7px; width:42px; height:19px; ">
  933. <caption>취소</caption>
  934. <script type="javascript" ev:event="DOMFocusIn">
  935. <![CDATA[
  936. model.setValue ( "/root/main/prcp/prcplist/mealcalrcnts", "0" );
  937. model.refresh();
  938. ]]>
  939. </script>
  940. </button>
  941. <select1 id="radio2" ref="/root/main/prcp/prcplist/hosinhosoutflag" appearance="full" overflow="visible" style="left:490px; top:80px; width:14px; height:20px; border-style:none; ">
  942. <choices>
  943. <item>
  944. <label/>
  945. <value>I</value>
  946. </item>
  947. </choices>
  948. <script type="javascript" ev:event="xforms-value-changed">
  949. <![CDATA[
  950. fChkHosInResnCd();
  951. ]]>
  952. </script>
  953. </select1>
  954. <select1 id="radio3" ref="/root/main/prcp/prcplist/hosinhosoutflag" appearance="full" overflow="visible" style="left:520px; top:80px; width:14px; height:20px; border-style:none; ">
  955. <choices>
  956. <item>
  957. <label/>
  958. <value>O</value>
  959. </item>
  960. </choices>
  961. <script type="javascript" ev:event="xforms-value-changed">
  962. <![CDATA[
  963. fChkHosInResnCd();
  964. ]]>
  965. </script>
  966. </select1>
  967. <button id="button4" class="icon_search" style="left:76px; top:104px; width:16px; height:16px; ">
  968. <caption/>
  969. <script type="javascript" ev:event="DOMActivate">
  970. <![CDATA[
  971. var sPrnPrcpFlag = model.getValue ( "/root/main/prcp/prcplist/prnprcpflag"); // PRN 처방여부
  972. if(sPrnPrcpFlag == "Y") {
  973. messageBox ( "PRN처방은 전달사항을 수정할수 없습니다.", "E" );
  974. } else {
  975. setParameter ( "SPMMB02200_cond2", "3" );
  976. fPrcpModal ( "SPMMB02200", 50, 50 );
  977. model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", getParameter ( "SPMMB02200_clinccmt" ));
  978. model.refresh();
  979. }
  980. ]]>
  981. </script>
  982. </button>
  983. <button id="btn_srchexecdept" class="icon_search" style="left:305px; top:58px; width:16px; height:16px; ">
  984. <caption/>
  985. <script type="javascript" ev:event="DOMActivate">
  986. <![CDATA[
  987. modal("SPMMB02500");
  988. ]]>
  989. </script>
  990. </button>
  991. <select1 id="rdo_clinccmtcnts" ref="/root/main/prcp/prcplist/clinccmtcnts" appearance="full" rows="2" vcellspacing="2" overflow="visible" style="left:3px; top:175px; width:231px; height:35px; border-style:none; ">
  992. <choices>
  993. <item>
  994. <label>1. 다음 진료일까지의 기간이 30일 초과</label>
  995. <value>1. 다음 진료일까지의 기간이 30일 초과</value>
  996. </item>
  997. <item>
  998. <label>2. 기타</label>
  999. <value>2. 기타</value>
  1000. </item>
  1001. </choices>
  1002. <script type="javascript" ev:event="xforms-value-changed">
  1003. <![CDATA[
  1004. if(rdo_clinccmtcnts.label == "2. 기타"){
  1005. ipt_clinccmtcnts.disabled = false;
  1006. }else{
  1007. ipt_clinccmtcnts.value = "";
  1008. ipt_clinccmtcnts.disabled = true;
  1009. }
  1010. model.refresh();
  1011. ]]>
  1012. </script>
  1013. </select1>
  1014. <input id="ipt_clinccmtcnts" ref="/root/main/temp/clinccmtcnts" disabled="true" style="left:67px; top:194px; width:593px; height:19px; "/>
  1015. <caption id="caption1" class="tit_2" visibility="hidden" style="left:2px; top:155px; width:82px; height:13px; ">PRN</caption>
  1016. <caption id="caption2" visibility="hidden" style="left:50px; top:153px; width:35px; height:20px; ">횟수:</caption>
  1017. <caption id="caption3" visibility="hidden" style="left:110px; top:153px; width:56px; height:20px; ">회 사유:</caption>
  1018. <caption id="caption4" visibility="hidden" style="left:385px; top:153px; width:55px; height:20px; ">투여간격:</caption>
  1019. <output id="output2" ref="/root/main/temp/prntms" visibility="hidden" style="left:85px; top:154px; width:25px; height:19px; border-color:#c0c0c0; border-style:solid; "/>
  1020. <output id="output4" ref="/root/main/temp/prnresncmt" visibility="hidden" style="left:255px; top:154px; width:125px; height:19px; border-color:#c0c0c0; border-style:solid; "/>
  1021. <output id="output1" ref="/root/main/temp/prnterm" visibility="hidden" style="left:440px; top:154px; width:220px; height:19px; border-color:#c0c0c0; border-style:solid; "/>
  1022. <select1 id="combo1" ref="/root/main/temp/prnprcpresncd" disabled="true" visibility="hidden" appearance="minimal" style="left:165px; top:154px; width:85px; height:19px; ">
  1023. <choices>
  1024. <itemset nodeset="/root/main/temp/hardcd/hardcd">
  1025. <label ref="hardcdnm"/>
  1026. <value ref="hardcd"/>
  1027. </itemset>
  1028. </choices>
  1029. </select1>
  1030. </xhtml:body>
  1031. </xhtml:html>