SMADB01000.js 65 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091
  1. /* 1. CP (SMMMP00800_CPGMAIN), 2. 항암프로토콜()
  2. <function list>
  3. fBatSaveAntiMeticPrtlPrcp : 항암프로토콜의 발행 가능한 처방들에 대해서 일괄저장(및 인증저장)을 한다
  4. fPrcpDCSave_CP : 항암, CP 미래처방 일괄저장 (MMPHPTCP)
  5. <호출하는 function list>
  6. addPrcp
  7. fPrcpSave
  8. addPrcpSetValue
  9. */
  10. /* 글로벌 변수 (호출하는 js에서 변수의 출처를 알 수 있도록, "변수명_SMMMO00110"으로 사용)*/
  11. var questionYN_SMMMO00110 = "N"; //실처방 저장 이후, 프로토콜 저장 로직을 수행할 때, "저장하시겠습니까?"라는 메세지가 2번 나오기 때문에, 실처방 저장 완료 후 questionYN의 값을 Y로 설정, 프로토콜 저장때 질문 여부 결정
  12. var endSavePrcpYN_SMMMO00110 = "N"; //저장 모듈이 성공하지 못하고, 처방저장오류로 인해 return 된 상태
  13. var prtlFlag_SMMMO00110 = ""; //프로토콜 구분(01:CP, 02:CPG, 10:항암프로토콜,20:임상시험프로토콜)
  14. var appNo_SMMMO00110 = ""; //프로토콜번호(CPG 적용번호)
  15. var etclnkspecValue_SMMMO00110 = ""; //항암프로토콜번호 | CP번호
  16. var prtlprcpstatus_SMMMO00110 = ""; //프로토콜저장상태(보통은 I, 프로토콜처방테이블에 등록된 데이터를 수정, 삭제할 때는 U/D)
  17. var isstimes_SMMMO00110 = ""; //발행시작회차 | 발행종료회차
  18. var isssteps_SMMMO00110 = ""; //cp일때 사용하는 발행시작스텝 | 발행종료스텝
  19. var stepArray_SMMMO00110 = ""; //cp일때 사용하는 스텝 array
  20. var diagnmCol = 4;
  21. function fPatDiagSrchAnti(prcpflag) {
  22. var orddd = "";
  23. var orddrid = "";
  24. var pseuacptflag = model.getValue ( "/root/formerkey/pseuacptflag" ); //시행부서처방가접수
  25. var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  26. var cretno = "";
  27. if ( isNull(prcpflag)){
  28. prcpflag = "prcp"
  29. }
  30. if ( prcpgenrflag == "O" || prcpgenrflag == "S" ) {
  31. orddd = model.getValue ( "/root/paminfo/list/orddd" );
  32. orddrid = model.getValue ( "/root/paminfo/list/orddrid" );
  33. cretno = model.getValue ( "/root/paminfo/list/cretno" );
  34. } else {
  35. orddd = model.getValue ( "/root/paminfo/list/indd" );
  36. orddrid = model.getValue ( "/root/paminfo/list/medispclid" );
  37. cretno = model.getValue ( "/root/paminfo/list/cretno" );
  38. }
  39. if ( pseuacptflag == "Y" ) {
  40. orddd = model.getValue ( "/root/formerkey/orddd_old" );
  41. cretno = model.getValue ( "/root/formerkey/cretno_old" );
  42. }
  43. model.setValue ( "/root/send/cond1", model.getValue ( "/root/paminfo/list/pid" ));
  44. model.setValue ( "/root/send/cond2", orddd);
  45. model.setValue ( "/root/send/cond3", cretno);
  46. model.setValue ( "/root/send/cond4", model.getValue ( "/root/paminfo/list/orddeptcd" ));
  47. model.setValue ( "/root/send/cond5", prcpgenrflag);
  48. model.setValue ( "/root/send/cond6", orddrid );
  49. model.setValue ( "/root/send/cond7", prcpflag ); //처방구분
  50. if (submit( "TRMMO00105", false )) { //if (submit( "TRADB01017", false )) {
  51. var srcNodeListLen = model.instances(0).selectNodes ( diagNode ).length;
  52. /********** 외래일 경우 원내처방 사유가 있는 진단인지 체크한다. **********/
  53. for ( var i=1; i <= srcNodeListLen; i++ ) {
  54. var icd10cd = model.getValue ( diagNode + "[" + i + "]/icd10cd" );
  55. var diagkindcdflag = model.getValue ( diagNode + "[" + i + "]/diagkindcdflag" );
  56. fCheckDiagHosinpPcp( icd10cd, prcpgenrflag, diagkindcdflag );
  57. }
  58. if ( prcpflag == "prcp") {
  59. appendChildPrcp ( "/root/reset/diagcdlist", "/root/main/diaginfo", "main" );
  60. model.refresh();
  61. if ( grd_diaglist.rows > 1) {
  62. model.copyNode ( "/root/diagorg", "/root/main/diaginfo");
  63. }
  64. }
  65. }
  66. fDispPatMainDiag();
  67. model.recalculate();
  68. //진단화면 초기화
  69. grd_diaglist.col = diagnmCol;
  70. grd_diaglist.row = grd_diaglist.rows - 1;
  71. }
  72. /**
  73. * @group :
  74. * @ver : 2007.09
  75. * @by : 이훈재
  76. * @---------------------------------------------------
  77. * @type : function
  78. * @access : public
  79. * @desc : 항암프로토콜, 발행 가능한 처방들에 대해서 일괄저장(및 인증저장)을 한다
  80. * @param :
  81. * @return :
  82. * @---------------------------------------------------
  83. */
  84. function fBatSaveAntiMeticPrtlPrcp( flag ){
  85. prtlprcpstatus_SMMMO00110="I"; //save flag(I:insert)
  86. prtlFlag_SMMMO00110 = "10"; //프로토콜구분(10:항암프로토콜)
  87. appNo_SMMMO00110 = model.getValue("/root/temp/temp/ret/cpgappno"); //항암프로토콜 적용번호
  88. etclnkspecValue_SMMMO00110 = model.getValue("/root/temp/temp/ret/cpgappno") + "|" + "0"; //root/temp/getdata/cpgappno 노드 안에 프로토콜번호가 있어야 함!
  89. //미래처방
  90. copyNodesetType("/root/main/prcp", "/root/main/prtlprcpprelist", "replace", model, model);
  91. var nodelist = instance1.selectNodes("/root/main/prcp/prcplist");
  92. for(var i=0; i<nodelist.length; i++){
  93. var node = nodelist.item(i);
  94. var statusNode = node.selectSingleNode("status");
  95. var etclnkspecNode = node.selectSingleNode("etclnkspec");
  96. model.setValue(etclnkspecNode, etclnkspecValue_SMMMO00110);
  97. addPrcpSetValue_CP( "import", "/root/main/prcp/prcplist" , (i+1), "06", "N", "" );
  98. }
  99. //2. 프로토콜처방 저장 (오늘 날짜 처방을 제외한 미래 처장...)
  100. if( fPrcpDCSave_CP("7") != false ){
  101. //submit("TXADB01003", false); //TXADB01005 로 합침
  102. return true;
  103. } else {
  104. return false;
  105. } //프로토콜처방 저장 end
  106. }
  107. /********************************* 처방과 저장 functon 합치기 전 *********************************/
  108. function addPrcpSetValue_CP ( objFlag, strSrc , sendRow, prcpInptFlag, hsctflag, inclprcpno ) {
  109. // OrgPrcpQty // 실제 처방수량
  110. var prcpdd = ""; //처방일
  111. var prcpkindcd = ""; //처방종류변수
  112. var pamInfoNode = "/root/paminfo/list";
  113. var pid = ""; //환자번호
  114. var indd = ""; //진료일자
  115. var cretno = ""; //생성번호
  116. var orddeptcd = ""; //담당부서
  117. var orddrid = ""; //담당교수
  118. var prcpgenrflag = ""; //외래입원구분
  119. var prcpclscd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" );
  120. var choiordflag = "";
  121. var org_prcpInptFlag = prcpInptFlag;
  122. if ( isNull(prcpInptFlag)){
  123. prcpInptFlag = model.getValue ( strSrc + "[" + sendRow + "]/prcpinptflag" );
  124. }
  125. if( org_prcpInptFlag != "05" || (org_prcpInptFlag == "05" && model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "00") ){
  126. model.setValue ( strSrc + "[" + sendRow + "]/prcpinptflag", prcpInptFlag ); //처방입력구분 //err
  127. prcpInptFlag = org_prcpInptFlag;
  128. }
  129. model.setValue ( strSrc + "[" + sendRow + "]/prcphistcd", "O" ); //처방이력코드:O
  130. model.setValue ( strSrc + "[" + sendRow + "]/prcpsignflag", "2" ); //처방이력구분:2
  131. model.setValue ( strSrc + "[" + sendRow + "]/prcprefseq", "0" ); //처방순서(전처방에 넘어올때도 있기때문에 0으로 클리어)
  132. //// 항암프로토콜일 경우 추가되는 saveflaginfo 값 셋팅
  133. model.makeValue ( "/root/save/saveflaginfo/cpgappno", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
  134. model.makeValue ( "/root/save/saveflaginfo/prtlprcpstatus", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
  135. model.makeValue ( "/root/save/saveflaginfo/isstimes", isstimes_SMMMO00110 ); //발행시작회차, 종료회차
  136. // 처방명의 구분이 2개가 중복되어 저장되는 문제 -> 원처방명을 저장한다. => 일단 처방코드로 하드코딩 -> 방안을 강구해야 함
  137. //if( model.getValue(strSrc + "[" + sendRow + "]/prcpcd") != "000000000033" ){
  138. // model.setValue ( strSrc + "[" + sendRow + "]/prcpnm", model.getValue(strSrc + "[" + sendRow + "]/orgprcpnm") ); //makePrcpNm() 때문에 prcpnm->orgprcpnm
  139. //}
  140. model.makeValue ( "/root/save/saveflaginfo/prtlflag", "10" ); //프로토콜구분
  141. //// 셋팅 끝
  142. var issdept = model.getValue ("/root/issdept");
  143. if ( isNull(issdept)) {
  144. issdept = getUserInfo( "posdeptcd" );
  145. }
  146. model.setValue ( strSrc + "[" + sendRow + "]/issdeptcd", issdept );
  147. var drugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec") + "^";
  148. var usge = "";
  149. if ( objFlag == "child" ){
  150. //가정간호일때 시작일,종료일 바꿔준다.
  151. usge = opener.model.getValue ( "/root/usge" );
  152. if (usge == "home") {
  153. model.setValue ( strSrc + "[" + sendRow + "]/tempcol6",opener.model.getValue ( "/root/init/prcpfromdd" )); //시작일자
  154. model.setValue ( strSrc + "[" + sendRow + "]/tempcol7",opener.model.getValue ( "/root/init/prcptodd" )); //종료일자
  155. }
  156. model.setValue ( strSrc + "[" + sendRow + "]/prcpauthflag", opener.model.getValue ( "/root/init/prcpauthflag" )); //처방권한구분
  157. //수술예약번호 setting
  158. if( !isNull (opener.model.getValue ( "/root/operation/list/oprsrvno"))){
  159. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", opener.model.getValue ( "/root/operation/list/oprsrvno"));
  160. } else {
  161. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", "0" );
  162. }
  163. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  164. //품절약 체크
  165. if ( getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) {
  166. opener.javascript.fAltDrug ( sendRow, "1", strSrc );
  167. return false;
  168. }
  169. }
  170. var srcNodeList = opener.model.instances(0).selectNodes( "/root/paminfo" );
  171. if ( srcNodeList.length == 0 ){
  172. messageBox ( "환자정보가", "E014" );
  173. return false;
  174. }
  175. prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
  176. pid = opener.model.getValue ( pamInfoNode + "/pid" );
  177. indd = opener.model.getValue ( pamInfoNode + "/indd" );
  178. orddrid = opener.model.getValue ( pamInfoNode + "/medispclid" );
  179. cretno = opener.model.getValue ( pamInfoNode + "/cretno" );
  180. orddeptcd = opener.model.getValue ( pamInfoNode + "/orddeptcd" );
  181. //추가//
  182. if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
  183. prcpdd = opener.model.getValue ( "/root/init/prcpdd" ); //처방일
  184. prcpkindcd = opener.model.getValue ("/root/init/prcpkindcd"); //처방종류(정규,추가...) /root/init/prcpkindcd 는 약속
  185. }else{
  186. prcpdd = model.getValue ( strSrc + "[" + sendRow + "]/prcpdd" );
  187. prcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
  188. }
  189. choiordflag = opener.model.getValue ( pamInfoNode + "/specordyn" ); //선택진료여부
  190. if ( choiordflag == "Y" || choiordflag == "S" ) {
  191. choiordflag = "Y";
  192. } else {
  193. choiordflag = "N";
  194. }
  195. //마취기록화면에서 처방화면을 띄우면
  196. //마취처방일 경우 필수입력구분이 1이면 수술시간과, 수술구분을 넣어준다. 넣어지는 기준은 마취처방상세팝업과 동일하다.
  197. if ( opener.model.getValue ( "/root/anst/paramyn") == "Y" ) {
  198. if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
  199. if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpessninptflag" ) == "1" ) { // 필수입력구분이 1
  200. var earncls = model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" );
  201. if ( earncls != "04|01|00" && earncls != "05|01|00" ) { //마취구분
  202. model.setValue ( strSrc + "[" + sendRow + "]/opansflagcd", opener.model.getValue ( "/root/anst/opansflagcd" ));
  203. }
  204. model.setValue ( strSrc + "[" + sendRow + "]/ansttm", opener.model.getValue ( "/root/anst/ansttm" ));//마취시간
  205. model.setValue ( strSrc + "[" + sendRow + "]/clinccmtcnts", opener.model.getValue ( "/root/anst/anstfromdt" ) + "|" + opener.model.getValue ( "/root/anst/ansttodt" ));
  206. }
  207. }
  208. }
  209. } else {
  210. //가정간호일때 시작일,종료일 바꿔준다.
  211. usge = model.getValue ( "/root/usge" );
  212. if (usge == "home") {
  213. model.setValue ( strSrc + "[" + sendRow + "]/tempcol6",model.getValue ( "/root/init/prcpfromdd" )); //시작일자
  214. model.setValue ( strSrc + "[" + sendRow + "]/tempcol7",model.getValue ( "/root/init/prcptodd" )); //종료일자
  215. }
  216. model.setValue ( strSrc + "[" + sendRow + "]/prcpauthflag", model.getValue ( "/root/init/prcpauthflag" )); //처방권한구분
  217. //수술예약번호 setting
  218. if( !isNull (model.getValue ( "/root/operation/list/oprsrvno"))){
  219. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", model.getValue ( "/root/operation/list/oprsrvno"));
  220. } else {
  221. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", "0" );
  222. }
  223. //// CP, 항암프로토콜일 경우는 클라이언트에서 품절약체크를 하지 않는다
  224. if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
  225. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  226. //품절약 체크
  227. if ( getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) {
  228. fAltDrug ( sendRow, "1", strSrc );
  229. return false;
  230. }
  231. //원무의 원내사유 체크
  232. }
  233. }
  234. ////분기조건 추가 끝
  235. var srcNodeList = model.instances(0).selectNodes( "/root/paminfo" );
  236. if ( srcNodeList.length == 0 ){
  237. messageBox ( "환자정보가", "E014" );
  238. return false;
  239. }
  240. prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  241. pid = model.getValue ( pamInfoNode + "/pid" );
  242. if ( prcpgenrflag == "O" ) {
  243. indd = model.getValue ( pamInfoNode + "/orddd" );
  244. orddrid = model.getValue ( pamInfoNode + "/orddrid" );
  245. } else {
  246. indd = model.getValue ( pamInfoNode + "/indd" );
  247. orddrid = model.getValue ( pamInfoNode + "/medispclid" );
  248. }
  249. cretno = model.getValue ( pamInfoNode + "/cretno" );
  250. orddeptcd = model.getValue ( pamInfoNode + "/orddeptcd" );
  251. //추가//
  252. if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
  253. prcpdd = model.getValue ( "/root/init/prcpdd" ); //처방일
  254. prcpkindcd = model.getValue ("/root/init/prcpkindcd"); //처방종류(정규,추가...)
  255. }else{
  256. prcpdd = model.getValue ( strSrc + "[" + sendRow + "]/prcpdd" );
  257. prcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
  258. }
  259. choiordflag = model.getValue ( pamInfoNode + "/specordyn" ); //선택진료여부
  260. if ( choiordflag != "Y" ) {
  261. choiordflag = "N";
  262. }
  263. //마취기록화면에서 처방화면을 띄우면
  264. //마취처방일 경우 필수입력구분이 1이면 수술시간과, 수술구분을 넣어준다. 넣어지는 기준은 마취처방상세팝업과 동일하다.
  265. if ( model.getValue ( "/root/anst/paramyn" ) == "Y" ) {
  266. if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
  267. if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpessninptflag" ) == "1" ) { // 필수입력구분이 1
  268. var earncls = model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" );
  269. if ( earncls != "04|01|00" && earncls != "05|01|00" ) { //마취구분
  270. model.setValue ( strSrc + "[" + sendRow + "]/opansflagcd", model.getValue ( "/root/anst/opansflagcd" ));
  271. }
  272. model.setValue ( strSrc + "[" + sendRow + "]/ansttm", model.getValue ( "/root/anst/ansttm" ));//마취시간
  273. model.setValue ( strSrc + "[" + sendRow + "]/clinccmtcnts", model.getValue ( "/root/anst/anstfromdt" ) + "|" + model.getValue ( "/root/anst/ansttodt" ));
  274. }
  275. }
  276. }
  277. }
  278. model.setValue ( strSrc + "[" + sendRow + "]/prcphopedd",prcpdd); //처방희망일자
  279. //전처방 clear
  280. if ( prcpInptFlag == "01" ) {
  281. // 전처방 복사시 초기화해야 할 것 ( PAMPKSpec, PrcpKindCd 등은 처방 복사시 다시 setting 해줌 )
  282. model.setValue ( strSrc + "[" + sendRow + "]/rgstdt", "" ); //rgstdt: 등록일시
  283. model.setValue ( strSrc + "[" + sendRow + "]/rgstridnm", "" ); //rgstridnm: 등록자명
  284. model.setValue ( strSrc + "[" + sendRow + "]/tempprcpflag", "N" ); //tempprcpflag: 임시처방구분
  285. model.setValue ( strSrc + "[" + sendRow + "]/etcprcpresncd", "-" ); //etcprcpresncd: 응급의학관리료 사유 (코드정의서 M0012 참조), 수혈반납 및 폐기사유코드 (코드정의서 M0037, M0038 참조), 재활처방 마감일자
  286. model.setValue ( strSrc + "[" + sendRow + "]/ordreqlnkno", "0" ); //ordreqlnkno: 진료의뢰연결번호
  287. model.setValue ( strSrc + "[" + sendRow + "]/testreqlnkno", "0" ); //testreqlnkno: 검사의뢰연결번호
  288. model.setValue ( strSrc + "[" + sendRow + "]/prcplnkdd", "00000000" ); //prcplnkdd: 임시처방에 대한 연계 일자
  289. model.setValue ( strSrc + "[" + sendRow + "]/prcplnkno", "0" ); //prcplnkno: 임시처방에 대한 연계 번호
  290. model.setValue ( strSrc + "[" + sendRow + "]/prtlno", "0" ); //prtlno: 프로토콜SET에 대한 코드로 일련번호 형태로 관리
  291. // model.setValue ( strSrc + "[" + sendRow + "]/clincstdycd", "-" ); //clincstdycd: 처방에 적용된 임상과제 코드
  292. model.setValue ( strSrc + "[" + sendRow + "]/contprcpspec", "-" ); //contprcpspec: 연속처방내역
  293. model.setValue ( strSrc + "[" + sendRow + "]/etclnkspec", "-" ); //etclnkspec: 항암프로토콜번호|CP번호
  294. model.setValue ( strSrc + "[" + sendRow + "]/tempcol6", "" ); //전처방 화면 display clear
  295. model.setValue ( strSrc + "[" + sendRow + "]/tempcol7", "" ); //전처방 화면 display clear
  296. model.setValue ( strSrc + "[" + sendRow + "]/tempcol8", "" ); //전처방 화면 display clear
  297. model.setValue ( strSrc + "[" + sendRow + "]/tempcol9", "" ); //전처방 화면 display clear
  298. }
  299. //// CP,항암프로토콜일 경우 값 셋팅
  300. else if( prcpInptFlag == "05" ){
  301. //cp는 이미 인스턴스에 값이 들어있음
  302. if( model.getValue(strSrc + "[" + sendRow + "]/etclnkspec") == "I" )
  303. model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", etclnkspecValue_SMMMO00110 ); //CP처방 or 프로토콜처방 no
  304. }
  305. else if( prcpInptFlag == "06" ){
  306. //항암은 이미 인스턴스에 값이 들어있음
  307. model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", etclnkspecValue_SMMMO00110 ); //CP처방 or 프로토콜처방 no
  308. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", "-" ); //종속처방
  309. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", "0" );//종속처방번호
  310. //model.makeValue ( strSrc + "[" + sendRow + "]/cpno", model.getValue ( strSrc + "[" + sendRow + "]/prtldg") ); //CpNo 에 프로토콜 차수 저장
  311. }
  312. //// 값 셋팅 분기 끝
  313. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", "-" ); //종속처방
  314. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", "0" );//종속처방번호
  315. if ( prcpclscd == "F2" && prcpgenrflag == "O") {
  316. model.setValue ( strSrc + "[" + sendRow + "]/etcprcpresncd", prcpdd ); //재활마감일
  317. } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) { //약처방
  318. /****************************** 원내처방사유 SETTING ********************************/
  319. fHosinPrcpResncdSed ( objFlag, strSrc, sendRow );
  320. //AST 검사 체크
  321. var astyn = getArrayData ( drugmastspec, 0, 22, "^", "|" );
  322. if ( astyn == "Y" ) {
  323. model.setValue ( strSrc + "[" + sendRow + "]/asttestflag", "Y" );
  324. }
  325. }
  326. /********************** hsct 체크 -항암은 처리안함******************/
  327. //if ( hsctflag == "Y" ) {
  328. // model.setValue ( strSrc + "[" + sendRow + "]/hsctlnkno", model.getValue ( "/root/init/hsctlnkno" )); //HSCT
  329. // model.setValue ( strSrc + "[" + sendRow + "]/hscttempprcpflag", "Y" ); //HSCT
  330. //}
  331. if ( !isNull(inclprcpno) && inclprcpno != "0" ) { //종속처방 처리
  332. var prcpcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
  333. //initsrch에서 가져온 종속처방 instance에 값이 있으면 종속처방 코드와 번호를 박아준다.
  334. var prcpsetcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpsetcd" );
  335. var inclprcpcd = model.getValue ( "/root/initsrch/inclprcpcnts[snglcd='" + prcpcd + "' and calcscorcdgrup='" + prcpsetcd + "']/inclprcpcd" );
  336. // var inclprcpcd = model.getValue ( "/root/initsrch/inclprcpcnts[snglcd='" + prcpcd + "']/inclprcpcd" );
  337. var calcscorcdgrup = "";
  338. if ( isNull(inclprcpcd)) {
  339. //본체에도 코드를 박아준다.
  340. calcscorcdgrup = model.getValue ( "/root/initsrch/inclprcpcnts[calcscorcdgrup='" + prcpcd + "']/inclprcpcd" ); // GROUP 처방
  341. } else {
  342. if ( prcpgenrflag == "O" ) {
  343. //외래일경우 약, 주사 에 원내처방사유 검사 수술처리에 사용
  344. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
  345. model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );//원내
  346. model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "55" );//원내처방사유(원내처방사유 검사 수술처리에 사용)
  347. }
  348. // model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );//선처치여부
  349. }
  350. }
  351. if ( !isNull(inclprcpcd) || !isNull(calcscorcdgrup)) {
  352. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", inclprcpno ); //종속처방번호
  353. if ( isNull(inclprcpcd)){
  354. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", calcscorcdgrup ); //종속처방
  355. } else {
  356. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", inclprcpcd ); //종속처방
  357. }
  358. model.setValue ( "/root/init/inclprcpno", inclprcpno );
  359. var remainder = inclprcpno%2;
  360. if ( objFlag == "child" ){
  361. if ( remainder == 1 ) {
  362. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#eaeaea" );
  363. } else {
  364. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#ffffcc" );
  365. }
  366. } else {
  367. if ( remainder == 1 ) {
  368. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#eaeaea" );
  369. } else {
  370. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#ffffcc" );
  371. }
  372. }
  373. }
  374. }
  375. model.setValue ( strSrc + "[" + sendRow + "]/prcpgenrflag", prcpgenrflag ); //처방발생구분
  376. model.setValue ( strSrc + "[" + sendRow + "]/prcpkindcd", prcpkindcd ); //처방종류
  377. model.setValue ( strSrc + "[" + sendRow + "]/pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid ); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
  378. model.setValue ( strSrc + "[" + sendRow + "]/prcppkspec", prcpdd + "|0|0|" + getUserInfo("dutplceinstcd")); //처방키: 처방일자|처방번호|처방이력번호|기관코드
  379. model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", choiordflag );
  380. if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd").substr (0,1) == "X" ) {
  381. model.setValue ( strSrc + "[" + sendRow + "]/clincstdyflag", "Y" ); //
  382. }
  383. //서버에서 처리
  384. //if ( !isNull(model.getValue ( strSrc + "[" + sendRow + "]/clincstdycd")) && model.getValue ( strSrc + "[" + sendRow + "]/clincstdycd") != "-") {
  385. // model.setValue ( strSrc + "[" + sendRow + "]/clincstdyflag", "Y" );
  386. //}
  387. /******************** 선처치 처리 **********************/
  388. var iFind = -1;
  389. iFind = model.getValue ( "/root/initsrch/prcpetccnts/precureprcpcd" ).search( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd"));
  390. if ( iFind >= 0) {
  391. model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );
  392. }
  393. //if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpflag") != "2" ) { //지시처방이 아니면 이름을 다시 만들어 준다.
  394. // makePrcpNm( "/root/main/prcp/prcplist", sendRow );
  395. //}
  396. return true;
  397. }
  398. /**
  399. * @group :
  400. * @ver : 2007.09
  401. * @by :
  402. * @---------------------------------------------------
  403. * @type : function
  404. * @access : public
  405. * @desc : 미수행처방/DC처방 저장 및 CP/항암프로토콜처방 저장
  406. * @param : prcpflag: 처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  407. * @return : true, false
  408. * @---------------------------------------------------
  409. */
  410. function fPrcpDCSave_CP(prcpflag) {
  411. // 인스턴스 중복 이름 제거(중요!-이훈재; 인스턴스 이름이 같은게 있어서 제거 안하면 밀려서 저장됨)
  412. model.removeNodeset ( "/root/send/data/orderprcpdata" );
  413. ////var prcpflag = "0";
  414. //// CP, 항암프로토콜에서 호출하지 않은 경우는 DC/미수행처방에서 호출한 경우
  415. if(prcpflag != "6" && prcpflag != "7") {
  416. model.removeNodeset ( "/root/dcprcp/prcplist" );
  417. prcpflag = "0"; //DC일 경우, 의사처방
  418. }
  419. ////값셋팅 끝
  420. var savekindflag = "0";
  421. ////var saveNode = "/root/dcprcp/prcplist";
  422. ////saveNode 셋팅 분기
  423. if( prcpflag == "0" ){
  424. var saveNode = "/root/dcprcp/prcplist";
  425. }else{
  426. var saveNode = "/root/main/prcp/prcplist";
  427. }
  428. ////saveNode 셋팅 끝
  429. var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  430. ////저장데이터 조회 분기
  431. if( prcpflag == "0" ){
  432. var srchLength = model.instances(0).selectNodes( "/root/prcpsrch/prcplist" ).length;
  433. var cnt = 0;
  434. for ( var i=1; i <= srchLength; i++ ) {
  435. if ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/status" ) == "C" ) {
  436. cnt++;
  437. appendChildPrcp ( "/root/prcpsrch/prcplist[" + i + "]", "/root/dcprcp", "main" );
  438. }
  439. }
  440. if ( cnt == 0 ) {
  441. messageBox ( "반환할 처방이", "I004" );
  442. return;
  443. }
  444. }
  445. //저장구분정보(saveFlagInfo)
  446. model.setValue ( "/root/save/saveflaginfo/savedataflag", 0 ); //저장자료구분 0:진단 및 처방, 1:진단, 2:처방, 4:임시저장
  447. model.setValue ( "/root/save/saveflaginfo/saveflag" , prcpgenrflag ); //저장구분 O:외래, I:입원, E:응급, S:건진
  448. model.setValue ( "/root/save/saveflaginfo/prcpflag" , "0" ); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  449. model.setValue ( "/root/save/saveflaginfo/inptflag" , "0" ); //입력구분 0:의사, 1:간호사(간호에서 사용), 3:지원부서
  450. model.setValue ( "/root/save/saveflaginfo/deptcd" , getUserInfo("dutplcecd")); //부서코드
  451. model.setValue ( "/root/save/saveflaginfo/deptnm" , getUserInfo("dutplcenm")); //부서명
  452. model.setValue ( "/root/save/saveflaginfo/userid" , getUserInfo("userid")); //사용자ID
  453. model.setValue ( "/root/save/saveflaginfo/usernm" , getUserInfo("usernm")); //사용자명
  454. model.setValue ( "/root/save/saveflaginfo/signyn" , signyn );
  455. if( prcpflag == "0" ){
  456. model.setValue ( "/root/save/saveflaginfo/prcpdd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row + " ]/prcpdd" ));
  457. }else{
  458. model.setValue ( "/root/save/saveflaginfo/prcpdd", getCurrentDate() );
  459. }
  460. var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/save/saveflaginfo" );
  461. model.setValue ( "/root/send/cond1", getNodeListCSV(saveFlagInfoNodeList));
  462. //저장등록정보(saveRgstInfo)
  463. var saveRgstInfo = model.instances(0).selectNodes( "/root/paminfo/list" );
  464. model.setValue ( "/root/send/cond2", getNodeListCSV(saveRgstInfo));
  465. //저장처방정보(savePrcpInfo)
  466. var savePrcpInfo = model.instances(0).selectNodes( saveNode );
  467. var savePrcpInfoCVS = getNodeListCSV(savePrcpInfo);
  468. // 노드셋 구성 변경 (2008.02.10)
  469. model.setValue ( "/root/send/cond3", savePrcpInfoCVS);
  470. //model.copyNode ( "/root/send/cond3", "/root/main/prcp" );
  471. //fAppendSaveNode( "/root/send/cond3", "/root/prcper/prcplist" );
  472. //fAppendSaveNode( "/root/send/cond3", "/root/prcpdc/prcplist" );
  473. /*
  474. if ( prcpchkflag == "drugdc" ) { //약/주사 D/C 요청 중에 반납요청된 것은 D/C 처리한다.( 저장로직에서 사용 )
  475. model.setValue ( "/root/send/cond14", getNodeListCSV (model.instances(0).selectNodes( "/root/prcpdc/prcplist" )));
  476. }
  477. */
  478. //setValue 후에 prcpdc 에 옮겨 놓은 prcplist를 클리어 한다.
  479. model.removeNodeset ( "/root/prcpdc/prcplist" );
  480. //저장진단정보(saveDiagInfo)
  481. var saveDiagInfo = model.instances(0).selectNodes( "/root/main/diaginfo/diagcdlist" );
  482. model.setValue ( "/root/send/cond4", getNodeListCSV(saveDiagInfo));
  483. ////저장데이터 조회 분기
  484. if( prcpflag == "0" ){
  485. if ( !submit ( "TRMMO00104", false )){
  486. model.resetInstanceNode ( "/root/send" );
  487. model.refresh();
  488. return false;
  489. }
  490. }else{
  491. if ( !submit ( "TRADB01011", false )){ //TRMMP00806
  492. model.refresh();
  493. return false;
  494. }
  495. //실패시, 인스턴스 값을 확인하기 위해서 값을 copy
  496. model.makeNode("/root/result_copy");
  497. copyNodesetType("/root/result_copy", "/root/result", "replace", model, model);
  498. if(prcpflag == "6") {
  499. if( instance1.selectSingleNode("/root/result/savedrprcplist[status='U' or status='D']") ){
  500. var DetlNodeList = instance1.selectNodes("/root/result/savedrprcplist[status='U' or status='D']");
  501. for(var i=0; i<DetlNodeList.length; i++){
  502. var node = DetlNodeList.item(i);
  503. var prcpnoNode = node.selectSingleNode("prcpno");
  504. var etcLnkSpecNode = node.selectSingleNode("etclnkspec");
  505. var tmpstatNode = node.selectSingleNode("tmpstat");
  506. var etcLnkSpecText = etcLnkSpecNode.text;
  507. // 수정하는 경우, 프로토콜처방 테이블의 키값을 가져가야 함
  508. if(prcpnoNode) {model.setValue(prcpnoNode, etcLnkSpecText.split("|")[2]);}
  509. if(etcLnkSpecNode) {model.setValue(etcLnkSpecNode, etcLnkSpecText.split("|")[0] + "|" + etcLnkSpecText.split("|")[1]);}
  510. if(etcLnkSpecNode) {model.setValue(etcLnkSpecNode, etcLnkSpecText.split("|")[0] + "|" + etcLnkSpecText.split("|")[1]);}
  511. }
  512. }
  513. }
  514. }
  515. ////저장데이터 조회 분기 끝
  516. // 약품분할 추가 (2008.02.10) => skip ??
  517. /*
  518. var divPrcpInfo = model.instances(0).selectNodes( "/root/result/prcplist" );
  519. if ( divPrcpInfo.length > 0 ) { // 용량분할, 저함량
  520. if ( !isNull(model.getValue ( "/root/result/prcplist/prcpcd"))){
  521. xpt = window.screenleft + 100;
  522. ypt = window.screenTop + 50;
  523. coord = getRelativeCoordinate ( xpt, ypt );
  524. mon = coord[0];
  525. xpt = coord[1];
  526. ypt = coord[2];
  527. modal ( "SPADB62400", mon, xpt, ypt, "SPADB62400", "/root/result", "/root/main/prcp", "", false ); //오류팝업
  528. model.refresh();
  529. model.recalculate();
  530. fClearSaveInstance();
  531. }
  532. fPrcpSave( "", "", "", "N" );
  533. return false;
  534. }
  535. */
  536. fClearSaveInstance();
  537. // 인스턴스명 중복을 피하기 위해, reqdata 삭제
  538. model.removeNodeset ( "/root/send/reqdata" );
  539. var ErrExistYN = "N"; //오류처방 리턴 여부 (CP일 경우, 오류처방이 있어도 제외한 처방데이터를 함께 리턴하므로 오류메세지 팝업은 skip)
  540. ////오류메세지 팝업 분기
  541. var prcpErrList = model.instances(0).selectNodes( "/root/result/prcperrlist" );
  542. //if( prcpflag == "0" ){
  543. if ( prcpErrList.length > 0 ) {
  544. if ( !isNull(model.getValue ( "/root/result/prcperrlist/prcpcd"))){
  545. var xpt = window.screenleft + 100;
  546. var ypt = window.screenTop + 50;
  547. var coord = getRelativeCoordinate ( xpt, ypt );
  548. var mon = coord[0];
  549. xpt = coord[1];
  550. ypt = coord[2];
  551. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false ); //오류팝업
  552. model.removeNodeset("/root/result/prcperrlist");
  553. }
  554. messageBox("해당 프로토콜 마스터를 수정하거나 처방오류를 수정하셔야 처방 가능합니다.", "E999", "");
  555. window.close();
  556. return false;
  557. }
  558. //}else{
  559. // if ( prcpErrList.length > 0 ) {
  560. // ErrExistYN = "Y";
  561. // //var saveInvaliPrcpList = model.instances(0).selectNodes( "/root/result/saveinvaliprcplist" ); //에러가 존재하여 미완성처방으로 저장될 데이터
  562. // //model.makeValue("/root/send/errprcplist", getNodeListCSV(saveInvaliPrcpList));
  563. // //2008.02.10 수정
  564. // model.makeNode("/root/send/saveinvaliprcplist");
  565. // fAppendSaveNode ( "/root/send/saveinvaliprcplist", "/root/result/saveinvaliprcplist" );
  566. // }
  567. //}
  568. // 제한항생제처방 체크 => 미완성으로 저장 할 것
  569. // 보험제한처방 처리 => 미완성으로 저장 할 것
  570. // 처방중복체크 skip
  571. // 병기분류 skip
  572. if ( signyn == "Y" ) {
  573. var signbfcnts = model.getValue ( "/root/result/signprcplist/signprcp_signbfcnts" );
  574. var setnode = "/root/result/signprcplist/signprcp_signaftcnts";
  575. // var signid = "00000001";
  576. var signid = getUserInfo ("userid");
  577. var signopt = false;
  578. if ( prcpgenrflag != "O" ) {
  579. signopt = true;
  580. }
  581. ////인증 구분자 추가
  582. if( prcpflag == "6" ){ //CP 일 때, 인증저장 2번 뜨는 것을 막는다
  583. if( questionYN_SMMMO00110 == "Y" ){
  584. var signid = getUserInfo ("userid");
  585. signopt = false;
  586. }
  587. }
  588. ////인증 구분자 추가 끝
  589. //처방인증
  590. var v_stext = fSaveSign ( signbfcnts, signid, signopt, setnode );
  591. if ( v_stext != "N" ) {
  592. if (isNull( v_stext )) {
  593. model.setValue("/root/send/data/orderdata/cpgappno", "");
  594. model.refresh();
  595. button5.disabled=false;
  596. switch1.disabled=false;
  597. return false;
  598. }
  599. var saveSignPrcpInfo = model.instances(0).selectNodes( "/root/result/signprcplist" );
  600. //model.setValue ( "/root/send/cond2", getNodeListCSV(saveSignPrcpInfo));
  601. fAppendSaveNode( "/root/send/cond2", "/root/result/signprcplist" ); //의사처방데이터
  602. signopt = false; //진단에서 또 안띄우기 위해서 false로 수정
  603. } else {
  604. model.setValue("/root/send/data/orderdata/cpgappno", "");
  605. model.refresh();
  606. button5.disabled=false;
  607. switch1.disabled=false;
  608. return;
  609. }
  610. signbfcnts = model.getValue ( "/root/result/signdiaglist/signbfcnts" );
  611. setnode = "/root/result/signdiaglist/signaftcnts";
  612. //진단인증
  613. v_stext = fSaveSign ( signbfcnts, signid, signopt, setnode );
  614. if ( v_stext != "N") {
  615. if (isNull(v_stext)) {
  616. button5.disabled=false;
  617. switch1.disabled=false;
  618. return false;
  619. }
  620. var saveSignDiagInfo = model.instances(0).selectNodes( "/root/result/signdiaglist" );
  621. //model.setValue ( "/root/send/cond2", getNodeListCSV(saveSignDiagInfo));
  622. fAppendSaveNode( "/root/send/cond2", "/root/result/signdiaglist" ); //의사처방데이터
  623. }
  624. }
  625. /*
  626. var saveDrPrcpList = model.instances(0).selectNodes( "/root/result/savedrprcplist" );
  627. model.setValue ( "/root/send/cond2", getNodeListCSV(saveDrPrcpList));
  628. var saveExecPrcpList = model.instances(0).selectNodes( "/root/result/saveexecprcplist"); //실시처방 저장데이터
  629. model.setValue ( "/root/send/cond3", getNodeListCSV(saveExecPrcpList));
  630. var saveDiagList = model.instances(0).selectNodes( "/root/result/savediaglist"); //진단저장 저장데이터
  631. model.setValue ( "/root/send/cond4", getNodeListCSV(saveDiagList));
  632. var saveRgstInfo = model.instances(0).selectNodes( "/root/result/savepamlist" );
  633. model.setValue ( "/root/send/cond5", getNodeListCSV(saveRgstInfo));
  634. var saveMatrPrcpList = model.instances(0).selectNodes( "/root/result/savematrprcplist" ); //재료처방 정보
  635. model.setValue ( "/root/send/cond8", getNodeListCSV(saveMatrPrcpList));
  636. var dschflaginfo = model.instances(0).selectNodes( "/root/result/dschflaginfo" );
  637. model.setValue ( "/root/send/cond9", getNodeListCSV(dschflaginfo));
  638. var dschpamlist = model.instances(0).selectNodes( "/root/result/dschpamlist" );
  639. model.setValue ( "/root/send/cond10", getNodeListCSV(dschpamlist));
  640. var dschdrprcplist = model.instances(0).selectNodes( "/root/result/dschdrprcplist" );
  641. model.setValue ( "/root/send/cond11", getNodeListCSV(dschdrprcplist));
  642. var dschexecprcplist = model.instances(0).selectNodes( "/root/result/dschexecprcplist" );
  643. model.setValue ( "/root/send/cond12", getNodeListCSV(dschexecprcplist));
  644. var dschmatrprcplist = model.instances(0).selectNodes( "/root/result/dschmatrprcplist" );
  645. model.setValue ( "/root/send/cond13", getNodeListCSV(dschmatrprcplist));
  646. */
  647. fAppendSaveNode( "/root/send/cond2", "/root/result/savedrprcplist" ); //의사처방데이터
  648. fAppendSaveNode( "/root/send/cond2", "/root/result/saveexecprcplist" ); //실시처방 저장데이터
  649. fAppendSaveNode( "/root/send/cond2", "/root/result/savediaglist" ); //진단저장 저장데이터
  650. fAppendSaveNode( "/root/send/cond2", "/root/result/savepamlist" ); //원무정보 저장데이터
  651. fAppendSaveNode( "/root/send/cond2", "/root/result/savematrprcplist" ); //재료처방정보 저장데이터
  652. if ( prcpgenrflag != "O" ) {
  653. //퇴원후 외래처방 저장 setting
  654. fAppendSaveNode( "/root/send/cond2", "/root/result/dschflaginfo" );
  655. fAppendSaveNode( "/root/send/cond2", "/root/result/dschpamlist" );
  656. fAppendSaveNode( "/root/send/cond2", "/root/result/dschdrprcplist" );
  657. fAppendSaveNode( "/root/send/cond2", "/root/result/dschexecprcplist" );
  658. fAppendSaveNode( "/root/send/cond2", "/root/result/dschmatrprcplist" );
  659. }
  660. if( prcpflag == "0" ){
  661. if ( !submit ( "TXMMO00103", false )) {
  662. model.removeNodeSet ( "/root/result");
  663. model.resetInstanceNode ( "/root/send" );
  664. model.refresh();
  665. return false;
  666. }
  667. }else{
  668. //openLoadingBar("저장중입니다."); //로딩 메세지 open
  669. if ( !submit( "TXADB01005", false )) { //TXMMP00803
  670. //messageBox("처방 저장을 ", "E009");
  671. model.removeNodeSet ( "/root/result");
  672. endSavePrcpYN_SMMMO00110 = "Y";
  673. return false;
  674. }
  675. //closeLoadingBar(); //loading 메세지 닫기
  676. var xpt = window.screenleft + 100;
  677. var ypt = window.screenTop + 50;
  678. if ( ErrExistYN == "Y" ) {
  679. if ( !isNull(model.getValue ( "/root/result/prcperrlist/prcpcd"))){
  680. //미완성 처방 조회를 위한 에러체크 결과 조회
  681. if(prtlFlag_SMMMO00110 == "01" || prtlFlag_SMMMO00110 == "02") {
  682. copyNodeListType("/root/main/invalprcplist", "/root/result/saveinvaliprcplist", "after", model, model);
  683. grd_errprcplist.refresh();
  684. }
  685. var coord = getRelativeCoordinate ( xpt, ypt );
  686. var mon = coord[0];
  687. xpt = coord[1];
  688. ypt = coord[2];
  689. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false ); //오류팝업
  690. model.removeNodeset("/root/result/prcperrlist");
  691. model.removeNodeset("/root/result");
  692. model.makeNode("/root/result");
  693. return false;
  694. }
  695. //questionYN_SMMMO00110 = "N"; //초기화
  696. }
  697. }
  698. // 입원일 때 약집계 호출 => skip
  699. // 응급일 때 진료지원 예약모듈 호출 => skip
  700. // 제한항생제 저장 => skip
  701. // OCR 자동출력 ocrcalcscorcd 값은 MMO001에 global로 선언. 값은 fPrcpSaveChkaft에서 체크한다. => skip
  702. // 처방에 대한 중증진료, 산정특례, 법정전염병 처리 => skip
  703. if( prcpflag != "0" ){
  704. //CP, 항암프로토콜이면 return 한다
  705. return true;
  706. }
  707. model.setValue ( "/root/send/pid" , model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/pid" ));
  708. model.setValue ( "/root/send/orddd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/orddd" ));
  709. model.setValue ( "/root/send/cretno", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/cretno" ));
  710. model.setValue ( "/root/send/instcd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/instcd" ));
  711. model.setValue ( "/root/send/ioflag", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/ordtype" ));
  712. model.refresh();
  713. return true;
  714. }
  715. //***********************************************************************
  716. // @function : 외래 항암프로토콜 인증저장을 위한 인증데이터 세팅
  717. // @by : 2008.07.31 임혜정
  718. // @---------------------------------------------------------------------
  719. // @desc : 1) 항암프로토콜정보 인증데이터 생성
  720. // 2) 항암프로토콜상세정보 인증데이터 생성
  721. // 3) 환자진단정보 인증데이터 생성
  722. //***********************************************************************
  723. function fAntiPrtlSignSave( ){
  724. var sSignPrtlData = "";
  725. var sSignPrcpData = "";
  726. var sSignDiagData = "";
  727. var sendSignData = "";
  728. // 1. 인증데이터 생성
  729. // 1) 항암프로토콜정보 인증데이터 생성
  730. sSignPrtlData = "<항암프로토콜정보>";
  731. sSignPrtlData = sSignPrtlData + "<CPG적용번호>" + model.getValue("/root/send/data/orderdata/cpgappno") + "</CPG적용번호>";
  732. sSignPrtlData = sSignPrtlData + "<CP번호>" + model.getValue("/root/send/data/orderdata/cpgno") + "</CP번호>";
  733. sSignPrtlData = sSignPrtlData + "<CP이력번호>" + "1" + "</CP이력번호>";
  734. sSignPrtlData = sSignPrtlData + "<등록번호>" + model.getValue("/root/send/data/orderdata/sendpid") + "</등록번호>";
  735. sSignPrtlData = sSignPrtlData + "<처방일자>" + model.getValue("/root/send/data/orderdata/sendorddd") + "</처방일자>";
  736. sSignPrtlData = sSignPrtlData + "<생성번호>" + model.getValue("/root/send/data/orderdata/sendcretno") + "</생성번호>";
  737. sSignPrtlData = sSignPrtlData + "<입원외래구분>" + model.getValue("/root/send/data/orderdata/sendioflag") + "</입원외래구분>";
  738. sSignPrtlData = sSignPrtlData + "<적용일자>" + model.getValue("/root/send/data/orderdata/appdd") + "</적용일자>";
  739. sSignPrtlData = sSignPrtlData + "<프로토콜구분코드>" + "10" + "</프로토콜구분코드>";
  740. sSignPrtlData = sSignPrtlData + "<시작step>" + "1" + "</시작step>";
  741. sSignPrtlData = sSignPrtlData + "<종료step>" + "1" + "</종료step>";
  742. sSignPrtlData = sSignPrtlData + "<시작회차>" + model.getValue("/root/send/data/orderdata/starttimes") + "</시작회차>";
  743. sSignPrtlData = sSignPrtlData + "<종료회차>" + model.getValue("/root/send/data/orderdata/endtimes") + "</종료회차>";
  744. sSignPrtlData = sSignPrtlData + "<적용상태>" + "00" + "</적용상태>";
  745. sSignPrtlData = sSignPrtlData + "<진료과>" + model.getValue("/root/send/data/orderdata/sendorddeptcd") + "</진료과>";
  746. sSignPrtlData = sSignPrtlData + "<질병분류코드>" + model.getValue("/root/send/data/orderdata/sendsickclscd") + "</질병분류코드>";
  747. sSignPrtlData = sSignPrtlData + "<입원외래구분>" + model.getValue("/root/send/data/orderdata/sendioflag") + "</입원외래구분>";
  748. sSignPrtlData = sSignPrtlData + "<프로토콜코드>" + model.getValue("/root/send/data/orderdata/sendprtlcd") + "</프로토콜코드>";
  749. sSignPrtlData = sSignPrtlData + "<진토제프로토콜코드>" + model.getValue("/root/send/data/orderdata/sendantimetprtlcd") + "</진토제프로토콜코드>";
  750. sSignPrtlData = sSignPrtlData + "<Stage>" + model.getValue("/root/send/data/orderdata/drugstage") + "</Stage>";
  751. sSignPrtlData = sSignPrtlData + "<Cycle>" + model.getValue("/root/send/data/orderdata/drugcycle") + "</Cycle>";
  752. sSignPrtlData = sSignPrtlData + "<적용시작>" + model.getValue("/root/send/data/orderdata/acpttermfrom") + "</적용시작>";
  753. sSignPrtlData = sSignPrtlData + "<적용종료>" + model.getValue("/root/send/data/orderdata/acpttermto") + "</적용종료>";
  754. sSignPrtlData = sSignPrtlData + "<진행상태>" + model.getValue("/root/send/data/orderdata/acptno") + "</진행상태>";
  755. sSignPrtlData = sSignPrtlData + "<신장>" + model.getValue("/root/send/data/orderdata/ht") + "</신장>";
  756. sSignPrtlData = sSignPrtlData + "<체중구분>" + model.getValue("/root/send/data/orderdata/wtflag") + "</체중구분>";
  757. sSignPrtlData = sSignPrtlData + "<체중>" + model.getValue("/root/send/data/orderdata/wt") + "</체중>";
  758. sSignPrtlData = sSignPrtlData + "<IBW>" + model.getValue("/root/send/data/orderdata/ibw") + "</IBW>";
  759. sSignPrtlData = sSignPrtlData + "<BSA>" + model.getValue("/root/send/data/orderdata/bsa") + "</BSA>";
  760. sSignPrtlData = sSignPrtlData + "<GFR구분>" + model.getValue("/root/send/data/orderdata/gfrflag") + "</GFR구분>";
  761. sSignPrtlData = sSignPrtlData + "<GFR>" + model.getValue("/root/send/data/orderdata/gfr") + "</GFR>";
  762. sSignPrtlData = sSignPrtlData + "<나이>" + model.getValue("/root/send/data/orderdata/sendage") + "</나이>";
  763. sSignPrtlData = sSignPrtlData + "<성별별환산값>" + model.getValue("/root/send/data/orderdata/sexrate") + "</성별별환산값>";
  764. sSignPrtlData = sSignPrtlData + "<SC>" + model.getValue("/root/send/data/orderdata/sc") + "</SC>";
  765. sSignPrtlData = sSignPrtlData + "<Urine>" + model.getValue("/root/send/data/orderdata/urvol") + "</Urine>";
  766. sSignPrtlData = sSignPrtlData + "<Urine Creatine>" + model.getValue("/root/send/data/orderdata/urcr") + "</Urine Creatine>";
  767. sSignPrtlData = sSignPrtlData + "<AUC>" + model.getValue("/root/send/data/orderdata/auc") + "</AUC>";
  768. sSignPrtlData = sSignPrtlData + "<Carbo량>" + model.getValue("/root/send/data/orderdata/carbovol") + "</Carbo량>";
  769. sSignPrtlData = sSignPrtlData + "</항암프로토콜정보>";
  770. // 2) 항암프로토콜상세정보 인증데이터 생성
  771. sSignPrcpData = "<항암프로토콜상세정보>";
  772. for (var i = 0; i < grd_prtlprcpprelist.rows ; i++) {
  773. sSignPrcpData = sSignPrcpData + "<D>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtldgnm") + "</D>";
  774. sSignPrcpData = sSignPrcpData + "<D>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtldg") + "</D>";
  775. sSignPrcpData = sSignPrcpData + "<투약순서>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugseq") + "</투약순서>";
  776. sSignPrcpData = sSignPrcpData + "<투약시간>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugtt") + "</투약시간>";
  777. sSignPrcpData = sSignPrcpData + "<적용구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/volkind") + "</적용구분>";
  778. sSignPrcpData = sSignPrcpData + "<BSA당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/bsavol") + "</BSA당용량>";
  779. sSignPrcpData = sSignPrcpData + "<kg당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/kgvol") + "</kg당용량>";
  780. sSignPrcpData = sSignPrcpData + "<Remark>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/remark") + "</Remark>";
  781. sSignPrcpData = sSignPrcpData + "<간호전달사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/nursrem") + "</간호전달사항>";
  782. sSignPrcpData = sSignPrcpData + "<수량용량비율>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/volrate") + "</수량용량비율 >";
  783. sSignPrcpData = sSignPrcpData + "<항암진토 구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlkind") + "</항암진토 구분>";
  784. sSignPrcpData = sSignPrcpData + "<ordseqno>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/ordseqno") + "</ordseqno>";
  785. sSignPrcpData = sSignPrcpData + "<처리구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/status") + "</처리구분>";
  786. sSignPrcpData = sSignPrcpData + "<처방상태코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpstatcd") + "</처방상태코드>";
  787. sSignPrcpData = sSignPrcpData + "<처방분류코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpclscd") + "</처방분류코드>";
  788. sSignPrcpData = sSignPrcpData + "<처방종류코드(추가)>" + "20" + "</처방종류코드(추가)>";
  789. sSignPrcpData = sSignPrcpData + "<처방코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpcd") + "</처방코드>";
  790. sSignPrcpData = sSignPrcpData + "<처방명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpnm") + "</처방명>";
  791. sSignPrcpData = sSignPrcpData + "<처방>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvol") + "</처방>";
  792. sSignPrcpData = sSignPrcpData + "<처방용량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitnm") + "</처방용량단위명>";
  793. sSignPrcpData = sSignPrcpData + "<처방수량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqty") + "</처방수량>";
  794. sSignPrcpData = sSignPrcpData + "<처방수량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitnm") + "</처방수량단위명>";
  795. sSignPrcpData = sSignPrcpData + "<처방횟수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcptims") + "</처방횟수>";
  796. sSignPrcpData = sSignPrcpData + "<처방일수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdayno") + "</처방일수>";
  797. sSignPrcpData = sSignPrcpData + "<투여방법검체코드명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmthdspccdnm") + "</투여방법검체코드명>";
  798. sSignPrcpData = sSignPrcpData + "<처방Mix번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpmixno") + "</처방Mix번호>";
  799. sSignPrcpData = sSignPrcpData + "<급여구분코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/payflagcd") + "</급여구분코드>";
  800. sSignPrcpData = sSignPrcpData + "<전달사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdelivefact") + "</전달사항>";
  801. sSignPrcpData = sSignPrcpData + "<원내/원외구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/hosinhosoutflag") + "</원내/원외구분>";
  802. sSignPrcpData = sSignPrcpData + "<처방실시부서코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpexecdeptcd") + "</처방실시부서코드>";
  803. sSignPrcpData = sSignPrcpData + "<처방희망일시>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcphopedd") + "</처방희망일시>";
  804. sSignPrcpData = sSignPrcpData + "<선택진료구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/choiordflag") + "</선택진료구분>";
  805. sSignPrcpData = sSignPrcpData + "<등록일시>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rgstdt") + "</등록일시>";
  806. sSignPrcpData = sSignPrcpData + "<등록자명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rgstridnm") + "</등록자명>";
  807. sSignPrcpData = sSignPrcpData + "<검사결과단위>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/testrsltunit") + "</검사결과단위>";
  808. sSignPrcpData = sSignPrcpData + "<검사결과>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/testrsltcnts") + "</검사결과>";
  809. sSignPrcpData = sSignPrcpData + "<처방발생구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpgenrflag") + "</처방발생구분>";
  810. sSignPrcpData = sSignPrcpData + "<처방이력코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcphistcd") + "</처방이력코드>";
  811. sSignPrcpData = sSignPrcpData + "<임시처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempprcpflag") + "</임시처방구분>";
  812. sSignPrcpData = sSignPrcpData + "<처방SET코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpsetcd") + "</처방SET코드>";
  813. sSignPrcpData = sSignPrcpData + "<처방용량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitflag") + "</처방용량단위구분>";
  814. sSignPrcpData = sSignPrcpData + "<처방수량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitflag") + "</처방수량단위구분>";
  815. sSignPrcpData = sSignPrcpData + "<실제처방수량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/orgprcpqty") + "</실제처방수량>";
  816. sSignPrcpData = sSignPrcpData + "<투여속도>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspd") + "</투여속도>";
  817. sSignPrcpData = sSignPrcpData + "<투여속도단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspdunitflag") + "</투여속도단위구분>";
  818. sSignPrcpData = sSignPrcpData + "<파우더구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/powdflag") + "</파우더구분>";
  819. sSignPrcpData = sSignPrcpData + "<PRN처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prnprcpflag") + "</PRN처방구분>";
  820. sSignPrcpData = sSignPrcpData + "<Prep처방구분>" + "N" + "</Prep처방구분>";
  821. sSignPrcpData = sSignPrcpData + "<자가처방구분>" + "N" + "</자가처방구분>";
  822. sSignPrcpData = sSignPrcpData + "<SELF약구분>" + "N" + "</SELF약구분>";
  823. sSignPrcpData = sSignPrcpData + "<투약포장구분>" + "N" + "</투약포장구분>";
  824. sSignPrcpData = sSignPrcpData + "<응급처방구분>" + "N" + "</응급처방구분>";
  825. sSignPrcpData = sSignPrcpData + "<선처치처방구분>" + "N" + "</선처치처방구분>";
  826. sSignPrcpData = sSignPrcpData + "<야간처방구분>" + "N" + "</야간처방구분>";
  827. sSignPrcpData = sSignPrcpData + "<포터블처방구분>" + "N" + "</포터블처방구분>";
  828. sSignPrcpData = sSignPrcpData + "<정액처방구분>" + "N" + "</정액처방구분>";
  829. sSignPrcpData = sSignPrcpData + "<기왕증(력)구분>" + "N" + "</기왕증(력)구분>";
  830. sSignPrcpData = sSignPrcpData + "<금식처방구분>" + "N" + "</금식처방구분>";
  831. sSignPrcpData = sSignPrcpData + "<응급판독구분>" + "N" + "</응급판독구분>";
  832. sSignPrcpData = sSignPrcpData + "<처방방향구분>" + "-" + "</처방방향구분>";
  833. sSignPrcpData = sSignPrcpData + "<수혈사용구분>" + "0" + "</수혈사용구분>";
  834. sSignPrcpData = sSignPrcpData + "<수혈필터구분>" + "N" + "</수혈필터구분>";
  835. sSignPrcpData = sSignPrcpData + "<이식전검사구분>" + "N" + "</이식전검사구분>";
  836. sSignPrcpData = sSignPrcpData + "<출장건진구분>" + "N" + "</출장건진구분>";
  837. sSignPrcpData = sSignPrcpData + "<조혈모(줄기)>" + "00NNN" + "</조혈모(줄기)>";
  838. sSignPrcpData = sSignPrcpData + "<Angio구분>" + "-" + "</Angio구분>";
  839. sSignPrcpData = sSignPrcpData + "<수술마취구분>" + "-" + "</수술마취구분>";
  840. sSignPrcpData = sSignPrcpData + "<마취시간>" + "0000" + "</마취시간>";
  841. sSignPrcpData = sSignPrcpData + "<식이열량함량>" + "0" + "</식이열량함량>";
  842. sSignPrcpData = sSignPrcpData + "<식이단백질함량>" + "0" + "</식이단백질함량>";
  843. sSignPrcpData = sSignPrcpData + "<식이수정구분>" + "0" + "</식이수정구분>";
  844. sSignPrcpData = sSignPrcpData + "<원내처방사유코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/hosinprcpresncd ") + "</원내처방사유코드>";
  845. sSignPrcpData = sSignPrcpData + "<기타처방사유코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/etcprcpresncd") + "</기타처방사유코드>";
  846. sSignPrcpData = sSignPrcpData + "<투여방법검체코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmthdspccd") + "</투여방법검체코드>";
  847. sSignPrcpData = sSignPrcpData + "<발행부서코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/issdeptcd") + "</발행부서코드>";
  848. sSignPrcpData = sSignPrcpData + "<처방권한구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpauthflag") + "</처방권한구분>";
  849. sSignPrcpData = sSignPrcpData + "<처방입력구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpinptflag") + "</처방입력구분>";
  850. sSignPrcpData = sSignPrcpData + "<처방서명구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpsignflag") + "</처방서명구분>";
  851. sSignPrcpData = sSignPrcpData + "<비율처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rateprcpflag") + "</비율처방구분>";
  852. sSignPrcpData = sSignPrcpData + "<처방조회순서>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcprefseq") + "</처방조회순서>";
  853. sSignPrcpData = sSignPrcpData + "<진료의뢰연결번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/ordreqlnkno") + "</진료의뢰연결번호>";
  854. sSignPrcpData = sSignPrcpData + "<검사의뢰연결번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/testreqlnkno") + "</검사의뢰연결번호>";
  855. sSignPrcpData = sSignPrcpData + "<처방연계일자>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcplnkdd") + "</처방연계일자>";
  856. sSignPrcpData = sSignPrcpData + "<처방연계번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcplnkno") + "</처방연계번호>";
  857. sSignPrcpData = sSignPrcpData + "<수술예약번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/oprsrvno") + "</수술예약번호>";
  858. sSignPrcpData = sSignPrcpData + "<치식사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tootfact") + "</치식사항>";
  859. sSignPrcpData = sSignPrcpData + "<임상소견내용>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/clinccmtcnts") + "</임상소견내용>";
  860. sSignPrcpData = sSignPrcpData + "<처방필수입력구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpessninptflag") + "</처방필수입력구분>";
  861. sSignPrcpData = sSignPrcpData + "<그룹싱글구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/grupsnglflag") + "</그룹싱글구분>";
  862. sSignPrcpData = sSignPrcpData + "<투약비율수랑>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugrateqty") + "</투약비율수랑>";
  863. sSignPrcpData = sSignPrcpData + "<AST검사구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/asttestflag") + "</AST검사구분>";
  864. sSignPrcpData = sSignPrcpData + "<임상연구구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/clincstdyflag") + "</임상연구구분>";
  865. sSignPrcpData = sSignPrcpData + "<프로토콜번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlno") + "</프로토콜번호>";
  866. sSignPrcpData = sSignPrcpData + "<임상연구코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/clincstdycd") + "</임상연구코드>";
  867. sSignPrcpData = sSignPrcpData + "<수술용어>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/optermcd") + "</수술용어>";
  868. sSignPrcpData = sSignPrcpData + "<처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpflag") + "</처방구분>";
  869. sSignPrcpData = sSignPrcpData + "<HSCT임시처방구분 >" + "N" + "</HSCT임시처방구분>";
  870. sSignPrcpData = sSignPrcpData + "<종속처방코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/inclprcpcd") + "</종속처방코드>";
  871. sSignPrcpData = sSignPrcpData + "<종속처방번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/inclprcpno") + "</종속처방번호>";
  872. sSignPrcpData = sSignPrcpData + "<원무PK내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/pampkspec") + "</원무PK내역>";
  873. sSignPrcpData = sSignPrcpData + "<처방PK내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcppkspec") + "</처방PK내역>";
  874. sSignPrcpData = sSignPrcpData + "<수가마스터내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/calcscormastspec") + "</수가마스터내역>";
  875. sSignPrcpData = sSignPrcpData + "<약품마스터내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmastspec") + "</약품마스터내역>";
  876. sSignPrcpData = sSignPrcpData + "<비율처방내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rateprcpspec") + "</비율처방내역>";
  877. sSignPrcpData = sSignPrcpData + "<재료SET처방내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/matrsetprcpspec") + "</재료SET처방내역>";
  878. sSignPrcpData = sSignPrcpData + "<지원부서내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/suppdeptspec") + "</지원부서내역>";
  879. sSignPrcpData = sSignPrcpData + "<연속처방내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/contprcpspec") + "</연속처방내역>";
  880. sSignPrcpData = sSignPrcpData + "<기타연계내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/etclnkspec") + "</기타연계내역>";
  881. sSignPrcpData = sSignPrcpData + "<검색조건내용>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/srchcondcnts") + "</검색조건내용>";
  882. sSignPrcpData = sSignPrcpData + "<수가처방명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/orgprcpnm") + "</수가처방명>";
  883. sSignPrcpData = sSignPrcpData + "<전처방chekc표시>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/chkcol") + "</전처방chekc표시>";
  884. sSignPrcpData = sSignPrcpData + "<임시컬럼1>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempcol1") + "</임시컬럼1>";
  885. sSignPrcpData = sSignPrcpData + "<임시컬럼2>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempcol2") + "</임시컬럼2>";
  886. sSignPrcpData = sSignPrcpData + "<임시컬럼3>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempcol3") + "</임시컬럼3>";
  887. sSignPrcpData = sSignPrcpData + "<CP스텝번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/stepno") + "</CP스텝번호>";
  888. sSignPrcpData = sSignPrcpData + "<처방일자>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdd") + "</처방일자>";
  889. }
  890. sSignPrcpData = sSignPrcpData + "</항암프로토콜상세정보>";
  891. // 3) 환자진단정보 인증데이터 생성
  892. sSignDiagData = "<환자진단정보>";
  893. for (var j = 0; j < grd_diaglist.rows ; j++) {
  894. sSignDiagData = sSignDiagData + "<상태 (I/U/D)>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/status") + "</상태 (I/U/D)>";
  895. sSignDiagData = sSignDiagData + "<진단종류코드>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/diagkindcd") + "</진단종류코드>";
  896. sSignDiagData = sSignDiagData + "<진단종류코드구분>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/diagkindcdflag") + "</진단종류코드구분>";
  897. sSignDiagData = sSignDiagData + "<진단코드>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/icd10cd") + "</진단코드>";
  898. sSignDiagData = sSignDiagData + "<진단명>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/diagengnm") + "</진단명>";
  899. sSignDiagData = sSignDiagData + "<특례>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/spclinfo") + "</특례>";
  900. }
  901. sSignDiagData = sSignDiagData + "</환자진단정보>";
  902. sendSignData = sSignPrtlData + sSignPrcpData + sSignDiagData;
  903. model.setValue("/root/send/data/signdata/signbfcnts" , sendSignData );
  904. }
  905. function fAntiPrtlRtrnSign() {
  906. var sSignPrtlData = "";
  907. var sSignPrcpData = "";
  908. var sendSignData = "";
  909. // 1. 인증데이터 생성
  910. // 1) 항암프로토콜정보 인증데이터 생성
  911. sSignPrtlData = "<항암프로토콜정보>";
  912. sSignPrtlData = sSignPrtlData + "<시작일>" + model.getValue("/root/main/prtlinfo/startdate") + "</시작일>";
  913. sSignPrtlData = sSignPrtlData + "<적용기간>" + model.getValue("/root/main/prtlinfo/startterm") + "</적용기간>";
  914. sSignPrtlData = sSignPrtlData + "<적용기간>" + model.getValue("/root/main/prtlinfo/endterm") + "</적용기간>";
  915. sSignPrtlData = sSignPrtlData + "<Stage>" + model.getValue("/root/main/prtlinfo/drugstage") + "</Stage>";
  916. sSignPrtlData = sSignPrtlData + "<Cycle>" + model.getValue("/root/main/prtlinfo/drugcycle") + "</Cycle>";
  917. sSignPrtlData = sSignPrtlData + "<키>" + model.getValue("/root/main/data/ht") + "</키>";
  918. sSignPrtlData = sSignPrtlData + "<체중>" + model.getValue("/root/main/data/wt") + "</체중>";
  919. sSignPrtlData = sSignPrtlData + "<IBW>" + model.getValue("/root/main/data/ibw") + "</IBW>";
  920. sSignPrtlData = sSignPrtlData + "<BSA>" + model.getValue("/root/main/data/bsa") + "</BSA>";
  921. sSignPrtlData = sSignPrtlData + "</항암프로토콜정보>";
  922. // 2) 항암프로토콜상세정보 인증데이터 생성
  923. for (var i = 0; i < grd_prtlprcpprelist.rows ; i++) {
  924. sSignPrcpData = "<항암프로토콜상세정보>";
  925. sSignPrcpData = sSignPrcpData + "<반환여부>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/sel") + "</반환여부>";
  926. sSignPrcpData = sSignPrcpData + "<투약순서>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugseq") + "<투약순서/>";
  927. sSignPrcpData = sSignPrcpData + "<투약시간>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugtt") + "<투약시간/>";
  928. sSignPrcpData = sSignPrcpData + "<처방Mix번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpmixno") + "</처방Mix번호>";
  929. sSignPrcpData = sSignPrcpData + "<처방코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpcd") + "</처방코드>";
  930. sSignPrcpData = sSignPrcpData + "<처방명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpnm") + "</처방명>";
  931. sSignPrcpData = sSignPrcpData + "<급여구분코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/payflagcd") + "</급여구분코드>";
  932. sSignPrcpData = sSignPrcpData + "<BSA당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/bsavol") + "</BSA당용량>";
  933. sSignPrcpData = sSignPrcpData + "<kg당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/kgvol") + "</kg당용량>";
  934. sSignPrcpData = sSignPrcpData + "<1일용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvol") + "</1일용량>";
  935. sSignPrcpData = sSignPrcpData + "<처방용량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitflag") + "</처방용량단위구분>";
  936. sSignPrcpData = sSignPrcpData + "<처방용량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitnm") + "</처방용량단위명>";
  937. sSignPrcpData = sSignPrcpData + "<처방수량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqty") + "</처방수량>";
  938. sSignPrcpData = sSignPrcpData + "<처방수량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitflag") + "</처방수량단위구분>";
  939. sSignPrcpData = sSignPrcpData + "<처방수량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitnm") + "</처방수량단위명>";
  940. sSignPrcpData = sSignPrcpData + "<투여속도>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspd") + "</투여속도>";
  941. sSignPrcpData = sSignPrcpData + "<투여속도단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspdunitflag") + "</투여속도단위구분>";
  942. sSignPrcpData = sSignPrcpData + "<투여속도단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspdunitnm") + "</투여속도단위구분>";
  943. sSignPrcpData = sSignPrcpData + "<처방횟수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcptims") + "</처방횟수>";
  944. sSignPrcpData = sSignPrcpData + "<투여방법검체코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmthdspccd") + "</투여방법검체코드>";
  945. sSignPrcpData = sSignPrcpData + "<PRN처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prnprcpflag") + "</PRN처방구분>";
  946. sSignPrcpData = sSignPrcpData + "<Remark>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/remark") + "</Remark>";
  947. sSignPrcpData = sSignPrcpData + "<간호전달사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/nursrem") + "</간호전달사항>";
  948. sSignPrcpData = sSignPrcpData + "<처방실시부서코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpexecdeptcd") + "</처방실시부서코드>";
  949. sSignPrcpData = sSignPrcpData + "<처방순번>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/ordseqno") + "</처방순번>";
  950. sSignPrcpData = sSignPrcpData + "<항암진토 구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlkind") + "</항암진토 구분>";
  951. sSignPrcpData = sSignPrcpData + "<수량용량비율>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/volrate") + "</수량용량비율 >";
  952. sSignPrcpData = sSignPrcpData + "<차수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtldg") + "</차수>";
  953. sSignPrcpData = sSignPrcpData + "<처방일자>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdd") + "</처방일자>";
  954. sSignPrcpData = sSignPrcpData + "<저장상태>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/saveflag") + "</저장상태>";
  955. sSignPrcpData = sSignPrcpData + "<프로토콜상태>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlstat") + "</프로토콜상태>";
  956. sSignPrcpData = sSignPrcpData + "<CPG번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/cpgappno") + "</CPG번호>";
  957. sSignPrcpData = sSignPrcpData + "</항암프로토콜상세정보>";
  958. }
  959. sendSignData = sSignPrtlData + sSignPrcpData;
  960. model.makeValue("/root/send/rtnsenddata/signinfo/signbfcnts" , sendSignData );
  961. }