123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864 |
- /*
-
- 간호일지수정(SMMNR02800.xfm - JScript )
- - Version :
- 1) : Ver.1.00.01
- */
- var xGrupInfoPath = "/root/main/srchtoolinfo/grupinfo/gruplist"; // SET 그룹 정보
- var xStmtSetListPath = "/root/main/srchtoolinfo/stmtsetinfo/stmtsetlist"; // SET 진술문 정보
- var xStmtInfoPath = "/root/main/srchtoolinfo/stmtinfo/stmtlist"; // 진술문 정보
- var xSrchToolCondPath = "/root/main/cond/srchtool"; // 검색도구 조건
- var xRecSaveCondPath = "/root/main/cond/recsave"; // 저장도구 조건
- var xRecSrchCondPath = "/root/main/cond/recsrch"; // 기록조회 조건
- var xNursingRecordInfoPath = "/root/main/recinfo/nursingrecordinfo"; // 간호일지 정보
- var xHiddenNStmtSetListPath = "/root/hidden/stmtsetinfo/nstmtsetlist"; // 20080621 김홍점 SET 진술문 정보
- var xHiddenDStmtSetListPath = "/root/hidden/stmtsetinfo/dstmtsetlist"; // 20080621 김홍점 SET 진술문 정보
- var xHiddenAStmtSetListPath = "/root/hidden/stmtsetinfo/astmtsetlist"; // 20080621 김홍점 SET 진술문 정보
- var xHiddenRStmtSetListPath = "/root/hidden/stmtsetinfo/rstmtsetlist"; // 20080621 김홍점 SET 진술문 정보
- var xSignPath = "/root/main/signSaveData/saveDataList";//인증저장관련노드
- var sSrchToolStatus = "";
- var xPamInfoPath = "/root/main/paminfo/pamlist"; // 환자정보
- var sRecOriginFlag ="";
- var sOriginCd ="";
- //dnarnm▦usernm▦deptflagnm▩
- var sDnarNm ="";
- var sUserNm ="";
- var sDeptFlagNm ="";
- var sRecDateFlag ="";
- var sPid = ""; // 환자번호
- var sIndd = ""; // 입원일자
- var sOutDD = ""; // 진료일자
- var sCretNo = ""; // 환자 일자별 일련번호
- var sInstcd = "";
- var sIOFlag = ""; // 입원/외래 구분
- var sOrdDeptCd = ""; // 진료과코드
- var sOrdDrId = ""; // 진료의사ID
- var sHngNm = "";
- var sHomeYn = "";//가정간호인지 아닌지의 여부를 판단하기 위해추가.. 20090401 가정간호가 상단정보를 올리면서 상단정보의 진료일정을 읽지 못하도록 막아야함.20090403 김홍점
- var sParamMsg = "";
- var sParamCertflag = "Y"; //인증저장시 미인증 유효시간관련 변수(20120905 KJS)
- var vsettime = "";
- /**
- * @group :
- * @ver : 2007.04.23
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 화면 초기화
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fInit(){
- zbcfGetCodeList(new Array("M0002"), new Array("/root/init/M0002list")); // 출처정보
- opener.javascript.setParameter("SMMNR02800_ReturnFlag","");
- opener.javascript.setParameter("SMMNR02800_SignRecYN","");
- opener.javascript.setParameter("SMMNR02800_vsettime","");
-
- // 검색 조건
- model.setValue(xSrchToolCondPath+"/grupflag","1");
- model.removenodeset(xGrupInfoPath);
-
- //model.setValue(xSrchToolCondPath+"/freetextdnarflag","1D");
-
- // 저장조건
- //"recdd▦rectm▦dnarflag▦stmtspec▦fstrgstrnm▦certkey▦recverno▦stmtcd▦origincd▦recoriginflag▦carerecno▦dnarnm▦deptflagnm▦pid▦indd▦orddd▦cretno▦instcd▦ioflag▦orddeptcd▦orddrid▦hngnm▦homeyn▩"
- //"recdd▦rectm▦dnarflag▦stmtspec▦fstrgstrnm▦signno▦recverno▦stmtcd▦origincd▦recoriginflag▦carerecno▦dnarnm▦deptflagnm▦certchkflag▩";
- sParamMsg = opener.javascript.getParameter("SMMNR02800_Param");
- opener.javascript.setParameter("SMMNR02800_Param","");
-
- sRecOriginFlag = getArrayData(sParamMsg,1,9);
- sOriginCd = getArrayData(sParamMsg,1,8);
- var sStmtCD = getArrayData(sParamMsg,1,7);
- var sRecDD = getArrayData(sParamMsg,1,0);
- var sRecTM = getArrayData(sParamMsg,1,1);
- var sDnarFlag = getArrayData(sParamMsg,1,2);
- model.setValue(xRecSaveCondPath+"/recdateflag", "U"); // 자동
- model.setValue(xRecSaveCondPath+"/recdd", sRecDD); // 기록일자
- model.setValue(xRecSaveCondPath+"/rectm", sRecTM); // 기록시간
- //model.setValue(xRecSaveCondPath+"/recdnarflag", "1D"); // dnar 구분
-
- model.setValue(xNursingRecordInfoPath+"/recdd",sRecDD); // 기록일자
- model.setValue(xNursingRecordInfoPath+"/rectm",sRecTM); // 기록시간
-
- model.setValue(xNursingRecordInfoPath+"/dnarflag",sDnarFlag); // dnar구분
-
- model.setValue(xRecSaveCondPath+"/recdnarflag", sDnarFlag); // dnar 구분
- //조회할 DNAR구분 을 param에 따라 선택해서 disable시킴.
- model.setValue(xSrchToolCondPath+"/dnarflag",sDnarFlag);
- model.setValue(xSrchToolCondPath+"/freetextdnarflag",sDnarFlag);
-
- rdo_dnarflag.disabled = true;
- rdo_setdnarflag.disabled = true;
- rdo_freednarflag.disabled = true;
-
- model.setValue(xNursingRecordInfoPath+"/stmtspec",getArrayData(sParamMsg,1,3)); // 진술문내역
- model.setValue(xNursingRecordInfoPath+"/fstrgstrnm",getArrayData(sParamMsg,1,4)); // 최초등록자명
- model.setValue(xNursingRecordInfoPath+"/certkey",getArrayData(sParamMsg,1,5)); // 인증키
- model.setValue(xNursingRecordInfoPath+"/recverno",getArrayData(sParamMsg,1,6)); // 기록버전번호
- model.setValue(xNursingRecordInfoPath+"/stmtcd",sStmtCD); // 진술문코드
- model.setValue(xNursingRecordInfoPath+"/origincd",sOriginCd); // 출처코드
- model.setValue(xNursingRecordInfoPath+"/recoriginflag",sRecOriginFlag); // 기록출처구분
- model.setValue(xNursingRecordInfoPath+"/carerecno",getArrayData(sParamMsg,1,10)); // 간호기록번호
-
- sDnarNm = getArrayData(sParamMsg,1,11);
- sUserNm = getArrayData(sParamMsg,1,4);
- sDeptFlagNm = getArrayData(sParamMsg,1,12); //타입2에서 넘어온건 용도부서 선택, 간호일지에서 넘어온건 간호진단명.
- sHomeYn = getArrayData(sParamMsg,1,22); // 가정간호여부("Y" 또는 "")
-
- if(getArrayData(sParamMsg,1,5) != ""){
- model.setValue(xNursingRecordInfoPath+"/cretyn","인증");
- }
-
- if( sRecOriginFlag != "T"
- && sDnarFlag !="S"
- && (isNull(model.getValue(xNursingRecordInfoPath+"/recverno"))||model.getValue(xNursingRecordInfoPath+"/recverno") == "0")) {
- btn_freesave.disabled = "true";//간호일지일 경우 진단 미존재시 freetext는 수정금지
- textarea3.disabled = "true";
- }
-
- // 환자정보 조회
- var sPamInfo = getGlobalVariable("paminfo");
- setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
-
- if( sHomeYn == "Y" || ( sHomeYn != "Y" && !isNull(getArrayData(sParamMsg,1,14)) ) ) {
- sPid = getArrayData(sParamMsg,1,13); // 환자번호
- sIndd = getArrayData(sParamMsg,1,14); // 입원일자
- sOutDD = getArrayData(sParamMsg,1,15); // 진료일자
- sCretNo = getArrayData(sParamMsg,1,16); // 환자 일자별 일련번호
- sInstcd = getArrayData(sParamMsg,1,17);
- sIOFlag = getArrayData(sParamMsg,1,18); // 입원/외래 구분
- sOrdDeptCd = getArrayData(sParamMsg,1,19); // 진료과코드
- sOrdDrId = getArrayData(sParamMsg,1,20); // 진료과코드
- sHngNm = getArrayData(sParamMsg,1,21); // 환자명
-
- if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D") {
- sIndd = getArrayData(sParamMsg,1,14); // 입원일자
- sOutDD = "-"; // 진료일자
- } else{
- sIndd = "-"; // 입원일자
- sOutDD = getArrayData(sParamMsg,1,15); // 진료일자
- }
- } else {
- sPid = model.getValue(xPamInfoPath+"/pid"); // 환자번호
- sIndd = model.getValue(xPamInfoPath+"/indd"); // 입원일자
- sCretNo = model.getValue(xPamInfoPath+"/cretno"); // 환자 일자별 일련번호
- sInstcd = model.getValue(xPamInfoPath+"/instcd"); // 기관코드
- sIOFlag = model.getValue(xPamInfoPath+"/ioflag"); // 입원/외래 구분
- sOrdDeptCd = model.getValue(xPamInfoPath+"/orddeptcd"); // 진료과코드
- sOrdDrId = model.getValue(xPamInfoPath+"/medispclid"); // 진료과코드
- sOutDD = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
- sHngNm = model.getValue(xPamInfoPath+"/hngnm");
- if(sIOFlag == "I" || sIOFlag == "E" || sIOFlag == "D"){
- sIndd = model.getValue(xPamInfoPath+"/indd"); // 입원일자
- sOutDD = "-"; // 진료일자
- }else{
- sIndd = "-"; // 입원일자
- sOutDD = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
- }
-
- sParamCertflag = getArrayData(sParamMsg,1,13); // 인증저장시 미인증 유효시간관련 변수(20120905 KJS)
- }
-
- model.refresh();
- // 기록 조회 조건
- sSrchToolStatus = (sRecOriginFlag == "T" ? "S" : sRecOriginFlag);
-
- // if(sRecOriginFlag == "F"){
- // btn_bottomsave.disabled = true;
- // }
-
- if(sSrchToolStatus == "S" ){
- //swt_srchtool.selectedIndex = 0;
- model.toggle("case_grup");
- model.removenode("/root/send");
- model.makeValue("/root/send/grupcd", sOriginCd);
- if(submit("TRMNR02801")){
- var sRowCnt = grd_grupinfo.rows-grd_grupinfo.fixedRows;
- for(var i=1; i<=sRowCnt; i++){
- sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
- grd_grupinfo.outlinelevel(i)=sDepth;
- }
- grd_grupinfo.OutlineCol=1; //연결선이 표현되는 컬럼
- grd_grupinfo.OutlineBar=4; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
- grd_grupinfo.TreeColor="gray";
- }
-
- var iRow = grd_grupinfo.findRow(sOriginCd,1,grd_grupinfo.colRef("grupcd"));
- grd_grupinfo.row = iRow;
- grd_grupinfo.bottomRow = iRow;
-
- if ( sRecOriginFlag == "T" ){//타입2이면 용도( 부서)
- model.setValue(xSrchToolCondPath+"/grupflag", "5");
- } else {
- model.setValue(xSrchToolCondPath+"/grupflag", model.getValue(xGrupInfoPath+"["+iRow+"]/grupflag"));
- rdo_grupflag.refresh();
-
- fSearchSrchTool("StmtSet");
- iRow = grd_grupstmtinfo.findRow(sStmtCD,1,grd_grupstmtinfo.colRef("stmtcd"));
-
- grd_grupstmtinfo.row = iRow;
- grd_grupstmtinfo.bottomRow = iRow;
- }
- model.refresh();
- //model.setValue(xSrchToolCondPath+"/dnarflag",getArrayData(sParamMsg,1,2));
-
- }else if(sSrchToolStatus == "J"){ // 진술문 검색
- model.toggle("case_stmtinfo");
- model.removenodeset(xStmtInfoPath);
- grd_srchstmtinfo.rebuild();
- /*model.removenode("/root/send");
- model.makeValue("/root/send/stmtcd", sStmtCD);
- model.makeValue("/root/send/dnarflag", getArrayData(sParamMsg,1,2));
- if(submit("TRMNR02802")){
- var iRow = grd_srchstmtinfo.findRow(sStmtCD,1,4);
- grd_srchstmtinfo.row = iRow;
- grd_srchstmtinfo.resizeCells();
- }*/
- btn_stmtsrch.selected = true;
- //model.setValue(xSrchToolCondPath+"/dnarflag",getArrayData(sParamMsg,1,2));
- model.refresh();
- }else if(sSrchToolStatus == "N"){
- model.removenodeset(xStmtSetListPath);
- grd_grupstmtinfo.rebuild();
- swt_srchtool.selectedIndex = 0;
- model.toggle("case_grupstmt");
- if(btn_set.selected == false) btn_set.selected = true;
-
- model.removenode("/root/send");
- model.makeValue("/root/send/nursdiagstmtcd", sOriginCd );
- model.makeValue("/root/send/grupcd", "");
- model.makeValue("/root/send/dnarflag", model.getValue(xNursingRecordInfoPath+"/dnarflag"));
-
- if(submit("TRMNR00706")){
- fSettingStmtStyle("setinfo");
- model.makeValue(xGrupInfoPath+"/groupcd", sOriginCd);
- //grd_carediagspec.resizeCells();
- }
-
- iRow = grd_grupstmtinfo.findRow(sStmtCD,1,4);
- grd_grupstmtinfo.row = iRow;
- grd_grupstmtinfo.topRow = iRow;
- }
- }
- /**
- * @group :
- * @ver : 2007.04.24
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 기록 저장 시간 변경
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fChangedRecTime(){
- sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag");
- if(sRecDateFlag == "A"){ // 자동
- model.setValue(xRecSaveCondPath+"/recdd","");
- model.setValue(xRecSaveCondPath+"/rectm","");
- ipt_recdd.disabled = true;
- ipt_rectm.disabled = true;
- }else{ // 사용자 지정
- model.setValue(xRecSaveCondPath+"/recdd",getCurrentDate());
- model.setValue(xRecSaveCondPath+"/rectm",getCurrentTime().substr(0,4));
- ipt_recdd.disabled = false;
- ipt_rectm.disabled = false;
-
- }
- ipt_recdd.refresh();
- ipt_rectm.refresh();
- }
- /**
- * @group :
- * @ver : 2007.04.23
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 검색 도구 선택
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSelectedSrchTool(pFlag){
- var selIndx = swt_srchtool.selectedIndex;
-
- switch(pFlag){
- case "SET": // SET
- model.toggle("case_grup");
- grd_grupstmtinfo.allstyle("data","background-color") = "#FFFFFF"; // 전체 바탕색을 흰색으로 설정.
- sSrchToolStatus = "S"; //SET
- if(grd_grupinfo.rows < 2){
- fSearchSrchTool("SetGrup"); // SET 그룹 정보 조회
- }
- break;
- case "SRCH": // 진술문 검색 SRCH
- model.toggle("case_stmtinfo");
- model.setValue(xSrchToolCondPath+"/originflag","1");
- //model.setValue(xSrchToolCondPath+"/dnarflag","%");
- //model.setValue(xSrchToolCondPath+"/freetextdnarflag","1D");
- sSrchToolStatus = "J"; // 진술문 검색
- model.removenodeset(xStmtInfoPath);
- model.refresh();
- break;
- }
- }
- /**
- * @group :
- * @ver : 2007.04.23
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 입력 형태별 진술문장 조회
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSearchSrchTool(pFlag){
- var sGrupFlag = "";
- var sDepth = 0;
- switch(pFlag){
- case "SetGrup" : // SET 그룹 정보 조회
- sSrchToolStatus = "S"; //SET
-
- grd_grupinfo.Rebuild();
- sGrupFlag = model.getValue(xSrchToolCondPath+"/grupflag");
- model.removenode("/root/send");
- model.makeValue("/root/send/grupflag",sGrupFlag);
- if(sGrupFlag == 3){ // 부서별은 자기의 부서만 조회
- model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
- }
- if(submit("TRMNR00701")){
- var sRowCnt = grd_grupinfo.rows-grd_grupinfo.fixedRows;
-
- for(var i=1; i<=sRowCnt; i++){
- sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
- grd_grupinfo.outlinelevel(i)=sDepth;
- }
- grd_grupinfo.OutlineCol=1; //연결선이 표현되는 컬럼
- grd_grupinfo.OutlineBar=4; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
- grd_grupinfo.TreeColor="gray";
- // 자식 접기
- for(var i=1; i<=sRowCnt; i++){
- sDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
- if((eval(sGrupFlag)==3 && sDepth>2) || (eval(sGrupFlag) != 3 && sDepth>1)){
- grd_grupinfo.iscollapsed(i)=true; //자식 트리 접기
- }
- }
-
- }
- break;
- case "StmtSet": // SET 진술문 정보 조회
- /*
- var sGrupRow = grd_grupinfo.row;
- if(sGrupRow < 1) return;
- sGrupFlag = eval(model.getValue(xSrchToolCondPath+"/grupflag"));
- sDepth = eval(model.getValue(xGrupInfoPath+"["+sGrupRow+"]/depth"));
-
- if((sGrupFlag==3 && sDepth < 4) || (sGrupFlag != 3 && sDepth < 3)){
- return;
- }
- model.removenodeset(xStmtSetListPath);
- grd_grupstmtinfo.rebuild();
- model.toggle("case_grupstmt");
- model.removenode("/root/send");
- model.makeValue("/root/send/grupcd", model.getValue(xGrupInfoPath+"["+sGrupRow+"]/grupcd"));
- model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));
- if(submit("TRMNR00702")){
- fSettingStmtStyle("setinfo");
- grd_grupstmtinfo.resizeCells();
-
- }
- */
- var sGrupRow = grd_grupinfo.row;
- var sDepth = 0; // 기준 레벨
- var iDepth = 0; // 각 row 별 레벨
- var sBoolStatus = "";
- var sRowCnt = 0; // 전체 row 개수
- sGrupFlag = eval(model.getValue(xSrchToolCondPath+"/grupflag"));
- sDepth = eval(model.getValue(xGrupInfoPath+"["+sGrupRow+"]/depth"));
- // if((sGrupFlag==3 && sDepth < 4)||(sGrupFlag==5 && sDepth < 2) || (sGrupFlag != 3 && sGrupFlag != 5 && sDepth < 3)){
- if((sGrupFlag==3 && sDepth < 4)||(sGrupFlag != 3 && sDepth < 3) ){
- // 자식 접기
- sDepth = eval(model.getValue(xGrupInfoPath+"["+sGrupRow+"]/depth"));
- sRowCnt = grd_grupinfo.rows - grd_grupinfo.fixedrows;
- if(grd_grupinfo.iscollapsed(sGrupRow) == true){
- sBoolStatus = false;
- }else{
- sBoolStatus = true;
- }
- for(var i=sGrupRow; i<=sRowCnt; i++){
- iDepth = eval(model.getValue(xGrupInfoPath+"["+i+"]/depth"));
- if(i==sGrupRow){
- grd_grupinfo.iscollapsed(i) = sBoolStatus;
- }else if(i != sGrupRow && sDepth < iDepth){
- grd_grupinfo.iscollapsed(i) = sBoolStatus;
- }else{
- break;
- }
- }
-
- return;
- }
- model.removenodeset(xStmtSetListPath);
- grd_grupstmtinfo.rebuild();
- model.toggle("case_grupstmt");
- model.removenode("/root/send");
- model.makeValue("/root/send/grupcd", model.getValue(xGrupInfoPath+"["+sGrupRow+"]/grupcd"));
- model.makeValue("/root/send/dnarflag",model.getValue(xSrchToolCondPath+"/dnarflag"));
- if(submit("TRMNR00702")){
- //ndar로 조회되어져 오므로 카피.
-
- if(model.getValue(xSrchToolCondPath+"/dnarflag") == "1D"){
- model.makeNode(xStmtSetListPath);
- copyNodesetType(xStmtSetListPath, xHiddenDStmtSetListPath, "replace", model, model);
- grd_grupstmtinfo.refresh();
- } else if(model.getValue(xSrchToolCondPath+"/dnarflag") == "2N"){
- model.makeNode(xStmtSetListPath);
- copyNodesetType(xStmtSetListPath, xHiddenNStmtSetListPath, "replace", model, model);
- grd_grupstmtinfo.refresh();
- } else if(model.getValue(xSrchToolCondPath+"/dnarflag") == "3A"){
- model.makeNode(xStmtSetListPath);
- copyNodesetType(xStmtSetListPath, xHiddenAStmtSetListPath, "replace", model, model);
- grd_grupstmtinfo.refresh();
- } else if(model.getValue(xSrchToolCondPath+"/dnarflag") == "4R"){
- model.makeNode(xStmtSetListPath);
- copyNodesetType(xStmtSetListPath, xHiddenRStmtSetListPath, "replace", model, model);
- grd_grupstmtinfo.refresh();
- }
-
- fSettingStmtStyle("setinfo");
- grd_grupstmtinfo.resizeCells();
- }
-
- break;
- case "Stmt": // 진술문 검색 조회
- sSrchToolStatus = "J"; //SET
- if(model.getValue(xSrchToolCondPath+"/srchnm") =="" ||model.getValue(xSrchToolCondPath+"/srchnm").length<2){
- messageBox("검색어를 두단어 이상","C001");
- model.setFocus("ipt_srchnm");
- return;
- }
- model.removenode("/root/send");
- model.makeValue("/root/send/originflag", model.getValue(xSrchToolCondPath+"/originflag"));
- model.makeValue("/root/send/updateflag", "Y");//간호기록 수정시 진술문 검색에는 진단도 포함되어 조회되어야한다.
- model.makeValue("/root/send/dnarflag", model.getValue(xSrchToolCondPath+"/dnarflag"));
- model.makeValue("/root/send/srchnm", model.getValue(xSrchToolCondPath+"/srchnm"));
- if(submit("TRMNR00703")){
- fSettingStmtStyle("stmtinfo"); // 속성이 있는 경우 진술문 폰트 색상을 변경한다.
- grd_srchstmtinfo.resizeCells();
- }
- break;
- }
- }
- /**
- * @group :
- * @ver : 2007.04.19
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 진술문 폰트 color 설정 - 속성이 있는 경우 진술문 폰트 색상을 변경한다.
- * @param : pFlag ( setinfo : set, stmtinfo : 진술문 검색)
- * @return :
- * @---------------------------------------------------
- */
- function fSettingStmtStyle(pFlag){
- switch(pFlag){
- case "setinfo" : // set
- grd_grupstmtinfo.mergecells = "bycol";
- grd_grupstmtinfo.mergecol(2) = false;
- grd_grupstmtinfo.mergecol(3) = false;
- grd_grupstmtinfo.allstyle("data","color") = "#000000";
- for(var iRow=grd_grupstmtinfo.fixedrows; iRow<=grd_grupstmtinfo.rows-grd_grupstmtinfo.fixedrows; iRow++){
- if(eval(model.getValue(xStmtSetListPath+"["+iRow+"]/attrcnt"))>0){
- grd_grupstmtinfo.cellstyle("color",iRow,3) = "#6600ff"; // 녹색
- }
- }
- break;
- case "stmtinfo": // 진술문 검색
- grd_srchstmtinfo.mergecells = "bycol";
- grd_srchstmtinfo.mergecol(1) = false;
- grd_srchstmtinfo.mergecol(3) = false;
- grd_srchstmtinfo.allstyle("data","color") = "#000000";
- for(var iRow=grd_srchstmtinfo.fixedrows; iRow<=grd_srchstmtinfo.rows-grd_srchstmtinfo.fixedrows; iRow++){
- if(eval(model.getValue(xStmtInfoPath+"["+iRow+"]/attrcnt"))>0){
- grd_srchstmtinfo.cellstyle("color",iRow,3) = "#6600ff"; // 녹색
- }
- }
- break;
- }
- }
- /**
- * @group :
- * @ver : 2007.05.17
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 기록 저장
- * @param : sFreeFlag Freetext 저장여부(F)
- * @return :
- * @---------------------------------------------------
- */
- function fSaveStmtInfo(sFreeFlag){
- var sCertKey = model.getValue(xNursingRecordInfoPath+"/certkey");
- //if(sCertKey != ""){ // 인증저장시
-
- var sAttrinfo1 = "";
- var sArrtCnt = 0;
- var sStmtCd = ""; // 진술문장 코드
- var sStmtCnts = ""; // 진술문장 내역
- var sDNARFlag = ""; //DNAR 구분
- var sGrupCD = ""; // 그룹코드
- var sStmtInfoHeader = "stmtspec▦attrinfo▦status▦origincd▦stmtcd▦dnarflag▦recoriginflag▦recdtflag▦recdt▦prerecdd▦"
- + "pid▦indd▦orddd▦cretno▦instcd▦carerecno▦certkey▦dnarnm▦usernm▦deptflagnm▩"; // 저장 정보
- var sStmtInfo = ""; // 저장 정보
- var sAttrInptParamInfo = ""; // 속성창 입력 정보
- var sAttrInptYN = "N";
- var sSaveData = "";
- sRecDateFlag = model.getValue(xRecSaveCondPath+"/recdateflag"); // (A : 자동, U : 지정)
- var sRecDate = "";
- var sPreRecDate = model.getValue(xNursingRecordInfoPath+"/recdd");//수정전 원기록일시
-
- if(sRecDateFlag == "U"){
- sRecDate = model.getValue(xRecSaveCondPath+"/recdd")+model.getValue(xRecSaveCondPath+"/rectm")+ "00";
- if(isValidDateTime(sRecDate,"YYYYMMDDhhmmss")== false){
- messageBox("기록 시간이 유효하지","E007");
- return;
- }
- } else {
- sRecDate = getCurrentDate() + getCurrentTime();
- }
-
- model.removenode("/root/send");
-
- if( sFreeFlag =="F") { //free text로 수정시
-
- sSaveData = "";
- sDNARFlag = model.getValue(xSrchToolCondPath+"/freetextdnarflag");
-
- if (sFreeFlag =="F" && isNull(model.getValue(xSrchToolCondPath+"/freetextsrchcnts")) ){
- messageBox("입력된 진술문이","I004");
- return;
- }
-
- sSaveData = model.getValue(xSrchToolCondPath+"/freetextsrchcnts")+"▦"
- + "▦"
- + "U▦"
- + ( sRecOriginFlag == "T" ? sOriginCd :model.getValue(xNursingRecordInfoPath+"/carerecno"))+"▦"
- + "--------"+"▦"
- + sDNARFlag+"▦"
- + ( sRecOriginFlag == "T" ? sRecOriginFlag :"F")+"▦"
- + sRecDateFlag+"▦"
- + sRecDate+"▦"
- + sPreRecDate+"▦"
- + sPid+"▦"
- + sIndd+"▦"
- + sOutDD+"▦"
- + sCretNo+"▦"
- + sInstcd+"▦"
- + model.getValue(xNursingRecordInfoPath+"/carerecno")+"▦"
- + sCertKey+"▦"
- + sDnarNm+"▦"
- + sUserNm+"▦"
- + sDeptFlagNm+"▩";
- if(sSaveData == ""){
- messageBox("저장할 데이터가","I004");
- return;
- }
- } else {
- // 속성 입력 진술문 뽑아내기..
- switch(sSrchToolStatus){
- //case "N": //표준 진술문 set 20080710 N은 없음. SET에서 저장된것은 모두 S: 로 저장됨.
- case "S": // SET
- var iGrupRow = grd_grupinfo.row;
- var iRow = grd_grupstmtinfo.row;
-
- sGrupCD = model.getValue(xGrupInfoPath+"["+iGrupRow+"]/grupcd");
-
- sStmtCd = model.getValue(xStmtSetListPath+"["+iRow+"]/stmtcd");
- sArrtCnt = eval(model.getValue(xStmtSetListPath+"["+iRow+"]/attrcnt"));
- sDNARFlag = model.getValue(xStmtSetListPath+"["+iRow+"]/dnarflag");
- sStmtCnts = model.getValue(xStmtSetListPath+"["+iRow+"]/stmtcnts");
- if(sArrtCnt > 0){
- sAttrInptParamInfo += model.getValue(xStmtSetListPath+"["+iRow+"]/stmtcd")+"▦"
- + model.getValue(xStmtSetListPath+"["+iRow+"]/stmtcnts")+"▦"
- + model.getValue(xStmtSetListPath+"["+iRow+"]/attrinfo1")+"▦"
- + model.getValue(xStmtSetListPath+"["+iRow+"]/attrinfo2")+"▦"
- + model.getValue(xStmtSetListPath+"["+iRow+"]/attressnyn")+"▩";
- }
- break;
- case "J": // 진술문 검색
- var iRow = grd_srchstmtinfo.row;
- sArrtCnt = eval(model.getValue(xStmtInfoPath+"["+iRow+"]/attrcnt"));
- sStmtCd = model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcd");
- sDNARFlag = model.getValue(xStmtInfoPath+"["+iRow+"]/dnarflag");
- sStmtCnts = model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcnts");
- if(sArrtCnt > 0){
- sAttrInptParamInfo += model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcd")+"▦"
- + model.getValue(xStmtInfoPath+"["+iRow+"]/stmtcnts")+"▦"
- + model.getValue(xStmtInfoPath+"["+iRow+"]/attrinfo1")+"▦"
- + model.getValue(xStmtInfoPath+"["+iRow+"]/attrinfo2")+"▦"
- + model.getValue(xStmtInfoPath+"["+iRow+"]/attressnyn")+"▩";
- }
- break;
- }
- // 진술문 선택 여부 체크
- if ( iRow < 1 || isNull(sStmtCnts) ){
- messageBox("선택된 진술문이","I004");
- return;
- }
-
- if(sDNARFlag == "2N"){
- messageBox( "간호진단으로 수정할 수 없습니다. 다른 진술문을 선택","I008");
- return;
- }
- // 저장 데이터 만들기..
- if(sArrtCnt > 0){ // 속성 입력 진술문 선택 여부
- setParameter("SMMNR014_Param",sAttrInptParamInfo);
- modal("SMMNR01400");
- var sReturnInfo = getParameter("SMMNR014_Return"); // 속성 입력된 진술문 정보 "stmtcd▦stmtcnts▦attrinfo▩"
- if(sReturnInfo != "" && sReturnInfo != null){ // 속성 입력한 경우
- sSaveData += getArrayData(sReturnInfo,1,1)+"▦"+ getArrayData(sReturnInfo,1,2)+"▦";
- }
- } else {
- sSaveData += sStmtCnts + "▦" + "▦";
- }
- if(sSaveData == ""){
- messageBox("저장할 데이터가","I004");
- return;
- }
-
- //sRecOriginFlag T 이면 타입2에서 넘어온값. 그룹코드도 무조건 타입2에서 넘어온 origin 코드
- if(sRecOriginFlag == "T"){
- sGrupCD = sOriginCd;
- }
- sSaveData += "U▦"
- + sGrupCD+"▦"
- + sStmtCd+"▦"
- + sDNARFlag+"▦"
- + ( sRecOriginFlag == "T" ? sRecOriginFlag :sSrchToolStatus)+"▦"
- + sRecDateFlag+"▦"
- + sRecDate+"▦"
- + sPreRecDate+"▦"
- + sPid+"▦"
- + sIndd+"▦"
- + sOutDD+"▦"
- + sCretNo+"▦"
- + sInstcd+"▦"
- + model.getValue(xNursingRecordInfoPath+"/carerecno")+"▦"
- + sCertKey+"▦"
- + sDnarNm+"▦"
- + sUserNm+"▦"
- + sDeptFlagNm+"▩";
- }
-
- model.makeValue("/root/send/saveData", sStmtInfoHeader+sSaveData);
- model.removeNode("/root/main/signSaveData");
- model.makeNode("/root/main/signSaveData");
- setCSVToNode("/root/main/signSaveData", sStmtInfoHeader+sSaveData, "saveDataList");
-
- //인증저장
- if( sRecOriginFlag == "T" ){
- var msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 Type || 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
- } else {
- var msg = messageBox( '[ ' + sHngNm + ' ] 간호일지 기록내역의 인증저장을', 'Q004');//실행 하시겠습니까? yes=6, no=7
- }
-
- if(Number(msg) == 6){//예
- if (!fSign()) return;
- if(submit("TXMNR02801")){
- fViewSign();
- opener.javascript.setParameter("SMMNR02800_ReturnFlag","Y");
- opener.javascript.setParameter("SMMNR02800_SignRecYN","Y");
- opener.javascript.setParameter("SMMNR02800_vsettime",vsettime);
- model.close();
- }
- } else {
- return;
- }
- // if(sArrtCnt < 1){
- // var sRtnMsg = messageBox("","Q002");
- // if(sRtnMsg != 6) return;
- // }
- // }
- }
- /**
- * @group :
- * @ver : 2007.06.15
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 인증데이터 생성함수
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fMake_SignData(){
- Sign.addnode("/root/main/signSaveData");
-
-
- }
- /**
- * @group :
- * @ver : 2007.06.15
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 인증로직
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSign(){
- Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
-
- Sign.certchkflag = sParamCertflag;
-
- if (sParamCertflag == "Y") {
- //alert("인증저장");
- }
-
- if(Sign.signprocess() == true){
- // 전자인증 관련 환자 인적 정보를 보내줌.
- vsettime = getCurrentTime();
- model.makeValue("/root/send/signdata/pid", sPid ); //등록번호
- if( sIOFlag =="O" ){
- model.makeValue("/root/send/signdata/orddd", sOutDD); //입원일자(입원,응급)/진료일자(외래)
- } else {
- model.makeValue("/root/send/signdata/orddd", sIndd); //입원일자(입원,응급)/진료일자(외래)
- }
- model.makeValue("/root/send/signdata/signno", ""); //서명번호
- model.makeValue("/root/send/signdata/cretno", sCretNo); //생성번호
-
- if ( sRecDateFlag == "U" ){
- model.makeValue("/root/send/signdata/recdd", model.getValue(xRecSaveCondPath+"/recdd")); // 실제 기록이 이루어진 기록일자
- model.makeValue("/root/send/signdata/rectm", model.getValue(xRecSaveCondPath+"/rectm")); //실제 기록이 이루어진 기록시간
- } else {
- model.makeValue("/root/send/signdata/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자
- model.makeValue("/root/send/signdata/rectm", getCurrentTime()); //실제 기록이 이루어진 기록시간
- }
-
- model.makeValue("/root/send/signdata/recsaveflag", "Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- model.makeValue("/root/send/signdata/signflag", "02"); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- model.makeValue("/root/send/signdata/signgenrflag", sIOFlag); //외래/입원구분(코드정의서 M0010 참조)
- model.makeValue("/root/send/signdata/formcd", "0000002432"); //각 기록지별 서식코드0000002464 type2 -> 0000002432 간호일지
- /*if (sRecOriginFlag == "T"){
- model.makeValue("/root/send/signdata/formcd","0000002464" ); //각 기록지별 서식코드0000002464 type2 0000002432 간호일지
- } else{
- model.makeValue("/root/send/signdata/formcd","0000002432" ); //각 기록지별 서식코드0000002464 type2 0000002432 간호일지
- }*/
-
- model.makeValue("/root/send/signdata/orddeptcd", sOrdDeptCd); //진료부서코드
- model.makeValue("/root/send/signdata/orddrid", sOrdDrId); //진료의사ID
- model.makeValue("/root/send/signdata/dispyn", "N"); //기록뷰어에는 조회안되도록
- // 인증할 데이터 정보(미기록 노드 제거된 정보)
- // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
- model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
- // 공인인증 처리후 데이터
- model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
- } else{
- return false;
- }
-
- model.makeValue("/root/send/signdata/screenid", getScreenID());
- return true;
- }
- /**
- * @group :
- * @ver : 2007.06.15
- * @by : 이은영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 통합기록용인증로직
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fViewSign(){
- Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
- var signRecDD = "";
- model.removenodeset("/root/send/signdata");
-
- for( var idx = 1 ; idx <= getNodesetCount("/root/hidden/recinfo/recddlist"); idx++ ){
- signRecDD = model.getValue("/root/hidden/recinfo/recddlist["+ idx +"]/recdd");
-
- model.removenodeset(xSignPath);
- model.makeNode(xSignPath);
-
- if(getNodesetCount("/root/hidden/recinfo/totnursingrecordlist[recdd='"+ signRecDD +"']") > 0 ){
- copyNodeset(xSignPath,"/root/hidden/recinfo/totnursingrecordlist[recdd='"+ signRecDD +"']");
-
- if(Sign.signprocess() == true){
- var sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
-
- // 전자인증 관련 환자 인적 정보를 보내줌.
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid ); //등록번호
- if( sIOFlag =="O" ){
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sOutDD); //입원일자(입원,응급)/진료일자(외래)
- }else{
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd); //입원일자(입원,응급)/진료일자(외래)
- }
-
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", ""); //서명번호
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo); //생성번호
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd",signRecDD); //실제 기록이 이루어진 기록일자
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm","000000"); //실제 기록이 이루어진 기록시간
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recsaveflag","Y"); //전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag","02" ); //서명자료구분 (01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag",sIOFlag ); //외래/입원구분(코드정의서 M0010 참조)
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd","0000002432" ); //각 기록지별 서식코드
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddeptcd", sOrdDeptCd); //진료부서코드
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddrid", sOrdDrId); //진료의사ID
-
- // 인증할 데이터 정보(미기록 노드 제거된 정보)
- // 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", Sign.signedInfos[1]);
- // 공인인증 처리후 데이터
- //model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
- model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/screenid", getScreenID());
- } else {
- return;
- }
- }else{
- return;
- }
- }
- submit("TXMNR00904");
- }
|