123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796 |
- <?xml version="1.0" encoding="EUC-KR"?>
- <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
- <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
- <xhtml:head>
- <xhtml:title>환자별 임상기록조회</xhtml:title>
- <model id="model1">
- <instance id="instance1">
- <root xmlns="">
- <main>
- <cond>
- <srchdd/>
- <pid/>
- <patnm/>
- <grdrage/>
- </cond>
- <patinfo>
- <patbaseinfo>
- <pid/>
- <patnm/>
- <grdrage/>
- </patbaseinfo>
- <patrechistinfo>
- <pid/>
- <indd/>
- <cretno/>
- <dschdd/>
- <rownum/>
- <histlist/>
- </patrechistinfo>
- <rsltflag>
- <rtnflag/>
- </rsltflag>
- </patinfo>
- <recinfo>
- <reclist/>
- </recinfo>
- </main>
- <init>
- </init>
- <temp>
- <recinfo/>
- </temp>
- <send/>
- <hidden/>
- </root>
- </instance>
- <script type="javascript" ev:event="xforms-ready">
- <![CDATA[
- //var sInitCaption = grd_reclist.caption;
- finit();
- ]]>
- </script>
- <submission id="TRMNR06311" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/patinfo"/>
- <submission id="TRMNR06312" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/recinfo"/>
- </model>
- <script type="javascript" src="../../../com/commonweb/js/common.js"/>
- <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
- <script type="javascript" src="../../../emr/carecomweb/js/CareCom.js"/>
- <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
- <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
- <script type="javascript">
- <![CDATA[
-
- var sInitCaption = grd_reclist.caption;
- //초기 설정 메소드
- function finit(){
- var sParamInfo = opener.javascript.getParameter("SPMNR06300_Param");
-
- if(sParamInfo == ""){
- messageBox("환자 번호를 입력하십시요", "I");
- return;
- }else{
- model.setValue("/root/main/cond/pid" , getArrayData(sParamInfo, 1, 0));
- model.setValue("/root/main/cond/srchdd" , getArrayData(sParamInfo, 1, 1));
- ipt_pid.refresh();
- fSrchPatInfo();
- }
- }
-
- function fInitGrid(){
- model.removenode("/root/main/recinfo");
- model.removenode("/root/hidden/recinfo");
- for(var i = grd_reclist.colRef("itemnm")+1 ; i <= grd_reclist.cols ; i++){
- grd_reclist.deleteColumn(i);
- }
- grd_reclist.caption = sInitCaption;
- grd_reclist.rebuild();
- }
-
- //조회 데이터 그리드에 세팅
- function fSettingRecList(){
- fInitGrid();
- var sSettingFlag = "";
- var sTotalSum = new Array();
- var sIOTotalSum = new Array();
- var sItemTotalSum = new Array();
- var xTempClincObsRecList = "/root/temp/recinfo/reclist";
- var xHoursClincObsRecList = "/root/main/recinfo/reclist";
- var xClincObsRecListPath = "/root/hidden/recinfo/reclist";
- var sCurDT = getCurrentDate() + getCurrentTime();
- var sRecDT = ""; // 기록일시
- var sRecFromDT = ""; // 기록시작일시
- var sRecToDT = ""; // 기록종료일시
- var sAttrCD = ""; // 속성코드
- var sUserID = getUserId();
- var sRecRslt = "";
- var sAnptTmSpec = "";
- var sSupCD = "";
- var sRecFlag = ""; // 기록구분
- var sIntakeTmSum = new Array();
- var sOutputTmSum = new Array();
- var sIntakeSumLine = ""; // 추가
- var sOutputSumLine = ""; // 추가
- var sIntakeSumRow = 0;
- var sOutputSumRow = 0;
- var sTotalSumRow = 0;
- var sIntakeSum = 0;
- var sOutputSum = 0;
- var sAttrCD = "";
- var sAttrValue = "";
- var sChkSubTotal = "N";
- var sSubTotalNm = "";
- var sStartOutput = "N";
- var sRecAddRow = "";
- var sReChartFlag = "";
- var sFixRow = 0;
- var sItemColRef = "";
- var sRecType="";
-
- //배열 초기화
- sHeaderInfo = "";
- sHeaderArray = "";
- sDateArray = "";
- sDataArray = "";
- sExecynArray = "";
- sRecDateArray = "";
-
- if(getNodesetCount(xTempClincObsRecList) < 1){
- return;
- }
-
- if(model.getValue(xTempClincObsRecList+"[1]/depth") == "0"){
- //기록시간 세팅
- sRecDateArray = model.getValue(xTempClincObsRecList+"[1]/rectmlist").split("^");
- for(var i = 0 ; i < sRecDateArray.length ; i++ ){
- grd_reclist.addColumn("ref:recrslt"+(i+1), false);
- }
-
- //항목별 합계 로직
- grd_reclist.addColumn("ref:iototal", false);
-
- grd_reclist.rebuild();
-
- for(var i = 0 ; i < sRecDateArray.length ; i++ ){
- grd_reclist.colWidth(grd_reclist.colRef("recrslt"+(i+1))) = "50";
- }
-
- grd_reclist.colWidth(grd_reclist.colRef("itemtotal")) = "80";
-
- //데이터 그리드 헤더 정보 세팅
- sHeaderInfo = sInitCaption + "^" + model.getValue(xTempClincObsRecList+"[1]/rectmlist")+"^I/O 합계";
- grd_reclist.caption = sHeaderInfo;
- }else{
- return;
- }
- for(var i = 2 ; i <= getNodesetCount(xTempClincObsRecList); i++){
- mNode = i -1;
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/itemnmview", model.getValue(xTempClincObsRecList+"["+i+"]/itemnm"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/depth", model.getValue(xTempClincObsRecList+"["+i+"]/depth"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/itemcd", model.getValue(xTempClincObsRecList+"["+i+"]/itemcd"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/itemseqno", model.getValue(xTempClincObsRecList+"["+i+"]/itemseqno"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/attrcd", model.getValue(xTempClincObsRecList+"["+i+"]/attrcd"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/reccharflag", model.getValue(xTempClincObsRecList+"["+i+"]/reccharflag"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/recflag", model.getValue(xTempClincObsRecList+"["+i+"]/recflag"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/carerecseqno", model.getValue(xTempClincObsRecList+"["+i+"]/carerecseqno"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/supcd", model.getValue(xTempClincObsRecList+"["+i+"]/supcd"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/recfromdt", model.getValue(xTempClincObsRecList+"["+i+"]/recfromdt"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/rectodt", model.getValue(xTempClincObsRecList+"["+i+"]/rectodt"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/subtotalyn", model.getValue(xTempClincObsRecList+"["+i+"]/subtotalyn"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/setnm", model.getValue(xTempClincObsRecList+"["+i+"]/setnm"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/lnkbizcd", model.getValue(xTempClincObsRecList+"["+i+"]/lnkbizcd"));
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/itemnm", model.getValue(xTempClincObsRecList+"["+i+"]/itemnm"));
-
- for(var j = 0 ; j < sRecDateArray.length ; j++){
- model.makeNode(xClincObsRecListPath+"["+mNode+"]/recrslt"+(j+1));
- model.makeNode(xClincObsRecListPath+"["+mNode+"]/rectype"+(j+1));
- var sSubRecTMList = model.getValue(xTempClincObsRecList+"["+i+"]/rectmlist").split("^");
- var sSubRecRsltList = (model.getValue(xTempClincObsRecList+"["+i+"]/recrsltlist").split("^"));
- for(var k = 0 ; k < sSubRecTMList.length ; k++){
- if(sRecDateArray[j] == sSubRecTMList[k]){
- model.setValue(xClincObsRecListPath+"["+mNode+"]/recrslt"+(j+1) , sSubRecRsltList[k].substring(1));
- model.setValue(xClincObsRecListPath+"["+mNode+"]/rectype"+(j+1) , sSubRecRsltList[k].substring(0,1));
- }
- }
- }
-
- model.makeValue(xClincObsRecListPath+"["+mNode+"]/iototal", "");
- }
- //임상기록 그리드 세팅 부분
- var sRecCnt = getNodesetCnt(model, xClincObsRecListPath);
-
- for(var iRow=1; iRow <= sRecCnt; iRow++){
- var addRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
- sSetnm = model.getValue(xClincObsRecListPath+"["+iRow+"]/setnm");
- sSubTotal = model.getValue(xClincObsRecListPath+"["+iRow+"]/subtotalyn");
- sRecFlag = model.getValue(xClincObsRecListPath+"["+iRow+"]/recflag");
-
- //현재 행 다음의 기록구분을 조회
- if(iRow == sRecCnt){
- sNextRecFlag = "Last";
- }else{
- sNextRecFlag = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/recflag");
- }
-
- if(sChkSubTotal == "N" && sSubTotal == "Y"){
- sChkSubTotal = sSubTotal;
- sSubTotalNm = sSetnm;
- }
-
- if(sChkSubTotal == "Y"){
- if((sRecFlag == "A" || sRecFlag == "B") && sRecFlag != sNextRecFlag){
- model.makeNode(xHoursClincObsRecList+"["+addRow+"]");
- model.copyNode(xHoursClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
-
- iHoursRecRow = addRow;
-
- var addIntakeRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
- model.makeNode(xHoursClincObsRecList+"["+addIntakeRow+"]");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/itemnmview", sSubTotalNm);
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/depth", "2");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/itemcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/itemseqno", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/attrcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/reccharflag", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/recflag", "T");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/carerecseqno", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/supcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/recfromdt", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/rectodt", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/subtotalyn", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/setnm", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/lnkbizcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/itemnm", sSubTotalNm);
-
- for(var j = 0 ; j < sRecDateArray.length ; j++){
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/recrslt"+(j+1), "");
- }
-
- model.makeValue(xHoursClincObsRecList+"["+addIntakeRow+"]/iototal", 0);
-
- sIntakeSumLine = eval(addIntakeRow)+1;
-
- }else if(sRecFlag == "C" && sStartOutput == "N"){
- sStartOutput = "Y";
- model.makeNode(xHoursClincObsRecList+"["+addRow+"]");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/itemnmview", sSubTotalNm);
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/depth", "2");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/itemcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/itemseqno", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/attrcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/reccharflag", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/recflag", "T");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/carerecseqno", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/supcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/recfromdt", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/rectodt", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/subtotalyn", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/setnm", "out");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/lnkbizcd", "");
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/itemnm", sSubTotalNm);
-
- for(var j = 0 ; j < sRecDateArray.length ; j++){
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/recrslt"+(j+1), "");
- }
- model.makeValue(xHoursClincObsRecList+"["+addRow+"]/iototal", 0);
-
- sOutputSumLine = eval(addRow)+1;
- var addOutputRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
- model.makeNode(xHoursClincObsRecList+"["+addOutputRow+"]");
- model.copyNode(xHoursClincObsRecList+"["+addOutputRow+"]", xClincObsRecListPath+"["+iRow+"]");
- iHoursRecRow = addOutputRow;
- }else{
- model.makeNode(xHoursClincObsRecList+"["+addRow+"]");
- model.copyNode(xHoursClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
- }
- }else{
- model.makeNode(xHoursClincObsRecList+"["+addRow+"]");
- model.copyNode(xHoursClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
- iHoursRecRow = addRow;
- }
-
- // Intake/OutTake 변경시 초기화
- if(sRecFlag != sNextRecFlag){
- sChkSubTotal = "N";
- sStartOutput = "N";
- sIntakeSumLine = "";
- sOutputSumLine = "";
- }
- }
- grd_reclist.refresh();
-
- for(var iRow = grd_reclist.fixedRows ; iRow <= grd_reclist.rows ; iRow++){
- sItemTotalSum[iRow] = "";
- sCareRecSeqno = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("carerecseqno"));
- sRecFromDT = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("recfromdt"));
- sRecToDT = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("rectodt"));
- sDepth = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("depth"));
- sAttrCD = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("attrcd"));
- sReChartFlag = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("reccharflag"));
- sLnkBizCd = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("lnkbizcd"));
- sSubTotalYn = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("subtotalyn"));
- sRecFlag = grd_reclist.valueMatrix(iRow, grd_reclist.colRef("recflag"));
- sSupCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/supcd" );
- //현재 행 다음의 기록구분을 조회
- if(iRow == grd_reclist.rows){
- sNextRecFlag = "Last";
- }else{
- sNextRecFlag = grd_reclist.valueMatrix((iRow+1), grd_reclist.colRef("recflag"));
- }
-
- // 분류의 경우
- if(eval(sDepth) == 1){
- grd_reclist.mergeByFree(iRow, grd_reclist.fixedCols, iRow, grd_reclist.cols-1);
- grd_reclist.rowStyle(iRow,"data","background-color") = "#d0e7ff";
- grd_reclist.rowStyle(iRow,"data","font-weight") = "bold";
- }else{ //분류가 아닐 경우
-
- // SubTotal 항목 표시
- // if(sSubTotalYn == "Y"){
- // grd_reclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#ffff99";
- // }
- // SubTotal 항목 표시
- if(sSubTotalYn == "Y"){
- grd_reclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#ffff99";
- } else if(sSubTotalYn == "H"){//20090209 khj hierarchies 자동세팅관련 임상관찰기록에서 작성대상이 아닌 상위아이템행은 읽기전용으로 세팅
- grd_reclist.mergeByFree(iRow, grd_reclist.fixedCols, iRow, grd_reclist.cols-1);
- grd_reclist.isReadOnly(iRow,grd_reclist.fixedCols, iRow, grd_reclist.cols-1) = true;
-
- }
- // Total Intake, Total Output 색 및 글꼴 변경
- if(sRecFlag == "T"){
- grd_reclist.rowStyle(iRow,"data","background-color") = "#dbb7ff";
- grd_reclist.cellStyle("font-weight", iRow, sItemColRef, iRow, sItemColRef) = "bold";
- sTotalSumRow = iRow;
- }else{
- //Total Intake, Total Output 제외 대상 색 및 글꼴 변경
- //연계업무항목 설정 추가
- if(sLnkBizCd != "-" && sLnkBizCd != "99" ){
- grd_reclist.cellStyle("background-color",iRow, sItemColRef+1, iRow, grd_reclist.cols-1)= "#eaeaea"; //추가
- grd_reclist.cellStyle("color",iRow, sItemColRef+1, iRow, grd_reclist.cols-1) = "#FF0000";
- }
- }
- for(var iCol=0 ; iCol < sRecDateArray.length; iCol++){
- sRecRsltCol = grd_reclist.colRef("recrslt"+ (iCol+1));
- sRecRslt = grd_reclist.valueMatrix(iRow, sRecRsltCol);
-
- sRecType = model.getValue(xHoursClincObsRecList+"["+iRow+"]/rectype"+(iCol+1) );//recrsltattrcd 첫번째에 기록출처구분을 조회해옴.
- //------khj CDIS입력 컬러 다르게 표시 -----------
- if( sRecType == "M" && sSupCD == "IT000001" ){
- grd_reclist.cellStyle("color",iRow,sRecRsltCol) = "#FF0000";
- }
-
- // Intake/output 합계 계산
- if(sSubTotalYn == "Y"){
- if( isNull(sTotalSum[sRecRsltCol]) || fIsNumber(sTotalSum[sRecRsltCol]) == false){
- sTotalSum[sRecRsltCol] = null;
- sIOTotalSum[sRecRsltCol] = 0;
- }
-
- sChkSubTotal = "Y";
-
- if(sRecRslt != ""){
- if(sRecFlag == "A"){
- if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
- sTotalSum[sRecRsltCol] += eval(sRecRslt);
-
- if(sItemTotalSum[iRow] == ""){ sItemTotalSum[iRow] = 0; }
- sItemTotalSum[iRow] += eval(sRecRslt);
-
- }else{
- sAttrValue = sRecRslt.split(":");
- if(sAttrValue[0].getTrim().isNumber()){
- sTotalSum[sRecRsltCol] += eval(sAttrValue[0]);
- }
-
-
- }
- }else if (sRecFlag == "B" || sRecFlag == "C"){
- if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
- sTotalSum[sRecRsltCol] += eval(sRecRslt);
- sIOTotalSum[sRecRsltCol] += eval(sRecRslt);
-
- if(sItemTotalSum[iRow] == ""){ sItemTotalSum[iRow] = 0; }
-
- sItemTotalSum[iRow] += eval(sRecRslt);
-
- }else{
- if(fIsNumber(sRecRslt) == true){
- sTotalSum[sRecRsltCol] += eval(sRecRslt);
- sIOTotalSum[sRecRsltCol] += eval(sRecRslt);
- }else{
- sAttrValue = sRecRslt.split(":");
- if(sAttrValue[0].getTrim().isNumber()){
- sTotalSum[sRecRsltCol] += eval(sAttrValue[0]);
- sIOTotalSum[sRecRsltCol] += eval(sAttrValue[0]);
- }
- }
- }
- }
- }
- }
-
- // 합계 계산목록 Intake/Output에 세팅
- if( (sRecFlag == "T" || sRecFlag != sNextRecFlag ) && sChkSubTotal == "Y" && sTotalSumRow != "" ){
- // if(sTotalSumRow != "" && (sTotalSum[sRecRsltCol] != null || sTotalSum[sRecRsltCol] != "")){
- if(sTotalSumRow != "" && sTotalSum[sRecRsltCol] != null ){
- grd_reclist.valueMatrix(sTotalSumRow, sRecRsltCol) = sTotalSum[sRecRsltCol];
-
- var sSumValue = "";
- if(sIOTotalSum[sRecRsltCol] != 0 && sIOTotalSum[sRecRsltCol] != "" && fIsNumber(sIOTotalSum[sRecRsltCol]) == true) sSumValue = sIOTotalSum[sRecRsltCol];
- //합계부분 처리
- if(grd_reclist.valueMatrix(sTotalSumRow, grd_reclist.colRef("iototal")) == "" || grd_reclist.valueMatrix(sTotalSumRow, grd_reclist.colRef("iototal")) == "0"){
- grd_reclist.valueMatrix(sTotalSumRow, grd_reclist.colRef("iototal")) = sSumValue;
- }else{
- grd_reclist.valueMatrix(sTotalSumRow, grd_reclist.colRef("iototal")) = eval(sSumValue) + eval(grd_reclist.valueMatrix(sTotalSumRow, grd_reclist.colRef("iototal")));
- }
- }
-
- if(iCol == sRecDateArray.length-1){
- sChkSubTotal = "C";
- }
- }
- }
-
- if(sChkSubTotal == "C"){
- for(var i = 0 ; i <sRecDateArray.length ; i ++){
- sInitRecRsltCol = grd_reclist.colRef("recrslt"+ (i+1));
- sTotalSum[sInitRecRsltCol] = null;
- }
- sTotalSumRow = "";
- sChkSubTotal = "N";
- }
- }
-
- if(sRecFlag != "T" ){
- var sSumValue = "";
- if(sItemTotalSum[iRow] != 0 && sItemTotalSum[iRow] != "") sSumValue = sItemTotalSum[iRow];
- grd_reclist.valueMatrix(iRow, grd_reclist.colRef("iototal")) = sSumValue;
- }
- }
-
- setTree(grd_reclist, grd_reclist.colRef("depth"), 0, false); //변경
- model.refresh();
- }
-
- //숫자형인지 체크
- function fIsNumber(str) {
- str += ''; // 문자열로 변환
- str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
- if (str == '' || isNaN(str)) return false;
- return true;
- }
-
- //일자 변경
- function fDateCalc(pFlag, pTerm){
- var sRecDT = model.getValue("/root/main/cond/srchdd");
- sRecDT = sRecDT.toDate("YYYYMMDDhhmmss");
-
- var sTime = 60 * pTerm;
-
- if(pFlag == "-"){
- sRecDT.setMinutes(sRecDT.getMinutes() - sTime);
- }else{
- sRecDT.getAddDate(sTime, "m");
- }
-
- model.setValue("/root/main/cond/srchdd" ,getDateTime(sRecDT,'기본').substr(0,8));
- ipt_recdd.refresh();
- }
-
- //조회 일자 변경
- function fChkSrchDate(){
- var sDschDD = model.getValue("/root/main/patinfo/patrechistinfo[ rownum = '"+cmb_rechistlist.value +"']/dschdd") ;
- var sInDD = model.getValue("/root/main/patinfo/patrechistinfo[ rownum = '"+cmb_rechistlist.value +"']/indd") ;
-
- if( ipt_recdd.value <= sDschDD && ipt_recdd.value >= sInDD){
- model.setFocus("btn_srch");
- btn_srch.dispatch("DOMActivate");
- return;
- }
-
- if(sDschDD < ipt_recdd.value ){
- fFindRecHist("E", ipt_recdd.value);
- return;
- }
-
- if(sInDD > ipt_recdd.value){
- fFindRecHist("S", ipt_recdd.value);
- return;
- }
- }
-
- //조회일자에 따른 수진 이력 조회
- function fFindRecHist(pFlag, pRecDD){
- var sCmbValue = ""; //이력에 대한 조회 정보 값
- var sCmbMaxValue = ""; //조회일자에 대한 최근 이력 정보 값
-
- if(pFlag == "S"){
- for(var i = 1 ; i <= getNodesetCount("/root/main/patinfo/patrechistinfo") ; i ++){
- var sDschDD = model.getValue("/root/main/patinfo/patrechistinfo["+i+"]/dschdd") ;
- var sInDD = model.getValue("/root/main/patinfo/patrechistinfo["+i+"]/indd") ;
- var sRowNum = model.getValue("/root/main/patinfo/patrechistinfo["+i+"]/rownum") ;
-
- if(sDschDD >= pRecDD && sInDD <= pRecDD){
- if(sCmbValue == ""){
- sCmbValue = sRowNum;
- }
- }
-
- if(sDschDD <= pRecDD){
- if(sCmbMaxValue == ""){
- sCmbMaxValue = sRowNum;
- }
- }
- }
- if(sCmbValue == ""){
- if(sCmbMaxValue == ""){
- messageBox("조회일자에 대한 수진 내역이 존재하지 않습니다. 최신 기록 내역 조회를 하겠습니다.", "I");
- cmb_rechistlist.select(0);
-
- if(model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd") == "99991231"){
- ipt_recdd.value = getCurrentDate();
- }else{
- ipt_recdd.value = model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd");
- }
-
- }else{
- cmb_rechistlist.value = sCmbMaxValue;
- ipt_recdd.value = model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd");
- }
- }else{
- cmb_rechistlist.value = sCmbValue;
- }
-
- }else{
- for(var i = 1; i <= getNodesetCount("/root/main/patinfo/patrechistinfo"); i ++ ){
- var sDschDD = model.getValue("/root/main/patinfo/patrechistinfo["+i+"]/dschdd") ;
- var sInDD = model.getValue("/root/main/patinfo/patrechistinfo["+i+"]/indd") ;
- var sRowNum = model.getValue("/root/main/patinfo/patrechistinfo["+i+"]/rownum") ;
-
- if(sDschDD >= pRecDD && sInDD <= pRecDD){
- if(sCmbValue == ""){
- sCmbValue = sRowNum;
- }
- }
-
- if(sInDD >= pRecDD){
- sCmbMaxValue = sRowNum;
- }
- }
- if(sCmbValue == ""){
- if(sCmbMaxValue == ""){
- messageBox("조회일자에 대한 수진 내역이 존재하지 않습니다. 최신 기록 내역 조회를 하겠습니다.", "I");
- cmb_rechistlist.select(0);
-
- if(model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/indd") == "99991231"){
- ipt_recdd.value = getCurrentDate();
- }else{
- ipt_recdd.value = model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/indd");
- }
-
- }else{
- cmb_rechistlist.value = sCmbMaxValue;
- ipt_recdd.value = model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/indd");
- }
- }else{
- cmb_rechistlist.value = sCmbValue;
- }
- }
- btn_srch.dispatch("DOMActivate");
- }
-
- //환자정보 조회
- function fSrchPatInfo(){
- model.removeNodeset("/root/main/patinfo/patbaseinfo");
- model.removeNodeset("/root/main/patinfo/patrechistinfo");
- model.removeNodeset("/root/main/recinfo");
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/pid", model.getValue("/root/main/cond/pid"));
-
- if(submit("TRMNR06311", false) == true){
- fInitGrid();
- if(model.getValue("/root/main/patinfo/rsltflag/rtnflag") != "1"){
- ipt_pid.value = "";
- caption5.value = "";
- caption7.value = "";
- ipt_recdd.value = "";
- messageBox("환자 정보를 찾을 수 없습니다.","E");
- }else{
- model.setValue("/root/main/cond/patnm", model.getValue("/root/main/patinfo/patbaseinfo/patnm"));
- model.setValue("/root/main/cond/grdrage", model.getValue("/root/main/patinfo/patbaseinfo/grdrage"));
- var sSrchDD = model.getValue("/root/main/cond/srchdd");
-
- if(sSrchDD == ""){
- cmb_rechistlist.select(0);
- if(model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd") == "99991231"){
- ipt_recdd.value = getCurrentDate();
- }else{
- ipt_recdd.value = model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd");
- }
-
- if(ipt_recdd.value == ""){
- messageBox("환자에 대한 임상기록 내역이 존재하지 않습니다.", "I");
- }else{
- //btn_srch.dispatch("DOMActivate");
- //return;
- }
- }else{
- fFindRecHist("S", sSrchDD);
- }
- }
- }
- model.refresh();
- }
- ]]>
- </script>
- </xhtml:head>
- <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
- <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
- <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:145px; height:14px; background-image:../../../com/commonweb/images/tit_bullet1.gif; ">환자별 임상기록조회</caption>
- </group>
- <group id="group3" visibility="hidden" style="left:0px; top:0px; width:0px; height:0px; ">
- <object id="obj_viewchart" clsid="{fab9b41c-87d6-474d-ab7e-f07d78f2422e}" style="left:0px; top:0px; width:1155px; height:253px; "/>
- <img id="img_tmp" style="left:0px; top:0px; width:0px; height:0px; background-stretch:stretch; "/>
- </group>
- <group id="grp_biz" scroll="l" style="left:0px; top:13px; width:1195px; height:744px; ">
- <group id="grp_sea" style="left:0px; top:10px; width:1194px; height:30px; vertical-align:top; ">
- <line id="line1" class="line_1" style="x1:0px; y1:0px; x2:960px; y2:0px; "/>
- <input id="ipt_pid" ref="/root/main/cond/pid" style="left:67px; top:5px; width:100px; height:19px; ">
- <script type="javascript" ev:event="onkeyup">
- <![CDATA[
- if(event.keyCode == "13") {
- setInputNodeCurText();
- fSrchPatInfo();
- }
-
- ]]>
- </script>
- </input>
- <caption id="caption14" class="cell_1" style="left:0px; top:4px; width:65px; height:23px; ">등록번호</caption>
- <line id="line7" class="line_3" style="x1:0px; y1:26px; x2:960px; y2:26px; "/>
- <caption id="caption1" class="cell_1" style="left:434px; top:4px; width:63px; height:22px; ">기록이력</caption>
- <select1 id="cmb_rechistlist" ref="/root/main/patinfo/patrechistinfo" appearance="minimal" style="left:499px; top:5px; width:210px; height:19px; ">
- <choices>
- <itemset nodeset="/root/main/patinfo/patrechistinfo">
- <label ref="histlist"/>
- <value ref="rownum"/>
- </itemset>
- </choices>
- <script type="javascript" ev:event="xforms-value-changed">
- <![CDATA[
- if(model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd") == "99991231"){
- ipt_recdd.value = getCurrentDate();
- }else{
- ipt_recdd.value = model.getValue("/root/main/patinfo/patrechistinfo[ rownum ='" + cmb_rechistlist.value + "']/dschdd");
- }
- //model.setFocus("btn_srch");
- btn_srch.dispatch("DOMActivate");
- ]]>
- </script>
- </select1>
- <caption id="caption2" class="cell_1" style="left:711px; top:4px; width:63px; height:22px; ">조회일자</caption>
- <input id="ipt_recdd" ref="/root/main/cond/srchdd" class="input_s_essential" inputtype="date" appearance="input" style="left:820px; top:5px; width:95px; height:19px; ">
- <script type="javascript" ev:event="xforms-value-changed">
- <![CDATA[
- fChkSrchDate();
- //model.setFocus("btn_srch");
- //btn_srch.dispatch("DOMActivate");
- ]]>
- </script>
- </input>
- <button id="btn_24hoursbefore" class="btn2_before" style="left:776px; top:5px; width:42px; height:19px; ">
- <caption>이전</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- if(ipt_recdd.value != ""){
- fDateCalc("-" ,24);
- fChkSrchDate();
- //model.setFocus("btn_srch");
- //btn_srch.dispatch("DOMActivate");
- }
- ]]>
- </script>
- </button>
- <button id="btn_24hoursafter" class="btn2_letter2" style="left:917px; top:5px; width:42px; height:19px; ">
- <caption>다음</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- if(ipt_recdd.value != ""){
- fDateCalc("+" ,24);
- fChkSrchDate();
- //model.setFocus("btn_srch");
- //btn_srch.dispatch("DOMActivate");
- }
- ]]>
- </script>
- </button>
- <caption id="caption4" class="cell_1" style="left:169px; top:4px; width:48px; height:22px; ">환자명</caption>
- <caption id="caption5" ref="/root/main/cond/patnm" style="left:218px; top:5px; width:95px; height:20px; ">Name</caption>
- <caption id="caption3" class="cell_1" style="left:315px; top:4px; width:38px; height:22px; ">S/A</caption>
- <caption id="caption7" ref="/root/main/cond/grdrage" style="left:355px; top:5px; width:76px; height:20px; ">S/A</caption>
- <button id="btn_srch" class="btn1_letter2" style="left:1131px; top:4px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
- <caption>조회</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- if(ipt_pid.value == ""){
- messageBox("등록번호를 입력하십시요","E");
- model.setFocus("ipt_pid");
- return;
- }
-
- if(cmb_rechistlist.value == ""){
- messageBox("조회할 기록이력을 선택하십시요","E");
- model.setFocus("cmb_rechistlist");
- return;
- }
- if(ipt_recdd.value == ""){
- messageBox("조회할 일자를 입력하십시요","E");
- model.setFocus("ipt_recdd");
- return;
- }
- model.removeNodeset("/root/temp/recinfo/reclist");
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/pid", model.getValue("/root/main/patinfo/patrechistinfo/pid"));
- model.makeValue("/root/send/orddd", model.getValue("/root/main/patinfo/patrechistinfo/indd"));
- model.makeValue("/root/send/cretno", model.getValue("/root/main/patinfo/patrechistinfo/cretno"));
- model.makeValue("/root/send/srchdd", ipt_recdd.value);
-
- submit("TRMNR06312");
- fSettingRecList();
- ]]>
- </script>
- </button>
- <button id="btn_excel" class="btn1_letter5" style="left:1035px; top:4px; width:92px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
- <caption>Excel저장</caption>
- <script type="javascript" ev:event="DOMActivate">
- <![CDATA[
- if(grd_reclist.rows < 1){
- messageBox("Excel 저장할 리스트가 없습니다.", "I");
- return;
- }
-
- var fileName = window.fileDialog("save", ",", false, "환자별 임상기록 조회("+ caption5.value + "_"+ ipt_recdd.value+")" , "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
-
- if (fileName != "") {
- grd_reclist.saveExcel(fileName, "SheetName", true, true, "", "", false);
- }
- ]]>
- </script>
- </button>
- </group>
- <datagrid id="grd_reclist" nodeset="/root/main/recinfo/reclist" allowselection="true" backcoloralternate="#ffffff" caption="기록\시간^depth^itemcd^itemseqno^reccharflag^recflag^carerecseqno^recfromdt^rectodt^subtotalyn^setnm^lnkbizcd^itemnm" colsep="^" colwidth="140,0,0,0,0,0,0,0,0,0,0,0,0" ellipsis="true" focuscolor="#feedcc" frozencols="1" rowsep="|" selectionmode="free" tooltip="true" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:69px; width:1190px; height:673px; ">
- <col ref="itemnmview"/>
- <col ref="depth" visibility="hidden"/>
- <col ref="itemcd" visibility="hidden"/>
- <col ref="itemseqno" visibility="hidden"/>
- <col ref="reccharflag" visibility="hidden"/>
- <col ref="recflag" visibility="hidden"/>
- <col ref="carerecseqno" visibility="hidden"/>
- <col ref="recfromdt" visibility="hidden"/>
- <col ref="rectodt" visibility="hidden"/>
- <col ref="subtotalyn" visibility="hidden"/>
- <col ref="setnm" visibility="hidden"/>
- <col ref="lnkbizcd" visibility="hidden"/>
- <col ref="itemnm" visibility="hidden"/>
- </datagrid>
- <line id="line16" class="line_1" style="x1:0px; y1:65px; x2:1190px; y2:65px; "/>
- <caption id="caption26" class="tit_2" style="left:0px; top:49px; width:95px; height:14px; vertical-align:middle; background-image:../../../com/commonweb/images/tit_bullet2.gif; ">임상기록정보</caption>
- </group>
- </xhtml:body>
- </xhtml:html>
|