123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- /**
- * 파 일 명 : SPADT61200.js
- * 설 명 : (팝업)원내처방전출력 Javascriot
- * 설 계 자 : 공두경
- * 작 성 자 : 공두경
- * 수정이력 : 2007.10.2 / 최초작성 / 공두경
- */
- /**
- * 초기화
- */
- function fInit() {
- var sParam = model.getAttribute("params");
- model.makeValue("/root/send/prcpinfo/drugdd", astfMatrixData(sParam, 1, 0));
- model.makeValue("/root/send/prcpinfo/drugno", astfMatrixData(sParam, 1, 1));
- model.makeValue("/root/send/prcpinfo/ioflag", "O");
- model.makeValue("/root/send/prcpinfo/pid", astfMatrixData(sParam, 1, 2));
- model.makeValue("/root/send/prcpinfo/orddd", astfMatrixData(sParam, 1, 3));
- model.makeValue("/root/send/prcpinfo/cretno", astfMatrixData(sParam, 1, 4));
- model.makeValue("/root/send/prcpinfo/orddeptcd", astfMatrixData(sParam, 1, 5));
- model.makeValue("/root/send/prcpinfo/prcpgenrflag", astfMatrixData(sParam, 1, 6));
- model.makeValue("/root/send/prcpinfo/autoinprntyn", astfMatrixData(sParam, 1, 7));
- model.makeValue("/root/send/prcpinfo/reprintyn", astfMatrixData(sParam, 1, 8));
- model.makeValue("/root/send/prcpinfo/stocdeptcd", astfMatrixData(sParam, 1, 9)); // 2009.09.08 pymi
- model.makeValue("/root/send/prcpinfo/prntflag", "O");
- model.refresh();
-
- submit("TRADT61201");
-
- //20101102 이선경 수정 : 일일기준과 1회 기준의 용량과 수량을 보여주는 것을 결정하여 결과를 리턴
- var colHidnValue = grdBaseColHidn("D");
- //1회 기준
- if( colHidnValue == "C") {
- model.makeValue("/root/main/prcpdata/patinfo/prcpqty2chk", "Y");
- }
- if(model.getValue("/root/main/prcpdata/patinfo/pid") != ""){
- // 20100202_laboru_RFADT61200 리포트에서 memo 의 가로 크기를 늘이려면 아래 수치 변경 필요.
- var memo = model.getValue("/root/main/prcpdata/patinfo/memo");
- var memoCnt = 0;
- var lineCnt = 0;
- var pageCnt = 0;
- var strMemo = "";
- var tempStr = "";
- var tempStr2 = "";
- var nextMemo = "";
- var strFlag = "N";
-
- if ( memo.indexOf("\n", lineCnt ) >=0){
- while ( (memoCnt = memo.indexOf("\n", lineCnt ))>=0){
- if( pageCnt < 3) {
- if (lineCnt == 0) {
- strMemo = strMemo + memo.substring( lineCnt, memoCnt );
- if(getByteLength(strMemo) > 78 && getByteLength(strMemo) <= 157) {
- pageCnt++;
- } else if(getByteLength(strMemo) > 157 && getByteLength(strMemo) <= 239) {
- pageCnt = pageCnt + 2;
- } else if(getByteLength(strMemo) > 239 ) {
- pageCnt = 100;
- strFlag = "1";
- }
- } else {
- tempStr = memo.substring( lineCnt, memoCnt ) ;
-
- if(pageCnt > 1) {
- if(getByteLength(tempStr) > 74 ) {
- if(memo.indexOf("\n", memoCnt + 1 ) < 0 ) {
- pageCnt = 100;
- strFlag = "2";
- } else {
- strMemo = strMemo + "\n" + fnGetByte(tempStr,0, 74);
- nextMemo = fnGetByte(tempStr, 74, getByteLength(tempStr)) + "\n";
- }
-
- } else if(getByteLength(tempStr) <= 74) {
- strMemo = strMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
- }
- } else {
- if(getByteLength(tempStr) <= 78) {
- strMemo = strMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
- } else if(getByteLength(tempStr) > 78 && getByteLength(tempStr) <= 155) {
- strMemo = strMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
- pageCnt++;
- } else if(getByteLength(tempStr) > 155) {
- strMemo = strMemo + "\n" + fnGetByte(tempStr,0, 155);
- nextMemo = fnGetByte(tempStr, 155, getByteLength(tempStr)) ;
- pageCnt = pageCnt +2;
- }
- }
- }
- } else {
- if (pageCnt == 3) {
- nextMemo = nextMemo + memo.substring( lineCnt, memoCnt );
- } else if(pageCnt > 3 && pageCnt < 10) {
- nextMemo = nextMemo + "\n" + memo.substring( lineCnt, memoCnt ) ;
- }
- }
- lineCnt = memoCnt + 1;
- pageCnt++;
- }
-
- if(strFlag == "1") {
- strMemo = fnGetByte(memo,0, 239);
- nextMemo = fnGetByte(memo, 239, getByteLength(memo));
- } else if(strFlag == "2") {
- var line2temp = memo.substring( lineCnt, memo.length );
- strMemo = strMemo + "\n" + fnGetByte(tempStr,0, 78);
- nextMemo = fnGetByte(tempStr, 78, getByteLength(tempStr));
- nextMemo = nextMemo + "\n" + line2temp;
- } else if(strFlag == "3") {
- strMemo = strMemo + "\n" + tempStr.substring(0, 40);
- nextMemo = tempStr.substring(40, 500);
- nextMemo = nextMemo + "\n" + memo.substring(lineCnt,500);
-
- } else if(strFlag == "N") {
- if ( (lineCnt < memo.length) ) {
- nextMemo = nextMemo + "\n" + memo.substring( lineCnt, memo.length );
- }
- }
-
- } else {
- strMemo = memo;
- }
-
- model.setValue("/root/main/prcpdata/patinfo/memo", strMemo);
- model.makeValue("/root/main/prcpdata/patinfo/memo1", nextMemo);
- //처방전에 DUR이 존재하면 RFADT61203 존재하지 않으면 RFADT61200 출력
- var resn = model.getValue("/root/main/prcpdata/resn/resnnm");
- //alert(resn);
-
- // 20101106_wify_경북대병원_주민번호 뒷자리 별표 처리
- var rrgstno = model.getValue("/root/main/prcpdata/patinfo/rrgstno").split("-");
- model.setValue("/root/main/prcpdata/patinfo/rrgstno", rrgstno[0] + "-" + rrgstno[1].substring(0, 1) + "******");
-
- // 20101117_wify_경북대병원_보고서폼 변경 처리
- // RFADT61200 ==> RFADT61204
- // RFADT61201 ==> RFADT61207
- // RFADT61203 ==> RFADT61206
- if( resn == ""){
- if ( nextMemo != "") {
- if(pageCnt >= 3) {
- makeReportPreview(0,0,10, 10, "grp_report1");
- exeReportPreview("RFADT61204", "XMLSTR","","","true","","","","","","","grp_report1");
- makeReportPreview(0,0,10, 10, "grp_report2");
- exeReportPreview("RFADT61207", "XMLSTR","","","true","","","","","","","grp_report2");
- } else {
- strMemo = strMemo + nextMemo;
- model.setValue("/root/main/prcpdata/patinfo/memo", strMemo);
- makeReportPreview(0,0,10, 10, "grp_report1");
- exeReportPreview("RFADT61204", "XMLSTR","","","true","","","","","","","grp_report1");
- }
- } else {
- makeReportPreview(0,0,10, 10);
- exeReportPreview("RFADT61204", "XMLSTR", "", "", "true","","","","","true");
- }
- }else{
- if ( nextMemo != "") {
- if(pageCnt >= 3) {
- makeReportPreview(0,0,10, 10, "grp_report1");
- exeReportPreview("RFADT61206", "XMLSTR","","","true","","","","","","","grp_report1");
- makeReportPreview(0,0,10, 10, "grp_report2");
- exeReportPreview("RFADT61207", "XMLSTR","","","true","","","","","","","grp_report2");
- } else {
- strMemo = strMemo + nextMemo;
- model.setValue("/root/main/prcpdata/patinfo/memo", strMemo);
- makeReportPreview(0,0,10, 10, "grp_report1");
- exeReportPreview("RFADT61206", "XMLSTR","","","true","","","","","","","grp_report1");
- }
- } else {
- makeReportPreview(0,0,10, 10);
- exeReportPreview("RFADT61206", "XMLSTR", "", "", "true","","","","","true");
- }
- }
-
- } else {
- window.close();
- }
-
- model.refresh();
-
- window.close();
- }
- /*
- // 20100202_laboru_약사메모 byte
- */
- function getByteLength(str) {
- var byteLength = 0;
- for (inx = 0; inx < str.length; inx++) {
- var oneChar = escape(str.charAt(inx));
- if ( oneChar.length == 1 ) {
- byteLength ++;
- } else if (oneChar.indexOf("%u") != -1) {
- byteLength += 2;
- } else if (oneChar.indexOf("%") != -1) {
- byteLength += oneChar.length/3;
- }
- }
- return byteLength;
- }
- /*
- // 20100202_laboru_문자열 byte 단위로 잘라오기
- */
- function fnGetByte(strInput, slimit, ilimit){
- var i;
- var j;
- var strLen;
- var strByte = 0;
- var strRes = "";
- var com = Number(ilimit) - Number(slimit);
- strLen = strInput.length;
- var tmp = strInput.charAt(i);
- var index = 0;
-
- for(var p = 0; p < strLen ; p++) {
- var tmp = strInput.charAt(p);
-
- if(tmp >= ' ' && tmp <= '~' ){
- strByte++;
- }else{
- strByte += 2;
- }
-
- if(strByte > Number(slimit)){
- index = p;
- break;
- }
- }
-
- for(i=index, j=0, strByte=0; j< strLen; j++, i++) {
- var tmp = strInput.charAt(i);
- if(tmp >= ' ' && tmp <= '~' ){
- strByte++;
- }else{
- strByte += 2;
- }
-
- if(strByte > Number(com)){
- break;
- }
-
- strRes += tmp;
- }
- return strRes;
- }
|