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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMNE02302" position="absolute 0 0 813 470" titletext="파랑새심폐소생기록 처방기준자료" oninit="SPMNE02302_oninit" onload="SPMNE02302_onload" ontimer="SPMNE02302_ontimer">
  5. <Layouts>
  6. <Layout>
  7. <Shape position="absolute 0 31 165 45" linetype="horizontal" id="line1" class="line_1" style="strokepen:3 solid #33bbbbff;"/>
  8. <Grid position="absolute 0 40 165 465" id="grd_prcpdivslist" binddataset="ds_main_prcpdivsinfo_prcpdivslist" oncellclick="grd_prcpdivslist_oncellclick">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="0"/>
  13. <Column size="0"/>
  14. <Column size="0"/>
  15. <Column size="0"/>
  16. <Column size="0"/>
  17. <Column size="0"/>
  18. <Column size="0"/>
  19. <Column size="164"/>
  20. </Columns>
  21. <Rows>
  22. <Row size="24" band="head"/>
  23. <Row size="24"/>
  24. </Rows>
  25. <Band id="head">
  26. <Cell text="cdgrupid"/>
  27. <Cell col="1" text="cdid"/>
  28. <Cell col="2" text="valifromdd"/>
  29. <Cell col="3" text="grupdetldesc"/>
  30. <Cell col="4" text="sortseq"/>
  31. <Cell col="5" text="valitodd"/>
  32. <Cell col="6" text="supcdid"/>
  33. <Cell col="7" text="분류명"/>
  34. </Band>
  35. <Band id="body">
  36. <Cell text="bind:cdgrupid"/>
  37. <Cell col="1" text="bind:cdid"/>
  38. <Cell col="2" text="bind:valifromdd"/>
  39. <Cell col="3" text="bind:grupdetldesc"/>
  40. <Cell col="4" text="bind:sortseq"/>
  41. <Cell col="5" text="bind:valitodd"/>
  42. <Cell col="6" text="bind:supcdid"/>
  43. <Cell col="7" text="bind:cdnm"/>
  44. </Band>
  45. </Format>
  46. </Formats>
  47. </Grid>
  48. <Static text="기록분류" position="absolute 0 19 100 35" id="caption1" class="tit_2"/>
  49. <Button position="absolute 120 10 220 30" id="button1" visible="false" text="button1"/>
  50. <Grid position="absolute 170 40 810 465" id="grd_prcplist" class="datagrid2" binddataset="ds_main_prcpset_prcplist" onkeydown="grd_prcplist_onkeydown" onenteredit="grd_prcplist_onenteredit" autoenter="select" oncelldblclick="grd_prcplist_oncelldblclick" cellsizingtype="both" extendsizetype="both" cellsizebandtype="allband">
  51. <Formats>
  52. <Format id="default">
  53. <Columns>
  54. <Column size="27" band="left"/>
  55. <Column size="40"/>
  56. <Column size="100"/>
  57. <Column size="296"/>
  58. <Column size="0"/>
  59. <Column size="50"/>
  60. <Column size="31"/>
  61. <Column size="0"/>
  62. <Column size="50"/>
  63. <Column size="32"/>
  64. <Column size="80"/>
  65. <Column size="64"/>
  66. <Column size="0"/>
  67. </Columns>
  68. <Rows>
  69. <Row size="26" band="head"/>
  70. <Row size="24"/>
  71. </Rows>
  72. <Band id="head">
  73. <Cell/>
  74. <Cell col="1" text="상태"/>
  75. <Cell col="2" text="처방코드"/>
  76. <Cell col="3" text="처방명"/>
  77. <Cell col="4" text="총용량"/>
  78. <Cell col="5" text="1회&#10;용량"/>
  79. <Cell col="6" text="1회&#10;용량"/>
  80. <Cell col="7" text="총수량"/>
  81. <Cell col="8" text="1회&#10;수량"/>
  82. <Cell col="9" text="1회&#10;수량"/>
  83. <Cell col="10" text="등록일"/>
  84. <Cell col="11" text="등록자"/>
  85. <Cell col="12" text="caption1"/>
  86. </Band>
  87. <Band id="body">
  88. <Cell celltype="head"/>
  89. <Cell col="1" displaytype="combo" edittype="combo" text="bind:status" combodataset="ds_Sang" combocodecol="code" combodatacol="name"/>
  90. <Cell col="2" style="align:left top;padding:5 2 0 2;" text="bind:prcpcd" wordwrap="char"/>
  91. <Cell col="3" style="align:left top;padding:5 2 0 2;" text="bind:prcpnm" wordwrap="char"/>
  92. <Cell col="4" text="bind:prcpvol"/>
  93. <Cell col="5" displaytype="text" edittype="text" editfilter="none" style="align:right middle;" text="bind:drprcpetc7" editautoselect="true" editautoskip="false" editacceptsenter="false"/>
  94. <Cell col="6" style="align:right middle;" text="bind:prcpvolunitnm"/>
  95. <Cell col="7" style="align:right middle;" text="bind:prcpqty"/>
  96. <Cell col="8" displaytype="text" edittype="text" style="align:right middle;" text="bind:drprcpetc8"/>
  97. <Cell col="9" style="align:right middle;" text="bind:prcpqtyunitnm"/>
  98. <Cell col="10" displaytype="date" edittype="date" text="bind:rgstdd" mask="yyyy-MM-dd" maskchar=" " calendardisplaynulltype="none"/>
  99. <Cell col="11" text="bind:rgstnm"/>
  100. <Cell col="12" text="bind:setcd"/>
  101. </Band>
  102. </Format>
  103. </Formats>
  104. </Grid>
  105. <Static text="처방기준자료내역" position="absolute 170 19 306 35" id="caption2" class="tit_2"/>
  106. <Shape position="absolute 169 35 810 41" linetype="horizontal" id="line2" class="line_1" style="strokepen:3 solid #33bbbbff;"/>
  107. <Button position="absolute 675 15 717 34" id="btn_add" class="btn2" text="추가" onclick="btn_add_onclick"/>
  108. <Button position="absolute 720 15 762 34" id="btn_del" class="btn2" text="삭제" onclick="btn_del_onclick"/>
  109. <Button position="absolute 765 15 807 34" id="btn_sav" class="btn5" text="저장" onclick="btn_sav_onclick"/>
  110. </Layout>
  111. </Layouts>
  112. <Objects>
  113. <Dataset id="ds_main_prcpdivsinfo_prcpdivslist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="cdgrupid" type="STRING"/>
  116. <Column id="cdid" type="STRING"/>
  117. <Column id="valifromdd" type="STRING"/>
  118. <Column id="grupdetldesc" type="STRING"/>
  119. <Column id="sortseq" type="STRING"/>
  120. <Column id="valitodd" type="STRING"/>
  121. <Column id="supcdid" type="STRING"/>
  122. <Column id="cdnm" type="STRING"/>
  123. </ColumnInfo>
  124. </Dataset>
  125. <Dataset id="ds_main_prcpset_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_prcplist_oncolumnchanged">
  126. <ColumnInfo>
  127. <Column id="status" type="STRING"/>
  128. <Column id="prcpcd" type="STRING"/>
  129. <Column id="prcpnm" type="STRING"/>
  130. <Column id="prcpvol" type="STRING"/>
  131. <Column id="drprcpetc7" type="STRING"/>
  132. <Column id="prcpvolunitnm" type="STRING"/>
  133. <Column id="prcpqty" type="STRING"/>
  134. <Column id="drprcpetc8" type="STRING"/>
  135. <Column id="prcpqtyunitnm" type="STRING"/>
  136. <Column id="rgstdd" type="STRING"/>
  137. <Column id="rgstnm" type="STRING"/>
  138. <Column id="setcd" type="STRING"/>
  139. </ColumnInfo>
  140. </Dataset>
  141. <Dataset id="ds_Sang" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  142. <ColumnInfo>
  143. <Column id="code" type="STRING" size="256"/>
  144. <Column id="name" type="STRING" size="256"/>
  145. </ColumnInfo>
  146. <Rows>
  147. <Row>
  148. <Col id="code">I</Col>
  149. <Col id="name">추가</Col>
  150. </Row>
  151. <Row>
  152. <Col id="code">D</Col>
  153. <Col id="name">삭제</Col>
  154. </Row>
  155. <Row>
  156. <Col id="code">U</Col>
  157. <Col id="name">수정</Col>
  158. </Row>
  159. </Rows>
  160. </Dataset>
  161. <Dataset id="ds_senddata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  162. <Dataset id="ds_DrugCalc2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  163. <ColumnInfo>
  164. <Column id="prcpvol" type="STRING" size="256"/>
  165. <Column id="prcpqty" type="STRING" size="256"/>
  166. <Column id="prcptims" type="STRING" size="256"/>
  167. <Column id="drprcpetc7" type="STRING" size="256"/>
  168. <Column id="drprcpetc8" type="STRING" size="256"/>
  169. </ColumnInfo>
  170. <Rows>
  171. <Row/>
  172. </Rows>
  173. </Dataset>
  174. </Objects>
  175. <Bind/>
  176. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  177. * System Name :
  178. * Job Name : 추민수
  179. * Creator :
  180. * Make Date : 2016-05-13
  181. * Description :
  182. *---------------------------------------------------------------------------------------
  183. * Modify Date Modifier Modify Description
  184. *---------------------------------------------------------------------------------------
  185. * 2015-11-13 Live Converter TF->XP
  186. *
  187. *---------------------------------------------------------------------------------------
  188. ****************************************************************************************/
  189. include "com_commonxp::comm_main.xjs";
  190. include "emr_prcpmngtxp::MMO001.xjs";
  191. function SPMNE02302_oninit(obj:Form, e:InitEventInfo)
  192. {
  193. frmf_initForm(obj);
  194. grdf_initGrid(grd_prcpdivslist);
  195. grdf_initGrid(grd_prcplist);
  196. grdf_setRowTypeIcon(grd_prcplist, 0);
  197. }
  198. function SPMNE02302_onload(obj:Form, e:LoadEventInfo)
  199. {
  200. dsf_createDsRow("ds_cond", [{col: "cdgrupid", val:"U15" }]);
  201. //속도개선
  202. this.setTimer(0, 100);
  203. // fSearch();
  204. //
  205. // if(frmf_checkOpener())
  206. // {
  207. // //openflag = opener.javascript.getParameter("openflag");
  208. // openflag = opener.frmf_getParameter("openflag");
  209. //
  210. // if(openflag == "1")
  211. // {
  212. // btn_add.visible = false;
  213. // btn_del.visible = false;
  214. // btn_sav.visible = false;
  215. // }//(openflag == "1")
  216. // else
  217. // {}
  218. // }//(checkOpener())
  219. }
  220. function fSearch()
  221. {
  222. var sPRCPLIST_PATH2 = ds_main_prcpset_prcplist;
  223. var openflag = "";
  224. var oParam = {};
  225. oParam.id = "TRMNE02307";
  226. oParam.service = "ercareapp.ERRec";
  227. oParam.method = "reqGetPrcpDivsInfo";
  228. oParam.inds = "req=ds_cond";
  229. oParam.outds = "ds_main_prcpdivsinfo_prcpdivslist=prcpdivslist";
  230. oParam.async = false;
  231. tranf_submit(oParam);
  232. }
  233. function grd_prcpdivslist_oncellclick(obj:Grid, e:GridClickEventInfo)
  234. {
  235. var cdid ;
  236. // if(grd_prcpdivslist.isCell(event.target) && grd_prcpdivslist.mouseRow >= grd_prcpdivslist.fixedrows)
  237. // {
  238. // fSearch2();
  239. // }
  240. if( ds_main_prcpdivsinfo_prcpdivslist.rowposition > -1 )
  241. {
  242. fSearch2();
  243. }
  244. }
  245. function fSearch2()
  246. {
  247. cdid = ds_main_prcpdivsinfo_prcpdivslist.getColumn(ds_main_prcpdivsinfo_prcpdivslist.rowposition, "cdid");
  248. dsf_createDsRow("ds_send_reqdata", [{col: "cdid", val:cdid }
  249. , {col: "openflag", val:openflag }
  250. , {col: "issdeptcd", val:sysf_getModelProperty("issdeptcd") }
  251. ]);
  252. var oParam = {};
  253. oParam.id = "TRMNE02308";
  254. oParam.service = "ercareapp.ERRec";
  255. oParam.method = "reqGetPrcpBaseInfo";
  256. oParam.inds = "req=ds_send_reqdata";
  257. oParam.outds = "ds_main_prcpset_prcplist=prcpbaselist";
  258. oParam.async = false;
  259. tranf_submit(oParam);
  260. if(openflag =="1")
  261. {
  262. grd_prcplist.readonly = true;
  263. // for(var i = 0; i < ds_grd_prcplist.rows; i++)
  264. // {
  265. // ds_grd_prcplist.isReadOnly(i, 0, i, ds_grd_prcplist.cols -1) = true;
  266. // }
  267. }
  268. }
  269. function btn_add_onclick(obj:Button, e:ClickEventInfo)
  270. {
  271. frmf_setParameter("scrnflag", "set");
  272. frmf_setParameter("rtnpath" , "ds_main_prcpset_prcplist");
  273. frmf_setParameter("srchParam", "srchPRCD");
  274. frmf_setParameter("srchflag", "1");
  275. frmf_open("SPMNW11100", "SPMNW11100", "", null, "1", "100", "500", null, null, null, null, null, "M");
  276. //frmf_modal("SPMNW11100", "SPMNW11100", "", null, "1", "100", "500", null, null, null, null, null, "M");
  277. }
  278. function btn_del_onclick(obj:Button, e:ClickEventInfo)
  279. {
  280. var arrPostion = new Array();
  281. arrPostion[0] = ds_main_prcpset_prcplist.rowposition;
  282. grdf_setStatus(grd_prcplist, "D", arrPostion);
  283. }
  284. function btn_sav_onclick(obj:Button, e:ClickEventInfo)
  285. {
  286. ds_senddata.clearData();
  287. for(var i = 0; i < ds_main_prcpset_prcplist.rowcount ;i++)
  288. {
  289. if(ds_main_prcpset_prcplist.getColumn(i, "status") == "I")
  290. {
  291. ds_main_prcpset_prcplist.setColumn(i, "setcd", ds_main_prcpdivsinfo_prcpdivslist.getColumn(ds_main_prcpdivsinfo_prcpdivslist.rowposition, "cdid"));
  292. }
  293. }
  294. var tmp = grdf_getGridUpdateData(grd_prcplist, "all");
  295. grdf_setStatusColumn(tmp, "status");
  296. ds_senddata.copyData(tmp, true);
  297. var oParam = {};
  298. oParam.id = "TXMNE02308";
  299. oParam.service = "ercareapp.ERRec";
  300. oParam.method = "reqExePrcpSetList";
  301. oParam.inds = "prcplist=ds_senddata";
  302. oParam.async = false;
  303. tranf_submit(oParam);
  304. fSearch2();
  305. }
  306. function grd_prcplist_onkeydown(obj:Grid, e:KeyEventInfo)
  307. {
  308. if( e.keycode == 13 ){
  309. //obj.moveToNextCell();
  310. obj.showEditor(false);
  311. }
  312. }
  313. function fClickRtn2()
  314. {
  315. var iRow = ds_main_prcpset_prcplist.rowposition;
  316. if(iRow>-1)
  317. {
  318. if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "prcpvol"))
  319. {
  320. if(!isNaN(ds_main_prcpset_prcplist.getColumn(iRow, "prcpvol")))
  321. {
  322. DrugCalc2 ("prcpvol" , iRow);
  323. }
  324. else
  325. {
  326. ds_main_prcpset_prcplist.setColumn(iRow, "prcpvol", ds_DrugCalc2.getColumn(0, "prcpvol"))
  327. }
  328. }
  329. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "prcpqty"))
  330. {
  331. if(!isNaN(ds_main_prcpset_prcplist.getColumn(iRow, "prcpqty")))
  332. {
  333. DrugCalc2 ("prcpqty" , iRow);
  334. }
  335. else
  336. {
  337. ds_main_prcpset_prcplist.setColumn(iRow, "prcpqty", ds_DrugCalc2.getColumn(0, "prcpqty"))
  338. }
  339. }
  340. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "prcptims"))
  341. {
  342. if(!isNaN(ds_main_prcpset_prcplist.getColumn(iRow, "prcptims")))
  343. {
  344. DrugCalc2 ("prcptims" , iRow);
  345. }
  346. else
  347. {
  348. ds_main_prcpset_prcplist.setColumn(iRow, "prcptims", ds_DrugCalc2.getColumn(0, "prcptims"))
  349. }
  350. }
  351. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "drprcpetc7"))
  352. {
  353. if(!isNaN(ds_main_prcpset_prcplist.getColumn(iRow, "drprcpetc7")))
  354. {
  355. DrugCalc2 ("drprcpetc7" , iRow);
  356. }
  357. else
  358. {
  359. ds_main_prcpset_prcplist.setColumn(iRow, "drprcpetc7", ds_DrugCalc2.getColumn(0, "drprcpetc7"))
  360. }
  361. }
  362. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "drprcpetc8"))
  363. {
  364. if(!isNaN(ds_main_prcpset_prcplist.getColumn(iRow, "drprcpetc8")))
  365. {
  366. DrugCalc2 ("drprcpetc8" , iRow);
  367. }
  368. else
  369. {
  370. ds_main_prcpset_prcplist.setColumn(iRow, "drprcpetc8", ds_DrugCalc2.getColumn(0, "drprcpetc8"))
  371. }
  372. }
  373. }
  374. }
  375. function fSetPrcpVolQty()
  376. {
  377. var iRow = ds_main_prcpset_prcplist.rowposition;
  378. //sysf_trace(iRow);
  379. if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "prcpvol"))
  380. {
  381. ds_DrugCalc2.setColumn(0, "prcpvol", ds_main_prcpset_prcplist.getColumn(iRow, "prcpvol"));
  382. }
  383. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "prcpqty"))
  384. {
  385. ds_DrugCalc2.setColumn(0, "prcpqty", ds_main_prcpset_prcplist.getColumn(iRow, "prcpqty"));
  386. }
  387. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "prcptims"))
  388. {
  389. ds_DrugCalc2.setColumn(0, "prcptims", ds_main_prcpset_prcplist.getColumn(iRow, "prcptims"));
  390. }
  391. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "drprcpetc7"))
  392. {
  393. ds_DrugCalc2.setColumn(0, "drprcpetc7", ds_main_prcpset_prcplist.getColumn(iRow, "drprcpetc7"));
  394. }
  395. else if(grd_prcplist.currentcol == grd_prcplist.getBindCellIndex("body", "drprcpetc8"))
  396. {
  397. ds_DrugCalc2.setColumn(0, "drprcpetc8", ds_main_prcpset_prcplist.getColumn(iRow, "drprcpetc8"));
  398. }
  399. }
  400. function DrugCalc2 ( flag, curRow )
  401. {
  402. var PrcpVol = ds_main_prcpset_prcplist.getColumn(curRow, "prcpvol" );
  403. if ( utlf_isNull(PrcpVol) || PrcpVol == 0 )
  404. {
  405. PrcpVol = "1";
  406. }
  407. var PrcpQty = ds_main_prcpset_prcplist.getColumn(curRow, "prcpqty" );
  408. if ( utlf_isNull(PrcpQty) || PrcpQty == 0 ){
  409. PrcpQty = "1";
  410. }
  411. var PrcpTims = ds_main_prcpset_prcplist.getColumn(curRow, "prcptims" );
  412. if ( utlf_isNull(PrcpTims) || PrcpTims == 0 ) {
  413. PrcpTims = "1";
  414. }
  415. var drprcpetc7 = ds_main_prcpset_prcplist.getColumn(curRow, "drprcpetc7" );
  416. if ( utlf_isNull(drprcpetc7) || drprcpetc7 == 0 || drprcpetc7 == "-") {
  417. drprcpetc7 = "1";
  418. }
  419. var drprcpetc8 = ds_main_prcpset_prcplist.getColumn(curRow, "drprcpetc8" );
  420. if ( utlf_isNull(drprcpetc8) || drprcpetc8 == 0 || drprcpetc8 == "-") {
  421. drprcpetc8 = "1";
  422. }
  423. var bfPrcpVol = ds_DrugCalc2.getColumn(0, "prcpvol" );
  424. if ( utlf_isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  425. bfPrcpVol = "1";
  426. }
  427. var bfPrcpQty = ds_DrugCalc2.getColumn(0, "prcpqty" );
  428. if ( utlf_isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  429. bfPrcpQty = "1";
  430. }
  431. var bfprcpTims = ds_DrugCalc2.getColumn(0, "prcptims" );
  432. if ( utlf_isNull(bfprcpTims) || bfprcpTims == 0 ) {
  433. bfprcpTims = "1";
  434. }
  435. var bfdrprcpetc7 = ds_DrugCalc2.getColumn(0, "drprcpetc7" );
  436. if ( utlf_isNull(bfdrprcpetc7) || bfdrprcpetc7 == 0 ) {
  437. bfdrprcpetc7 = "1";
  438. }
  439. var bfdrprcpetc8 = ds_DrugCalc2.getColumn(0, "drprcpetc8" );
  440. if ( utlf_isNull(bfdrprcpetc8) || bfdrprcpetc8 == 0 ) {
  441. bfdrprcpetc8 = "1";
  442. }
  443. var calcPrcpVol = 0;
  444. var calcPrcpQty = 0;
  445. var calcPrcpTimeVol = 0;
  446. var calcPrcpTimeQty = 0;
  447. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  448. var baseQty = lf_getArrayData(ds_main_prcpset_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 31, "^", "|");
  449. var baseVol = lf_getArrayData(ds_main_prcpset_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 32 , "^", "|" );
  450. var drugcntsvol = lf_getArrayData(ds_main_prcpset_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 1, "^", "|");
  451. var drugstndvol = lf_getArrayData(ds_main_prcpset_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 3, "^", "|");
  452. var drugpackvol = lf_getArrayData(ds_main_prcpset_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 5, "^", "|");
  453. var drugbasevol = lf_getArrayData(ds_main_prcpset_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 7, "^", "|");
  454. var baseTimeVol = drugcntsvol * drugbasevol / drugpackvol;
  455. var baseTimeQty = drugbasevol;
  456. sysf_trace(baseTimeVol);
  457. sysf_trace(baseTimeQty);
  458. if (ds_main_prcpset_prcplist.getColumn(curRow, "prcpclscd").substring( 0, 1 ) == "A" && !utlf_isNull(baseQty) && !utlf_isNull(baseVol))
  459. {
  460. // 용량을 수정했을 때: 수량 자동계산
  461. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol )
  462. {
  463. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  464. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  465. calcPrcpTimeQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeQty)*1000;
  466. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  467. calcPrcpTimeVol = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeVol)*1000;
  468. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  469. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  470. var cnclInptTxt = ds_main_prcpset_prcplist.getColumn(curRow, "prcpcd");
  471. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  472. if(ds_main_prcpset_prcplist.getColumn(curRow , "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1)
  473. {
  474. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  475. //model.setValue ( sPRCPLIST_PATH2 + "[" + curRow + "]/prcpvol", bfPrcpVol );
  476. //return;
  477. }//end
  478. ds_main_prcpset_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty );
  479. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol );
  480. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty );
  481. }// 용량을 수정했을 때: 수량 자동계산
  482. else if( flag == "prcpqty" && bfPrcpQty != PrcpQty )// 수량을 수정했을 때: 용량 자동계산
  483. {
  484. var prcpclscd = ds_main_prcpset_prcplist.getColumn(curRow, "prcpclscd" );
  485. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  486. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  487. calcPrcpTimeQty = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeQty)*1000;
  488. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  489. calcPrcpTimeVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeVol)*1000;
  490. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  491. ds_main_prcpset_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol );
  492. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol );
  493. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty );
  494. }// 수량을 수정했을 때: 용량 자동계산
  495. else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) // 용량을 수정했을 때: 수량 자동계산
  496. {
  497. calcPrcpQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseQty)*1000;
  498. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  499. calcPrcpTimeQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseTimeQty)*1000;
  500. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  501. calcPrcpVol = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseVol)*1000;
  502. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  503. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  504. var cnclInptTxt = ds_main_prcpset_prcplist.getColumn(curRow, "prcpcd");
  505. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  506. if(ds_main_prcpset_prcplist(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1)
  507. {
  508. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  509. }
  510. sysf_trace(calcPrcpQty);
  511. sysf_trace(calcPrcpVol);
  512. sysf_trace(calcPrcpTimeQty);
  513. ds_main_prcpset_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty );
  514. ds_main_prcpset_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol );
  515. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty );
  516. }// 용량을 수정했을 때: 수량 자동계산
  517. else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) // 수량을 수정했을 때: 용량 자동계산
  518. {
  519. calcPrcpVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseVol)*1000;
  520. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  521. calcPrcpTimeVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseTimeVol)*1000;
  522. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  523. calcPrcpQty = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseQty)*1000;
  524. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  525. ds_main_prcpset_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol );
  526. ds_main_prcpset_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty );
  527. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol );
  528. var prcpclscd = ds_main_prcpset_prcplist(curRow, "prcpclscd" );
  529. }// 수량을 수정했을 때: 용량 자동계산
  530. }//최상위//if (ds_grd_prcplist.getColumn(curRow, "prcpclscd").substring( 0, 1 ) == "A" && !utlf_isNull(baseQty) && !utlf_isNull(baseVol))
  531. else
  532. {
  533. if ( flag == "prcpvol" ) // 용량을 수정했을 때: 수량 자동계산
  534. {
  535. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  536. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  537. calcPrcpTimeVol = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc7)*1000;
  538. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  539. calcPrcpTimeQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc8)*1000;
  540. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  541. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  542. var cnclInptTxt = ds_main_prcpset_prcplist.getColumn(curRow, "prcpcd");
  543. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  544. if(ds_main_prcpset_prcplist.getColumn(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1)
  545. {
  546. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  547. } //end
  548. ds_main_prcpset_prcplist.setColumn(curRow + "prcpvol", PrcpVol );
  549. ds_main_prcpset_prcplist.setColumn(curRow + "prcpqty", calcPrcpQty );
  550. ds_main_prcpset_prcplist.setColumn(curRow + "drprcpetc7", calcPrcpTimeVol );
  551. ds_main_prcpset_prcplist.setColumn(curRow + "drprcpetc8", calcPrcpTimeQty );
  552. }// 용량을 수정했을 때: 수량 자동계산
  553. else if ( flag == "prcpqty" ) // 수량을 수정했을 때: 용량 자동계산
  554. {
  555. var prcpclscd = ds_main_prcpset_prcplist.getColumn(curRow, "prcpclscd" );
  556. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  557. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  558. calcPrcpTimeVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc7)*1000;
  559. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  560. calcPrcpTimeQty = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc8)*1000;
  561. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  562. ds_main_prcpset_prcplist.setColumn(curRow + "prcpvol", calcPrcpVol );
  563. ds_main_prcpset_prcplist.setColumn(curRow + "drprcpetc7", calcPrcpTimeVol );
  564. ds_main_prcpset_prcplist.setColumn(curRow + "drprcpetc8", calcPrcpTimeQty );
  565. }// 수량을 수정했을 때: 용량 자동계산
  566. else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 )
  567. { // 용량을 수정했을 때: 수량 자동계산
  568. sysf_trace("bfdrprcpetc7 " + bfdrprcpetc7);
  569. sysf_trace("drprcpetc7 " + drprcpetc7);
  570. sysf_trace("drprcpetc8 " + drprcpetc8);drprcpetc8
  571. calcPrcpTimeQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(drprcpetc8)*1000;
  572. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  573. calcPrcpVol = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpVol)*1000;
  574. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  575. calcPrcpQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpQty)*1000;
  576. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  577. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  578. var cnclInptTxt = ds_main_prcpset_prcplist.getColumn(curRow, "prcpcd");
  579. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  580. if(ds_main_prcpset_prcplist.getColumn(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1)
  581. {
  582. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  583. } //end
  584. sysf_trace(calcPrcpQty);
  585. sysf_trace(calcPrcpVol);
  586. sysf_trace(calcPrcpTimeQty);
  587. ds_main_prcpset_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty );
  588. ds_main_prcpset_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol );
  589. ds_main_prcpset_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty );
  590. }// 용량을 수정했을 때: 수량 자동계산
  591. else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) // 수량을 수정했을 때: 용량 자동계산
  592. {
  593. calcPrcpTimeVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(drprcpetc7)*1000;
  594. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  595. calcPrcpVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpVol)*1000;
  596. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  597. calcPrcpQty = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpQty)*1000;
  598. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  599. ds_main_prcpset_prcplist.setColumn(curRow , "prcpvol", calcPrcpVol );
  600. ds_main_prcpset_prcplist.setColumn(curRow , "prcpqty", calcPrcpQty );
  601. ds_main_prcpset_prcplist.setColumn(curRow , "drprcpetc7", calcPrcpTimeVol );
  602. var prcpclscd = ds_main_prcpset_prcplist.getColumn(curRow , "prcpclscd" );
  603. }// 수량을 수정했을 때: 용량 자동계산
  604. }//else
  605. }
  606. function grd_prcplist_onenteredit(obj:Grid, e:GridEditEventInfo)
  607. {
  608. fSetPrcpVolQty();
  609. }
  610. function ds_grd_prcplist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  611. {
  612. fClickRtn2();
  613. }
  614. function mnwAddNursPrcp(srcnode, trgtnode, currow, pflag){
  615. //목적지 노드에 처방instance를 copy한다.
  616. if(pflag == "popup"){
  617. var ds_trgtnode = eval("opener."+trgtnode);
  618. var nRow = ds_trgtnode.addRow();
  619. ds_trgtnode.copyRow(nRow, srcnode, currow);
  620. return nRow;
  621. }else{
  622. var ds_trgtnode = eval(trgtnode);
  623. var nRow = ds_trgtnode.addRow();
  624. ds_trgtnode.copyRow(nRow, srcnode, currow);
  625. return nRow;
  626. }
  627. }
  628. function grd_prcplist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  629. {
  630. if(openflag == "1" && ds_main_prcpset_prcplist.rowcount > 0)
  631. {
  632. var nRow = mnwAddNursPrcp(ds_main_prcpset_prcplist, "ds_main_recinfo_prcplist", ds_main_prcpset_prcplist.rowposition, "popup");
  633. var prcplist = opener.ds_main_recinfo_prcplist;
  634. var prcpclscd = prcplist.getColumn(prcplist.rowcount-1, "prcpclscd");
  635. if(prcpclscd == "A6")
  636. {
  637. dsf_makeValue(opener.ds_main_recinfo_prcplist, "drugmthdspccdnm", "string", "IV side", nRow);
  638. dsf_makeValue(opener.ds_main_recinfo_prcplist, "drugmthdspccd", "string", "IVSI", nRow);
  639. }
  640. dsf_makeValue(opener.ds_main_recinfo_prcplist, "recdd", "string", utlf_getCurrentDate(), nRow);//1
  641. dsf_makeValue(opener.ds_main_recinfo_prcplist, "rectm", "string", utlf_getCurrentTime().substr(0,4), nRow);//2
  642. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcpyn", "string", "Y", nRow); //3
  643. dsf_makeValue(opener.ds_main_recinfo_prcplist, "bfprcpyn", "string", "N", nRow);//4
  644. dsf_makeValue(opener.ds_main_recinfo_prcplist, "recrelayn", "string", "Y", nRow);//5
  645. dsf_makeValue(opener.ds_main_recinfo_prcplist, "bfrecrelayn", "string", "N", nRow);//6
  646. dsf_makeValue(opener.ds_main_recinfo_prcplist, "status", "string", "I", nRow);//7
  647. dsf_makeValue(opener.ds_main_recinfo_prcplist, "cmt", "string", "", nRow);//8
  648. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcpdd", "string", utlf_getCurrentDate(), nRow);//9
  649. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcphopedd", "string", utlf_getCurrentDate(), nRow);//10
  650. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcpno", "string", "0", nRow);//11
  651. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcphistno", "string", "0", nRow);//12
  652. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcpgenrflag", "string", "0", nRow);//13
  653. dsf_makeValue(opener.ds_main_recinfo_prcplist, "pid", "string", opener.pid, nRow);//14
  654. dsf_makeValue(opener.ds_main_recinfo_prcplist, "indd", "string", opener.indd, nRow);//15
  655. dsf_makeValue(opener.ds_main_recinfo_prcplist, "orddd", "string", opener.indd, nRow);//16
  656. dsf_makeValue(opener.ds_main_recinfo_prcplist, "cretno", "string", opener.cretno, nRow);//17
  657. dsf_makeValue(opener.ds_main_recinfo_prcplist, "aftcertflag", "string", "-", nRow);//18
  658. dsf_makeValue(opener.ds_main_recinfo_prcplist, "aftcertdrid", "string", "-", nRow);//19
  659. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcpvalidd", "string", "00000000", nRow);//20
  660. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcpexecdeptcd", "string", sysf_getUserInfo("dutplcecd"), nRow);//21
  661. dsf_makeValue(opener.ds_main_recinfo_prcplist, "cardarrgenrdt", "string", opener.cardarrgenrd, nRow);//22
  662. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcppkspec", "string", utlf_getCurrentDate() + "|" + "0" + "|" + "0" + "|" + sysf_getUserInfo("dutplceinstcd"), nRow);//23
  663. dsf_makeValue(opener.ds_main_recinfo_prcplist, "prcppkspec", "string", utlf_getCurrentDate() + "|" + "0" + "|" + "0" + "|" + sysf_getUserInfo("dutplceinstcd"), nRow);//24
  664. dsf_makeValue(opener.ds_main_recinfo_prcplist, "cardarrgenrdt", "string", opener.ipt_cardarrgenrdt.value, nRow);//24
  665. dsf_setDefaultVal(opener.ds_main_recinfo_prcplist, "editprcpyn:checkbox,status:-,prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-," +
  666. "drugmthdspccd:-,tootfact:-,clinccmtcnts:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0," +
  667. "dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N," +
  668. "diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-," +
  669. "rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-," +
  670. "diagtestconttestcdspec:-,drgacptflag:-,prcpyn:N,recrelayn:N,setcd:N,prcpdd:N,prcpno:N,prcphistno:N,prcppkspec:N," +
  671. "aftcertflag:N,aftcertdrid:N,prcpvalidd:N");
  672. // for(var i= 0; i < prcplist.rowcount; i++)
  673. // {
  674. // if(prcplist.getColumn(i, "status") == "I")
  675. // {
  676. // var arrPostion = new Array();
  677. // arrPostion[0] = i;
  678. // //grdf_setStatus(opener.grd_prcplist, "I", arrPostion);
  679. // }
  680. // }
  681. }
  682. }
  683. function SPMNE02302_ontimer(obj:Form, e:TimerEventInfo)
  684. {
  685. if (e.timerid == 0) {
  686. this.killTimer(0);
  687. fSearch();
  688. if(frmf_checkOpener())
  689. {
  690. //openflag = opener.javascript.getParameter("openflag");
  691. openflag = opener.frmf_getParameter("openflag");
  692. if(openflag == "1")
  693. {
  694. btn_add.visible = false;
  695. btn_del.visible = false;
  696. btn_sav.visible = false;
  697. }//(openflag == "1")
  698. else
  699. {}
  700. }//(checkOpener())
  701. }
  702. }
  703. ]]></Script>
  704. </Form>
  705. </FDL>