CareRec.xjs 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. 간호기록 공통 인터페이스(JScript)
  5. - Version :
  6. 1) : Ver.1.00.01
  7. */
  8. var sSignPid = "";
  9. var sSignIndd = "";
  10. var sSignCretno = "";
  11. var sSignIoflag = "";
  12. var arErrorCode = new HashArray();
  13. /**
  14. * @group :
  15. * @ver : 2008.04.23
  16. * @by : 양천덕
  17. * @---------------------------------------------------
  18. * @type : function
  19. * @access : public
  20. * @desc : 타업무 일반 간호 기록 저장 인터페이스
  21. * @param : pPid - 원무Key
  22. * pIndd - 원무Key
  23. * pCretno - 원무Key
  24. * pStmtspec - 진술문내역
  25. * pRecoriginflag - 기록출처구분
  26. * F : Free Text 저장
  27. * S : 상황별 Set 정보 저장
  28. * J : 진술문 정보 저장 --> 이송요원은 간호일지에서 조회되어야 하므로 J로 저장
  29. * N : 표준간호Set 정보 저장
  30. * T : 타기록연계
  31. * pIoflag - 외래입원구분(I : 입원, O : 외래)
  32. * pDNAR - DNAR 정보(D : 데이터, N : 진단, A : 행동, R : 결과)
  33. * pRecflag - 기록구분
  34. * A : 마취과,
  35. * B : 혈당기록,
  36. * C : 특주,
  37. * D : DSC,
  38. * E : 응급실,
  39. * G : 간호일지 (type2에서 사용하면 안됌)
  40. * H : 가정간호,
  41. * I : 주사실,
  42. * L : 투석실,
  43. * M : 분만간호
  44. *
  45. * N : Angio,
  46. * O : 외래,
  47. * P : 수술실,
  48. * R : 회복실,
  49. * S : 전문간호,
  50. * T : 입원전검사
  51. * U : APU 성분헌혈실
  52. * W :병동
  53. *
  54. * J :간클리닉
  55. * K : 기관지
  56. * X :내시경
  57. * Y :부정맥
  58. * Z :Echo
  59. * @return : true, false
  60. * @---------------------------------------------------
  61. */
  62. function fDifBizSaveStmtInfo(pPid, pIndd, pCretno, pStmtspec, pRecoriginflag, pIoflag, pDNAR, pUserid){
  63. var sStmtinfoheader = ""; // 저장 목록
  64. var sStmtinfo = ""; // 저장 정보
  65. var sStmtspec = ""; // 진술문 정보
  66. var sAttrinfo = ""; // 속성정보
  67. var sStatus = "I"; // 상태
  68. var sOrigincd = ""; // Set 코드
  69. var sStmtcd = "--------"; // 진술문장 코드
  70. var sFlag = ""; // DNAR 구분
  71. var sRecoriginflag = ""; // 기록출처구분
  72. var sRecdateflag = "A" // (A : 자동, U : 지정)
  73. var sRecdate = ""; // 기록일자
  74. var sPid = ""; // 등록번호
  75. var sIndd = ""; // 입원일자
  76. var sCretno = ""; // 생성번호
  77. var sInstcd = ""; // 기관코드
  78. var sIOFlag = ""; // 외래입원구분
  79. var sOrdDeptCd = ""; // 등록버소
  80. var sRecflag = "G"; // 기록구분
  81. var sLnkstmt = ""; // 링크된 진술문
  82. var sOrddd = ""; // 외래일자
  83. var sStmtdiaginfo = ""; // 진단진술문코드
  84. var sUserid = pUserid; // 기록자 id(이송요원저장시는 이송요원 호출자)
  85. var sGrupcd = ""; // 그룹코드
  86. //환자정보확인
  87. if( utlf_isNull(pPid) || utlf_isNull(pIndd) || utlf_isNull(pCretno) ){
  88. sysf_messageBox("환자 정보를 확인십시요","E");
  89. return;
  90. }else{
  91. sPid = pPid;
  92. sIndd = pIndd;
  93. sCretno = pCretno;
  94. }
  95. //저장문장 확인
  96. if( utlf_isNull(pStmtspec) ){
  97. sysf_messageBox("저장할 문장이 정의되지 않았습니다.","E");
  98. return;
  99. }else{
  100. sStmtspec = pStmtspec;
  101. }
  102. //기록출처구분세팅
  103. if(pRecoriginflag == "F" || pRecoriginflag == "T" || pRecoriginflag == "J" || utlf_isNull(pRecoriginflag) ){
  104. if( utlf_isNull(pRecoriginflag) ){
  105. sRecoriginflag = "F";
  106. }else{
  107. sRecoriginflag = pRecoriginflag;
  108. }
  109. }else{
  110. sysf_messageBox("기록출처구분 정보를 확인하십시요","E");
  111. return;
  112. }
  113. //외래입원구분 세팅
  114. if( utlf_isNull(pIoflag) ){
  115. sIOFlag = "I";
  116. }else{
  117. sIOFlag = pIoflag;
  118. }
  119. //입원일자 or 외래일자 세팅
  120. if(sIOFlag == "O"){
  121. sOrddd = pIndd;
  122. sIndd = "-";
  123. }else{
  124. sIndd = pIndd;
  125. sOrddd = "-";
  126. }
  127. //DNAR 구분 세팅
  128. if(pDNAR == "D" || pDNAR == "N" || pDNAR == "A" || pDNAR == "R" || utlf_isNull(pDNAR) ){
  129. if( utlf_isNull(pDNAR) ){
  130. sFlag = "4R";
  131. }else if(pDNAR == "D"){
  132. sFlag = "1D";
  133. }else if(pDNAR == "N"){
  134. sFlag = "2N";
  135. }else if(pDNAR == "A"){
  136. sFlag = "3A";
  137. }else{
  138. sFlag = "4R";
  139. }
  140. }else{
  141. sysf_messageBox("등록할 문장의 DNAR 구분을 확인하십시요","E");
  142. return;
  143. }
  144. sStmtinfoheader += "stmtspec▦attrinfo▦status▦origincd▦"
  145. + "stmtcd▦dnarflag▦recoriginflag▦recdtflag▦"
  146. + "recdt▦pid▦indd▦cretno▦"
  147. + "instcd▦ioflag▦orddeptcd▦recflag▦"
  148. + "reclnkkey▦orddd▦diagstmtcd▦userid▩";
  149. sStmtinfo += sStmtspec +"▦"+ sAttrinfo +"▦"+ sStatus +"▦"+ sOrigincd +"▦"
  150. + sStmtcd +"▦"+ sFlag +"▦"+ sRecoriginflag +"▦"+ sRecdateflag +"▦"
  151. + sRecdate+"00" +"▦"+ sPid +"▦"+ sIndd +"▦"+ sCretno +"▦"
  152. + sInstcd +"▦"+ sIOFlag +"▦"+ sOrdDeptCd +"▦"+ sRecflag +"▦"
  153. + sLnkstmt +"▦"+ sOrddd +"▦"+ sStmtdiaginfo +"▦"+ sUserid +"▩";
  154. dsf_createDs("ds_send_savedata_1");
  155. dsf_setCSVToDs("ds_send_savedata_1", sStmtinfoheader+sStmtinfo);
  156. var oParam = {};
  157. oParam.id = "TXMNR00705";
  158. oParam.service = "carerecapp.NursingRecord";
  159. oParam.method = "reqExeDifBizStmtList";
  160. oParam.inds = "saveData=ds_send_savedata_1";
  161. oParam.outds = "";
  162. oParam.async = false;
  163. oParam.callback = "cf_TXMNR00705";
  164. tranf_submit(oParam);
  165. if(arErrorCode.pop("TXMNR00705") > -1){
  166. return true;
  167. }else{
  168. return false;
  169. }
  170. }
  171. /**
  172. * @group :
  173. * @ver : 2008.04.25
  174. * @by : 양천덕
  175. * @---------------------------------------------------
  176. * @type : function
  177. * @access : public
  178. * @desc : 간호기록 공통 정보 조회(병동 조회)
  179. * @param :
  180. * @return :
  181. * @---------------------------------------------------
  182. */
  183. function fGetCareComWardList(pFlag){
  184. var sRefresh = "true";
  185. if( !utlf_isNull(pFlag)){
  186. sRefresh = pFlag
  187. }
  188. dsf_createDsRow("ds_cond_careComWard", [{col:"wardcd", type:"string", size:256, val:ds_data_wardcdgruplist.getColumn(0, "wardcd")}]);
  189. var oParam = {};
  190. oParam.id = "TRMNR01002";
  191. oParam.service = "carerecapp.TnsCareRec";
  192. oParam.method = "reqGetWardList";
  193. oParam.inds = "refCond=ds_cond_careComWard";
  194. oParam.outds = "ds_data_wardcdgruplist=wardcdgruplist";
  195. oParam.async = false;
  196. tranf_submit(oParam);
  197. }
  198. /**
  199. * @group :
  200. * @ver : 2008.04.25
  201. * @by : 양천덕
  202. * @---------------------------------------------------
  203. * @type : function
  204. * @access : public
  205. * @desc : 간호기록 공통 정보 조회(병실 조회)
  206. * @param : pWard : 병동코드
  207. * @return :
  208. * @---------------------------------------------------
  209. */
  210. function fGetCareComRoomList(pWard){
  211. dsf_createDsRow("ds_cond_CareComRoom", [{col: "wardcd", val:pWard }
  212. ]);
  213. var oParam = {};
  214. oParam.id = "TRMNR01003";
  215. oParam.service = "carerecapp.TnsCareRec";
  216. oParam.method = "reqGetRoomList";
  217. oParam.inds = "refCond=ds_cond_CareComRoom";
  218. oParam.outds = "ds_data_roomcdgruplist=roomcdgruplist";
  219. oParam.async = false;
  220. tranf_submit(oParam);
  221. }
  222. /**
  223. * @group :
  224. * @ver : 2008.04.25
  225. * @by : 양천덕
  226. * @---------------------------------------------------
  227. * @type : function
  228. * @access : public
  229. * @desc : 간호기록 공통 정보 조회(환자 조회 : 병동기준)
  230. * @param : pWard : 병동코드
  231. * pRoom : 병실코드
  232. * pZone : 구역코드
  233. * @return :
  234. * @---------------------------------------------------
  235. */
  236. function fGetCareComPatList(pWard,pRoom, pZone, recFlag){
  237. dsf_createDsRow("ds_cond_CareComPat", [{col: "wardcd", val:pWard }
  238. ,{col: "roomcd", val:pRoom }
  239. ,{col: "zonecd", val:pZone }
  240. ,{col: "recflag", val:recFlag }
  241. ,{col: "srchflag", val:"1" }]);
  242. var oParam = {};
  243. oParam.id = "TRMNR01004";
  244. oParam.service = "carerecapp.TnsCareRec";
  245. oParam.method = "reqGetPatientList";
  246. oParam.inds = "refCond=ds_cond_CareComPat";
  247. oParam.outds = "ds_data_patientgruplist=patientgruplist";
  248. oParam.async = false;
  249. tranf_submit(oParam);
  250. }
  251. /**
  252. * @group :
  253. * @ver : 2008.04.25
  254. * @by : 양천덕
  255. * @---------------------------------------------------
  256. * @type : function
  257. * @access : public
  258. * @desc : 간호기록 공통 정보 조회(환자 조회 : 진료과 기준)
  259. * @param : pWard : 병동코드
  260. * pDoc1 : 주치의
  261. * pDoc2 : 담당의
  262. * @return :
  263. * @---------------------------------------------------
  264. */
  265. function fGetCareComDeptPatList(pDept,pDoc1, pDoc2, pChk){
  266. dsf_createDsRow("ds_cond_careComDeptPat", [{col:"deptcd", type:"string", size:256, val:pDept},
  267. {col:"docid1", type:"string", size:256, val:pDoc1},
  268. {col:"docid2", type:"string", size:256, val:pDoc2},
  269. {col:"mypatchk", type:"string", size:256, val:pChk},
  270. {col:"srchflag", type:"string", size:256, val:"2"}]);
  271. var oParam = {};
  272. oParam.id = "TRMNR01004";
  273. oParam.service = "carerecapp.TnsCareRec";
  274. oParam.method = "reqGetPatientList";
  275. oParam.inds = "refCond=ds_cond_careComDeptPat refCond1=ds_cond_careComDeptPat";
  276. oParam.outds = "ds_data_patientgruplist=patientgruplist";
  277. oParam.async = false;
  278. tranf_submit(oParam);
  279. }
  280. /**
  281. * @group :
  282. * @ver : 2008.04.25
  283. * @by : 양천덕
  284. * @---------------------------------------------------
  285. * @type : function
  286. * @access : public
  287. * @desc : 간호기록 공통 정보 조회(내환자 조회)
  288. * @param :
  289. * @return :
  290. * @---------------------------------------------------
  291. */
  292. function fGetSettingPatientList(pFlag,flag){
  293. //model.removenode("/root/send");
  294. var sRefresh = "true";
  295. if( !utlf_isNull(pFlag)){
  296. sRefresh = pFlag
  297. }
  298. //if( !utlf_isNull(flag) ){
  299. dsf_createDsRow("ds_cond_refCond", [{col:"flag", type:"string", size:256, val:flag}]);
  300. //}
  301. var oParam = {};
  302. oParam.id = "TRMNR00908";
  303. oParam.service = "carerecapp.ClincObsRec";
  304. oParam.method = "reqGetsettinpatlist";
  305. oParam.inds = "refCond=ds_cond_refCond";
  306. oParam.outds = "ds_data_settingpatientlist=settingpatientlist";
  307. oParam.async = false;
  308. tranf_submit(oParam);
  309. }
  310. //--------------(20101209) 경북대
  311. /**
  312. * @group :
  313. * @ver : 2010.12.09
  314. * @by : 양천덕
  315. * @---------------------------------------------------
  316. * @type : function
  317. * @access : public
  318. * @desc : 간호일지용 내환자 조회
  319. * @param :
  320. * @return :
  321. * @---------------------------------------------------
  322. */
  323. function fGetSettingPatientList_type1(){
  324. dsf_createDsRow("ds_send", [{col: "cdgrudid", val:"aaa" }
  325. ,{col: "srchdd", val:"aaa" }
  326. ,{col: "sinstcd", val:"aaa" }
  327. ]);
  328. var oParam = {};
  329. oParam.id = "TRMNR00918";
  330. oParam.service = "carerecapp.ClincObsRec";
  331. oParam.method = "reqGetsettinpatlist_type1";
  332. oParam.inds = "refCond=ds_send";
  333. oParam.outds = "ds_data_settingpatientlist=settingpatientlist";
  334. oParam.async = false;
  335. tranf_submit(oParam);
  336. }
  337. //--------------(20101209) 경북대
  338. /**
  339. * @group :
  340. * @ver : 2008.04.25
  341. * @by : 양천덕
  342. * @---------------------------------------------------
  343. * @type : function
  344. * @access : public
  345. * @desc : 상단정보 초기화
  346. * @param :
  347. * @return :
  348. * @---------------------------------------------------
  349. */
  350. function fInitTopInfo(){
  351. appf_delPatientInfos(); //화면상단정보 삭제
  352. sysf_setGlobalVariable("paminfo", ""); //원무정보 reset
  353. }
  354. /**
  355. * @group :
  356. * @ver : 2008.08.28
  357. * @by : 양천덕
  358. * @---------------------------------------------------
  359. * @type : function
  360. * @access : public
  361. * @desc : 투약기록 관련 통합기록조회용 Viewer 데이터 생성 저장
  362. * @param : pNode1 : 조회할 리스트 Node
  363. * pNode2 : Return 리스트 Node
  364. * pFlag : 저장구분 (Drug : 투약기록)
  365. * @return :
  366. * @---------------------------------------------------
  367. */
  368. function fCare_SignNode(pFlag, pNode1, pNode2, pPid, pIndd, pCretno, pIoflag){
  369. sSignPid = "";
  370. sSignIndd = "";
  371. sSignCretno = "";
  372. sSignIoflag = "";
  373. sSignPid = pPid;
  374. sSignIndd = pIndd;
  375. sSignCretno = pCretno;
  376. sSignIoflag = pIoflag;
  377. if( utlf_isNull(sSignPid) || utlf_isNull(sSignIndd) || utlf_isNull(sSignCretno) ){
  378. sysf_messageBox("환자의 원무키 정보를 정확하게 설정하십시요.", "E");
  379. return;
  380. }
  381. if( pFlag == "Drug" ){
  382. //if(model.getValue(pNode1+"/pid") == "" || model.getValue(pNode1+"/indd") == "" || model.getValue(pNode1+"/cretno") == ""){
  383. // messageBox("원무정보가 매핑이 되지 않았습니다.","I");
  384. // return;
  385. //}
  386. //if(model.getValue(pNode1+"/workdd") == ""){
  387. // messageBox("workdd 매핑이 되지 않았습니다.","I");
  388. // return;
  389. //}
  390. /*-------------------------------(20080901)
  391. model.removenode("/root/send");
  392. model.makeValue("/root/send/pid" , pNode1+"/pid" );
  393. model.makeValue("/root/send/indd" , pNode1+"/indd" );
  394. model.makeValue("/root/send/cretno" , pNode1+"/cretno" );
  395. model.makeValue("/root/send/instcd" , pNode1+"/instcd" );
  396. model.makeValue("/root/send/prcpno" , pNode1+"/prcpno" );
  397. model.makeValue("/root/send/prcpdd" , pNode1+"/prcpdd" );
  398. model.makeValue("/root/send/workdd" , pNode1+"/workdd" );
  399. model.makeValue("/root/send/listflag" , "90" );
  400. 호출전에 /root/signinfo/reqsigncond 에 직접 값을 넣음
  401. */
  402. //-------------------------------(20080901)
  403. //alert("fCare_SignNode_1");
  404. var oParam = {};
  405. oParam.id = "TRMNR00609";
  406. oParam.service = "caremedirecapp.CareMediRec";
  407. oParam.method = "reqGetSignDrugList";
  408. oParam.inds = "reqsigncond="+pNode1;
  409. oParam.outds = pNode2+"=signdruglist";
  410. oParam.async = false;
  411. //oParam.callback = "cf_TRMNR00609";
  412. tranf_submit(oParam);
  413. }else{
  414. sysf_messageBox("Param설정을 확인하시기 바랍니다.", "I");
  415. return;
  416. }
  417. var objDsPNode2 = eval(pNode2);
  418. if( objDsPNode2.rowcount < 1 ){
  419. return;
  420. }
  421. var sRecdd = "";
  422. var sRow = 0;
  423. dsf_createDs("ds_send_drugsign_signdata", [{col:"status", type:"string", size:256}
  424. ,{col:"pid", type:"string", size:256}
  425. ,{col:"orddd", type:"string", size:256}
  426. ,{col:"signno", type:"string", size:256}
  427. ,{col:"cretno", type:"string", size:256}
  428. ,{col:"recdd", type:"string", size:256}
  429. ,{col:"rectm", type:"string", size:256}
  430. ,{col:"recsaveflag", type:"string", size:256}
  431. ,{col:"signflag", type:"string", size:256}
  432. ,{col:"signgenrflag", type:"string", size:256}
  433. ,{col:"formcd", type:"string", size:256}
  434. ,{col:"orddeptcd", type:"string", size:256}
  435. ,{col:"orddrid", type:"string", size:256}
  436. ,{col:"signbfcnts", type:"string", size:256}
  437. ,{col:"signaftcnts", type:"string", size:256}
  438. ,{col:"carerecseqno", type:"string", size:256}
  439. ,{col:"itemseqno", type:"string", size:256}
  440. ,{col:"recflag", type:"string", size:256}
  441. ,{col:"lnkrecdt", type:"string", size:256}]);
  442. dsf_createDs("ds_viewsigninfo", [{col:"pid", type:"string", size:256}
  443. ,{col:"orddd", type:"string", size:256}
  444. ,{col:"cretno", type:"string", size:256}
  445. ,{col:"execdd", type:"string", size:256}
  446. ,{col:"exectm", type:"string", size:256}
  447. ,{col:"recdd", type:"string", size:256}
  448. ,{col:"dispyn", type:"string", size:256}]);
  449. ds_viewsigninfo.addRow();
  450. dsf_createDs("ds_viewsigninfo_viewsignlist", [{col:"prcpkindnm", type:"string", size:256}]);
  451. ds_viewsigninfo_viewsignlist.copyData(objDsPNode2);
  452. ds_viewsigninfo_viewsignlist.clearData();
  453. var prcpkindnm;
  454. var execcarestatnm;
  455. for( var i=0 ; i<objDsPNode2.rowcount ; i++ ){
  456. if( pFlag == "Drug" ){
  457. prcpkindnm = objDsPNode2.getColumn(i, "prcpkindnm");
  458. execcarestatnm = objDsPNode2.getColumn(i, "execcarestatnm");
  459. }
  460. if( utlf_isNull(sRecdd) ){
  461. sRecdd = objDsPNode2.getColumn(i, "execdd");
  462. ds_viewsigninfo.setColumn(0, "pid", objDsPNode2.getColumn(i, "pid"));
  463. ds_viewsigninfo.setColumn(0, "orddd", objDsPNode2.getColumn(i, "orddd"));
  464. ds_viewsigninfo.setColumn(0, "cretno", objDsPNode2.getColumn(i, "cretno"));
  465. ds_viewsigninfo.setColumn(0, "execdd", objDsPNode2.getColumn(i, "execdd"));
  466. ds_viewsigninfo.setColumn(0, "exectm", objDsPNode2.getColumn(i, "exectm"));
  467. ds_viewsigninfo.setColumn(0, "recdd", objDsPNode2.getColumn(i, "execdd"));
  468. ds_viewsigninfo.setColumn(0, "dispyn", "Y"); //--(20080921)
  469. }
  470. if( i == (objDsPNode2.rowcount-1) ){
  471. insRow = ds_viewsigninfo_viewsignlist.addRow();
  472. ds_viewsigninfo_viewsignlist.copyRow(insRow, objDsPNode2, i);
  473. if( pFlag == "Drug" ){
  474. if( execcarestatnm == "투약X-반환가능" ){
  475. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", prcpkindnm);
  476. }else{
  477. if( prcpkindnm == " D/C" ){
  478. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", "");
  479. }else if( prcpkindnm == "self D/C" ){
  480. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", "self");
  481. }
  482. }
  483. }
  484. fCare_MakeSignData(sRecdd);
  485. }else{
  486. if( sRecdd != objDsPNode2.getColumn(i, "execdd") ){
  487. sRecdd = objDsPNode2.getColumn(i, "execdd");
  488. ds_viewsigninfo.setColumn(0, "pid", objDsPNode2.getColumn(i, "pid"));
  489. ds_viewsigninfo.setColumn(0, "orddd", objDsPNode2.getColumn(i, "orddd"));
  490. ds_viewsigninfo.setColumn(0, "cretno", objDsPNode2.getColumn(i, "cretno"));
  491. ds_viewsigninfo.setColumn(0, "execdd", objDsPNode2.getColumn(i, "execdd"));
  492. ds_viewsigninfo.setColumn(0, "exectm", objDsPNode2.getColumn(i, "exectm"));
  493. ds_viewsigninfo.setColumn(0, "recdd", objDsPNode2.getColumn(i, "execdd"));
  494. ds_viewsigninfo.setColumn(0, "dispyn", "Y"); //--(20080921)
  495. insRow = ds_viewsigninfo_viewsignlist.addRow();
  496. ds_viewsigninfo_viewsignlist.copyRow(insRow, objDsPNode2, i);
  497. if( pFlag == "Drug" ){
  498. if( execcarestatnm == "투약X-반환가능" ){
  499. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", prcpkindnm);
  500. }else{
  501. if( prcpkindnm == " D/C" ){
  502. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", "");
  503. }else if( prcpkindnm == "self D/C" ){
  504. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", "self");
  505. }
  506. }
  507. }
  508. fCare_MakeSignData(sRecdd);
  509. }else{
  510. sRecdd = objDsPNode2.getColumn(i, "execdd");
  511. insRow = ds_viewsigninfo_viewsignlist.addRow();
  512. ds_viewsigninfo_viewsignlist.copyRow(insRow, objDsPNode2, i);
  513. if( pFlag == "Drug" ){
  514. if( execcarestatnm == "투약X-반환가능" ){
  515. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", prcpkindnm);
  516. }else{
  517. if( prcpkindnm == " D/C" ){
  518. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", "");
  519. }else if( prcpkindnm == "self D/C" ){
  520. ds_viewsigninfo_viewsignlist.setColumn(insRow, "prcpkindnm", "self");
  521. }
  522. }
  523. fCare_MakeSignData(sRecdd);
  524. }
  525. }
  526. }
  527. }
  528. //alert("TXMNR00904");
  529. var oParam = {};
  530. oParam.id = "TXMNR00904";
  531. oParam.service = "carerecapp.ClincObsRec";
  532. oParam.method = "reqExeSaveViewData";
  533. oParam.inds = "signinfo=ds_send_drugsign_signdata";
  534. oParam.outds = "";
  535. oParam.async = false;
  536. //oParam.callback = "cf_TXMNR00904";
  537. tranf_submit(oParam);
  538. }
  539. /**
  540. * @group :
  541. * @ver : 2008.08.28
  542. * @by : 양천덕
  543. * @---------------------------------------------------
  544. * @type : function
  545. * @access : public
  546. * @desc : 투약기록 관련 통합기록조회용 Viewer 데이터 생성 저장
  547. * @param :
  548. * @return :
  549. * @---------------------------------------------------
  550. */
  551. function fCare_MakeSignData(pDate){
  552. var xPathPamListNode = "ds_main_paminfo_pamlist";
  553. if( Sign.view_signprocess() == true ){
  554. var sSignDataRowCnt = ds_send_drugsign_signdata.addRow(); //--경로추가해야함(20080902)
  555. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "pid", sSignPid);
  556. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "orddd", sSignIndd);
  557. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "signno", "");
  558. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "cretno", sSignCretno);
  559. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "recdd", pDate);
  560. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "rectm", "000000");
  561. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "recsaveflag", "Y");
  562. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "signflag", "02");
  563. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "signgenrflag", sSignIoflag);
  564. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "formcd", "0000002476");
  565. //model.makeValue("/root/send/drugsign/signdata["+sSignDataRowCnt+"]/orddeptcd", model.getValue(xPathPamListNode+"/orddeptcd"));
  566. //model.makeValue("/root/send/drugsign/signdata["+sSignDataRowCnt+"]/orddrid", model.getValue(xPathPamListNode+"/medispclid"));
  567. //alert( Sign.signedInfos[1]);
  568. //alert( Sign.signedInfos[2]);
  569. //alert( Sign.signedInfos[3]);
  570. //alert( Sign.signedInfos[4]);
  571. //alert( Sign.signedInfos[5]);
  572. //▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  573. //▶ 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  574. ds_send_drugsign_signdata.setColumn(sSignDataRowCnt, "signbfcnts", Sign.signedInfos[1]);
  575. //▶ 공인인증 처리후 데이터
  576. //model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  577. return false;
  578. }
  579. ds_viewsigninfo.clearData();
  580. ds_viewsigninfo_viewsignlist.clearData();
  581. }
  582. /**
  583. * @group :
  584. * @ver : 2008.08.28
  585. * @by : 양천덕
  586. * @---------------------------------------------------
  587. * @type : function
  588. * @access : public
  589. * @desc : 투약기록 관련 통합기록조회용 Viewer 데이터 생성 저장
  590. * @param :
  591. * @return :
  592. * @---------------------------------------------------
  593. */
  594. function fMake_ViewSignData (){
  595. var arrSignPath = new Array();
  596. arrSignPath[0] = "/viewsigninfo";
  597. var arrSignDs = new Array();
  598. arrSignDs[0] = ds_viewsigninfo.saveXML();
  599. Sign.addnodeset(arrSignPath, arrSignDs);
  600. var arrSignPath = new Array();
  601. arrSignPath[0] = "/viewsigninfo/viewsignlist";
  602. var arrSignDs = new Array();
  603. arrSignDs[0] = ds_viewsigninfo_viewsignlist.saveXML();
  604. Sign.addnodeset(arrSignPath, arrSignDs);
  605. //Sign.addnode("/root/viewsigninfo");
  606. }
  607. /**
  608. * @group :
  609. * @ver : 2008.08.28
  610. * @by : 김홍점
  611. * @---------------------------------------------------
  612. * @type : function
  613. * @access : public
  614. * @desc : 진료대상리스트에서 환자선태기 통증기록 점수가7점이상이 3회이상인경우 메시지 팝업
  615. * @param : pPid, pIndd, pCretno, pFlag : "dr", destPath
  616. * @return :
  617. * @---------------------------------------------------
  618. */
  619. function fConfirmPainAdmin(pPid, pIndd, pCretno, pFlag, destPath){
  620. dsf_createDs("ds_temp", [{col:"pid", type:"string", size:256}
  621. ,{col:"indd", type:"string", size:256}
  622. ,{col:"cretno", type:"string", size:256}
  623. ,{col:"vwctrl_button", type:"string", size:256}]);
  624. ds_temp.addRow();
  625. ds_temp.setColumn(0, "pid", pPid);
  626. ds_temp.setColumn(0, "indd", pIndd);
  627. ds_temp.setColumn(0, "cretno", pCretno);
  628. ds_temp.setColumn(0, "vwctrl_button", pFlag );
  629. dsf_createDs(destPath);
  630. var oParam = {};
  631. oParam.id = "TRMNR08401";
  632. oParam.service = "wardcareapp.WardPainCareMngt";
  633. oParam.method = "reqGetNarcPrcpList";
  634. oParam.inds = "refCond=ds_temp";
  635. oParam.outds = destPath + "=paincount";
  636. oParam.async = false;
  637. oParam.callback = "cf_TRMNR08401";
  638. tranf_submit(oParam);
  639. if(arErrorCode.pop("TRMNR08401") > -1) {
  640. var oDestDS = eval(destPath);
  641. if(sysf_getUserInfo("dutplceinstcd") == "032"){
  642. if ( oDestDS.getColumn(0, "cnt7pnt") == "Y" ){ // 칠곡 7점이상 3회 이상 존재
  643. var rtnmsg = sysf_messageBox("7점이상의 통증이 3회이상 존재합니다 " ,"Q011");
  644. if ( rtnmsg == 6 ){
  645. var oParam = {};
  646. oParam.id = "TXMNR08401";
  647. oParam.service = "wardcareapp.WardPainCareMngt";
  648. oParam.method = "reqExePainCnfm";
  649. oParam.inds = "refCond=ds_temp";
  650. oParam.async = false;
  651. oParam.callback = "cf_TXMNR08401";
  652. tranf_submit(oParam); //메시지팝업 확인일시 업데이트
  653. if(arErrorCode.pop("TXMNR08401") > -1) {
  654. frmf_open("SMMNR08400", "SMMNR08400", null, null, null, null, null, null, null, null, null, null, "M");//통증그래프
  655. }
  656. }
  657. }
  658. }else{
  659. if ( oDestDS.getColumn(0, "cnt4pnt") == "Y" ){ // 본원 4점이상 3회 이상 존재
  660. var rtnmsg = sysf_messageBox("4점이상의 통증이 3회이상 존재합니다 " ,"Q011");
  661. if ( rtnmsg == 6 ){
  662. var oParam = {};
  663. oParam.id = "TXMNR08401";
  664. oParam.service = "wardcareapp.WardPainCareMngt";
  665. oParam.method = "reqExePainCnfm";
  666. oParam.inds = "refCond=ds_temp";
  667. oParam.async = false;
  668. oParam.callback = "cf_TXMNR08401";
  669. tranf_submit(oParam); //메시지팝업 확인일시 업데이트
  670. if(arErrorCode.pop("TXMNR08401") > -1) {
  671. frmf_open("SMMNW04810", "SMMNW04810", null, null, null, null, null, null, null, null, null, null, "M");//통증관리(통합)
  672. }
  673. }
  674. }
  675. }
  676. }
  677. dsf_deleteDs(destPath);
  678. }
  679. function cf_TRMNR08401(sSvcId, nErrorCode, sErrorMsg) {
  680. arErrorCode.push(sSvcId, nErrorCode);
  681. if(nErrorCode < 0) return;
  682. }
  683. function cf_TXMNR08401(sSvcId, nErrorCode, sErrorMsg) {
  684. arErrorCode.push(sSvcId, nErrorCode);
  685. if(nErrorCode < 0) return;
  686. }
  687. ]]></Script>