SMADB01000.js 79 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432
  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( "TRADB01037", 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("TXADB01023", false); //TXADB01005 로 합침
  102. return true;
  103. } else {
  104. return false;
  105. } //프로토콜처방 저장 end
  106. }
  107. function fBatSaveAntiMeticDiag( flag ){
  108. prtlprcpstatus_SMMMO00110="I"; //save flag(I:insert)
  109. prtlFlag_SMMMO00110 = "10"; //프로토콜구분(10:항암프로토콜)
  110. appNo_SMMMO00110 = model.getValue("/root/temp/temp/ret/cpgappno"); //항암프로토콜 적용번호
  111. etclnkspecValue_SMMMO00110 = model.getValue("/root/temp/temp/ret/cpgappno") + "|" + "0"; //root/temp/getdata/cpgappno 노드 안에 프로토콜번호가 있어야 함!
  112. //미래처방
  113. copyNodesetType("/root/main/prcp", "/root/main/prtlprcpprelist", "replace", model, model);
  114. var nodelist = instance1.selectNodes("/root/main/prcp/prcplist");
  115. for(var i=0; i<nodelist.length; i++){
  116. var node = nodelist.item(i);
  117. var statusNode = node.selectSingleNode("status");
  118. var etclnkspecNode = node.selectSingleNode("etclnkspec");
  119. model.setValue(etclnkspecNode, etclnkspecValue_SMMMO00110);
  120. addPrcpSetValue_CP( "import", "/root/main/prcp/prcplist" , (i+1), "06", "N", "" );
  121. }
  122. //2. 프로토콜처방 저장 (오늘 날짜 처방을 제외한 미래 처장...)
  123. if( fPrcpDCSave_Diag("7") != false ){
  124. //submit("TXADB01023", false); //TXADB01005 로 합침
  125. return true;
  126. } else {
  127. return false;
  128. } //프로토콜처방 저장 end
  129. }
  130. /********************************* 처방과 저장 functon 합치기 전 *********************************/
  131. function addPrcpSetValue_CP ( objFlag, strSrc , sendRow, prcpInptFlag, hsctflag, inclprcpno ) {
  132. // OrgPrcpQty // 실제 처방수량
  133. var prcpdd = ""; //처방일
  134. var prcpkindcd = ""; //처방종류변수
  135. var pamInfoNode = "/root/paminfo/list";
  136. var pid = ""; //환자번호
  137. var indd = ""; //진료일자
  138. var cretno = ""; //생성번호
  139. var orddeptcd = ""; //담당부서
  140. var orddrid = ""; //담당교수
  141. var prcpgenrflag = ""; //외래입원구분
  142. var prcpclscd = model.getValue ( strSrc + "[" + sendRow + "]/prcpclscd" );
  143. var choiordflag = "";
  144. var org_prcpInptFlag = prcpInptFlag;
  145. if ( isNull(prcpInptFlag)){
  146. prcpInptFlag = model.getValue ( strSrc + "[" + sendRow + "]/prcpinptflag" );
  147. }
  148. if( org_prcpInptFlag != "05" || (org_prcpInptFlag == "05" && model.getValue(strSrc + "[" + sendRow + "]/prcpinptflag") == "00") ){
  149. model.setValue ( strSrc + "[" + sendRow + "]/prcpinptflag", prcpInptFlag ); //처방입력구분 //err
  150. prcpInptFlag = org_prcpInptFlag;
  151. }
  152. model.setValue ( strSrc + "[" + sendRow + "]/prcphistcd", "O" ); //처방이력코드:O
  153. model.setValue ( strSrc + "[" + sendRow + "]/prcpsignflag", "2" ); //처방이력구분:2
  154. model.setValue ( strSrc + "[" + sendRow + "]/prcprefseq", "0" ); //처방순서(전처방에 넘어올때도 있기때문에 0으로 클리어)
  155. //// 항암프로토콜일 경우 추가되는 saveflaginfo 값 셋팅
  156. model.makeValue ( "/root/save/saveflaginfo/cpgappno", appNo_SMMMO00110 ); //CP처방 or 프로토콜처방 no
  157. model.makeValue ( "/root/save/saveflaginfo/prtlprcpstatus", prtlprcpstatus_SMMMO00110 ); //CP처방 or 프로토콜처방 저장 status
  158. model.makeValue ( "/root/save/saveflaginfo/isstimes", isstimes_SMMMO00110 ); //발행시작회차, 종료회차
  159. // 처방명의 구분이 2개가 중복되어 저장되는 문제 -> 원처방명을 저장한다. => 일단 처방코드로 하드코딩 -> 방안을 강구해야 함
  160. //if( model.getValue(strSrc + "[" + sendRow + "]/prcpcd") != "000000000033" ){
  161. // model.setValue ( strSrc + "[" + sendRow + "]/prcpnm", model.getValue(strSrc + "[" + sendRow + "]/orgprcpnm") ); //makePrcpNm() 때문에 prcpnm->orgprcpnm
  162. //}
  163. model.makeValue ( "/root/save/saveflaginfo/prtlflag", "10" ); //프로토콜구분
  164. //// 셋팅 끝
  165. var issdept = model.getValue ("/root/issdept");
  166. if ( isNull(issdept)) {
  167. issdept = getUserInfo( "posdeptcd" );
  168. }
  169. model.setValue ( strSrc + "[" + sendRow + "]/issdeptcd", issdept );
  170. var drugmastspec = model.getValue ( strSrc + "[" + sendRow + "]/drugmastspec") + "^";
  171. var usge = "";
  172. if ( objFlag == "child" ){
  173. //가정간호일때 시작일,종료일 바꿔준다.
  174. usge = opener.model.getValue ( "/root/usge" );
  175. if (usge == "home") {
  176. model.setValue ( strSrc + "[" + sendRow + "]/tempcol6",opener.model.getValue ( "/root/init/prcpfromdd" )); //시작일자
  177. model.setValue ( strSrc + "[" + sendRow + "]/tempcol7",opener.model.getValue ( "/root/init/prcptodd" )); //종료일자
  178. }
  179. model.setValue ( strSrc + "[" + sendRow + "]/prcpauthflag", opener.model.getValue ( "/root/init/prcpauthflag" )); //처방권한구분
  180. //수술예약번호 setting
  181. if( !isNull (opener.model.getValue ( "/root/operation/list/oprsrvno"))){
  182. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", opener.model.getValue ( "/root/operation/list/oprsrvno"));
  183. } else {
  184. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", "0" );
  185. }
  186. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  187. //품절약 체크
  188. if ( getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) {
  189. opener.javascript.fAltDrug ( sendRow, "1", strSrc );
  190. return false;
  191. }
  192. }
  193. var srcNodeList = opener.model.instances(0).selectNodes( "/root/paminfo" );
  194. if ( srcNodeList.length == 0 ){
  195. messageBox ( "환자정보가", "E014" );
  196. return false;
  197. }
  198. prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
  199. pid = opener.model.getValue ( pamInfoNode + "/pid" );
  200. indd = opener.model.getValue ( pamInfoNode + "/indd" );
  201. orddrid = opener.model.getValue ( pamInfoNode + "/medispclid" );
  202. cretno = opener.model.getValue ( pamInfoNode + "/cretno" );
  203. orddeptcd = opener.model.getValue ( pamInfoNode + "/orddeptcd" );
  204. //추가//
  205. if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
  206. prcpdd = opener.model.getValue ( "/root/init/prcpdd" ); //처방일
  207. prcpkindcd = opener.model.getValue ("/root/init/prcpkindcd"); //처방종류(정규,추가...) /root/init/prcpkindcd 는 약속
  208. }else{
  209. prcpdd = model.getValue ( strSrc + "[" + sendRow + "]/prcpdd" );
  210. prcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
  211. }
  212. choiordflag = opener.model.getValue ( pamInfoNode + "/specordyn" ); //선택진료여부
  213. if ( choiordflag == "Y" || choiordflag == "S" ) {
  214. choiordflag = "Y";
  215. } else {
  216. choiordflag = "N";
  217. }
  218. //마취기록화면에서 처방화면을 띄우면
  219. //마취처방일 경우 필수입력구분이 1이면 수술시간과, 수술구분을 넣어준다. 넣어지는 기준은 마취처방상세팝업과 동일하다.
  220. if ( opener.model.getValue ( "/root/anst/paramyn") == "Y" ) {
  221. if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
  222. if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpessninptflag" ) == "1" ) { // 필수입력구분이 1
  223. var earncls = model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" );
  224. if ( earncls != "04|01|00" && earncls != "05|01|00" ) { //마취구분
  225. model.setValue ( strSrc + "[" + sendRow + "]/opansflagcd", opener.model.getValue ( "/root/anst/opansflagcd" ));
  226. }
  227. model.setValue ( strSrc + "[" + sendRow + "]/ansttm", opener.model.getValue ( "/root/anst/ansttm" ));//마취시간
  228. model.setValue ( strSrc + "[" + sendRow + "]/clinccmtcnts", opener.model.getValue ( "/root/anst/anstfromdt" ) + "|" + opener.model.getValue ( "/root/anst/ansttodt" ));
  229. }
  230. }
  231. }
  232. } else {
  233. //가정간호일때 시작일,종료일 바꿔준다.
  234. usge = model.getValue ( "/root/usge" );
  235. if (usge == "home") {
  236. model.setValue ( strSrc + "[" + sendRow + "]/tempcol6",model.getValue ( "/root/init/prcpfromdd" )); //시작일자
  237. model.setValue ( strSrc + "[" + sendRow + "]/tempcol7",model.getValue ( "/root/init/prcptodd" )); //종료일자
  238. }
  239. model.setValue ( strSrc + "[" + sendRow + "]/prcpauthflag", model.getValue ( "/root/init/prcpauthflag" )); //처방권한구분
  240. //수술예약번호 setting
  241. if( !isNull (model.getValue ( "/root/operation/list/oprsrvno"))){
  242. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", model.getValue ( "/root/operation/list/oprsrvno"));
  243. } else {
  244. model.setValue ( strSrc + "[" + sendRow + "]/oprsrvno", "0" );
  245. }
  246. //// CP, 항암프로토콜일 경우는 클라이언트에서 품절약체크를 하지 않는다
  247. if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
  248. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) {
  249. //품절약 체크
  250. if ( getArrayData (drugmastspec, 0, 10, "^", "|" ) == "Y" ) {
  251. fAltDrug ( sendRow, "1", strSrc );
  252. return false;
  253. }
  254. //원무의 원내사유 체크
  255. }
  256. }
  257. ////분기조건 추가 끝
  258. var srcNodeList = model.instances(0).selectNodes( "/root/paminfo" );
  259. if ( srcNodeList.length == 0 ){
  260. messageBox ( "환자정보가", "E014" );
  261. return false;
  262. }
  263. prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  264. pid = model.getValue ( pamInfoNode + "/pid" );
  265. if ( prcpgenrflag == "O" ) {
  266. indd = model.getValue ( pamInfoNode + "/orddd" );
  267. orddrid = model.getValue ( pamInfoNode + "/orddrid" );
  268. } else {
  269. indd = model.getValue ( pamInfoNode + "/indd" );
  270. orddrid = model.getValue ( pamInfoNode + "/medispclid" );
  271. }
  272. cretno = model.getValue ( pamInfoNode + "/cretno" );
  273. orddeptcd = model.getValue ( pamInfoNode + "/orddeptcd" );
  274. //추가//
  275. if( prcpInptFlag != "05" && prcpInptFlag != "06" ){
  276. prcpdd = model.getValue ( "/root/init/prcpdd" ); //처방일
  277. prcpkindcd = model.getValue ("/root/init/prcpkindcd"); //처방종류(정규,추가...)
  278. }else{
  279. prcpdd = model.getValue ( strSrc + "[" + sendRow + "]/prcpdd" );
  280. prcpkindcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpkindcd" );
  281. }
  282. choiordflag = model.getValue ( pamInfoNode + "/specordyn" ); //선택진료여부
  283. if ( choiordflag != "Y" ) {
  284. choiordflag = "N";
  285. }
  286. //마취기록화면에서 처방화면을 띄우면
  287. //마취처방일 경우 필수입력구분이 1이면 수술시간과, 수술구분을 넣어준다. 넣어지는 기준은 마취처방상세팝업과 동일하다.
  288. if ( model.getValue ( "/root/anst/paramyn" ) == "Y" ) {
  289. if ( prcpclscd == "I2" || prcpclscd == "I4" ){ //마취
  290. if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpessninptflag" ) == "1" ) { // 필수입력구분이 1
  291. var earncls = model.getValue ( strSrc + "[" + sendRow + "]/tempcol2" );
  292. if ( earncls != "04|01|00" && earncls != "05|01|00" ) { //마취구분
  293. model.setValue ( strSrc + "[" + sendRow + "]/opansflagcd", model.getValue ( "/root/anst/opansflagcd" ));
  294. }
  295. model.setValue ( strSrc + "[" + sendRow + "]/ansttm", model.getValue ( "/root/anst/ansttm" ));//마취시간
  296. model.setValue ( strSrc + "[" + sendRow + "]/clinccmtcnts", model.getValue ( "/root/anst/anstfromdt" ) + "|" + model.getValue ( "/root/anst/ansttodt" ));
  297. }
  298. }
  299. }
  300. }
  301. model.setValue ( strSrc + "[" + sendRow + "]/prcphopedd",prcpdd); //처방희망일자
  302. //전처방 clear
  303. if ( prcpInptFlag == "01" ) {
  304. // 전처방 복사시 초기화해야 할 것 ( PAMPKSpec, PrcpKindCd 등은 처방 복사시 다시 setting 해줌 )
  305. model.setValue ( strSrc + "[" + sendRow + "]/rgstdt", "" ); //rgstdt: 등록일시
  306. model.setValue ( strSrc + "[" + sendRow + "]/rgstridnm", "" ); //rgstridnm: 등록자명
  307. model.setValue ( strSrc + "[" + sendRow + "]/tempprcpflag", "N" ); //tempprcpflag: 임시처방구분
  308. model.setValue ( strSrc + "[" + sendRow + "]/etcprcpresncd", "-" ); //etcprcpresncd: 응급의학관리료 사유 (코드정의서 M0012 참조), 수혈반납 및 폐기사유코드 (코드정의서 M0037, M0038 참조), 재활처방 마감일자
  309. model.setValue ( strSrc + "[" + sendRow + "]/ordreqlnkno", "0" ); //ordreqlnkno: 진료의뢰연결번호
  310. model.setValue ( strSrc + "[" + sendRow + "]/testreqlnkno", "0" ); //testreqlnkno: 검사의뢰연결번호
  311. model.setValue ( strSrc + "[" + sendRow + "]/prcplnkdd", "00000000" ); //prcplnkdd: 임시처방에 대한 연계 일자
  312. model.setValue ( strSrc + "[" + sendRow + "]/prcplnkno", "0" ); //prcplnkno: 임시처방에 대한 연계 번호
  313. model.setValue ( strSrc + "[" + sendRow + "]/prtlno", "0" ); //prtlno: 프로토콜SET에 대한 코드로 일련번호 형태로 관리
  314. // model.setValue ( strSrc + "[" + sendRow + "]/clincstdycd", "-" ); //clincstdycd: 처방에 적용된 임상과제 코드
  315. model.setValue ( strSrc + "[" + sendRow + "]/contprcpspec", "-" ); //contprcpspec: 연속처방내역
  316. model.setValue ( strSrc + "[" + sendRow + "]/etclnkspec", "-" ); //etclnkspec: 항암프로토콜번호|CP번호
  317. model.setValue ( strSrc + "[" + sendRow + "]/tempcol6", "" ); //전처방 화면 display clear
  318. model.setValue ( strSrc + "[" + sendRow + "]/tempcol7", "" ); //전처방 화면 display clear
  319. model.setValue ( strSrc + "[" + sendRow + "]/tempcol8", "" ); //전처방 화면 display clear
  320. model.setValue ( strSrc + "[" + sendRow + "]/tempcol9", "" ); //전처방 화면 display clear
  321. }
  322. //// CP,항암프로토콜일 경우 값 셋팅
  323. else if( prcpInptFlag == "05" ){
  324. //cp는 이미 인스턴스에 값이 들어있음
  325. if( model.getValue(strSrc + "[" + sendRow + "]/etclnkspec") == "I" )
  326. model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", etclnkspecValue_SMMMO00110 ); //CP처방 or 프로토콜처방 no
  327. }
  328. else if( prcpInptFlag == "06" ){
  329. //항암은 이미 인스턴스에 값이 들어있음
  330. model.makeValue ( strSrc + "[" + sendRow + "]/etclnkspec", etclnkspecValue_SMMMO00110 ); //CP처방 or 프로토콜처방 no
  331. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", "-" ); //종속처방
  332. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", "0" );//종속처방번호
  333. //model.makeValue ( strSrc + "[" + sendRow + "]/cpno", model.getValue ( strSrc + "[" + sendRow + "]/prtldg") ); //CpNo 에 프로토콜 차수 저장
  334. }
  335. //// 값 셋팅 분기 끝
  336. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", "-" ); //종속처방
  337. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", "0" );//종속처방번호
  338. if ( prcpclscd == "F2" && prcpgenrflag == "O") {
  339. model.setValue ( strSrc + "[" + sendRow + "]/etcprcpresncd", prcpdd ); //재활마감일
  340. } else if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ) { //약처방
  341. /****************************** 원내처방사유 SETTING ********************************/
  342. fHosinPrcpResncdSed ( objFlag, strSrc, sendRow );
  343. //AST 검사 체크
  344. var astyn = getArrayData ( drugmastspec, 0, 22, "^", "|" );
  345. if ( astyn == "Y" ) {
  346. model.setValue ( strSrc + "[" + sendRow + "]/asttestflag", "Y" );
  347. }
  348. }
  349. /********************** hsct 체크 -항암은 처리안함******************/
  350. //if ( hsctflag == "Y" ) {
  351. // model.setValue ( strSrc + "[" + sendRow + "]/hsctlnkno", model.getValue ( "/root/init/hsctlnkno" )); //HSCT
  352. // model.setValue ( strSrc + "[" + sendRow + "]/hscttempprcpflag", "Y" ); //HSCT
  353. //}
  354. if ( !isNull(inclprcpno) && inclprcpno != "0" ) { //종속처방 처리
  355. var prcpcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpcd" );
  356. //initsrch에서 가져온 종속처방 instance에 값이 있으면 종속처방 코드와 번호를 박아준다.
  357. var prcpsetcd = model.getValue ( strSrc + "[" + sendRow + "]/prcpsetcd" );
  358. var inclprcpcd = model.getValue ( "/root/initsrch/inclprcpcnts[snglcd='" + prcpcd + "' and calcscorcdgrup='" + prcpsetcd + "']/inclprcpcd" );
  359. // var inclprcpcd = model.getValue ( "/root/initsrch/inclprcpcnts[snglcd='" + prcpcd + "']/inclprcpcd" );
  360. var calcscorcdgrup = "";
  361. if ( isNull(inclprcpcd)) {
  362. //본체에도 코드를 박아준다.
  363. calcscorcdgrup = model.getValue ( "/root/initsrch/inclprcpcnts[calcscorcdgrup='" + prcpcd + "']/inclprcpcd" ); // GROUP 처방
  364. } else {
  365. if ( prcpgenrflag == "O" ) {
  366. //외래일경우 약, 주사 에 원내처방사유 검사 수술처리에 사용
  367. if ( prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6" ){
  368. model.setValue ( strSrc + "[" + sendRow + "]/hosinhosoutflag", "I" );//원내
  369. model.setValue ( strSrc + "[" + sendRow + "]/hosinprcpresncd", "55" );//원내처방사유(원내처방사유 검사 수술처리에 사용)
  370. }
  371. // model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );//선처치여부
  372. }
  373. }
  374. if ( !isNull(inclprcpcd) || !isNull(calcscorcdgrup)) {
  375. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpno", inclprcpno ); //종속처방번호
  376. if ( isNull(inclprcpcd)){
  377. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", calcscorcdgrup ); //종속처방
  378. } else {
  379. model.setValue ( strSrc + "[" + sendRow + "]/inclprcpcd", inclprcpcd ); //종속처방
  380. }
  381. model.setValue ( "/root/init/inclprcpno", inclprcpno );
  382. var remainder = inclprcpno%2;
  383. if ( objFlag == "child" ){
  384. if ( remainder == 1 ) {
  385. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#eaeaea" );
  386. } else {
  387. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#ffffcc" );
  388. }
  389. } else {
  390. if ( remainder == 1 ) {
  391. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#eaeaea" );
  392. } else {
  393. model.setValue ( strSrc + "[" + sendRow + "]/tempcol10", "#ffffcc" );
  394. }
  395. }
  396. }
  397. }
  398. model.setValue ( strSrc + "[" + sendRow + "]/prcpgenrflag", prcpgenrflag ); //처방발생구분
  399. model.setValue ( strSrc + "[" + sendRow + "]/prcpkindcd", prcpkindcd ); //처방종류
  400. model.setValue ( strSrc + "[" + sendRow + "]/pampkspec", pid + "|" + indd + "|" + cretno + "|" + orddeptcd + "|" + orddrid ); //pampkspec : 등록번호|진료일자|생성번호|진료과|담당의 // 원무PK내역
  401. model.setValue ( strSrc + "[" + sendRow + "]/prcppkspec", prcpdd + "|0|0|" + getUserInfo("dutplceinstcd")); //처방키: 처방일자|처방번호|처방이력번호|기관코드
  402. model.setValue ( strSrc + "[" + sendRow + "]/choiordflag", choiordflag );
  403. if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd").substr (0,1) == "X" ) {
  404. model.setValue ( strSrc + "[" + sendRow + "]/clincstdyflag", "Y" ); //
  405. }
  406. //서버에서 처리
  407. //if ( !isNull(model.getValue ( strSrc + "[" + sendRow + "]/clincstdycd")) && model.getValue ( strSrc + "[" + sendRow + "]/clincstdycd") != "-") {
  408. // model.setValue ( strSrc + "[" + sendRow + "]/clincstdyflag", "Y" );
  409. //}
  410. /******************** 선처치 처리 **********************/
  411. var iFind = -1;
  412. iFind = model.getValue ( "/root/initsrch/prcpetccnts/precureprcpcd" ).search( model.getValue ( strSrc + "[" + sendRow + "]/prcpcd"));
  413. if ( iFind >= 0) {
  414. model.setValue ( strSrc + "[" + sendRow + "]/precureprcpflag", "Y" );
  415. }
  416. //if ( model.getValue ( strSrc + "[" + sendRow + "]/prcpflag") != "2" ) { //지시처방이 아니면 이름을 다시 만들어 준다.
  417. // makePrcpNm( "/root/main/prcp/prcplist", sendRow );
  418. //}
  419. return true;
  420. }
  421. /**
  422. * @group :
  423. * @ver : 2007.09
  424. * @by :
  425. * @---------------------------------------------------
  426. * @type : function
  427. * @access : public
  428. * @desc : 미수행처방/DC처방 저장 및 CP/항암프로토콜처방 저장
  429. * @param : prcpflag: 처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  430. * @return : true, false
  431. * @---------------------------------------------------
  432. */
  433. function fPrcpDCSave_CP(prcpflag) {
  434. // 인스턴스 중복 이름 제거(중요!-이훈재; 인스턴스 이름이 같은게 있어서 제거 안하면 밀려서 저장됨)
  435. model.removeNodeset ( "/root/send/data/orderprcpdata" );
  436. ////var prcpflag = "0";
  437. //20090406 마정민 추가
  438. model.removeNodeset ( "/root/send/data/prcplist" );
  439. //// CP, 항암프로토콜에서 호출하지 않은 경우는 DC/미수행처방에서 호출한 경우
  440. if(prcpflag != "6" && prcpflag != "7") {
  441. model.removeNodeset ( "/root/dcprcp/prcplist" );
  442. prcpflag = "0"; //DC일 경우, 의사처방
  443. }
  444. ////값셋팅 끝
  445. var savekindflag = "0";
  446. ////var saveNode = "/root/dcprcp/prcplist";
  447. ////saveNode 셋팅 분기
  448. if( prcpflag == "0" ){
  449. var saveNode = "/root/dcprcp/prcplist";
  450. }else{
  451. var saveNode = "/root/main/prcp/prcplist";
  452. }
  453. ////saveNode 셋팅 끝
  454. var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  455. ////저장데이터 조회 분기
  456. if( prcpflag == "0" ){
  457. var srchLength = model.instances(0).selectNodes( "/root/prcpsrch/prcplist" ).length;
  458. var cnt = 0;
  459. for ( var i=1; i <= srchLength; i++ ) {
  460. if ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/status" ) == "C" ) {
  461. cnt++;
  462. appendChildPrcp ( "/root/prcpsrch/prcplist[" + i + "]", "/root/dcprcp", "main" );
  463. }
  464. }
  465. if ( cnt == 0 ) {
  466. messageBox ( "반환할 처방이", "I004" );
  467. return;
  468. }
  469. }
  470. //저장구분정보(saveFlagInfo)
  471. model.setValue ( "/root/save/saveflaginfo/savedataflag", 0 ); //저장자료구분 0:진단 및 처방, 1:진단, 2:처방, 4:임시저장
  472. model.setValue ( "/root/save/saveflaginfo/saveflag", prcpgenrflag ); //저장구분 O:외래, I:입원, E:응급, S:건진
  473. model.setValue ( "/root/save/saveflaginfo/prcpflag", "0" ); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  474. model.setValue ( "/root/save/saveflaginfo/inptflag", "0" ); //입력구분 0:의사, 1:간호사(간호에서 사용), 3:지원부서
  475. model.setValue ( "/root/save/saveflaginfo/deptcd", getUserInfo("dutplcecd")); //부서코드
  476. model.setValue ( "/root/save/saveflaginfo/deptnm", getUserInfo("dutplcenm")); //부서명
  477. model.setValue ( "/root/save/saveflaginfo/userid", getUserInfo("userid")); //사용자ID
  478. model.setValue ( "/root/save/saveflaginfo/usernm", getUserInfo("usernm")); //사용자명
  479. model.setValue ( "/root/save/saveflaginfo/signyn", signyn );
  480. model.setValue ( "/root/save/saveflaginfo/cncrsaveflag", "A" );
  481. if( prcpflag == "0" ){
  482. model.setValue ( "/root/save/saveflaginfo/prcpdd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row + " ]/prcpdd" ));
  483. }else{
  484. model.setValue ( "/root/save/saveflaginfo/prcpdd", getCurrentDate() );
  485. }
  486. var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/save/saveflaginfo" );
  487. model.setValue ( "/root/send/cond1", getNodeListCSV(saveFlagInfoNodeList));
  488. //저장등록정보(saveRgstInfo)
  489. var saveRgstInfo = model.instances(0).selectNodes( "/root/paminfo/list" );
  490. model.setValue ( "/root/send/cond2", getNodeListCSV(saveRgstInfo));
  491. //저장처방정보(savePrcpInfo)
  492. model.copyNode ( "/root/send/cond3", "/root/main/prcp" );
  493. //setValue 후에 prcpdc 에 옮겨 놓은 prcplist를 클리어 한다.
  494. model.removeNodeset ( "/root/prcpdc/prcplist" );
  495. //저장진단정보(saveDiagInfo)
  496. var saveDiagInfo = model.instances(0).selectNodes( "/root/main/diaginfo/diagcdlist" );
  497. model.setValue ( "/root/send/cond4", getNodeListCSV(saveDiagInfo));
  498. ////저장데이터 조회 분기
  499. if( prcpflag == "0" ){
  500. if ( !submit ( "TRMMO00104", false )){
  501. messageBox("해당 프로토콜 마스터의 처방 체크중 문제가 발견되었습니다.", "E999", "");
  502. model.resetInstanceNode ( "/root/send" );
  503. model.refresh();
  504. return false;
  505. }
  506. }else{
  507. if ( !submit ( "TRADB01031", false )){ //TRMMP00806
  508. model.refresh();
  509. return false;
  510. }
  511. //실패시, 인스턴스 값을 확인하기 위해서 값을 copy
  512. model.makeNode("/root/result_copy");
  513. copyNodesetType("/root/result_copy", "/root/result", "replace", model, model);
  514. if(prcpflag == "6") {
  515. if( instance1.selectSingleNode("/root/result/savedrprcplist[status='U' or status='D']") ){
  516. var DetlNodeList = instance1.selectNodes("/root/result/savedrprcplist[status='U' or status='D']");
  517. for(var i=0; i<DetlNodeList.length; i++){
  518. var node = DetlNodeList.item(i);
  519. var prcpnoNode = node.selectSingleNode("prcpno");
  520. var etcLnkSpecNode = node.selectSingleNode("etclnkspec");
  521. var tmpstatNode = node.selectSingleNode("tmpstat");
  522. var etcLnkSpecText = etcLnkSpecNode.text;
  523. // 수정하는 경우, 프로토콜처방 테이블의 키값을 가져가야 함
  524. if(prcpnoNode) {model.setValue(prcpnoNode, etcLnkSpecText.split("|")[2]);}
  525. if(etcLnkSpecNode) {model.setValue(etcLnkSpecNode, etcLnkSpecText.split("|")[0] + "|" + etcLnkSpecText.split("|")[1]);}
  526. if(etcLnkSpecNode) {model.setValue(etcLnkSpecNode, etcLnkSpecText.split("|")[0] + "|" + etcLnkSpecText.split("|")[1]);}
  527. }
  528. }
  529. }
  530. }
  531. ////저장데이터 조회 분기 끝
  532. fClearSaveInstance();
  533. model.removeNodeset ( "/root/send/reqdata" ); // 인스턴스명 중복을 피하기 위해, reqdata 삭제
  534. var ErrExistYN = "N"; //오류처방 리턴 여부 (CP일 경우, 오류처방이 있어도 제외한 처방데이터를 함께 리턴하므로 오류메세지 팝업은 skip)
  535. var prcpErrList = model.instances(0).selectNodes( "/root/result/prcperrlist[flag='1']" );////오류메세지 팝업 분기
  536. if ( prcpErrList != null && prcpErrList.length > 0 ) {
  537. if ( !isNull(model.getValue ( "/root/result/prcperrlist/prcpcd"))){
  538. var xpt = window.screenleft + 100;
  539. var ypt = window.screenTop + 50;
  540. var coord = getRelativeCoordinate ( xpt, ypt );
  541. var mon = coord[0];
  542. xpt = coord[1];
  543. ypt = coord[2];
  544. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false ); //오류팝업
  545. model.removeNodeset("/root/result/prcperrlist");
  546. }
  547. messageBox("해당 프로토콜 마스터를 수정하거나 처방오류를 수정하셔야 처방 가능합니다.", "E999", "");
  548. window.close();
  549. return false;
  550. }
  551. //2013-11-16 엄영만 추가 : 경북대용 DUR 임부금기 체크중 falg값이 4인 경우 경고메시지 띄우고 처방저장 가능
  552. var prcpInfoList = model.instances(0).selectNodes( "/root/result/prcperrlist[flag='4']" );//// DUR 정보메세지 팝업 분기
  553. if ( prcpInfoList != null && prcpInfoList.length > 0 ) {
  554. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcperrlist");
  555. var flag = "";
  556. var prcpcd = "";
  557. var prcpnm = "";
  558. var prcperr = "";
  559. var sAlertMsg = "";
  560. for(var j =1; j <= srcNodeList.length; j++ ) {
  561. flag = model.getValue ( "/root/result/prcperrlist[" + j + "]/flag" );
  562. if(flag == "4") {
  563. prcpcd = model.getValue ( "/root/result/prcperrlist[" + j + "]/prcpcd" );
  564. prcpnm = model.getValue ( "/root/result/prcperrlist[" + j + "]/prcpnm" );
  565. prcperr = model.getValue ( "/root/result/prcperrlist[" + j + "]/prcperr" );
  566. if(sAlertMsg == "") {
  567. sAlertMsg = "[의약품 처방지원 서비스(DUR) 정보]\n 아래의 처방은 한번 더 확인 하시기 바랍니다.!";
  568. }
  569. sAlertMsg = sAlertMsg + "\n\n" + prcpnm + "[" + prcpcd + "]" + "은(는) " + prcperr;
  570. }
  571. }
  572. if (sAlertMsg != "") {
  573. messageBox(sAlertMsg, "I999");
  574. model.removeNodeset("/root/result/prcperrlist");
  575. }
  576. }
  577. // 제한항생제처방 체크 => 미완성으로 저장 할 것
  578. // 보험제한처방 처리 => 미완성으로 저장 할 것
  579. // 처방중복체크 skip
  580. // 병기분류 skip
  581. if ( signyn == "Y" ) {
  582. var signbfcnts = model.getValue ( "/root/result/signprcplist/signprcp_signbfcnts" );
  583. var setnode = "/root/result/signprcplist/signprcp_signaftcnts";
  584. var signid = getUserInfo ("userid");
  585. var signopt = false;
  586. if ( prcpgenrflag != "O" ) {
  587. signopt = true;
  588. }
  589. ////인증 구분자 추가
  590. if( prcpflag == "6" ){ //CP 일 때, 인증저장 2번 뜨는 것을 막는다
  591. if( questionYN_SMMMO00110 == "Y" ){
  592. var signid = getUserInfo ("userid");
  593. signopt = false;
  594. }
  595. }////인증 구분자 추가 끝
  596. //처방인증
  597. var v_stext = fSaveSign ( signbfcnts, signid, signopt, setnode );
  598. if ( v_stext != "N" ) {
  599. if (isNull( v_stext )) {
  600. model.setValue("/root/send/data/orderdata/cpgappno", "");
  601. model.refresh();
  602. button5.disabled=false;
  603. switch1.disabled=false;
  604. return false;
  605. }
  606. var saveSignPrcpInfo = model.instances(0).selectNodes( "/root/result/signprcplist" );
  607. //model.setValue ( "/root/send/cond2", getNodeListCSV(saveSignPrcpInfo));
  608. fAppendSaveNode( "/root/send/cond2", "/root/result/signprcplist" ); //의사처방데이터
  609. signopt = false; //진단에서 또 안띄우기 위해서 false로 수정
  610. } else {
  611. model.setValue("/root/send/data/orderdata/cpgappno", "");
  612. model.refresh();
  613. button5.disabled=false;
  614. switch1.disabled=false;
  615. return;
  616. }
  617. signbfcnts = model.getValue ( "/root/result/signdiaglist/signbfcnts" );
  618. setnode = "/root/result/signdiaglist/signaftcnts";
  619. //진단인증
  620. v_stext = fSaveSign ( signbfcnts, signid, signopt, setnode );
  621. if ( v_stext != "N") {
  622. if (isNull(v_stext)) {
  623. button5.disabled=false;
  624. switch1.disabled=false;
  625. return false;
  626. }
  627. var saveSignDiagInfo = model.instances(0).selectNodes( "/root/result/signdiaglist" );
  628. //model.setValue ( "/root/send/cond2", getNodeListCSV(saveSignDiagInfo));
  629. fAppendSaveNode( "/root/send/cond2", "/root/result/signdiaglist" ); //의사처방데이터
  630. }
  631. }
  632. fAppendSaveNode( "/root/send/cond2", "/root/result/savedrprcplist" ); //의사처방데이터
  633. fAppendSaveNode( "/root/send/cond2", "/root/result/saveexecprcplist" ); //실시처방 저장데이터
  634. fAppendSaveNode( "/root/send/cond2", "/root/result/savediaglist" ); //진단저장 저장데이터
  635. fAppendSaveNode( "/root/send/cond2", "/root/result/savepamlist" ); //원무정보 저장데이터
  636. fAppendSaveNode( "/root/send/cond2", "/root/result/savematrprcplist" ); //재료처방정보 저장데이터
  637. if ( prcpgenrflag != "O" ) {
  638. //퇴원후 외래처방 저장 setting
  639. fAppendSaveNode( "/root/send/cond2", "/root/result/dschflaginfo" );
  640. fAppendSaveNode( "/root/send/cond2", "/root/result/dschpamlist" );
  641. fAppendSaveNode( "/root/send/cond2", "/root/result/dschdrprcplist" );
  642. fAppendSaveNode( "/root/send/cond2", "/root/result/dschexecprcplist" );
  643. fAppendSaveNode( "/root/send/cond2", "/root/result/dschmatrprcplist" );
  644. }
  645. if( prcpflag == "0" ){
  646. if ( !submit ( "TXMMO00103", false )) {
  647. model.removeNodeSet ( "/root/result");
  648. model.resetInstanceNode ( "/root/send" );
  649. model.refresh();
  650. return false;
  651. }
  652. }else{
  653. //openLoadingBar("저장중입니다."); //로딩 메세지 open
  654. //20090406 마정민 추가 인증서 띄우고 나서 setting하는 것으로 분산처리
  655. nodeList = instance1.selectNodes("/root/main/prtlprcpprelist/prcplist");
  656. rCSV = getNodeListCSV(nodeList);
  657. model.makeNode ( "/root/send/data/prcplist" );
  658. model.setValue("/root/send/data/prcplist",rCSV);
  659. if ( !submit( "TXADB01025", false )) { //TXMMP00803
  660. //messageBox("처방 저장을 ", "E009");
  661. model.removeNodeSet ( "/root/result");
  662. endSavePrcpYN_SMMMO00110 = "Y";
  663. return false;
  664. }
  665. //closeLoadingBar(); //loading 메세지 닫기
  666. var xpt = window.screenleft + 100;
  667. var ypt = window.screenTop + 50;
  668. if ( ErrExistYN == "Y" ) {
  669. if ( !isNull(model.getValue ( "/root/result/prcperrlist/prcpcd"))){
  670. //미완성 처방 조회를 위한 에러체크 결과 조회
  671. if(prtlFlag_SMMMO00110 == "01" || prtlFlag_SMMMO00110 == "02") {
  672. copyNodeListType("/root/main/invalprcplist", "/root/result/saveinvaliprcplist", "after", model, model);
  673. grd_errprcplist.refresh();
  674. }
  675. var coord = getRelativeCoordinate ( xpt, ypt );
  676. var mon = coord[0];
  677. xpt = coord[1];
  678. ypt = coord[2];
  679. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false ); //오류팝업
  680. model.removeNodeset("/root/result/prcperrlist");
  681. model.removeNodeset("/root/result");
  682. model.makeNode("/root/result");
  683. return false;
  684. }
  685. //questionYN_SMMMO00110 = "N"; //초기화
  686. }
  687. }
  688. // 입원일 때 약집계 호출 => skip
  689. // 응급일 때 진료지원 예약모듈 호출 => skip
  690. // 제한항생제 저장 => skip
  691. // OCR 자동출력 ocrcalcscorcd 값은 MMO001에 global로 선언. 값은 fPrcpSaveChkaft에서 체크한다. => skip
  692. // 처방에 대한 중증진료, 산정특례, 법정전염병 처리 => skip
  693. if( prcpflag != "0" ){
  694. //CP, 항암프로토콜이면 return 한다
  695. return true;
  696. }
  697. model.setValue ( "/root/send/pid" , model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/pid" ));
  698. model.setValue ( "/root/send/orddd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/orddd" ));
  699. model.setValue ( "/root/send/cretno", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/cretno" ));
  700. model.setValue ( "/root/send/instcd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/instcd" ));
  701. model.setValue ( "/root/send/ioflag", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/ordtype" ));
  702. model.refresh();
  703. return true;
  704. }
  705. function fPrcpDCSave_Diag(prcpflag) {
  706. // 인스턴스 중복 이름 제거(중요!-이훈재; 인스턴스 이름이 같은게 있어서 제거 안하면 밀려서 저장됨)
  707. model.removeNodeset ( "/root/send/data/orderprcpdata" );
  708. ////var prcpflag = "0";
  709. //// CP, 항암프로토콜에서 호출하지 않은 경우는 DC/미수행처방에서 호출한 경우
  710. if(prcpflag != "6" && prcpflag != "7") {
  711. model.removeNodeset ( "/root/dcprcp/prcplist" );
  712. prcpflag = "0"; //DC일 경우, 의사처방
  713. }
  714. ////값셋팅 끝
  715. var savekindflag = "0";
  716. ////var saveNode = "/root/dcprcp/prcplist";
  717. ////saveNode 셋팅 분기
  718. if( prcpflag == "0" ){
  719. var saveNode = "/root/dcprcp/prcplist";
  720. }else{
  721. var saveNode = "/root/main/prcp/prcplist";
  722. }
  723. ////saveNode 셋팅 끝
  724. var prcpgenrflag = model.getValue ( "/root/patflag/list/prcpgenrflag" );
  725. ////저장데이터 조회 분기
  726. if( prcpflag == "0" ){
  727. var srchLength = model.instances(0).selectNodes( "/root/prcpsrch/prcplist" ).length;
  728. var cnt = 0;
  729. for ( var i=1; i <= srchLength; i++ ) {
  730. if ( model.getValue ( "/root/prcpsrch/prcplist[" + i + "]/status" ) == "C" ) {
  731. cnt++;
  732. appendChildPrcp ( "/root/prcpsrch/prcplist[" + i + "]", "/root/dcprcp", "main" );
  733. }
  734. }
  735. if ( cnt == 0 ) {
  736. messageBox ( "반환할 처방이", "I004" );
  737. return;
  738. }
  739. }
  740. //저장구분정보(saveFlagInfo)
  741. model.setValue ( "/root/save/saveflaginfo/savedataflag", 1 ); //저장자료구분 0:진단 및 처방, 1:진단, 2:처방, 4:임시저장
  742. model.setValue ( "/root/save/saveflaginfo/saveflag" , "O" ); //저장구분 O:외래, I:입원, E:응급, S:건진
  743. model.setValue ( "/root/save/saveflaginfo/prcpflag" , "0" ); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  744. model.setValue ( "/root/save/saveflaginfo/inptflag" , "0" ); //입력구분 0:의사, 1:간호사(간호에서 사용), 3:지원부서
  745. model.setValue ( "/root/save/saveflaginfo/deptcd" , getUserInfo("dutplcecd")); //부서코드
  746. model.setValue ( "/root/save/saveflaginfo/deptnm" , getUserInfo("dutplcenm")); //부서명
  747. model.setValue ( "/root/save/saveflaginfo/userid" , getUserInfo("userid")); //사용자ID
  748. model.setValue ( "/root/save/saveflaginfo/usernm" , getUserInfo("usernm")); //사용자명
  749. model.setValue ( "/root/save/saveflaginfo/signyn" , signyn );
  750. model.setValue ( "/root/save/saveflaginfo/cncrsaveflag", "A" );
  751. if( prcpflag == "0" ){
  752. model.setValue ( "/root/save/saveflaginfo/prcpdd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row + " ]/prcpdd" ));
  753. }else{
  754. model.setValue ( "/root/save/saveflaginfo/prcpdd", getCurrentDate() );
  755. }
  756. var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/save/saveflaginfo" );
  757. model.setValue ( "/root/send/cond1", getNodeListCSV(saveFlagInfoNodeList));
  758. //저장등록정보(saveRgstInfo)
  759. var saveRgstInfo = model.instances(0).selectNodes( "/root/paminfo/list" );
  760. model.setValue ( "/root/send/cond2", getNodeListCSV(saveRgstInfo));
  761. //20090409 마정민주석처리. 진단저장만 한다.
  762. //저장처방정보(savePrcpInfo)
  763. /*var savePrcpInfo = model.instances(0).selectNodes( saveNode );
  764. var savePrcpInfoCVS = getNodeListCSV(savePrcpInfo);
  765. // 노드셋 구성 변경 (2008.02.10)
  766. model.setValue ( "/root/send/cond3", savePrcpInfoCVS);
  767. //model.copyNode ( "/root/send/cond3", "/root/main/prcp" );
  768. //fAppendSaveNode( "/root/send/cond3", "/root/prcper/prcplist" );
  769. //fAppendSaveNode( "/root/send/cond3", "/root/prcpdc/prcplist" );
  770. */
  771. /*
  772. if ( prcpchkflag == "drugdc" ) { //약/주사 D/C 요청 중에 반납요청된 것은 D/C 처리한다.( 저장로직에서 사용 )
  773. model.setValue ( "/root/send/cond14", getNodeListCSV (model.instances(0).selectNodes( "/root/prcpdc/prcplist" )));
  774. }
  775. */
  776. //setValue 후에 prcpdc 에 옮겨 놓은 prcplist를 클리어 한다.
  777. model.removeNodeset ( "/root/prcpdc/prcplist" );
  778. //저장진단정보(saveDiagInfo)
  779. var saveDiagInfo = model.instances(0).selectNodes( "/root/main/diaginfo/diagcdlist" );
  780. model.setValue ( "/root/send/cond4", getNodeListCSV(saveDiagInfo));
  781. ////저장데이터 조회 분기
  782. if( prcpflag == "0" ){
  783. if ( !submit ( "TRMMO00104", false )){
  784. messageBox("해당 프로토콜 마스터의 처방 체크중 문제가 발견되었습니다.", "E999", "");
  785. model.resetInstanceNode ( "/root/send" );
  786. model.refresh();
  787. return false;
  788. }
  789. }else{
  790. //alert("TRADB01031시작");
  791. if ( !submit ( "TRADB01031", false )){ //TRMMP00806
  792. model.refresh();
  793. return false;
  794. }
  795. //alert("TRADB01031끝");
  796. //실패시, 인스턴스 값을 확인하기 위해서 값을 copy
  797. //20090406 마정민 주석처리
  798. /*model.makeNode("/root/result_copy");
  799. copyNodesetType("/root/result_copy", "/root/result", "replace", model, model);
  800. if(prcpflag == "6") {
  801. if( instance1.selectSingleNode("/root/result/savedrprcplist[status='U' or status='D']") ){
  802. var DetlNodeList = instance1.selectNodes("/root/result/savedrprcplist[status='U' or status='D']");
  803. for(var i=0; i<DetlNodeList.length; i++){
  804. var node = DetlNodeList.item(i);
  805. var prcpnoNode = node.selectSingleNode("prcpno");
  806. var etcLnkSpecNode = node.selectSingleNode("etclnkspec");
  807. var tmpstatNode = node.selectSingleNode("tmpstat");
  808. var etcLnkSpecText = etcLnkSpecNode.text;
  809. // 수정하는 경우, 프로토콜처방 테이블의 키값을 가져가야 함
  810. if(prcpnoNode) {model.setValue(prcpnoNode, etcLnkSpecText.split("|")[2]);}
  811. if(etcLnkSpecNode) {model.setValue(etcLnkSpecNode, etcLnkSpecText.split("|")[0] + "|" + etcLnkSpecText.split("|")[1]);}
  812. if(etcLnkSpecNode) {model.setValue(etcLnkSpecNode, etcLnkSpecText.split("|")[0] + "|" + etcLnkSpecText.split("|")[1]);}
  813. }
  814. }
  815. }*/
  816. }
  817. ////저장데이터 조회 분기 끝
  818. // 약품분할 추가 (2008.02.10) => skip ??
  819. /*
  820. var divPrcpInfo = model.instances(0).selectNodes( "/root/result/prcplist" );
  821. if ( divPrcpInfo.length > 0 ) { // 용량분할, 저함량
  822. if ( !isNull(model.getValue ( "/root/result/prcplist/prcpcd"))){
  823. xpt = window.screenleft + 100;
  824. ypt = window.screenTop + 50;
  825. coord = getRelativeCoordinate ( xpt, ypt );
  826. mon = coord[0];
  827. xpt = coord[1];
  828. ypt = coord[2];
  829. modal ( "SPADB62400", mon, xpt, ypt, "SPADB62400", "/root/result", "/root/main/prcp", "", false ); //오류팝업
  830. model.refresh();
  831. model.recalculate();
  832. fClearSaveInstance();
  833. }
  834. fPrcpSave( "", "", "", "N" );
  835. return false;
  836. }
  837. */
  838. fClearSaveInstance();
  839. // 인스턴스명 중복을 피하기 위해, reqdata 삭제
  840. model.removeNodeset ( "/root/send/reqdata" );
  841. var ErrExistYN = "N"; //오류처방 리턴 여부 (CP일 경우, 오류처방이 있어도 제외한 처방데이터를 함께 리턴하므로 오류메세지 팝업은 skip)
  842. ////오류메세지 팝업 분기
  843. var prcpErrList = model.instances(0).selectNodes( "/root/result/prcperrlist" );
  844. //if( prcpflag == "0" ){
  845. if ( prcpErrList.length > 0 ) {
  846. if ( !isNull(model.getValue ( "/root/result/prcperrlist/prcpcd"))){
  847. var xpt = window.screenleft + 100;
  848. var ypt = window.screenTop + 50;
  849. var coord = getRelativeCoordinate ( xpt, ypt );
  850. var mon = coord[0];
  851. xpt = coord[1];
  852. ypt = coord[2];
  853. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false ); //오류팝업
  854. model.removeNodeset("/root/result/prcperrlist");
  855. }
  856. messageBox("해당 프로토콜 마스터를 수정하거나 처방오류를 수정하셔야 처방 가능합니다.", "E999", "");
  857. window.close();
  858. return false;
  859. }
  860. //}else{
  861. // if ( prcpErrList.length > 0 ) {
  862. // ErrExistYN = "Y";
  863. // //var saveInvaliPrcpList = model.instances(0).selectNodes( "/root/result/saveinvaliprcplist" ); //에러가 존재하여 미완성처방으로 저장될 데이터
  864. // //model.makeValue("/root/send/errprcplist", getNodeListCSV(saveInvaliPrcpList));
  865. // //2008.02.10 수정
  866. // model.makeNode("/root/send/saveinvaliprcplist");
  867. // fAppendSaveNode ( "/root/send/saveinvaliprcplist", "/root/result/saveinvaliprcplist" );
  868. // }
  869. //}
  870. // 제한항생제처방 체크 => 미완성으로 저장 할 것
  871. // 보험제한처방 처리 => 미완성으로 저장 할 것
  872. // 처방중복체크 skip
  873. // 병기분류 skip
  874. if ( signyn == "Y" ) {
  875. var signbfcnts = model.getValue ( "/root/result/signprcplist/signprcp_signbfcnts" );
  876. var setnode = "/root/result/signprcplist/signprcp_signaftcnts";
  877. // var signid = "00000001";
  878. var signid = getUserInfo ("userid");
  879. var signopt = false;
  880. if ( prcpgenrflag != "O" ) {
  881. signopt = true;
  882. }
  883. ////인증 구분자 추가
  884. if( prcpflag == "6" ){ //CP 일 때, 인증저장 2번 뜨는 것을 막는다
  885. if( questionYN_SMMMO00110 == "Y" ){
  886. var signid = getUserInfo ("userid");
  887. signopt = false;
  888. }
  889. }
  890. ////인증 구분자 추가 끝
  891. //처방인증
  892. //var v_stext = fSaveSign ( signbfcnts, signid, signopt, setnode );
  893. //if ( v_stext != "N" ) {
  894. // if (isNull( v_stext )) {
  895. // model.setValue("/root/send/data/orderdata/cpgappno", "");
  896. // model.refresh();
  897. // button5.disabled=false;
  898. // switch1.disabled=false;
  899. // return false;
  900. // }
  901. var saveSignPrcpInfo = model.instances(0).selectNodes( "/root/result/signprcplist" );
  902. //model.setValue ( "/root/send/cond2", getNodeListCSV(saveSignPrcpInfo));
  903. fAppendSaveNode( "/root/send/cond2", "/root/result/signprcplist" ); //의사처방데이터
  904. signopt = false; //진단에서 또 안띄우기 위해서 false로 수정
  905. //} else {
  906. // model.setValue("/root/send/data/orderdata/cpgappno", "");
  907. // model.refresh();
  908. // button5.disabled=false;
  909. // switch1.disabled=false;
  910. // return;
  911. // }
  912. signbfcnts = model.getValue ( "/root/result/signdiaglist/signbfcnts" );
  913. setnode = "/root/result/signdiaglist/signaftcnts";
  914. //진단인증
  915. v_stext = fSaveSign ( signbfcnts, signid, signopt, setnode );
  916. if ( v_stext != "N") {
  917. if (isNull(v_stext)) {
  918. button5.disabled=false;
  919. switch1.disabled=false;
  920. return false;
  921. }
  922. var saveSignDiagInfo = model.instances(0).selectNodes( "/root/result/signdiaglist" );
  923. //model.setValue ( "/root/send/cond2", getNodeListCSV(saveSignDiagInfo));
  924. fAppendSaveNode( "/root/send/cond2", "/root/result/signdiaglist" ); //의사처방데이터
  925. }
  926. }
  927. /*
  928. var saveDrPrcpList = model.instances(0).selectNodes( "/root/result/savedrprcplist" );
  929. model.setValue ( "/root/send/cond2", getNodeListCSV(saveDrPrcpList));
  930. var saveExecPrcpList = model.instances(0).selectNodes( "/root/result/saveexecprcplist"); //실시처방 저장데이터
  931. model.setValue ( "/root/send/cond3", getNodeListCSV(saveExecPrcpList));
  932. var saveDiagList = model.instances(0).selectNodes( "/root/result/savediaglist"); //진단저장 저장데이터
  933. model.setValue ( "/root/send/cond4", getNodeListCSV(saveDiagList));
  934. var saveRgstInfo = model.instances(0).selectNodes( "/root/result/savepamlist" );
  935. model.setValue ( "/root/send/cond5", getNodeListCSV(saveRgstInfo));
  936. var saveMatrPrcpList = model.instances(0).selectNodes( "/root/result/savematrprcplist" ); //재료처방 정보
  937. model.setValue ( "/root/send/cond8", getNodeListCSV(saveMatrPrcpList));
  938. var dschflaginfo = model.instances(0).selectNodes( "/root/result/dschflaginfo" );
  939. model.setValue ( "/root/send/cond9", getNodeListCSV(dschflaginfo));
  940. var dschpamlist = model.instances(0).selectNodes( "/root/result/dschpamlist" );
  941. model.setValue ( "/root/send/cond10", getNodeListCSV(dschpamlist));
  942. var dschdrprcplist = model.instances(0).selectNodes( "/root/result/dschdrprcplist" );
  943. model.setValue ( "/root/send/cond11", getNodeListCSV(dschdrprcplist));
  944. var dschexecprcplist = model.instances(0).selectNodes( "/root/result/dschexecprcplist" );
  945. model.setValue ( "/root/send/cond12", getNodeListCSV(dschexecprcplist));
  946. var dschmatrprcplist = model.instances(0).selectNodes( "/root/result/dschmatrprcplist" );
  947. model.setValue ( "/root/send/cond13", getNodeListCSV(dschmatrprcplist));
  948. */
  949. fAppendSaveNode( "/root/send/cond2", "/root/result/savedrprcplist" ); //의사처방데이터
  950. fAppendSaveNode( "/root/send/cond2", "/root/result/saveexecprcplist" ); //실시처방 저장데이터
  951. fAppendSaveNode( "/root/send/cond2", "/root/result/savediaglist" ); //진단저장 저장데이터
  952. fAppendSaveNode( "/root/send/cond2", "/root/result/savepamlist" ); //원무정보 저장데이터
  953. fAppendSaveNode( "/root/send/cond2", "/root/result/savematrprcplist" ); //재료처방정보 저장데이터
  954. if ( prcpgenrflag != "O" ) {
  955. //퇴원후 외래처방 저장 setting
  956. fAppendSaveNode( "/root/send/cond2", "/root/result/dschflaginfo" );
  957. fAppendSaveNode( "/root/send/cond2", "/root/result/dschpamlist" );
  958. fAppendSaveNode( "/root/send/cond2", "/root/result/dschdrprcplist" );
  959. fAppendSaveNode( "/root/send/cond2", "/root/result/dschexecprcplist" );
  960. fAppendSaveNode( "/root/send/cond2", "/root/result/dschmatrprcplist" );
  961. }
  962. // if( prcpflag == "0" ){
  963. //if ( !submit ( "TXMMO00103", false )) {
  964. // model.removeNodeSet ( "/root/result");
  965. // model.resetInstanceNode ( "/root/send" );
  966. // model.refresh();
  967. // return false;
  968. // }
  969. // }else{
  970. //openLoadingBar("저장중입니다."); //로딩 메세지 open
  971. if ( !submit( "TXADB01027", false )) { //TXMMP00803
  972. //messageBox("처방 저장을 ", "E009");
  973. model.removeNodeSet ( "/root/result");
  974. endSavePrcpYN_SMMMO00110 = "Y";
  975. return false;
  976. }
  977. //closeLoadingBar(); //loading 메세지 닫기
  978. var xpt = window.screenleft + 100;
  979. var ypt = window.screenTop + 50;
  980. if ( ErrExistYN == "Y" ) {
  981. if ( !isNull(model.getValue ( "/root/result/prcperrlist/prcpcd"))){
  982. //미완성 처방 조회를 위한 에러체크 결과 조회
  983. if(prtlFlag_SMMMO00110 == "01" || prtlFlag_SMMMO00110 == "02") {
  984. copyNodeListType("/root/main/invalprcplist", "/root/result/saveinvaliprcplist", "after", model, model);
  985. grd_errprcplist.refresh();
  986. }
  987. var coord = getRelativeCoordinate ( xpt, ypt );
  988. var mon = coord[0];
  989. xpt = coord[1];
  990. ypt = coord[2];
  991. modal ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/result", "/root/result", "", false ); //오류팝업
  992. model.removeNodeset("/root/result/prcperrlist");
  993. model.removeNodeset("/root/result");
  994. model.makeNode("/root/result");
  995. return false;
  996. }
  997. //questionYN_SMMMO00110 = "N"; //초기화
  998. }
  999. // }
  1000. // 입원일 때 약집계 호출 => skip
  1001. // 응급일 때 진료지원 예약모듈 호출 => skip
  1002. // 제한항생제 저장 => skip
  1003. // OCR 자동출력 ocrcalcscorcd 값은 MMO001에 global로 선언. 값은 fPrcpSaveChkaft에서 체크한다. => skip
  1004. // 처방에 대한 중증진료, 산정특례, 법정전염병 처리 => skip
  1005. if( prcpflag != "0" ){
  1006. //CP, 항암프로토콜이면 return 한다
  1007. return true;
  1008. }
  1009. model.setValue ( "/root/send/pid" , model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/pid" ));
  1010. model.setValue ( "/root/send/orddd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/orddd" ));
  1011. model.setValue ( "/root/send/cretno", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/cretno" ));
  1012. model.setValue ( "/root/send/instcd", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/instcd" ));
  1013. model.setValue ( "/root/send/ioflag", model.getValue ( "/root/patinfo/patinfolist[" + datagrid1.row+ "]/ordtype" ));
  1014. model.refresh();
  1015. return true;
  1016. }
  1017. //***********************************************************************
  1018. // @function : 외래 항암프로토콜 인증저장을 위한 인증데이터 세팅
  1019. // @by : 2008.07.31 임혜정
  1020. // @---------------------------------------------------------------------
  1021. // @desc : 1) 항암프로토콜정보 인증데이터 생성
  1022. // 2) 항암프로토콜상세정보 인증데이터 생성
  1023. // 3) 환자진단정보 인증데이터 생성
  1024. //***********************************************************************
  1025. function fAntiPrtlSignSave( ){
  1026. var sSignPrtlData = "";
  1027. var sSignPrcpData = "";
  1028. var sSignDiagData = "";
  1029. var sendSignData = "";
  1030. // 1. 인증데이터 생성
  1031. // 1) 항암프로토콜정보 인증데이터 생성
  1032. sSignPrtlData = "<항암프로토콜정보>";
  1033. sSignPrtlData = sSignPrtlData + "<CPG적용번호>" + model.getValue("/root/send/data/orderdata/cpgappno") + "</CPG적용번호>";
  1034. sSignPrtlData = sSignPrtlData + "<CP번호>" + model.getValue("/root/send/data/orderdata/cpgno") + "</CP번호>";
  1035. sSignPrtlData = sSignPrtlData + "<CP이력번호>" + "1" + "</CP이력번호>";
  1036. sSignPrtlData = sSignPrtlData + "<등록번호>" + model.getValue("/root/send/data/orderdata/sendpid") + "</등록번호>";
  1037. sSignPrtlData = sSignPrtlData + "<처방일자>" + model.getValue("/root/send/data/orderdata/sendorddd") + "</처방일자>";
  1038. sSignPrtlData = sSignPrtlData + "<생성번호>" + model.getValue("/root/send/data/orderdata/sendcretno") + "</생성번호>";
  1039. sSignPrtlData = sSignPrtlData + "<입원외래구분>" + model.getValue("/root/send/data/orderdata/sendioflag") + "</입원외래구분>";
  1040. sSignPrtlData = sSignPrtlData + "<적용일자>" + model.getValue("/root/send/data/orderdata/appdd") + "</적용일자>";
  1041. sSignPrtlData = sSignPrtlData + "<프로토콜구분코드>" + "10" + "</프로토콜구분코드>";
  1042. sSignPrtlData = sSignPrtlData + "<시작step>" + "1" + "</시작step>";
  1043. sSignPrtlData = sSignPrtlData + "<종료step>" + "1" + "</종료step>";
  1044. sSignPrtlData = sSignPrtlData + "<시작회차>" + model.getValue("/root/send/data/orderdata/starttimes") + "</시작회차>";
  1045. sSignPrtlData = sSignPrtlData + "<종료회차>" + model.getValue("/root/send/data/orderdata/endtimes") + "</종료회차>";
  1046. sSignPrtlData = sSignPrtlData + "<적용상태>" + "00" + "</적용상태>";
  1047. sSignPrtlData = sSignPrtlData + "<진료과>" + model.getValue("/root/send/data/orderdata/sendorddeptcd") + "</진료과>";
  1048. sSignPrtlData = sSignPrtlData + "<질병분류코드>" + model.getValue("/root/send/data/orderdata/sendsickclscd") + "</질병분류코드>";
  1049. sSignPrtlData = sSignPrtlData + "<입원외래구분>" + model.getValue("/root/send/data/orderdata/sendioflag") + "</입원외래구분>";
  1050. sSignPrtlData = sSignPrtlData + "<프로토콜코드>" + model.getValue("/root/send/data/orderdata/sendprtlcd") + "</프로토콜코드>";
  1051. sSignPrtlData = sSignPrtlData + "<진토제프로토콜코드>" + model.getValue("/root/send/data/orderdata/sendantimetprtlcd") + "</진토제프로토콜코드>";
  1052. sSignPrtlData = sSignPrtlData + "<Stage>" + model.getValue("/root/send/data/orderdata/drugstage") + "</Stage>";
  1053. sSignPrtlData = sSignPrtlData + "<Cycle>" + model.getValue("/root/send/data/orderdata/drugcycle") + "</Cycle>";
  1054. sSignPrtlData = sSignPrtlData + "<적용시작>" + model.getValue("/root/send/data/orderdata/acpttermfrom") + "</적용시작>";
  1055. sSignPrtlData = sSignPrtlData + "<적용종료>" + model.getValue("/root/send/data/orderdata/acpttermto") + "</적용종료>";
  1056. sSignPrtlData = sSignPrtlData + "<진행상태>" + model.getValue("/root/send/data/orderdata/acptno") + "</진행상태>";
  1057. sSignPrtlData = sSignPrtlData + "<신장>" + model.getValue("/root/send/data/orderdata/ht") + "</신장>";
  1058. sSignPrtlData = sSignPrtlData + "<체중구분>" + model.getValue("/root/send/data/orderdata/wtflag") + "</체중구분>";
  1059. sSignPrtlData = sSignPrtlData + "<체중>" + model.getValue("/root/send/data/orderdata/wt") + "</체중>";
  1060. sSignPrtlData = sSignPrtlData + "<IBW>" + model.getValue("/root/send/data/orderdata/ibw") + "</IBW>";
  1061. sSignPrtlData = sSignPrtlData + "<BSA>" + model.getValue("/root/send/data/orderdata/bsa") + "</BSA>";
  1062. sSignPrtlData = sSignPrtlData + "<GFR구분>" + model.getValue("/root/send/data/orderdata/gfrflag") + "</GFR구분>";
  1063. sSignPrtlData = sSignPrtlData + "<GFR>" + model.getValue("/root/send/data/orderdata/gfr") + "</GFR>";
  1064. sSignPrtlData = sSignPrtlData + "<나이>" + model.getValue("/root/send/data/orderdata/sendage") + "</나이>";
  1065. sSignPrtlData = sSignPrtlData + "<성별별환산값>" + model.getValue("/root/send/data/orderdata/sexrate") + "</성별별환산값>";
  1066. sSignPrtlData = sSignPrtlData + "<SC>" + model.getValue("/root/send/data/orderdata/sc") + "</SC>";
  1067. sSignPrtlData = sSignPrtlData + "<Urine>" + model.getValue("/root/send/data/orderdata/urvol") + "</Urine>";
  1068. sSignPrtlData = sSignPrtlData + "<Urine Creatine>" + model.getValue("/root/send/data/orderdata/urcr") + "</Urine Creatine>";
  1069. sSignPrtlData = sSignPrtlData + "<AUC>" + model.getValue("/root/send/data/orderdata/auc") + "</AUC>";
  1070. sSignPrtlData = sSignPrtlData + "<Carbo량>" + model.getValue("/root/send/data/orderdata/carbovol") + "</Carbo량>";
  1071. sSignPrtlData = sSignPrtlData + "</항암프로토콜정보>";
  1072. // 2) 항암프로토콜상세정보 인증데이터 생성
  1073. sSignPrcpData = "<항암프로토콜상세정보>";
  1074. for (var i = 0; i < grd_prtlprcpprelist.rows ; i++) {
  1075. sSignPrcpData = sSignPrcpData + "<D>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtldgnm") + "</D>";
  1076. sSignPrcpData = sSignPrcpData + "<D>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtldg") + "</D>";
  1077. sSignPrcpData = sSignPrcpData + "<투약순서>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugseq") + "</투약순서>";
  1078. sSignPrcpData = sSignPrcpData + "<투약시간>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugtt") + "</투약시간>";
  1079. sSignPrcpData = sSignPrcpData + "<적용구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/volkind") + "</적용구분>";
  1080. sSignPrcpData = sSignPrcpData + "<BSA당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/bsavol") + "</BSA당용량>";
  1081. sSignPrcpData = sSignPrcpData + "<kg당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/kgvol") + "</kg당용량>";
  1082. sSignPrcpData = sSignPrcpData + "<Remark>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/remark") + "</Remark>";
  1083. sSignPrcpData = sSignPrcpData + "<간호전달사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/nursrem") + "</간호전달사항>";
  1084. sSignPrcpData = sSignPrcpData + "<수량용량비율>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/volrate") + "</수량용량비율 >";
  1085. sSignPrcpData = sSignPrcpData + "<항암진토 구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlkind") + "</항암진토 구분>";
  1086. sSignPrcpData = sSignPrcpData + "<ordseqno>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/ordseqno") + "</ordseqno>";
  1087. sSignPrcpData = sSignPrcpData + "<처리구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/status") + "</처리구분>";
  1088. sSignPrcpData = sSignPrcpData + "<처방상태코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpstatcd") + "</처방상태코드>";
  1089. sSignPrcpData = sSignPrcpData + "<처방분류코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpclscd") + "</처방분류코드>";
  1090. sSignPrcpData = sSignPrcpData + "<처방종류코드(추가)>" + "20" + "</처방종류코드(추가)>";
  1091. sSignPrcpData = sSignPrcpData + "<처방코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpcd") + "</처방코드>";
  1092. sSignPrcpData = sSignPrcpData + "<처방명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpnm") + "</처방명>";
  1093. sSignPrcpData = sSignPrcpData + "<처방>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvol") + "</처방>";
  1094. sSignPrcpData = sSignPrcpData + "<처방용량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitnm") + "</처방용량단위명>";
  1095. sSignPrcpData = sSignPrcpData + "<처방수량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqty") + "</처방수량>";
  1096. sSignPrcpData = sSignPrcpData + "<처방수량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitnm") + "</처방수량단위명>";
  1097. sSignPrcpData = sSignPrcpData + "<처방횟수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcptims") + "</처방횟수>";
  1098. sSignPrcpData = sSignPrcpData + "<처방일수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdayno") + "</처방일수>";
  1099. sSignPrcpData = sSignPrcpData + "<투여방법검체코드명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmthdspccdnm") + "</투여방법검체코드명>";
  1100. sSignPrcpData = sSignPrcpData + "<처방Mix번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpmixno") + "</처방Mix번호>";
  1101. sSignPrcpData = sSignPrcpData + "<급여구분코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/payflagcd") + "</급여구분코드>";
  1102. sSignPrcpData = sSignPrcpData + "<전달사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdelivefact") + "</전달사항>";
  1103. sSignPrcpData = sSignPrcpData + "<원내/원외구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/hosinhosoutflag") + "</원내/원외구분>";
  1104. sSignPrcpData = sSignPrcpData + "<처방실시부서코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpexecdeptcd") + "</처방실시부서코드>";
  1105. sSignPrcpData = sSignPrcpData + "<처방희망일시>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcphopedd") + "</처방희망일시>";
  1106. sSignPrcpData = sSignPrcpData + "<선택진료구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/choiordflag") + "</선택진료구분>";
  1107. sSignPrcpData = sSignPrcpData + "<등록일시>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rgstdt") + "</등록일시>";
  1108. sSignPrcpData = sSignPrcpData + "<등록자명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rgstridnm") + "</등록자명>";
  1109. sSignPrcpData = sSignPrcpData + "<검사결과단위>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/testrsltunit") + "</검사결과단위>";
  1110. sSignPrcpData = sSignPrcpData + "<검사결과>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/testrsltcnts") + "</검사결과>";
  1111. sSignPrcpData = sSignPrcpData + "<처방발생구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpgenrflag") + "</처방발생구분>";
  1112. sSignPrcpData = sSignPrcpData + "<처방이력코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcphistcd") + "</처방이력코드>";
  1113. sSignPrcpData = sSignPrcpData + "<임시처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempprcpflag") + "</임시처방구분>";
  1114. sSignPrcpData = sSignPrcpData + "<처방SET코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpsetcd") + "</처방SET코드>";
  1115. sSignPrcpData = sSignPrcpData + "<처방용량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitflag") + "</처방용량단위구분>";
  1116. sSignPrcpData = sSignPrcpData + "<처방수량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitflag") + "</처방수량단위구분>";
  1117. sSignPrcpData = sSignPrcpData + "<실제처방수량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/orgprcpqty") + "</실제처방수량>";
  1118. sSignPrcpData = sSignPrcpData + "<투여속도>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspd") + "</투여속도>";
  1119. sSignPrcpData = sSignPrcpData + "<투여속도단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspdunitflag") + "</투여속도단위구분>";
  1120. sSignPrcpData = sSignPrcpData + "<파우더구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/powdflag") + "</파우더구분>";
  1121. sSignPrcpData = sSignPrcpData + "<PRN처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prnprcpflag") + "</PRN처방구분>";
  1122. sSignPrcpData = sSignPrcpData + "<Prep처방구분>" + "N" + "</Prep처방구분>";
  1123. sSignPrcpData = sSignPrcpData + "<자가처방구분>" + "N" + "</자가처방구분>";
  1124. sSignPrcpData = sSignPrcpData + "<SELF약구분>" + "N" + "</SELF약구분>";
  1125. sSignPrcpData = sSignPrcpData + "<투약포장구분>" + "N" + "</투약포장구분>";
  1126. sSignPrcpData = sSignPrcpData + "<응급처방구분>" + "N" + "</응급처방구분>";
  1127. sSignPrcpData = sSignPrcpData + "<선처치처방구분>" + "N" + "</선처치처방구분>";
  1128. sSignPrcpData = sSignPrcpData + "<야간처방구분>" + "N" + "</야간처방구분>";
  1129. sSignPrcpData = sSignPrcpData + "<포터블처방구분>" + "N" + "</포터블처방구분>";
  1130. sSignPrcpData = sSignPrcpData + "<정액처방구분>" + "N" + "</정액처방구분>";
  1131. sSignPrcpData = sSignPrcpData + "<기왕증(력)구분>" + "N" + "</기왕증(력)구분>";
  1132. sSignPrcpData = sSignPrcpData + "<금식처방구분>" + "N" + "</금식처방구분>";
  1133. sSignPrcpData = sSignPrcpData + "<응급판독구분>" + "N" + "</응급판독구분>";
  1134. sSignPrcpData = sSignPrcpData + "<처방방향구분>" + "-" + "</처방방향구분>";
  1135. sSignPrcpData = sSignPrcpData + "<수혈사용구분>" + "0" + "</수혈사용구분>";
  1136. sSignPrcpData = sSignPrcpData + "<수혈필터구분>" + "N" + "</수혈필터구분>";
  1137. sSignPrcpData = sSignPrcpData + "<이식전검사구분>" + "N" + "</이식전검사구분>";
  1138. sSignPrcpData = sSignPrcpData + "<출장건진구분>" + "N" + "</출장건진구분>";
  1139. sSignPrcpData = sSignPrcpData + "<조혈모(줄기)>" + "00NNN" + "</조혈모(줄기)>";
  1140. sSignPrcpData = sSignPrcpData + "<Angio구분>" + "-" + "</Angio구분>";
  1141. sSignPrcpData = sSignPrcpData + "<수술마취구분>" + "-" + "</수술마취구분>";
  1142. sSignPrcpData = sSignPrcpData + "<마취시간>" + "0000" + "</마취시간>";
  1143. sSignPrcpData = sSignPrcpData + "<식이열량함량>" + "0" + "</식이열량함량>";
  1144. sSignPrcpData = sSignPrcpData + "<식이단백질함량>" + "0" + "</식이단백질함량>";
  1145. sSignPrcpData = sSignPrcpData + "<식이수정구분>" + "0" + "</식이수정구분>";
  1146. sSignPrcpData = sSignPrcpData + "<원내처방사유코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/hosinprcpresncd ") + "</원내처방사유코드>";
  1147. sSignPrcpData = sSignPrcpData + "<기타처방사유코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/etcprcpresncd") + "</기타처방사유코드>";
  1148. sSignPrcpData = sSignPrcpData + "<투여방법검체코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmthdspccd") + "</투여방법검체코드>";
  1149. sSignPrcpData = sSignPrcpData + "<발행부서코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/issdeptcd") + "</발행부서코드>";
  1150. sSignPrcpData = sSignPrcpData + "<처방권한구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpauthflag") + "</처방권한구분>";
  1151. sSignPrcpData = sSignPrcpData + "<처방입력구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpinptflag") + "</처방입력구분>";
  1152. sSignPrcpData = sSignPrcpData + "<처방서명구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpsignflag") + "</처방서명구분>";
  1153. sSignPrcpData = sSignPrcpData + "<비율처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rateprcpflag") + "</비율처방구분>";
  1154. sSignPrcpData = sSignPrcpData + "<처방조회순서>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcprefseq") + "</처방조회순서>";
  1155. sSignPrcpData = sSignPrcpData + "<진료의뢰연결번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/ordreqlnkno") + "</진료의뢰연결번호>";
  1156. sSignPrcpData = sSignPrcpData + "<검사의뢰연결번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/testreqlnkno") + "</검사의뢰연결번호>";
  1157. sSignPrcpData = sSignPrcpData + "<처방연계일자>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcplnkdd") + "</처방연계일자>";
  1158. sSignPrcpData = sSignPrcpData + "<처방연계번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcplnkno") + "</처방연계번호>";
  1159. sSignPrcpData = sSignPrcpData + "<수술예약번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/oprsrvno") + "</수술예약번호>";
  1160. sSignPrcpData = sSignPrcpData + "<치식사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tootfact") + "</치식사항>";
  1161. sSignPrcpData = sSignPrcpData + "<임상소견내용>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/clinccmtcnts") + "</임상소견내용>";
  1162. sSignPrcpData = sSignPrcpData + "<처방필수입력구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpessninptflag") + "</처방필수입력구분>";
  1163. sSignPrcpData = sSignPrcpData + "<그룹싱글구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/grupsnglflag") + "</그룹싱글구분>";
  1164. sSignPrcpData = sSignPrcpData + "<투약비율수랑>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugrateqty") + "</투약비율수랑>";
  1165. sSignPrcpData = sSignPrcpData + "<AST검사구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/asttestflag") + "</AST검사구분>";
  1166. sSignPrcpData = sSignPrcpData + "<임상연구구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/clincstdyflag") + "</임상연구구분>";
  1167. sSignPrcpData = sSignPrcpData + "<프로토콜번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlno") + "</프로토콜번호>";
  1168. sSignPrcpData = sSignPrcpData + "<임상연구코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/clincstdycd") + "</임상연구코드>";
  1169. sSignPrcpData = sSignPrcpData + "<수술용어>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/optermcd") + "</수술용어>";
  1170. sSignPrcpData = sSignPrcpData + "<처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpflag") + "</처방구분>";
  1171. sSignPrcpData = sSignPrcpData + "<HSCT임시처방구분 >" + "N" + "</HSCT임시처방구분>";
  1172. sSignPrcpData = sSignPrcpData + "<종속처방코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/inclprcpcd") + "</종속처방코드>";
  1173. sSignPrcpData = sSignPrcpData + "<종속처방번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/inclprcpno") + "</종속처방번호>";
  1174. sSignPrcpData = sSignPrcpData + "<원무PK내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/pampkspec") + "</원무PK내역>";
  1175. sSignPrcpData = sSignPrcpData + "<처방PK내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcppkspec") + "</처방PK내역>";
  1176. sSignPrcpData = sSignPrcpData + "<수가마스터내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/calcscormastspec") + "</수가마스터내역>";
  1177. sSignPrcpData = sSignPrcpData + "<약품마스터내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmastspec") + "</약품마스터내역>";
  1178. sSignPrcpData = sSignPrcpData + "<비율처방내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/rateprcpspec") + "</비율처방내역>";
  1179. sSignPrcpData = sSignPrcpData + "<재료SET처방내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/matrsetprcpspec") + "</재료SET처방내역>";
  1180. sSignPrcpData = sSignPrcpData + "<지원부서내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/suppdeptspec") + "</지원부서내역>";
  1181. sSignPrcpData = sSignPrcpData + "<연속처방내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/contprcpspec") + "</연속처방내역>";
  1182. sSignPrcpData = sSignPrcpData + "<기타연계내역>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/etclnkspec") + "</기타연계내역>";
  1183. sSignPrcpData = sSignPrcpData + "<검색조건내용>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/srchcondcnts") + "</검색조건내용>";
  1184. sSignPrcpData = sSignPrcpData + "<수가처방명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/orgprcpnm") + "</수가처방명>";
  1185. sSignPrcpData = sSignPrcpData + "<전처방chekc표시>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/chkcol") + "</전처방chekc표시>";
  1186. sSignPrcpData = sSignPrcpData + "<임시컬럼1>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempcol1") + "</임시컬럼1>";
  1187. sSignPrcpData = sSignPrcpData + "<임시컬럼2>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempcol2") + "</임시컬럼2>";
  1188. sSignPrcpData = sSignPrcpData + "<임시컬럼3>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/tempcol3") + "</임시컬럼3>";
  1189. sSignPrcpData = sSignPrcpData + "<CP스텝번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/stepno") + "</CP스텝번호>";
  1190. sSignPrcpData = sSignPrcpData + "<처방일자>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdd") + "</처방일자>";
  1191. }
  1192. sSignPrcpData = sSignPrcpData + "</항암프로토콜상세정보>";
  1193. // 3) 환자진단정보 인증데이터 생성
  1194. sSignDiagData = "<환자진단정보>";
  1195. for (var j = 0; j < grd_diaglist.rows ; j++) {
  1196. sSignDiagData = sSignDiagData + "<상태 (I/U/D)>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/status") + "</상태 (I/U/D)>";
  1197. sSignDiagData = sSignDiagData + "<진단종류코드>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/diagkindcd") + "</진단종류코드>";
  1198. sSignDiagData = sSignDiagData + "<진단종류코드구분>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/diagkindcdflag") + "</진단종류코드구분>";
  1199. sSignDiagData = sSignDiagData + "<진단코드>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/icd10cd") + "</진단코드>";
  1200. sSignDiagData = sSignDiagData + "<진단명>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/diagengnm") + "</진단명>";
  1201. sSignDiagData = sSignDiagData + "<특례>" + model.getValue("/root/main/diaginfo/diagcdlist["+j+"]/spclinfo") + "</특례>";
  1202. }
  1203. sSignDiagData = sSignDiagData + "</환자진단정보>";
  1204. sendSignData = sSignPrtlData + sSignPrcpData + sSignDiagData;
  1205. model.setValue("/root/send/data/signdata/signbfcnts" , sendSignData );
  1206. }
  1207. function fAntiPrtlRtrnSign() {
  1208. var sSignPrtlData = "";
  1209. var sSignPrcpData = "";
  1210. var sendSignData = "";
  1211. // 1. 인증데이터 생성
  1212. // 1) 항암프로토콜정보 인증데이터 생성
  1213. sSignPrtlData = "<항암프로토콜정보>";
  1214. sSignPrtlData = sSignPrtlData + "<시작일>" + model.getValue("/root/main/prtlinfo/startdate") + "</시작일>";
  1215. sSignPrtlData = sSignPrtlData + "<적용기간>" + model.getValue("/root/main/prtlinfo/startterm") + "</적용기간>";
  1216. sSignPrtlData = sSignPrtlData + "<적용기간>" + model.getValue("/root/main/prtlinfo/endterm") + "</적용기간>";
  1217. sSignPrtlData = sSignPrtlData + "<Stage>" + model.getValue("/root/main/prtlinfo/drugstage") + "</Stage>";
  1218. sSignPrtlData = sSignPrtlData + "<Cycle>" + model.getValue("/root/main/prtlinfo/drugcycle") + "</Cycle>";
  1219. sSignPrtlData = sSignPrtlData + "<키>" + model.getValue("/root/main/data/ht") + "</키>";
  1220. sSignPrtlData = sSignPrtlData + "<체중>" + model.getValue("/root/main/data/wt") + "</체중>";
  1221. sSignPrtlData = sSignPrtlData + "<IBW>" + model.getValue("/root/main/data/ibw") + "</IBW>";
  1222. sSignPrtlData = sSignPrtlData + "<BSA>" + model.getValue("/root/main/data/bsa") + "</BSA>";
  1223. sSignPrtlData = sSignPrtlData + "</항암프로토콜정보>";
  1224. // 2) 항암프로토콜상세정보 인증데이터 생성
  1225. for (var i = 0; i < grd_prtlprcpprelist.rows ; i++) {
  1226. sSignPrcpData = "<항암프로토콜상세정보>";
  1227. sSignPrcpData = sSignPrcpData + "<반환여부>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/sel") + "</반환여부>";
  1228. sSignPrcpData = sSignPrcpData + "<투약순서>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugseq") + "<투약순서/>";
  1229. sSignPrcpData = sSignPrcpData + "<투약시간>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugtt") + "<투약시간/>";
  1230. sSignPrcpData = sSignPrcpData + "<처방Mix번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpmixno") + "</처방Mix번호>";
  1231. sSignPrcpData = sSignPrcpData + "<처방코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpcd") + "</처방코드>";
  1232. sSignPrcpData = sSignPrcpData + "<처방명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpnm") + "</처방명>";
  1233. sSignPrcpData = sSignPrcpData + "<급여구분코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/payflagcd") + "</급여구분코드>";
  1234. sSignPrcpData = sSignPrcpData + "<BSA당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/bsavol") + "</BSA당용량>";
  1235. sSignPrcpData = sSignPrcpData + "<kg당용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/kgvol") + "</kg당용량>";
  1236. sSignPrcpData = sSignPrcpData + "<1일용량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvol") + "</1일용량>";
  1237. sSignPrcpData = sSignPrcpData + "<처방용량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitflag") + "</처방용량단위구분>";
  1238. sSignPrcpData = sSignPrcpData + "<처방용량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpvolunitnm") + "</처방용량단위명>";
  1239. sSignPrcpData = sSignPrcpData + "<처방수량>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqty") + "</처방수량>";
  1240. sSignPrcpData = sSignPrcpData + "<처방수량단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitflag") + "</처방수량단위구분>";
  1241. sSignPrcpData = sSignPrcpData + "<처방수량단위명>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpqtyunitnm") + "</처방수량단위명>";
  1242. sSignPrcpData = sSignPrcpData + "<투여속도>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspd") + "</투여속도>";
  1243. sSignPrcpData = sSignPrcpData + "<투여속도단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspdunitflag") + "</투여속도단위구분>";
  1244. sSignPrcpData = sSignPrcpData + "<투여속도단위구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugspdunitnm") + "</투여속도단위구분>";
  1245. sSignPrcpData = sSignPrcpData + "<처방횟수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcptims") + "</처방횟수>";
  1246. sSignPrcpData = sSignPrcpData + "<투여방법검체코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/drugmthdspccd") + "</투여방법검체코드>";
  1247. sSignPrcpData = sSignPrcpData + "<PRN처방구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prnprcpflag") + "</PRN처방구분>";
  1248. sSignPrcpData = sSignPrcpData + "<Remark>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/remark") + "</Remark>";
  1249. sSignPrcpData = sSignPrcpData + "<간호전달사항>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/nursrem") + "</간호전달사항>";
  1250. sSignPrcpData = sSignPrcpData + "<처방실시부서코드>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpexecdeptcd") + "</처방실시부서코드>";
  1251. sSignPrcpData = sSignPrcpData + "<처방순번>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/ordseqno") + "</처방순번>";
  1252. sSignPrcpData = sSignPrcpData + "<항암진토 구분>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlkind") + "</항암진토 구분>";
  1253. sSignPrcpData = sSignPrcpData + "<수량용량비율>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/volrate") + "</수량용량비율 >";
  1254. sSignPrcpData = sSignPrcpData + "<차수>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtldg") + "</차수>";
  1255. sSignPrcpData = sSignPrcpData + "<처방일자>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prcpdd") + "</처방일자>";
  1256. sSignPrcpData = sSignPrcpData + "<저장상태>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/saveflag") + "</저장상태>";
  1257. sSignPrcpData = sSignPrcpData + "<프로토콜상태>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/prtlstat") + "</프로토콜상태>";
  1258. sSignPrcpData = sSignPrcpData + "<CPG번호>" + model.getValue("/root/main/prtlprcpprelist/prcplist["+i +"]/cpgappno") + "</CPG번호>";
  1259. sSignPrcpData = sSignPrcpData + "</항암프로토콜상세정보>";
  1260. }
  1261. sendSignData = sSignPrtlData + sSignPrcpData;
  1262. model.makeValue("/root/send/rtnsenddata/signinfo/signbfcnts" , sendSignData );
  1263. }