123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++*
- * ver : 20090702
- * create : dhkim
- * desc : 암센터주사실 / BMT주사실 / DCC / DSC 에서 공동으로 사용할 스크립트들 모음
- * injspecialroomweb에서 사용
- *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*++++++++*/
- //글로벌변수
- var _pid, _indd, _cretno, _ordtype, _mediapclid, _roomcd, _sexage, _hngnm;
-
- // ------------------------------------------------------------------
- // 외래예약처방 선택 및 저장 화면 호출_20090701추가(dhkim)
- // ------------------------------------------------------------------
- function fGetRsrvPrcpChemo(pid, indd, cretno, ordtype, medispclid, roomcd, sexage, hngnm){
-
- ds_main_rp_init_M0005info_M0005.clearData();
- appf_getCodeList(new Array( "M0005" ), new Array("ds_main_rp_init_M0005info_M0005"));
-
- grd_prcplist.setCellProperty("Head", 0, "displaytype", "checkbox");
- grd_prcplist.setCellProperty("Head", 0, "edittype", "checkbox");
-
- if(utlf_isNull(pid)){
- return ;
- }
- if(utlf_isNull(roomcd)){
- roomcd = "병실";
- }
- if(utlf_isNull(sexage)){
- sexage = "S/A";
- }
- if(utlf_isNull(hngnm)){
- hngnm = "환자명";
- }
-
- //초기화
- ds_main_rp_rsvpatinfo.setColumn(0, "pid", pid);
- ds_main_rp_rsvpatinfo.setColumn(0, "indd", indd);
- ds_main_rp_rsvpatinfo.setColumn(0, "cretno", cretno);
- ds_main_rp_rsvpatinfo.setColumn(0, "ordtype", ordtype);
- ds_main_rp_rsvpatinfo.setColumn(0, "medispclid", medispclid);
- ds_main_rp_rsvpatinfo.setColumn(0, "roomcd", roomcd);
- ds_main_rp_rsvpatinfo.setColumn(0, "sexage", sexage);
- ds_main_rp_rsvpatinfo.setColumn(0, "hngnm", hngnm);
-
- //재조회시필요
- _pid = pid;
- _indd = indd;
- _cretno = cretno;
- _ordtype = ordtype;
- _medispclid = medispclid;
- _roomcd = roomcd;
- _sexage = sexage;
- _hngnm = hngnm;
-
- // 외래예약처방정보 조회
- ds_send.setColumn(0, "pid", pid);
- ds_send.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
- ds_send.setColumn(0, "orddd", utlf_getCurrentDate());
-
- //20090729 dhkim 추가
- ds_send.setColumn(0, "roomcd", roomcd);
- ds_send.setColumn(0, "sexage", sexage);
- ds_send.setColumn(0, "hngnm", hngnm);
-
- var oParam = {};
- oParam.id = "TRMNI02101";
- oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
- oParam.method = "reqGetRsrvPrcpList";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_main_rp_rsvprcpinfo_prcplist=prcplist";
- oParam.async = false;
- //oParam.callback = "cf_TRMNI02101";
- tranf_submit(oParam);
-
- ds_main_rp_rsvprcpinfo_prcplist.addColumn("prcpclscd_vw", "string");
- ds_main_rp_rsvprcpinfo_prcplist.addColumn("colEdittype", "string");
- ds_main_rp_rsvprcpinfo_prcplist.addColumn("colFont", "string");
-
- var flag, _flag;
- var carerpyn; var _carerpcnt = 0;
- var prcphistcd;
- var spcldrug;
- var sExprColor = "EXPR(";
-
- for(var i = 0; i < grd_prcplist.rowcount; i++){
- ds_main_rp_rsvprcpinfo_prcplist.setColumn(i, "prcpclscd_vw", ds_main_rp_rsvprcpinfo_prcplist.getColumn(i, "drprcpetc7"));
- //구분 merge
- //20090820 dhkim 처방종류 view용필드로 변경. prcpclscd를 사용하여 처방전송시 부서세팅에러발생했음
- flag = ds_main_rp_rsvprcpinfo_prcplist.getColumn(i, "prcpclscd_vw");
- //flag = model.getValue('/root/main_rp/rsvprcpinfo/prcplist[' + i + ']/prcpclscd');
- if(i > 0){
- if(flag == _flag){
- ds_main_rp_rsvprcpinfo_prcplist.getColumn(i, "prcpclscd_vw", '');
- }
- }
- _flag = flag;
-
-
- //실처방으로 풀린 경우 체크박스 비활성화 처리
- carerpyn = ds_main_rp_rsvprcpinfo_prcplist.getColumn(i, "carerpyn");
- if(carerpyn == 'Y'){
- //grd_prcplist.ColAttribute(i, 'status') = true;
- ds_main_rp_rsvprcpinfo_prcplist.setColumn(i, "colEdittype", "none");
- _carerpcnt = _carerpcnt + 1;
- }else{
- //grd_prcplist.ColAttribute(i, 'status') = false;
- ds_main_rp_rsvprcpinfo_prcplist.setColumn(i, "colEdittype", "checkbox");
- }
-
-
- //20090804 dhkim D/C 글자색 변경(검정 : E, 빨강 : D, 파랑 : L)
- prcphistcd = ds_main_rp_rsvprcpinfo_prcplist.getColumn(i, "prcphistcd");
- if(prcphistcd == 'E'){
- sExprColor += "currow == "+i+" ? '#040000' : ";//검정
- }else if(prcphistcd == 'D'){
- sExprColor += "currow == "+i+" ? '#FF0000' : ";//빨강
- }else if(prcphistcd == 'L'){
- sExprColor += "currow == "+i+" ? '#0000FF' : ";//파랑
- }else{
- sExprColor += "currow == "+i+" ? '#333333' : ";
- }
-
-
- //20090804 dhkim 마약(M), 향정(H)의 경우 글씨체 bold로 변경
- spcldrug = ds_main_rp_rsvprcpinfo_prcplist.getColumn(i, "spcldrug");
- if(spcldrug == 'M' || spcldrug == 'H'){
- ds_main_rp_rsvprcpinfo_prcplist.setColumn(i, "colFont", "arial,9,bold");
- }else{
- ds_main_rp_rsvprcpinfo_prcplist.setColumn(i, "colFont", "arial,9");
- }
- }
-
- sExprColor += "'')";
-
- for( var i=0 ; i<grd_prcplist.getCellCount("Body") ; i++ ){
- grd_prcplist.setCellProperty("Body", i, "color", sExprColor);
- grd_prcplist.setCellProperty("Body", i, "color2", sExprColor);
- grd_prcplist.setCellProperty("Body", i, "selectcolor", sExprColor);
- }
-
- //비활성화가 한개라도 존재하면 체크박스전체선택을 못하도록 없앤다.
- if(_carerpcnt > 0){
- grd_prcplist.setCellProperty("Head", 0, "displaytype", "normal");
- grd_prcplist.setCellProperty("Head", 0, "edittype", "none");
- }else{
- grd_prcplist.setCellProperty("Head", 0, "displaytype", "checkbox");
- grd_prcplist.setCellProperty("Head", 0, "edittype", "checkbox");
- }
-
- return ;
- }
- /**
- * ----------------------------------------------------------------------------------
- * @date : 20090728
- * @author : dhkim
- * ----------------------------------------------------------------------------------
- * @dssc : 예약처방전송
- * 입실체크전에는 처방조회만 가능 -> 입실체크 이전 처방전송시 blocking
- * 입실체크이후 처방전송 가능 : 전송된처방은 비활성화
- * 처방전송후 ordermanage의 미확인처방에 쌓이지 않고 처방적용일에 바로 누적
- * ----------------------------------------------------------------------------------
- */
- function fSendRsrvPrcpChemo(){
- if(fIsValidChemo()){
-
- var rtnCnt = messageBox('예약처방전송을', 'Q004');
- if(rtnCnt == 6){
-
-
- //파라미터값세팅
- var pid = model.getValue('/root/main_rp/rsvpatinfo/pid');
- var orddd = model.getValue('/root/main_rp/rsvpatinfo/indd');
- var cretno = model.getValue('/root/main_rp/rsvpatinfo/cretno');
- var ioflag = model.getValue('/root/main_rp/rsvpatinfo/ordtype');
- var aftcertdrid = model.getValue('/root/main_rp/rsvpatinfo/medispclid');
- var prcpdd = utlf_getCurrentDate();
-
- //20090819 dhkim prcpinptflag를 33(예약처방)으로 넘김 (from. hit 손주연대리님)
- var prcpinptflag = "33";
- //var prcpinptflag = "00";
- var prcpkindcd = "00";
- var prcpsignflag = "1";
- var aftcertflag = "12";
-
- model.removenode('/root/send');
- model.removenode('/root/main_rp/paminfo');
- model.removenode('/root/main_rp/saveflaginfo');
-
- model.makeValue ( "/root/main_rp/paminfo/pid", pid);
- model.makeValue ( "/root/main_rp/paminfo/orddd", orddd);
- model.makeValue ( "/root/main_rp/paminfo/cretno", cretno);
- model.makeValue ( "/root/main_rp/paminfo/instcd", sysf_getUserInfo("dutplceinstcd"));
- model.makeValue ( "/root/main_rp/paminfo/prcpdd", prcpdd);
- model.makeValue ( "/root/main_rp/paminfo/deptcd", sysf_getUserInfo("dutplcecd"));
- model.makeValue ( "/root/main_rp/paminfo/userid", sysf_getUserInfo ("userid"));
-
- model.makeValue ( "/root/main_rp/saveflaginfo/savedataflag", "2" );
- model.makeValue ( "/root/main_rp/saveflaginfo/saveflag", ioflag); //저장구분 O:외래, I:입원, E:응급, S:건진
- model.makeValue ( "/root/main_rp/saveflaginfo/prcpflag", "-" );
- model.makeValue ( "/root/main_rp/saveflaginfo/inptflag", prcpinptflag);//입력구분: 입력구분 (코드정의서 M0034 참조)
- model.makeValue ( "/root/main_rp/saveflaginfo/pamflag", "N" );//원무정보: 처리구분 (외래만 해당 Y/N)
- model.makeValue ( "/root/main_rp/saveflaginfo/deptcd", sysf_getUserInfo("dutplcecd")); //부서코드
- model.makeValue ( "/root/main_rp/saveflaginfo/deptnm", sysf_getUserInfo("dutplcenm")); //부서명
- model.makeValue ( "/root/main_rp/saveflaginfo/userid", sysf_getUserInfo("userid")); //사용자ID
- model.makeValue ( "/root/main_rp/saveflaginfo/usernm", sysf_getUserInfo("usernm")); //사용자명
- model.makeValue ( "/root/main_rp/saveflaginfo/signyn", "N" );
- model.makeValue ( "/root/main_rp/saveflaginfo/prcpdd", prcpdd);
- model.makeValue ( "/root/main_rp/saveflaginfo/diagflag", "N"); //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
-
- model.makeValue ( "/root/saveflaginfo/prcperrflag", "N" );
- model.refresh();
- grd_prcplist.rebuild();
-
-
- //예약처방전송
- var srcNodeList = model.instances(0).selectNodes ("/root/main_rp/rsvprcpinfo/prcplist");
- var curitem = 0;
- var nochkcnt = 0;
- for ( var i = 1; i<grd_prcplist.rows; i++ ) {
- if ( model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/status" ) != "I" ) {
- nochkcnt++;
- } else {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpkindcd", prcpkindcd);
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpinptflag", prcpinptflag);
-
- var prcphopedd = prcpdd;
- //의사 희망일이 현재 처방일에서 지난것들만 적용
- if ( prcphopedd > model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcphopedd" )) {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcphopedd", prcphopedd );
- }
- //if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_prcpstatcd" ))) {
- // model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpstatcd", opener.javascript.getParameter ( "SPMMO18200_prcpstatcd" ));
- //}
- if ( !isNull(prcpsignflag)) {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpsignflag", prcpsignflag);
- }
- //if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_oprsrvno" ))) {
- // model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/oprsrvno", opener.javascript.getParameter ( "SPMMO18200_oprsrvno" ));
- //}
- //if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_prcpauthflag" ))) {
- // model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpauthflag", opener.javascript.getParameter ( "SPMMO18200_prcpauthflag" ));
- //}
- if ( !isNull(aftcertflag)) {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/aftcertflag", aftcertflag);
- }
- if ( !isNull(aftcertdrid)) {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/aftcertdrid", aftcertdrid);
- }
-
- //alert(i + '번째 ioflag : ' + ioflag + ' prcpcd : ' + model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpcd" )
- // + ' prcpclscd : ' + model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpclscd" )
- // + ' prcpclscd substr : ' + model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpclscd" ).substring (0,1));
-
-
- if ( "O" != ioflag) {
- if ( model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpclscd" ) == "B4" ) {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prepprcpflag", "Y");
- } else if ( model.getValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpclscd" ).substring (0,1) == "A" ) {
- //입원base 약처방인경우 병동약국으로 setting, 원내처리
- var antideptcd = fDrugDeptcdChk("/root/main_rp/rsvprcpinfo", i );
- //alert('execdept '+ antideptcd);
- if ( isNull(antideptcd)) {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpexecdeptcd", "3240300000" );
- } else {
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/prcpexecdeptcd", antideptcd );
- }
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/hosinhosoutflag", "I" );
- model.setValue ( "/root/main_rp/rsvprcpinfo/prcplist[" + i + "]/hosinprcpresncd", "00" );
- }
- }
-
- }
- }
- var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/main_rp/rsvprcpinfo/prcplist" );
- model.makeValue ( "/root/send/cond1", getNodeListCSV(saveFlagInfoNodeList));
- var savePamInfoNodeList = model.instances(0).selectNodes( "/root/main_rp/paminfo" );
- model.makeValue ( "/root/send/cond2", getNodeListCSV(savePamInfoNodeList));
- var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/main_rp/saveflaginfo" );
- model.makeValue ( "/root/send/cond3", getNodeListCSV(saveFlagInfoNodeList));
-
- if ( nochkcnt > 0 ) {
- if ( messageBox ( "체크안된 처방은 전환이 안됩니다. 저장하시겠습니까?", "Q" ) != "6" ) return;
- }
-
-
- //return ;
-
- if (submit ( "TXMMO18201", false )) {
- var prcpErrList = model.instances(0).selectNodes( "/root/errresult/prcperrlist" );
- if ( prcpErrList.length > 0 ) {
- xpt = window.screenleft + 10;
- ypt = window.screenTop + 0;
- coord = getRelativeCoordinate ( xpt, ypt );
- mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/errresult", "/root/result", "", false ); //오류팝업
- return;
- }else{
-
- messageBox('전송을 완료했습니다.', 'E999');
- fGetRsrvPrcpChemo(_pid, _indd, _cretno, _ordtype, _medispclid, _roomcd, _sexage, _hngnm);//재조회
-
- }
- }
- }
- }
-
- }
- /**
- * ----------------------------------------------------------------------------------
- * @date : 20090728
- * @author : dhkim
- * ----------------------------------------------------------------------------------
- * @dssc : 예약처방전송 전 유효성 체크
- * 입실체크전에는 처방조회만 가능 -> 입실체크 이전 처방전송시 blocking
- * 입실체크이후 처방전송 가능 : 전송된처방은 비활성화
- * 처방전송후 ordermanage의 미확인처방에 쌓이지 않고 처방적용일에 바로 누적
- * ----------------------------------------------------------------------------------
- */
- function fIsValidChemo(){
- //전송할 처방이 체크되었는지 확인
- var chk; var chkCnt = 0;
- for(var i = 1; i <= grd_prcplist.rows; i++){
-
- chk = model.getValue('/root/main_rp/rsvprcpinfo/prcplist[' + i + ']/status');
- if(chk == 'I'){
- chkCnt = chkCnt + 1;
- }
- }
-
- if(chkCnt == 0){
- messageBox('전송할 처방을 선택하세요.', 'E999');
- return false;
- }
-
-
-
- //해당환자가 입실체크 이전인지 조회
- var pid = model.getValue('/root/main_rp/rsvpatinfo/pid');
- var indd = model.getValue('/root/main_rp/rsvpatinfo/indd');
- model.removenode('/root/send');
- model.makeValue('/root/send/pid', pid);
- model.makeValue('/root/send/indd', indd);
-
- model.removenode('/root/main_rp/patinyninfo');
- model.makeNode('/root/main_rp/patinyninfo');
-
- if(submit('TRMNI02102')){
- var cnt = model.getValue('/root/main_rp/patinyninfo/cnt');
- if(cnt < 1){
- messageBox('입실체크전에는 처방을 전송할 수 없습니다.', 'E999');
- return false;
- }
- }
-
- return true;
- }
- ]]></Script>
|