12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141 |
- /**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fInitialize_SPMMO02800(){
- zbcfGetCodeList(new Array("P0323", "M0040", "M0029", "P0506", "M0039", "M0044", "M0006", "M0007", "M0008", "M0639"),new Array("/root/init/hosinprcpresncd", "/root/init/drugspdunitflag", "/root/init/payflagcd","/root/init/drgacptflag","/root/init/tnsuseflag","/root/init/irpayflag","/root/init/angioflagcd","/root/init/opansflagcd", "/root/init/anstflagcd", "/root/init/nigtprcpflag"));
-
- zbcfGetKindCodeList(new Array("M0041", "M0042", "M0043"), new Array("M0046", "M0041", "M0045"), new Array("/root/init/tempdrugspd1", "/root/init/tempprcpdirecflag1", "/root/init/tempdrugmthdspccdnm1"), false); // 재활
- zbcfGetKindCodeList(new Array("M0044", "M0045", "M0046"), new Array("M0046", "M0041", "M0045"), new Array("/root/init/tempdrugspd2", "/root/init/tempprcpdirecflag2", "/root/init/tempdrugmthdspccdnm2"), false); // 온열암치료
- zbcfGetKindCodeList(new Array("M0047"), new Array("M0046"), new Array("/root/init/tempdrugspd3"), false); // 초음파처방
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , getUserInfo("dutplcecd"), "0330", "", "M", "", "", "", "Y"); // 선택진료의사 리스트를 조회한다.
- model.setValue ( "/root/send/cond1", "172" ); // PRN 사유 조회
- submit("TRMMB16401" );
-
- var pParentNode = null;
- var node01 = instance1.selectSingleNode("/root/init/hosinprcpresncd/P0323[cdid='01']");
- if(node01 != null){
- pParentNode = node01.parentNode;
- pParentNode.removeChild(node01);
- }
- model.setValue("/root/cond/isinit", "Y");
- model.refresh();
- }
- /**
- * @desc : 처방화면에서 처방 클릭시
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fPrcpClick() {
- var sIsInit = model.getValue("/root/cond/isinit");
- if(sIsInit == "N") {
- fInitialize_SPMMO02800(); // 기초 변수,인스턴스 설정
- }
-
- var nRow = opener.grd_prcplist.row;
- var sPrcpCD = opener.model.getValue ("/root/main/prcp/prcplist[" + nRow + "]/prcpcd");
- var srcNodeList = opener.model.instances(0).selectNodes("/root/main/prcp/prcplist");
- var destNode = model.instances(0).selectSingleNode("/root/main/prcp");
-
- if(nRow > 0 && !isNull(sPrcpCD)) {
- var sBfPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
- model.removeNodeset("/root/main/prcp/prcplist");
- destNode.appendChild(srcNodeList.item(nRow-1).cloneNode(true));
- model.setValue("/root/cond/currow", nRow);
-
- if(sBfPrcpCd != sPrcpCD) { // 처방코드가 틀릴경우만 조회
- fPrcpExecDeptSrch(); // 시행부서 조회
- }
- var prcpClsCd = model.getValue ("/root/main/prcp/prcplist/prcpclscd");
- fInitPage(prcpClsCd);
- } else {
- fInitPage("00");
- }
- }
- /**
- * @desc : 처방종류별 화면 기본 설정
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fInitPage(prcpClsCd) {
- var sPrcpGenrFlag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
- var sOrgPrcpNm = model.getValue("/root/main/prcp/prcplist/orgprcpnm");
- var prcpClsNm = "";
-
- if(prcpClsCd == "03") { // 식이
- /**************************************************************************************************/
- // 식이 처방
- /**************************************************************************************************/
- model.toggle("03");
- prcpClsNm = "식이";
-
- model.setValue ( "/root/diet1", "N" );
- model.setValue ( "/root/diet2", "N" );
- model.setValue ( "/root/diet3", "N" );
- model.setValue ( "/root/dietall", "N" );
-
- grd_03_prcplist.valueMatrix ( 0, 4 ) = "열량";
- grd_03_prcplist.colDisabled (4)= false;
- grd_03_prcplist.colDisabled (5)= false;
- cap_03_tfdtlcd.visible = true;
- rdo_03_tfdtlcd.visible = true;
- model.removeNodeset("/root/init/A0000");
- model.makeNode("/root/init/A0000");
- var calcond = "";
- var mealprotcntscond = "";
- var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
- if(sPrcpCd == "Q2093001"){ //경장영양일반
- zbcfGetCodeList(new Array("A0489"), new Array("/root/init/A0000"));
- cap_03_tfdtlcd.attribute("text") = "경장영양일반";
- rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0489";
- }else if(sPrcpCd == "Q2093002"){ //경장영양당뇨
- zbcfGetCodeList(new Array("A0490"), new Array("/root/init/A0000"));
- cap_03_tfdtlcd.attribute("text") = "경장영양당뇨";
- rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0490";
- }else if(sPrcpCd == "Q2093003"){ //경장영양신장질환
- zbcfGetCodeList(new Array("A0491"), new Array("/root/init/A0000"));
- cap_03_tfdtlcd.attribute("text") = "경장영양신장질환";
- rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0491";
- }else if(sPrcpCd == "Q2093004"){ //경장영양섬유소
- zbcfGetCodeList(new Array("A0491"), new Array("/root/init/A0000"));
- cap_03_tfdtlcd.attribute("text") = "경장영양섬유소";
- rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0492";
- }else if(sPrcpCd == "Q2093005"){ //경장영양고단백
- zbcfGetCodeList(new Array("A0493"), new Array("/root/init/A0000"));
- cap_03_tfdtlcd.attribute("text") = "경장영양고단백";
- rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0493";
- }else if(sPrcpCd == "Q2093006"){ //경장영양기타
- zbcfGetCodeList(new Array("A0494"), new Array("/root/init/A0000"));
- cap_03_tfdtlcd.attribute("text") = "경장영양기타";
- rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0494";
- }else{
- cap_03_tfdtlcd.visible = false;
- rdo_03_tfdtlcd.visible = false;
- }
- model.refresh();
-
- var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
- if(clinccmtcnts == ""){radio1.select(0);}
-
- var dietprcpgenrflag = model.getValue ( "/root/main/prcp/prcplist/dietprcpgenrflag" );
- if ( isNull(dietprcpgenrflag) || dietprcpgenrflag == "-" ) {
- if (opener.cmb_prcpdd.value > getCurrentDate()) {
- model.setValue ( "/root/diet1", "Y" );
- model.setValue ( "/root/diet2", "Y" );
- model.setValue ( "/root/diet3", "Y" );
- } else if (opener.cmb_prcpdd.value == getCurrentDate()) {
- var dietfromtm = "";
- var diettotm = "";
- var dietflag = "";
-
- var srcNodeList = opener.model.instances(0).selectNodes( "/root/initsrch/dietendtm" );
- var hhmm = eval(getCurrentTime().substr( 0, 4 ));
- for ( var i =1 ; i <= srcNodeList.length; i++ ) {
- dietfromtm = 0;
- diettotm = eval(opener.model.getValue ( "/root/initsrch/dietendtm[" + i + "]/diettotm" ));
- if ( dietfromtm <= hhmm && hhmm <= diettotm ) {
- dietflag = opener.model.getValue ( "/root/initsrch/dietendtm[" + i + "]/dietflag" );
- if ( dietflag == "1" ) { model.setValue ( "/root/diet1", "Y" ); }
- if ( dietflag == "2" ) { model.setValue ( "/root/diet2", "Y" ); }
- if ( dietflag == "3" ) { model.setValue ( "/root/diet3", "Y" ); }
- }
- }
- }
- } else {
- if ( dietprcpgenrflag == "1") { model.setValue ( "/root/diet1", "Y" ); }
- if ( dietprcpgenrflag == "2") { model.setValue ( "/root/diet2", "Y" ); }
- if ( dietprcpgenrflag == "3") { model.setValue ( "/root/diet3", "Y" ); }
- }
-
- var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec" ) +"▩";
- calcond = getArrayData (drugmastspec, 0, 0, "▩", "|" );
- if ( calcond == "1" ) {
- grd_03_prcplist.colDisabled (4)= true;
- } else if ( calcond == "2" || calcond == "3" ) {
- var calmin = eval(getArrayData (drugmastspec, 0, 1, "▩", "|" ));
- var calmax = eval(getArrayData (drugmastspec, 0, 2, "▩", "|" ));
- var i = 0;
- while (calmin <= calmax) {
- i++;
- model.makeValue("/root/mealcalrcnts/mealcalrcntslist[" + i + "]/cdnm", calmin);
- calmin += 100;
- }
-
- if ( calcond == "3" ) { //header 수정
- grd_03_prcplist.valueMatrix ( 0, 4 ) = "용량";
- }
- }
- mealprotcntscond = getArrayData (drugmastspec, 0, 3, "▩", "|" );
- if ( mealprotcntscond == "Y" ) {
- var mealprotcnts = getArrayData (drugmastspec, 0, 4, "▩", "|" ) + "▩";
- var prcplen = mealprotcnts.split("^").length;
- var row = 0;
- for ( var j=0; j < prcplen; j++ ) {
- row = j + 1;
- model.makeValue("/root/mealprotcnts/mealprotcntslist[" + row + "]/cdnm", getArrayData ( mealprotcnts, 0, j, "▩", "^" ) );
- }
- } else {
- model.setValue ( "/root/main/prcp/prcplist/mealprotcnts", "3" );
- grd_03_prcplist.colDisabled (5)= true;
- }
-
- rdo_03_tfdtlcd.select(0);
- } else if(prcpClsCd == "A2" || prcpClsCd == "A4") { // 약 경구, 외용
- /**************************************************************************************************/
- // 약 경구, 외용
- /**************************************************************************************************/
- model.toggle("A2");
- if(prcpClsCd == "A2") {
- prcpClsNm = "약-경구";
- } else {
- prcpClsNm = "약-외용";
- }
-
- reqHardCodeInfo("/root/main/temp/prnuseyn", "/root/main/temp/prnuseyn", "173");
-
- //30일 이상의 마약처방인 경우, 사유를 입력할 수 있도록 변경, 2008. 06. 12 오지훈
- var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
- var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
- var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
- var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
- if ( spcldrug == "M" ) {
- cap_a2_clinccmtcnts.visible = true;
- rdo_a2_clinccmtcnts.visible = true;
- ipt_a2_clinccmtcnts.visible = true;
- if(prcpdayno >= 30){ //2.기타인 경우 input box에 clinccmtcnts의 값을 설정
- if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){
- model.setValue("/root/main/prcp/prcplist/clinccmtcnts", "2. 기타");
- model.setValue("/root/main/temp/clinccmtcnts", clinccmtcnts);
- }
- ipt_a2_clinccmtcnts.disabled = false;
- } else {
- ipt_a2_clinccmtcnts.disabled = true;
- }
- } else {
- cap_a2_clinccmtcnts.visible = false;
- rdo_a2_clinccmtcnts.visible = false;
- ipt_a2_clinccmtcnts.visible = false;
- }
- //20090115 마정민수정: 내복제-생물학적제제-능동면역약인 경우 접종차수 활성화
- if ( model.getValue("/root/main/prcp/prcplist/tempcol2") == "03|08|02" ) {
- cap_a2_mealcalrcnts.visible = true;
- rdo_a2_mealcalrcnts.visible = true;
- } else {
- cap_a2_mealcalrcnts.visible = false;
- rdo_a2_mealcalrcnts.visible = false;
- }
-
- // 입력된 PRN 처방 사유와 횟수가 있으면 보여주되 하드코드 173번, 화면코드를 구분기준으로 한다. 2010-01-02 by LYJ
- if (model.getValue("/root/main/prcp/prcplist/prnprcpflag")=="Y" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y"){
- ipt_a2_prcpdelivefact.disabled = true;
- cap_a2_prn.visible = true;
- cap_a2_prntime.visible = true;
- cap_a2_prnresncmt.visible = true;
- cap_a2_prnterm.visible = true;
- ipt_a2_prntime.visible = true;
- ipt_a2_prnresncmt.visible = true;
- ipt_a2_prnterm.visible = true;
- cob_a2_prnprcpresncd.visible = true;
- var sDrPrcpEtc6 = model.getValue("/root/main/prcp/prcplist/drprcpetc6");
- var SetPrnPrcpDetl = sDrPrcpEtc6.split("|");
- if ( SetPrnPrcpDetl.length >2){
- model.setValue("/root/main/temp/prntms", SetPrnPrcpDetl[0]);
- model.setValue("/root/main/temp/prnprcpresncd", SetPrnPrcpDetl[1]);
- model.setValue("/root/main/temp/prnresncmt", SetPrnPrcpDetl[2]);
- if(SetPrnPrcpDetl.length >3) {
- model.setValue("/root/main/temp/prnterm", SetPrnPrcpDetl[3]);
- } else {
- model.setValue("/root/main/temp/prnterm", "");
- }
- } else {
- model.setValue("/root/main/temp/prntms", "");
- model.setValue("/root/main/temp/prnprcpresncd", "");
- model.setValue("/root/main/temp/prnresncmt", "");
- model.setValue("/root/main/temp/prnterm", "");
- }
- } else {
- ipt_a2_prcpdelivefact.disabled = false;
- cap_a2_prn.visible = false;
- cap_a2_prntime.visible = false;
- cap_a2_prnresncmt.visible = false;
- cap_a2_prnterm.visible = false;
- ipt_a2_prntime.visible = false;
- ipt_a2_prnresncmt.visible = false;
- ipt_a2_prnterm.visible = false;
- cob_a2_prnprcpresncd.visible = false;
-
- model.setValue("/root/main/temp/prntms", "");
- model.setValue("/root/main/temp/prnprcpresncd", "");
- model.setValue("/root/main/temp/prnresncmt", "");
- model.setValue("/root/main/temp/prnterm", "");
- }
-
- //by sonjy 20091021 수가계산방법 4일때는 일수입력 불가 처리.변경요청번호 : 3667
- var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
- if( calcmthdcd == "4" ) {
- model.setValue(grd_a2_prcplist.nodeset + "/prcpdayno", "1");
- grd_a2_prcplist.colDisabled (grd_a2_prcplist.colRef("prcpdayno") ) = true;
- }else {
- grd_a2_prcplist.colDisabled (grd_a2_prcplist.colRef("prcpdayno") ) = false;
- }
-
- //원내, 원외 처방 처리
- //1. 외래: /root/main/prcp/prcplist/hosinhosoutflag 값이 O이면 원외
- //1.1 처방화면에 원내처방 사유가 있으면 복사시 값을 가져온다.
- //1.2 처방 자체에 원내처방 사유가 있으면 적용된다. 단 처방화면에 원내처방 사유가 있을경우 그걸로 적용
- //1.3 처방화면에서 원내처방 사유를 적용하면 그걸로 전부 적용된다.
- //1.4 처방상세화면에서 원내처방 사유를 적용할 때 그것이 처방화면의 원내처방 사유와 동일할 경우 그걸로 모두 적용한다.
- //1.5 원내/원외, 원내처방사유 enable
- //2.입원: 원내, 원내처방사유 00
- //2.1 원내/원외, 원내처방사유 disable
- //3.응급: 입원과 동일하다.
- //3.1 원내/원외, 원내처방사유 enable
- //4.DSC: 입원과 동일하다.
- //4.1 퇴원처방, 퇴원후 외래처방은 원외이다. ( 입원, 응급과 같게 하라고 해서 처리안함 )
- //4.2 원내/원외, 원내처방사유 enable
-
- if ( sPrcpGenrFlag == "O" || sPrcpGenrFlag == "E" || sPrcpGenrFlag == "D") { //외래, 응급, DSC 이면 prn처방 disable
- //원내처방사유 변경시 아니오를 선택할 경우 원래값으로 돌아가기 위해 전원내처방사유를 관리한다.
- //값은 원내처방사유가 변경될 때마다 같이 변경된다.
- model.setValue ( "/root/init/bfhosinprcpresncd", model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ));
- }
- if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
- grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("prnprcpflag")) = true;
- } else {
- grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("prnprcpflag")) = false;
- }
- var hosinhosoutflag = model.getValue("/root/main/prcp/prcplist/hosinhosoutflag");
- if ( hosinhosoutflag != "O" && sPrcpGenrFlag == "I" ) { // 입원은 원내/원외, 원내처방사유 disable
- rdo_a2_hosinhosoutflag1.disabled = true;
- rdo_a2_hosinhosoutflag2.disabled = true;
- grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("hosinprcpresncd")) = true;
- } else {
- rdo_a2_hosinhosoutflag1.disabled = false;
- rdo_a2_hosinhosoutflag2.disabled = false;
- grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("hosinprcpresncd")) = false;
- }
- } else if(prcpClsCd == "A6") { // 약 주사
- /**************************************************************************************************/
- // 약 주사
- /**************************************************************************************************/
- model.toggle("A6");
- prcpClsNm = "약-주사";
-
- reqHardCodeInfo("/root/main/temp/prnuseyn", "/root/main/temp/prnuseyn", "173");
-
- //30일 이상의 마약처방인 경우, 사유를 입력할 수 있도록 변경, 2008. 06. 12 오지훈
- var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
- var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
- var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
- var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
- if ( spcldrug == "M" ) {
- cap_a6_clinccmtcnts.visible = true;
- rdo_a6_clinccmtcnts.visible = true;
- ipt_a6_clinccmtcnts.visible = true;
- if(prcpdayno >= 30){ //2.기타인 경우 input box에 clinccmtcnts의 값을 설정
- if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){
- model.setValue("/root/main/prcp/prcplist/clinccmtcnts", "2. 기타");
- model.setValue("/root/main/temp/clinccmtcnts", clinccmtcnts);
- }
- ipt_a6_clinccmtcnts.disabled = false;
- } else {
- ipt_a6_clinccmtcnts.disabled = true;
- }
- } else {
- cap_a6_clinccmtcnts.visible = false;
- rdo_a6_clinccmtcnts.visible = false;
- ipt_a6_clinccmtcnts.visible = false;
- }
- //예방주사 버튼 활성화 처방, 하드코드 25(05|08|00:예방주사 : 수동면역 - Antiserum, 05|08|01:예방주사 : 수동면역 - Human Immune Globulin, 05|08|02:예방주사 : 능동면역 - Toxoid & Vaccines
- var tempcol2 = model.getValue ( "/root/main/prcp/prcplist/tempcol2" );
- var earnclscd = opener.model.getValue ( "/root/initsrch/earnclsauto[earnclsflag='2' and earnclscd='" + tempcol2 + "']/earnclscd" );
- if ( !isNull(earnclscd)) {
- cap_a6_mealcalrcnts.visible = true;
- rdo_a6_mealcalrcnts.visible = true;
- } else {
- cap_a6_mealcalrcnts.visible = false;
- rdo_a6_mealcalrcnts.visible = false;
- } //예방주사 버튼 활성화 처방
-
- // 입력된 PRN 처방 사유와 횟수가 있으면 보여주되 하드코드 173번, 화면코드를 구분기준으로 한다. 2010-01-02 by LYJ
- if (model.getValue("/root/main/prcp/prcplist/prnprcpflag")=="Y" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ){
- ipt_a6_prcpdelivefact.disabled = true;
- cap_a6_prn.visible = true;
- cap_a6_prntime.visible = true;
- cap_a6_prnresncmt.visible = true;
- cap_a6_prnterm.visible = true;
- ipt_a6_prntime.visible = true;
- ipt_a6_prnresncmt.visible = true;
- ipt_a6_prnterm.visible = true;
- cob_a6_prnprcpresncd.visible = true;
- var sDrPrcpEtc6 = model.getValue("/root/main/prcp/prcplist/drprcpetc6");
- var SetPrnPrcpDetl = sDrPrcpEtc6.split("|");
- if ( SetPrnPrcpDetl.length >2){
- model.setValue("/root/main/temp/prntms", SetPrnPrcpDetl[0]);
- model.setValue("/root/main/temp/prnprcpresncd", SetPrnPrcpDetl[1]);
- model.setValue("/root/main/temp/prnresncmt", SetPrnPrcpDetl[2]);
- if(SetPrnPrcpDetl.length >3) {
- model.setValue("/root/main/temp/prnterm", SetPrnPrcpDetl[3]);
- } else {
- model.setValue("/root/main/temp/prnterm", "");
- }
- } else {
- model.setValue("/root/main/temp/prntms", "");
- model.setValue("/root/main/temp/prnprcpresncd", "");
- model.setValue("/root/main/temp/prnresncmt", "");
- model.setValue("/root/main/temp/prnterm", "");
- }
- } else {
- ipt_a6_prcpdelivefact.disabled = false;
- cap_a6_prn.visible = false;
- cap_a6_prntime.visible = false;
- cap_a6_prnresncmt.visible = false;
- cap_a6_prnterm.visible = false;
- ipt_a6_prntime.visible = false;
- ipt_a6_prnresncmt.visible = false;
- ipt_a6_prnterm.visible = false;
- cob_a6_prnprcpresncd.visible = false;
- model.setValue("/root/main/temp/prntms", "");
- model.setValue("/root/main/temp/prnprcpresncd", "");
- model.setValue("/root/main/temp/prnresncmt", "");
- model.setValue("/root/main/temp/prnterm", "");
- }
-
- //by sonjy 20091021 수가계산방법 4일때는 일수입력 불가 처리.변경요청번호 : 3667
- var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
- if( calcmthdcd == "4" ) {
- model.setValue(grd_a6_prcplist.nodeset + "/prcpdayno", "1");
- grd_a6_prcplist.colDisabled (grd_a6_prcplist.colRef("prcpdayno") ) = true;
- }else {
- grd_a6_prcplist.colDisabled (grd_a6_prcplist.colRef("prcpdayno") ) = false;
- }
-
- if ( sPrcpGenrFlag == "O" || sPrcpGenrFlag == "E" || sPrcpGenrFlag == "D") { //외래, 응급, DSC 이면 prn처방 disable
- //원내처방사유 변경시 아니오를 선택할 경우 원래값으로 돌아가기 위해 전원내처방사유를 관리한다.
- //값은 원내처방사유가 변경될 때마다 같이 변경된다.
- model.setValue ( "/root/init/bfhosinprcpresncd", model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ));
- }
- if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
- grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("prnprcpflag")) = true;
- } else {
- grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("prnprcpflag")) = false;
- }
- var hosinhosoutflag = model.getValue("/root/main/prcp/prcplist/hosinhosoutflag");
- if ( hosinhosoutflag != "O" && sPrcpGenrFlag == "I" ) { // 입원은 원내/원외, 원내처방사유 disable
- rdo_a6_hosinhosoutflag1.disabled = true;
- rdo_a6_hosinhosoutflag2.disabled = true;
- grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("hosinprcpresncd")) = true;
- } else {
- rdo_a6_hosinhosoutflag1.disabled = false;
- rdo_a6_hosinhosoutflag2.disabled = false;
- grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("hosinprcpresncd")) = false;
- }
- } else if(prcpClsCd == "B2" || prcpClsCd == "B6") { // 진단검사 (검체검사), 핵의학 체내
- /**************************************************************************************************/
- // 진단검사 (검체검사), 핵의학 체내
- /**************************************************************************************************/
- model.toggle("B2");
- if(prcpClsCd == "B2") {
- prcpClsNm = "진단검사";
- } else {
- prcpClsNm = "핵의학체내";
- }
-
- if ( eval(model.getValue ( "/root/main/prcp/prcplist/diagtestconttestorgtims" ))>0 ) {
- model.setValue ( "/root/main/prcp/prcplist/prcptims", model.getValue ( "/root/main/prcp/prcplist/diagtestconttestorgtims" ));
- }
-
- if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prnprcpflag")) = true;
- } else {
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prnprcpflag")) = false;
- }
-
- //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
- var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
- if(prcpsetcd != "-"){
- grd_b2_prcplist.colDisabled(grd_b2_prcplist.colRef("prcphopedd")) = true;
- } else {
- grd_b2_prcplist.colDisabled(grd_b2_prcplist.colRef("prcphopedd")) = false;
- }
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("diagtestconttestintvlflag")) = false;
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = false;
- btn_b2_diagtestconttestcdspec.disabled = false;
- var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec")+"^";
- if ( getArrayData (drugmastspec, 0, 5, "^", "|" ) == "N" ) {
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("diagtestconttestintvlflag")) = true;
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = true;
- btn_b2_diagtestconttestcdspec.disabled = true;
- }
- if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "N" || model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "5" ) {
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = true;
- btn_b2_diagtestconttestcdspec.disabled = true;
- }
-
- } else if(prcpClsCd == "B4") { // 수혈
- /**************************************************************************************************/
- // 수혈
- /**************************************************************************************************/
- model.toggle("B4");
- prcpClsNm = "수혈";
- //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정
- //2008. 07. 22 오지훈
- var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
- if(prcpsetcd != '-'){
- ipt_b4_prcphopedd.disabled = true;
- } else {
- ipt_b4_prcphopedd.disabled = false;
- }
-
- //irr 비활성화 병원별 적용(성가요청), cHc, 2009-07-21
- if ( opener.model.getValue("/root/initsrch/irrcheckyn/trgtcd") == "Y") {
- grd_b4_prcplist.isReadOnly(1, grd_b4_prcplist.colRef("irflag")) = true;
- } else {
- grd_b4_prcplist.isReadOnly(1, grd_b4_prcplist.colRef("irflag")) = false;
- }
- if ( sPrcpCd == "LBT25110" ) {
- grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("erprcpflag")) = true;
- } else {
- grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("erprcpflag")) = false;
- }
-
- if ( sPrcpCd == "LBT20440" || sPrcpCd == "LBT20640" ) {
- grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("irflag")) = true;
- } else {
- grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("irflag")) = false;
- }
- rdo_b4_prepprcpflag1.disabled = false; //Prep
- rdo_b4_prepprcpflag2.disabled = false; //T/F
- if ( sPrcpGenrFlag == "O" || sPrcpGenrFlag == "S" ) { //외래
- rdo_b4_prepprcpflag2.value = "Y"; // T/F default로 Y
- rdo_b4_prepprcpflag1.value = "N";
- rdo_b4_prepprcpflag1.disabled = true; //Prep disabled
- } else { //입원, 응급, DSC
- var prcpkindcd = model.getValue ( "/root/main/prcp/prcplist/prcpkindcd" );
- if ( prcpkindcd == "70" || prcpkindcd == "90" || prcpkindcd == "95" ) {
- rdo_b4_prepprcpflag2.value = "Y"; // T/F default로 Y
- rdo_b4_prepprcpflag1.value = "N";
- rdo_b4_prepprcpflag1.disabled = true; //Prep disabled
- } else {
- rdo_b4_prepprcpflag2.value = "N";
- rdo_b4_prepprcpflag1.value = "Y"; // Prep default로 Y
- rdo_b4_prepprcpflag2.disabled = true; // T/F disabled
- }
- }
-
- if ( model.getValue ( "/root/main/prcp/prcplist/irflag" ) == "N" ) {
- rdo_b4_irpayflag.disabled = true;
- } else {
- rdo_b4_irpayflag.disabled = false;
- }
- var tnsuseflag = model.getValue("/root/main/prcp/prcplist/tnsuseflag");
- if ( isNull(tnsuseflag)) {
- model.setValue ( "/root/main/prcp/prcplist/tnsuseflag", 0 );
- }
- if ( sPrcpGenrFlag == "O" ) { //환자리스트에서 준 외래, 입원, 응급 구분
- grd_b4_prcplist.colDisabled(grd_b4_prcplist.colref("tnsfiltflag")) = true;
- } else {
- grd_b4_prcplist.colDisabled(grd_b4_prcplist.colref("tnsfiltflag")) = false;
- }
- //수술예약일자, 시간 SETTING
- var prcphopedd = model.getValue ( "/root/main/prcp/prcplist/prcphopedd" );
- model.setValue ( "/root/main/prcp/prcplist/prcphopedd", prcphopedd.substring(0,8));
- if ( prcphopedd.length > 8 ) {
- model.setValue ( "/root/init/prcphopeddh", prcphopedd.substring(8,10));
- model.setValue ( "/root/init/prcphopeddm", prcphopedd.substring(10,12));
- } else {
- model.setValue("/root/init/prcphopeddh", "00");
- model.setValue("/root/init/prcphopeddm", "00");
- }
-
- if ( model.getValue ( "/root/main/prcp/prcplist/prepprcpflag") == "N") {
- ipt_b4_prcphopedd.disabled = false;
- ipt_b4_prcphopeddh.disabled = false;
- ipt_b4_prcphopeddm.disabled = false;
- }else{
- ipt_b4_prcphopedd.disabled = true;
- ipt_b4_prcphopeddh.disabled = true;
- ipt_b4_prcphopeddm.disabled = true;
- }
- } else if(prcpClsCd == "C2" || prcpClsCd == "C6" || prcpClsCd == "E2") { // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
- /**************************************************************************************************/
- // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
- /**************************************************************************************************/
- model.toggle("C2"); // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
- if(prcpClsCd == "C6") {
- prcpClsNm = "핵의학영상";
- } else if(prcpClsCd == "E2") {
- prcpClsNm = "기능검사";
- }else {
- prcpClsNm = "영상";
- }
-
- if (fContainsHardCD("536", sPrcpCd)) { // 단순초음파 또는 유도초음파인경우 치료부위, 관련행위, 처방사유 입력 할수 있도록
- cap_c2_ultrasono.visible = true;
- cap_c2_rehbprcpcurepartcd.visible = true;
- cob_c2_rehbprcpcurepartcd.visible = true;
- cap_c2_drugmthdspccd.visible = true;
- cob_c2_drugmthdspccd.visible = true;
- cap_c2_exptmthdfact.visible = true;
- ipt_c2_exptmthdfact.visible = true;
-
- copyNodesetType("/root/init/drugspd", "/root/init/tempdrugspd3/M0047M0046", "replace", model, model);
-
- model.makeValue ( "/root/send/prcpcd", model.getValue("/root/main/prcp/prcplist/prcpcd") );
- submit ("TRMMO00162")
- } else {
- cap_c2_ultrasono.visible = false;
- cap_c2_rehbprcpcurepartcd.visible = false;
- cob_c2_rehbprcpcurepartcd.visible = false;
- cap_c2_drugmthdspccd.visible = false;
- cob_c2_drugmthdspccd.visible = false;
- cap_c2_exptmthdfact.visible = false;
- ipt_c2_exptmthdfact.visible = false;
- }
-
- if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
- grd_c2_prcplist.colDisabled (grd_c2_prcplist.colref("prnprcpflag")) = true;
- } else {
- grd_c2_prcplist.colDisabled (grd_c2_prcplist.colref("prnprcpflag")) = false;
- }
-
- //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정
- //2008. 07. 22 오지훈
- var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
- if(prcpsetcd != "-"){
- grd_c2_prcplist.colDisabled(grd_c2_prcplist.colRef("prcphopedd")) = true;
- } else {
- grd_c2_prcplist.colDisabled(grd_c2_prcplist.colRef("prcphopedd")) = false;
- }
- } else if(prcpClsCd == "C4") { // angio
- /**************************************************************************************************/
- // angio
- /**************************************************************************************************/
- model.toggle("C4"); // angio
- prcpClsNm = "Angio";
-
- //처방필수입력구분 검사, angio구분 입력여부
- var prcpessninptflag = model.getValue("/root/main/prcp/prcplist/prcpessninptflag");
- if ( prcpessninptflag != 4 ) {
- grd_c4_prcplist.colDisabled(grd_c4_prcplist.colref("angioflagcd")) = true;
- } else {
- grd_c4_prcplist.colDisabled(grd_c4_prcplist.colref("angioflagcd")) = false;
- }
-
- //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
- var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
- if(prcpsetcd != '-'){
- grd_c4_prcplist.colDisabled(grd_c4_prcplist.colRef("prcphopedd")) = true;
- } else {
- grd_c4_prcplist.colDisabled(grd_c4_prcplist.colRef("prcphopedd")) = false;
- }
-
- } else if(prcpClsCd == "D2") { // 병리
- /**************************************************************************************************/
- // 병리
- /**************************************************************************************************/
- model.toggle("D2"); // 병리
- prcpClsNm = "병리";
-
- if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
- grd_d2_prcplist.colDisabled (grd_d2_prcplist.colref("prnprcpflag")) = true;
- } else {
- grd_d2_prcplist.colDisabled (grd_d2_prcplist.colref("prnprcpflag")) = false;
- }
-
- //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
- var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
- if(prcpsetcd != "-"){
- grd_d2_prcplist.colDisabled(grd_d2_prcplist.colRef("prcphopedd")) = true;
- } else {
- grd_d2_prcplist.colDisabled(grd_d2_prcplist.colRef("prcphopedd")) = false;
- }
- } else if(prcpClsCd == "F2") { // 재활
- /**************************************************************************************************/
- // 재활
- /**************************************************************************************************/
- model.toggle("F2"); // 재활
- prcpClsNm = "재활";
-
- if("HZ272" == model.getValue("/root/main/prcp/prcplist/prcpcd")) { // 온열암 고추파 처방일경우 치료부위, 치료위치, 치료빈도를 다르게 조회 한다.
- copyNodesetType("/root/init/drugspd", "/root/init/tempdrugspd2/M0044M0046", "replace", model, model);
- copyNodesetType("/root/init/prcpdirecflag", "/root/init/tempprcpdirecflag2/M0045M0041", "replace", model, model);
- copyNodesetType("/root/init/drugmthdspccdnm", "/root/init/tempdrugmthdspccdnm2/M0046M0045", "replace", model, model);
- } else {
- copyNodesetType("/root/init/drugspd", "/root/init/tempdrugspd1/M0041M0046", "replace", model, model);
- copyNodesetType("/root/init/prcpdirecflag", "/root/init/tempprcpdirecflag1/M0042M0041", "replace", model, model);
- copyNodesetType("/root/init/drugmthdspccdnm", "/root/init/tempdrugmthdspccdnm1/M0043M0045", "replace", model, model);
- }
- model.setValue ( "/root/send/cond1", "50" );
- model.setValue ( "/root/send/cond2", sPrcpCd);
- // 하드코드 조회 후 치료부위, 치료위치 활성화 여부 셋팅
- if (submit ("TRMMO00204")) {
- var trgtcdnm = model.getValue("/root/hardcode/hardcodelist/trgtcdnm");
- if ( trgtcdnm == "Y" || trgtcdnm == "O" ) {
- grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("rehbprcpcurepartcd")) = false;
- grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("prcpdirecflag")) = false;
- } else if (trgtcdnm == "N") {
- grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("rehbprcpcurepartcd")) = true;
- grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("prcpdirecflag")) = true;
- } else {
- grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("rehbprcpcurepartcd")) = false;
- grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("prcpdirecflag")) = false;
- }
- }
- } else if(prcpClsCd == "G2") { // RT
- /**************************************************************************************************/
- // RT
- /**************************************************************************************************/
- model.toggle("G2"); // RT
- prcpClsNm = "RT";
-
- if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
- grd_g2_prcplist.colDisabled (grd_g2_prcplist.colref("prnprcpflag")) = true;
- } else {
- grd_g2_prcplist.colDisabled (grd_g2_prcplist.colref("prnprcpflag")) = false;
- }
-
- //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
- var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
- if(prcpsetcd != "-"){
- grd_g2_prcplist.colDisabled(grd_g2_prcplist.colRef("prcphopedd")) = true;
- } else {
- grd_g2_prcplist.colDisabled(grd_g2_prcplist.colRef("prcphopedd")) = false;
- }
-
- } else if(prcpClsCd == "H2") { // 수술
- /**************************************************************************************************/
- // 수술
- /**************************************************************************************************/
- model.toggle("H2"); // 수술
- prcpClsNm = "수술";
-
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) { // 처방 필수 3:수술구분, 5:수술/치식 필수
- grd_h2_prcplist.colDisabled(grd_h2_prcplist.colref("opansflagcd")) = false;
- } else {
- model.setValue("/root/main/prcp/prcplist/opansflagcd", "-");
- grd_h2_prcplist.colDisabled(grd_h2_prcplist.colref("opansflagcd")) = true;
- }
-
- var operation = getGlobalVariable("operation");
- if(operation != null || operation != ""){
- setCSVToNode("/root/init/operation", operation);
- var opflagcd = model.getValue("/root/init/operation/list/opflagcd"); // opflagcd 1:정규, 2:응급, 3:추가
- if(opflagcd == "2"){
- model.setValue("/root/main/prcp/prcplist/erprcpflag", "Y");
- }
- var opfromtmcd = model.getValue("/root/init/operation/list/opfromtmcd"); //opfromtmcd 수술시작시간
- if(eval(opfromtmcd) > 180000){ //야간 시간 기준을 물어볼 것
- model.setValue("/root/main/prcp/prcplist/nigtprcpflag", "Y");
- }
- }
-
- } else if(prcpClsCd == "H4" || prcpClsCd == "Z0") { // 처치, 기타
- /**************************************************************************************************/
- // 처치, 기타
- /**************************************************************************************************/
- model.toggle("H4"); // 처치, 기타
- if(prcpClsCd == "H4") {
- prcpClsNm = "처치";
- } else if(prcpClsCd == "Z0") {
- prcpClsNm = "기타";
- }else {
- prcpClsNm = "";
- }
-
- if(sPrcpCd == "PE100") { // 신체억제대
- ipt_h4_prcpdelivefact.disabled = true;
- cap_h4_select.visible = true;
- } else {
- ipt_h4_prcpdelivefact.disabled = false;
- cap_h4_select.visible = false;
- }
- } else if(prcpClsCd == "I2" || prcpClsCd == "I4") { // 마취
- /**************************************************************************************************/
- // 마취
- /**************************************************************************************************/
- model.toggle("I2"); // 마취
- prcpClsNm = "마취";
-
- var ansttm = model.getValue ( "/root/main/prcp/prcplist/clinccmtcnts" );
-
- if ( !isNull(ansttm) && ansttm != "-" ) {
- var ansttm = ansttm + "^";
- var formtm = getArrayData (ansttm, 0, 0, "^", "|" );
- var totm = getArrayData (ansttm, 0, 1, "^", "|" );
- model.setValue ( "/root/ansttm/anstfromdd", formtm.substr ( 0, 8 ));
- model.setValue ( "/root/ansttm/anstfromh", formtm.substr ( 8, 2 ));
- model.setValue ( "/root/ansttm/anstfromm", formtm.substr ( 10, 2 ));
- model.setValue ( "/root/ansttm/ansttodd", totm.substr ( 0, 8 ));
- model.setValue ( "/root/ansttm/ansttoh", totm.substr ( 8, 2 ));
- model.setValue ( "/root/ansttm/ansttom", totm.substr ( 10, 2 ));
- } else {
- model.setValue ( "/root/ansttm/anstfromdd", getCurrentDate());
- model.setValue ( "/root/ansttm/anstfromh", "00");
- model.setValue ( "/root/ansttm/anstfromm", "00");
- model.setValue ( "/root/ansttm/ansttodd", getCurrentDate());
- model.setValue ( "/root/ansttm/ansttoh", "23");
- model.setValue ( "/root/ansttm/ansttom", "59");
- }
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag != 1 ) {//처방필수 입력구분이 마취시간일 경우는 마취시간을 체크한다.
- ipt_i2_anstfromdd.disabled = true;
- ipt_i2_anstfromh.disabled = true;
- ipt_i2_anstfromm.disabled = true;
- ipt_i2_ansttodd.disabled = true;
- ipt_i2_ansttoh.disabled = true;
- ipt_i2_ansttom.disabled = true;
- }
-
- } else if(prcpClsCd == "K2") { // 치과
- /**************************************************************************************************/
- // 치과
- /**************************************************************************************************/
- model.toggle("K2"); // 치과
- prcpClsNm = "치과";
-
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) { // 처방 필수 3:수술구분, 5:수술/치식 필수
- grd_k2_prcplist.colDisabled(grd_k2_prcplist.colref("opansflagcd")) = false;
- } else {
- model.setValue("/root/main/prcp/prcplist/opansflagcd", "-");
- grd_k2_prcplist.colDisabled(grd_k2_prcplist.colref("opansflagcd")) = true;
- }
- } else if(prcpClsCd == "M2") { // 재료
- /**************************************************************************************************/
- // 재료
- /**************************************************************************************************/
- model.toggle("M2"); // 재료
- prcpClsNm = "재료";
-
- var calcscormastspec = model.getValue ( "/root/main/prcp/prcplist/calcscormastspec" ) + "^";
- if ( getArrayData ( calcscormastspec, 0, 2, "^", "|" ) == "Y" ) {
- model.setValue ( "/root/send/cond1", model.getValue ( "/root/main/prcp/prcplist/prcpcd" ));
- model.setValue ( "/root/send/cond2", getUserInfo("dutplceinstcd"));
- submit ( "TRMMO13401" );
- }
-
- if ( !isNull(model.getValue ( "/root/main/prcp/prcplist/drprcpetc4" )) && model.getValue ( "/root/main/prcp/prcplist/drprcpetc4" ) != "-" && model.getValue ( "/root/main/prcp/prcplist/drprcpetc4" ) > 0 ) {
- model.setValue ( "/root/init/drprcpetc4", "Y" );
- } else {
- model.setValue ( "/root/init/drprcpetc4", "" );
- }
-
- } else {
- model.setValue("/root/cond/currow", 0);
- model.toggle("00"); // 디폴트
- }
-
- if(isNull(prcpClsNm)) {
- cap_title.text = "처방상세설정";
- } else {
- cap_title.text = "처방상세설정 [" + prcpClsNm + "] [" + sPrcpCd + " : " + sOrgPrcpNm + "]";
- }
- model.refresh();
- }
- /**
- * @desc : 그리드 값 변경
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fGridChanged(grdObj) {
- var curRow = model.getValue("/root/cond/currow");
- if(opener.model.getValue ("/root/main/prcp/prcplist[" + curRow + "]/prcpcd") != model.getValue ("/root/main/prcp/prcplist/prcpcd") ) {
- messageBox ( "해당처방이 처방화면에서 삭제 또는 순서가 변경 되었습니다.\n처방을 다시 선택 하시기 바랍니다.", "I" );
- fInitPage("00");
- return;
- }
-
- var sPrcpClsCd = model.getValue ("/root/main/prcp/prcplist/prcpclscd");
- var sPrcpGenrFlag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- var sPid = opener.model.getValue("/root/paminfo/list/pid");
- var sOrdDd = "";
- if(sPrcpGenrFlag == "I" || sPrcpGenrFlag == "D" || sPrcpGenrFlag == "E") {
- sOrdDd = opener.model.getValue("/root/paminfo/list/indd");
- } else {
- sOrdDd = opener.model.getValue("/root/paminfo/list/orddd");
- }
- /**************************************************************************************************/
- // 공통처리 (임상연구, 기왕증, DRG인정)
- /**************************************************************************************************/
- if (grdObj.col == grdObj.colRef("anamneflag")) {
- var clincstdyflag = grdObj.valueMatrix(1, grdObj.colRef("clincstdyflag"));
- if(clincstdyflag == "Y") {
- messageBox ( "기왕증은 임상연구와 동시에 선택 할 수", "I004" );
- grdObj.valueMatrix(1, grdObj.colRef("anamneflag")) = "N";
- return;
- }
- var anamneflag = grdObj.valueMatrix(1, grdObj.colRef("anamneflag"));
- if(sPrcpGenrFlag == "I" || sPrcpGenrFlag == "D" || sPrcpGenrFlag == "E"){
- if(anamneflag == "Y"){ //기왕증이 Y로 처리된 경우에만 보조유형선택 팝업 open
- var subcretno = fGetSubcretno(sPid, sOrdDd, "anamneflag");
- model.setValue("/root/main/prcp/prcplist/subcretno", subcretno);
- if(subcretno == "0"){
- messageBox ( "환자의 부유형이 없거나 또는 선택되지 않았습니다.", "I999" );
- grdObj.valueMatrix(1, grdObj.colRef("anamneflag")) = "N";
- }
- }else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
- model.setValue("/root/main/prcp/prcplist/subcretno", "0");
- }
- } else {
- messageBox ( "외래 환자는 기왕증을 선택 할 수", "I004" );
- grdObj.valueMatrix(1, grdObj.colRef("anamneflag")) = "N";
- }
- } else if ( grdObj.col == grdObj.colref("clincstdyflag")) {
- var anamneflag = grdObj.valueMatrix(1, grdObj.colRef("anamneflag"));
- if(anamneflag == "Y") {
- messageBox ( "임상연구는 기왕증과 동시에 선택 할 수", "I004" );
- grdObj.valueMatrix(1, grdObj.colRef("clincstdyflag")) = "N";
- return;
- }
-
- fSubcretnoSet("0", grdObj);
- } else if ( grdObj.col == grdObj.colref("drgacptflag")) {
- if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "A" ) { // PCA용 약제
- messageBox ( "급여구분이 '본인부담'으로 변경 됩니다.", "I" );
- model.setValue ( "/root/main/prcp/prcplist/payflagcd", "1" );
- } else if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "B" ) { // 미용성형
- messageBox ( "급여구분이 '비급여'로 변경 됩니다.", "I" );
- model.setValue ( "/root/main/prcp/prcplist/payflagcd", "2" );
- }
- }
-
- /**************************************************************************************************/
- // 처방 종류별 처리
- /**************************************************************************************************/
- if(sPrcpClsCd == "03") { // 식이 처방
- /**************************************************************************************************/
- // 식이 처방
- /**************************************************************************************************/
- } else if(sPrcpClsCd == "A2" || sPrcpClsCd == "A4" || sPrcpClsCd == "A6") { // 약 경구, 외용, 주사
- /**************************************************************************************************/
- // 약 경구, 외용, 주사
- /**************************************************************************************************/
- if ( grdObj.col == grdObj.colref("prnprcpflag")) {
- if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) == "Y" ) {
- //PRN 체크시 drugmastspec 의 34번째 컬럼으로 그 가능여부를 따져 블로킹 및 사유, 횟수를
- //입력받는 팝업을 띄워준다 . 2010-01-02 by LYJ
- var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
- var prnl = getArrayData ( drugmastspec, 0, 33, "^", "|" );
- if ( prnl == "N" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ){
- messageBox ( "PRN 지정이 불가능한 처방입니다." , "E" );
- model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" )
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
-
- if(sPrcpClsCd == "A6") {
- ipt_a6_prcpdelivefact.disabled = false;
- cap_a6_prn.visible = false;
- cap_a6_prntime.visible = false;
- cap_a6_prnresncmt.visible = false;
- cap_a6_prnterm.visible = false;
- ipt_a6_prntime.visible = false;
- ipt_a6_prnresncmt.visible = false;
- ipt_a6_prnterm.visible = false;
- cob_a6_prnprcpresncd.visible = false;
- } else {
- ipt_a2_prcpdelivefact.disabled = true;
- cap_a2_prn.visible = false;
- cap_a2_prntime.visible = false;
- cap_a2_prnresncmt.visible = false;
- cap_a2_prnterm.visible = false;
- ipt_a2_prntime.visible = false;
- ipt_a2_prnresncmt.visible = false;
- ipt_a2_prnterm.visible = false;
- cob_a2_prnprcpresncd.visible = false;
- }
- } else if (prnl =="Y"){
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
- //20090115 마정민 수정 PRN처방 1회만 되게 수정
- if ( model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
- messageBox ( "PRN 처방의 횟수는 1만 가능합니다. 1회로 수정하겠습니다." , "E" );
- var prcptims = model.getValue ("/root/main/prcp/prcplist/prcptims" );
- //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
- var prcpqty = model.getValue ( "/root/main/prcp/prcplist/prcpqty" );
- var prcpvol = model.getValue ( "/root/main/prcp/prcplist/prcpvol" );
- if ( prcptims != "0" && model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) {
- prcpqty = (eval(prcpqty)*1000/eval(prcptims));
- prcpvol = (eval(prcpvol)*1000/eval(prcptims));
- model.setValue ( "/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
- model.setValue ( "/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
- }
- model.setValue ( "/root/main/prcp/prcplist/prcptims", "1" );
- if ( sPrcpClsCd == "A2" ) {
- fBaseMthd(1);
- }
- }
- // 하드코드 173번의 적용여부와 CP,항암프로토콜,처방메인의 구분을 위해 화면코드를 가져와 팝업 띄우기 여부를 결정한다. 2010-01-02 by LYJ
- if(model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y") {
- var xpt = window.screenleft + 50;
- var ypt = window.screenTop - 400;
- var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- modal("SPMMO19200",mon,xpt, ypt, "SPMMO19200", "/root/tmp/prnresncd", "/root/main/prcp/prcplist/prnresncd", "sysmenu:hidden;", false );
- var SPMMO19200_prnNum = getParameter("SPMMO19200_prnNum");
- var SPMMO19200_resncd = getParameter("SPMMO19200_resncd");
- var SPMMO19200_resncmt = getParameter("SPMMO19200_resncmt");
- var SPMMO19200_resnnm = getParameter("SPMMO19200_resnnm");
- var SPMMO19200_prnTerm = getParameter("SPMMO19200_prnTerm");
- var resnyn = getParameter("SPMMO19200_rtn1");
- if( resnyn == "N" ){
- model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" );
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
- model.setValue ( "/root/main/prcp/prcplist/drprcpetc6", "-" );
- if(sPrcpClsCd == "A6") {
- ipt_a6_prcpdelivefact.disabled = false;
- cap_a6_prn.visible = false;
- cap_a6_prntime.visible = false;
- cap_a6_prnresncmt.visible = false;
- cap_a6_prnterm.visible = false;
- ipt_a6_prntime.visible = false;
- ipt_a6_prnresncmt.visible = false;
- ipt_a6_prnterm.visible = false;
- cob_a6_prnprcpresncd.visible = false;
- } else {
- ipt_a2_prcpdelivefact.disabled = false;
- cap_a2_prn.visible = false;
- cap_a2_prntime.visible = false;
- cap_a2_prnresncmt.visible = false;
- cap_a2_prnterm.visible = false;
- ipt_a2_prntime.visible = false;
- ipt_a2_prnresncmt.visible = false;
- ipt_a2_prnterm.visible = false;
- cob_a2_prnprcpresncd.visible = false;
- }
- } else if (resnyn == "Y") {
- var Sprnprcpdtl = SPMMO19200_prnNum + "|" + SPMMO19200_resncd +"|" + SPMMO19200_resncmt + "|" + SPMMO19200_prnTerm;
- model.setValue ( "/root/main/prcp/prcplist/drprcpetc6" , Sprnprcpdtl);
- model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "Y" );
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
- if(SPMMO19200_prnTerm == "") {
- model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt);
- }else {
- model.setValue ("/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt + ", PRN간격 : " + SPMMO19200_prnTerm);
- }
-
- model.setValue("/root/main/temp/prntms", SPMMO19200_prnNum);
- model.setValue("/root/main/temp/prnterm", SPMMO19200_prnTerm);
- model.setValue("/root/main/temp/prnresncmt", SPMMO19200_resncmt);
- model.setValue("/root/main/temp/prnprcpresncd", SPMMO19200_resncd);
-
- if(sPrcpClsCd == "A6") {
- ipt_a6_prcpdelivefact.disabled = true;
- cap_a6_prn.visible = true;
- cap_a6_prntime.visible = true;
- cap_a6_prnresncmt.visible = true;
- cap_a6_prnterm.visible = true;
- ipt_a6_prntime.visible = true;
- ipt_a6_prnresncmt.visible = true;
- ipt_a6_prnterm.visible = true;
- cob_a6_prnprcpresncd.visible = true;
- } else {
- ipt_a2_prcpdelivefact.disabled = true;
- cap_a2_prn.visible = true;
- cap_a2_prntime.visible = true;
- cap_a2_prnresncmt.visible = true;
- cap_a2_prnterm.visible = true;
- ipt_a2_prntime.visible = true;
- ipt_a2_prnresncmt.visible = true;
- ipt_a2_prnterm.visible = true;
- cob_a2_prnprcpresncd.visible = true;
- }
- }
- }
- }
- } else {
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
-
- if(sPrcpClsCd == "A6") {
- ipt_a6_prcpdelivefact.disabled = true;
- cap_a6_prn.visible = true;
- cap_a6_prntime.visible = true;
- cap_a6_prnresncmt.visible = true;
- cap_a6_prnterm.visible = true;
- ipt_a6_prntime.visible = true;
- ipt_a6_prnresncmt.visible = true;
- ipt_a6_prnterm.visible = true;
- cob_a6_prnprcpresncd.visible = true;
- } else {
- ipt_a2_prcpdelivefact.disabled = true;
- cap_a2_prn.visible = true;
- cap_a2_prntime.visible = true;
- cap_a2_prnresncmt.visible = true;
- cap_a2_prnterm.visible = true;
- ipt_a2_prntime.visible = true;
- ipt_a2_prnresncmt.visible = true;
- ipt_a2_prnterm.visible = true;
- cob_a2_prnprcpresncd.visible = true;
- }
- }
- } else if ( grdObj.col == grdObj.colref("hosinprcpresncd")) { //원내처방 사유를 선택해서 처방화면의 원내처방 사유랑 같은 것이 있으면 모두 그것으로 바꿈
- if ( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "00" ) {
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
- } else {
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
- }
- if ( opener.model.getValue ( "/root/usge" ) == "prcp" ) {
- //약속처방, 지시처방에서는 되면 안됨
- var hosinprcpresncd = model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" );
- //by sonjy 20081016 원외요구 사유 처리
- if( hosinprcpresncd == "90" ){
- fChkHosInResnCd(grdObj);
- return ;
- }
-
- var openerHosinprcpresncd = opener.model.getValue ( "/root/init/hosinprcpresncd/P0034[cdid='" + hosinprcpresncd + "']/cdid" );
- if ( !isNull(openerHosinprcpresncd) && hosinprcpresncd != "00" ) {
- if ( messageBox ( "모든 약,주사 처방에 같은 원내처방 사유를", "Q009" ) == "6" ) {
- opener.model.setValue ( "/root/init/hosinprcpresncd", openerHosinprcpresncd );
- fChngHosinPrcpResn("child", openerHosinprcpresncd);
- opener.model.refresh();
- } else {
- //아니오를 선택할 경우 변경전 데이터로 돌린다.
- var bfhosinprcpresncd = model.getValue ( "/root/init/bfhosinprcpresncd" );
- if ( bfhosinprcpresncd == "00" ) {
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
- } else {
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
- }
- model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", bfhosinprcpresncd );
- grdObj.rebuild();
- return;
- }
- }
- model.setValue ( "/root/init/bfhosinprcpresncd", hosinprcpresncd );
- }
- } else if ( grdObj.col == grdObj.colref("erprcpflag")) {
- if ( model.getValue ( "/root/main/prcp/prcplist/erprcpflag" ) == "Y") {
- if (model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
- messageBox ( "응급 처방의 횟수는 1만 가능합니다. 1회로 수정하겠습니다." , "E" );
-
- var prcptims = model.getValue("/root/main/prcp/prcplist/prcptims" );
- var prcpqty = model.getValue("/root/main/prcp/prcplist/prcpqty" );
- var prcpvol = model.getValue("/root/main/prcp/prcplist/prcpvol" );
-
- if ( prcptims != "0" && model.getValue("/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) { //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
- prcpqty = (eval(prcpqty)*1000/eval(prcptims));
- prcpvol = (eval(prcpvol)*1000/eval(prcptims));
- model.setValue ("/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
- model.setValue ("/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
- }
- model.setValue("/root/main/prcp/prcplist/prcptims", "1" );
- }
-
- if ( sPrcpClsCd == "A2" ) { // 디폴트 용법 셋팅
- fBaseMthd(1);
- }
- } else { //응급 체크 해제시 지금복용 용법에서 기본용법으로 변경
- var prcptims = model.getValue("/root/main/prcp/prcplist/prcptims" );
- fBaseMthd(prcptims);
- }
-
- } else if ( grdObj.col == grdObj.colref("powdflag") && model.getValue("/root/main/prcp/prcplist/powdflag" ) == "Y" ) {
- //20090218 마정민 수정 산제불가, 산제주의시 대체처방
- var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec" );
- var sPowdImpsi = getArrayData(drugmastspec + "^", 0, 19, "^", "|" ); // 산제불가 여부
- if(sPowdImpsi == "1" || sPowdImpsi == "2" ) {
- opener.javascript.clearParameter ( "SPMMB10100_chkyn" );
-
- if ( sPowdImpsi == "2" ) { //산제불가
- opener.javascript.fAltDrug ( curRow, "4" );
- } else if ( sPowdImpsi == "1" ) { //산제주의
- opener.javascript.fAltDrug ( curRow, "4" );
- }
-
- //확인을 눌렀을 경우. 단 선택된 대체약이 있을 때만 SPMMB10100_chkyn = Y 처리해 준다.
- if ( opener.javascript.getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
- var addRow = opener.grd_prcplist.rows-2;
- opener.javascript.fPrcpBuffer( 1, addRow, "/root/prcpdrag", "/root/main/prcp/prcplist" ); // 대체약 버퍼에 복사
- opener.model.removenode ( "/root/main/prcp/prcplist[" + addRow + "]" ); // 대체약 삭제
- opener.model.removenode ( "/root/main/prcp/prcplist[" + curRow + "]" ); // 기존약 삭제
- opener.model.duplicate( "/root/main/prcp", "/root/prcpdrag/prcplist", "*[" + curRow + "]"); // 기존약을 대체약으로 변경
- opener.model.setValue ( "/root/main/prcp/prcplist[" + curRow + "]/powdflag", "Y" )
- opener.model.removeNodeset ( "/root/prcpdrag/prcplist" );
- opener.javascript.makePrcpNm ( prcpNode, curRow );
- opener.model.recalculate();
- opener.model.refresh();
- opener.grd_prcplist.row = curRow;
-
- fInitPage("00");
- return;
- } else {
- if (sPowdImpsi == "1") {
- model.setValue("/root/main/prcp/prcplist/powdflag", "Y" );
- } else {
- model.setValue("/root/main/prcp/prcplist/powdflag", "N" );
- }
- }
- opener.javascript.clearParameter ( "SPMMB10100_chkyn" );
- }
- }
- } else if(sPrcpClsCd == "B2" || sPrcpClsCd == "B6") { // 진단검사 (검체검사), 핵의학 체내
- /**************************************************************************************************/
- // 진단검사 (검체검사), 핵의학 체내
- /**************************************************************************************************/
- if ( grdObj.col == grdObj.colref("diagtestconttestintvlflag")) {
- fContTest();
-
- } else if ( grdObj.col == grdObj.colref("prcptims") ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/prcptims" ) == "1" ) {
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag", "N" ) ;
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "-" );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "-" );
- } else {
- fContTest();
- }
- } else if( grdObj.col == grdObj.colRef("choiordflag") ){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_b2_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- } else if ( grdObj.col == grdObj.colref("erprcpflag")) {
- if ( model.getValue ( "/root/main/prcp/prcplist/erprcpflag" ) == "Y" ) {
- var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec" );
- if ( getArrayData ( drugmastspec + "^", 0, 8, "^", "|" ) == "N" ) {
- messageBox ( "응급이 불가한 처방입니다.", "E" );
- model.setValue ( "/root/main/prcp/prcplist/erprcpflag", "N" );
- }
- }
- } else if ( grdObj.col == grdObj.colref("prnprcpflag")) { //prn check 시 tempprcpflag 처리 부분 by sonjy 20100302
- if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) != "Y" ) {
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
- }
- }
-
- } else if(sPrcpClsCd == "B4") { // 수혈
- /**************************************************************************************************/
- // 수혈
- /**************************************************************************************************/
- if ( grdObj.col == grdObj.colRef("prcpqty") ) {
- DrugCalc ( "prcpqty" , grdObj.row);
- } else if ( grdObj.col == grdObj.colRef("irflag") ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/irflag" ) == "N" ) {
- model.setValue ( "/root/main/prcp/prcplist/irpayflag", "N" );
- rdo_b4_irpayflag.disabled = true;
- } else {
- model.setValue ( "/root/main/prcp/prcplist/irpayflag", "0" );
- rdo_b4_irpayflag.disabled = false;
- }
- }
- } else if(sPrcpClsCd == "C2" || sPrcpClsCd == "C6" || sPrcpClsCd == "E2") { // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
- /**************************************************************************************************/
- // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "N"){
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }else{
- btn_c2_specdrid.dispatch("DOMActivate");
- }
- }
- } else if(sPrcpClsCd == "C4") {// angio
- /**************************************************************************************************/
- // angio
- /**************************************************************************************************/
- if ( grdObj.col == grdObj.colRef("angioflagcd") ) {
- model.setValue ( "/root/main/prcp/prcplist/tempcol1", grdObj.labelMatrix (1, grdObj.colRef("angioflagcd")));
- } else if( grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_c4_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- }
- } else if(sPrcpClsCd == "D2") { // 병리
- /**************************************************************************************************/
- // 병리
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_d2_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- }
- } else if(sPrcpClsCd == "F2") { // 재활
- /**************************************************************************************************/
- // 재활
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_f2_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- } else if(grdObj.col == grdObj.colRef("rehbprcpenddd")){
- if (model.getValue ( "/root/main/prcp/prcplist/rehbprcpenddd" ) < getCurrentDate()){
- messageBox ( "마감일이 현재보다 과거일 수 없습니다.", "I" );
- model.setValue("/root/main/prcp/prcplist/rehbprcpenddd","-");
- }
- }
- } else if(sPrcpClsCd == "G2") { // RT
- /**************************************************************************************************/
- // RT
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_g2_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- } else if(grdObj.col == grdObj.colref("prnprcpflag")) {
- if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) != "Y" ) { //prn check 시 tempprcpflag 처리 부분 by sonjy 20100302
- model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
- }
- }
- } else if(sPrcpClsCd == "H2") { // 수술
- /**************************************************************************************************/
- // 수술
- /**************************************************************************************************/
- if ( grdObj.col == grdObj.colRef("choiordflag")){ //선택진료의 클릭시
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_h2_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- } else if ( grdObj.col == grdObj.colRef("erprcpflag")){ //응급컬럼 클릭시
- var node = model.instances(0).selectSingleNode("/root/init/operation/list/opflagcd");
- if(node != null){
- model.setFocus(grdObj);
- var opflagcd = model.getValue("/root/init/operation/list/opflagcd");
- var erprcpflag = model.getValue("/root/main/prcp/prcplist/erprcpflag");
- if(opflagcd == "1" && erprcpflag == "Y"){ //수술이 정규인 경우, 응급을 클릭하면 error!!
- messageBox("정규 수술은 응급을 선택", "E001");
- model.setValue("/root/main/prcp/prcplist/erprcpflag", "N");
- model.refresh();
- return;
- }
- }
- }
- } else if(sPrcpClsCd == "H4" || sPrcpClsCd == "Z0") { // 처치, 기타
- /**************************************************************************************************/
- // 처치, 기타
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_h4_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- }
-
- } else if(sPrcpClsCd == "I2" || sPrcpClsCd == "I4") { // 마취
- /**************************************************************************************************/
- // 마취
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_i2_specdrid.dispatch("DOMActivate");
-
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- model.refresh();
- }
- }
- } else if(sPrcpClsCd == "K2") { // 치과
- /**************************************************************************************************/
- // 치과
- /**************************************************************************************************/
- if(grdObj.col == grdObj.colRef("opansflagcd")){
- model.setValue ( "/root/main/prcp/prcplist/tempcol1", grdObj.labelMatrix (1,grdObj.colRef("opansflagcd")));
- } else if(grdObj.col == grdObj.colRef("choiordflag")){
- var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
- if(choiordflag == "Y"){
- btn_k2_specdrid.dispatch("DOMActivate");
- }else{
- model.setValue("/root/main/prcp/prcplist/specdrid", "");
- }
- }
- } else if(sPrcpClsCd == "M2") {
- /**************************************************************************************************/
- // 재료
- /**************************************************************************************************/
- if ( grdObj.col == grdObj.colref("matrallsizespecid")) {
- model.setValue ( "/root/main/prcp/prcplist/tempcol1", grdObj.labelMatrix (1,grdObj.colref("matrallsizespecid")));
- }else if ( grdObj.col == grdObj.colref("erprcpflag")) {
- var erprcpflag = grdObj.valueMatrix(1, grdObj.colRef("erprcpflag"));
- if(getUserInfo("dutplceinstcd") == "031" && erprcpflag == "Y") { // 본원 재료 처방 응급 불가 하도록 수정. 공급실 채선자 요청 2012.05.08 엄영만
- messageBox ( "재료처방은 응급을 선택 할 수 없습니다.\n\n응급분출이 필요할 경우 처방 입력 후\n진료재료파트에 선불출을 요청 하십시오.", "I999" );
- grdObj.valueMatrix(1, grdObj.colRef("erprcpflag")) = "N";
- return;
- }
- } else if ( grdObj.col == grdObj.colref("prcpqty")) {
- DrugCalc ( "prcpqty", grdObj.row );
- }
-
- } else { // 디폴트
- }
-
- model.refresh();
- }
- /**
- * @desc : 그리드 더블클릭
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fGridDbClick(grdObj) {
- var curRow = model.getValue("/root/cond/currow");
- if(opener.model.getValue ("/root/main/prcp/prcplist[" + curRow + "]/prcpcd") != model.getValue ("/root/main/prcp/prcplist/prcpcd") ) {
- messageBox ( "해당처방이 처방화면에서 삭제 또는 순서가 변경 되었습니다. \n처방을 다시 선택 하시기 바랍니다.", "I" );
- fInitPage("00");
- return;
- }
-
- var bIsChanged = false; // 값 변경 여부 변경 되었을때만 반영하기 위해 추가
-
- var prcpNode = "/root/main/prcp/prcplist";
- if ( grdObj.col == grdObj.colRef("tootfact")) {
- //처방 치식 setting 시작
- var prcpNm = "";
- var tootFact = "";
- var sPrcpStr = "prcpcd▦tootfact▦rtntootfact▦rowcnt▩";
- prcpNm = model.getValue("/root/main/prcp/prcplist/prcpcd") + "▦▦";
- tootFact = model.getValue("/root/main/prcp/prcplist/tootfact") + "▦1▩";
- sPrcpStr = sPrcpStr + prcpNm + tootFact;
- setParameter("param_prcplist", sPrcpStr);
-
- var sDiagStr = "diagcd▦tootfact▦rtntootfact▦rowcnt▩";
- setParameter("param_diaglist", sDiagStr);
- modal ("SPMMO10500");
-
- if ( getParameter("rtn_useyn") == "Y" ) {
- var prow = 0;
- var ptootfact = "";
- var drow = 0;
- var dtootfact = "";
-
- var prcplen = getParameter("rtn_prcptootfact").split("▩").length;
- for ( var i=1; i < prcplen-1; i++ ) {
- prow = getArrayData (getParameter("rtn_prcptootfact"), i, 3, "▩", "▦" ); //치식이 입력될 row
- ptootfact = getArrayData (getParameter("rtn_prcptootfact"), i, 2, "▩", "▦" )//치식
- model.setValue ( "/root/main/prcp/prcplist/tootfact", ptootfact);
- bIsChanged = true;
- }
- }
- }
-
- if(bIsChanged) {
- model.refresh();
- fPrcpSetting();
- }
- }
- /**
- * @desc : 처방 상세 정보 설정
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fPrcpSetting() {
- var curRow = model.getValue("/root/cond/currow");
- if(curRow == 0) { return; }
- if(opener.model.getValue ("/root/main/prcp/prcplist[" + curRow + "]/prcpcd") != model.getValue ("/root/main/prcp/prcplist/prcpcd") ) {
- messageBox ( "해당처방이 처방화면에서 삭제 또는 순서가 변경 되었습니다. \n 처방을 다시 선택 하시기 바랍니다.", "I" );
- fInitPage("00");
- return;
- }
-
- var prcpClsCd = model.getValue ("/root/main/prcp/prcplist/prcpclscd");
- if(prcpClsCd == "") { return; }
- if(!fCheckValidation(prcpClsCd)) { return; }
- if ( opener.model.instances(0).selectNodes ("/root/prcptemp/prcplist").length == 0 ) { return; }
- opener.javascript.fPrcpDetlApp( prcpClsCd, "/root/prcptemp/prcplist", "/root/main/prcp", curRow );
-
- //M-SET 모처방인 경우, prcphopedd를 자처방에 동일하게 적용
- //2008. 07. 22 오지훈
- var prcpSetCd = model.getValue ("/root/main/prcp/prcplist/prcpsetcd" );
- var inclPrcpNo = model.getValue ("/root/main/prcp/prcplist/inclprcpno" );
- var prcpHopeDD = model.getValue ("/root/main/prcp/prcplist/prcphopedd" );
- if(prcpSetCd == "-" && inclPrcpNo > 0){ //모처방인 경우, prcphopedd
- for(var i = 1; i <= opener.grd_prcplist.rows; i++){
- if(inclPrcpNo == opener.model.getValue ("/root/main/prcp/prcplist[" + i + "]/inclprcpno")){
- opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/prcphopedd", prcpHopeDD);
- }
- }
- }
- opener.model.recalculate();
- model.refresh();
- }
- /**
- * @desc : 처방종류별 값 유효성 체크
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fCheckValidation(prcpClsCd) {
- var bRtn = true;
-
- var sPrcpGenrFlag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
- var sPid = opener.model.getValue("/root/paminfo/list/pid");
- var sIndd = opener.model.getValue("/root/paminfo/list/indd");
-
- if(prcpClsCd == "03") {
- /**************************************************************************************************/
- // 식이
- /**************************************************************************************************/
- opener.javascript.clearParameter ( "SPMMO01700_chkcnt" )
- var cnt = 0;
- var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec" ) +"▩";
- var calcond = getArrayData (drugmastspec, 0, 0, "▩", "|" );
- if ( calcond == "2" ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/mealcalrcnts" ) == "0" ) {
- messageBox ( "선택된 열량값이", "I004" );
- bRtn = false;
- }
- } else if ( calcond == "3" ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/mealcalrcnts" ) == "0" ) {
- messageBox ( "선택된 용량값이", "I004" );
- bRtn = false;
- }
- }
-
- var mealprotcntscond = getArrayData (drugmastspec, 0, 3, "▩", "|" );
- if ( mealprotcntscond == "Y" ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/mealprotcnts" ) == "0" ) {
- messageBox ( "선택된 횟수값이", "I004" );
- bRtn = false;
- }
- }
- model.setValue ( "/root/main/prcp/prcplist/tempcol1" , grd_prcpdetl1.valueMatrix ( 0, 4 ));
- if ( model.getValue ( "/root/diet1" ) == "Y" ) {
- cnt++;
- }
- if ( model.getValue ( "/root/diet2" ) == "Y" ) {
- cnt++;
- }
- if ( model.getValue ( "/root/diet3" ) == "Y" ) {
- cnt++;
- }
- if ( cnt == 0 ) {
- messageBox ( "선택된 식이구분(조식,중식,석식,전체)이", "I004" );
- bRtn = false;
- } else {
- opener.javascript.setParameter ( "SPMMO01700_chkcnt", cnt );
- }
- if(bRtn) {
- model.setValue ( "/root/main/prcp/prcplist/tempcol9", "" );
- if ( model.getValue ( "/root/diet1" ) == "Y" ) {
- model.setValue( "/root/main/prcp/prcplist/dietprcpgenrflag", "1" );
- appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
- }
- if ( model.getValue ( "/root/diet2" ) == "Y" ) {
- model.setValue( "/root/main/prcp/prcplist/dietprcpgenrflag", "2" );
- appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
- }
- if ( model.getValue ( "/root/diet3" ) == "Y" ) {
- model.setValue( "/root/main/prcp/prcplist/dietprcpgenrflag", "3" );
- appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
- }
- }
-
- } else if(prcpClsCd == "A2" || prcpClsCd == "A4" || prcpClsCd == "A6") {
- /**************************************************************************************************/
- // 약 경구, 외용, 주사
- /**************************************************************************************************/
- //마약처방인 경우, 사유 전달, 2008. 06. 12 오지훈
- var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
- var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
- var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
- if ( spcldrug == "M" && prcpdayno >= 30) {
- var clinccmtcnts = "";
- if(prcpClsCd == "A6") {
- clinccmtcnts = rdo_a6_clinccmtcnts.value;
- } else {
- clinccmtcnts = rdo_a2_clinccmtcnts.value;
- }
-
- if(clinccmtcnts == "-"){
- messageBox("30일 이상의 마약처방 사유를", "C002");
- bRtn = false;
- }
- if(clinccmtcnts == "2. 기타" && (model.getValue("/root/main/temp/clinccmtcnts")=="" || model.getValue("/root/main/temp/clinccmtcnts")=="-")){
- messageBox("30일 이상의 마약처방 사유를", "C001");
- bRtn = false;
-
- }else{
- if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){ //1. 다음 진료일까지의 기간이 30일 초가 선택
- model.setValue("/root/main/prcp/prcplist/clinccmtcnts", model.getValue("/root/main/temp/clinccmtcnts"));
- }
- }
- }
- } else if(prcpClsCd == "B2" || prcpClsCd == "B6") {
- /**************************************************************************************************/
- // 진단검사 (검체검사), 핵의학 체내
- /**************************************************************************************************/
- if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) != "N" ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec" ) == "-" ) {
- messageBox ( "입력된 연속검사값이", "I004" );
- bRtn = false;
- }
- }
- if(bRtn) {
- model.setValue ( "/root/main/prcp/prcplist/mealcalrcnts", model.getValue ( "/root/main/prcp/prcplist/prcptims" ));
- }
- } else if(prcpClsCd == "B4") {
- /**************************************************************************************************/
- // 수혈
- /**************************************************************************************************/
- //수혈적응증
- var prcphopedd = model.getValue ( "/root/main/prcp/prcplist/prcphopedd").substring(0,8);
- var prcphopeddh = model.getValue ( "/root/init/prcphopeddh" );
- var prcphopeddm = model.getValue ( "/root/init/prcphopeddm" );
- if (!isValidDateTime ( prcphopedd, "YYYYMMDD")) {
- messageBox ( "수혈예정일시가", "E016" );
- bRtn = false;
- }
- if ( eval(prcphopeddh) >= 24 ) {
- messageBox ( "수혈예정시간이", "E016" );
- bRtn = false;
- }
- if ( eval(prcphopeddm) >= 60 ) {
- messageBox ( "수혈예정분이", "E016" );
- bRtn = false;
- }
- if(bRtn) {
- prcphopeddh = prcphopeddh.toString().getLeftPad ( 2, "0" );
- prcphopeddm = prcphopeddm.toString().getLeftPad ( 2, "0" );
- model.setValue ( "/root/main/prcp/prcplist/prcphopedd", prcphopedd + prcphopeddh + prcphopeddm + "00" );
- }
- } else if(prcpClsCd == "C2" || prcpClsCd == "C6" || prcpClsCd == "E2") {
- /**************************************************************************************************/
- // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
- /**************************************************************************************************/
- var ck = model.getValue ( "/root/main/prcp/prcplist/tempcol2").substring ( 0, 2 );
- if (ck=="19"||ck=="20"||ck=="21"||ck=="22"||ck=="23"||ck=="24"||ck=="25"||ck=="26" || model.getValue ( "/root/main/prcp/prcplist/tempcol2") == "18|02|06" || model.getValue ( "/root/main/prcp/prcplist/tempcol2") == "09|01|04") {
- var clinccmtcnts = model.getValue ( "/root/main/prcp/prcplist/clinccmtcnts" );
- var prcpdelivefact = model.getValue( "/root/main/prcp/prcplist/prcpdelivefact" );
- if ((clinccmtcnts == "" || clinccmtcnts == "-") && (prcpdelivefact == "" || prcpdelivefact == "-")) {
- messageBox ( "임상소견이나 전달사항이", "E014" );
- bRtn = false;
- }
- }
- } else if(prcpClsCd == "C4") {
- /**************************************************************************************************/
- // angio
- /**************************************************************************************************/
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag ==4) {
- if ( model.getValue ( "/root/main/prcp/prcplist/angioflagcd" ) == "-" || isNull(model.getValue ( "/root/main/prcp/prcplist/angioflagcd" ))) {
- messageBox ( "Angio 구분이 입력되지" , "E007" );
- bRtn = false;
- }
- }
- } else if(prcpClsCd == "D2") {
- /**************************************************************************************************/
- // 병리
- /**************************************************************************************************/
- bRtn = true;
- } else if(prcpClsCd == "F2") {
- /**************************************************************************************************/
- // 재활
- /**************************************************************************************************/
- var trgtcdnm = model.getValue("/root/hardcode/hardcodelist/trgtcdnm");
- if (trgtcdnm == "Y") {
- if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurepartcd" ) == "-" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurepartcd" ))) {
- messageBox ( "치료부위가", "E014" );
- bRtn = false;
- }
- if ( model.getValue ( "/root/main/prcp/prcplist/prcpdirecflag" ) == "-" || isNull ( model.getValue ( "/root/main/prcp/prcplist/prcpdirecflag" ))) {
- messageBox ( "치료위치가", "E014" );
- bRtn = false;
- }
- if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ) == "0" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ))) {
- messageBox ( "치료빈도가", "E014" );
- bRtn = false;
- }
- } else if (trgtcdnm == "N") {
- if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ) == "0" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ))) {
- messageBox ( "치료빈도가", "E014" );
- bRtn = false;
- }
- } else {
- if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ) == "0" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ))) {
- messageBox ( "치료빈도가", "E014" );
- bRtn = false;
- }
- }
-
- if ( !isValidDateTime ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpenddd" ), "YYYYMMDD")) {
- messageBox ( "마감일이 유효한 날짜가 아닙니다.", "E" );
- bRtn = false;
- }
-
- if(bRtn) {
- model.setValue ( "/root/main/prcp/prcplist/tempcol1", grd_f2_prcplist.labelMatrix ( 1, grd_f2_prcplist.colRef("rehbprcpcurepartcd") ));
- }
- } else if(prcpClsCd == "G2") {
- /**************************************************************************************************/
- // RT
- /**************************************************************************************************/
- bRtn = true;
- } else if(prcpClsCd == "H2") {
- /**************************************************************************************************/
- // 수술
- /**************************************************************************************************/
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ) == "-" || isNull(model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ))) {
- messageBox ( "수술유형이 입력되지" , "E007" );
- bRtn = false;
- }
- }
-
- if(bRtn) {
- model.setValue ( "/root/main/prcp/prcplist/tempcol1", grd_h2_prcplist.labelMatrix ( 1, grd_h2_prcplist.colRef("opansflagcd") ));
- }
- } else if(prcpClsCd == "H4" || prcpClsCd == "Z0") {
- /**************************************************************************************************/
- // 처치, 기타
- /**************************************************************************************************/
- var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
- if(sPrcpCd == "PE100" ) {// 신체억제대
- var sPrcpDeliveFact = model.getValue("/root/main/prcp/prcplist/prcpdelivefact");
- if (sPrcpDeliveFact == "" || sPrcpDeliveFact =="-") {
- messageBox ( "전달사항을 반드시 입력해야 합니다.", "E" );
- bRtn = false;
- }
- } else {
- bRtn = true;
- }
- } else if(prcpClsCd == "I2" || prcpClsCd == "I4") {
- /**************************************************************************************************/
- // 마취
- /**************************************************************************************************/
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag == 1 ) {//처방필수 입력구분이 마취시간일 경우는 마취시간을 체크한다.
- var earncls = model.getValue ( "/root/main/prcp/prcplist/tempcol2" );
- if ( earncls != "04|01|00" && earncls != "05|01|00" ) {
- var opansflagcd = model.getValue ( "/root/main/prcp/prcplist/opansflagcd" );
- if ( opansflagcd == "-" ) {
- messageBox ( "마취구분이","I004" );
- bRtn = false;
- }
- }
-
- var fromdd = model.getValue ( "/root/ansttm/anstfromdd" );
- var todd = model.getValue ( "/root/ansttm/ansttodd" );
- if ( eval(fromdd) > eval(todd) ) {
- messageBox ( "시작일이 종료일 보다 클수", "I004" );
- bRtn = false;
- }
-
- var fromh = model.getValue ( "/root/ansttm/anstfromh" );
- var formm = model.getValue ( "/root/ansttm/anstfromm" );
- var tomh = model.getValue ( "/root/ansttm/ansttoh" );
- var totim = model.getValue ( "/root/ansttm/ansttom" );
-
- if (isNull(fromh)) {
- messageBox ( "시작시간을 입력해 주십시오.", "E" );
- model.setfocus( "ipt_i2_anstfromh" );
- bRtn = false;
- }
- if (isNull(formm)) {
- messageBox ( "시작분을 입력해 주십시오.", "E" );
- model.setfocus( "ipt_i2_anstfromm" );
- bRtn = false;
- }
- if (isNull(tomh)) {
- messageBox ( "종료시간을 입력해 주십시오.", "E" );
- model.setfocus( "ipt_i2_ansttoh" );
- bRtn = false;
- }
- if (isNull(totim)) {
- messageBox ( "종료분을 입력해 주십시오.", "E" );
- model.setfocus( "ipt_i2_ansttom" );
- bRtn = false;
- }
- if ( eval(fromh) >= 24 ) {
- messageBox ( "시작시간이 잘못 입력되었습니다.", "E" );
- bRtn = false;
- }
- if ( eval(formm) >= 60 ) {
- messageBox ( "시작분이 잘못 입력되었습니다.", "E" );
- bRtn = false;
- }
- if ( eval(tomh) >= 24 ) {
- messageBox ( "종료시간이 잘못 입력되었습니다.", "E" );
- bRtn = false;
- }
- if ( eval(totim) >= 60 ) {
- messageBox ( "종료분이 잘못 입력되었습니다.", "E" );
- bRtn = false;
- }
- tomh = eval(model.getValue ( "/root/ansttm/ansttoh" )) + getDateInterval ( fromdd, todd ) * 24;
- var fromtotm = eval ( fromh ) * 60 + eval ( formm );
- var tototm = eval( tomh ) * 60 + eval ( totim );
- var ansttmh = parseInt(( tototm - fromtotm ) / 60);
- var ansttmm = ( tototm - fromtotm ) % 60;
- ansttmh = ansttmh.toString().getLeftPad ( 2, "0" );
- ansttmm = ansttmm.toString().getLeftPad ( 2, "0" );
- model.setValue ( "/root/main/prcp/prcplist/ansttm", ansttmh + ansttmm);
- if ( model.getValue ( "/root/main/prcp/prcplist/ansttm" ) == "0000" || eval(model.getValue ( "/root/main/prcp/prcplist/ansttm" )) < 0 ) {
- messageBox ( "마취시간 입력이 잘못되었습니다.", "E" );
- bRtn = false;
- }
-
- if(bRtn) {
- var fromipt = model.getValue("/root/ansttm/anstfromdd") + model.getValue("/root/ansttm/anstfromh").getLeftPad(2, "0") + model.getValue("/root/ansttm/anstfromm").getLeftPad( 2, "0" );
- var toipt = model.getValue("/root/ansttm/ansttodd") + model.getValue("/root/ansttm/ansttoh").getLeftPad(2, "0") + model.getValue("/root/ansttm/ansttom").getLeftPad( 2, "0" );
-
- model.setValue("/root/main/prcp/prcplist/clinccmtcnts", fromipt + "|" + toipt);
- }
- }
- } else if(prcpClsCd == "K2") {
- /**************************************************************************************************/
- // 치과
- /**************************************************************************************************/
- var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
- if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) {
- if ( model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ) == "-" || isNull(model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ))) {
- messageBox ( "수술유형이 입력되지" , "E007" );
- bRtn = false;
- }
- }
- if(bRtn) {
- model.setValue("/root/main/prcp/prcplist/tempcol1", grd_k2_prcplist.labelMatrix(1, grd_k2_prcplist.colRef("opansflagcd") ));
- }
- } else if(prcpClsCd == "M2") {
- /**************************************************************************************************/
- // 재료
- /**************************************************************************************************/
- if ( model.getValue("/root/init/drprcpetc4" ) == "Y" ) {
- model.setValue("/root/main/prcp/prcplist/drprcpetc4", model.getValue("/root/main/prcp/prcplist/prcpqty"));
- } else {
- model.setValue("/root/main/prcp/prcplist/drprcpetc4", "");
- }
- model.setValue ( "/root/main/prcp/prcplist/drugmthdspccdnm", grd_m2_prcplist.labelMatrix( 1, grd_m2_prcplist.colref("matrallsizespecid") ));
- } else { // 디폴트
- bRtn = false;
- }
-
- if(bRtn && prcpClsCd != "03") { // 식이처방은 위에서 처리함.
- appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
- }
- return bRtn;
- }
- /**
- * @desc : 원외예외사유 setting check
- * @author : sonjy 2008-09-12
- */
- function fChkHosInResnCd(grdObj){
- var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
- var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
- var prcpclscd = model.getValue( "/root/main/prcp/prcplist/prcpclscd"); // 처방종류
- var drugmastspec = model.getValue( "/root/main/prcp/prcplist/drugmastspec"); //약품정보
- var spcldrug = getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ); //마약구분
- var selfinjyn = getArrayData ( drugmastspec + "^", 0, 20, "^", "|" ); //자가주사가능여부
- var hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" ); //약품원내외구분 //SON0930 약품마스터의 원내외구분이 주사및 환자사유에 우선한다. 배성미 선생님 요청 .
-
- var g3yn =""; //응급 g3여부
- if( prcpgenrflag == "E" && opener.model.getValue ( "/root/init/erresn" ) != "G3" && model.getValue( "/root/main/prcp/prcplist/prcpkindcd") == "60") {
- g3yn = "N";
- }
- //입원은 disable 임으로 select 할 이유가 없다.
- if ( model.getValue ( "/root/main/prcp/prcplist/hosinhosoutflag" ) == "I") { //원내를 선택하면
- if( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "90" ) { //원외요구시 => by sonjy 20081016
- // 마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
- // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
- if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (hosinflag == "I") || (prcpclscd =="A6" && (spcldrug == "M" || spcldrug == "H")) ) { //SON0930
- messageBox("마약, 주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
- model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", model.getValue ( "/root/init/bfhosinprcpresncd" ));
- grd_prcpdetl2.rebuild();
- return ;
- } //마약, MSET은 원외불가. by sonjy 20080912 end
- } else if ( hosinprcpresncd != "00" && g3yn == "" ) { //원무에 있는 원내처방 사유 코드가 있다면
- if( hosinflag == "O" && prcpgenrflag == "O") { //SON0930 약품 원내외 구분 적용.
- messageBox("원외로만 처방이 가능한 약품", "I009");
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
- model.refresh();
- return ;
- }
- model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", hosinprcpresncd );
- } else { //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. start
- if( hosinflag == "O" && ( prcpgenrflag == "O" || g3yn == "N" ) ) { //SON0930 약품 원내외 구분 적용.
- messageBox("원외로만 처방이 가능한 약품", "I009");
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
- model.refresh();
- return ;
- }
- model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", getArrayData ( drugmastspec, 0, 12, "^", "|" ) );
- }
- grdObj.colDisabled(grdObj.colref("hosinprcpresncd")) = false; //원내처방 사유코드를 입력할 수 있다.
- //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. end
- } else { //원외를 선택하면
- // 마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
- // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
- if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (hosinflag == "I") || (prcpclscd =="A6" && (spcldrug == "M" || spcldrug == "H")) ) { //SON0930
- messageBox("마약, 주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
- model.refresh();
- return ;
- } //마약, MSET은 원외불가. by sonjy 20080912 end
-
- model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
- model.setValue("/root/main/prcp/prcplist/hosinprcpresncd","00");
- grdObj.colDisabled(grdObj.colref("hosinprcpresncd")) = true; //원내처방 사유코드를 입력할 수는 없다.
- }
- }
- /**
- * @desc : 진단검사 검사 간격 설정
- */
- function fContTest () {
- if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "N" || model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "5" ) {
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = true;
- btn_b2_diagtestconttestcdspec.disabled = true;
- } else {
- grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = false;
- btn_b2_diagtestconttestcdspec.disabled = false;
- }
- var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
- var diagtestconttestcdspec = "";
- var drugrateqty = "";
- if ( isNull(prcptims)) {
- model.setValue ( "/root/main/prcp/prcplist/prcptims", 1 );
- prcptims = 1;
- }
- if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "N" ) {
- model.setValue ( "/root/main/prcp/prcplist/prcptims", 1 );
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "-" );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "-" );
-
- } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "5" ) {
- model.setValue ( "/root/main/prcp/prcplist/prcptims", 2 );
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "식전(0분), 식후(120분)" );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "1,2" );
-
- } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "3" ) { //횟수
- for ( var i = 0; i < prcptims; i++ ) {
- diagtestconttestcdspec = diagtestconttestcdspec + i + "회,";
- drugrateqty = drugrateqty + i + ",";
- }
- diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
- drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
- } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "4" ) { //일수
- for ( var i = 0; i < prcptims; i++ ) {
- diagtestconttestcdspec = diagtestconttestcdspec + i + "일,";
- drugrateqty = drugrateqty + i + ",";
- }
- diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
- drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
- } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "1" ) { //분
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "-" );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "-" );
-
-
- for ( var i = 0; i < prcptims; i++ ) {
- diagtestconttestcdspec = diagtestconttestcdspec + i*30 + "분,";
- drugrateqty = drugrateqty + i*30 + ",";
- }
- diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
- drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
-
- } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "2" ) { //시간
- for ( var i = 0; i < prcptims; i++ ) {
- diagtestconttestcdspec = diagtestconttestcdspec + i + "시간,";
- drugrateqty = drugrateqty + i + ",";
- }
- diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
- drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
- model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
- model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
- }
- model.recalculate();
- model.refresh();
- }
- /**
- * @desc : 전달사항 팝업
- * @author :
- */
- function fPopPrcpDeliveFact(){
- var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
- var sPrnPrcpFlag = model.getValue("/root/main/prcp/prcplist/prnprcpflag"); // PRN 처방여부
- if(sPrnPrcpFlag == "Y") {
- messageBox ( "PRN처방은 전달사항을 수정할수 없습니다.", "E" );
- } else {
- if(sPrcpCd == "PE100" ) {// 신체억제대
- clearParameter("SPMMB02700_cond1");
- clearParameter("SPMMB02700_rtn");
- clearParameter("SPMMB02700_prcpdelivefact");
-
- setParameter ( "SPMMB02700_cond1", "00" ); // 신체억제대
- fPrcpModal ( "SPMMB02700", 50, -200 );
-
- if(getParameter("SPMMB02700_rtn") == "Y") {
- model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", getParameter("SPMMB02700_prcpdelivefact"));
- }
- } else {
- clearParameter("SPMMB02200_clinccmt")
- setParameter("SPMMB02200_cond2", "3");
- fPrcpModal("SPMMB02200", 50, -260 );
- model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", getParameter ( "SPMMB02200_clinccmt" ));
- clearParameter("SPMMB02200_clinccmt");
- }
- }
-
- model.refresh();
- fPrcpSetting();
- }
- /**
- * @desc : 임상소견 팝업
- * @author :
- */
- function fPopClincCmtCnts(){
- clearParameter("SPMMB02200_clinccmt")
- setParameter ( "SPMMB02200_cond2", "2" );
- fPrcpModal ( "SPMMB02200", 50, -260 );
- model.setValue ( "/root/main/prcp/prcplist/clinccmtcnts", getParameter ( "SPMMB02200_clinccmt" ));
- clearParameter("SPMMB02200_clinccmt");
- model.refresh();
- fPrcpSetting();
- }
- /**
- * @desc : 시행부서 팝업
- * @author :
- */
- function fPopSrchExecDept(){
- fPrcpModal("SPMMB02500", 50, -500 );
- model.refresh();
- fPrcpSetting();
- }
- /**
- * @desc : 선택진료의 팝업
- * @author :
- */
- function fPopSrchSpecDrId(){
- if (!fChoiOrdChk()) return; //20110112 mjm 추가 선택진료 가능여부 체크
- fChgChoiDr("pop", 1, 600, 300);
- model.refresh();
- fPrcpSetting();
- }
- /**
- * @desc : 연속검사 팝업
- * @author :
- */
- function fPopDiagTestContTestCdSpec(){
- fPrcpModal ( "SPMMO02700", 50, -200 );
- model.refresh();
- fPrcpSetting();
- }
|