SMMNR02900_간호일지CP기록.xrw 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>간호일지 CP 기록</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <patinfo>
  11. <pid/>
  12. <indd/>
  13. <cretno/>
  14. <patnm/>
  15. <room/>
  16. <sexage/>
  17. <orddeptcd/>
  18. <medispclid/>
  19. <patinfo/>
  20. </patinfo>
  21. <terminfo>
  22. <grupcd/>
  23. <supcdid/>
  24. </terminfo>
  25. </main>
  26. <send/>
  27. <init/>
  28. <temp/>
  29. <hidden>
  30. <stmtsetinfo/>
  31. </hidden>
  32. </root>
  33. </instance>
  34. <script type="javascript" ev:event="xforms-ready">
  35. <![CDATA[
  36. fInit();
  37. ]]>
  38. </script>
  39. <script type="javascript">
  40. <![CDATA[
  41. var xNStmtSetListPath = "/root/main/stmtsetinfo/nstmtsetlist"; // set 진술문 정보
  42. var xDStmtSetListPath = "/root/main/stmtsetinfo/dstmtsetlist"; // set 진술문 정보
  43. var xAStmtSetListPath = "/root/main/stmtsetinfo/astmtsetlist"; // set 진술문 정보
  44. var xRStmtSetListPath = "/root/main/stmtsetinfo/rstmtsetlist"; // set 진술문 정보
  45. var xHiddenStmtSetInfoPath = "/root/hidden/stmtsetinfo"; // set그룹 hidden
  46. var sDiagstmtcd = ""; //진단정보
  47. var xSignPath = "/root/main/signSaveData/saveDataList";//인증저장관련노드
  48. function fInit() {
  49. var pid = opener.javascript.getParameter("pid");
  50. var indd = opener.javascript.getParameter("indd");
  51. var cretno = opener.javascript.getParameter("cretno");
  52. var patnm = opener.javascript.getParameter("patnm");
  53. var room = opener.javascript.getParameter("room");
  54. var sexage = opener.javascript.getParameter("sexage");
  55. var orddeptcd = opener.javascript.getParameter("orddeptcd");
  56. var medispclid = opener.javascript.getParameter("medispclid");
  57. model.setValue("/root/main/patinfo/pid", pid);
  58. model.setValue("/root/main/patinfo/indd", indd);
  59. model.setValue("/root/main/patinfo/cretno", cretno);
  60. model.setValue("/root/main/patinfo/patnm", patnm);
  61. model.setValue("/root/main/patinfo/room", room);
  62. model.setValue("/root/main/patinfo/sexage", sexage);
  63. model.setValue("/root/main/patinfo/orddeptcd", orddeptcd);
  64. model.setValue("/root/main/patinfo/medispclid", medispclid);
  65. model.setValue("/root/main/patinfo/patinfo", pid + " " + patnm + " " + sexage);
  66. model.refresh();
  67. var cdid = opener.javascript.getParameter("cdid");
  68. var supcdid = opener.javascript.getParameter("supcdid");
  69. model.setValue("/root/main/terminfo/grupcd", cdid);
  70. model.setValue("/root/main/terminfo/supcdid", supcdid);
  71. var sGrupCd = cdid;
  72. model.makeValue("/root/send/grupcd", sGrupCd);
  73. model.makeValue("/root/send/dnarflag","%");//전체
  74. var pStmtCd = "";
  75. if(submit("TRMNR00702", false)){
  76. fSettingStmtSet();
  77. if ( !isNull(pStmtCd) && grd_nursingd.rows - grd_nursingd.fixedRows > 0 ){
  78. grd_nursingd.select( grd_nursingd.findRow(pStmtCd,1,grd_nursingd.colRef("stmtcd"),true,true), 11) = true;
  79. fClickedGridRow(grd_nursingd, "/root/main/stmtsetinfo/nstmtsetlist",
  80. grd_nursingd.findRow(pStmtCd,1,grd_nursingd.colRef("stmtcd"),true,true),
  81. grd_nursingd.colRef("stmtcnts") );
  82. }
  83. for (i = 1; i <= grd_nursingd.rows; i++) {
  84. grd_nursingd.select(i, 11) = true;
  85. }
  86. for (i = 1; i <= grd_data.rows; i++) {
  87. grd_data.valueMatrix(i, grd_data.colRef("check")) = "true";
  88. }
  89. for (i = 1; i <= grd_action.rows; i++) {
  90. grd_action.valueMatrix(i, grd_action.colRef("check")) = "true";
  91. }
  92. for (i = 1; i <= grd_result.rows; i++) {
  93. grd_result.valueMatrix(i, grd_result.colRef("check")) = "true";
  94. }
  95. }
  96. }
  97. function fSettingStmtSet(pFlag){//pFlag : ND일경우 간호진단 검색 탭에서 카피한다.
  98. model.removenodeset(xNStmtSetListPath);
  99. model.removenodeset(xDStmtSetListPath);
  100. model.removenodeset(xAStmtSetListPath);
  101. model.removenodeset(xRStmtSetListPath);
  102. model.refresh();
  103. if (getNodesetCount(xHiddenStmtSetInfoPath) > 0){
  104. if( getNodesetCount(xHiddenStmtSetInfoPath+"/nstmtsetlist") > 0 ){
  105. model.makeNode(xNStmtSetListPath);
  106. copyNodesetType(xNStmtSetListPath, xHiddenStmtSetInfoPath+"/nstmtsetlist", "replace", model, model);
  107. grd_nursingd.resizeCells();
  108. grd_nursingd.refresh();
  109. }
  110. if( getNodesetCount(xHiddenStmtSetInfoPath+"/dstmtsetlist") > 0 ){
  111. model.makeNode(xDStmtSetListPath);
  112. copyNodesetType(xDStmtSetListPath, xHiddenStmtSetInfoPath+"/dstmtsetlist", "replace", model, model);
  113. grd_data.resizeCells();
  114. grd_data.refresh();
  115. }
  116. if( getNodesetCount(xHiddenStmtSetInfoPath+"/astmtsetlist") > 0 ){
  117. model.makeNode(xAStmtSetListPath);
  118. copyNodesetType(xAStmtSetListPath, xHiddenStmtSetInfoPath+"/astmtsetlist", "replace", model, model);
  119. grd_action.resizeCells();
  120. grd_action.refresh();
  121. }
  122. if( getNodesetCount(xHiddenStmtSetInfoPath+"/rstmtsetlist") > 0 ){
  123. model.makeNode(xRStmtSetListPath);
  124. copyNodesetType(xRStmtSetListPath, xHiddenStmtSetInfoPath+"/rstmtsetlist", "replace", model, model);
  125. grd_result.resizeCells();
  126. grd_result.refresh();
  127. }
  128. grd_nursingd.fixedcellischeck(0, grd_nursingd.colRef("check")) = false;
  129. grd_data.fixedcellischeck(0, grd_data.colRef("check")) = false;
  130. grd_action.fixedcellischeck(0, grd_action.colRef("check")) = false;
  131. grd_result.fixedcellischeck(0, grd_result.colRef("check")) = false;
  132. fSettingStmtStyle();
  133. }
  134. }
  135. function fSettingStmtStyle(){
  136. var iTgStmtRow = 0;
  137. grd_data.allstyle("data","color") = "#000000";
  138. var sStmtCDList = instance1.selectNodes(xDStmtSetListPath+"[attrcnt > 0]/stmtcd");
  139. for(var idx=0; idx < sStmtCDList.length; idx++){
  140. iTgStmtRow = grd_data.findRow(sStmtCDList.item(idx).value ,1,grd_data.colRef("stmtcd"),true,true);
  141. if(iTgStmtRow < 0){
  142. // 셋에 속성이 없을 경우 pass
  143. } else {
  144. grd_data.cellstyle("color",iTgStmtRow,grd_data.colRef("stmtcnts")) = "#6600ff";
  145. }
  146. }
  147. grd_action.allstyle("data","color") = "#000000";
  148. sStmtCDList = instance1.selectNodes(xAStmtSetListPath+"[attrcnt > 0]/stmtcd");
  149. for(var idx=0; idx < sStmtCDList.length; idx++){
  150. iTgStmtRow = grd_action.findRow(sStmtCDList.item(idx).value ,1,grd_action.colRef("stmtcd"),true,true);
  151. if(iTgStmtRow < 0){
  152. // 셋에 속성이 없을 경우 pass
  153. } else {
  154. grd_action.cellstyle("color",iTgStmtRow,grd_action.colRef("stmtcnts")) = "#6600ff";
  155. }
  156. }
  157. grd_result.allstyle("data","color") = "#000000";
  158. sStmtCDList = instance1.selectNodes(xRStmtSetListPath+"[attrcnt > 0]/stmtcd");
  159. for(var idx=0; idx < sStmtCDList.length; idx++){
  160. iTgStmtRow = grd_result.findRow(sStmtCDList.item(idx).value ,1,grd_result.colRef("stmtcd"),true,true);
  161. if(iTgStmtRow < 0){
  162. // 셋에 속성이 없을 경우 pass
  163. } else {
  164. grd_result.cellstyle("color",iTgStmtRow,grd_result.colRef("stmtcnts")) = "#6600ff";
  165. }
  166. }
  167. model.refresh();
  168. }
  169. function fSettingGridBackColorNew(pRow){
  170. var iRow = pRow;//grd_nursingd.selectedRow;
  171. var sDNARFlag = model.getValue(xNStmtSetListPath+"["+iRow+"]/dnarflag");
  172. var sCheck = model.getValue(xNStmtSetListPath+"["+iRow+"]/check");
  173. var iTgStmtRow = 0;
  174. var sLnkStmt = model.getValue(xNStmtSetListPath+"["+iRow+"]/lnkstmt");
  175. if(sLnkStmt == "") return;
  176. var sStmtCD = sLnkStmt.split(",");
  177. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  178. iTgStmtRow = grd_data.findRow(sStmtCD[iStmt],1,grd_data.colRef("stmtcd"),true,true);
  179. if(iTgStmtRow < 0){
  180. // 셋에 묶인 진단이 없을 경우 pass
  181. } else {
  182. chkcnt = model.getValue(xDStmtSetListPath + "["+iTgStmtRow+"]/cnt");
  183. if(sCheck == "true"){
  184. chkcnt ++;
  185. }else{
  186. chkcnt --;
  187. }
  188. model.setValue(xDStmtSetListPath+"["+iTgStmtRow+"]/cnt", chkcnt);
  189. }
  190. }
  191. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  192. iTgStmtRow = grd_action.findRow(sStmtCD[iStmt],1,grd_action.colRef("stmtcd"),true,true);
  193. if(iTgStmtRow < 0){
  194. // 셋에 묶인 진단이 없을 경우 pass
  195. } else {
  196. chkcnt = model.getValue(xAStmtSetListPath + "["+iTgStmtRow+"]/cnt");
  197. if(sCheck == "true"){
  198. chkcnt ++;
  199. }else{
  200. chkcnt --;
  201. }
  202. model.setValue(xAStmtSetListPath+"["+iTgStmtRow+"]/cnt", chkcnt);
  203. }
  204. }
  205. for(var iStmt=0; iStmt < sStmtCD.length; iStmt++){
  206. iTgStmtRow = grd_result.findRow(sStmtCD[iStmt],1,grd_result.colRef("stmtcd"),true,true);
  207. if(iTgStmtRow < 0){
  208. // 셋에 묶인 진단이 없을 경우 pass
  209. } else {
  210. chkcnt = model.getValue(xRStmtSetListPath + "["+iTgStmtRow+"]/cnt");
  211. if(sCheck == "true"){
  212. chkcnt ++;
  213. }else{
  214. chkcnt --;
  215. }
  216. model.setValue(xRStmtSetListPath+"["+iTgStmtRow+"]/cnt", chkcnt);
  217. }
  218. }
  219. }
  220. function fClickedGridRow(pObj, pListPath, pRow, pCol){
  221. var iRow = 0;
  222. var iCol = 0;
  223. if(pObj != null){//20080623김홍점 추가 로직
  224. iRow = pRow;
  225. iCol = pCol;
  226. if(iRow < 1 || iRow > pObj.rows) return;
  227. if(iCol != pObj.colRef("check")) {
  228. if(model.getValue(pListPath+"["+iRow+"]/check") == "true"){
  229. model.setValue(pListPath+"["+iRow+"]/check","false");
  230. }else{
  231. model.setValue(pListPath+"["+iRow+"]/check","true");
  232. if( pObj == grd_nursingd ){
  233. gDiagStmtcd = model.getValue(pListPath+"["+iRow+"]/stmtcd");
  234. gDiagStmtNm = model.getValue(pListPath+"["+iRow+"]/stmtcnts");
  235. }
  236. }
  237. } else {
  238. if(model.getValue(pListPath+"["+iRow+"]/check") == "true"){
  239. if( pObj == grd_nursingd ){
  240. gDiagStmtcd = model.getValue(pListPath+"["+iRow+"]/stmtcd");
  241. gDiagStmtNm = model.getValue(pListPath+"["+iRow+"]/stmtcnts");
  242. }
  243. }
  244. }
  245. if( pObj == grd_nursingd ){
  246. fSettingGridBackColorNew(pRow);
  247. }
  248. }else{
  249. switch(sSrchToolStatus){
  250. case "J": // 진술문 검색
  251. iRow = grd_srchstmtinfo.row;
  252. iCol = grd_srchstmtinfo.col;
  253. if(iCol == 2) return;
  254. if(iRow < 1) return;
  255. if(model.getValue(xStmtInfoPath+"["+iRow+"]/check") == "true"){
  256. model.setValue(xStmtInfoPath+"["+iRow+"]/check","false");
  257. }else{
  258. model.setValue(xStmtInfoPath+"["+iRow+"]/check", "true");
  259. }
  260. grd_srchstmtinfo.rebuild();
  261. break;
  262. }
  263. }
  264. }
  265. function fSaveStmtInfo() {
  266. if(model.getValue("/root/main/patinfo/pid") == ""){
  267. messageBox("환자를 먼저","C002");
  268. return;
  269. }
  270. //저장내역이 있는지 검증
  271. var origincd = model.getValue("/root/main/terminfo/grupcd");
  272. var supcdid = model.getValue("/root/main/terminfo/supcdid");
  273. model.removenode("root/send/recinfo");
  274. model.makeValue("root/send/recinfo/pid", model.getValue("/root/main/patinfo/pid") );
  275. model.makeValue("root/send/recinfo/indd", model.getValue("/root/main/patinfo/indd"));
  276. model.makeValue("root/send/recinfo/cretno", model.getValue("/root/main/patinfo/cretno"));
  277. model.makeValue("root/send/recinfo/origincd", origincd);
  278. submit("TRMNR02902");
  279. var recyn = model.getValue("/root/temp/recinfo/recyn");
  280. if (recyn == "Y") {
  281. messageBox("이미 저장된 내역이 존재합니다. 간호일지 화면에서 확인하세요.", "I999");
  282. return;
  283. } else {
  284. // 저장 진술문 헤더
  285. var sHeadInfo = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦"
  286. + "pid▦indd▦cretno▦instcd▦ioflag▦orddeptcd▦recflag▦reclnkkey▦orddd▦diagstmtcd▩"; // 저장 정보
  287. // 저장 진술문 내용
  288. var sStmtInfo = "";
  289. var stmtcnts = "";
  290. var stmtcd = "";
  291. var dnarflag = "";
  292. var recoriginflag = "S";
  293. var instcd = getUserInfo("dutplceinstcd");
  294. var d = new Date();
  295. var recdt = d.getDateFormat("YYYYMMDDhhmmss"); //기록일시
  296. d.setTime(d.getTime() + 5*60*1000);
  297. var recdt10 = d.getDateFormat("YYYYMMDDhhmmss"); //Result 기록일시(자동 5분 후로 기록)
  298. model.removenode("/root/send/srchinfo");
  299. // 진단
  300. for (i = 1; i <= grd_nursingd.rows; i++) {
  301. if (grd_nursingd.isSelected(i)) {
  302. stmtcnts = model.getValue("/root/main/stmtsetinfo/nstmtsetlist[" + i + "]/stmtcnts");
  303. stmtcd = model.getValue("/root/main/stmtsetinfo/nstmtsetlist[" + i + "]/stmtcd");
  304. sDiagstmtcd = stmtcd;
  305. dnarflag = "2N";
  306. sStmtInfo += stmtcnts + "▦" //stmtcnts
  307. + "▦" //attrinfo
  308. + "I▦" //status
  309. + origincd + "▦" //origincd
  310. + stmtcd + "▦" //stmtcd
  311. + dnarflag +"▦" //dnarflag
  312. + recoriginflag + "▦" //recoriginflag
  313. + "U▦" //recdtflag
  314. + recdt + "▦" //recdt
  315. + model.getValue("/root/main/patinfo/pid") + "▦" //pid
  316. + model.getValue("/root/main/patinfo/indd") + "▦" //indd
  317. + model.getValue("/root/main/patinfo/cretno") + "▦" //cretno
  318. + instcd + "▦" //instcd
  319. + "I▦" //ioflag
  320. + model.getValue("/root/main/patinfo/orddeptcd") + "▦" //orddeptcd
  321. + "G▦" //recflag
  322. + "▦" //reclnkkey
  323. + "-▦" //orddd
  324. + sDiagstmtcd + "▩"; //diagstmtcd
  325. }
  326. }
  327. // Data
  328. for (i = 1; i <= grd_data.rows; i++) {
  329. var check = model.getValue("/root/main/stmtsetinfo/dstmtsetlist[" + i + "]/check");
  330. if (check) {
  331. stmtcnts = model.getValue("/root/main/stmtsetinfo/dstmtsetlist[" + i + "]/stmtcnts");
  332. stmtcd = model.getValue("/root/main/stmtsetinfo/dstmtsetlist[" + i + "]/stmtcd");
  333. dnarflag = "1D";
  334. sStmtInfo += stmtcnts + "▦" //stmtcnts
  335. + "▦" //attrinfo
  336. + "I▦" //status
  337. + origincd + "▦" //origincd
  338. + stmtcd + "▦" //stmtcd
  339. + dnarflag +"▦" //dnarflag
  340. + recoriginflag + "▦" //recoriginflag
  341. + "U▦" //recdtflag
  342. + recdt + "▦" //recdt
  343. + model.getValue("/root/main/patinfo/pid") + "▦" //pid
  344. + model.getValue("/root/main/patinfo/indd") + "▦" //indd
  345. + model.getValue("/root/main/patinfo/cretno") + "▦" //cretno
  346. + instcd + "▦" //instcd
  347. + "I▦" //ioflag
  348. + model.getValue("/root/main/patinfo/orddeptcd") + "▦" //orddeptcd
  349. + "G▦" //recflag
  350. + "▦" //reclnkkey
  351. + "-▦" //orddd
  352. + sDiagstmtcd + "▩"; //diagstmtcd
  353. }
  354. }
  355. // Action
  356. for (i = 1; i <= grd_action.rows; i++) {
  357. var check = model.getValue("/root/main/stmtsetinfo/astmtsetlist[" + i + "]/check");
  358. if (check) {
  359. stmtcnts = model.getValue("/root/main/stmtsetinfo/astmtsetlist[" + i + "]/stmtcnts");
  360. stmtcd = model.getValue("/root/main/stmtsetinfo/astmtsetlist[" + i + "]/stmtcd");
  361. dnarflag = "3A";
  362. sStmtInfo += stmtcnts + "▦" //stmtcnts
  363. + "▦" //attrinfo
  364. + "I▦" //status
  365. + origincd + "▦" //origincd
  366. + stmtcd + "▦" //stmtcd
  367. + dnarflag +"▦" //dnarflag
  368. + recoriginflag + "▦" //recoriginflag
  369. + "U▦" //recdtflag
  370. + recdt + "▦" //recdt
  371. + model.getValue("/root/main/patinfo/pid") + "▦" //pid
  372. + model.getValue("/root/main/patinfo/indd") + "▦" //indd
  373. + model.getValue("/root/main/patinfo/cretno") + "▦" //cretno
  374. + instcd + "▦" //instcd
  375. + "I▦" //ioflag
  376. + model.getValue("/root/main/patinfo/orddeptcd") + "▦" //orddeptcd
  377. + "G▦" //recflag
  378. + "▦" //reclnkkey
  379. + "-▦" //orddd
  380. + sDiagstmtcd + "▩"; //diagstmtcd
  381. }
  382. }
  383. // Result
  384. for (i = 1; i <= grd_result.rows; i++) {
  385. var check = model.getValue("/root/main/stmtsetinfo/rstmtsetlist[" + i + "]/check");
  386. if (check) {
  387. stmtcnts = model.getValue("/root/main/stmtsetinfo/rstmtsetlist[" + i + "]/stmtcnts");
  388. stmtcd = model.getValue("/root/main/stmtsetinfo/rstmtsetlist[" + i + "]/stmtcd");
  389. dnarflag = "4R";
  390. sStmtInfo += stmtcnts + "▦" //stmtcnts
  391. + "▦" //attrinfo
  392. + "I▦" //status
  393. + origincd + "▦" //origincd
  394. + stmtcd + "▦" //stmtcd
  395. + dnarflag +"▦" //dnarflag
  396. + recoriginflag + "▦" //recoriginflag
  397. + "U▦" //recdtflag
  398. + recdt10 + "▦" //recdt
  399. + model.getValue("/root/main/patinfo/pid") + "▦" //pid
  400. + model.getValue("/root/main/patinfo/indd") + "▦" //indd
  401. + model.getValue("/root/main/patinfo/cretno") + "▦" //cretno
  402. + instcd + "▦" //instcd
  403. + "I▦" //ioflag
  404. + model.getValue("/root/main/patinfo/orddeptcd") + "▦" //orddeptcd
  405. + "G▦" //recflag
  406. + "▦" //reclnkkey
  407. + "-▦" //orddd
  408. + sDiagstmtcd + "▩"; //diagstmtcd
  409. }
  410. }
  411. model.makeValue("/root/send/srchinfo/saveData", sHeadInfo + sStmtInfo );
  412. var sSrchHeader = "pid▦indd▦orddd▦cretno▦ioflag▦fromdd▦todd▦dnarflag▦sortseq▦recflag▦reclnkkey▦carediagflag▦recsrchflag▦recusrid▩";
  413. var sSrchData = model.getValue("/root/main/patinfo/pid") + "▦"
  414. + model.getValue("/root/main/patinfo/indd") + "▦"
  415. + "-▦" //orddd
  416. + model.getValue("/root/main/patinfo/cretno") + "▦"
  417. + "I▦" //ioflag
  418. + getCurrentDate() + "▦" //fromdd
  419. + getCurrentDate() + "▦" //todd
  420. + "%▦" //dnarflag
  421. + "D▦" //sortseq
  422. + "G▦" //RecFlag
  423. + "▦" //sRecLnkKey
  424. + "T▦" //carediagflag
  425. + "NR^DR▦" //recsrchflag
  426. + "%▩"; //recusrid
  427. model.makeValue("/root/send/srchinfo/srchinfo",sSrchHeader+sSrchData );
  428. fSign();
  429. if (submit("TXMNR00701")) {
  430. fViewSign();
  431. messageBox("인증저장 ","I002");
  432. window.close();
  433. }
  434. }
  435. }
  436. function fSign() {
  437. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
  438. Sign.certchkflag = "Y";
  439. if(Sign.signprocess() == true){
  440. //return;
  441. model.makeValue("/root/send/signdata/pid", model.getValue("/root/main/patinfo/pid") ); //등록번호
  442. model.makeValue("/root/send/signdata/orddd", model.getValue("/root/main/patinfo/indd") ); //입원일자
  443. model.makeValue("/root/send/signdata/signno", ""); //서명번호
  444. model.makeValue("/root/send/signdata/cretno", model.getValue("/root/main/patinfo/cretno") ); //생성번호
  445. model.makeValue("/root/send/signdata/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자
  446. model.makeValue("/root/send/signdata/rectm", getCurrentTime()); //실제 기록이 이루어진 기록시간
  447. model.makeValue("/root/send/signdata/recsaveflag", "Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  448. model.makeValue("/root/send/signdata/signflag", "02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  449. model.makeValue("/root/send/signdata/signgenrflag", "I" ); //외래/입원구분(코드정의서 M0010 참조)
  450. model.makeValue("/root/send/signdata/formcd", "0000002432" ); //각 기록지별 서식코드
  451. model.makeValue("/root/send/signdata/orddeptcd", model.getValue("/root/main/patinfo/orddeptcd") ); //진료부서코드
  452. model.makeValue("/root/send/signdata/orddrid", model.getValue("/root/main/patinfo/medispclid") ); //진료의사ID
  453. model.makeValue("/root/send/signdata/dispyn", "N"); //기록뷰어에는 조회안되도록
  454. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  455. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  456. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
  457. // 공인인증 처리후 데이터
  458. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  459. } else{
  460. return false;
  461. }
  462. model.makeValue("/root/send/signdata/screenid", getScreenID());
  463. return true;
  464. }
  465. function fMake_SignData() {
  466. Sign.addnode("/root/main/signSaveData");
  467. }
  468. function fViewSign() {
  469. Sign.certreload = false ;
  470. var signRecDD = "";
  471. var sSignDataRowCnt = "";
  472. model.removenodeset("/root/send/signdata");
  473. for( var idx = 1 ; idx <= getNodesetCount("/root/hidden/recinfo/nursingrecordlist"); idx++ ){
  474. signRecDD = model.getValue("/root/hidden/recinfo/nursingrecordlist["+ idx +"]/recdd_vw");
  475. model.removenodeset(xSignPath);
  476. model.makeNode(xSignPath);
  477. if(getNodesetCount("/root/hidden/recinfo/totnursingrecordlist[recdd='"+ signRecDD +"']")>0 ){
  478. copyNodeset(xSignPath,"/root/hidden/recinfo/totnursingrecordlist[recdd='"+ signRecDD +"']");
  479. if(Sign.signprocess() == true){
  480. sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  481. // 전자인증 관련 환자 인적 정보를 보내줌.
  482. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/status", "i");
  483. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", model.getValue("/root/main/patinfo/pid") ); //등록번호
  484. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", model.getValue("/root/main/patinfo/indd")); //입원일자(입원,응급)/진료일자(외래)
  485. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", ""); //서명번호
  486. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", model.getValue("/root/main/patinfo/cretno")); //생성번호
  487. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",getCurrentDate()); // 실제 기록이 이루어진 기록일자
  488. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm",getCurrentTime()); //실제 기록이 이루어진 기록시간
  489. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recsaveflag","Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  490. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
  491. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag","I" ); //외래/입원구분(코드정의서 M0010 참조)
  492. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
  493. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddeptcd", model.getValue("/root/main/patinfo/orddeptcd")); //진료부서코드
  494. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddrid", model.getValue("/root/main/patinfo/medispclid") ); //진료의사ID
  495. // 인증할 데이터 정보(미기록 노드 제거된 정보)
  496. // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  497. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", Sign.signedInfos[1]);
  498. // 공인인증 처리후 데이터
  499. // model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  500. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/screenid", getScreenID());
  501. }
  502. }
  503. }
  504. if ( getNodesetCount("/root/send/signdata") < 1 ){
  505. return;
  506. }
  507. submit("TXMNR00904");
  508. }
  509. ]]>
  510. </script>
  511. <submission id="TRMNR00702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/hidden/stmtsetinfo"/>
  512. <submission id="TRMNR02902" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/recinfo"/>
  513. <submission id="TXMNR00701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/hidden/recinfo"/>
  514. <submission id="TXMNR00904" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/sign/viewdata"/>
  515. </model>
  516. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  517. <script type="javascript" src="../../../emr/commonweb/js/EMRCommon.js"/>
  518. <script type="javascript" src="../../../emr/carecomweb/js/CareCom.js"/>
  519. <script type="javascript" src="../../../emr/carerecweb/js/CareRec.js"/>
  520. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  521. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  522. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  523. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  524. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  525. <script type="javascript" src="../../../emr/carecomweb/js/ENRSignEngine.js"/>
  526. </xhtml:head>
  527. <!--xhtml:body guideline="1,1194;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; "-->
  528. <xhtml:body pagewidth="1220" pageheight="550" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  529. <group id="group2" style="left:0px; top:0px; width:1195px; height:30px; ">
  530. <caption id="cap_title" class="tit_2" style="left:0px; top:10px; width:140px; height:14px; ">간호일지 CP기록</caption>
  531. <line id="line7" class="line_1" style="x1:0px; y1:25px; x2:1160px; y2:25px; "/>
  532. <output id="output1" ref="/root/main/patinfo/patinfo" style="left:135px; top:5px; width:515px; height:19px; font-weight:bold; color:#3366ff; vertical-align:bottom; "/>
  533. </group>
  534. <group id="group1" style="left:0px; top:30px; width:1195px; height:495px; ">
  535. <datagrid id="grd_action" nodeset="/root/main/stmtsetinfo/astmtsetlist" allowselection="false" autoresize="true" backcoloralternate="#ffffff" caption="DNAR 구분^stmtcd^dnarflag^attrcnt^grupcd^lnkstmt^attrinfo1^attrinfo2^attressnyn^선택^Action" colsep="^" colwidth="0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 218" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:559px; top:23px; width:305px; height:454px; ">
  536. <col ref="dnar" type="combo" visibility="hidden" style="text-align:center; vertical-align:top; ">
  537. <choices>
  538. <itemset nodeset="/root/init/srchdnar/itemset">
  539. <label ref="itemnm"/>
  540. <value ref="itemcd"/>
  541. </itemset>
  542. </choices>
  543. </col>
  544. <col ref="stmtcd" visibility="hidden"/>
  545. <col ref="dnarflag" visibility="hidden"/>
  546. <col ref="attrcnt" visibility="hidden">
  547. <![CDATA[/>]]>
  548. </col>
  549. <col ref="grupcd" visibility="hidden">
  550. <![CDATA[/>]]>
  551. </col>
  552. <col ref="lnkstmt" visibility="hidden">
  553. <![CDATA[/>]]>
  554. </col>
  555. <col ref="attrinfo1" visibility="hidden">
  556. <![CDATA[/>]]>
  557. </col>
  558. <col ref="attrinfo2" visibility="hidden">
  559. <![CDATA[/>]]>
  560. </col>
  561. <col ref="attressnyn" visibility="hidden">
  562. <![CDATA[/>]]>
  563. </col>
  564. <col ref="check" type="checkbox"/>
  565. <col ref="stmtcnts"/>
  566. <script type="javascript" ev:event="xforms-value-changed">
  567. <![CDATA[
  568. //fSettingGridBackColor();
  569. //fSettingGridBackColorNew();
  570. ]]>
  571. </script>
  572. <script type="javascript" ev:event="onclick">
  573. <![CDATA[
  574. // 간호 ITC 확인 후 반영 예정
  575. // grd_grupstmtinfo.attribute("focuscolor") = "transparent";
  576. if(grd_action.isCell(event.target) && grd_action.mouseRow >= grd_action.fixedrows) {
  577. fClickedGridRow(grd_action, "/root/main/stmtsetinfo/astmtsetlist",grd_action.mouseRow, grd_action.mouseCol);
  578. }
  579. ]]>
  580. </script>
  581. </datagrid>
  582. <datagrid id="grd_nursingd" nodeset="/root/main/stmtsetinfo/nstmtsetlist" allowselection="false" autoresize="true" backcoloralternate="#ffffff" caption="DNAR 구분^stmtcd^dnarflag^attrcnt^grupcd^lnkstmt^attrinfo1^attrinfo2^attressnyn^선택^Nursing D." colsep="^" colwidth="0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:2px; top:23px; width:275px; height:454px; ">
  583. <col ref="dnar" type="combo" visibility="hidden" style="text-align:center; vertical-align:top; ">
  584. <choices>
  585. <itemset nodeset="/root/init/srchdnar/itemset">
  586. <label ref="itemnm"/>
  587. <value ref="itemcd"/>
  588. </itemset>
  589. </choices>
  590. </col>
  591. <col ref="stmtcd" visibility="hidden"/>
  592. <col ref="dnarflag" visibility="hidden"/>
  593. <col ref="attrcnt" visibility="hidden">
  594. <![CDATA[/>]]>
  595. </col>
  596. <col ref="grupcd" visibility="hidden">
  597. <![CDATA[/>]]>
  598. </col>
  599. <col ref="lnkstmt" visibility="hidden">
  600. <![CDATA[/>]]>
  601. </col>
  602. <col ref="attrinfo1" visibility="hidden">
  603. <![CDATA[/>]]>
  604. </col>
  605. <col ref="attrinfo2" visibility="hidden">
  606. <![CDATA[/>]]>
  607. </col>
  608. <col ref="attressnyn" visibility="hidden">
  609. <![CDATA[/>]]>
  610. </col>
  611. <col disabled="true" ref="check" type="checkbox"/>
  612. <col ref="stmtcnts"/>
  613. <script type="javascript" ev:event="xforms-value-changed">
  614. <![CDATA[
  615. fSettingGridBackColorNew(grd_nursingd.row);
  616. ]]>
  617. </script>
  618. <script type="javascript" ev:event="onclick">
  619. <![CDATA[
  620. // 간호 ITC 확인 후 반영 예정
  621. // grd_grupstmtinfo.attribute("focuscolor") = "transparent";
  622. if(grd_nursingd.isCell(event.target) && grd_nursingd.mouseRow >= grd_nursingd.fixedrows) {
  623. //fClickedGridRow(grd_nursingd, "/root/main/stmtsetinfo/nstmtsetlist", grd_nursingd.row, grd_nursingd.col);
  624. }
  625. ]]>
  626. </script>
  627. </datagrid>
  628. <datagrid id="grd_result" nodeset="/root/main/stmtsetinfo/rstmtsetlist" allowselection="false" autoresize="true" backcoloralternate="#ffffff" caption="DNAR 구분^stmtcd^dnarflag^attrcnt^grupcd^lnkstmt^attrinfo1^attrinfo2^attressnyn^선택^Result" colsep="^" colwidth="0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 207" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:865px; top:23px; width:295px; height:454px; ">
  629. <col ref="dnar" type="combo" visibility="hidden" style="text-align:center; vertical-align:top; ">
  630. <choices>
  631. <itemset nodeset="/root/init/srchdnar/itemset">
  632. <label ref="itemnm"/>
  633. <value ref="itemcd"/>
  634. </itemset>
  635. </choices>
  636. </col>
  637. <col ref="stmtcd" visibility="hidden"/>
  638. <col ref="dnarflag" visibility="hidden"/>
  639. <col ref="attrcnt" visibility="hidden">
  640. <![CDATA[/>]]>
  641. </col>
  642. <col ref="grupcd" visibility="hidden">
  643. <![CDATA[/>]]>
  644. </col>
  645. <col ref="lnkstmt" visibility="hidden">
  646. <![CDATA[/>]]>
  647. </col>
  648. <col ref="attrinfo1" visibility="hidden">
  649. <![CDATA[/>]]>
  650. </col>
  651. <col ref="attrinfo2" visibility="hidden">
  652. <![CDATA[/>]]>
  653. </col>
  654. <col ref="attressnyn" visibility="hidden">
  655. <![CDATA[/>]]>
  656. </col>
  657. <col ref="check" type="checkbox"/>
  658. <col ref="stmtcnts"/>
  659. <script type="javascript" ev:event="xforms-value-changed">
  660. <![CDATA[
  661. //fSettingGridBackColor();
  662. //fSettingGridBackColorNew();
  663. ]]>
  664. </script>
  665. <script type="javascript" ev:event="onclick">
  666. <![CDATA[
  667. // 간호 ITC 확인 후 반영 예정
  668. if(grd_result.isCell(event.target) && grd_result.mouseRow >= grd_result.fixedrows) {
  669. fClickedGridRow(grd_result, "/root/main/stmtsetinfo/rstmtsetlist",grd_result.mouseRow, grd_result.mouseCol);
  670. }
  671. ]]>
  672. </script>
  673. </datagrid>
  674. <button id="btn_save" class="btn2_letter2" navindex="11" style="left:1118px; top:2px; width:42px; height:19px; ">
  675. <caption>저장</caption>
  676. <script type="javascript" ev:event="DOMActivate">
  677. <![CDATA[
  678. fSaveStmtInfo();
  679. ]]>
  680. </script>
  681. </button>
  682. <datagrid id="grd_data" nodeset="/root/main/stmtsetinfo/dstmtsetlist" allowselection="false" autoresize="true" backcoloralternate="#ffffff" caption="DNAR 구분^stmtcd^dnarflag^attrcnt^grupcd^lnkstmt^attrinfo1^attrinfo2^attressnyn^선택^Data" colsep="^" colwidth="0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 192" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:278px; top:23px; width:280px; height:454px; ">
  683. <col ref="dnar" type="combo" visibility="hidden" style="text-align:center; vertical-align:top; ">
  684. <choices>
  685. <itemset nodeset="/root/init/srchdnar/itemset">
  686. <label ref="itemnm"/>
  687. <value ref="itemcd"/>
  688. </itemset>
  689. </choices>
  690. </col>
  691. <col ref="stmtcd" visibility="hidden"/>
  692. <col ref="dnarflag" visibility="hidden"/>
  693. <col ref="attrcnt" visibility="hidden">
  694. <![CDATA[/>]]>
  695. </col>
  696. <col ref="grupcd" visibility="hidden">
  697. <![CDATA[/>]]>
  698. </col>
  699. <col ref="lnkstmt" visibility="hidden">
  700. <![CDATA[/>]]>
  701. </col>
  702. <col ref="attrinfo1" visibility="hidden">
  703. <![CDATA[/>]]>
  704. </col>
  705. <col ref="attrinfo2" visibility="hidden">
  706. <![CDATA[/>]]>
  707. </col>
  708. <col ref="attressnyn" visibility="hidden">
  709. <![CDATA[/>]]>
  710. </col>
  711. <col ref="check" type="checkbox"/>
  712. <col ref="stmtcnts"/>
  713. <script type="javascript" ev:event="onclick">
  714. <![CDATA[
  715. // 간호 ITC 확인 후 반영 예정
  716. if(grd_data.isCell(event.target) && grd_data.mouseRow >= grd_data.fixedrows) {
  717. fClickedGridRow(grd_data, "/root/main/stmtsetinfo/dstmtsetlist",grd_data.mouseRow, grd_data.mouseCol);
  718. }
  719. ]]>
  720. </script>
  721. </datagrid>
  722. </group>
  723. </xhtml:body>
  724. </xhtml:html>