SPMMP00200_미완성처방관리.xfdl 66 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMP00200" position="absolute 0 0 1208 434" titletext="오류처방" oninit="SPMMP00200_oninit" onload="SPMMP00200_onload" onclose="SPMMP00200_onclose">
  5. <Layouts>
  6. <Layout>
  7. <Div position="absolute 0 2 1204 383" id="div_all" scrollbars="none" style="border:1 solid transparent ;">
  8. <Layouts>
  9. <Layout>
  10. <Grid position="absolute 2 3 1202 378" id="grd_prcplist" binddataset="ds_main_prcplist" oncelldblclick="grp_contents_grd_prcplist_oncelldblclick" onrbuttondown="grp_contents_grd_prcplist_onrbuttondown" onkillfocus="grp_contents_grd_prcplist_onkillfocus" onsetfocus="grp_contents_grd_prcplist_onsetfocus" onmouseup="grp_contents_grd_prcplist_onmouseup" onenteredit="grp_contents_grd_prcplist_onenteredit" onkeydown="grp_contents_grd_prcplist_onkeydown" onkeyup="grp_contents_grd_prcplist_onkeyup" selecttype="multirow" anchor="default">
  11. <Formats>
  12. <Format id="default">
  13. <Columns>
  14. <Column size="29"/>
  15. <Column size="71"/>
  16. <Column size="80"/>
  17. <Column size="125"/>
  18. <Column size="384"/>
  19. <Column size="40"/>
  20. <Column size="30"/>
  21. <Column size="40"/>
  22. <Column size="30"/>
  23. <Column size="45"/>
  24. <Column size="45"/>
  25. <Column size="62"/>
  26. <Column size="150"/>
  27. <Column size="40"/>
  28. <Column size="40"/>
  29. <Column size="50"/>
  30. <Column size="97"/>
  31. <Column size="80"/>
  32. <Column size="58"/>
  33. <Column size="0"/>
  34. <Column size="0"/>
  35. <Column size="0"/>
  36. </Columns>
  37. <Rows>
  38. <Row size="24" band="head"/>
  39. <Row size="24"/>
  40. </Rows>
  41. <Band id="head">
  42. <Cell/>
  43. <Cell col="1" text="종류"/>
  44. <Cell col="2" text="처방일자"/>
  45. <Cell col="3" text="처방명"/>
  46. <Cell col="4" text="오류메세지"/>
  47. <Cell col="5" colspan="2" text="1회용량" taborder="undefined"/>
  48. <Cell col="7" colspan="2" text="1회수량" taborder="undefined"/>
  49. <Cell col="9" text="횟수"/>
  50. <Cell col="10" text="일수"/>
  51. <Cell col="11" text="급비"/>
  52. <Cell col="12" text="용법/검체"/>
  53. <Cell col="13" text="MIX"/>
  54. <Cell col="14" text="전달"/>
  55. <Cell col="15" text="원내외"/>
  56. <Cell col="16" text="처치부서"/>
  57. <Cell col="17" text="희망일자"/>
  58. <Cell col="18" text="선택진료"/>
  59. <Cell col="19" text="등록일시"/>
  60. <Cell col="20" text="등록자"/>
  61. <Cell col="21" text="처방코드"/>
  62. </Band>
  63. <Band id="body">
  64. <Cell displaytype="combo" edittype="none" style="align:center middle;" text="bind:status" combodataset="ds_status" combocodecol="value" combodatacol="label"/>
  65. <Cell col="1" displaytype="combo" edittype="combo" style="align:center middle;" text="bind:prcpkindcd" combodataset="ds_M0003" combocodecol="cdid" combodatacol="cdnm"/>
  66. <Cell col="2" displaytype="date" edittype="date" text="bind:prcpdd"/>
  67. <Cell col="3" style="align:left;" text="bind:prcpnm"/>
  68. <Cell col="4" style="align:left;" text="bind:incpltnresn" tooltiptype="bottom" tooltiptext="bind:incpltnresn"/>
  69. <Cell col="5" displaytype="number" edittype="masknumber" style="align:center middle;" text="bind:drprcpetc7" mask="#.#" editautoselect="true"/>
  70. <Cell col="6" displaytype="normal" text="bind:prcpvolunitnm"/>
  71. <Cell col="7" displaytype="number" edittype="masknumber" style="align:center middle;" text="bind:drprcpetc8" mask="expr:utlf_isNull(drprcpetc8) ? &quot;&quot; : &quot;####0.###&quot;" editautoselect="true"/>
  72. <Cell col="8" text="bind:prcpqtyunitnm"/>
  73. <Cell col="9" displaytype="number" edittype="masknumber" style="align:center middle;" text="bind:prcptims" editautoselect="true"/>
  74. <Cell col="10" displaytype="number" edittype="masknumber" style="align:center middle;" text="bind:prcpdayno" editautoselect="true"/>
  75. <Cell col="11" displaytype="combo" edittype="combo" text="bind:payflagcd" combodataset="ds_M0029" combocodecol="cdid" combodatacol="cdnm"/>
  76. <Cell col="12" displaytype="normal" style="align:left middle;" text="bind:drugmthdspccdnm"/>
  77. <Cell col="13" displaytype="text" edittype="text" text="bind:prcpmixno"/>
  78. <Cell col="14" text="bind:prcpdelivefact" tooltiptype="bottom" tooltiptext="bind:prcpdelivefact"/>
  79. <Cell col="15" displaytype="combo" edittype="combo" text="bind:hosinhosoutflag" combodataset="ds_hosinhosoutflag" combocodecol="value" combodatacol="label"/>
  80. <Cell col="16" displaytype="combo" edittype="combo" text="bind:prcpexecdeptcd"/>
  81. <Cell col="17" displaytype="date" edittype="date" text="bind:prcphopedd"/>
  82. <Cell col="18" displaytype="checkbox" edittype="checkbox" text="bind:choiordflag" expr="expr:(choiordflag == &quot;Y&quot; || choiordflag == 1) ? 1 : 0"/>
  83. <Cell col="19" text="bind:rgsttm"/>
  84. <Cell col="20" text="bind:rgstridnm"/>
  85. <Cell col="21" text="bind:prcpcd"/>
  86. </Band>
  87. </Format>
  88. </Formats>
  89. </Grid>
  90. <Calendar position="absolute 507 55 607 74" align="align:center middle;" id="cmb_prcpdd" class="input_s_essential" visible="false" anchor="default"/>
  91. <Div position="absolute 275 70 340 120" id="imp_prcp" visible="false" anchor="default"/>
  92. <Div position="absolute 350 70 415 120" id="ivw_detail" visible="false" anchor="default"/>
  93. <Grid position="absolute 430 70 500 120" align="align:center middle;" id="grd_diaglist" visible="false" binddataset="ds_main_diagcdlist" onmousedown="grp_contents_grd_diaglist_onmousedown" oncelldblclick="grp_contents_grd_diaglist_oncelldblclick" anchor="default">
  94. <Formats>
  95. <Format id="default">
  96. <Columns>
  97. <Column size="33"/>
  98. <Column size="40"/>
  99. <Column size="35"/>
  100. <Column size="80"/>
  101. <Column size="398"/>
  102. <Column size="0"/>
  103. <Column size="49"/>
  104. </Columns>
  105. <Rows>
  106. <Row size="24" band="head"/>
  107. <Row size="24"/>
  108. </Rows>
  109. <Band id="head">
  110. <Cell/>
  111. <Cell col="1" text="R/O"/>
  112. <Cell col="2" text="주"/>
  113. <Cell col="3" text="진단코드"/>
  114. <Cell col="4" text="진단명"/>
  115. <Cell col="5" text="diagremfact"/>
  116. <Cell col="6" text="특례"/>
  117. </Band>
  118. <Band id="body">
  119. <Cell text="bind:status"/>
  120. <Cell col="1" displaytype="checkbox" text="bind:diagkindcd"/>
  121. <Cell col="2" displaytype="checkbox" edittype="checkbox" text="bind:diagkindcdflag"/>
  122. <Cell col="3" displaytype="text" edittype="text" text="bind:icd10cd"/>
  123. <Cell col="4" displaytype="text" edittype="text" text="bind:diagengnm"/>
  124. <Cell col="5" text="bind:diagremfact"/>
  125. <Cell col="6" text="bind:spclinfo"/>
  126. </Band>
  127. </Format>
  128. </Formats>
  129. </Grid>
  130. </Layout>
  131. </Layouts>
  132. </Div>
  133. <Div position="absolute 0 384 1200 411" id="group1" scrollbars="none">
  134. <Layouts>
  135. <Layout>
  136. <Button position="absolute 1142 3 1198 25" id="btn_cancel" class="btn4" text="닫기" onclick="group1_btn_cancel_onclick" anchor="default"/>
  137. <Button position="absolute 1083 3 1139 25" id="btn_app" class="btn3" text="저장" onclick="group1_btn_app_onclick" anchor="default"/>
  138. </Layout>
  139. </Layouts>
  140. </Div>
  141. <Static text="미완성 처방" position="absolute 5 5 92 19" align="align:center middle;" id="caption1" class="tit_2" visible="false"/>
  142. <PopupMenu id="pmn_menu" innerdataset="ds_O_MouseR" idcolumn="func" captioncolumn="label" levelcolumn="level" onmenuclick="pmn_menu_onmenuclick" position="absolute 1252 16 1416 456"/>
  143. </Layout>
  144. </Layouts>
  145. <Objects>
  146. <Dataset id="ds_grd_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  147. <ColumnInfo>
  148. <Column id="status" type="STRING"/>
  149. <Column id="prcpkindcd" type="STRING"/>
  150. <Column id="prcpdd" type="STRING"/>
  151. <Column id="prcpnm" type="STRING"/>
  152. <Column id="incpltnresn" type="STRING"/>
  153. <Column id="drprcpetc7" type="STRING"/>
  154. <Column id="prcpvolunitnm" type="STRING"/>
  155. <Column id="drprcpetc8" type="STRING"/>
  156. <Column id="prcpqtyunitnm" type="STRING"/>
  157. <Column id="prcptims" type="STRING"/>
  158. <Column id="prcpdayno" type="STRING"/>
  159. <Column id="payflagcd" type="STRING"/>
  160. <Column id="drugmthdspccdnm" type="STRING"/>
  161. <Column id="prcpmixno" type="STRING"/>
  162. <Column id="prcpdelivefact" type="STRING"/>
  163. <Column id="hosinhosoutflag" type="STRING"/>
  164. <Column id="prcpexecdeptcd" type="STRING"/>
  165. <Column id="prcphopedd" type="STRING"/>
  166. <Column id="choiordflag" type="STRING"/>
  167. <Column id="rgsttm" type="STRING"/>
  168. <Column id="rgstridnm" type="STRING"/>
  169. <Column id="prcpcd" type="STRING"/>
  170. </ColumnInfo>
  171. </Dataset>
  172. <Dataset id="ds_grd_diaglist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  173. <ColumnInfo>
  174. <Column id="status" type="STRING"/>
  175. <Column id="diagkindcd" type="STRING"/>
  176. <Column id="diagkindcdflag" type="STRING"/>
  177. <Column id="icd10cd" type="STRING"/>
  178. <Column id="diagengnm" type="STRING"/>
  179. <Column id="diagremfact" type="STRING"/>
  180. <Column id="spclinfo" type="STRING"/>
  181. </ColumnInfo>
  182. </Dataset>
  183. <Dataset id="ds_main_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_main_prcplist_oncolumnchanged">
  184. <ColumnInfo>
  185. <Column id="status" type="STRING"/>
  186. <Column id="prcpkindcd" type="STRING"/>
  187. <Column id="prcpdd" type="STRING"/>
  188. <Column id="prcpnm" type="STRING"/>
  189. <Column id="incpltnresn" type="STRING"/>
  190. <Column id="drprcpetc7" type="STRING"/>
  191. <Column id="prcpvolunitnm" type="STRING"/>
  192. <Column id="drprcpetc8" type="STRING"/>
  193. <Column id="prcpqtyunitnm" type="STRING"/>
  194. <Column id="prcptims" type="STRING"/>
  195. <Column id="prcpdayno" type="STRING"/>
  196. <Column id="payflagcd" type="STRING"/>
  197. <Column id="drugmthdspccdnm" type="STRING"/>
  198. <Column id="prcpmixno" type="STRING"/>
  199. <Column id="prcpdelivefact" type="STRING"/>
  200. <Column id="hosinhosoutflag" type="STRING"/>
  201. <Column id="prcpexecdeptcd" type="STRING"/>
  202. <Column id="prcphopedd" type="STRING"/>
  203. <Column id="choiordflag" type="STRING"/>
  204. <Column id="rgsttm" type="STRING"/>
  205. <Column id="rgstridnm" type="STRING"/>
  206. <Column id="prcpcd" type="STRING"/>
  207. <Column id="tempcol6" type="STRING"/>
  208. </ColumnInfo>
  209. </Dataset>
  210. <Dataset id="ds_main_diagcdlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_main_diaglist_oncolumnchanged">
  211. <ColumnInfo>
  212. <Column id="status" type="STRING"/>
  213. <Column id="diagkindcd" type="STRING"/>
  214. <Column id="diagkindcdflag" type="STRING"/>
  215. <Column id="icd10cd" type="STRING"/>
  216. <Column id="diagengnm" type="STRING"/>
  217. <Column id="diagremfact" type="STRING"/>
  218. <Column id="spclinfo" type="STRING"/>
  219. </ColumnInfo>
  220. </Dataset>
  221. <Dataset id="ds_O_MouseR" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  222. <ColumnInfo>
  223. <Column id="func" type="STRING" size="256"/>
  224. <Column id="label" type="STRING" size="256"/>
  225. <Column id="level" type="STRING" size="256"/>
  226. </ColumnInfo>
  227. <Rows>
  228. <Row>
  229. <Col id="label">일괄입력</Col>
  230. <Col id="func">fPrcpDetlCom</Col>
  231. <Col id="level">0</Col>
  232. </Row>
  233. <Row>
  234. <Col id="label">-</Col>
  235. <Col id="func"/>
  236. <Col id="level">0</Col>
  237. </Row>
  238. <Row>
  239. <Col id="label">삭제</Col>
  240. <Col id="func">fDeleteRow</Col>
  241. <Col id="level">0</Col>
  242. </Row>
  243. <Row>
  244. <Col id="label">선택제외삭제</Col>
  245. <Col id="func">fDeleteElseRow</Col>
  246. <Col id="level">0</Col>
  247. </Row>
  248. <Row>
  249. <Col id="label">-</Col>
  250. <Col id="func"/>
  251. <Col id="level">0</Col>
  252. </Row>
  253. <Row>
  254. <Col id="label">복사</Col>
  255. <Col id="func">fDeletefPrcpCopyElseRow</Col>
  256. <Col id="level">0</Col>
  257. </Row>
  258. <Row>
  259. <Col id="label">잘라내기</Col>
  260. <Col id="func">fPrcpCrop</Col>
  261. <Col id="level">0</Col>
  262. </Row>
  263. <Row>
  264. <Col id="label">붙여넣기</Col>
  265. <Col id="func">fPrcpPaste</Col>
  266. <Col id="level">0</Col>
  267. </Row>
  268. <Row>
  269. <Col id="label">-</Col>
  270. <Col id="func"/>
  271. <Col id="level">0</Col>
  272. </Row>
  273. <Row>
  274. <Col id="label">용법복사</Col>
  275. <Col id="func">fMthdCopy</Col>
  276. <Col id="level">0</Col>
  277. </Row>
  278. <Row>
  279. <Col id="label">용법붙여넣기</Col>
  280. <Col id="func">fMthdPaste</Col>
  281. <Col id="level">0</Col>
  282. </Row>
  283. <Row>
  284. <Col id="label">-</Col>
  285. <Col id="func"/>
  286. <Col id="level">0</Col>
  287. </Row>
  288. <Row>
  289. <Col id="label">Pre work-up</Col>
  290. <Col id="func">fPreWorkUp</Col>
  291. <Col id="level">0</Col>
  292. </Row>
  293. <Row>
  294. <Col id="label">-</Col>
  295. <Col id="func"/>
  296. <Col id="level">0</Col>
  297. </Row>
  298. <Row>
  299. <Col id="label">Mix적용</Col>
  300. <Col id="func">fMixNoCnt</Col>
  301. <Col id="level">0</Col>
  302. </Row>
  303. <Row>
  304. <Col id="label">Mix취소</Col>
  305. <Col id="func">fMixNoDel</Col>
  306. <Col id="level">0</Col>
  307. </Row>
  308. <Row>
  309. <Col id="label">TPNMix적용</Col>
  310. <Col id="func">fTMixNoCnt</Col>
  311. <Col id="level">0</Col>
  312. </Row>
  313. <Row>
  314. <Col id="label">지정일</Col>
  315. <Col id="func">fContPrcpDd</Col>
  316. <Col id="level">0</Col>
  317. </Row>
  318. <Row>
  319. <Col id="label">치식</Col>
  320. <Col id="func">fDentifmla</Col>
  321. <Col id="level">0</Col>
  322. </Row>
  323. <Row>
  324. <Col id="label">검사의뢰서</Col>
  325. <Col id="func">fReqfrm</Col>
  326. <Col id="level">0</Col>
  327. </Row>
  328. <Row>
  329. <Col id="label">조영제동의서출력</Col>
  330. <Col id="func">fPrintfrm</Col>
  331. <Col id="level">0</Col>
  332. </Row>
  333. <Row>
  334. <Col id="label">-</Col>
  335. <Col id="func"/>
  336. <Col id="level">0</Col>
  337. </Row>
  338. <Row>
  339. <Col id="label">약품편람</Col>
  340. <Col id="func">fDrugInfo</Col>
  341. <Col id="level">0</Col>
  342. </Row>
  343. <Row>
  344. <Col id="label">수가조회</Col>
  345. <Col id="func">fOpenCalscorCD</Col>
  346. <Col id="level">0</Col>
  347. </Row>
  348. <Row>
  349. <Col id="label">투약일수조회</Col>
  350. <Col id="func">fMediDayNo</Col>
  351. <Col id="level">0</Col>
  352. </Row>
  353. <Row>
  354. <Col id="label">검사실별예약현황</Col>
  355. <Col id="func">fOpenExamRsrvInfo</Col>
  356. <Col id="level">0</Col>
  357. </Row>
  358. <Row>
  359. <Col id="label">보험정보조회</Col>
  360. <Col id="func">fOpenInsuInfo</Col>
  361. <Col id="level">0</Col>
  362. </Row>
  363. </Rows>
  364. </Dataset>
  365. <Dataset id="ds_main_masterinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  366. <ColumnInfo>
  367. <Column id="cpgflagcd" type="STRING" size="256"/>
  368. </ColumnInfo>
  369. </Dataset>
  370. <Dataset id="ds_temp1" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  371. <ColumnInfo>
  372. <Column id="cpgappno" type="STRING" size="256"/>
  373. <Column id="checkyn" type="STRING" size="256"/>
  374. <Column id="prcpgenrflag" type="STRING" size="256"/>
  375. <Column id="orddd" type="STRING" size="256"/>
  376. <Column id="cretno" type="STRING" size="256"/>
  377. <Column id="dschschedd" type="STRING" size="256"/>
  378. </ColumnInfo>
  379. <Rows>
  380. <Row/>
  381. </Rows>
  382. </Dataset>
  383. <Dataset id="ds_paminfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  384. <Dataset id="ds_patflag" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  385. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  386. <Dataset id="ds_main_prcp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  387. <Dataset id="ds_main_step" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  388. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  389. <ColumnInfo>
  390. <Column id="detlvw" type="STRING" size="256"/>
  391. <Column id="detlivw" type="STRING" size="256"/>
  392. <Column id="prcpkindcd" type="STRING" size="256"/>
  393. <Column id="prcpclscd" type="STRING" size="256"/>
  394. <Column id="prcpstatcd" type="STRING" size="256"/>
  395. <Column id="hosinprcpresncd" type="STRING" size="256"/>
  396. <Column id="payflagcd" type="STRING" size="256"/>
  397. <Column id="prcpdd" type="STRING" size="256"/>
  398. <Column id="patinfo" type="STRING" size="256"/>
  399. <Column id="diagdetlvw" type="STRING" size="256"/>
  400. <Column id="diagsrchcond1" type="STRING" size="256"/>
  401. <Column id="prcpauthflag" type="STRING" size="256"/>
  402. <Column id="pid" type="STRING" size="256"/>
  403. <Column id="orddept" type="STRING" size="256"/>
  404. <Column id="inclprcpno" type="STRING" size="256"/>
  405. <Column id="hsctlnkno" type="STRING" size="256"/>
  406. <Column id="prcpmixno" type="STRING" size="256"/>
  407. <Column id="srchbtn" type="STRING" size="256"/>
  408. <Column id="cropflag" type="STRING" size="256"/>
  409. <Column id="restantimicyn" type="STRING" size="256"/>
  410. <Column id="bfpayflagcd" type="STRING" size="256"/>
  411. <Column id="erresn" type="STRING" size="256"/>
  412. <Column id="bfprcpkindcd" type="STRING" size="256"/>
  413. <Column id="prcpinptflag" type="STRING" size="256"/>
  414. <Column id="setprcpyn" type="STRING" size="256"/>
  415. <Column id="bfprcpload" type="STRING" size="256"/>
  416. <Column id="ordrecflag" type="STRING" size="256"/>
  417. <Column id="fstopenflag" type="STRING" size="256"/>
  418. <Column id="cnsttypenm" type="STRING" size="256"/>
  419. <Column id="repltypenm" type="STRING" size="256"/>
  420. </ColumnInfo>
  421. <Rows>
  422. <Row>
  423. <Col id="detlvw">p</Col>
  424. <Col id="detlivw">p</Col>
  425. <Col id="prcpkindcd"/>
  426. <Col id="prcpclscd"/>
  427. <Col id="prcpstatcd"/>
  428. <Col id="hosinprcpresncd"/>
  429. <Col id="payflagcd"/>
  430. <Col id="prcpdd"/>
  431. <Col id="patinfo"/>
  432. <Col id="diagdetlvw">p</Col>
  433. <Col id="diagsrchcond1">2</Col>
  434. <Col id="prcpauthflag">0</Col>
  435. <Col id="pid"/>
  436. <Col id="orddept"/>
  437. <Col id="inclprcpno">0</Col>
  438. <Col id="hsctlnkno">0</Col>
  439. <Col id="prcpmixno">0</Col>
  440. <Col id="srchbtn"/>
  441. <Col id="cropflag"/>
  442. <Col id="restantimicyn">N</Col>
  443. <Col id="bfpayflagcd"/>
  444. <Col id="erresn"/>
  445. <Col id="bfprcpkindcd"/>
  446. <Col id="prcpinptflag"/>
  447. <Col id="setprcpyn"/>
  448. <Col id="bfprcpload"/>
  449. <Col id="ordrecflag"/>
  450. <Col id="fstopenflag"/>
  451. <Col id="cnsttypenm"/>
  452. <Col id="repltypenm"/>
  453. </Row>
  454. </Rows>
  455. </Dataset>
  456. <Dataset id="ds_srcprcp_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  457. <Dataset id="ds_root" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  458. <Dataset id="ds_properties" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  459. <Dataset id="ds_status" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  460. <ColumnInfo>
  461. <Column id="label" type="STRING" size="256"/>
  462. <Column id="value" type="STRING" size="256"/>
  463. </ColumnInfo>
  464. <Rows>
  465. <Row>
  466. <Col id="label">검색</Col>
  467. <Col id="value">S</Col>
  468. </Row>
  469. <Row>
  470. <Col id="label">신규</Col>
  471. <Col id="value">I</Col>
  472. </Row>
  473. <Row>
  474. <Col id="label">삭제</Col>
  475. <Col id="value">D</Col>
  476. </Row>
  477. <Row>
  478. <Col id="label">D/C</Col>
  479. <Col id="value">C</Col>
  480. </Row>
  481. <Row>
  482. <Col id="label">-</Col>
  483. <Col id="value">-</Col>
  484. </Row>
  485. <Row>
  486. <Col id="label">수정</Col>
  487. <Col id="value">U</Col>
  488. </Row>
  489. </Rows>
  490. </Dataset>
  491. <Dataset id="ds_M0003" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  492. <Dataset id="ds_M0029" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  493. <Dataset id="ds_hosinhosoutflag" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  494. <ColumnInfo>
  495. <Column id="label" type="STRING" size="256"/>
  496. <Column id="value" type="STRING" size="256"/>
  497. </ColumnInfo>
  498. <Rows>
  499. <Row>
  500. <Col id="label">원내</Col>
  501. <Col id="value">I</Col>
  502. </Row>
  503. <Row>
  504. <Col id="label">원외</Col>
  505. <Col id="value">O</Col>
  506. </Row>
  507. <Row>
  508. <Col id="label"/>
  509. <Col id="value"/>
  510. </Row>
  511. </Rows>
  512. </Dataset>
  513. <Dataset id="ds_prcptemp_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  514. <Dataset id="ds_prcpsrch_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  515. <Dataset id="ds_send_errprcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  516. <Dataset id="ds_send_saveinvaliprcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  517. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  518. <Dataset id="ds_result_copy" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  519. <Dataset id="ds_result_prcperrlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  520. <Dataset id="ds_send_dessprcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  521. <Dataset id="ds_send_pessprcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  522. <Dataset id="Dataset04" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  523. <Dataset id="Dataset05" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  524. <Dataset id="ds_TRMMO00148" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  525. <ColumnInfo>
  526. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  527. <Column id="ioflag" type="STRING" size="256" sumtext="진료구분(I/O/E/D)"/>
  528. <Column id="pid" type="STRING" size="256" sumtext="환자번호"/>
  529. <Column id="orddd" type="STRING" size="256" sumtext="진료일"/>
  530. <Column id="cretno" type="STRING" size="256" sumtext="생성번호"/>
  531. <Column id="userid" type="STRING" size="256" sumtext="사용자아이디"/>
  532. <Column id="userdeptcd" type="STRING" size="256" sumtext="사용자부서"/>
  533. </ColumnInfo>
  534. <Rows>
  535. <Row/>
  536. </Rows>
  537. </Dataset>
  538. <Dataset id="ds_steplist_columninfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  539. <ColumnInfo>
  540. <Column id="stepnm" type="STRING" size="255"/>
  541. <Column id="prtlflagcd" type="STRING" size="255"/>
  542. <Column id="prcpdd" type="STRING" size="255"/>
  543. <Column id="settypecd" type="STRING" size="255"/>
  544. <Column id="stepno" type="BIGDECIMAL" size="255"/>
  545. <Column id="userid" type="STRING" size="255"/>
  546. <Column id="refseq" type="BIGDECIMAL" size="255"/>
  547. <Column id="lnkstepno" type="BIGDECIMAL" size="255"/>
  548. <Column id="lastupdtrid" type="STRING" size="255"/>
  549. <Column id="instcd" type="STRING" size="255"/>
  550. <Column id="decirflag" type="STRING" size="255"/>
  551. <Column id="setno" type="BIGDECIMAL" size="255"/>
  552. <Column id="answstepno" type="BIGDECIMAL" size="255"/>
  553. <Column id="times" type="STRING" size="255"/>
  554. <Column id="stepstat" type="BIGDECIMAL" size="255"/>
  555. <Column id="startendflag" type="STRING" size="255"/>
  556. <Column id="swimlineno" type="BIGDECIMAL" size="255"/>
  557. <Column id="stepmemo" type="STRING" size="255"/>
  558. <Column id="stepflagcd" type="STRING" size="255"/>
  559. <Column id="orgprcpdd" type="STRING" size="256"/>
  560. <Column id="savestatus" type="STRING" size="256"/>
  561. <Column id="m" type="STRING" size="256"/>
  562. </ColumnInfo>
  563. <Rows/>
  564. </Dataset>
  565. </Objects>
  566. <Bind>
  567. <BindItem id="item0" compid="div_all.cmb_prcpdd" propid="value" datasetid="ds_init" columnid="prcpdd"/>
  568. </Bind>
  569. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  570. * System Name :
  571. * Job Name :
  572. * Creator :
  573. * Make Date : 2014-09-19
  574. * Description :
  575. *---------------------------------------------------------------------------------------
  576. * Modify Date Modifier Modify Description
  577. *---------------------------------------------------------------------------------------
  578. * 2014-09-19 Live Converter TF->XP
  579. *
  580. *---------------------------------------------------------------------------------------
  581. ****************************************************************************************/
  582. include "com_commonxp::comm_main.xjs";
  583. include "emr_prcpmngtxp::SMMMO00100.xjs";
  584. include "emr_prcpmngtxp::SMMMO00110.xjs";
  585. include "emr_prcpmngtxp::MMO001.xjs";
  586. var cpgflagcd = "";
  587. var cpgappno = "";
  588. var orddrid = "";
  589. var iPid = "";
  590. var iCretno = "";
  591. var iPrcpgenrflag = "";
  592. var oOpener = this.getOwnerFrame().form;
  593. // expr:(diagkindcd == "R" || diagkindcd == 1) ? 1 : 0
  594. function SPMMP00200_oninit(obj:Form, e:InitEventInfo)
  595. {
  596. frmf_initForm(obj); // 초기화
  597. appf_getCodeList([{dsNm: "ds_M0003", cdGrpId: "M0003"},
  598. {dsNm: "ds_M0029", cdGrpId: "M0029"}], true);
  599. }
  600. function SPMMP00200_onload(obj:Form, e:LoadEventInfo)
  601. {
  602. // if( frmf_getParameter("SMMMP00800_popupYN") == "Y" ){
  603. // model.refresh();
  604. // }
  605. var oOpener = frmf_getoOpener();
  606. //try {
  607. fInitSrchLogin();
  608. //opener의 instance copy
  609. dsf_copyDs(ds_root, oOpener.ds_root, "after"); //copyNodeType("/root", "/root", "after", model, opener.model);
  610. ds_paminfo.copyData(oOpener.ds_paminfo);
  611. sysf_trace("dsf_copyDsAll s");
  612. dsf_copyDsAll(this, oOpener, null);
  613. dsf_copyDsAll(this, oOpener.import_prcp, null);
  614. sysf_trace("dsf_copyDsAll e");
  615. // dsf_createDs("ds_drugcalc");
  616. // dsf_copyDs(ds_drugcalc, oOpener.import_prcp.ds_drugcalc); // import_prcp 를 사용하기 위해 cp말고 따로 독립적으로 미완성처방관리가 뜨는 곳이 있는지 확인 필요
  617. // if( oOpener.import_prcp.ds_main_diagcdlist.rowcount > 0 ) {
  618. // dsf_copyDs(ds_main_diagcdlist, oOpener.import_prcp.ds_main_diagcdlist, "after");
  619. // }
  620. //
  621. // if( oOpener.import_prcp.ds_main_prcplist.rowcount > 0 ) {
  622. // dsf_copyDs(ds_main_prcplist, oOpener.import_prcp.ds_main_prcplist, "after");
  623. // }
  624. // if(instance1.selectSingleNode("/root/main[2]") != null){
  625. // copyNodeType("/root/main[1]", "/root/main[2]", "after", model, model);
  626. // model.removeNodeset("/root/main[2]");
  627. // }
  628. ds_properties.clear(); //model.removenode("/root/properties[2]");
  629. dsf_makeValue(ds_properties, "auth", "string", oOpener.ds_properties.getColumn(0, "auth")); //model.makeValue("/root/properties/auth", opener.model.getValue("/root/properties/auth"));
  630. //instance 초기화
  631. ds_init.setColumn(0, "prcpdd", utlf_getCurrentDate()); //model.setValue("/root/init/prcpdd", getCurrentDate());
  632. if( !utlf_isNull(ds_root.getColumn(0, "bfinityn")) ){ // instance1.selectSingleNode("/root/bfinityn") != null
  633. ds_root.setColumn(0, "bfinityn", "N"); //model.setValue("/root/bfinityn", "N");
  634. }
  635. //Global 변수 목록
  636. cpgflagcd = ds_main_masterinfo.getColumn(0, "cpgflagcd"); //model.getValue("/root/main/masterinfo/info/cpgflagcd");
  637. cpgappno = oOpener.ds_temp1_getdata.getColumn(0, "cpgappno"); //model.getValue("/root/temp1/getdata/cpgappno");
  638. orddrid = ds_paminfo.getColumn(0, "orddrid"); //model.getValue ( "/root/paminfo/list/orddrid" );
  639. iPid = ds_paminfo.getColumn(0, "pid"); //model.getValue("/root/paminfo/list/pid");
  640. iCretno = ds_paminfo.getColumn(0, "cretno"); //model.getValue("/root/paminfo/list/cretno");
  641. iPrcpgenrflag = ds_patflag.getColumn(0, "prcpgenrflag"); //model.getValue("/root/patflag/list/prcpgenrflag");
  642. // 16.03.02, 추가
  643. ds_main_prcplist.addColumn("tempcol9", "string");
  644. //미래처방 중 미완성처방 팝업으로 조회 시
  645. if( oOpener.frmf_getParameter("SMMMP00800_popupYN") == "Y" ){ // opener.javascript.getParameter("SMMMP00800_popupYN")
  646. //window.height = 455;
  647. //window.width = 900;
  648. div_all.grd_prcplist.position.width = 1181;
  649. //div_all.grd_prcplist.position.height = 378;
  650. div_all.position.x = 5;
  651. div_all.position.width = 1185;
  652. div_all.position.height = 382;
  653. group1.position.x = 5;
  654. group1.position.width = 1185;
  655. group1.position.top = 385;
  656. group1.position.height = 40;
  657. group1.btn_app.position.x = 1050;//763
  658. group1.btn_cancel.position.x = 1110;//823
  659. this.height = 400;
  660. this.width = 1200;
  661. // grp_contents.grd_prcplist.position.x = 15; //grd_prcplist.attribute("left") = "5px"; oOpener.div_all.Splitter00.position.x = minGrdLeft;
  662. // grp_contents.grd_prcplist.position.width = 885; //grd_prcplist.attribute("width") = "885px";
  663. // group1.position.width = 885; //group1.attribute("width") = "885px";
  664. // group1.position.top = 387; //group1.attribute("top") = "377px";
  665. // group1.position.height = 40;
  666. // group1.btn_app.position.x = 768; //btn_app.attribute("left") = "768px";
  667. // group1.btn_cancel.position.x = 827; //btn_cancel.attribute("left") = "827px";
  668. dsf_makeValue(ds_send, "cpgappno", "string", cpgappno); // model.makeValue("/root/send/reqdata/cpgappno", cpgappno);
  669. dsf_makeValue(ds_send, "pid", "string", iPid); // model.makeValue("/root/send/reqdata/pid", iPid);
  670. dsf_makeValue(ds_send, "cretno", "string", iCretno); // model.makeValue("/root/send/reqdata/cretno", iCretno);
  671. dsf_makeValue(ds_send, "prcpgenrflag", "string", iPrcpgenrflag); // model.makeValue("/root/send/reqdata/prcpgenrflag", iPrcpgenrflag);
  672. dsf_makeValue(ds_send, "orddrid", "string", orddrid); // model.makeValue("/root/send/reqdata/orddrid", orddrid);
  673. //var temp = frmf_findPopup("SMMMO00100");
  674. //미완성처방 copy
  675. dsf_copyDs(ds_main_prcplist, oOpener.ds_main_invalprcplist, "replace"); //copyNodeListType("/root/main/prcp", "/root/main/invalprcplist/prcplist", "replace", model, opener.model);
  676. }else{
  677. if( oOpener.grp_biz.swt_formatt.position.height == 79 ){ // parseInt(opener.att_tab.attribute("height")) == 79
  678. div_all.grd_prcplist.position.height = 75; //grd_prcplist.attribute("height") = "75px";
  679. }else{
  680. div_all.grd_prcplist.position.height = 360; //grd_prcplist.attribute("height") = "375px";
  681. }
  682. //미완성처방 조회
  683. fGetInalPrcpList();
  684. }
  685. zesf_InitSign();
  686. // } catch(e) {
  687. // sysf_trace(e);
  688. // }
  689. }
  690. function dsf_copyDsAll(destForm, srcForm, sMode){
  691. if( utlf_isNull(destForm) ) destForm = this;
  692. if( utlf_isNull(srcForm) ) srcForm = this;
  693. utlf_addLog("@@@@@ destForm : " + destForm.name + " srcForm : " + srcForm.name + " @@@@@");
  694. if( utlf_isNull(sMode) ) sMode = "replace";
  695. // if( sMode != "append" ){
  696. // // 복사 전 목적노드 리스트 초기화
  697. // var clearCnt = dsf_clearDsList(arrdsDest, destForm);
  698. // if( clearCnt > 0 ) utlf_addLog("@@@@@ [" + arrdsDest + "] Node List Clear Count : " + clearCnt + " @@@@@@");
  699. // }
  700. var arrSrcDs = srcForm.objects;
  701. var rCnt = 0;
  702. for(var i=0; i<arrSrcDs.length; i++){
  703. var oDest = destForm.objects[arrSrcDs[i].name];
  704. if( oDest == null ){
  705. var sDsName = arrSrcDs[i].name;
  706. var objDs = new Dataset(sDsName);
  707. destForm.addChild(sDsName, objDs);
  708. objDs.name = sDsName;
  709. oDest = destForm.objects[arrSrcDs[i].name];
  710. }
  711. if( sMode == "replace" ){
  712. rCnt = oDest.copyData(arrSrcDs[i], true);
  713. utlf_addLog("***** copyData dsDest : " + oDest.name + " dsDest copyCnt : " + rCnt + " *****");
  714. }else if ( sMode == "append" ){
  715. // copy column info
  716. if( !utlf_isNull(arrSrcDs[i].filterstr) ){
  717. dsf_createDs("tmp_oSrc");
  718. tmp_oSrc.copyData(arrSrcDs[i], true);
  719. dsf_copyColInfo(oDest, tmp_oSrc, false);
  720. rCnt = oDest.appendData(tmp_oSrc, true);
  721. dsf_deleteDs("tmp_oSrc");
  722. }else{
  723. dsf_copyColInfo(oDest, arrSrcDs[i], false);
  724. rCnt = oDest.appendData(arrSrcDs[i], true);
  725. }
  726. utlf_addLog("***** appendData dsDest : " + oDest.name + " dsDest copyCnt : " + rCnt + " *****");
  727. }
  728. }
  729. }
  730. function SPMMP00200_onclose(obj:Form, e:CloseEventInfo)
  731. {
  732. opener.frmf_clearParameter("SMMMP00800_popupYN"); //opener.javascript.clearParameter("SMMMP00800_popupYN");
  733. opener.endSaveYN = "N";
  734. }
  735. function fIInitialize(){
  736. fBaseCdInit();
  737. fGetInalPrcpList();
  738. }
  739. function fGetInalPrcpList(){
  740. ds_send.clearData(); //model.removeNodeset("/root/send/reqdata");
  741. dsf_copyDs(ds_send, oOpener.ds_send_reqdata, "replace"); //copyNodeType("/root/send/reqdata", "/root/send/reqdata", "replace", model, opener.model);
  742. if( !utlf_isNull(oOpener.ds_temp1_getdata.getColumn(0, "orddd")) ){ // instance1.selectSingleNode("/root/temp1/getdata/orddd") != null
  743. dsf_makeValue(ds_send, "orddd", "string", oOpener.ds_temp1_getdata.getColumn(0, "orddd")); //model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/temp1/getdata/orddd"));
  744. }
  745. var oParam = {};
  746. oParam.id = "TRMMP00201";
  747. oParam.service = "prcpmngtapp.CPPrcpMngt";
  748. oParam.method = "reqGetErrPrtcPrcpList";
  749. oParam.inds = "req=ds_send";
  750. oParam.outds = "ds_main_prcplist=prcplist";
  751. oParam.async = false;
  752. oParam.callback = "cf_TRMMP00201";
  753. tranf_submit(oParam);
  754. dsf_setDefaultVal(ds_main_prcplist, "status:-,prcpvol:0,prcpqty:0,prcptims:0,prcpdayno:0,drugspd:0,nigtprcpflag:N,mealcalrcnts:0,mealprotcnts:0,prcprefseq:0,ordreqlnkno:0,testreqlnkno:0,prcplnkno:0,prtlno:0,inclprcpno:0,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,aftcertflag:-,aftcertdrid:-,prcpvalidd:00000000,specdrid:-,anticncrprtlno:0,anticncrdayno:0,druglnkno:0,drgacptflag:-");
  755. ds_send.clearData(); //opener.model.removeNodeset( "/root/send/reqdata" ); //2008.11.08
  756. }
  757. function cf_TRMMP00201(sSvcId, nErrorCode, sErrorMsg) {
  758. if(nErrorCode < 0) return;
  759. }
  760. //미완성처방 저장
  761. function fSaveInvalPrcp( iCpgflagcd ){
  762. var cpUpdtFlag = ""; //2008.10.03 (+)
  763. var today = utlf_getCurrentDate();
  764. var tomorrow = utlf_addDate(today, 1); //new Date().getAddDate(1, "D").getDateFormat();
  765. var sCpBatchTime = lf_getHardCDList("Y", 599, 3); //배치 실행 시간 2018.01.25 엄영만
  766. if(utlf_isNull(sCpBatchTime)) {
  767. if(sysf_getUserInfo("dutplceinstcd") == "031") {
  768. sCpBatchTime = "153000"; // 디폴트 6시 => 153000 으로 변경
  769. } else {
  770. sCpBatchTime = "153000"; // 디폴트 6시 => 153000 으로 변경
  771. }
  772. }
  773. var savePrcpList = ds_main_prcplist.getCaseCount("prcpdd == '" + today + "' && status == '-'"); //instance1.selectNodes("/root/main/prcp/prcplist[prcpdd='" + today + "'and status = '-']");
  774. if( savePrcpList > 0 ){
  775. var dschdclrtyn = appf_getPatientInfoDetail("dschdclrtyn"); //퇴원예고 여부
  776. var valynTxt = "";
  777. // //당일 및 익일(18시 이후) 처방은 무조건 U임
  778. for(var i = 0; i < savePrcpList; i++){
  779. //var node = savePrcpList.item(i);
  780. var statusNode = ds_main_prcplist.getColumn(i, "status"); //node.selectSingleNode("status");
  781. var prcpclscdNode = ds_main_prcplist.getColumn(i, "prcpclscd"); //node.selectSingleNode("prcpclscd");
  782. var prcpkindcdNode = ds_main_prcplist.getColumn(i, "prcpkindcd"); //node.selectSingleNode("prcpkindcd");
  783. var oprsrvnoNode = ds_main_prcplist.getColumn(i, "oprsrvno"); //node.selectSingleNode("oprsrvno");
  784. var valynNode = ds_main_prcplist.getColumn(i, "valyn"); //node.selectSingleNode("valyn");
  785. if( valynNode != null ) valynTxt = valynNode;
  786. if( prcpclscdNode == "H2" && oprsrvnoNode == "0" && valynTxt != "완성" ) break;
  787. if( dschdclrtyn != "Y" && (prcpkindcdNode == "60" || prcpkindcdNode == "70") )break;
  788. if(statusNode != "I"){
  789. ds_main_prcplist.setColumn(i, "status", "U"); //model.setValue(statusNode, "U");
  790. }
  791. }
  792. }
  793. var errTgrPrcpNode = ds_main_prcplist.getCaseCount("status == 'I' || status == 'U' || status == 'D'"); //instance1.selectNodes("/root/main/prcp/prcplist[status='I' or status='U' or status='D']");
  794. if( errTgrPrcpNode < 1 ){
  795. sysf_messageBox("완성된 미완성 처방이", "I004");
  796. return false;
  797. }else{
  798. //6PM 이후, 익일 미완성 중 수정된 처방이 있으면, 바로 수정된 내용이 실처방으로 나가야 함. 2008.10.03 (s)
  799. if( ds_main_prcplist.getCaseCount("prcpdd == '" + today + "' && (status == 'U' || status == 'I' )") < 1 ){ // instance1.selectSingleNode("/root/main/prcp/prcplist[prcpdd='" + today + "'and (status = 'U' or status='I')]") != null
  800. cpUpdtFlag = "C"; //today(current)
  801. }
  802. if( ds_main_prcplist.getCaseCount("prcpdd == '" + tomorrow + "' && (status == 'U' || status == 'I' )") < 1 ){ // instance1.selectSingleNode("/root/main/prcp/prcplist[prcpdd='" + tomorrow + "'and (status = 'U' or status = 'I')]") != null
  803. if(cpUpdtFlag == "") cpUpdtFlag = "T"; //tomorow
  804. else cpUpdtFlag = "B"; //both
  805. }
  806. //(e)
  807. var mainFlag = 0;
  808. if( !utlf_isNull(opener) ) { // 팝업으로 뜨는 경우
  809. if( opener.name == "SMMMP00800" ) {
  810. clickBtnNm_SMMMO00110 = opener.clickBtnNm_SMMMO00110;
  811. mainFlag = 1;
  812. }
  813. } else { // CPMAIN 화면에서
  814. if( oOpener.name == "SMMMP00800" ) {
  815. clickBtnNm_SMMMO00110 = oOpener.clickBtnNm_SMMMO00110;
  816. mainFlag = 2;
  817. }
  818. }
  819. //적용 중단 시, 저장 눌렀을 때, 초기화 후, 미완성영역의 데이터만 저장
  820. if( !utlf_isNull(clickBtnNm_SMMMO00110) && clickBtnNm_SMMMO00110 != "btn_savecomplprcp" ){ // opener.window.javascript.clickBtnNm_SMMMO00110 != "" && opener.window.javascript.clickBtnNm_SMMMO00110 != "btn_savecomplprcp"
  821. stopSavePrcpYN_SMMMO00110 = "N";
  822. }
  823. ds_prcpsrch_prcplist.clearData(); //model.removeNodeset("/root/main/prcpsrch/prcplist");
  824. ds_prcpsrch_prcplist.copyData(ds_main_prcplist); //model.copyNode("/root/main/prcpsrch", "/root/main/prcp");
  825. prtlprcpstatus_SMMMO00110 = "U";
  826. //var PrcpList = instance1.selectNodes("/root/main/prcpsrch/prcplist");
  827. var PrcpLngth = ds_prcpsrch_prcplist.rowcount - 1; //PrcpList.length-1;
  828. for( var i = PrcpLngth; i >= 0; i-- ){
  829. //var node = PrcpList.item(i);
  830. var statusNode = ds_prcpsrch_prcplist.getColumn(i, "status"); //node.selectSingleNode("status");
  831. var prcpinptflagNode = ds_prcpsrch_prcplist.getColumn(i, "prcpinptflag"); //node.selectSingleNode("prcpinptflag");
  832. var etclnkspecNode = ds_prcpsrch_prcplist.getColumn(i, "etclnkspec"); //node.selectSingleNode("etclnkspec");
  833. var valynNode = ds_prcpsrch_prcplist.getColumn(i, "valyn"); //node.selectSingleNode("valyn");
  834. if( statusNode == "-" ){
  835. ds_prcpsrch_prcplist.deleteRow(i); //model.removenode(node);
  836. }else{
  837. //★ 추가처방이 미완성으로 떨어진 경우, 달리 처리해야 함...
  838. if( statusNode == "U" ){
  839. ds_prcpsrch_prcplist.setColumn(i, "status", "I"); //model.setValue(statusNode, "I");
  840. ds_prcpsrch_prcplist.setColumn(i, "prcpinptflag", "05"); //model.setValue(prcpinptflagNode, "05");
  841. // 20200401 김현석, 적용일자 세팅, 20200310998
  842. // ds_prcpsrch_prcplist.setColumn(i, "etclnkspec", "0" + "|" + oOpener.ds_temp1_getdata.getColumn(0, "cpgappno")); //model.setValue(etclnkspecNode, "0" + "|" + model.getValue("/root/temp1/getdata/cpgappno"));
  843. if ( mainFlag == 1 )
  844. {
  845. ds_prcpsrch_prcplist.setColumn(i, "etclnkspec", "0" + "|" + opener.ds_temp1_getdata.getColumn(0, "cpgappno")); //model.setValue(etclnkspecNode, "0" + "|" + model.getValue("/root/temp1/getdata/cpgappno"));
  846. }
  847. else
  848. {
  849. ds_prcpsrch_prcplist.setColumn(i, "etclnkspec", "0" + "|" + oOpener.ds_temp1_getdata.getColumn(0, "cpgappno")); //model.setValue(etclnkspecNode, "0" + "|" + model.getValue("/root/temp1/getdata/cpgappno"));
  850. }
  851. }
  852. //model.removenode(valynNode);
  853. }
  854. }
  855. if( mainFlag == 1 ) {
  856. opener.fBatSaveCpPrtlPrcp("U", "6", cpgflagcd);
  857. } else if( mainFlag == 2 ) {
  858. fBatSaveCpPrtlPrcp("U", "6", cpgflagcd);
  859. } else {
  860. fBatSaveCpPrtlPrcp("U", "6", cpgflagcd); // cond1의 prtlprcpstatus 를 U 로 SMMMO00110.xjs에서 구현해야 하는데 아직 안함 2015.04.15
  861. }
  862. if( stopSavePrcpYN_SMMMO00110 == "Y" ){ //실패
  863. prtlFlag_SMMMO00110 = "-";
  864. oOpener.clickBtnNm_SMMMO00110 = "btn_savecomplprcp";
  865. return false;
  866. }else{
  867. //model.removeNodeset("/root/main/invalprcplist/prcplist");
  868. //6 PM 이후 익일처방 실처방으로 나가도록 변경. 2008.10.03 (s)
  869. if( utlf_getCurrentTime() > sCpBatchTime && (cpUpdtFlag == "T" || cpUpdtFlag == "B") ){ // if( (cpUpdtFlag == "T" || cpUpdtFlag == "B") ){
  870. ds_temp1.copyData(oOpener.ds_temp1_getdata);
  871. var oParam = {};
  872. oParam.id = "TXMMP00809";
  873. oParam.service = "prcpmngtapp.CPPrcpMngt";
  874. oParam.method = "reqExeCpPrcpList";
  875. oParam.inds = "req=ds_temp1";
  876. oParam.outds = "ds_main_step=info"; // ds_=appinfo
  877. oParam.async = false;
  878. oParam.callback = "cf_TXMMP00809";
  879. tranf_submit(oParam);
  880. }
  881. //(e)
  882. return true;
  883. }
  884. }
  885. }
  886. function cf_TXMMP00809(sSvcId, nErrorCode, sErrorMsg) {
  887. if(nErrorCode < 0) {
  888. sysf_messageBox ( "당일처방 및 미래처방 저장은 성공하였으나,\예외 상황으로 인해 익일처방을 실처방으로 저장", "E009" );
  889. return true;
  890. }
  891. }
  892. // onendedit 여기서 구현
  893. function ds_main_prcplist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  894. {
  895. // editcell 상황에서 tab 키 누르면 화면 죽는 현상(TF문제 no, 컬럼 비교 분기에서 func 콜 하면서 로직 꼬임 detail 추후 파악 우선은 return) - 20080827 emr msh
  896. /* XP에서도 죽는지 확인해봐야됨
  897. if (event.keyCode == "9") {
  898. return ;
  899. }*/
  900. // onValueChange
  901. //처방일을... 기존 처방일보다 과거로 수정 시 return, CP예정종료일 이후로 수정 시 return (2008.11.27)
  902. if ( e.columnid == "prcpdd" ) { // grd_prcplist.col == grd_prcplist.colref("prcpdd")
  903. var currow = ds_main_prcplist.rowposition; //grd_prcplist.row;
  904. var orgPrcpDD = ds_main_prcplist.getColumn(currow, "prcphopedd"); //model.getValue("/root/main/prcp/prcplist[" + currow + "]/prcphopedd");
  905. var chgPrcpDD = ds_main_prcplist.getColumn(currow, "prcpdd"); //model.getValue("/root/main/prcp/prcplist[" + currow + "]/prcpdd");
  906. if( chgPrcpDD < orgPrcpDD ){
  907. sysf_messageBox("처방일을 과거로 수정할 수", "I004");
  908. ds_main_prcplist.setColumn(currow, "prcpdd", orgPrcpDD); //model.setValue("/root/main/prcp/prcplist[" + currow + "]/prcpdd", orgPrcpDD);
  909. return;
  910. }else{
  911. if( cpgflagcd == "01" ){
  912. var length = ds_main_step.rowcount; //instance1.selectNodes("/root/main/steppath/info").length;
  913. var lastPrcpDD = ds_main_step.getColumn(length, "prcpdd"); //model.getValue("/root/main/steppath/info[" + length + "]/prcpdd");
  914. if(chgPrcpDD > lastPrcpDD){
  915. sysf_messageBox("처방일을 CP 예정 종료일 이후로 수정할 수", "I004");
  916. ds_main_prcplist.setColumn(currow, "prcpdd", orgPrcpDD); //model.setValue("/root/main/prcp/prcplist[" + currow + "]/prcpdd", orgPrcpDD);
  917. return;
  918. }
  919. }
  920. }
  921. }
  922. //(e)
  923. ds_root.setColumn(0, "cp", "S"); //model.setValue("/root/cp", "S");
  924. if( e.columnid == "prcpdayno" ){ // grd_prcplist.col == grd_prcplist.colRef("prcpdayno")
  925. fDayValChnged() ;
  926. }
  927. fPrcpUpdate();
  928. if ( e.columnid == "payflagcd" ) { // grd_prcplist.col == grd_prcplist.colref("payflagcd")
  929. fGridfBatIpt( "payflagcd" );
  930. } else if ( e.columnid == "prcpkindcd" ) { // grd_prcplist.col == grd_prcplist.colref("prcpkindcd")
  931. fGridfBatIpt( "prcpkindcd" );
  932. //SON0919 G3아닌 응급일경우 원내사유 PRCPKINDCD에 의해 움직이므로 처리. start
  933. if( ds_patflag.getColumn(0, "prcpgenrflag") == "E" && ds_init.getColumn(0, "erresn") != "G3" ){ // model.getValue ( "/root/patflag/list/prcpgenrflag" ) == "E" && model.getValue ( "/root/init/erresn" ) != "G3"
  934. fChngHosinPrcpResn();
  935. }
  936. //SON0919 end
  937. }
  938. ds_root.setColumn(0, "cp", "Y"); //model.setValue("/root/cp", "Y");
  939. ds_root.setColumn(0, "cp", "S"); //model.setValue("/root/cp", "S");
  940. var currow = ds_main_prcplist.rowposition; //grd_prcplist.row;
  941. if ( e.columnid == "prcpdayno" ) { // grd_prcplist.col == grd_prcplist.colref("prcpdayno")
  942. fGridfBatIpt( "prcpdayno" );
  943. // 일수에서 엔터를 치면 nextrow가 검색row일때 prcpcd 컬럼 활성 - 20080825 emr msh
  944. if( div_all.grd_prcplist.userdata == 13 ) {
  945. var nextrow = currow + 1 ;
  946. var status = ds_main_prcplist.getColumn(nextrow, "status"); //model.getValue("root/main/prcp/prcplist[" + nextrow + "]/status") ;
  947. if (status == "S"){
  948. div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "prcpcd"));
  949. div_all.grd_prcplist.showEditor(true);
  950. // grd_prcplist.row = nextrow;
  951. // grd_prcplist.col = grd_prcplist.colref("prcpcd");
  952. //grd_prcplist.editCell();
  953. }
  954. }
  955. } else if ( e.columnid == "prcptims" ) { // grd_prcplist.col == grd_prcplist.colref("prcptims")
  956. fGridfBatIpt( "prcptims" );
  957. if ( div_all.grd_prcplist.userdata != 13 ) { //grd_prcplist.selectedrow(0) == -1 && event.keyCode != "13"
  958. fBaseMthd(currow);
  959. }
  960. if( div_all.grd_prcplist.userdata == 13 ) { // event.keyCode == "13"
  961. div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "prcpdayno"));
  962. div_all.grd_prcplist.showEditor(true);
  963. // grd_prcplist.col = grd_prcplist.colref("prcpdayno");
  964. // grd_prcplist.row = currow;
  965. //grd_prcplist.editCell();
  966. }
  967. } else if ( e.columnid == "prcpqty" ) { //grd_prcplist.col == grd_prcplist.colref("prcpqty")
  968. DrugCalc ( "prcpqty" , ds_main_prcplist.rowposition);
  969. fGridfBatIpt( "prcpqty" );
  970. if(div_all.grd_prcplist.userdata == 13) {
  971. // grd_prcplist.col = grd_prcplist.colref("prcptims");
  972. // grd_prcplist.row = currow;
  973. //grd_prcplist.editCell();
  974. div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "prcptims"));
  975. div_all.grd_prcplist.showEditor(true);
  976. }
  977. } else if ( e.columnid == "prcpvol" ) { // grd_prcplist.col == grd_prcplist.colref("prcpvol")
  978. DrugCalc ("prcpvol" , ds_main_prcplist.rowposition);
  979. if(div_all.grd_prcplist.userdata == 13) {
  980. // grd_prcplist.row = currow;
  981. // grd_prcplist.col = grd_prcplist.colref("prcpqty");
  982. div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "prcpqty"));
  983. div_all.grd_prcplist.showEditor(true); //grd_prcplist.editCell();
  984. }
  985. } else if ( e.columnid == "drprcpetc7" ) { // grd_prcplist.col == grd_prcplist.colref("drprcpetc7")
  986. DrugCalc ("drprcpetc7" , ds_main_prcplist.rowposition);
  987. if(div_all.grd_prcplist.userdata == 13) {
  988. // grd_prcplist.row = currow;
  989. // grd_prcplist.col = grd_prcplist.colref("drprcpetc8");
  990. div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "drprcpetc8"));
  991. div_all.grd_prcplist.showEditor(true); //grd_prcplist.editCell();
  992. }
  993. } else if ( e.columnid == "drprcpetc8" ) { // grd_prcplist.col == grd_prcplist.colref("drprcpetc8")
  994. DrugCalc ( "drprcpetc8" , ds_main_prcplist.rowposition);
  995. fGridfBatIpt( "drprcpetc8" );
  996. if(div_all.grd_prcplist.userdata == 13) {
  997. // grd_prcplist.col = grd_prcplist.colref("prcptims");
  998. // grd_prcplist.row = currow;
  999. div_all.grd_prcplist.setCellPos(div_all.grd_prcplist.getBindCellIndex("body", "prcptims"));
  1000. div_all.grd_prcplist.showEditor(true); //grd_prcplist.editCell();
  1001. }
  1002. }
  1003. ds_root.setColumn(0, "cp", "Y"); //model.setValue("/root/cp", "Y");
  1004. }
  1005. function grp_contents_grd_prcplist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  1006. {
  1007. var oOpener = this.getOwnerFrame().form;
  1008. if( oOpener.name == "SPMMP00200" ) {
  1009. oOpener = frmf_findPopup("SMMMP00800");
  1010. }
  1011. if( oOpener.ds_temp1_getdata.getColumn(0, "authyn") == "N" ){ // opener.model.getValue("/root/temp1/authyn") == "N"
  1012. return;
  1013. }
  1014. var currow = ds_main_prcplist.rowposition; //grd_prcplist.row;
  1015. invalYN_SMMMO00110 = "Y";
  1016. //if( grd_prcplist.isCell(event.target) && grd_prcplist.mouseCol >= 2 && currow>0 && currow<=grd_prcplist.rows ){
  1017. dsf_copyDs(ds_srcprcp_prcplist, ds_main_prcplist, "replace" ); //copyNodesetType("/root/main/srcprcp", "/root/main/prcp", "replace", model, model);
  1018. var prcpclscd = ds_main_prcplist.getColumn(currow, "prcpclscd"); //model.getValue( "/root/main/prcp/prcplist[" + currow + "]/prcpclscd");
  1019. var status = ds_main_prcplist.getColumn(currow, "status"); //model.getValue( "/root/main/prcp/prcplist[" + currow + "]/status");
  1020. var prcpkindcd = ds_main_prcplist.getColumn(currow, "prcpkindcd"); //model.getValue( "/root/main/prcp/prcplist[" + currow + "]/prcpkindcd");
  1021. //팝업 위치 설정
  1022. // var vxpt = 395;
  1023. // var xpt = window.screenleft + vxpt;
  1024. // var ypt = 0;
  1025. // var mom = sysf_getCurrentMonitorNumber(); //var mon = coord[0];
  1026. // if (e.screenY < 750 ) ypt = e.screenY + 10;
  1027. // else ypt = e.screenY - 240;
  1028. //var coord = getRelativeCoordinate ( xpt, ypt );
  1029. // xpt = coord[1];
  1030. // ypt = coord[2];
  1031. //수술처방 & errtretflag=8 & 오류메세지 컬럼 선택 시,
  1032. var iErrFlag = ds_main_prcplist.getColumn(currow, "errtretflag"); //model.getValue("/root/main/prcp/prcplist[" + currow + "]/errtretflag");
  1033. var iValYN = ds_main_prcplist.getColumn(currow, "valyn"); //model.getValue("/root/main/prcp/prcplist[" + currow + "]/valyn");
  1034. var iResnMsg = ds_main_prcplist.getColumn(currow, "incpltnresn"); //model.getValue("/root/main/prcp/prcplist[" + currow + "]/incpltnresn");
  1035. var openDetlPop = "Y";
  1036. if( iErrFlag == "8" && iValYN != "완성" ) {
  1037. var objArg = new Object();
  1038. objArg.arg_ds_send = ds_paminfo;
  1039. //수술예약팝업 (수술예약번호 매핑) -> 확인필요
  1040. frmf_modal("SPMMP02800", "SPMMP02800", objArg, null, null, null, null, null, null, null, null, null, "M"); //modal("SPMMP02800", mon, xpt, ypt, "SPMMP02800", "/root/paminfo/list", "/root/send/pamdata" );
  1041. if( ds_main_prcplist.getColumn(currow, "status") != "U" ){ // model.getValue("/root/main/prcp/prcplist[" + currow + "]/status") != "U"
  1042. openDetlPop = "N";
  1043. }
  1044. }else if( iErrFlag == "9" && iValYN != "완성" && (prcpkindcd == "70" || prcpkindcd == "90" || prcpkindcd == "95") ){
  1045. //외래예약 팝업
  1046. if( fFollowUp() ){
  1047. for ( var i = 0; i < ds_main_prcplist.rowcount; i++ ) {
  1048. //퇴원후 외래처방 예약일 잡고 확인누르면 퇴원후 외래처방 PRCPHOPEDD를 모두 예약일로 수정한다.
  1049. //입원전검사(당일/전일)도 퇴원후 외래와 같은 처리 by sonjy 2008-07-25
  1050. // if ( model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" ) == "70" ||
  1051. // model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" ) == "90" ||
  1052. // model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpkindcd" ) == "95" ) {
  1053. if( ds_main_prcplist.getColumn(i, "prcpkindcd") == "70" ||
  1054. ds_main_prcplist.getColumn(i, "prcpkindcd") == "90" ||
  1055. ds_main_prcplist.getColumn(i, "prcpkindcd") == "95" ) {
  1056. if( ds_main_prcplist.getColumn(i, "status") != "I" ){ // model.getValue("/root/main/prcp/prcplist[" + i + "]/status") != "I"
  1057. ds_main_prcplist.setColumn(i, "status", "U"); //model.setValue ( "/root/main/prcp/prcplist[" + i + "]/status", "U" );
  1058. }
  1059. ds_main_prcplist.setColumn(i, "valyn", "완성"); // model.setValue ( "/root/main/prcp/prcplist[" + i + "]/valyn", "완성" );
  1060. ds_main_prcplist.setColumn(i, "incpltnresn", "외래 예약이 되었습니다."); // model.setValue ( "/root/main/prcp/prcplist[" + i + "]/incpltnresn", "외래 예약이 되었습니다." );
  1061. }
  1062. }
  1063. }
  1064. }else if( prcpclscd == "D2" ){ //iResnMsg == "병리검사 의뢰지를 작성해야만 합니다."
  1065. fReqfrm ( currow, "copy" );
  1066. }
  1067. ds_main_prcplist.enableevent = false; // 허만호
  1068. var prcpObj = frmf_findPopup("SMMMO00100");
  1069. if( openDetlPop == "Y" ) {
  1070. //처방 종류별 상세팝업
  1071. if ( obj.getCellPos() == obj.getBindCellIndex("body", "drugmthdspccdnm") && status != "S" ) { // grd_prcplist.col == grd_prcplist.colref("drugmthdspccdnm") && status != "S"
  1072. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") {
  1073. lf_prcpModal ("SPMMO01900", 500, 200);
  1074. } else if ( prcpclscd == "B2" || prcpclscd == "B4" || prcpclscd == "B6" ) {
  1075. fGetSpc (ds_main_prcplist.rowposition, "", "", "Y");
  1076. }
  1077. } else if ( e.col == 15 && status != "S" ) { //grd_prcplist.col == "15" && status != "S"
  1078. fPrcpdelivefact( "M" );
  1079. } else if ( status != "S" ) {
  1080. fPrcpDetl_CP();
  1081. }
  1082. }
  1083. for( var i = 0; i < ds_main_prcplist.rowcount; i++ ){
  1084. // var srcNode = ds_srcprcp_prcplist.getRowType(i); //instance1.selectSingleNode("/root/main/srcprcp/prcplist[" + i + "]").xml;
  1085. // var desNode = ds_main_prcplist.getRowType(i); //instance1.selectSingleNode("/root/main/prcp/prcplist[" + i + "]").xml;
  1086. if( dsf_compareDsRow(ds_srcprcp_prcplist, ds_main_prcplist, i) ){
  1087. if( ds_main_prcplist.getColumn(i, "status") != "I" ){ // model.getValue("/root/main/prcp/prcplist[" + i + "]/status") != "I"
  1088. ds_main_prcplist.setRowType(i, 4); //grd_prcplist.rowStatus(i) = 2;
  1089. ds_main_prcplist.setColumn(i, "status", "U"); //model.setValue( "/root/main/prcp/prcplist[" + i + "]/status", "U");
  1090. }
  1091. }
  1092. }
  1093. ds_main_prcplist.enableevent = true; // 허만호
  1094. //model.resetInstanceNode("/root/main/srcprcp/prcplist");
  1095. // }else{
  1096. // invalYN_SMMMO00110 = "N";
  1097. // return;
  1098. // }
  1099. invalYN_SMMMO00110 = "N";
  1100. }
  1101. function grp_contents_grd_prcplist_onrbuttondown(obj:Grid, e:GridMouseEventInfo)
  1102. {
  1103. // if(event.button == 3){
  1104. // if(grd_prcplist.isCell(event.target) && grd_prcplist.mouseRow >= grd_prcplist.fixedRows){
  1105. // app.showPopupMenu(true);
  1106. // setPopupMenu("grd_prcplist", false, "/root/init/cpmsrght/mouserght", "label", "func");
  1107. // }else{
  1108. // window.setPopupMenu(false);
  1109. // }
  1110. // }
  1111. if(e.row < 0 || e.col < 0) return;
  1112. grdf_setSelectedCell(obj, e);
  1113. pmn_menu.trackPopup(e.screenX, e.screenY);
  1114. }
  1115. function grp_contents_grd_prcplist_onkillfocus(obj:Grid, e:KillFocusEventInfo)
  1116. {
  1117. //window.setPopupMenu(false);
  1118. }
  1119. function grp_contents_grd_prcplist_onsetfocus(obj:Grid, e:SetFocusEventInfo)
  1120. {
  1121. var currow = ds_main_prcplist.rowposition;
  1122. if ( obj.getCellPos() == obj.getBindCellIndex("body", "prcpvol") ) { // grd_prcplist.col == grd_prcplist.colref("prcpvol")
  1123. bfDrugCalc ( "prcpvol", currow );
  1124. } else if ( obj.getCellPos() == obj.getBindCellIndex("body", "prcpqty") ) { // grd_prcplist.col == grd_prcplist.colref("prcpqty")
  1125. bfDrugCalc ( "prcpqty", currow );
  1126. } else if ( obj.getCellPos() == obj.getBindCellIndex("body", "drprcpetc7") ) { // grd_prcplist.col == grd_prcplist.colref("drprcpetc7")
  1127. bfDrugCalc ( "drprcpetc7", currow );
  1128. } else if ( obj.getCellPos() == obj.getBindCellIndex("body", "drprcpetc8") ) { // grd_prcplist.col == grd_prcplist.colref("drprcpetc8")
  1129. bfDrugCalc ( "drprcpetc8", currow );
  1130. }
  1131. }
  1132. function grp_contents_grd_prcplist_onmouseup(obj:Grid, e:GridMouseEventInfo)
  1133. {
  1134. // grd_prcplist.selectedRows > 1 && grd_prcplist.col != grd_prcplist.colRef ( "prcpkindcd" ) && grd_prcplist.col != grd_prcplist.colref("payflagcd")
  1135. if ( obj.getCellPos() != obj.getBindCellIndex("body", "prcpkindcd") && obj.getCellPos() != obj.getBindCellIndex("body", "payflagcd") ) {
  1136. div_all.grd_prcplist.showEditor(true); //grd_prcplist.editCell();
  1137. }
  1138. }
  1139. function grp_contents_grd_prcplist_onenteredit(obj:Grid, e:GridEditEventInfo)
  1140. {
  1141. ds_init.setColumn(0, "bfpayflagcd", ds_main_prcplist.getColumn(ds_main_prcplist.rowposition, "payflagcd") ); //model.setValue ( "/root/init/bfpayflagcd", model.getValue ( "/root/main/prcp/prcplist[" + grd_prcplist.row + "]/payflagcd" ));
  1142. }
  1143. function grp_contents_grd_prcplist_onkeydown(obj:Grid, e:KeyEventInfo)
  1144. {
  1145. obj.userdata = e.keycode;
  1146. if ( e.keycode == 45 ) { // e.keycode == 46은 keyup에서 처리
  1147. div_all.grd_prcplist.setFocus(); //model.setfocus( "grd_prcplist" );
  1148. }
  1149. if(e.keycode == 13 || e.keycode == 9 ) { // 엔터, tab키
  1150. // 진단검색 취소 후 다시 탭, 엔터 누르면 조회 되도록 ( TF와 동작 맞춰주기 위함 ) S
  1151. if ( obj.getCellPos() == diagnmCol) {
  1152. fDiagSrch("diagnm");
  1153. } else if ( obj.getCellPos() == icd10cdCol) {
  1154. fDiagSrch("icd10cd");
  1155. }
  1156. //진단검색 취소 후 다시 탭, 엔터 누르면 조회 되도록 ( TF와 동작 맞추주기 위함 ) E
  1157. obj.showEditor(false);
  1158. } else {
  1159. // 영문자, 숫자키 입력시 바로 입력 모드로 전환
  1160. if((e.keycode >= 48 && e.keycode <= 90) && (obj.getEditText() == undefined)) {
  1161. obj.showEditor(true);
  1162. } else if( e.keycode >= 96 && e.keycode <= 105 && (obj.getEditText() == undefined) ) { // 우측 숫자패드 사용 추가
  1163. obj.showEditor(true);
  1164. }
  1165. }
  1166. }
  1167. function grp_contents_grd_prcplist_onkeyup(obj:Grid, e:KeyEventInfo)
  1168. {
  1169. if ( e.keycode == 46 ) {
  1170. var currow = ds_main_prcplist.rowposition;
  1171. fDeleteRow();
  1172. //div_all.grd_prcplist.setFocus(); // model.setfocus( "grd_prcplist" );
  1173. //grd_prcplist.row = currow;
  1174. }
  1175. }
  1176. // onendedit
  1177. function ds_main_diaglist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1178. {
  1179. if ( div_all.grd_diaglist.getBindCellIndex("body", e.columnid) == diagnmCol ) { // grd_diaglist.col == diagnmCol
  1180. fDiagSrch("diagnm");
  1181. } else if ( div_all.grd_diaglist.getBindCellIndex("body", e.columnid) == icd10cdCol ) { // grd_diaglist.col == icd10cdCol
  1182. fDiagSrch("icd10cd");
  1183. }
  1184. // value change event
  1185. if ( ds_main_diagcdlist.getColumn(ds_main_diagcdlist.rowposition, "diagkindcdflag") == "M" && e.col == 2 ) { // grd_diaglist.valueMatrix ( grd_diaglist.row,2 ) == "M" && grd_diaglist.col == "2"
  1186. for ( var i = 0; i < ds_main_diagcdlist.rowcount; i++ ) {
  1187. if ( ds_main_diagcdlist.getColumn(i, "diagkindcdflag") == "M" && i != ds_main_diagcdlist.rowposition ) { // grd_diaglist.valueMatrix ( i, 2 ) == "M" && i != grd_diaglist.row
  1188. ds_main_diagcdlist.setColumn(i, "diagkindcdflag", "S"); //grd_diaglist.valueMatrix ( i, 2 ) = "S";
  1189. if ( ds_main_diagcdlist.getColumn(i, "status") == "-" ) { // model.getValue ( diagNode + "[" + i + "]/status" ) == "-"
  1190. ds_main_diagcdlist.setColumn(i, "status", "U"); //model.setValue ( diagNode + "[" + i + "]/status", "U" );
  1191. }
  1192. }
  1193. }
  1194. }
  1195. fDiagUpdate();
  1196. }
  1197. function grp_contents_grd_diaglist_onmousedown(obj:Grid, e:GridMouseEventInfo)
  1198. {
  1199. fDaigMouseRghtBtnPopup();
  1200. }
  1201. function grp_contents_grd_diaglist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  1202. {
  1203. fDiagDetlVw();
  1204. }
  1205. function group1_btn_cancel_onclick(obj:Button, e:ClickEventInfo)
  1206. {
  1207. close();
  1208. }
  1209. function group1_btn_app_onclick(obj:Button, e:ClickEventInfo)
  1210. {
  1211. if( fSaveInvalPrcp( cpgflagcd ) == true ){
  1212. if( stopSavePrcpYN_SMMMO00110 != "Y" || SubmitTF_SMMMO00110 == true ){
  1213. //저장성공, 정상종료 => 처방 노드셋 및 그리드 초기화
  1214. clickBtnNm_SMMMO00110 = "";
  1215. opener.fAfterInvalPrcpSave(); //opener.window.javascript.fAfterInvalPrcpSave();
  1216. if( opener.frmf_getParameter("SMMMP00800_popupYN") == "Y" ){
  1217. //미완성처방 copy
  1218. dsf_copyDs(ds_main_prcplist, opener.ds_main_invalprcplist, "replace"); //copyNodeListType("/root/main/prcp", "/root/main/invalprcplist/prcplist", "replace", model, model);
  1219. //opener.window.javascript.tab_refresh();
  1220. //model.refresh();
  1221. }
  1222. close();
  1223. }
  1224. }
  1225. //model.removeNodeset("/root/temp1/tmpprcplist/prcplist");
  1226. }
  1227. // 처방화면 함수 카피
  1228. /****************************************************************************************
  1229. * Function : dsf_compareDsRow
  1230. * Description : 같은 데이터셋의 로우를 비교하여 데이터까지 같은지 확인
  1231. * Argument : objDsSrc : 원본데이터셋
  1232. * : objDsTrgt : 대상데이터셋
  1233. * : nRowSrc : 원본 로우
  1234. * : nRowTrg : 대상 로우
  1235. * return type :
  1236. * Creator :
  1237. ****************************************************************************************/
  1238. function dsf_compareDsRow(objDsSrc,objDsTrgt,nRowSrc,nRowTrg) {
  1239. // MMOCommon.xjs : lf_compareNodeVal 참조 컬럼정보 다르면 true
  1240. //if(lf_compareNodeVal(objDsTrgt,objDsSrc)) return true;
  1241. if(utlf_isNull(nRowSrc)) {
  1242. var num1 = 0;
  1243. var num2 = 0;
  1244. } else if(utlf_isNull(nRowTrg)) {
  1245. var num1 = nRowSrc;
  1246. var num2 = nRowSrc;
  1247. } else {
  1248. var num1 = nRowSrc;
  1249. var num2 = nRowTrg;
  1250. }
  1251. // 컬럼 비교해서 값이 다르면 ture
  1252. for(var i = 0 ; i < objDsSrc.colcount; i++) {
  1253. if(objDsSrc.getColumn(num1,i) != objDsTrgt.getColumn(num2,i)) return true;
  1254. }
  1255. // 다 같으면 false
  1256. return false;
  1257. }
  1258. function pmn_menu_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  1259. {
  1260. eval(e.id + "()");
  1261. }
  1262. ]]></Script>
  1263. </Form>
  1264. </FDL>