SMMNP00211.js 36 KB

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