SMMNP01801.js 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468
  1. /* ---------------------------------------------------------------------
  2. 수술마취간호처방 (SMMNP01801.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. // --------------------------------------------------
  9. // 처방저장
  10. // --------------------------------------------------
  11. function fPrcpDataSave(){
  12. var sOpcrPath = "/root/main/MmohoprsLists/mmohoprslist" ;
  13. var sPrcpDataPat = "/root/main/patinfocond/patinfo" ;
  14. var sPrcpDataPath = "/root/main/prcpposinfo/prcpinfo/prcplist";
  15. var sPid = model.getValue(gPathNode[6]+"/pid") ; // 환자번호
  16. if (sPid == "") {
  17. messageBox("환자가 지정되지", "E007");
  18. return;
  19. }
  20. // 처방정보 Save를 위한 Node생성
  21. var sSendPath = "/root/send/savedata";
  22. model.removeNodeset(sSendPath );
  23. model.makeNode(sSendPath );
  24. model.makeNode(sSendPath + "/saveflaginfo"); //저장구분정보(saveFlagInfoVO)
  25. model.makeNode(sSendPath + "/savergstinfo"); //저장등록정보(saveRgstInfoVO)
  26. model.makeNode(sSendPath + "/saveprcpinfo"); //저장처방정보(savePrcpInfoVO)
  27. model.makeNode(sSendPath + "/savesigninfo"); //저장인증정보(saveSignInfoVO)
  28. model.makeNode(sSendPath + "/refcond" ); //저장 후 조회조건
  29. // --------------------------------------------------
  30. // 지원부서 처방저장 Interface - 공통 사용
  31. // --------------------------------------------------
  32. // 저장구분정보(saveFlagInfoVO) -> "saveFlagInfo"
  33. // --------------------------------------------------
  34. var FlagInfoData = "";
  35. var FlagInfoHeader = "savedataflag" +"▦" // 01 저장자료구분 (2:처방)
  36. + "saveflag" +"▦" // 02 저장구분 (O:외래, I:입원, E:응급, S:건진)
  37. + "prcpflag" +"▦" // 03 처방구분 (코드정의서 M0035 참조 "0"을 제외한 해당 값을 넣어주세요...)1:정기,2:응급,3:추가
  38. + "inptflag" +"▦" // 04 입력구분 (코드정의서 M0034 참조)
  39. + "pamflag" +"▦" // 05 원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  40. + "diagflag" +"▦" // 06 진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ("Y"이면 진단없이 처방 저장이 안됨)
  41. + "prcperrflag" +"▦" // 07 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  42. + "deptcd" +"▦" // 08 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  43. + "deptnm" +"▦" // 09 부서명 (입력자 또는 로그인한 사용자의 부서명)
  44. + "userid" +"▦" // 10 사용자ID (입력자 또는 로그인한 사용자ID)
  45. + "usernm" +"▦" // 11 사용자명 (입력자 또는 로그인한 사용자명)
  46. + "signyn" +"▩"; // 12 전자서명여부 (Y/N)
  47. // --------------------------------------------------
  48. // 저장등록정보(saveRgstInfoVO) ->" saveRgstInfo"
  49. // --------------------------------------------------
  50. var RgstInfoData = "";
  51. var RgstInfoHeader = "pid" +"▦" // 1 등록번호(원무Key)
  52. + "orddd" +"▦" // 2 진료일자(원무Key) - 입원일경우는 "-"
  53. + "indd" +"▦" // 3 입원일자(원무Key) - 외래일경우는 "-"
  54. + "cretno" +"▦" // 4 생성번호(원무Key)
  55. + "orddeptcd" +"▦" // 5 진료과(원무)
  56. + "orddrid" +"▦" // 6 진료의ID(원무)
  57. + "instcd" +"▩"; // 7 기관코드
  58. // --------------------------------------------------
  59. // 저장처방정보(savePrcpInfoVO) ->" savePrcpInfo"
  60. // --------------------------------------------------
  61. var PrcpInfoData = "";
  62. var PrcpInfoHeader = "status" +"▦" // 01 신규(I), DC(C)
  63. + "rowno" +"▦" // 02 줄번호 (병리 요구)
  64. + "prcpdd" +"▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  65. + "prcpno" +"▦" // 04 처방번호 (status가 "I"일 경우 0)
  66. + "prcphistno" +"▦" // 05 처방이력번호 (status가 "I"일 경우 0)
  67. + "instcd" +"▦" // 06 기관코드
  68. + "pid" +"▦" // 07 등록번호(원무Key)
  69. + "orddd" +"▦" // 08 진료일자(원무Key) - 입원환자일 경우 indd
  70. + "cretno" +"▦" // 09 생성번호(원무Key)
  71. + "orddeptcd" +"▦" // 10 진료과(원무)
  72. + "orddrid" +"▦" // 11 진료의ID(원무)
  73. + "prcpgenrflag" +"▦" // 12 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  74. + "prcpstatcd" +"▦" // 13 처방상태 : "000"
  75. + "prcpkindcd" +"▦" // 14 처방종류 : "20"
  76. + "prcpcd" +"▦" // 15 처방코드
  77. + "calcscorcd" +"▦" // 16 수가코드
  78. + "inclprcpcd" +"▦" // 17 종속처방코드 ("-")
  79. + "inclprcpno" +"▦" // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성)
  80. + "prcpexecdeptcd" +"▦" // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
  81. + "prcphopedd" +"▦" // 20 처방희망일자 (처방일자 이전으로 발생불가)
  82. + "prcpqty" +"▦" // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  83. + "prcpqtyunitflag" +"▦" // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
  84. + "prcptims" +"▦" // 23 처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  85. + "prcpdayno" +"▦" // 24 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  86. + "payflagcd" +"▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
  87. + "erprcpflag" +"▦" // 26 응급처방구분 (Y/N)
  88. + "precureprcpflag" +"▦" // 27 선처치처방구분 (Y/N)
  89. + "nigtprcpflag" +"▦" // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  90. + "portprcpflag" +"▦" // 29 포터블처방구분 (Y/N)
  91. + "fixprcpflag" +"▦" // 30 정액처방구분 (Y/N)
  92. + "choiordflag" +"▦" // 31 선택처방구분 (Y/N) -> 만약 "-"일 경우 원무정보 기준으로 처리
  93. + "anamneflag" +"▦" // 32 기왕력(증)구분 (Y/N)
  94. + "prcpdirecflag" +"▦" // 33 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : "-"
  95. + "angioflagcd" +"▦" // 34 Angio구분 (코드정의서 M0006 참조) : "-"
  96. + "opansflagcd" +"▦" // 35 수술마취구분 (코드정의서 M0007, M0008 참조) : "-"
  97. + "ansttm" +"▦" // 36 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  98. + "offictourhealexamflag" +"▦" // 37 출장검진구분 (Y/N)
  99. + "stemcellflag" +"▦" // 38 "00NNN" 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  100. + "hosinhosoutflag" +"▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-")
  101. + "hosinprcpresncd" +"▦" // 40 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 "00")
  102. + "issdeptcd" +"▦" // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  103. + "prcpauthflag" +"▦" // 42 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  104. + "prcpinptflag" +"▦" // 43 처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  105. + "prcpsignflag" +"▦" // 44 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  106. + "oprsrvno" +"▦" // 45 수술예약번호(0)
  107. + "clincstdyflag" +"▦" // 46 임상연구구분 (Y/N)
  108. + "clincstdycd" +"▦" // 47 임상연구코드 ("-") -> 임상연구구분이 "Y"일 경우 임상연구코드를 등록
  109. + "drugmthdspccd" +"▦" // 48 *투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-")
  110. + "prcpdelivefact" +"▦" // 49 처방전달사항
  111. + "tootfact" +"▦" // 50 치식 (병리만 사용, 나머지는 "-")
  112. + "matrsetprcpspec" +"▦" // 51 *재료처방내용 ("-") -> 추후정의
  113. + "calcflag" +"▦" // 52 계산구분 (Y/N)
  114. + "rsrvflag" +"▦" // 53 예약구분 (Y/N)
  115. + "rsrvdd" +"▦" // 54 예약일자 ("N"일 경우 "00000000")
  116. + "rsrvtm" +"▦" // 55 예약시간 ("N"일 경우 "000000")
  117. + "rsrvrid" +"▦" // 56 예약자ID ("-")
  118. + "execdd" +"▦" // 57 실시일자 ("00000000")
  119. + "exectm" +"▦" // 58 실시시간 ("000000")
  120. + "execrid" +"▦" // 59 실시자ID ("-")
  121. + "direcprcplnkdd" +"▦" // 60 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  122. + "direcprcplnkno" +"▦" // 61 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  123. + "ordreqlnkno" +"▦" // 62 진료의뢰연계번호 (0)
  124. + "testreqlnkno" +"▩"; // 63 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  125. // --------------------------------------------------
  126. // 저장처방정보(saveSignInfoVO) ->" saveSignInfo"
  127. // --------------------------------------------------
  128. var SignInfoData = "";
  129. var SignInfoHeader = "signdd" +"▦" // 01 서명일자
  130. + "signno" +"▦" // 02 서명번호
  131. + "instcd" +"▦" // 03 기관코드
  132. + "pid" +"▦" // 04 등록번호
  133. + "orddd" +"▦" // 05 진료일자
  134. + "cretno" +"▦" // 06 생성번호
  135. + "signflag" +"▦" // 07 서명구분
  136. + "signgenrflag" +"▦" // 08 서명발생구분
  137. + "rgstdeptcd" +"▦" // 09 등록부서코드
  138. + "rgstdd" +"▦" // 10 등록일자
  139. + "rgsttm" +"▦" // 11 등록시간
  140. + "rgstrid" +"▦" // 12 등록자ID
  141. + "updtdeptcd" +"▦" // 13 수정부서코드
  142. + "updtdd" +"▦" // 14 수정일자
  143. + "updttm" +"▦" // 15 수정시간
  144. + "updtrid" +"▦" // 16 수정자ID
  145. + "fstrgstrid" +"▦" // 17 최초등록자ID
  146. + "fstrgstdt" +"▦" // 18 최초등록일시
  147. + "lastupdtrid" +"▦" // 19 최종수정자ID
  148. + "lastupdtdt" +"▦" // 20 최종수정일시
  149. + "signbfcnts" +"▦" // 21 서명전내역
  150. + "signaftcnts" +"▩"; // 22 서명후내역
  151. var ordtype = ""; //환자진료형태(외래 O, 응급 E ,입원 I, D:DSC)
  152. var deptcd = ""; //부서코드
  153. var deptnm = ""; //부서명
  154. var indd = ""; //입원일자
  155. var orddd = ""; //진료일자
  156. //var prcpdd = ""; //처방일자
  157. var prcphistno = ""; //처방이력번호
  158. var prcpno = ""; //처방번호
  159. var ordindd = ""; //진료일자(외래일 경우 orddd, 입원일 경우 indd)
  160. var cretno = ""; //환자 일자별 일련번호
  161. ordtype = model.getValue(sOpcrPath + "/oppatflagcd"); // 환자진료형태(외래 O, 응급 E ,입원 I)
  162. deptcd = getUserInfo("dutplcecd"); // 로인 사용자 근무지 부서 코드
  163. deptnm = getUserInfo("dutplcenm"); // 로인 사용자 근무지 부서 코드명
  164. // 사용 및 반납에 관한 부서는 차대리가 준비중
  165. if (ordtype == "O") { //외래
  166. indd = "-"; //입원일자(원무Key) - 외래일경우는 "-"
  167. cretno = model.getValue(sOpcrPath + "/o_cretno");
  168. orddd = model.getValue(sOpcrPath + "/o_orddd" );
  169. ordindd = model.getValue(sOpcrPath + "/o_orddd" );
  170. } else { //입원
  171. orddd = "-" ; //진료일자(원무Key) - 입원일경우는 "-"
  172. cretno = model.getValue(sOpcrPath + "/i_cretno");
  173. indd = model.getValue(sOpcrPath + "/i_indd" );
  174. ordindd = model.getValue(sOpcrPath + "/i_indd" );
  175. }
  176. // 저장구분정보(saveFlagInfoVO)
  177. FlagInfoData = "2" + "▦" // 01 저장자료구분 (2:처방)
  178. + ordtype + "▦" // 02 저장구분 (O:외래, I:입원, E:응급, S:건진)
  179. + "2" + "▦" // 03 처방구분(M0035 처방권한에 대한 구분종류 : 간호 추가처방)
  180. + "10" + "▦" // 04 입력구분(M0034 처방입력에 대한 구분종류 : 간호처방) 10:Cart처방
  181. + "Y" + "▦" // 05 원무정보 처리구분 (Y/N)
  182. + "N" + "▦" // 06 진단정보 처리구분 (Y/N)
  183. + "Y" + "▦" // 07 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  184. + deptcd + "▦" // 08 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  185. + deptnm + "▦" // 09 부서명 (입력자 또는 로그인한 사용자의 부서명)
  186. + getUserId() + "▦" // 10 사용자ID (입력자 또는 로그인한 사용자ID)
  187. + getUserName() + "▦" // 11 사용자명 (입력자 또는 로그인한 사용자명)
  188. + "N" + "▩"; // 12 전자서명여부 (Y/N)
  189. // 저장등록정보(saveRgstInfoVO)
  190. RgstInfoData = sPid + "▦" // 1 등록번호(원무Key)
  191. + orddd + "▦" // 2 진료일자(원무Key) - 입원일경우는 "-"
  192. + indd + "▦" // 3 입원일자(원무Key) - 외래일경우는 "-"
  193. + cretno + "▦" // 4 생성번호(원무Key)
  194. + model.getValue(sOpcrPath + "/orddeptcd") + "▦" // 5 진료과(원무)
  195. + model.getValue(sOpcrPath + "/orddrid" ) + "▦" // 6 진료의ID(원무)
  196. + model.getValue(sOpcrPath + "/instcd" ) + "▩"; // 7 기관코드
  197. // 저장처방정보(savePrcpInfoVO) 자료를 구성한다.
  198. var PrcpData = "";
  199. var PrcpData0105 = "" ; // 01 신규(I), DC(C)
  200. // 02 줄번호 (병리 요구)
  201. // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  202. // 04 처방번호 (status가 "I"일 경우 0)
  203. // 05 처방이력번호 (status가 "I"일 경우 0)
  204. var PrcpData0614 = model.getValue(sOpcrPath + "/instcd") + "▦" // 06 기관코드
  205. + sPid + "▦" // 07 등록번호(원무Key)
  206. + ordindd + "▦" // 08 진료일자(원무Key) - 입원환자일 경우 indd
  207. + cretno + "▦" // 09 생성번호(원무Key)
  208. + model.getValue(sOpcrPath + "/orddeptcd") + "▦" // 10 진료과(원무)
  209. + model.getValue(sOpcrPath + "/orddrid") + "▦" // 11 진료의ID(원무)
  210. + ordtype + "▦" // 12 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  211. + "000" + "▦" // 13 처방상태 : "000"
  212. + "20" + "▦"; // 14 처방종류 : "20" ????
  213. var PrcpData1521 = "" ; // 15 처방코드
  214. // 16 수가코드 MMBTPRCD의 수가 코드 가져올것
  215. // 17 종속처방코드 ("-") => default : "-"
  216. // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0
  217. // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
  218. // 20 처방희망일자 (처방일자 이전으로 발생불가)
  219. // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) 0 => default : 1
  220. var PrcpData2247 = "-" + "▦" // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-") => default : "-"
  221. + "1" + "▦" // 23 처방횟수 (1) (입원일 경우 횟수에 따라 풀림) => default : 1
  222. + "1" + "▦" // 24 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김) => default : 1
  223. + "-" + "▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
  224. + "N" + "▦" // 26 응급처방구분 (Y/N) ==> default : "N"
  225. + "N" + "▦" // 27 선처치처방구분 (Y/N) ==> default : "N" MMBTPRCD
  226. + "N" + "▦" // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : "N"
  227. + "N" + "▦" // 29 포터블처방구분 (Y/N) ==> default : "N"
  228. + "N" + "▦" // 30 정액처방구분 (Y/N) ==> default : "N"
  229. + "N" + "▦" // 31 선택처방구분 (Y/N) -> 만약 "-"일 경우 원무정보 기준으로 처리 ==> default : "N"
  230. + "N" + "▦" // 32 기왕력(증)구분 (Y/N) ==> default : "N"
  231. + "-" + "▦" // 33 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : "-" => default : "-"
  232. + "-" + "▦" // 34 Angio구분 (코드정의서 M0006 참조) : "-" => default : "-"
  233. + "-" + "▦" // 35 수술마취구분 (코드정의서 M0007, M0008 참조) : "-" => default : "-"
  234. + "0000" + "▦" // 36 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격 => default : "0000"
  235. + "N" + "▦" // 37 출장검진구분 (Y/N) => default : "N"
  236. + "00NNN" + "▦" // 38 "00NNN" 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성 => default : "00NNN"
  237. + "-" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
  238. + "00" + "▦" // 40 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 "00") => default : "00"
  239. + deptcd + "▦" // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : "-"
  240. + "2" + "▦" // 42 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  241. + "10" + "▦" // 43 처방입력구분(저장구분정보의 inptflag와 동일하게 처리) 10:Cart처방
  242. + "0" + "▦" // 44 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료) => default : "2"
  243. + model.getValue(sOpcrPath + "/oprsrvno") + "▦" // 45 수술예약번호(0) => default : "-"
  244. + "N" + "▦" // 46 임상연구구분 (Y/N)
  245. + "-" + "▦"; // 47 임상연구코드 ("-") -> 임상연구구분이 "Y"일 경우 임상연구코드를 등록 => default : "-"
  246. var PrcpData4848 = ""; // 48 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-") => default : "-"
  247. var PrcpData4963 = "" + "▦" // 49 처방전달사항
  248. + "-" + "▦" // 50 치식 (병리만 사용, 나머지는 "-") => default : "-"
  249. + "-" + "▦" // 51 재료처방내용 ("-") -> 추후정의
  250. + "N" + "▦" // 52 계산구분 (Y/N)
  251. + "N" + "▦" // 53 예약구분 (Y/N)
  252. + "00000000" + "▦" // 54 예약일자 ("N"일 경우 "00000000")
  253. + "000000" + "▦" // 55 예약시간 ("N"일 경우 "000000")
  254. + "-" + "▦" // 56 예약자ID ("-")
  255. + getCurrentDate() + "▦" // 57 실시일자 ("00000000")
  256. + getCurrentTime() + "▦" // 58 실시시간 ("000000")
  257. + getUserId() + "▦" // 59 실시자ID ("-")
  258. + "00000000" + "▦" // 60 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  259. + "0" + "▦" // 61 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  260. + "0" + "▦" // 62 진료의뢰연계번호 (0)
  261. + "0" + "▩"; // 63 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  262. var PrcpDate = getCurrentDate();; // 처방일자
  263. // var PrcpDate = model.getValue(sOpcrPath + "/opcnfmdd"); // 수술 처방확정일자
  264. var PrcpIdx = 0 ;
  265. var PrcpCls = "";
  266. var PrcpDD = "";
  267. var sPrcpDD = "";
  268. var sPrcpNO = "";
  269. var sPrcphistNo = "";
  270. for (Idx = 0; Idx < 5; Idx++) {
  271. if (Idx != 2) {
  272. wCartPath = gPathNode[8]+"/"+tPathCart[Idx];
  273. sRowCnt = eval("grd_"+tNameCart[Idx]).rows - eval("grd_"+tNameCart[Idx]).fixedrows;
  274. PrcpData = "";
  275. for (var i=1; i<= sRowCnt; i++) {
  276. GoodQty = model.getValue(wCartPath + "[" + (i) +"]/outqty");
  277. GoodQty = (GoodQty == "" ) ? "0" : GoodQty; // 사용수량
  278. UseQty = parseFloat(GoodQty);
  279. ///--------수정되어야할 IF (없어져야됨)
  280. if (UseQty != 0) {
  281. /// -----------------------------
  282. PrcpIdx++;
  283. GoodCd = model.getValue(wCartPath + "[" + (i) +"]/goodcd" );
  284. Allsizespecid = model.getValue(wCartPath + "[" + (i) +"]/allsizespecid" );
  285. GoodQty = model.getValue(wCartPath + "[" + (i) +"]/outqty" );
  286. OproomDeptcd = model.getValue(wCartPath + "[" + (i) +"]/oproomdeptcd" );
  287. sPrcpDD = model.getValue(wCartPath + "[" + (i) +"]/prcpdd" );
  288. sPrcpNO = model.getValue(wCartPath + "[" + (i) +"]/prcpno" );
  289. sPrcphistNo = model.getValue(wCartPath + "[" + (i) +"]/prcphistno" );
  290. // |-----------------------------------------
  291. // | 구분 | I(입력) | U(수정) | D(삭제) |
  292. // |----------------------------------------
  293. // | I (신규) | O(1) | O(1) | X(0) |
  294. // |-----------------------------------------
  295. // | C (DC) | X(0) | O(2) | O(2) |
  296. // |-----------------------------------------
  297. PrcpFlag = "1";
  298. switch(PrcpFlag) {
  299. case "II": PrcpCls = 1;
  300. case "UI": PrcpCls = 2;
  301. case "DI": PrcpCls = 0;
  302. case "IC": PrcpCls = 0;
  303. case "UC": PrcpCls = 2;
  304. case "DC": PrcpCls = 3;
  305. default : PrcpCls = 0;
  306. }
  307. model.setValue(wCartPath + "[" + (i) +"]/pid" , sPid );
  308. model.setValue(wCartPath + "[" + (i) +"]/prcpdd" , PrcpDate );
  309. model.setValue(wCartPath + "[" + (i) +"]/prcpno" , "0" );
  310. model.setValue(wCartPath + "[" + (i) +"]/prcphistno" , "0" );
  311. if (Allsizespecid == "") {
  312. Allsizespecid = "-";
  313. }
  314. PrcpData4848 = Allsizespecid + "▦" ; // 48 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-") => default : "-"
  315. if (PrcpFlag == "1" || PrcpFlag == "2" ) {
  316. PrcpData0105 = "I" + "▦" // 01 신규(I), DC(C)
  317. + PrcpIdx + "▦" // 02 줄번호 (병리 요구)
  318. + PrcpDate + "▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  319. + "0" + "▦" // 04 처방번호 (status가 "I"일 경우 0)
  320. + "0" + "▦"; // 05 처방이력번호 (status가 "I"일 경우 0)
  321. PrcpData1521 = GoodCd + "▦" // 15 처방코드
  322. + GoodCd + "▦" // 16 수가코드 MMBTPRCD의 수가 코드 가져올것
  323. + "-" + "▦" // 17 종속처방코드 ("-") => default : "-"
  324. + 0 + "▦" // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0
  325. + OproomDeptcd+ "▦" // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
  326. + PrcpDate + "▦" // 20 처방희망일자 (처방일자 이전으로 발생불가)
  327. + GoodQty + "▦"; // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
  328. PrcpData += PrcpData0105
  329. + PrcpData0614
  330. + PrcpData1521
  331. + PrcpData2247
  332. + PrcpData4848
  333. + PrcpData4963 ;
  334. }
  335. //----
  336. if (PrcpFlag == "2" || PrcpFlag == "3" ) {
  337. PrcpNo = "2";
  338. Prcphistno = "2";
  339. PrcpData0105 = "C" + "▦" // 01 신규(I), DC(C)
  340. + PrcpIdx + "▦" // 02 줄번호 (병리 요구)
  341. + PrcpDate + "▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  342. + prcpno + "▦" // 04 처방번호 (status가 "I"일 경우 0)
  343. + prcphistno + "▦"; // 05 처방이력번호 (status가 "I"일 경우 0)
  344. PrcpData1521 = GoodCd + "▦" // 15 처방코드
  345. + GoodCd + "▦" // 16 수가코드 MMBTPRCD의 수가 코드 가져올것
  346. + "-" + "▦" // 17 종속처방코드 ("-") => default : "-"
  347. + 0 + "▦" // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0
  348. + OproomDeptcd+ "▦" // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
  349. + PrcpDate + "▦" // 20 처방희망일자 (처방일자 이전으로 발생불가)
  350. + GoodQty + "▦"; // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
  351. PrcpData += PrcpData0105
  352. + PrcpData0614
  353. + PrcpData1521
  354. + PrcpData2247
  355. + PrcpData4848
  356. + PrcpData4963 ;
  357. }
  358. ///--------수정되어야할 IF (없어져야됨)
  359. } // End Of if (UseQty != 0) {
  360. } // End Of for (var i=1; i<= sRowCnt; i++)
  361. PrcpInfoData += PrcpData;
  362. }
  363. }
  364. // 그리드에 자료가 없는데 저장 버튼를 누른 경우를 Check
  365. if (PrcpIdx < 1) {
  366. messageBox("저장할 처방내역이", "I004");
  367. return;
  368. }
  369. //
  370. model.setValue(sSendPath + "/saveflaginfo", FlagInfoHeader+FlagInfoData);
  371. model.setValue(sSendPath + "/savergstinfo", RgstInfoHeader+RgstInfoData);
  372. model.setValue(sSendPath + "/saveprcpinfo", PrcpInfoHeader+PrcpInfoData);
  373. // model.setValue(sSendPath + "/savesigninfo", SignInfoHeader+SignInfoData);
  374. // 저장 후 조회조건
  375. model.copyNode(sSendPath + "/refcond", sPrcpDataPat);
  376. //
  377. if (submit("TXMNP01802", false)) {
  378. //오류팝업
  379. var prcpErrList = model.instances(0).selectNodes( "/root/temp/result/prcperrlist" );
  380. if (prcpErrList.length > 0 ) {
  381. if (!isNull(model.getValue ( "/root/temp/result/prcperrlist/prcpcd"))){
  382. var xpt = window.screenleft + 100;
  383. var ypt = window.screenTop + 50;
  384. var coord = getRelativeCoordinate ( xpt, ypt );
  385. var mon = coord[0];
  386. xpt = coord[1];
  387. ypt = coord[2];
  388. open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/temp/result", "/root/result", "", false );
  389. model.removeNodeset("/root/temp/result/prcperrlist");
  390. }
  391. }
  392. else {
  393. model.setValue("/root/init/WorkData/cond/cartstat", "9");
  394. fSave(); // Cart 물품 저장 (TXMNP01800) 10/12 추가
  395. fQueryData(); // 조회
  396. }
  397. // model.refresh();
  398. }
  399. } // 처방저장 fPrcpDataSave()
  400. // --------------------------------------------------
  401. // End Of List 처방저장
  402. // --------------------------------------------------