SMMMR02300.js 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. /**
  2. * @desc : 화면초기화
  3. *
  4. * @param :
  5. * @return :
  6. * @author : HIT EMR Team
  7. * @---------------------------------------------------
  8. */
  9. function fInitialize(){
  10. // Knuh_20110118
  11. //var rgstfromdd = ((getCurrentDate()).toDate()).getAddDate(-7, "D");
  12. var rgstfromdd = (getCurrentDate()).toDate();
  13. model.setValue("/root/main/srchprofhist/fromdd", rgstfromdd.getDateFormat());
  14. model.setValue("/root/main/srchprofhist/todd", getCurrentDate());
  15. fPrstUsge();
  16. //fReqFormlist();
  17. model.setValue("/root/main/newprof/formnm","-");
  18. model.removeNodeset("/root/main/profhist/list");
  19. fGetProfPrntHist();
  20. model.refresh();
  21. }
  22. /**
  23. * @desc : 사용여부
  24. *
  25. * @param :
  26. * @return :
  27. * @author : HIT EMR Team
  28. * @---------------------------------------------------
  29. */
  30. function fPrstUsge(){
  31. model.removeNodeset("/root/hidden/issusge");
  32. model.makeNode("/root/hidden/issusge");
  33. zbcfGetCodeList(new Array("M0332"), new Array("/root/hidden/issusge"));
  34. }
  35. /**
  36. * @desc : 서식명 조회
  37. * @
  38. * @param :
  39. * @return :
  40. * @author : HIT EMR Team
  41. * @---------------------------------------------------
  42. */
  43. function fReqFormlist(){
  44. //formnm , formcd 조회
  45. submit("TRMRF00708");
  46. addComboItem("cmb_profformlist", "전체", "-", "above");
  47. }
  48. /**
  49. * @desc : 출력내역 조회
  50. *
  51. * @param :
  52. * @return :
  53. * @author : HIT EMR Team
  54. * @---------------------------------------------------
  55. */
  56. function fGetProfPrntHist(){
  57. if( model.getValue("/root/main/srchprofhist/prntuserid") == "" ){
  58. model.setValue("/root/main/srchprofhist/prntusernm", "");
  59. }
  60. model.removeNodeset("/root/send/reqdata");
  61. model.makeValue("/root/send/reqdata/pid" , model.getValue("/root/main/srchprofhist/pid"));
  62. model.makeValue("/root/send/reqdata/fromdd" , model.getValue("/root/main/srchprofhist/fromdd"));
  63. model.makeValue("/root/send/reqdata/todd" , model.getValue("/root/main/srchprofhist/todd"));
  64. model.makeValue("/root/send/reqdata/formcd" , model.getValue("/root/main/srchprofhist/formcd"));
  65. model.makeValue("/root/send/reqdata/issflag" , model.getValue("/root/main/srchprofhist/issflag"));
  66. model.makeValue("/root/send/reqdata/srchflag" , model.getValue("/root/main/srchprofhist/srchflag"));
  67. model.makeValue("/root/send/reqdata/histflag" , "histflag" );
  68. model.makeValue("/root/send/reqdata/prntuserid" , model.getValue("/root/main/srchprofhist/prntuserid") );
  69. model.makeValue("/root/send/reqdata/prntusernm" , model.getValue("/root/main/srchprofhist/prntusernm") );
  70. //2010.02.22, 주희경, ordtype 조회조건 추가
  71. model.makeValue("/root/send/reqdata/ordtype" , model.getValue("/root/main/srchprofhist/ordtype"));
  72. //자필, OCS 제증명 구분을 조회조건에 추가함
  73. //2009. 1. 23. 오지훈
  74. model.makeValue("/root/send/reqdata/holograpflag", model.getValue("/root/main/srchprofhist/holograpflag"));
  75. //로그인 사용자가 보험팀인 경우, 노인요양, 방문간호지시서만 조회
  76. //2009. 1. 2. 오지훈
  77. if(getUserInfo("dutplcecd")=="4070300000"){
  78. model.makeValue("/root/send/reqdata/insuflag", "Y");
  79. }
  80. if(submit("TRMMR02301")){
  81. model.makeNode("/root/temp2/profhist");
  82. model.copyNode("/root/temp2/profhist", "/root/main/profhist");
  83. }
  84. model.refresh();
  85. }
  86. /**
  87. * @desc : 제증명 관리 화면 open
  88. *
  89. * @param :
  90. * @return :
  91. * @author : HIT EMR Team
  92. * @---------------------------------------------------
  93. */
  94. function fOpenProfMngt(){
  95. var currow = grd_proflist.row - grd_proflist.fixedRows + 1;
  96. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/memo/hardcd", 5593);
  97. //연번호 발행된 이력인 경우, 제증명관리화면을 open하지 않는다.
  98. if(model.getValue("/root/main/profhist/list["+ currow +"]/recyn") == "N"){
  99. var formrecseq = model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq");
  100. var yearseqno = model.getValue("/root/main/profhist/list[" + currow + "]/yearseqno");
  101. var pid = model.getValue("/root/main/profhist/list[" + currow + "]/pid");
  102. var formcd = model.getValue("/root/main/profhist/list[" + currow + "]/formcd");
  103. model.resetInstanceNode("/root/init/iemr");
  104. model.setValue("/root/init/iemr/pid" , pid); //등록번호
  105. model.setValue("/root/init/iemr/docucd" , formcd); //서식코드
  106. model.setValue("/root/init/iemr/ocmnum" , yearseqno); //연번호
  107. model.makeValue("/root/init/iemr/cmc_spcid" , ""); //blocking null exception
  108. model.makeValue("/root/init/iemr/cmc_orddate", ""); //blocking null exception
  109. model.makeValue("/root/init/iemr/cmc_orderseqno", ""); //blocking null exception
  110. if(window.children.item("imgemrviewer") == null){
  111. //window.load("SSMRC03130.xrw", "modeless", "imgemrviewer", "", "/root/init/iemr", "/root/hidden/temp");
  112. //open("SPMMR06400", "", "", "", "", "/root/init/iemr", "/root/send/iemr");
  113. }
  114. messageBox("자필 제증명입니다.", "I999");
  115. }else{
  116. model.makeValue("/root/temp/popup/disflag" , "popup");
  117. model.makeValue("/root/temp/popup/pid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  118. model.makeValue("/root/temp/popup/orddd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddd"));
  119. model.makeValue("/root/temp/popup/cretno" , model.getValue("/root/main/profhist/list[" + currow + "]/cretno"));
  120. model.makeValue("/root/temp/popup/ioflag" , model.getValue("/root/main/profhist/list[" + currow + "]/ioflag"));
  121. model.makeValue("/root/temp/popup/profcertseq" , model.getValue("/root/main/profhist/list[" + currow + "]/profcertseq"));
  122. model.makeValue("/root/temp/popup/formrecseq" , model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq"));
  123. model.makeValue("/root/temp/popup/yearseqno" , model.getValue("/root/main/profhist/list[" + currow + "]/yearseqno"));
  124. model.makeValue("/root/temp/popup/ord" , "ord");
  125. model.makeValue("/root/temp/popup/issstat" , model.getValue("/root/main/profhist/list[" + currow + "]/issstat"));
  126. model.makeValue("/root/temp/popup/issflag" , model.getValue("/root/main/profhist/list[" + currow + "]/issflag"));
  127. model.makeValue("/root/temp/popup/issid" , model.getValue("/root/main/profhist/list[" + currow + "]/issid"));
  128. model.makeValue("/root/temp/popup/issnm" , model.getValue("/root/main/profhist/list[" + currow + "]/issnm"));
  129. model.makeValue("/root/temp/popup/issdeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/issdeptcd"));
  130. model.makeValue("/root/temp/popup/issdeptnm" , model.getValue("/root/main/profhist/list[" + currow + "]/issdeptnm"));
  131. model.makeValue("/root/temp/popup/memoviewflag" , model.getValue("/root/memo/hardcd/hardcd/hardcd"));
  132. modal("SMMMR02900", 1,10, 10, "SMMMR02900", "/root/temp/popup", "/root/temp/popup");
  133. fGetProfPrntHist();
  134. }
  135. }
  136. /**
  137. * @desc : 건별 데이타 조회
  138. *
  139. * @param :
  140. * @return :
  141. * @author : HIT EMR Team
  142. * @---------------------------------------------------
  143. */
  144. function fSrchCalcScor(){
  145. var iRow = grd_proflist.row - grd_proflist.fixedRows + 1;
  146. model.removeNodeset("/root/send/reqdata");
  147. model.makeValue("/root/send/reqdata/profcertseq", model.getValue("/root/main/profhist/list["+iRow+"]/profcertseq"));
  148. if(!(submit("TRMMR02302"))){
  149. messageBox("조회를", "E009");
  150. model.makeValue("/root/temp/profinfo/profcertseq", "");
  151. }
  152. model.makeValue("/root/temp/profinfo/profcertseq", model.getValue("/root/main/profhist/list["+iRow+"]/profcertseq"));
  153. grp_calcHist.attribute("visibility")= "visible";
  154. }
  155. /**
  156. * @desc : 건별 데이타 삭제
  157. *
  158. * @param :
  159. * @return :
  160. * @author : HIT EMR Team
  161. * @---------------------------------------------------
  162. */
  163. function fDelCalcScor(){
  164. var nodeList = instance1.selectNodes("/root/main/prcpinfo/list");
  165. for(var i = 1; i <= nodeList.length; i++){
  166. if(model.getValue("/root/main/prcpinfo/list["+i+"]/check") == "true"){
  167. fDCprcpIFSet(i);
  168. }
  169. }
  170. grp_calcHist.attribute("visibility")= "hidden";
  171. fGetProfPrntHist();
  172. }
  173. /**
  174. * @desc : 저장 데이타 셋팅
  175. *
  176. * @param :
  177. * @return :
  178. * @author : HIT EMR Team
  179. * @---------------------------------------------------
  180. */
  181. function fDCprcpIFSet(){
  182. var nodeList = instance1.selectNodes("/root/main/prcpinfo/list");
  183. var sPassData =
  184. "savedataflag" //저장자료구분 (2:처방)
  185. + "▦saveflag" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  186. + "▦prcpflag" //처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  187. + "▦inptflag" //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  188. + "▦pamflag" //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  189. + "▦diagflag" //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  190. + "▦prcperrflag" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  191. + "▦deptcd" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  192. + "▦deptnm" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  193. + "▦userid" //사용자ID (입력자 또는 로그인한 사용자ID)
  194. + "▦usernm" //사용자명 (입력자 또는 로그인한 사용자명)
  195. + "▦singyn" //전자서명여부
  196. + "▦pid" //등록번호(원무Key)
  197. + "▦orddd" //진료일자(원무Key) - 입원일경우는 '-'
  198. + "▦indd" //입원일자(원무Key) - 외래일경우는 '-'
  199. + "▦cretno" //생성번호(원무Key)
  200. + "▦orddeptcd" //진료과(원무)
  201. + "▦orddrid" //진료의ID(원무)
  202. + "▦instcd" //기관코드
  203. + "▦status" //신규(I), DC(C)
  204. + "▦rowno" //줄번호 (병리 요구)
  205. + "▦prcpdd" //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  206. + "▦prcpno" //처방번호 (status가 'I'일 경우 0)
  207. + "▦prcphistno" //처방이력번호 (status가 'I'일 경우 0)
  208. + "▦prcpgenrflag" //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  209. + "▦prcpstatcd" //처방상태 : '000'
  210. + "▦prcpkindcd" //처방종류 : '20'
  211. + "▦prcpcd" //처방코드
  212. + "▦calcscorcd" //수가코드
  213. + "▦inclprcpcd" //종속처방코드 ('-')
  214. + "▦inclprcpno" //종속처방번호 (일련번호 - 종속처방코드별로 생성)
  215. + "▦prcpexecdeptcd" //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  216. + "▦prcphopedd" //처방희망일자 (처방일자 이전으로 발생불가)
  217. + "▦prcpqty" //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  218. + "▦prcpqtyunitflag" //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  219. + "▦prcptims" //처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  220. + "▦prcpdayno" //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  221. + "▦payflagcd" //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  222. + "▦erprcpflag" //응급처방구분 (Y/N)
  223. + "▦precureprcpflag" //선처치처방구분 (Y/N)
  224. + "▦nigtprcpflag" //야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  225. + "▦portprcpflag" //포터블처방구분 (Y/N)
  226. + "▦fixprcpflag" //정액처방구분 (Y/N)
  227. + "▦choiordflag" //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  228. + "▦anamneflag" //기왕력(증)구분 (Y/N)
  229. + "▦prcpdirecflag" //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  230. + "▦angioflagcd" //Angio구분 (코드정의서 M0006 참조) : '-'
  231. + "▦opansflagcd" //수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  232. + "▦ansttm" //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  233. + "▦offictourhealexamflag" //출장검진구분 (Y/N)
  234. + "▦stemcellflag" //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  235. + "▦hosinhosoutflag" //원내외구분(건진은 'I', 약이 아닐경우 '-')
  236. + "▦hosinprcpresncd" //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  237. + "▦issdeptcd" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  238. + "▦prcpauthflag" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  239. + "▦prcpinptflag" //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  240. + "▦prcpsignflag" //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  241. + "▦oprsrvno" //수술예약번호(0)
  242. + "▦clincstdyflag" //임상연구구분 (Y/N)
  243. + "▦clincstdycd" //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  244. + "▦drugmthdspccd" //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  245. + "▦prcpdelivefact" //처방전달사항
  246. + "▦tootfact" //치식 (병리만 사용, 나머지는 '-')
  247. + "▦matrsetprcpspec" //재료처방내용 ('-') -> 추후정의
  248. + "▦calcflag" //계산구분 (Y/N)
  249. + "▦rsrvflag" //예약구분 (Y/N)
  250. + "▦rsrvdd" //예약일자 ('N'일 경우 '00000000')
  251. + "▦rsrvtm" //예약시간 ('N'일 경우 '000000')
  252. + "▦rsrvrid" //예약자ID ('-')
  253. + "▦execdd" //실시일자 ('00000000')
  254. + "▦exectm" //실시시간 ('000000')
  255. + "▦execrid" //실시자ID ('-')
  256. + "▦direcprcplnkdd" //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  257. + "▦direcprcplnkno" //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  258. + "▦ordreqlnkno" //진료의뢰연계번호 (0)
  259. + "▦testreqlnkno" //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  260. + "▦ocrtag" // OCRTAG 2013.12.20
  261. + "▩" ;
  262. var sHeaderData =
  263. "saveflag"
  264. + "▦ocrtag"
  265. + "▦pid"
  266. + "▦orddd"
  267. + "▦cretno"
  268. + "▦orddeptcd"
  269. + "▦orddrid"
  270. + "▦lstupdtdeptcd"
  271. + "▦lstupdtdt"
  272. + "▦lstupdtuserid"
  273. + "▦delyn"
  274. + "▦eocryn"
  275. + "▦statcd"
  276. + "▦updtresncnts"
  277. + "▦pagecnt"
  278. + "▩" ;
  279. var savedataflag = "";
  280. var saveflag = "";
  281. var prcpflag = "";
  282. var inptflag = "";
  283. var pamflag = "";
  284. var diagflag = "";
  285. var prcperrflag = "";
  286. var deptcd = "";
  287. var deptnm = "";
  288. var userid = "";
  289. var usernm = "";
  290. var singyn = "";
  291. var pid = "";
  292. var orddd = "";
  293. var indd = "";
  294. var cretno = "";
  295. var orddeptcd = "";
  296. var orddrid = "";
  297. var instcd = "";
  298. var status = "";
  299. var rowno = "";
  300. var prcpdd = "";
  301. var prcpno = "";
  302. var prcphistno = "";
  303. var prcpgenrflag = "";
  304. var prcpstatcd = "";
  305. var prcpkindcd = "";
  306. var prcpcd = "";
  307. var calcscorcd = "";
  308. var inclprcpcd = "";
  309. var inclprcpno = "";
  310. var prcpexecdeptcd = "";
  311. var prcphopedd = "";
  312. var prcpqty = "";
  313. var prcpqtyunitflag = "";
  314. var prcptims = "";
  315. var prcpdayno = "";
  316. var payflagcd = "";
  317. var erprcpflag = "";
  318. var precureprcpflag = "";
  319. var nigtprcpflag = "";
  320. var portprcpflag = "";
  321. var fixprcpflag = "";
  322. var choiordflag = "";
  323. var anamneflag = "";
  324. var prcpdirecflag = "";
  325. var angioflagcd = "";
  326. var opansflagcd = "";
  327. var ansttm = "";
  328. var offictourhealexamflag = "";
  329. var stemcellflag = "";
  330. var hosinhosoutflag = "";
  331. var hosinprcpresncd = "";
  332. var issdeptcd = "";
  333. var prcpauthflag = "";
  334. var prcpinptflag = "";
  335. var prcpsignflag = "";
  336. var oprsrvno = "";
  337. var clincstdyflag = "";
  338. var clincstdycd = "";
  339. var drugmthdspccd = "";
  340. var prcpdelivefact = "";
  341. var tootfact = "";
  342. var matrsetprcpspec = "";
  343. var calcflag = "";
  344. var rsrvflag = "";
  345. var rsrvdd = "";
  346. var rsrvtm = "";
  347. var rsrvrid = "";
  348. var execdd = "";
  349. var exectm = "";
  350. var execrid = "";
  351. var direcprcplnkdd = "";
  352. var direcprcplnkno = "";
  353. var ordreqlnkno = "";
  354. var testreqlnkno = "";
  355. var ocrtag = "";
  356. var chkcnt = 0;
  357. for(var i = 1; i <= nodeList.length; i++){
  358. if(model.getValue("/root/main/prcpinfo/list["+i+"]/check") == "true"){
  359. chkcnt++;
  360. savedataflag = "2"; //저장자료구분 (2:처방)
  361. // saveflag = "O"; //저장구분 (O:외래, I:입원, E:응급, S:건진)
  362. saveflag = model.getValue("/root/main/prcpinfo/list[" + i + "]/saveflag"); //2010.02.18, hkjoo, 저장구분 (O:외래, I:입원, E:응급, S:건진)
  363. prcpflag = "5"; //처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  364. inptflag = "15"; //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  365. pamflag = "Y"; //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  366. diagflag = "N"; //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  367. prcperrflag = "Y"; //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  368. deptcd = getUserInfo("dutplcecd"); //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  369. deptnm = getUserInfo("dutplcenm"); //부서명(입력자 또는 로그인한 사용자의 부서명)
  370. userid = getUserInfo("userid"); //사용자ID (입력자 또는 로그인한 사용자ID)
  371. usernm = getUserInfo("usernm"); //사용자명 (입력자 또는 로그인한 사용자명)
  372. singyn = "N"; //전자서명여부
  373. pid = model.getValue("/root/main/prcpinfo/list[" + i + "]/pid"); //등록번호(원무Key)
  374. orddd = model.getValue("/root/main/prcpinfo/list[" + i + "]/orddd"); //진료일자(원무Key) - 입원일경우는 '-'
  375. indd = "-"; //입원일자(원무Key) - 외래일경우는 '-'
  376. if (saveflag == "I")
  377. {
  378. indd = model.getValue("/root/main/prcpinfo/list["+i+"]/orddd");
  379. }
  380. cretno = model.getValue("/root/main/prcpinfo/list[" + i + "]/cretno"); //생성번호(원무Key)
  381. orddeptcd = model.getValue("/root/main/prcpinfo/list[" + i + "]/orddeptcd"); //진료과(원무)
  382. orddrid = model.getValue("/root/main/prcpinfo/list[" + i + "]/orddrid");
  383. instcd = model.getValue("/root/main/prcpinfo/list[" + i + "]/instcd"); //기관코드
  384. status = ""; //신규(I), DC(C)
  385. status = "C";
  386. rowno = "1"; //줄번호 (병리 요구)
  387. prcpdd = ""; //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  388. //2010.02.27, 외래도 입원도 발행시 저장된 prcpdd 그대로 넘겨줘야함. 외래일 경우 다른날에 출력 할 수 있기 때문.
  389. prcpdd = model.getValue("/root/main/prcpinfo/list[" + i + "]/prcpdd"); //prcpdd
  390. /* if (saveflag == "I") //2010.02.18, hkjoo 입원의 경우에도 입원일자가 prcpdd로 셋팅되야함.
  391. {
  392. prcpdd = getCurrentDate();
  393. }
  394. else
  395. {*/
  396. // prcpdd = orddd;
  397. // }
  398. prcpno = model.getValue("/root/main/prcpinfo/list[" + i + "]/prcpno"); //처방번호 (status가 'I'일 경우 0)
  399. prcphistno = model.getValue("/root/main/prcpinfo/list[" + i + "]/prcphistno"); //처방이력번호 (status가 'I'일 경우 0)
  400. prcpgenrflag = saveflag; //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  401. prcpstatcd = "000"; //처방상태 : '000'
  402. prcpkindcd = "20"; //처방종류 : '20'
  403. prcpcd = model.getValue("/root/main/prcpinfo/list[" + i + "]/prcpcd"); //처방코드
  404. calcscorcd = model.getValue("/root/main/prcpinfo/list[" + i + "]/calcscorcd"); //수가코드
  405. inclprcpcd = "-"; //종속처방코드 ('-')
  406. inclprcpno = ""; //종속처방번호 (일련번호 - 종속처방코드별로 생성)
  407. prcpexecdeptcd = getUserInfo("dutplcecd"); //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  408. prcphopedd = prcpdd //처방희망일자 (처방일자 이전으로 발생불가)
  409. prcpqty = "1"; //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  410. prcpqtyunitflag = "-"; //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  411. prcptims = model.getValue("/root/main/prcpinfo/list[" + i + "]/prcptims"); //처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  412. prcpdayno = "1"; //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  413. payflagcd = "-"; //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  414. erprcpflag = "N"; //응급처방구분 (Y/N)
  415. precureprcpflag = "N"; //선처치처방구분 (Y/N)
  416. nigtprcpflag = "N"; //야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  417. portprcpflag = "N"; //포터블처방구분 (Y/N)
  418. fixprcpflag = "N"; //정액처방구분 (Y/N)
  419. choiordflag = "-"; //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  420. anamneflag = "N"; //기왕력(증)구분 (Y/N)
  421. prcpdirecflag = "-"; //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  422. angioflagcd = "-"; //Angio구분 (코드정의서 M0006 참조) : '-'
  423. opansflagcd = "-"; //수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  424. ansttm = "0000"; //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  425. offictourhealexamflag = "N"; //출장검진구분 (Y/N)
  426. stemcellflag = ""; //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  427. hosinhosoutflag = "-"; //원내외구분(건진은 'I', 약이 아닐경우 '-')
  428. hosinprcpresncd = "00"; //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  429. issdeptcd = "-"; //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  430. prcpauthflag = "5"; //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  431. prcpinptflag = "15"; //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  432. prcpsignflag = "0"; //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  433. oprsrvno = "0"; //수술예약번호(0)
  434. clincstdyflag = "N"; //임상연구구분 (Y/N)
  435. clincstdycd = "-"; //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  436. drugmthdspccd = "-"; //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  437. prcpdelivefact = ""; //처방전달사항
  438. tootfact = "-"; //치식 (병리만 사용, 나머지는 '-')
  439. matrsetprcpspec = "-"; //재료처방내용 ('-') -> 추후정의
  440. calcflag = "N"; //계산구분 (Y/N)
  441. rsrvflag = "N"; //예약구분 (Y/N)
  442. rsrvdd = "00000000"; //예약일자 ('N'일 경우 '00000000')
  443. rsrvtm = "000000"; //예약시간 ('N'일 경우 '000000')
  444. rsrvrid = "-"; //예약자ID ('-')
  445. execdd = "00000000"; //실시일자 ('00000000')
  446. exectm = "000000"; //실시시간 ('000000')
  447. execrid = "-"; //실시자ID ('-')
  448. direcprcplnkdd = "00000000"; //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  449. direcprcplnkno = "0"; //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  450. ordreqlnkno = "0"; //진료의뢰연계번호 (0)
  451. testreqlnkno = "0"; //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  452. ocrtag = model.getValue("/root/main/profhist/list[" + grd_proflist.row + "]/ocrtag"); //ocrtag
  453. sPassData = sPassData
  454. + savedataflag //savedataflag 저장자료구분 (2:처방)
  455. + "▦" + saveflag //saveflag" 저장구분 (O:외래, I:입원, E:응급, S:건진)
  456. + "▦" + prcpflag //prcpflag" 처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  457. + "▦" + inptflag //inptflag" 입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  458. + "▦" + pamflag //pamflag" 원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  459. + "▦" + diagflag //diagflag" 진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  460. + "▦" + prcperrflag //prcperrflag" 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  461. + "▦" + deptcd //deptcd" 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  462. + "▦" + deptnm //deptnm" 부서명 (입력자 또는 로그인한 사용자의 부서명)
  463. + "▦" + userid //userid" 사용자ID (입력자 또는 로그인한 사용자ID)
  464. + "▦" + usernm //usernm" 사용자명 (입력자 또는 로그인한 사용자명)
  465. + "▦" + singyn //singyn" 전자서명여부
  466. + "▦" + pid //pid" 등록번호(원무Key)
  467. + "▦" + orddd //orddd" 진료일자(원무Key) - 입원일경우는 '-'
  468. + "▦" + indd //indd" 입원일자(원무Key) - 외래일경우는 '-'
  469. + "▦" + cretno //cretno" 생성번호(원무Key)
  470. + "▦" + orddeptcd //orddeptcd" 진료과(원무)
  471. + "▦" + orddrid //orddrid" 진료의ID(원무)
  472. + "▦" + instcd //instcd" 기관코드
  473. + "▦" + status //status" 신규(I), DC(C)
  474. + "▦" + rowno //rowno" 줄번호 (병리 요구)
  475. + "▦" + prcpdd //prcpdd" 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  476. + "▦" + prcpno //prcpno" 처방번호 (status가 'I'일 경우 0)
  477. + "▦" + prcphistno //prcphistno" 처방이력번호 (status가 'I'일 경우 0)
  478. + "▦" + prcpgenrflag //prcpgenrflag" 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  479. + "▦" + prcpstatcd //prcpstatcd" 처방상태 : '000'
  480. + "▦" + prcpkindcd //prcpkindcd" 처방종류 : '20'
  481. + "▦" + prcpcd //prcpcd" 처방코드
  482. + "▦" + calcscorcd //calcscorcd" 수가코드
  483. + "▦" + inclprcpcd //inclprcpcd" 종속처방코드 ('-')
  484. + "▦" + inclprcpno //inclprcpno" 종속처방번호 (일련번호 - 종속처방코드별로 생성)
  485. + "▦" + prcpexecdeptcd //prcpexecdeptcd" 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  486. + "▦" + prcphopedd //prcphopedd" 처방희망일자 (처방일자 이전으로 발생불가)
  487. + "▦" + prcpqty //prcpqty" 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  488. + "▦" + prcpqtyunitflag //prcpqtyunitflag" 처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  489. + "▦" + prcptims //prcptims" 처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  490. + "▦" + prcpdayno //prcpdayno" 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  491. + "▦" + payflagcd //payflagcd" 급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  492. + "▦" + erprcpflag //erprcpflag" 응급처방구분 (Y/N)
  493. + "▦" + precureprcpflag //precureprcpflag" 선처치처방구분 (Y/N)
  494. + "▦" + nigtprcpflag //nigtprcpflag" 야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  495. + "▦" + portprcpflag //portprcpflag" 포터블처방구분 (Y/N)
  496. + "▦" + fixprcpflag //fixprcpflag" 정액처방구분 (Y/N)
  497. + "▦" + choiordflag //choiordflag" 선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  498. + "▦" + anamneflag //anamneflag" 기왕력(증)구분 (Y/N)
  499. + "▦" + prcpdirecflag //prcpdirecflag" 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  500. + "▦" + angioflagcd //angioflagcd" Angio구분 (코드정의서 M0006 참조) : '-'
  501. + "▦" + opansflagcd //opansflagcd" 수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  502. + "▦" + ansttm //ansttm" 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  503. + "▦" + offictourhealexamflag //offictourhealexamflag" 출장검진구분 (Y/N)
  504. + "▦" + stemcellflag //stemcellflag" '00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  505. + "▦" + hosinhosoutflag //hosinhosoutflag" 원내외구분(건진은 'I', 약이 아닐경우 '-')
  506. + "▦" + hosinprcpresncd //hosinprcpresncd" 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  507. + "▦" + issdeptcd //issdeptcd" 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  508. + "▦" + prcpauthflag //prcpauthflag" 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  509. + "▦" + prcpinptflag //prcpinptflag" 처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  510. + "▦" + prcpsignflag //prcpsignflag" 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  511. + "▦" + oprsrvno //oprsrvno" 수술예약번호(0)
  512. + "▦" + clincstdyflag //clincstdyflag" 임상연구구분 (Y/N)
  513. + "▦" + clincstdycd //clincstdycd" 임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  514. + "▦" + drugmthdspccd //drugmthdspccd" 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  515. + "▦" + prcpdelivefact //prcpdelivefact" 처방전달사항
  516. + "▦" + tootfact //tootfact" 치식 (병리만 사용, 나머지는 '-')
  517. + "▦" + matrsetprcpspec //matrsetprcpspec" 재료처방내용 ('-') -> 추후정의
  518. + "▦" + calcflag //calcflag" 계산구분 (Y/N)
  519. + "▦" + rsrvflag //rsrvflag" 예약구분 (Y/N)
  520. + "▦" + rsrvdd //rsrvdd" 예약일자 ('N'일 경우 '00000000')
  521. + "▦" + rsrvtm //rsrvtm" 예약시간 ('N'일 경우 '000000')
  522. + "▦" + rsrvrid //rsrvrid" 예약자ID ('-')
  523. + "▦" + execdd //execdd" 실시일자 ('00000000')
  524. + "▦" + exectm //exectm" 실시시간 ('000000')
  525. + "▦" + execrid //execrid" 실시자ID ('-')
  526. + "▦" + direcprcplnkdd //direcprcplnkdd" 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  527. + "▦" + direcprcplnkno //direcprcplnkno" 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  528. + "▦" + ordreqlnkno //ordreqlnkno" 진료의뢰연계번호 (0)
  529. + "▦" + testreqlnkno //testreqlnkno" 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  530. + "▦" + ocrtag //ocrtag" OCRTAG
  531. + "▩" ;
  532. // 2013.12.26 Start
  533. if( chkcnt == 1 ){
  534. // 2013.12.20 반환시 OCR 이미지 삭제처리
  535. if( ocrtag != null && ocrtag != "" ){
  536. sHeaderData = sHeaderData
  537. + saveflag
  538. + "▦" + ocrtag
  539. + "▦" + pid //pid" 등록번호(원무Key)
  540. + "▦" + orddd //orddd" 진료일자(원무Key) - 입원일경우는 '-'
  541. + "▦" + cretno //cretno" 생성번호(원무Key)
  542. + "▦" + orddeptcd //orddeptcd" 진료과(원무)
  543. + "▦" + orddrid //orddrid" 진료의ID(원무)
  544. + "▦" + getUserInfo("dutplcecd") //instcd" 기관코드
  545. + "▦" + getCurrentDate()
  546. + "▦" + getUserInfo("userid")
  547. + "▦" + "Y"
  548. + "▦" + "Y"
  549. + "▦" + "CP"
  550. + "▦" + "제증명 반환으로 인한 삭제"
  551. + "▦" + "1"
  552. + "▩" ;
  553. }
  554. }
  555. }
  556. }
  557. model.makeValue("/root/send/savedata/ocrtaglist", sHeaderData);
  558. model.makeValue("/root/send/savedata/rcptlist", sPassData);
  559. model.makeValue("/root/send/savedata/profcertseq", model.getValue("/root/temp/profinfo/profcertseq"));
  560. if (submit("TXMMR02301", false) == true){
  561. //오류팝업_KNUH_20110215 추가
  562. var prcpErrList = model.instances(0).selectNodes( "/root/result/prcperrlist" );
  563. if ( prcpErrList.length > 0 ) {
  564. if ( !isNull(model.getValue ("/root/result/prcperrlist/prcpcd"))){
  565. var xpt = window.screenleft + 100;
  566. var ypt = window.screenTop + 50;
  567. var coord = getRelativeCoordinate ( xpt, ypt );
  568. var mon = coord[0];
  569. xpt = coord[1];
  570. ypt = coord[2];
  571. model.makeValue("/root/result/prcperrlist/flag", "1");
  572. //open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/temp/result", "/root/result", "", false );
  573. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result" ); //오류팝업
  574. model.removeNodeset("/root/result/prcperrlist");
  575. }
  576. }
  577. else
  578. {
  579. fSrchCalcScor();
  580. }
  581. }
  582. }