SMMNP00210.js 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647
  1. /* ---------------------------------------------------------------------
  2. 환자 시술전 처치 및 간호상태 확인 사항
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Created By 이윤주
  6. : 2015.03.18
  7. ---------------------------------------------------------------------- */
  8. var xPath_curenurgstatspec = "/root/main/ssminfo/ssmlist/curenurgstatspec/ItemCheckLists" ; // 환자 수술전 처치 및 간호상태 확인 사항
  9. var xPath_famyinfo = "/root/main/ssminfo/ssmlist/famyinfo/famylist" ; //가족사항
  10. var xPath_spcinfo = "/root/main/ssminfo/ssmlist/spcinfo/spclists" ; //검체사항
  11. var xPath_Fmt_curenurgstatspec = "/root/init/cureiteminfo" ; // 환자 수술전 처치 및 간호상태 확인 사항
  12. var xPath_MnpmcssrList = "/root/main/ssminfo/ssmlist" ; // 환자 수술전 처치 및 간호상태 확인 사항 정보
  13. function fInit() {
  14. var spid = "";
  15. var sorddd = "";
  16. var scretno = "";
  17. node = getGlobalVariable("paminfo");
  18. setCSVToNode("/root/main/paminfo", node);
  19. var spid = model.getValue("/root/main/paminfo/list/pid");
  20. var orddd = model.getValue("/root/main/paminfo/list/orddd");
  21. var indd = model.getValue("/root/main/paminfo/list/indd");
  22. var hngnm = model.getValue("/root/main/paminfo/list/hngnm");
  23. if (spid == "") {
  24. messageBox("상단에 환자정보가 없습니다", "I");
  25. window.close();
  26. return;
  27. }
  28. model.makeValue("/root/init/patinfo",hngnm+"("+spid+") 진료(입원)일:"+orddd+indd);
  29. fGetNursHardCdInfo("'S04'",getCurrentDate());
  30. fAddSSList();
  31. model.makeValue("/root/init/ssbfcureseqno",model.getValue("/root/init/ssinfo[1]/sslist/ssbfcureseqno"));
  32. var ssbfcureseqno = model.getValue("/root/init/ssbfcureseqno");
  33. if ( ssbfcureseqno =="" || isNull(ssbfcureseqno) ) {
  34. fNew();
  35. }
  36. else {
  37. fGetData();
  38. }
  39. grd_ItemCheckList.fixedcellcheckbox(1,grd_ItemCheckList.colRef("pyes")) = true;
  40. grd_ItemCheckList.fixedcellcheckbox(1,grd_ItemCheckList.colRef("syes")) = true;
  41. model.refresh();
  42. }
  43. function fAddSSList() {
  44. var spid = model.getValue("/root/main/paminfo/list/pid");
  45. var sorddd = model.getValue("/root/main/paminfo/list/orddd");
  46. var sindd = model.getValue("/root/main/paminfo/list/indd");
  47. var scretno = model.getValue("/root/main/paminfo/list/cretno");
  48. var sordtype = model.getValue("/root/main/paminfo/list/ordtype");
  49. var sinstcd = getUserInfo("dutplceinstcd");
  50. if (!(sordtype == "S" || sordtype =="O")) {
  51. sorddd = sindd;
  52. }
  53. model.makeValue("/root/send/pid",spid);
  54. model.makeValue("/root/send/orddd",sorddd);
  55. model.makeValue("/root/send/cretno",scretno);
  56. model.makeValue("/root/send/instcd", sinstcd);
  57. model.makeValue("/root/send/flag" , 1);
  58. if(submit("TRMNP00213",false)){
  59. }
  60. }
  61. function fGetData() {
  62. model.removeNodeset("/root/send");
  63. model.makeValue("/root/send/ssbfcureseqno",cmb_sslist.value);
  64. if(submit("TRMNP00214",false)) {
  65. }
  66. if (getNodeSetCnt(xPath_curenurgstatspec) == 0 ) {
  67. fGetBaseCheckList();
  68. }
  69. model.refresh();
  70. fSetBtn();
  71. }
  72. function fNew() {
  73. model.makeValue("/root/init/ssbfcureseqno","");
  74. model.removeNodeset("/root/main/ssminfo/ssmlist/famyinfo");
  75. model.removeNodeset("/root/main/ssminfo/ssmlist/spcinfo");
  76. model.removeNodeset(xPath_curenurgstatspec);
  77. model.makeNode(xPath_curenurgstatspec);
  78. model.resetInstanceNode("/root/main/ssminfo");
  79. model.makeValue(xPath_MnpmcssrList+"/pid",model.getValue("/root/main/paminfo/list/pid"));
  80. model.makeValue(xPath_MnpmcssrList+"/orddd",model.getValue("/root/main/paminfo/list/orddd"));
  81. model.makeValue(xPath_MnpmcssrList+"/cretno",model.getValue("/root/main/paminfo/list/cretno"));
  82. model.makeValue(xPath_MnpmcssrList+"/indd",model.getValue("/root/main/paminfo/list/indd"));
  83. model.makeValue(xPath_MnpmcssrList+"/orddeptcd",model.getValue("/root/main/paminfo/list/orddeptcd"));
  84. model.makeValue(xPath_MnpmcssrList+"/ordtype",model.getValue("/root/main/paminfo/list/ioflag"));
  85. model.makeValue(xPath_MnpmcssrList+"/orddrid",model.getValue("/root/main/paminfo/list/orddrid"));
  86. model.makeValue(xPath_MnpmcssrList+"/medispclid",model.getValue("/root/main/paminfo/list/medispclid"));
  87. fGetBaseCheckList();
  88. model.refresh();
  89. }
  90. function fGridCheckConfirm() {
  91. var BoolCheck = false;
  92. var GridNm = grd_ItemCheckList;
  93. var opchkyn ="";
  94. var cnt = 0;
  95. for (var iRow = GridNm.fixedrows; iRow < GridNm.rows; iRow++){
  96. opchkyn = model.getValue(GridNm.nodeset + "[" + (iRow-1) + "]/opchkyn");
  97. if (chk_stay.value == "1") {
  98. if ((GridNm.valueMatrix(iRow, GridNm.colRef("Syes"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Syes"))== "") &&
  99. (GridNm.valueMatrix(iRow, GridNm.colRef("Sno"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Sno"))== "") &&
  100. (GridNm.valueMatrix(iRow, GridNm.colRef("Snothing"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Snothing"))== "")) {
  101. BoolCheck = true;
  102. break;
  103. }
  104. } else if (chk_stay.value == "2") {
  105. if ((GridNm.valueMatrix(iRow, GridNm.colRef("Oyes"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Oyes"))== "") &&
  106. (GridNm.valueMatrix(iRow, GridNm.colRef("Ono"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Ono"))== "") &&
  107. (GridNm.valueMatrix(iRow, GridNm.colRef("Onothing"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Onothing"))== "") &&
  108. (opchkyn == "Y" ||opchkyn == "" || opchkyn == null) ) {
  109. BoolCheck = true;
  110. break;
  111. }
  112. } else {
  113. if ((GridNm.valueMatrix(iRow, GridNm.colRef("pyes"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("pyes"))== "") &&
  114. (GridNm.valueMatrix(iRow, GridNm.colRef("Pno"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Pno"))== "") &&
  115. (GridNm.valueMatrix(iRow, GridNm.colRef("Pnothing"))== "false" || GridNm.valueMatrix(iRow, GridNm.colRef("Pnothing"))== "")) {
  116. BoolCheck = true;
  117. break;
  118. }
  119. }
  120. }
  121. return BoolCheck;
  122. }
  123. function fSave(pFlag){
  124. var pid = model.getValue(xPath_MnpmcssrList + "/pid" ); // 환자번호
  125. var instcd = model.getValue(xPath_MnpmcssrList + "/instcd" ); // 원무외래/입원등록정보 PK
  126. var ordtype = model.getValue(xPath_MnpmcssrList + "/ordtype" ); // 외래입원구분
  127. var orddd = model.getValue(xPath_MnpmcssrList + "/orddd" ); // 진료일자
  128. var indd = model.getValue(xPath_MnpmcssrList + "/indd" ); // 입원일자
  129. var orddrid = model.getValue(xPath_MnpmcssrList + "/orddrid" ); // 진료의사
  130. var medispclid = model.getValue(xPath_MnpmcssrList + "/medispclid" ); // 주치교수
  131. var cretno = model.getValue(xPath_MnpmcssrList + "/cretno" ); // 원무생성번호
  132. var orddeptcd = model.getValue(xPath_MnpmcssrList + "/orddeptcd" ); // 진료부서
  133. var ssdd = model.getValue(xPath_MnpmcssrList + "/ssdd" ); // 시술일
  134. var ssplace = model.getValue(xPath_MnpmcssrList + "/ssplace" ); // 시술장소
  135. var ssnm = model.getValue(xPath_MnpmcssrList + "/ssnm" ); // 시술명
  136. var ssnmetc = model.getValue(xPath_MnpmcssrList + "/ssnmetc" ); // 시술명
  137. var nrecnm = model.getValue(xPath_MnpmcssrList + "/nrecnm" ); // 간호단위기록자
  138. var nrecdt = model.getValue(xPath_MnpmcssrList + "/nrecdt" ); // 간호단위기록일시
  139. var nrecdept = model.getValue(xPath_MnpmcssrList + "/nrecdept" ); // 간호단위기록 부서코드
  140. var srecnm = model.getValue(xPath_MnpmcssrList + "/srecnm" ); // 시술실 기록자
  141. var srecdt = model.getValue(xPath_MnpmcssrList + "/srecdt" ); // 시술실 기록일시
  142. var srecdept = model.getValue(xPath_MnpmcssrList + "/srecdept" ); // 시술실기록 부서코드
  143. if (ssdd == "" || isNull(ssdd)) {
  144. messageBox("시술일이 입력되지 않았습니다","I");
  145. return;
  146. }
  147. if (ssdd.length != 8) {
  148. messageBox("시술일이 정확히 입력되지 않았습니다","I");
  149. return;
  150. }
  151. if (ssplace == "" || isNull(ssplace)) {
  152. messageBox("시술장소가 입력되지 않았습니다","I");
  153. return;
  154. }
  155. if (nrecdept == "" || isNull(nrecdept)) {
  156. messageBox("간호단위 기록부서가 입력되지 않았습니다","I");
  157. return;
  158. }
  159. if (nrecnm == "" || isNull(nrecnm)) {
  160. messageBox("간호단위 기록자가 입력되지 않았습니다","I");
  161. return;
  162. }
  163. if (nrecdt == "" || isNull(nrecdt)) {
  164. messageBox("간호단위 기록일시가 입력되지 않았습니다","I");
  165. return;
  166. }
  167. // if (srecdept == "" || isNull(srecdept)) {
  168. // messageBox("시술단위 기록부서가 입력되지 않았습니다","I");
  169. // return;
  170. // }
  171. //
  172. // if (srecnm == "" || isNull(srecnm)) {
  173. // messageBox("시술단위 기록자가 입력되지 않았습니다","I");
  174. // return;
  175. // }
  176. //
  177. // if (srecdt == "" || isNull(srecdt)) {
  178. // messageBox("시술단위 기록일시가 입력되지 않았습니다","I");
  179. // return;
  180. // }
  181. if (!(ordtype == "S" || ordtype =="O")) {
  182. orddd = indd;
  183. orddrid = medispclid;
  184. }
  185. // if (fGridCheckConfirm()) {
  186. // messageBox("확인사항을 Check 하지 않은 항목이 있습니다. ","I000");
  187. // return;
  188. // }
  189. var curenurgstatspec = "";
  190. var famyinfo = "";
  191. var spcinfo = "";
  192. if(getNodeSetCnt(xPath_curenurgstatspec) > 0) {
  193. var curenurgstatspec = instance1.selectSingleNode(xPath_curenurgstatspec).xml;
  194. }
  195. if(getNodeSetCnt(xPath_famyinfo) > 0) {
  196. var famyinfo = instance1.selectSingleNode(xPath_famyinfo).xml;
  197. }
  198. if(getNodeSetCnt(xPath_spcinfo) > 0) {
  199. var spcinfo = instance1.selectSingleNode(xPath_spcinfo).xml;
  200. }
  201. var nmemo = model.getValue(xPath_MnpmcssrList + "/nmemo" ); // 간호단위메모
  202. var smemo = model.getValue(xPath_MnpmcssrList + "/smemo" ); // 수술,대기 단위메모
  203. var signno = model.getValue(xPath_MnpmcssrList + "/signno" ); // 인증번호
  204. var ssbfcureseqno = model.getValue(xPath_MnpmcssrList + "/ssbfcureseqno" ); // 의뢰번호(년도(4) + 일련번호(6))
  205. if (ssbfcureseqno == "" || isNull(ssbfcureseqno)) {
  206. var stat = "I";
  207. }
  208. else {
  209. var stat = "U";
  210. }
  211. if ( pFlag == "D" ) {
  212. var stat = "D";
  213. }
  214. var wUserId = getUserInfo("userid" ); // 사용자
  215. var wUserNm = getUserInfo("usernm" ); // 사용자 명
  216. var wDeptCd = getUserInfo("dutplcecd"); // 사용자 부서코드
  217. var wDeptNm = getUserInfo("dutplcenm"); // 사용자 부서명
  218. var wRecoDate = getCurrentDate() + getCurrentTime(); // 시스템일자 기록
  219. var wSaveDate = getCurrentDate() + getCurrentTime(); // 시스템일자 기록
  220. model.removenode("/root/send");
  221. // Title Set
  222. var sMnpmcssrData = "pid" + "▦" // 환자번호
  223. + "instcd" + "▦" // 원무외래/입원등록정보 PK
  224. + "ordtype" + "▦" // 외래입원구분
  225. + "orddd" + "▦" // 진료일자
  226. + "cretno" + "▦" // 원무생성번호
  227. + "orddeptcd" + "▦" // 진료부서
  228. + "orddrid" + "▦" // 진료의사
  229. + "curenurgstatspec" + "▦" // 처치및간호상태정보
  230. + "certflag" + "▦" //
  231. + "ssdd" + "▦" //
  232. + "ssplace" + "▦" //
  233. + "ssnm" + "▦" //
  234. + "ssnmetc" + "▦" //
  235. + "nrecnm" + "▦" // 간호단위기록자
  236. + "nrecdt" + "▦" // 간호단위기록일시
  237. + "nrecdept" + "▦" // 간호단위기록부서
  238. + "srecnm" + "▦" // 시술실 기록자ID
  239. + "srecdt" + "▦" // 시술실 기록일시
  240. + "srecdept" + "▦" // 시술실 기록부서
  241. + "nmemo" + "▦" // 간호단위메모
  242. + "smemo" + "▦" // 수술,대기 단위메모
  243. + "signno" + "▦" // 인증번호
  244. + "ssbfcureseqno" + "▦" // 시술에대한의뢰번호(년도(4) + 일련번호(6))
  245. + "stat" + "▦" // 진행상태
  246. + "spcinfo" + "▦" // 검체정보
  247. + "famyinfo" + "▩"; // 가족정보
  248. // Title Set
  249. sMnpmcssrData += pid + "▦" // 환자번호
  250. + instcd + "▦" // 원무외래/입원등록정보 PK
  251. + ordtype + "▦" // 외래입원구분
  252. + orddd + "▦" // 진료일자
  253. + cretno + "▦" // 원무생성번호
  254. + orddeptcd + "▦" // 진료부서
  255. + orddrid + "▦" // 진료의사
  256. + curenurgstatspec + "▦" // 처치및간호상태정보
  257. + pFlag + "▦" // 인증저장구분
  258. + ssdd + "▦" // 시술일
  259. + ssplace + "▦" // 시술장소
  260. + ssnm + "▦" // 시술명
  261. + ssnmetc + "▦" // 시술명
  262. + nrecnm + "▦" // 간호단위기록자
  263. + nrecdt + "▦" // 간호단위기록일시
  264. + nrecdept + "▦" // 간호단위기록부서
  265. + srecnm + "▦" // 시술실 기록자
  266. + srecdt + "▦" // 시술실 기록일시
  267. + srecdept + "▦" // 시술실 기록부서
  268. + nmemo + "▦" // 간호단위메모
  269. + smemo + "▦" // 수술,대기 단위메모
  270. + signno + "▦" // 인증번호
  271. + ssbfcureseqno + "▦" // 수술에대한의뢰번호(년도(4) + 일련번호(6))
  272. + stat + "▦" // 진행상태
  273. + spcinfo + "▦" // 검체정보
  274. + famyinfo + "▩"; // 가족정보
  275. model.makeValue("/root/send/MnpmcssrList",sMnpmcssrData);
  276. if(pFlag == 'C') {
  277. var CertFlag = true;
  278. CertFlag = fSignProcessSet();
  279. if (CertFlag == false){
  280. //2008-10-01 오전 5:54:13 taebum 인증저 취소시 통합기록 조회관련 요구사항 처리로 인한 오류발생 .
  281. //화면 close 시킴.
  282. window.close();
  283. return; // 인증실패
  284. }
  285. }
  286. if(submit("TXMNP00213")){
  287. fAddSSList();
  288. if(stat == 'I' || stat == 'U'){
  289. if(ssbfcureseqno != "" || !isNull(ssbfcureseqno)) {
  290. //alert("ssbfcureseqno_1 : " + ssbfcureseqno);
  291. model.makeValue("/root/init/ssbfcureseqno", ssbfcureseqno);
  292. cmb_sslist.dispatch("xforms-value-changed");
  293. } else {
  294. var ssbfcureseqno_new = model.getValue("/root/temp/retdata/ssbfcureseqno");
  295. //alert("ssbfcureseqno_2 : " + ssbfcureseqno_new);
  296. model.makeValue("/root/init/ssbfcureseqno", ssbfcureseqno_new);
  297. cmb_sslist.dispatch("xforms-value-changed");
  298. }
  299. }
  300. if (pFlag =="D") {
  301. fNew();
  302. }
  303. model.refresh();
  304. }
  305. }
  306. // ※ 전자서명 호출
  307. function fSignProcessSet() {
  308. //2009-02-25 YCD 인증서 호출 설정 주석 처리
  309. //Sign.certreload = true;
  310. var ordtype = model.getValue(xPath_MnpmcssrList + "/ordtype" ); // 07 외래입원구분
  311. if( Sign.signprocess() == true ){ // ▶ 전자인증 관련 환자 인적 정보를 보내줌.
  312. var wSigninfo = "pid" +"▦" // 등록번호
  313. + "orddd" +"▦" // 입원일자(입원,응급)/진료일자(외래)
  314. + "cretno" +"▦" // 생성번호
  315. + "signno" +"▦" // 서명번호(인증번호)
  316. + "recdd" +"▦" // 실제 기록이 이루어진 기록일자
  317. + "rectm" +"▦" // 실제 기록이 이루어진 기록시간
  318. + "recsaveflag" +"▦" // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  319. + "signflag" +"▦" // 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  320. + "signgenrflag" +"▦" // 외래/입원구분(코드정의서 M0010 참조)
  321. + "formcd" +"▦" // 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
  322. + "orddeptcd" +"▦" // 진료부서코드
  323. + "orddrid" +"▦" // 진료의사ID (집도의)
  324. + "signbfcnts" +"▦" // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  325. + "signaftcnts" +"▩" // ▶ 공인인증 처리후 데이터
  326. + model.getValue(xPath_MnpmcssrList+"/pid" )+"▦" // 등록번호
  327. + model.getValue(xPath_MnpmcssrList+"/indd" ) + model.getValue(xPath_MnpmcssrList+"/orddd" )+"▦" // 진료일자(입원,응급)/진료일자(외래)
  328. + model.getValue(xPath_MnpmcssrList+"/cretno" )+"▦" // 생성번호
  329. + model.getValue(xPath_MnpmcssrList+"/signno" )+"▦" // 서명번호(인증번호)
  330. + getCurrentDate() +"▦" // 실제 기록이 이루어진 기록일자
  331. + getCurrentTime() +"▦" // 실제 기록이 이루어진 기록시간
  332. + "N" +"▦" // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  333. + "02" +"▦" // 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  334. + model.getValue(xPath_MnpmcssrList+"/ordtype" )+"▦" // 외래/입원구분(코드정의서 M0010 참조)
  335. + "1500016488" +"▦" // 시술전 준비확인
  336. + model.getValue(xPath_MnpmcssrList+"/orddeptcd")+"▦" // 진료부서코드
  337. + model.getValue(xPath_MnpmcssrList+"/medispclid" ) + model.getValue(xPath_MnpmcssrList+"/orddrid" )+"▦" // 진료의사ID (주치교수)
  338. + Sign.signedInfos[1] +"▦" // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  339. + Sign.signedInfos[2] +"▩"; // ▶ 공인인증 처리후 데이터
  340. model.makeValue("/root/send/signinfo" , wSigninfo);
  341. // model.makeValue("/root/send/signinfo/pid" , model.getValue(xPath_MnpmcssrList+"/pid" )); // 등록번호
  342. // model.makeValue("/root/send/signinfo/orddd" , model.getValue(xPath_MnpmcssrList+"/orddd" )); // 입원일자(입원,응급)/진료일자(외래)
  343. // model.makeValue("/root/send/signinfo/cretno" , model.getValue(xPath_MnpmcssrList+"/cretno" )); // 생성번호
  344. // model.makeValue("/root/send/signinfo/signno" , model.getValue(xPath_MnpmcssrList+"/certno" )); // 서명번호(인증번호)
  345. // model.makeValue("/root/send/signinfo/recdd" , getCurrentDate() ); // 실제 기록이 이루어진 기록일자
  346. // model.makeValue("/root/send/signinfo/rectm" , getCurrentTime() ); // 실제 기록이 이루어진 기록시간
  347. // model.makeValue("/root/send/signinfo/recsaveflag" , "N" ); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  348. // model.makeValue("/root/send/signinfo/signflag" , "02" ); // 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  349. // model.makeValue("/root/send/signinfo/signgenrflag", model.getValue(xPath_MnpmcssrList+"/inoutflag" )); // 외래/입원구분(코드정의서 M0010 참조)
  350. // model.makeValue("/root/send/signinfo/formcd" , "0000002431" ); // 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
  351. // model.makeValue("/root/send/signinfo/orddeptcd" , model.getValue(xPath_MnpmcssrList+"/orddeptcd" )); // 진료부서코드
  352. // model.makeValue("/root/send/signinfo/orddrid" , model.getValue(xPath_MnpmcssrList+"/perfdrid" )); // 진료의사ID (집도의)
  353. // model.makeValue("/root/send/signinfo/signbfcnts" , Sign.signedInfos[1]); // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  354. // model.makeValue("/root/send/signinfo/signaftcnts" , Sign.signedInfos[2]); // ▶ 공인인증 처리후 데이터
  355. }else{
  356. return false;
  357. }
  358. }
  359. function fMake_SignData(){
  360. // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
  361. Sign.addnode(xPath_MnpmcssrList);
  362. }
  363. function fGetBaseCheckList() {
  364. model.removeNodeset("/root/send");
  365. model.makeValue("/root/send/cdgrupid", 'S03');
  366. model.makeValue("/root/send/currentdate",getCurrentDate());
  367. if(submit("TRMNP00215",false)) {
  368. //
  369. }
  370. model.copyNode(xPath_curenurgstatspec , xPath_Fmt_curenurgstatspec ); // 환자 수술전 처치 및 간호상태 확인 사항
  371. grd_ItemCheckList.refresh();
  372. fSetBtn();
  373. }
  374. /* --------------------------------------------------*/
  375. /* type : function */
  376. /* access : public */
  377. /* desc : GRID CheckBox 값변경 */
  378. /* param : pGridNm : DataGrid Name */
  379. /* pRow : DataGrid Row */
  380. /* pCol : DataGrid Col */
  381. /* pTrueFase : 논리값 */
  382. /* return : */
  383. /* --------------------------------------------------*/
  384. function fCheckBox(pGridNm,pRow,pCol,pTrueFase){
  385. pGridNm.valueMatrix(pRow,pCol) = pTrueFase;
  386. }
  387. /* ------------------------------------------------- */
  388. /* type : function */
  389. /* access : public */
  390. /* desc : GRID CheckBox 값변경 */
  391. /* param : pGridNm : DataGrid Name */
  392. /* return : */
  393. /* -------------------------------------------------*/
  394. function fGridValueChangedCheckBox(pGridNm){
  395. var wTrueFase
  396. GridNm = eval(pGridNm)
  397. if (GridNm.col > 2) {
  398. wTrueFase = GridNm.valueMatrix(GridNm.row ,GridNm.col);
  399. if (wTrueFase == "true") {
  400. switch(GridNm.col){
  401. case GridNm.colRef("pyes") :
  402. if( GridNm.row == "1" ) { // 전체 '예' 체크 시
  403. fCheckBox(GridNm, ITM002 ,GridNm.colRef("pyes"),"false");
  404. fCheckBox(GridNm, ITM022 ,GridNm.colRef("pyes"),"false");
  405. }
  406. fCheckBox(GridNm, GridNm.row ,GridNm.colRef("pno"),"false");
  407. fCheckBox(GridNm, GridNm.row ,GridNm.colRef("pna"),"false");
  408. break;
  409. case GridNm.colRef("pno") :
  410. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("pyes"),"false");
  411. fCheckBox(GridNm, GridNm.row ,GridNm.colRef("pna"),"false");
  412. break;
  413. case GridNm.colRef("pna") :
  414. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("pyes"),"false");
  415. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("pno"),"false");
  416. break;
  417. case GridNm.colRef("syes") :
  418. if( GridNm.row == "1" ) { // 전체 '예' 체크 시
  419. fCheckBox(GridNm, ITM002 ,GridNm.colRef("syes"),"false");
  420. fCheckBox(GridNm, ITM022 ,GridNm.colRef("syes"),"false");
  421. }
  422. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("sno"),"false");
  423. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("sna"),"false");
  424. break;
  425. case GridNm.colRef("sno") :
  426. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("syes"),"false");
  427. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("sna"),"false");
  428. break;
  429. case GridNm.colRef("sna") :
  430. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("syes"),"false");
  431. fCheckBox(GridNm,GridNm.row ,GridNm.colRef("sno"),"false");
  432. break;
  433. }
  434. }
  435. }
  436. }
  437. function fSetBtn() {
  438. for(var i = 1 ; i < grd_ItemCheckList.rows; i++) {
  439. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("itemcode")) == "02") {
  440. grd_ItemCheckList.cellstyle("background-image",i,2) = "../../../com/commonweb/images/icon_startend.gif";
  441. grd_ItemCheckList.cellstyle("cursor",i,2) = "hand";
  442. }
  443. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("itemcode")) == "03") {
  444. grd_ItemCheckList.cellstyle("background-image",i,2) = "../../../com/commonweb/images/icon_startend.gif";
  445. grd_ItemCheckList.cellstyle("cursor",i,2) = "hand";
  446. }
  447. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("itemcode")) == "09") {
  448. grd_ItemCheckList.cellstyle("background-image",i,2) = "../../../com/commonweb/images/icon_startend.gif";
  449. grd_ItemCheckList.cellstyle("cursor",i,2) = "hand";
  450. }
  451. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("itemcode")) == "04") {
  452. grd_ItemCheckList.cellstyle("background-image",i,4) = "../../../com/commonweb/images/icon_list.gif";
  453. grd_ItemCheckList.cellstyle("cursor",i,4) = "hand";
  454. }
  455. if ( grd_ItemCheckList.valueMatrix(i, grd_ItemCheckList.colRef("itemcode")) == "05") {
  456. grd_ItemCheckList.cellstyle("background-image",i,4) = "../../../com/commonweb/images/icon_list.gif";
  457. grd_ItemCheckList.cellstyle("cursor",i,4) = "hand";
  458. }
  459. }
  460. }
  461. function fSearchDetlInfo() {
  462. //시술 및 수술동의서
  463. if ( grd_ItemCheckList.valueMatrix(grd_ItemCheckList.row, grd_ItemCheckList.colRef("itemcode")) == "02" && grd_ItemCheckList.col == 2 ){
  464. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  465. model.makeValue("/root/send/pid", model.getValue(xPath_MnpmcssrList + "/pid"));
  466. model.makeValue("/root/send/cretno", model.getValue(xPath_MnpmcssrList + "/cretno"));
  467. model.makeValue("/root/send/orddd", model.getValue(xPath_MnpmcssrList + "/indd")+ model.getValue(xPath_MnpmcssrList + "/orddd"));
  468. model.makeValue("/root/send/itemindxseq", "132184");
  469. model.makeValue("/root/send/sortkind", "D");
  470. model.makeValue("/root/send/pagingyn", "");
  471. model.makeValue("/root/send/keyfromdd", "");
  472. model.makeValue("/root/send/keytodd", "");
  473. model.makeValue("/root/send/keys", "");
  474. submit("TRMRI03009");
  475. var Prtrecinfo = "";
  476. for( i=1; i <= getNodesetCount("/root/tmp/keys"); i++){
  477. Prtrecinfo += model.getValue("/root/tmp/keys["+i+"]/kind")
  478. + "▦" + model.getValue("/root/tmp/keys["+i+"]/signno")
  479. + "▦" + model.getValue("/root/tmp/keys["+i+"]/formcd")
  480. + "▩";
  481. }
  482. setParameter("SPMRI02400_prtrecinfo", Prtrecinfo);
  483. setParameter("SPMRI02400_prtyn", "N");
  484. setParameter("SPMRI02400_NurProg", "Y");
  485. modal("SPMRI02400");
  486. }
  487. //ADR
  488. if (grd_ItemCheckList.valueMatrix(grd_ItemCheckList.row, grd_ItemCheckList.colRef("itemcode")) == "09" && grd_ItemCheckList.col == 2) {
  489. open("SPMMD03300");
  490. }
  491. //진정동의서
  492. if ( grd_ItemCheckList.valueMatrix(grd_ItemCheckList.row, grd_ItemCheckList.colRef("itemcode")) == "03" && grd_ItemCheckList.col == 2 ) {
  493. model.makeValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  494. model.makeValue("/root/send/pid", model.getValue(xPath_MnpmcssrList + "/pid"));
  495. model.makeValue("/root/send/cretno", model.getValue(xPath_MnpmcssrList + "/cretno"));
  496. model.makeValue("/root/send/orddd", model.getValue(xPath_MnpmcssrList + "/indd")+ model.getValue(xPath_MnpmcssrList + "/orddd"));
  497. model.makeValue("/root/send/itemindxseq", "132185");
  498. model.makeValue("/root/send/sortkind", "D");
  499. model.makeValue("/root/send/pagingyn", "");
  500. model.makeValue("/root/send/keyfromdd", "");
  501. model.makeValue("/root/send/keytodd", "");
  502. model.makeValue("/root/send/keys", "");
  503. submit("TRMRI03009");
  504. var Prtrecinfo = "";
  505. for( i=1; i <= getNodesetCount("/root/tmp/keys"); i++){
  506. if( model.getValue("/root/tmp/keys["+i+"]/formcd") == "1100010977"){
  507. Prtrecinfo += model.getValue("/root/tmp/keys["+i+"]/kind")
  508. + "▦" + model.getValue("/root/tmp/keys["+i+"]/signno")
  509. + "▦" + model.getValue("/root/tmp/keys["+i+"]/formcd")
  510. + "▩";
  511. }
  512. }
  513. setParameter("SPMRI02400_prtrecinfo", Prtrecinfo);
  514. setParameter("SPMRI02400_prtyn", "N");
  515. setParameter("SPMRI02400_NurProg", "Y");
  516. modal("SPMRI02400");
  517. }
  518. if (grd_ItemCheckList.valueMatrix(grd_ItemCheckList.row, grd_ItemCheckList.colRef("itemcode")) == "04" && grd_ItemCheckList.col == 4) {
  519. var parammsg = "B@시술부위표시@HPCD2";
  520. setParameter("SPMQR06000_param", parammsg); // 파라미터 설정
  521. modal("SPMQR06000"); // 병원코드 팝업
  522. }
  523. if (grd_ItemCheckList.valueMatrix(grd_ItemCheckList.row, grd_ItemCheckList.colRef("itemcode")) == "05" && grd_ItemCheckList.col == 4) {
  524. var parammsg = "B@시술전 TimeOut@HPCD3";
  525. setParameter("SPMQR06000_param", parammsg); // 파라미터 설정
  526. modal("SPMQR06000"); // 병원코드 팝업
  527. }
  528. }