123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482 |
- /*
- (SMMNW15200.xrw - JScript )
- - Version :
- 1) : Ver.1.00.01
- - Desc : 정맥염관찰기록 및 정맥염관찰기록 팝업이미지 에서 사용하는 스크립트
- */
- var xWardPatInfoPath = "/root/main/wardpatinfo/wardpatlist"; // 환자리스트 xPath
- var xBedsoreGridPath = "/root/main/veininfo/veinlist" // 정맥염 리스트 xPath
- var xClsListBKPath = "/root/hidden/main/veininfo/veinlist"; // 그리드 hidden xPath
- var xPamInfoPath = '/root/main/paminfo'
- var xGrupcdmax = "";
- /////////////////조회관련 함수 시작////////////////////
- //통합기록조회
- var ViewFunc = "sign"; //sign : 기록인증용, view : view인증용
- //화면을 초기화한다. 화면로딩이 끝난 시점에 호출된다.
- function finit(pFlag){
-
- var instcd = getUserInfo("dutplceinstcd");
- var standard_yn = "orduseyn";
- var ord_deptflag = 'W';
- var rslt_ref = "/root/init/dept";
- var sort_field = "depthngnm";
- var sort_method = "asc";
- var dt = getCurrentDate();
-
- model.makeValue(rdo_indsch.attribute("ref"), "1" );
-
- model.removenode("/root/main/paminfo");
-
- var paminfo = getGlobalVariable("paminfo");
- var pid = "";
- var wardcd = "";
- var indschacptstat = "";
- if(paminfo.length > 0) {
- model.makeNode("/root/main/paminfo");
- setCSVToNode("/root/main/paminfo", paminfo); //환자정보내리기
- pid = model.getValue("/root/main/paminfo/list/pid");
- wardcd = model.getValue("/root/main/paminfo/list/wardcd");
- indschacptstat = model.getValue("/root/main/paminfo/list//indschacptstat");
- }
- submit("TRMNW11001"); //발생장소(원내) 부서 코드 조회
-
- fGetNursHardCdInfo("'002'", dt); // '002' 응급의료센터 여부 조회
- zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, sort_field, sort_method, dt);
- model.setValue(cmb_ward.attribute("ref"), getUserInfo("dutplcecd"));
- model.setValue("/root/main/cond/genrdd", dt);
-
- if(wardcd != ""){
- model.setValue("/root/main/cond/wardcd", wardcd);
- }else{
- model.setValue("/root/main/cond/wardcd", getUserInfo("dutplcecd"));
- }
-
- model.makeNode("/root/send/reqdata");
- model.copyNode("/root/send/reqdata", "/root/main/cond");
-
- submit("TRMNW15206"); //단계콤보 조회
- if(pFlag != "saveflag"){
- fGetZoneList(); //CareCom.js 응급실구역정보조회
- fnZoneDisp();
- fSettingnurid();
- }
- fSetInDsch(indschacptstat);
-
- if(indschacptstat == "" || indschacptstat == "A"){
- fGetWardPatList();
- }else{
- fGetPidWardInfo(pid);
- }
-
- if (pid != "") {
-
- if(model.getValue("/root/main/paminfo/list/ioflag") != "E" && model.getValue("/root/main/paminfo/list/careinrmdd") == "-"){
- messageBox("아직 입실확인하지 않은 환자입니다.", "I");
- //return;
- }
- grd_wardpatlist.row = grd_wardpatlist.findRow(pid, 1, grd_wardpatlist.colRef("pid"));
- grd_wardpatlist.topRow = grd_wardpatlist.findRow(pid, 1, grd_wardpatlist.colRef("pid"))-1;
-
- //선택환자정보조회
- fSearch();
- }
- }
- // 내환자 셋팅정보 조회
- function fSettingnurid(){
-
- model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd") );
-
- if(submit("TRMNW10910") == true){
- //settingnurid = model.getValue("/root/init/settinginfo/settingrn[settingrnid='" + getUserInfo("userid") +"']/settingrnid");
-
- model.setValue(cmb_settingrn.attribute("ref"), "");
- }
- cmb_settingrn.refresh();
- }
- // 응급실 구역 보여주기
- function fnZoneDisp() {
-
- //응급의료센터(2280200000)인 경우
- //내환자정보대신에 구역정보가 보임)
- if ( !isNull(model.getValue("/root/codeinfo/codeinfo/codelist[cdgrupid ='002' and cdid ='"+cmb_ward.value+"']/cdid")) ) {
- //cap_settingrn.visible = false;
- //cmb_settingrn.visible = false;
- cap_Zone.visible = true;
- cmb_Zone.visible = true;
-
- cap_settingrn.attribute("left") = 330;
- cap_settingrn.attribute("top") = 10;
- cmb_settingrn.attribute("left") = 410;
- cmb_settingrn.attribute("top") = 10;
-
- caption17.attribute("left") = 490;
- caption17.attribute("top") = 10;
- ipt_genrdd.attribute("left") = 585;
- ipt_genrdd.attribute("top") = 10;
-
-
- var zonecd = model.getValue("/root/main/paminfo/list/sectioncd");
- if( !isNull(zonecd) && zonecd != "-" ){
- cmb_Zone.value = model.getValue("/root/main/paminfo/list/sectioncd");
- } else {
- cmb_Zone.value = "-";
- }
- } else {
- //cap_settingrn.visible = true;
- //cmb_settingrn.visible = true;
- cap_Zone.visible = false;
- cmb_Zone.visible = false;
- cmb_Zone.value = "-";
-
- cap_settingrn.attribute("left") = 190;
- cap_settingrn.attribute("top") = 10;
- cmb_settingrn.attribute("left") = 270;
- cmb_settingrn.attribute("top") = 10;
-
- caption17.attribute("left") = 350;
- caption17.attribute("top") = 10;
- ipt_genrdd.attribute("left") = 445;
- ipt_genrdd.attribute("top") = 10;
- }
- }
- // 환자 리스트 조회
- function fGetWardPatList(){
- model.setValue('/root/main/cond/pid','');
- model.removenode('/root/main/veininfo');
- model.copyNode("/root/send/reqdata", "/root/main/cond");
- if(model.getValue("/root/main/cond/wardcd") == model.getValue("/root/codeinfo/codeinfo/codelist/cdid")){
- model.makeValue("/root/send/reqdata/emcflag", "Y");
- }
-
- if(submit("TRMNW15202")== true){
- for (var i=1;i<=getNodesetCount(xWardPatInfoPath);i++) {
- var pVeifCnte = model.getValue(xWardPatInfoPath + '[' + i + ']/veifcnt');
-
- if(pVeifCnte > 0 ){
- grd_wardpatlist.rowStyle(i,"data", "color") = "#0000ff";
- grd_wardpatlist.rowStyle(i,"data", "font-weight") = "bold";
- }else{
- grd_wardpatlist.rowStyle(i,"data", "color") = "#000000";
- grd_wardpatlist.rowStyle(i,"data", "font-weight") = "normal";
- }
- }
- grd_wardpatlist.refresh();
- }
- grd_veinlist.refresh();
- }
- // 조회버튼 클릭시
- function fSearch(){
-
- var condparam = "";
-
- if(model.getValue("/root/main/cond/indsch") == "1"){
- // 상단정보 올림
- condparam = model.getValue("/root/main/wardpatinfo/wardpatlist["+grd_wardpatlist.row+"]/ordtype")
- + "▦" + model.getValue("/root/main/wardpatinfo/wardpatlist["+grd_wardpatlist.row+"]/pid")
- + "▦" + model.getValue("/root/main/wardpatinfo/wardpatlist["+grd_wardpatlist.row+"]/indd")
- + "▦" + model.getValue("/root/main/wardpatinfo/wardpatlist["+grd_wardpatlist.row+"]/cretno")
- + "▦" + model.getValue("/root/main/wardpatinfo/wardpatlist["+grd_wardpatlist.row+"]/instcd")
- + "▦" + model.getValue("/root/cond/genrdd");
-
- setParameter("condparam", condparam);
- modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
-
- }
- model.removenode("/root/main/paminfo");
-
- var paminfo = getGlobalVariable("paminfo");
-
- if(paminfo.length > 0) {
- model.makeNode("/root/main/paminfo");
- setCSVToNode("/root/main/paminfo", paminfo); //환자정보내리기
- }
-
- // 정맥염관찰기록 리스트 조회
- fSearchRecInfo();
- return true;
- }
- // 정맥염관찰기록 리스트 조회
- function fSearchRecInfo() {
-
- model.removeNodeset('/root/main/veininfo');
- model.setValue("/root/main/cond/pid", model.getValue("/root/main/paminfo/list/pid"));
- model.makeValue("/root/send/reqdata/pid", model.getValue("/root/main/paminfo/list/pid"));
- model.makeValue("/root/send/reqdata/indd", model.getValue("/root/main/paminfo/list/indd"));
- model.makeValue("/root/send/reqdata/cretno", model.getValue("/root/main/paminfo/list/cretno"));
- model.makeValue("/root/send/reqdata/genrdd", model.getValue("/root/main/cond/genrdd"));
- model.makeValue("/root/send/reqdata/stdradio", model.getValue("/root/main/cond/stdradio"));
-
- if(submit('TRMNW15203')){
- model.copyNode("/root/hidden/main/veininfo", "/root/main/veininfo");
-
- var pGrd = grd_veinlist;
- var pGrdCnt = getNodesetCount("/root/main/veininfo/veinlist");
-
- if (pGrdCnt <= 0 ) return;
-
- var pGrupcd = "";
- var pGenrdd = "";
- var pGenrtm = "";
- var pGenrplce = "";
- var pCause = "";
-
- var pGrupcdnext = "";
- var pGenrddnext = "";
- var pGenrtmnext = "";
- var pGenrplcenext = "";
- var pCausenext = "";
-
- for (t = pGrd.fixedRows; t<pGrd.rows; t++) {
-
- xGrupcdmax = model.getValue("/root/main/veininfo/veinlist[" + t + "]/grupcdmax");
-
- pGrupcd = model.getValue("/root/main/veininfo/veinlist[" + t + "]/grupcd");
- pGenrdd = model.getValue("/root/main/veininfo/veinlist[" + t + "]/genrdd");
- pGenrtm = model.getValue("/root/main/veininfo/veinlist[" + t + "]/genrtm");
- pGenrplce = model.getValue("/root/main/veininfo/veinlist[" + t + "]/genrplce");
- pCause = model.getValue("/root/main/veininfo/veinlist[" + t + "]/cause");
-
- pGrupcdnext = model.getValue("/root/main/veininfo/veinlist[" + (t+1) + "]/grupcd");
- pGenrddnext = model.getValue("/root/main/veininfo/veinlist[" + (t+1) + "]/genrdd");
- pGenrtmnext = model.getValue("/root/main/veininfo/veinlist[" + (t+1) + "]/genrtm");
- pGenrplcenext = model.getValue("/root/main/veininfo/veinlist[" + (t+1) + "]/genrplce");
- pCausenext = model.getValue("/root/main/veininfo/veinlist[" + (t+1) + "]/cause");
-
-
- if ((pGrupcd == pGrupcdnext) && (pGenrdd == pGenrddnext) && (pGenrtm == pGenrtmnext) && (pGenrplce == pGenrplcenext) && (pCause == pCausenext)) {
- pGrd.rowStyle(t, "all", "border-bottom-color") = "#c0c0c0";
- pGrd.rowStyle(t, "all", "border-top-width") = "1";
- } else {
- if(t !=0){
- pGrd.rowStyle(t, "all", "border-bottom-color") = "#ff0000";
- pGrd.rowStyle(t, "all", "border-top-width") = "1";
- }
- }
- }
- pGrd.refresh();
- }
- }
- // 조회후 정맥염발생부위, 발생일자가 같으면 Merge한다.
- function fMergeGenrAreaDD(){
- grd_veinlist.mergeCol(grd_veinlist.colRef("veifpartnm")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("genrdd")) = true;
- grd_veinlist.mergeCol(grd_veinlist.colRef("genrtm")) = true;
- grd_veinlist.mergeCol(grd_veinlist.colRef("genrplce")) = true;
- grd_veinlist.mergeCol(grd_veinlist.colRef("genrplcewardcd")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("cause")) = true;
- grd_veinlist.mergeCol(grd_veinlist.colRef("flag")) = true;
- grd_veinlist.mergeCol(grd_veinlist.colRef("sel")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("recdd")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("rectm")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("stage")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("recrnm")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("recrid")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("genrplceid")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("causeid")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("pid")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("grupcd")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("instcd")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("stageid")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("veifrecseq")) = false;
- grd_veinlist.mergeCol(grd_veinlist.colRef("intervention")) = false;
- }
- /////////////////조회관련 함수 종료////////////////////
- /////////////////팝업오픈 관련 함수 시작///////////////
- // 정맥염발생부위 팝업호출
- function fPopupBedSoreImg(iRow){
- var iCol = grd_veinlist.col;
- var veifrecseq = model.getValue(xBedsoreGridPath+"["+ iRow +"]/veifrecseq");
- //팝업창에 부위 값이 있으면 기존값 셋팅
- //이미저장되어있으면 수정하지 못하도록 확인버튼을 막아주는 flag를 set한다.
- if(grd_veinlist.textmatrix(iRow,2) != ""){
- setParameter("partall", grd_veinlist.textmatrix(iRow,3));
- if(veifrecseq > 0){
- setParameter('editable', 'f');
- }
- }else{
- setParameter('editable', 't');
- }
- var flag = model.getValue(xBedsoreGridPath+'['+(iRow)+']/flag'); //구분
- var genrdd = model.getValue(xBedsoreGridPath+'['+(iRow)+']/genrdd'); //발생일자
- var stat = model.getValue(xBedsoreGridPath+'['+(iRow)+']/stat');
-
- //정맥염기준자료 (발생장소, 원인, 단계)저장되어 있던 그리드의 값을 팝업에 세팅
- fSetPopupData(iRow, "genrplce");// (발생장소)
- fSetPopupData(iRow, "cause"); // (원인)
- fSetPopupData(iRow, "stage"); // (단계)
- fSetPopupData(iRow, "intervention"); // (중재)
-
- setParameter("flag", flag);
- setParameter("genrdd", genrdd);
- setParameter("stat", stat);
-
-
- // 환자 기록부분 선택 팝업
- modal("SPMNW15400",1); //이미지호출
- //팝업에서 아무것도 선택하지 않고 close를 눌렀을때..
- if( getParameter("returnnull") == "close" ){
- return ;
- } else {
- //정맥염발생부위 값을 grid에 set
- var retStr = getParameter('retStr');
- model.setValue(xBedsoreGridPath + '[' + iRow + ']/veifpartnm', retStr);
- //그리드 상태값 변경
- var stat = model.getValue(xBedsoreGridPath+"["+grd_veinlist.row+"]/stat");
- if(stat != "i") {
- model.setValue(xBedsoreGridPath+"["+grd_veinlist.row+"]/stat","u");
- }
-
- //팝업에서 가져온 return parameter를 그리드에 세팅
- var retClosParam = getParameter("returnnull");
-
- fGetPopupData(iRow, "genrplce", retClosParam); //발생장소
- fGetPopupData(iRow, "cause", retClosParam); //원인
- fGetPopupData(iRow, "stage", retClosParam); //단계
- fGetPopupData(iRow, "intervention", retClosParam); //중재
-
- //parameters clear
- model.removenode(getParameterPath());
-
- var genrplceid = model.getValue(xBedsoreGridPath+'['+(iRow)+']/genrplceid');
-
- if(genrplceid == "1"){
- if(model.getValue(xBedsoreGridPath+'['+ iRow +']/genrplcewardcd')==""){
- model.setValue(xBedsoreGridPath+'['+ iRow +']/genrplcewardcd', getUserInfo("dutplcecd"));
- }
- }else{
- model.setValue(xBedsoreGridPath+'['+ iRow +']/genrplcewardcd',"");
- }
- /*
- else {
- //정맥염발생부위의 추가시 해당 부위에 대해
- //동일한 발생부위+발생일자+발생시간+원인의 '종료'가 없으면
- //그 부위를 추가할수 없도록 메세지 리턴
- if(grd_veinlist.rows > 3){
- var returnArr = fIsExistEndData(grd_veinlist.row, true);
- if(returnArr[3] != null && !returnArr[3]){
- messageBox('선택하신 발생부위는 이미 등록되어 있으며, 종료된 사정이 아니므로 재등록 하실 수 ', 'I004');
- model.setValue(xBedsoreGridPath + '[' + iRow + ']/veifpartnm', '');
- model.refresh();
- return ;
- }
- }
- }
- */
- }
- }
- // 정맥염기준자료 팝업 호출
- function fPopupBedSoreData(iRow){
- var curCol = grd_veinlist.col;
-
- var flag = model.getValue(xBedsoreGridPath+'['+(iRow)+']/flag'); //구분
- var genrdd = model.getValue(xBedsoreGridPath+'['+(iRow)+']/genrdd'); //발생일자
- var stat = model.getValue(xBedsoreGridPath+'['+(iRow)+']/stat');
-
- //정맥염기준자료 (발생장소, 원인, 단계)저장되어 있던 그리드의 값을 팝업에 세팅
- fSetPopupData(iRow, "genrplce");// (발생장소)
- fSetPopupData(iRow, "cause"); // (원인)
- fSetPopupData(iRow, "stage"); // (단계)
- fSetPopupData(iRow, "intervention"); // (중재)
-
- setParameter("flag", flag);
- setParameter("genrdd", genrdd);
- setParameter("stat", stat);
-
- modal("SPMNW15300",1); //기준자료호출
-
- //팝업에서 가져온 return parameter를 그리드에 세팅
- var retClosParam = getParameter("returnnull");
-
- fGetPopupData(iRow, "genrplce", retClosParam); //발생장소
- fGetPopupData(iRow, "cause", retClosParam); //원인
- fGetPopupData(iRow, "stage", retClosParam); //단계
- fGetPopupData(iRow, "intervention", retClosParam); //중재
-
- //parameters clear
- model.removenode(getParameterPath());
-
- var genrplceid = model.getValue(xBedsoreGridPath+'['+(iRow)+']/genrplceid');
-
- if(genrplceid == "1"){
- if(model.getValue(xBedsoreGridPath+'['+ iRow +']/genrplcewardcd')==""){
- model.setValue(xBedsoreGridPath+'['+ iRow +']/genrplcewardcd', getUserInfo("dutplcecd"));
- }
- }else{
- model.setValue(xBedsoreGridPath+'['+ iRow +']/genrplcewardcd',"");
- }
- }
- /////////////////팝업오픈 관련 함수 종료///////////////
- /////////////////팝업데이터 세팅 함수 시작/////////////
- // 정맥염기준자료저장되어 있던 그리드의 값을 팝업에 세팅
- function fSetPopupData(iRow, str) {
-
- var cd;
- var nm = '';
-
- cd = model.getValue(xBedsoreGridPath+'['+(iRow)+']/' + str + 'id');//기존저장되어있던 코드값
- nm = model.getValue(xBedsoreGridPath+'['+(iRow)+']/' + str);//기존저장되어있던 명칭값
- if(cd != '') {
- setParameter(str + "cdnm", "");
- setParameter(str + "cd", "");
- setParameter(str + "cdid", cd);
-
- //기타가 선택되어진 상태일때 freetext를 파라메터로 set한다.
- if(nm.indexOf('기타') > -1){
- var etcStr = nm.split(')')[0].split('(')[1];
- setParameter(str + 'EtcExist', true);
- setParameter(str + 'EtcStr', etcStr);
- }
- }
- }
- // 팝업의 선택결과를 그리드에 세팅
- function fGetPopupData(iRow, str, retClosParam) {
- var retCDParam = '';
- var retNMParam = '';
-
- var oldCDParam
-
- if(retClosParam != "close"){
- if(model.getValue(xBedsoreGridPath +"[" + (iRow) + "]/stat") != "i") {
- model.setValue(xBedsoreGridPath +"[" + (iRow) + "]/stat","u");
- }
- retNMParam = getParameter(str + "cdnm");
- retCDParam = getParameter(str +"cd");
- } else {
- return ;
- }
-
- model.setValue(xBedsoreGridPath+'['+iRow+']/' + str, retNMParam);
- model.setValue(xBedsoreGridPath+'['+iRow+']/' + str + 'id', retCDParam) ;
-
- clearParameter(str + "cdnm");
- clearParameter(str + "cd");
- clearParameter(str + "cdid");
- clearParameter(str + "Str");
- clearParameter(str + "etcExist");
- clearParameter(str + "etcStr");
- }
- /////////////////팝업데이터 세팅 함수 종료/////////////
- /////////////////데이터 저장/삭제 함수 시작////////////
- // 정맥염관찰기록 저장하기전에 유효성을 체크한다.
- function fIsValid(){
- //그리드 저장데이터 존재여부 체크(default rows = 2)
- if(grd_veinlist.rows < 2){
- messageBox("저장할 내역이","I004");
- return false;
- }
- var sflag = '';
- var cnts = 0;
-
- for(i = grd_veinlist.fixedRows; i < grd_veinlist.rows; i++) {
- if(grd_veinlist.rowStatus(i) != "0") {
- cnts ++;
- }
- }
-
- if ( cnts < 1 ) {
- messageBox("신규등록/수정사항이","I004");
- return false;
- }
- for(var i = 1 ; i < grd_veinlist.rows; i++ ){
- //정맥염발생부위 입력여부 체크
- if( model.getValue(xBedsoreGridPath + "[" + i + "]/veifpartnm") == ""
- || model.getValue(xBedsoreGridPath + "[" + i + "]/veifpartnm").length <= 0 ) {
- messageBox("정맥염발생부위는","I003");
- return false;
- }
-
- //정맥염발생장소 입력여부 체크
- if( model.getValue(xBedsoreGridPath + "[" + i + "]/genrplce") == ""
- || model.getValue(xBedsoreGridPath + "[" + i + "]/genrplce").length <= 0 ) {
- messageBox("정맥염발생장소는","I003");
- return false;
- //정맥염발생장소가 원내인경우 발생장소(원내) 입력여부 체크
- }else if(model.getValue(xBedsoreGridPath + "[" + i + "]/genrplceid") == "1" && model.getValue(xBedsoreGridPath + "[" + i + "]/genrplcewardcd") == "" ){
- messageBox("정맥염발생장소가 원내인 항목은 발생장소(원내)를 입력하십시오.","I");
- return false;
- }
-
- //정맥염발생원인 입력여부 체크
- if( model.getValue(xBedsoreGridPath + "[" + i + "]/cause") == ""
- || model.getValue(xBedsoreGridPath + "[" + i + "]/cause").length <= 0 ) {
- messageBox("정맥염발생원인은","I003");
- return false;
- }
-
- //정맥염발생단계 입력여부 체크
- if( model.getValue(xBedsoreGridPath + "[" + i + "]/stage") == ""
- || model.getValue(xBedsoreGridPath + "[" + i + "]/stage").length <= 0 ) {
- messageBox("정맥염발생단계는","I003");
- return false;
- }
- }
- return true;
- }
- var SIGN_ROW = 0;//for돌때 해당 그리드만 인증데이터로 만들어주기 위해 global variable로 선언
- //인증저장
- function fSignSave(){
- if(fIsValid()){
- var pid = model.getValue("/root/main/cond/pid");
- var indd = model.getValue("/root/main/paminfo/list/indd");
- var cretno = model.getValue("/root/main/paminfo/list/cretno");
- var orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
- var orddrid = model.getValue("/root/main/paminfo/list/medispclid");
- var ordtype = model.getValue("/root/main/paminfo/list/ordtype");
- var signno = '';
-
- // 저장 데이터 세팅
- model.removenode("/root/send/savedata");
- var iRows = grd_veinlist.rows;
- for(var i=1;i<iRows;i++) {
- if(model.getValue("/root/main/veininfo/veinlist["+i+"]/veifpartnm").substring(0,4) == "Ant."){
- model.setValue("/root/main/veininfo/veinlist["+i+"]/veifpartnm", "(anterior)"+model.getValue("/root/main/veininfo/veinlist["+i+"]/veifpartnm").substring(4))
- }
- }
- model.makeValue("/root/send/savedata/veininfo", grd_veinlist.getupdatedataAll('i'));
-
- model.refresh();
-
- Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
-
- //for를 돌면서 각 정맥염관찰기록정보의 노드를 복사 한다.
- for(var i = 1; i < grd_veinlist.rows; i++){
- SIGN_ROW = i;
- signno = model.getValue(xBedsoreGridPath + '[' + i + ']/signno');
-
- // 인증 로직 호출
- ViewFunc = "sign";
- if(Sign.signprocess() == true){
- //alert(Sign.signedInfos[1]);
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", indd); // 입원일자(입원,응급)/진료일자(외래)
-
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
-
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "1300014127"); // 각 기록지별 서식코드(1300014127 정맥염관찰기록)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
-
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
-
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/screenid" , getScreenID());
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N"); // 인증저장용 data(view용 인증데이터는 따로 생성함)
- } else {
- return ;
- }
- }
- if(submit("TXMNW15200")){
- model.copyNode("/root/hidden/main/veininfo", "/root/main/veininfo");
- fMakeViewData(); //통합기록view용 데이터생성
-
- }
- }
- }
- // 인증데이터 만들기.
- function fMake_SignData(){
-
- if (ViewFunc == "sign"){
- // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
- Sign.addnode("/root/main/cond");
- Sign.addnode("/root/main/veininfo/veinlist[" + SIGN_ROW + "]");
-
- var xDeltGrupPath = Sign.XPATH_SIGNINFO + "/veinlist[" + SIGN_ROW + "]";
-
- var flag;
- var stage;
-
-
- //구분
- flag = model.getValue(xDeltGrupPath + "/flag");
- if(flag != "") {
- model.setValue(xDeltGrupPath + "/flag", grd_veinlist.labelMatrix(SIGN_ROW, grd_veinlist.colRef("flag")));
- }
-
- //단계
- stage = model.getValue(xDeltGrupPath + "/stage");
- if(stage != "") {
- model.setValue(xDeltGrupPath + "/stage", grd_veinlist.labelMatrix(SIGN_ROW, grd_veinlist.colRef("stage")));
- }
-
- //발생장소(원내)
- genrplcewardcd = model.getValue(xDeltGrupPath + "/genrplcewardcd");
- if(genrplcewardcd != "") {
- model.makeValue(xDeltGrupPath + "/genrplcewardnm", grd_veinlist.labelMatrix(SIGN_ROW, grd_veinlist.colRef("genrplcewardcd")));
- }
-
-
- }else if (ViewFunc == "view"){
-
- // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
- Sign.addnode("/root/main/cond");
- Sign.addnode("/root/viewinfo/viewveingrup");;
-
- var xViewDeltGrupPath = Sign.XPATH_SIGNINFO + "/viewveingrup";
-
- var flag;
- var stage;
-
- var bf_pid = "";
- var bf_grupcd = "";
- var bf_veifrecseq = "";
- var bf_instcd = "";
- var af_pid = "";
- var af_grupcd = "";
- var af_veifrecseq = "";
- var af_instcd = "";
-
- for(var i = 1 ; i <= getNodesetCount(xViewDeltGrupPath + "/veinlist"); i++) {
- af_pid = model.getValue(xViewDeltGrupPath + "/veinlist[" + i + "]/pid");
- af_grupcd = model.getValue(xViewDeltGrupPath + "/veinlist[" + i + "]/grupcd");
- af_veifrecseq = model.getValue(xViewDeltGrupPath + "/veinlist[" + i + "]/veifrecseq");
- af_instcd = model.getValue(xViewDeltGrupPath + "/veinlist[" + i + "]/instcd");
-
- //구분
- flag = model.getValue(xViewDeltGrupPath + "/veinlist[" + i + "]/flag");
-
- if(flag != "") {
- if(flag == "00"){
- model.setValue(xViewDeltGrupPath + "/veinlist[" + i + "]/flag", "등록");
- }else if(flag == "01"){
- model.setValue(xViewDeltGrupPath + "/veinlist[" + i + "]/flag", "사정");
- }else if(flag == "99"){
- model.setValue(xViewDeltGrupPath + "/veinlist[" + i + "]/flag", "종료");
- }
- }
- //단계
- stage = model.getValue(xViewDeltGrupPath + "/veinlist[" + i + "]/stage");
-
- bf_pid = af_pid;
- bf_grupcd = af_grupcd;
- bf_veifrecseq= af_veifrecseq;
- bf_instcd = af_instcd;
-
- }
- }
- }
- // 정맥염관찰기록 삭제
- function fDel(){
- //삭제할 항목이 선택되었는지 여부를 체크
- var delFlag = false; //체크박스 체크여부
- var sel = ''; //체크박스(true/false)
- var stat = ''; //그리드상태(i/u/d)
- var flag = ''; //등록구분 (등록/사정/종료)
- var returnArr, isEnd, isAss, isStage;
- var checkStr; //체크값 (발생부위 + 발생일자 + 발생시간 + 원인)
- var isSvrDel = false; //db에 저장된 데이터 삭제시
-
- var retMsg = messageBox('선택하신 정맥염관찰기록을', 'Q001');
-
- if(retMsg != "6") {
- return "false";
- }
- var pid = model.getValue("/root/main/cond/pid");
- var indd = model.getValue("/root/main/paminfo/list/indd");
- var cretno = model.getValue("/root/main/paminfo/list/cretno");
- var orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
- var orddrid = model.getValue("/root/main/paminfo/list/medispclid");
- var ordtype = model.getValue("/root/main/paminfo/list/ordtype");
-
- var signno = '';
- Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누를때마다 인증서가 뜨도록 처리
- for(var i = 1; i < grd_veinlist.rows; i++){
-
- sel = model.getValue(xBedsoreGridPath + "[" + i + "]/sel");
- stat = model.getValue(xBedsoreGridPath + "[" + i + "]/stat");
- flag = model.getValue(xBedsoreGridPath + "[" + i + "]/flag");
-
- SIGN_ROW = i ;
- if(sel == 'true'){
- delFlag = true;
- if(stat == 'i'){
- //체크한 항목이 행추가 (stat:i)상태인 경우 그리드에서 바로 삭제
- grd_veinlist.deleteRow(i);
- }else{
- isSvrDel = true;
- //종료가 존재하는지 여부를 배열로 리턴
- returnArr = fIsExistEndData(i);
- isAss = returnArr[2];
- isEnd = returnArr[3];
- checkStr = i + '¿' + returnArr[6] + returnArr[7] + returnArr[8] + returnArr[9];
- if(isEnd){
- //체크한 항목의 해당 부위에 종료가 있으면 삭제할수 없다는 메세지 출력후 리턴
- var veifpartnm = returnArr[6];
- var gendt = returnArr[7].substring(0, 4) + '-' + returnArr[7].substring(4, 6) + '-'
- + returnArr[7].substring(6) + ' ' + returnArr[8].substring(0, 2) + ':' + returnArr[8].substring(2);
- messageBox('선택하신 발생부위 "' + veifpartnm + '"발생일시"' + gendt + '" 는 이미 종료기록이 있으므로 삭제하실 수', 'I004');
- //update상태로 변경된 row를 원상태로 변경
- grd_veinlist.removeStatus(i, 'update');
- model.setValue(xBedsoreGridPath + "[" + i + "]/sel", 'false');
- model.setValue(xBedsoreGridPath + "[" + i + "]/stat", '-');
-
- model.refresh();
- return;
- }
- //등록 삭제시 해당부위에 사정기록있으면 등록~사정 모두삭제한다는 메세지 출력
- else if(flag == '00' && isAss){
- //선택한 체크박스가 등록상태이고, 해당 발생부위에 사정기록이 존재할때
- //사정기록까지 삭제하겠냐는 메세지 호출해 확인 누르면 해당 그룹 모두 체크 취소누르면 선택 해제
- if(messageBox('선택하신 정맥염부위 "'+returnArr[6]+'"를 삭제하시면 사정기록도 함께 삭제됩니다.', 'Q001') == 6){
- fCheckSamePart(checkStr);
- }else{
- return "false";
- }
- }
- else{
- //상태값을 'd'로 변경
- model.setValue(xBedsoreGridPath + "[" + i + "]/stat", 'd');
- grd_veinlist.addStatus(i, 'delete');
-
- signno = model.getValue(xBedsoreGridPath + '[' + i + ']/signno');
-
- // 인증 로직 호출
- ViewFunc = "sign";
- if(Sign.signprocess() == true){
-
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", indd); // 입원일자(입원,응급)/진료일자(외래)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "1300014127"); // 각 기록지별 서식코드(1300014127 정맥염관찰기록)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
- //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
-
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/screenid", getScreenID());
- model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N"); //인증저장용 data(view용 인증데이터는 따로 생성함)
-
- } else {
- return ;
- }
- }
- }
- }
- }
- //선택한 항목이 없을때
- if(!delFlag){
- messageBox('삭제할 항목을', 'C002');
- return;
- }
- //삭제 서브미션 호출
- model.removenode("/root/send/savedata");
- model.makeValue("/root/send/savedata/veininfo", grd_veinlist.getupdatedata('delete'));
- model.makeValue("/root/send/savedata/pid", model.getValue("/root/main/cond/pid"));
-
- if(submit("TXMNW15200")){
- model.copyNode("/root/hidden/main/veininfo", "/root/main/veininfo");
- fMakeViewData(); //통합기록view용 데이터생성
- }
- }
- /////////////////데이터 저장/삭제 함수 종료////////////
- //선택한 발생부위에 해당되는 모든 그룹을 체크(true)로 변경
- function fCheckSamePart(checkStr){
- var _chkArr = checkStr.split('¿');
- var sRow = _chkArr[0];
- var chkStr = _chkArr[1];
- var _chkStr = '';
- for(var i = sRow; i < grd_veinlist.rows; i++){
- _chkStr = model.getValue(xBedsoreGridPath+ '[' + i + ']/veifpartnm');
- _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrdd');
- _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrtm');
- _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/cause');
- if(chkStr == _chkStr){
- model.setValue(xBedsoreGridPath + "[" + i + "]/stat", 'd');
- model.setValue(xBedsoreGridPath + "[" + i + "]/sel", 'true');
- grd_veinlist.addStatus(i, 'delete');
- }
- }
- model.refresh();
- }
- //체크 해제하면 update상태를 select상태로 변경한다.
- function fChangeStatus(selRow){
-
- var isChk = model.getValue(xBedsoreGridPath + "[" + (selRow) + "]/sel");
-
- if(isChk == 'false'){
- if(grd_veinlist.rowstatus(selRow+1) == "1" || grd_veinlist.rowstatus(selRow+1) == "3") {
-
- }else{
- model.setValue(xBedsoreGridPath + "[" + (selRow) + "]/stat", '-');
- grd_veinlist.removeStatus(selRow, 'update');
- }
- }
- }
- // 정맥염발생부위추가
- function fAddGenArea(){
-
- if(model.getValue("/root/main/cond/indsch") == "1"){
- if(model.getValue("/root/main/cond/pid") == ''){
- messageBox('환자를 선택하여 주십시오', 'I');
- return;
- }
- }else{
- if(model.getValue("/root/main/cond/patientnm") == ''){
- messageBox('환자를 선택하여 주십시오', 'I');
- return;
- }
- }
- var iRows = grd_veinlist.rows;
- var iRow = grd_veinlist.row;
-
- grd_veinlist.addRow();
- grd_veinlist.colDisabled(grd_veinlist.colRef("flag"))=true;
-
- if(iRows < 2){
-
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/grupcd","00000001");
-
- } else if(iRows > 1){
- // grupcd만드는 부분
- var sRowCnt = grd_veinlist.rows-grd_veinlist.fixedrows;
- // grupcd 현재 화면의 최대값 가져오기 시작
- var retVal = "" ;
- for(var i=1; i<= sRowCnt; i++){
- if(xGrupcdmax) {
- saveyn = 1 ;
- }
- retVal = parseInt(xGrupcdmax);
- }
- retVal = retVal + 1 ;
- retVal = String(retVal) ;
- retVal = fLpad(retVal,8,0);// grupcd 8자리 나머지는 0 으로 매꿈
- xGrupcdmax = retVal;
- //grupcd 현재 화면의 최대값 가져오기 끝
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/grupcd",retVal);
- }
- var instcd = model.getValue("/root/main/paminfo/list/instcd");
- var pid = model.getValue("/root/main/paminfo/list/pid");
- var indd = model.getValue("/root/main/paminfo/list/indd");
- var cretno = model.getValue("/root/main/paminfo/list/cretno");
-
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/stat", "i");
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/instcd", instcd);
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/pid", pid);
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/indd", indd);
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/cretno", cretno);
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/genrdd", getCurrentDate());
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/genrtm", getCurrentDateTime().substring(9,13));
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/flag", "00");
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/recdd", getCurrentDate());
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/rectm", getCurrentDateTime().substring(9,13));
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/recrnm", getUserName());
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/recrid", getUserId());
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/genrplce", "원내");
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/genrplceid", "1");
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/genrplcewardcd", getUserInfo("dutplcecd"));
- grd_veinlist.isReadOnly(grd_veinlist.row,grd_veinlist.colRef("genrdd")) = false;
- grd_veinlist.isReadOnly(grd_veinlist.row,grd_veinlist.colRef("recdd")) = false;
-
- model.refresh();
- }
- // 왼쪽 자리수 채우기, Left 빈자리 만큼 padStr 을 붙인다.
- function fLpad(src, len, padStr){
- var retStr = "";
- var padCnt = Number(len) - String(src).length;
- for(var i=0;i<padCnt;i++)
- retStr += String(padStr);
- return retStr+src;
- }
- // 그리드내의 mousedown 이벤트 발생시 호출
- function fMouseDownGridRow(){
- var iVeinListRow = grd_veinlist.row;
- // right Button Click
- if(event.button == 3){
- //데이터 행이 존재할때
- if(grd_veinlist.rows > grd_veinlist.fixedrows && grd_veinlist.isCell(event.target) && grd_veinlist.mouseRow >= grd_veinlist.fixedrows){
- window.setPopupMenu(true, "/root/hidden/veingrup_sameinflevl_popmenu/menu", "name", "func", false);
- }else{
- window.setPopupMenu(false);
- }
- }
- }
- // 정맥염 관찰기록 내역 그리드의 xforms-value-changed이벤트 발생시 호출된다.
- function fChangedGridCol(){
- var sDetlGrupRow = (grd_veinlist.row);
- var sDetlGrupBKRow=0;
- var iRow = grd_veinlist.row;
- var iCol = grd_veinlist.col;
-
- var stat = model.getValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/stat");
-
- //데이터 변경시 그리드 상태값(stat)을 u상태로 변경한다.
- if(stat == "-"){
- //그리드의 stat update를 위한 비교할 hidden nodelist의 idx찾기
- var veifrecseq = model.getValue(xBedsoreGridPath+"["+sDetlGrupRow+"]/veifrecseq");
- for(var i=1; i<= getNodesetCount(xClsListBKPath); i++){
- if(model.getValue(xClsListBKPath+"["+i+"]/veifrecseq") == veifrecseq){
- sDetlGrupBKRow = i;
- break;
- }
- }
-
- //체크박스 선택 아닐때 조회해서 hidden에 담아둔 nodelist와 변경된 그리드의 nodelist의 stat를 비교하여 수정상태로 바꿔준다.
-
- if(iCol != grd_veinlist.colRef("sel")){// 선택시 stat 값 변경 않기
- var preUpdatedStr = instance1.selectSingleNode(xClsListBKPath+"["+sDetlGrupBKRow+"]").xml;
- var updatedStr = instance1.selectSingleNode(xBedsoreGridPath+"["+sDetlGrupRow+"]").xml;
-
- if(updatedStr != preUpdatedStr){
- model.setValue(xBedsoreGridPath+"["+(grd_veinlist.row)+"]/stat","u");
- }
- }
- }
- }
- // 정맥염 관찰기록 그리드에서 우측마우스 클릭시 팝업을 띄워준다.
- function fAddSameLevlItemEnd(){
- fAddSameLevlItem(true);
-
- return ;
- }
- // 마우스 우측 클릭시 발생구분에 따라 그리드 행 추가 (true이면 오른쪽 메뉴에서 종료를 선택한 상태, false이면 사정을 선택한 상태)
- function fAddSameLevlItem(selEndMenu){//오른쪽 메뉴에서 사정또는 종료 선택시
- var msgStr = '사정기록';
- if(selEndMenu){
- msgStr = '종료기록';
- }
- //종료또는 사정기록 존재여부를 리턴받는다.
- var returnArr = fIsExistEndData(grd_veinlist.row);
- var compareStr = returnArr[0];
- var compRow = returnArr[1];
- var isAss = returnArr[2];
- var isEnd = returnArr[3];
- var stage = returnArr[15];
-
- //종료기록이 있으면 입력할수 없다는 메세지 출력후 리턴
- if(isEnd){
- messageBox('선택하신 부위는 이미 종료된 기록이 있으므로 다시 '+ msgStr +' 하실 수', 'I004');
- return;
- }
- //종료메뉴 선택시 사정기록이 없으면 메세지 출력후 리턴
- if(selEndMenu && !isAss){
- messageBox('선택하신 부위는 사정기록이 없으므로 ' + msgStr + ' 하실 수', 'I004');
- return;
- }
-
- //해당 발생부위 가장 하위의 그리드에 insertRow을 하기 위해 발생부위 가장 하위row index를 찾는다.
- var addLastRow = 0;
- var _compareStr;
- for(var i = compRow; i < grd_veinlist.rows; i++){
- _compareStr = model.getValue(xBedsoreGridPath+ '[' + i + ']/veifpartnm');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrdd');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrtm');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/cause');
-
- if(compareStr != _compareStr){
- addLastRow = i+1;
- break;
- }
- }
- //발생부위가 등록/사정만 있으면 해당 발생부위 하위에 사정 추가
- //구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
- if(addLastRow == 0){
- addLastRow = grd_veinlist.rows;
- grd_veinlist.addRow();
- grd_veinlist.colDisabled(grd_veinlist.colRef("flag"))=true;
-
- }else{
- addLastRow = grd_veinlist.rows;
- grd_veinlist.addRow();
- grd_veinlist.colDisabled(grd_veinlist.colRef("flag"))=true;
- }
-
- //그리드에 발생부위, 일자, 시간, 원인, 기록일시 set한다.
- fSetInsertValue(addLastRow, selEndMenu, returnArr);
-
- model.refresh();
- }
-
- //종료또는 사정기록 존재여부 체크
- function fIsExistEndData(selRow, updatePartChk){
- //발생부위에 대해 종료된 사정인 경우 메세지 출력
- var compareStr, _compareStr, _flag;//비교값 str
- var compRow = 0;
- var isAss ; //사정기록 존재여부
- var isEnd ; //종료기록 존재여부
- var returnArr = new Array(10);
- //var isStage ; //1~4단계 기록 존재여부
- //선택한 발생부위 비교값
- var pid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/pid');
- var grupcd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/grupcd');
- var veifpartnm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/veifpartnm');//발생부위
- var genrdd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrdd'); //발생일자
- var genrtm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrtm'); //발생시간
- var cause = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/cause'); //원인
- var causeid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/causeid'); //원인
- var genrplce = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrplce'); //발생장소
- var genrplceid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrplceid'); //발생장소
- var stage = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/stage'); //단계
- var stageid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/stageid'); //단계
- var genrplcewardcd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrplcewardcd'); //발생장소(원내부서)
- var instcd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/instcd');
- var indd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/indd');
- var cretno = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/cretno');
- var intervention = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/intervention'); //중재
- var interventionid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/interventionid'); //중재
- //정맥염발생부위선택시 사정종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
- if(updatePartChk){
- compareStr = veifpartnm;
- }else{
- compareStr = veifpartnm + genrdd + genrtm + cause;
- }
- var veifrecseq = 0;
- //선택한 compareStr과 그리드내의 모든 _compareStr을 비교한다.
- for(var i = 1; i < grd_veinlist.rows; i++){
- if(selRow != i){
- _compareStr = model.getValue(xBedsoreGridPath+ '[' + i + ']/veifpartnm');
- //정맥염발생부위선택시 사정종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
- if(!updatePartChk){
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrdd');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrtm');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/cause');
- }
- }
- if(compareStr == _compareStr){
- compRow = i;
- _flag = model.getValue(xBedsoreGridPath+ '[' + i + ']/flag');
- if(_flag == '99'){//등록구분이 종료(99)
- isEnd = true;
- veifrecseq = model.getValue(xBedsoreGridPath+ '[' + i + ']/veifrecseq');
- break;
- }else if(_flag == '01'){//등록구분이 사정(01)
- isAss = true;
- veifrecseq = model.getValue(xBedsoreGridPath+ '[' + i + ']/veifrecseq');
- }else{
- isEnd = false;
- isAss = false;
- }
- }
- }
-
- //선택한 compareStr과 그리드내의 모든 _compareStr을 비교한다.
- for(var i = 1; i < grd_veinlist.rows; i++){
- if(selRow != i){
- _compareStr = model.getValue(xBedsoreGridPath+ '[' + i + ']/veifpartnm');
- //정맥염발생부위선택시 사정종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
- if(!updatePartChk){
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrdd');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrtm');
- _compareStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/cause');
- }
- }
- }
-
- //배열을 리턴한다.
- returnArr[0] = compareStr;
- returnArr[1] = compRow;
- returnArr[2] = isAss;
- returnArr[3] = isEnd;
- returnArr[4] = pid;
- returnArr[5] = grupcd;
- returnArr[6] = veifpartnm;
- returnArr[7] = genrdd;
- returnArr[8] = genrtm;
- returnArr[9] = cause;
- returnArr[10] = causeid;
- returnArr[11] = veifrecseq;
- returnArr[12] = genrplce;
- returnArr[13] = genrplceid;
- returnArr[14] = stage;
- returnArr[15] = stageid;
- returnArr[16] = genrplcewardcd;
- returnArr[17] = instcd;
- returnArr[18] = indd;
- returnArr[19] = cretno;
- returnArr[20] = intervention;
- returnArr[21] = interventionid;
- return returnArr;
- }
- // 행 추가시 그리드에 값 셋팅
- function fSetInsertValue(addLastRow, selEndMenu, returnArr){
-
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stat', 'i');
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pid', returnArr[4]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/grupcd', returnArr[5]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/veifpartnm', returnArr[6]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrdd', returnArr[7]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrtm', returnArr[8]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cause', returnArr[9]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/causeid', returnArr[10]);
- model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recdd", getCurrentDate());
- model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/rectm", getCurrentDateTime().substring(9,13));
- model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recrnm", getUserName());
- model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recrid", getUserId());
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrplce', returnArr[12]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrplceid', returnArr[13]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stage', "");
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stageid', "");
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrplcewardcd', returnArr[16]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/instcd', returnArr[17]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/indd', returnArr[18]);
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cretno', returnArr[19]);
-
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/intervention', "");
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/interventionid', "");
-
- if(!selEndMenu){
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/flag', '01');//사정
- }else{
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/flag', '99');//종료
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stageid', '12');//종료시 단계값
- model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stage', model.getValue("/root/hidden/codelist/getVOStage[cd='12']/cdnm"));//종료시 단계값
- }
- grd_veinlist.isReadOnly(addLastRow,grd_veinlist.colRef("genrdd")) = true;
- //grd_veinlist.isReadOnly(addLastRow,grd_veinlist.colRef("recdd")) = true;
- grd_veinlist.isReadOnly(addLastRow,grd_veinlist.colRef("genrplcewardcd")) = true;
- }
- // 통합기록조회용 인증데이터 생성
- function fMakeViewData(){
- var pid = model.getValue("/root/main/cond/pid");
- var indd = model.getValue("/root/main/paminfo/list/indd");
- var cretno = model.getValue("/root/main/paminfo/list/cretno");
- var orddeptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
- var orddrid = model.getValue("/root/main/paminfo/list/medispclid");
- var ordtype = model.getValue("/root/main/paminfo/list/ordtype");
-
- var signno = '';
-
-
- //조회조건값 세팅
- model.removenode("/root/send");
- model.makeValue("/root/send/pid", pid); //등록번호
- model.makeValue("/root/send/indd", indd);
- model.makeValue("/root/send/cretno", cretno);
-
- model.makeValue("/root/send/genrdd", model.getValue("/root/main/cond/genrdd")); //기준일자(발생일자)
- model.makeValue("/root/send/genrtm", model.getValue("/root/main/cond/genrtm")); //기준시간(발생시간)
- model.makeValue("/root/send/stdradio", '0'); //조회조건의라디오(전체/종료전(전체)/종료전(최근입력만))
-
-
- //정맥염관찰기록 조회
- model.removenode('/root/main/veininfo');
-
- if(submit('TRMNW15205')){
- // 인증 로직 호출
- ViewFunc = "view";
- if (Sign.signprocess() == true){
- model.makeValue("/root/send/savedata/pid", pid); // 등록번호
- model.makeValue("/root/send/savedata/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
- model.makeValue("/root/send/savedata/orddd", indd); // 입원일자(입원,응급)/진료일자(외래)
- model.makeValue("/root/send/savedata/signno", signno); // 서명번호
- model.makeValue("/root/send/savedata/cretno" , cretno); // 생성번호
- model.makeValue("/root/send/savedata/recdd", model.getValue("/root/viewinfo/viewveingrup/veinlist/signrecddmax")); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
- model.makeValue("/root/send/savedata/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
- model.makeValue("/root/send/savedata/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- model.makeValue("/root/send/savedata/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
- model.makeValue("/root/send/savedata/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
- model.makeValue("/root/send/savedata/formcd", "1300014127"); // 각 기록지별 서식코드(1300014127 정맥염관찰기록)
- model.makeValue("/root/send/savedata/orddeptcd", orddeptcd); // 진료부서코드
- model.makeValue("/root/send/savedata/orddrid" , orddrid); // 진료의사ID
-
- //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
- model.makeValue("/root/send/savedata/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
- model.makeValue("/root/send/savedata/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
-
- model.makeValue("/root/send/savedata/screenid" , getScreenID());
- model.makeValue("/root/send/savedata/dispyn", "Y"); //인증저장용 data(view용 인증데이터는 따로 생성함)
-
- } else {
- return ;
- }
-
- if(submit("TXMNW04713")){
- finit("saveflag");
- }
- }
- }
- // 재원/퇴원 구분
- function fSetInDsch(Pram){
-
- if(Pram == "D" || Pram == "T" ){
- model.makeValue(rdo_indsch.attribute("ref"), "2" );
- }else{
- model.makeValue(rdo_indsch.attribute("ref"), "1" );
- }
-
- rdo_indsch.refresh();
- fSetInDschHidden();
- }
- // 재원/퇴원 구분
- function fSetInDschHidden(){
-
- var indsch = model.getValue("/root/main/cond/indsch");
- if(indsch == "1"){
- ctn_pid.visible = false;
- cmb_patientnm.visible = false;
- ipt_pid.visible = false;
- ctn_ward.visible = true;
- cmb_ward.visible = true;
- cap_settingrn.visible = true;
- cmb_settingrn.visible = true;
- line1.visible = true;
- button1.visible = true;
- fnZoneDisp();
- }else if(indsch == "2"){
- ctn_pid.visible = true;
- cmb_patientnm.visible = true;
- ipt_pid.visible = true;
- ctn_ward.visible = false;
- cmb_ward.visible = false;
- cap_settingrn.visible = false;
- cmb_settingrn.visible = false;
- cap_Zone.visible = false;
- cmb_Zone.visible = false;
- line1.visible = false;
- button1.visible = false;
- }
- }
- function fGetPidWardInfo(pid){
- if(pid != null && pid != ''){
- model.removenode('/root/send');
- model.removenode('/root/main/patinfo');
- model.makeValue('/root/send/pid', pid);
- if(!submit('TRMNW04707', "false")){
- messageBox('환자정보 조회를', 'E009');
- return;
- }else{
- model.setValue('/root/main/cond/patientnm',model.getValue('/root/main/patinfo/patinfolist/pid'));
- model.setValue('/root/main/cond/pid',model.getValue('/root/main/patinfo/patinfolist/pid'));
- cmb_patientnm.refresh();
- ipt_pid.refresh();
-
- }
- }
- }
|