SPMNE02302_파랑새심폐소생처방기준자료.xrw 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  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. <cond/>
  11. <prcpdivsinfo>
  12. <prcpdivslist/>
  13. </prcpdivsinfo>
  14. <prcpbaseinfo>
  15. <prcpbaselist/>
  16. </prcpbaseinfo>
  17. <prcpset>
  18. <prcplist/>
  19. </prcpset>
  20. </main>
  21. <send>
  22. <reqdata/>
  23. <savedata/>
  24. </send>
  25. <DrugCalc2>
  26. <prcpvol/>
  27. <prcpqty/>
  28. <prcptims/>
  29. <drprcpetc7/>
  30. <drprcpetc8/>
  31. </DrugCalc2>
  32. </root>
  33. </instance>
  34. <script type="javascript" ev:event="xforms-ready">
  35. <![CDATA[
  36. model.removeNodeset(grd_prcplist.nodeset);
  37. // for(var i = grd_prcpdivslist.colRef("valifromdd"); i <= grd_prcpdivslist.colRef("supcdid"); i++) {
  38. // grd_prcpdivslist.colHidden(i) = true;
  39. // }
  40. // grd_prcpdivslist.attribute("width") = "400";
  41. model.makeValue("/root/main/cond/cdgrupid", "U15");
  42. fSearch();
  43. if(checkOpener()) {
  44. openflag = opener.javascript.getParameter("openflag");
  45. if(openflag == "1") {
  46. btn_add.visible = false;
  47. btn_del.visible = false;
  48. btn_sav.visible = false;
  49. } else {
  50. }
  51. }
  52. ]]>
  53. </script>
  54. <submission id="TRMNE02307" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/prcpdivsinfo"/>
  55. <submission id="TRMNE02308" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/prcpset"/>
  56. <submission id="TXMNE02307" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/temp"/>
  57. <submission id="TXMNE02308" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/temp"/>
  58. </model>
  59. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  60. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  61. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  62. <script type="javascript" src="../../../emr/carecomweb/js/CareCom.js"/>
  63. <script type="javascript">
  64. <![CDATA[
  65. var condPath = "/root/main/cond";
  66. var sendPath = "/root/send/reqdata";
  67. var savePath = "/root/send/savedata";
  68. var sPRCPLIST_PATH2 = "/root/main/prcpset/prcplist";
  69. var openflag = "";
  70. //기준자료구분 조회
  71. function fSearch() {
  72. model.removenode(sendPath);
  73. model.makeNode(sendPath);
  74. model.copyNode(sendPath, condPath);
  75. submit("TRMNE02307");
  76. }
  77. //선택한 기준자료 구분에 등록된 처방기준자료 조회.
  78. function fSearch2() {
  79. cdid = grd_prcpdivslist.valueMatrix(grd_prcpdivslist.row, grd_prcpdivslist.colRef("cdid"));
  80. model.makeValue("/root/send/reqdata/cdid", cdid);
  81. model.makeValue("/root/send/reqdata/openflag", openflag);
  82. model.makeValue("/root/send/reqdata/issdeptcd", model.property("issdeptcd"));
  83. submit("TRMNE02308");
  84. if(openflag =="1") {
  85. for(var i = grd_prcplist.fixedRows; i < grd_prcplist.rows; i++) {
  86. grd_prcplist.isReadOnly(i, 0, i, grd_prcplist.cols -1) = true;
  87. }
  88. }
  89. }
  90. /**
  91. * @desc : 간호처방 추가
  92. * @
  93. * @param : srcnode 원본노드
  94. * : trgtnode 목적지노드
  95. * : currow row값
  96. * : pflag 처리구분 popup에서 opener로 처리되는 경우, opener으로 설정
  97. * : status 상태구분(I:신규, U:수정, D:D/C)
  98. *
  99. * @return : trgtnode 목적지 노드 row
  100. * @author : 오지훈 2007.12.27
  101. * @---------------------------------------------------
  102. */
  103. function mnwAddNursPrcp(srcnode, trgtnode, currow, pflag){
  104. //목적지 노드에 처방instance를 copy한다.
  105. var node = model.instances(0).selectSingleNode(srcnode + "[" + currow + "]");
  106. if(pflag == "popup"){
  107. var desnode = opener.model.instances(0).selectSingleNode(trgtnode);
  108. var desnodelist = opener.model.instances(0).selectNodes(trgtnode);
  109. }else{
  110. var desnode = model.instances(0).selectSingleNode(trgtnode);
  111. var desnodelist = model.instances(0).selectNodes(trgtnode);
  112. }
  113. desnode.appendChild(node.cloneNode(true));
  114. return desnodelist.length;
  115. }
  116. function fSave() {
  117. }
  118. function fSetPrcpVolQty() {
  119. var curCol = grd_prcplist.col;
  120. var iRow = grd_prcplist.row;
  121. if(curCol == grd_prcplist.colRef("prcpvol")){
  122. model.setValue("/root/DrugCalc2/prcpvol", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpvol"));
  123. } else if(curCol == grd_prcplist.colRef("prcpqty")){
  124. model.setValue("/root/DrugCalc2/prcpqty", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpqty"));
  125. } else if(curCol == grd_prcplist.colRef("prcptims")){
  126. model.setValue("/root/DrugCalc2/prcptims", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcptims"));
  127. } else if(curCol == grd_prcplist.colRef("drprcpetc7")){
  128. model.setValue("/root/DrugCalc2/drprcpetc7", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc7"));
  129. } else if(curCol == grd_prcplist.colRef("drprcpetc8")){
  130. model.setValue("/root/DrugCalc2/drprcpetc8", model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc8"));
  131. }
  132. }
  133. function fClickRtn2() {
  134. var iRow = grd_prcplist.row;
  135. if(isDataCell()){
  136. //수량, 총용량 변경시
  137. if(grd_prcplist.col == grd_prcplist.colRef("prcpvol")){
  138. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpvol"))) {
  139. DrugCalc2 ("prcpvol" , iRow);
  140. } else {
  141. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpvol",model.getValue("/root/DrugCalc2/prcpvol"));
  142. }
  143. } else if(grd_prcplist.col == grd_prcplist.colRef("prcpqty")) {
  144. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpqty"))) {
  145. DrugCalc2 ("prcpqty" , iRow);
  146. } else {
  147. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcpqty",model.getValue("/root/DrugCalc2/prcpqty"));
  148. }
  149. } else if(grd_prcplist.col == grd_prcplist.colRef("drprcpetc7")) {
  150. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc7"))) {
  151. DrugCalc2 ("drprcpetc7" , iRow);
  152. } else {
  153. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc7",model.getValue("/root/DrugCalc2/drprcpetc7"));
  154. }
  155. } else if(grd_prcplist.col == grd_prcplist.colRef("drprcpetc8")) {
  156. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc8"))) {
  157. DrugCalc2 ("drprcpetc8" , iRow);
  158. } else {
  159. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/drprcpetc8",model.getValue("/root/DrugCalc2/drprcpetc8"));
  160. }
  161. } else if(grd_prcplist.col == grd_prcplist.colRef("prcptims")) {
  162. if(!isNaN(model.getValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcptims"))) {
  163. DrugCalc2 ("prcptims" , iRow);
  164. } else {
  165. model.setValue(sPRCPLIST_PATH2 + "[" + iRow + "]/prcptims",model.getValue("/root/DrugCalc2/prcptims"));
  166. }
  167. }
  168. grd_prcplist.refresh();
  169. }
  170. }
  171. function DrugCalc2 ( flag, curRow ) {
  172. var PrcpVol = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol" );
  173. if ( isNull(PrcpVol) || PrcpVol == 0 ) {
  174. PrcpVol = "1";
  175. }
  176. var PrcpQty = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty" );
  177. if ( isNull(PrcpQty) || PrcpQty == 0 ){
  178. PrcpQty = "1";
  179. }
  180. var PrcpTims = model.getValue (sPRCPLIST_PATH2 + "[" + curRow + "]/prcptims" );
  181. if ( isNull(PrcpTims) || PrcpTims == 0 ) {
  182. PrcpTims = "1";
  183. }
  184. var drprcpetc7 = model.getValue (sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7" );
  185. if ( isNull(drprcpetc7) || drprcpetc7 == 0 || drprcpetc7 == "-") {
  186. drprcpetc7 = "1";
  187. }
  188. var drprcpetc8 = model.getValue (sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8" );
  189. if ( isNull(drprcpetc8) || drprcpetc8 == 0 || drprcpetc8 == "-") {
  190. drprcpetc8 = "1";
  191. }
  192. var bfPrcpVol = model.getValue ( "/root/DrugCalc2/prcpvol" );
  193. if ( isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  194. bfPrcpVol = "1";
  195. }
  196. var bfPrcpQty = model.getValue ( "/root/DrugCalc2/prcpqty" );
  197. if ( isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  198. bfPrcpQty = "1";
  199. }
  200. var bfprcpTims = model.getValue ( "/root/DrugCalc2/prcptims" );
  201. if ( isNull(bfprcpTims) || bfprcpTims == 0 ) {
  202. bfprcpTims = "1";
  203. }
  204. var bfdrprcpetc7 = model.getValue ( "/root/DrugCalc2/drprcpetc7" );
  205. if ( isNull(bfdrprcpetc7) || bfdrprcpetc7 == 0 ) {
  206. bfdrprcpetc7 = "1";
  207. }
  208. var bfdrprcpetc8 = model.getValue ( "/root/DrugCalc2/drprcpetc8" );
  209. if ( isNull(bfdrprcpetc8) || bfdrprcpetc8 == 0 ) {
  210. bfdrprcpetc8 = "1";
  211. }
  212. var calcPrcpVol = 0;
  213. var calcPrcpQty = 0;
  214. var calcPrcpTimeVol = 0;
  215. var calcPrcpTimeQty = 0;
  216. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  217. var baseQty = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 31 , "^", "|" );
  218. var baseVol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 32 , "^", "|" );
  219. var drugcntsvol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 1 , "^", "|" );
  220. var drugstndvol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 3 , "^", "|" );
  221. var drugpackvol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 5 , "^", "|" );
  222. var drugbasevol = getArrayData ( model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drugmastspec" ) + "^", 0, 7 , "^", "|" );
  223. var baseTimeVol = drugcntsvol * drugbasevol / drugpackvol;
  224. var baseTimeQty = drugbasevol;
  225. if (model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" ).substring ( 0, 1 ) == "A" && !isNull(baseQty) && !isNull(baseVol)) {
  226. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  227. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  228. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  229. calcPrcpTimeQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeQty)*1000;
  230. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  231. calcPrcpTimeVol = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeVol)*1000;
  232. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  233. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  234. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  235. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  236. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  237. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  238. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  239. //return;
  240. } //end
  241. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  242. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  243. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  244. } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  245. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  246. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  247. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  248. calcPrcpTimeQty = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeQty)*1000;
  249. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  250. calcPrcpTimeVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeVol)*1000;
  251. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  252. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  253. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  254. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  255. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  256. calcPrcpQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseQty)*1000;
  257. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  258. calcPrcpTimeQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseTimeQty)*1000;
  259. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  260. calcPrcpVol = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseVol)*1000;
  261. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  262. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  263. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  264. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  265. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  266. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  267. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  268. //return;
  269. } //end
  270. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  271. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  272. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  273. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  274. calcPrcpVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseVol)*1000;
  275. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  276. calcPrcpTimeVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseTimeVol)*1000;
  277. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  278. calcPrcpQty = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseQty)*1000;
  279. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  280. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  281. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  282. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  283. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  284. }
  285. } else {
  286. if ( flag == "prcpvol" ) { // 용량을 수정했을 때: 수량 자동계산
  287. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  288. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  289. calcPrcpTimeVol = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc7)*1000;
  290. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  291. calcPrcpTimeQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc8)*1000;
  292. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  293. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  294. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  295. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  296. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  297. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  298. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  299. //return;
  300. } //end
  301. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", PrcpVol );
  302. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  303. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  304. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  305. } else if ( flag == "prcpqty" ) { // 수량을 수정했을 때: 용량 자동계산
  306. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  307. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  308. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  309. calcPrcpTimeVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc7)*1000;
  310. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  311. calcPrcpTimeQty = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc8)*1000;
  312. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  313. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  314. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  315. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  316. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  317. calcPrcpTimeQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(drprcpetc8)*1000;
  318. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  319. calcPrcpVol = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpVol)*1000;
  320. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  321. calcPrcpQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpQty)*1000;
  322. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  323. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  324. var cnclInptTxt = model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/prcpcd");
  325. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  326. if(model.getValue(sPRCPLIST_PATH2 + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  327. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  328. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  329. //return;
  330. } //end
  331. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  332. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  333. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  334. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  335. calcPrcpTimeVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(drprcpetc7)*1000;
  336. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  337. calcPrcpVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpVol)*1000;
  338. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  339. calcPrcpQty = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpQty)*1000;
  340. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  341. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", calcPrcpVol );
  342. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpqty", calcPrcpQty );
  343. model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  344. var prcpclscd = model.getValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpclscd" );
  345. }
  346. }
  347. }
  348. ]]>
  349. </script>
  350. </xhtml:head>
  351. <xhtml:body pagewidth="830" pageheight="470" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  352. <line id="line1" class="line_1" style="x1:0px; y1:35px; x2:165px; y2:35px; "/>
  353. <datagrid id="grd_prcpdivslist" nodeset="/root/main/prcpdivsinfo/prcpdivslist" caption="cdgrupid^cdid^valifromdd^grupdetldesc^sortseq^valitodd^supcdid^분류명" colsep="^" colwidth="0, 0, 0, 0, 0, 0,0, 144" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:40px; width:165px; height:425px; ">
  354. <col ref="cdgrupid" visibility="hidden"/>
  355. <col ref="cdid" visibility="hidden"/>
  356. <col ref="valifromdd" visibility="hidden"/>
  357. <col ref="grupdetldesc" visibility="hidden"/>
  358. <col ref="sortseq" visibility="hidden"/>
  359. <col ref="valitodd" visibility="hidden"/>
  360. <col ref="supcdid" visibility="hidden"/>
  361. <col ref="cdnm"/>
  362. <script type="javascript" ev:event="onclick">
  363. <![CDATA[
  364. var cdid ;
  365. if(grd_prcpdivslist.isCell(event.target) && grd_prcpdivslist.mouseRow >= grd_prcpdivslist.fixedrows){
  366. fSearch2();
  367. }
  368. ]]>
  369. </script>
  370. </datagrid>
  371. <caption id="caption1" class="tit_2" style="left:0px; top:20px; width:100px; height:15px; ">기록분류</caption>
  372. <button id="button1" visibility="hidden" style="left:120px; top:10px; width:100px; height:20px; ">
  373. <caption>button1</caption>
  374. </button>
  375. <datagrid id="grd_prcplist" nodeset="/root/main/prcpset/prcplist" class="datagrid2" caption="상태^처방코드^처방명^총용량^1회&#xA;용량^1회&#xA;용량^총수량^1회&#xA;수량^1회&#xA;수량^등록일^등록자^caption1" colsep="^" colwidth="40, 100, 296, 0, 50, 31, 0, 50, 32, 80, 64, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:170px; top:40px; width:640px; height:425px; ">
  376. <col ref="status" type="combo" style="text-align:center; ">
  377. <choices>
  378. <item>
  379. <label>추가</label>
  380. <value>I</value>
  381. </item>
  382. <item>
  383. <label>삭제</label>
  384. <value>D</value>
  385. </item>
  386. <item>
  387. <label>수정</label>
  388. <value>U</value>
  389. </item>
  390. <item>
  391. <label/>
  392. <value/>
  393. </item>
  394. </choices>
  395. </col>
  396. <col ref="prcpcd"/>
  397. <col ref="prcpnm"/>
  398. <col ref="prcpvol"/>
  399. <col ref="drprcpetc7" type="input" style="text-align:right; "/>
  400. <col ref="prcpvolunitnm" style="text-align:left; "/>
  401. <col ref="prcpqty"/>
  402. <col ref="drprcpetc8" type="input" style="text-align:right; "/>
  403. <col ref="prcpqtyunitnm" style="text-align:left; "/>
  404. <col ref="rgstdd" format="yyyy-mm-dd"/>
  405. <col ref="rgstnm"/>
  406. <col ref="setcd" visibility="hidden"/>
  407. <script type="javascript" ev:event="onstartedit">
  408. <![CDATA[
  409. fSetPrcpVolQty();
  410. ]]>
  411. </script>
  412. <script type="javascript" ev:event="xforms-value-changed">
  413. <![CDATA[
  414. fClickRtn2();
  415. ]]>
  416. </script>
  417. <script type="javascript" ev:event="ondblclick">
  418. <![CDATA[
  419. if(openflag == "1" && grd_prcplist.row > 0) {
  420. mnwAddNursPrcp(grd_prcplist.nodeset, "/root/main/recinfo", grd_prcplist.row, "popup");
  421. var prcplist = opener.model.instances(0).selectNodes("/root/main/recinfo/prcplist");
  422. var prcpclscd = opener.model.getValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpclscd");
  423. if(prcpclscd == "A6") {
  424. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/drugmthdspccdnm", "IV side");
  425. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/drugmthdspccd", "IVSI");
  426. }
  427. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/recdd", getCurrentDate());
  428. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/rectm", getCurrentTime().substr(0,4));
  429. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpyn", "Y");
  430. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/bfprcpyn", "N");
  431. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/recrelayn", "Y");
  432. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/bfrecrelayn", "N");
  433. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/status", "I");
  434. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/cmt", "");
  435. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpdd", getCurrentDate());
  436. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcphopedd", getCurrentDate());
  437. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpno", "0");
  438. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcphistno", "0");
  439. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpgenrflag", "0");
  440. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/pid", opener.javascript.pid);
  441. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/indd", opener.javascript.indd);
  442. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/orddd", opener.javascript.indd);
  443. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/cretno",opener.javascript.cretno);
  444. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/aftcertflag","-");
  445. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/aftcertdrid","-");
  446. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpvalidd","00000000");
  447. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcpexecdeptcd",getUserInfo("dutplcecd"));
  448. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/cardarrgenrdt", opener.javascript.cardarrgenrdt);
  449. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcppkspec", getCurrentDate() + "|" + "0" + "|" + "0" + "|" + getUserInfo("dutplceinstcd"));
  450. opener.model.makeValue("/root/main/recinfo/prcplist" + "[" + prcplist.length + "]/prcppkspec", getCurrentDate() + "|" + "0" + "|" + "0" + "|" + getUserInfo("dutplceinstcd"));
  451. opener.model.refresh();
  452. for(var i= 1; i <= prcplist.length; i++) {
  453. if(opener.model.getValue("/root/main/recinfo/prcplist" + "[" + i + "]/status") == "I") {
  454. opener.grd_prcplist.rowStatus(i) = "1";
  455. }
  456. }
  457. }
  458. ]]>
  459. </script>
  460. </datagrid>
  461. <caption id="caption2" class="tit_2" style="left:170px; top:20px; width:121px; height:13px; ">처방기준자료내역</caption>
  462. <line id="line2" class="line_1" style="x1:170px; y1:35px; x2:810px; y2:35px; "/>
  463. <button id="btn_add" class="btn2_letter2" style="left:675px; top:15px; width:42px; height:19px; ">
  464. <caption>추가</caption>
  465. <script type="javascript" ev:event="DOMActivate">
  466. <![CDATA[
  467. setParameter("scrnflag", "set");
  468. setParameter("rtnpath", "/root/main/prcpset/prcplist");
  469. setParameter("srchParam", "srchPRCD");
  470. setParameter("srchflag", "1");
  471. open("SPMNW11100","1","100","500");
  472. ]]>
  473. </script>
  474. </button>
  475. <button id="btn_del" class="btn2_letter2" style="left:720px; top:15px; width:42px; height:19px; ">
  476. <caption>삭제</caption>
  477. <script type="javascript" ev:event="DOMActivate">
  478. <![CDATA[
  479. if(grd_prcplist.valueMatrix(grd_prcplist.row, grd_prcplist.colRef("status")) == "I") {
  480. grd_prcplist.deleteRow(grd_prcplist.row);
  481. } else {
  482. grd_prcplist.rowStatus(grd_prcplist.row) = "4";
  483. }
  484. ]]>
  485. </script>
  486. </button>
  487. <button id="btn_sav" class="btn5_letter2" style="left:765px; top:15px; width:42px; height:19px; ">
  488. <caption>저장</caption>
  489. <script type="javascript" ev:event="DOMActivate">
  490. <![CDATA[
  491. for(var i = grd_prcplist.fixedRows; i < grd_prcplist.rows; i++) {
  492. if(grd_prcplist.valueMatrix(i, grd_prcplist.colRef("status")) == "I") {
  493. grd_prcplist.rowStatus(i) = "1";
  494. grd_prcplist.valueMatrix(i, grd_prcplist.colRef("setcd")) = grd_prcpdivslist.valueMatrix(grd_prcpdivslist.row, grd_prcpdivslist.colRef("cdid"));
  495. }
  496. }
  497. var prcplist = getGridUpdateData(grd_prcplist);
  498. model.makeValue("/root/send/savedata/prcplist", prcplist);
  499. submit("TXMNE02308");
  500. fSearch2();
  501. ]]>
  502. </script>
  503. </button>
  504. </xhtml:body>
  505. </xhtml:html>