123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538 |
- /*
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- 진료대상자 화면설정 ( SPMMB01100_진료대상자 화면설정.xrw - JScript )
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- /**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitialize_SPMMB01100(){
- var scrnid = opener.javascript.getParameter("SMMMO04100_param_scrnid");
- var grdid = opener.javascript.getParameter("SMMMO04100_param_grdid");
-
- model.setValue("/root/main/cond/scrnid", scrnid);
- model.setValue("/root/main/cond/grdid" , grdid);
-
- fReqOrderInfoOfCol(grdid); // 사용자 설정 셋팅
- }
- /**
- * @desc : 컬럼 순서 정보를 얻는다.
- * @
- * @param : grid ID
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fGetOrderInfoOfCol(grdID){
- var grdObj = document.controls.item(grdID);
- var refdata = ""; // ref
- var sizedata = ""; // size
- var sFrozenCol = ""; // frozenCols
- var refval = "";
- var sizeval = "";
-
- var totcol = grdObj.cols;
- for(var i = 0; i < totcol; i++){
- refval = grdObj.colAttribute(i, "ref");
- refdata += refval + "^";
-
- sizeval = grdObj.colWidth(i);
- sizedata += sizeval + "^";
-
- if(grdObj.valuematrix(1, i) == "☜") {
- sFrozenCol = refval;
- }
- }
- refdata = refdata.substring(0 , refdata.length-1);
- sizedata = sizedata.substring(0, sizedata.length-1);
-
- model.removeNodeset("/root/listval");
- model.makeValue("/root/listval/refdata", refdata);
- model.makeValue("/root/listval/sizedata", sizedata);
- model.makeValue("/root/listval/frozencol", sFrozenCol);
- }
- /**
- * @desc : 컬럼 순서 정보 설정한다.
- * @
- * @param : grid ID : 그리드ID
- : refdata : 그리드 ref데이터 구분자 '^'
- : sizedata : 그리드 size데이터 구분자 '^'
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSetOrderInfoOfCol(grdID, refdata, sizedata, frozencol){
- var grdObj = document.controls.item(grdID);
- var refArray = refdata.split("^");
- var sizeArray = sizedata.split("^");
- for(var i = 0; i < refArray.length; i++){
- var colcnt = grdObj.colref(refArray[i]);
- grdObj.colMove(i, colcnt, "before", false);
-
- var size = sizeArray[i];
- grdObj.colWidth(i) = eval(size);
-
- if(!isNull(frozencol) && grdObj.colAttribute(i, "ref") == frozencol) {
- grdObj.valuematrix(1, i) = "☜";
- }
- }
- model.refresh();
- }
- /**
- * @desc : 화면ID에 해당하는 컬럼순서를 조회한다.
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqOrderInfoOfCol(grdid){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/userid", getUserInfo("userid"));
- model.makeValue("/root/send/reqdata/scrnid", model.getValue("/root/main/cond/scrnid"));
- if(submit("TRMMB01103")){
- var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
- var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
- var frozencol = model.getValue("/root/init/userscrnenvinfo/gridseq/frozencol");
-
- if(refdata != "" || sizedata != ""){
- //fSetOrderInfoOfCol(grdid, refdata, sizedata, frozencol);
- setOrderInfoOfCol(grdid + "_resize", refdata, sizedata, frozencol);
- }
- }
- }
- /**
- * @desc : 화면ID에 해당하는 기본 컬럼순서를 조회한다.
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqBasicOrderInfoOfCol(grdid){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/userid", "00000"); // 병원 공통(00000) 기본 컬럼을 조회 한다.
- model.makeValue("/root/send/reqdata/scrnid", model.getValue("/root/main/cond/scrnid"));
- if(submit("TRMMB01103")){
- var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
- var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
- var frozencol = model.getValue("/root/init/userscrnenvinfo/gridseq/frozencol");
- if(refdata != "" || sizedata != ""){
- // fSetOrderInfoOfCol(grdid, refdata, sizedata, frozencol);
- setOrderInfoOfCol(grdid, refdata, sizedata, frozencol);
- }
- }
- }
- /**
- * @desc : 상단 TAB버튼 클릭시
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fClkBtnOfTopTab(caseid, grdid, scrnid){
- model.toggle(caseid);
- model.setValue("/root/main/cond/grdid" , grdid);
- model.setValue("/root/main/cond/scrnid", scrnid);
-
- fReqBasicOrderInfoOfCol(grdid); // 기본설정 셋팅
- fReqOrderInfoOfCol(grdid); // 사용자 설정 셋팅
- }
- /**
- * @desc : 그리드 ref, size저장
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSaveOrderInfoCol(){
- var grdid = model.getValue("/root/main/cond/grdid");
- var scrnid = model.getValue("/root/main/cond/scrnid");
-
- fGetOrderInfoOfCol(grdid + "_resize");
- var refdata = model.getValue("/root/listval/refdata");
- var sizedata = model.getValue("/root/listval/sizedata");
- var sFrozenCol = model.getValue("/root/listval/frozencol");
-
- model.removeNodeset("/root/send/savedata");
- model.makeValue("/root/send/savedata/compscnts", ""); //추후 삭제 예정
- model.makeValue("/root/send/savedata/scrnid", scrnid);
- model.makeValue("/root/send/savedata/compsrefcnts", refdata);
- model.makeValue("/root/send/savedata/compssizecnts", sizedata);
- model.makeValue("/root/send/savedata/frozencol", sFrozenCol);
- model.makeValue("/root/send/savedata/compscd" , model.getValue("/root/init/userscrnenvinfo/gridseq/compscd"));
- submit("TXMMB01102");
- }
- /**
- * @desc : 사용자화면 설정 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitOrderOfCol(){
- var grdid = model.getValue("/root/main/cond/grdid");
- fGetOrderInfoOfCol(grdid); //현재 default로 설정된 grid의 column과 size를 구한다.
-
- var refdata = model.getValue("/root/listval/refdata");
- var sizedata = model.getValue("/root/listval/sizedata");
- var frozencol = model.getValue("/root/listval/frozencol");
-
- fSetOrderInfoOfCol(grdid +"_resize", refdata, sizedata, frozencol); //default로 설정된 grid의 column과 size를 다시 설정한다.
- }
- /**
- * @desc : 사용자화면 설정 초기화
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAppOrderOfCol(sType){
- var grdid = model.getValue("/root/main/cond/grdid");
-
- if(sType == "BASIC") { // 기본설정 적용(BASIC)
- fGetOrderInfoOfCol(grdid +"_basic"); //현재 default로 설정된 grid의 column과 size를 구한다.
- } else { // 전체(ALL)
- fGetOrderInfoOfCol(grdid); //현재 default로 설정된 grid의 column과 size를 구한다.
- }
-
- var refdata = model.getValue("/root/listval/refdata");
- var sizedata = model.getValue("/root/listval/sizedata");
- var frozencol = model.getValue("/root/listval/frozencol");
-
- fSetOrderInfoOfCol(grdid +"_resize", refdata, sizedata, frozencol); //default로 설정된 grid의 column과 size를 다시 설정한다.
- }
- /**
- * @desc : 그리드의 column 삭제
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fDelColOfGrd(){
- var grdid = model.getValue("/root/main/cond/grdid");
- var ResizeGrdObj = document.controls.item(grdid + "_resize");
- var selectedCells = ResizeGrdObj.selectedCells;
- for(var i = 0; i < selectedCells.length; i++){
- var curcol = selectedCells.item(i).col;
- ResizeGrdObj.colWidth(curcol) = 0;
- //ResizeGrdObj.colHidden(curcol) = true;
- }
- ResizeGrdObj.rebuild();
- }
- /**
- * @desc : 그리드의 column 추가
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColOfGrd(){
- var sAddColNm = ""; // 컬럼명
- var sAddColSz = ""; // 컬럼 사이즈
- var nCurCol = 0; // 선택된 컬럼 번호
- var nSelCol = 0;
-
- var grdid = model.getValue("/root/main/cond/grdid");
- var SelectedGrdObj = document.controls.item(grdid);
- var ResizeGrdObj = document.controls.item(grdid + "_resize");
- var SelectedCells = SelectedGrdObj.selectedCells;
-
- for(var i = 0; i < SelectedCells.length; i++){
- nCurCol = SelectedCells.item(i).col;
- sAddColNm = SelectedGrdObj.colAttribute(nCurCol, "ref");
- sAddColSz = SelectedGrdObj.colWidth(nCurCol);
-
- nSelCol = ResizeGrdObj.colref(sAddColNm);
- if(nSelCol > 0) {
- ResizeGrdObj.colMove(nCurCol, nSelCol, "before", false);
- nSelCol = ResizeGrdObj.colref(sAddColNm);
- ResizeGrdObj.colWidth(nSelCol) = eval(sAddColSz);
- }
- }
- ResizeGrdObj.rebuild();
-
- if(nSelCol > 0) {
- ResizeGrdObj.select( 1, nSelCol, 1, nSelCol ) = true;
- }
- }
- /**
- * @desc : 그리드의 column 고정 설정
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fSetFrozenColOfGrd(){
- var grdid = model.getValue("/root/main/cond/grdid");
- var ResizeGrdObj = document.controls.item(grdid + "_resize");
- var SelectedCells = ResizeGrdObj.selectedCells;
-
- if (SelectedCells.length >0) {
- var curcol = SelectedCells.item(0).col;
- for(var i = 0; i < ResizeGrdObj.cols; i++){
- if (curcol == i) {
- ResizeGrdObj.valuematrix(1, i) = "☜";
- } else {
- ResizeGrdObj.valuematrix(1, i) = "";
- }
- }
- }
- ResizeGrdObj.rebuild();
- }
- /**
- * @desc : 그리드의 column 고정 취소
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fCancelFrozenColOfGrd(){
- var grdid = model.getValue("/root/main/cond/grdid");
- var ResizeGrdObj = document.controls.item(grdid + "_resize");
-
- for(var i = 0; i < ResizeGrdObj.cols; i++){
- ResizeGrdObj.valuematrix(1, i) = "";
- }
- ResizeGrdObj.rebuild();
- }
- /**
- * @desc : 컬럼 추가 드래그 시작
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColDragStart(){
- var sDropData = ""; // Drag Drop 파라미터 데이터
- var sDragColNm = ""; // 컬럼명
- var sDragColSz = ""; // 컬럼 사이즈
- var nCurCol = 0; // 선택된 컬럼 번호
-
- var grdid = model.getValue("/root/main/cond/grdid");
- var SelectedGrdObj = document.controls.item(grdid);
- var SelectedCells = SelectedGrdObj.selectedCells;
- for(var i = 0; i < SelectedCells.length; i++){
- nCurCol = SelectedCells.item(i).col;
-
- sDragColNm = SelectedGrdObj.colAttribute(nCurCol, "ref");
- sDragColSz = SelectedGrdObj.colWidth(nCurCol);
-
- if(eval(sDragColSz)>0) {
- if(isNull(sDropData)) {
- sDropData = sDragColNm + "^" + sDragColSz;
- } else {
- sDropData = sDropData + "|" + sDragColNm + "^" + sDragColSz;
- }
- }
- }
- event.dropData = sDropData;
- }
- /**
- * @desc : 컬럼 추가 드래그 종료
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColDragOver(){
- var grdid = model.getValue("/root/main/cond/grdid");
- if(event.drag == grdid) {
- var grdObj = document.controls.item(grdid+"_resize");
- grdObj.select( 1, grdObj.mouseCol, 1, grdObj.mouseCol ) = true;
- }
- }
- /**
- * @desc : 컬럼 추가 드래그 종료
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fAddColDrop(){
- var sDragColNm = "";
- var sDragColSz = "";
- var nPreCol = 0; // 옮기기전 Col
- var nSelCol = 0; // 옮긴후 Col
-
- var grdid = model.getValue("/root/main/cond/grdid");
- var ResizeGrdObj = document.controls.item(grdid + "_resize");
- if(event.drag == grdid) {
- if(!isNull(event.dropData)) {
- nSelCol = ResizeGrdObj.mouseCol; // 초기값은 마우스로 선택된 컬럼
-
- var saDropData = event.dropData.split("|");
- for (var i=0; i<saDropData.length; i++) {
- var saDropCol = saDropData[i].split("^");
-
- sDragColNm = saDropCol[0];
- sDragColSz = saDropCol[1];
-
- nPreCol = ResizeGrdObj.colref(sDragColNm); // 옮기기전 Col
- if(nPreCol < nSelCol) {
- ResizeGrdObj.colMove(nSelCol, nPreCol, "before", true);
- } else {
- ResizeGrdObj.colMove(nSelCol, nPreCol, "after", true);
- }
-
- nSelCol = ResizeGrdObj.colref(sDragColNm); // 옮긴후 Col
- ResizeGrdObj.colWidth(nSelCol) = eval(sDragColSz);
- }
-
- ResizeGrdObj.rebuild();
- if(nSelCol>0) {
- ResizeGrdObj.select( 1, nSelCol, 1, nSelCol ) = true;
- }
- }
- }
- }
- function fViewToolTipText(){
- var sGrdId = model.getValue("/root/main/cond/grdid");
- var GrdObj = document.controls.item(sGrdId);
- var sColNm = GrdObj.colAttribute(GrdObj.mouseCol, "ref");
- var sToolTip = "";
-
- if(sGrdId == "grd_opschelist") { // 외래 대상자
- if (sColNm == "elbulbodstat") sToolTip = "예약 진행 상태(미접수, 접수, 대기, 완료)";
- else if (sColNm == "ordtm") sToolTip = "외래 진료 예약시간";
- else if (sColNm == "hngnm") sToolTip = "환자 성명";
- else if (sColNm == "pid") sToolTip = "환자 차트번호";
- else if (sColNm == "sexage") sToolTip = "성별/나이";
- else if (sColNm == "refer") sToolTip = "협력의뢰 기관";
- else if (sColNm == "replstat") sToolTip = "협력의뢰 회신상태";
- else if (sColNm == "centcd") sToolTip = "진료 센터명";
- else if (sColNm == "orddrnm") sToolTip = "진료 의사명";
- else if (sColNm == "fsexamflag") sToolTip = "병원초진/과초진/재진 구분";
- else if (sColNm == "diagnm") sToolTip = "당일 진단명";
- } else if(sGrdId == "grd_opschelist_resize") { // 입원 대상자
- if (sColNm == "memo") sToolTip = "환자별 메모 존재여부";
- else if (sColNm == "roomcd") sToolTip = "병실번호";
- else if (sColNm == "dispnm2") sToolTip = "환자성명";
- else if (sColNm == "pid") sToolTip = "환자 차트번호";
- else if (sColNm == "sa") sToolTip = "성별/나이";
- else if (sColNm == "hd") sToolTip = "재원일수(Hospital Day)";
- else if (sColNm == "pod") sToolTip = "최근수술 후 일수";
- else if (sColNm == "ad") sToolTip = "입원일자";
- else if (sColNm == "refer") sToolTip = "협력의뢰 기관";
- else if (sColNm == "replstat") sToolTip = "협력의뢰 회신상태";
- else if (sColNm == "deptnm") sToolTip = "진료과명";
- else if (sColNm == "medispclnm") sToolTip = "주치교수";
- else if (sColNm == "atdoctnm") sToolTip = "담당의사";
- else if (sColNm == "diagnm") sToolTip = "입원 주 진단명";
- else if (sColNm == "opnm") sToolTip = "입원기간 중 최근 수술명";
- else if (sColNm == "cnst") sToolTip = "컨설트 존재여부";
- }
-
- GrdObj.tooltipText(1, GrdObj.mouseCol) = sToolTip;
- }
- /**
- * @desc : 화면ID의 grid의 column 순서 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function reqOrderInfoOfCol(scrnid, grdid, compscd){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/scrnid", scrnid);
- if (!isNull(compscd)) {
- model.makeValue("/root/send/reqdata/compscd", compscd);
- }
- if(submit("TRMMB01103")){
- var xmlnode = model.instance1.selectSingleNode("/root/init/userscrnenvinfo/gridseq");
- if(xmlnode != null){
- var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
- var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
- var frozencol = model.getValue("/root/init/userscrnenvinfo/gridseq/frozencol");
-
- setOrderInfoOfCol(grdid, refdata, sizedata, frozencol); //외래환자리스트 컬럼 설정
- }
- }
- }
- /**
- * @desc : 컬럼 순서 정보 설정
- * @
- * @param : grid ID : 그리드ID
- * : refdata : 그리드 ref데이터 구분자 '^'
- * : sizedata : 그리드 size데이터 구분자 '^'
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function setOrderInfoOfCol(grdid, refdata, sizedata, frozencol){
- var grdobj = document.controls.item(grdid);
- var refarr = refdata.split("^");
- var sizearr = sizedata.split("^");
- var nFrozenCols = 0;
-
- grdobj.mergeCellsFixedRows = "never"
- for(var i = 0; i < refarr.length; i++){
- var colcnt = grdobj.colref("" + refarr[i] + "");
- grdobj.colMove(i, colcnt, "before", false);
-
- var size = sizearr[i];
- if(size == 0){ // size of column 0 -> hidden
- grdobj.colHidden(i) = true;
- }else{
- grdobj.colHidden(i) = false;
- }
- grdobj.colWidth(i) = eval(size);
- }
-
- if(!isNull(frozencol)){ // 고정 컬럼 적용
- nFrozenCols = grdobj.colRef(frozencol);
- if(nFrozenCols>0) {
- grdobj.frozenCols = nFrozenCols;
- } else {
- grdobj.frozenCols = 0;
- }
- } else {
- grdobj.frozenCols = 0;
- }
-
- grdobj.mergeCellsFixedRows = "bycolrec"
- grdobj.rebuild();
- }
|