12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249 |
- /* ---------------------------------------------------------------------
- 수술마취임시,확정,간호처방 저장 (SMMNP01802.xfm - JScript )
- - Version :
- 1) : Ver.1.00.01
- : Create By Francis Choi
- : 2007.10.17 03:42
- ---------------------------------------------------------------------- */
- //----------------------------------------------
- // Cart 물품 저장
- //----------------------------------------------
- var ProcCartStat = ""; // Cart 저장 STATUS
- var MnphctosData = ""; // CaseCart물품의 임시처방내역(CCR에서확정)
- var MnphccolData = ""; // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- // ---------------------------------------------
- // Cart 물품 처방저장에 사용되는 Variable
- //----------------------------------------------
- var sPrcpPid = ""; // 환자번호
- // --------------------------------------------------
- // 지원부서 처방저장 Interface - 공통 사용
- // --------------------------------------------------
- // 저장구분정보(saveFlagInfoVO) -> "saveFlagInfo"
- // --------------------------------------------------
- var FlagInfoData = "";
- var FlagInfoHeader = "";
- // --------------------------------------------------
- // 저장등록정보(saveRgstInfoVO) ->" saveRgstInfo"
- // --------------------------------------------------
- var RgstInfoData = "";
- var RgstInfoHeader = "";
- // --------------------------------------------------
- // 저장처방정보(savePrcpInfoVO) ->" savePrcpInfo"
- // --------------------------------------------------
- var PrcpInfoData = "";
- var PrcpInfoHeader = "";
- // --------------------------------------------------
- // 저장처방정보(saveSignInfoVO) ->" saveSignInfo"
- // --------------------------------------------------
- var SignInfoData = "";
- var SignInfoHeader = "";
- // 저장처방정보(savePrcpInfoVO) 자료를 구성한다.
- var PrcpData = "";
- var PrcpData0101 = "";
- var PrcpData0205 = "";
- var PrcpData0614 = "";
- var PrcpData1520 = "";
- var PrcpData2122 = "";
- //var PrcpData2340 = "";
- var PrcpData2324 = "";
- var PrcpData2528 = "";
- var PrcpData2938 = "";
- var PrcpData3940 = ""; //39:원내원외 구분
- var PrcpData4141 = "";
- var PrcpData4243 = "";//처방구분
- var PrcpData44 = "";//후인증필드
- var PrcpData4547 = "";
- //var PrcpData4247 = "";
- var PrcpData4848 = "";
- var PrcpData4949 = "";
- var PrcpData5063 = "";
- var PrcpData64 = "";
- var PrcpData65 = "";//용법기타
- var PrcpData66 = "-"; //수술구분 opansflagcd 2008-10-15 오후 5:09:33 taebum add
- var PrcpData67 = ""; //인증데이터 생성시 필요 데이터 추가
- var PrcpData68 = ""; //처방명
- var PrcpData69 = ""; //처방분류코드 + 투여비율
- var PrcpData7172 = ""; //후인증구분 + 후인증 의사
- var PrcpDate = getCurrentDate();; // 처방일자
-
- var PrcpData73 = ""; //부유형(subcretno)
-
- var PrcpData52 = "" //calcflag :계산구분
- var PrcpData2528_R = "";
- var PrcpData3940_R = "";
- //--------End of Cart 물품 처방저장에 사용되는 Variable
- var SvOprsrvno = ""; // 01 수술예약(의뢰)번호 (년도 + 일련번호)
- var SvCartgubn = ""; // 02 Cart구분 (O:수술,A:마취)
- var SvOrdseq = ""; // 03 처방순번
- var SvInstcd = ""; // 04 병원기관코드(코드정의서 Z0007 참조)
- var SvGoodcd = ""; // 05 물품코드
- var SvAllsizespecid = ""; // 06 ALLSIZE규격ID
- var SvGoodcls = ""; // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- var SvGoodqty = ""; // 08 물품수량
- var SvAddreductqty = ""; // 09 가감수량
- var SvPayflagcd = ""; // 10 급여구분코드 (코드정의서 M0029 참조)
- var SvOldPayflagcd = ""; // 10_1 조회시 급여구분코드 (코드정의서 M0029 참조)
- var SvOproomcd = ""; // 11 수술실코드
- var SvRoomdeptcd = ""; // 12 수술방부서코드 01/17 추가
- var SvPrcpmemo = ""; // 13 처방수정MEMO(사유) 01/17 추가
- var SvPrcpdd = ""; // 14 처방일자
- var SvPrcpno = ""; // 15 처방일자별 일련번호
- var SvPrcphistno = ""; // 16 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
- var SvPid = ""; // 17 등록번호
- var SvReqtabcls = ""; // 18 테이블구 T:임시처방, C: 확정처방
- var SvRowno = ""; // 19 줄번호
- var SvRecflag = ""; // 20 U:수정,I:입력, D:삭제 구분
- var SvDrugMthdSpccd = ""; // 21 투여방법 및 검체코드
- var SvDrugMthdSpcEtc = ""; // 65 예외용법 설명
- var svOpansflagcd = "-"; // 66 수술마취구분
- var sSignNo = "-"; //인증번호
- var sGrupcd = "-"; //그룹코드
- //2009-07-20 K.J.M 산정여부 추가
- var sCalCulYn = "";
- //2009-08-18 K.J.M 수가대상여부, 수가코드
- var sInsuYn = "";
- var sCalcscorcd = "";
- //2009-10-16 K.J.M 한번 처방난 처방 재고 변동 막기 위한 변수
- var sPrcpno = "";
- var sPid = "";
- //2009-10-19 K.J.M 가납물품이면서 소모품이나 기구로 등록된 물품 CSR로직 안타도록 수정
- var sPurcflag = "";
- //2009-12-29 K.J.M 종료된 경우 처방 못함
- var sTodd = "";
- var sLisTodd = "";
- var sSpcmTodd = "";
- //2010-05-06 K. J. M 산정, 비산정 처방 카운트 변수
- var sCalCount = 0;
- var sNonCalCount = 0;
- var sTGoodcd = "";
- var initCnt = 0;
-
- //================ 2008-11-28 오후 2:49:45 taebum
- // 일반청구인 물품은 처방으로 보내지 않고 direct로 재료 집계 테이블로 저장
- var sMrsmHeader = "";
- var sMrsmData = "";
- var sMrsmInfoData = "";
- var sReqmthd = ""; //청구 방법
- var ordtype = ""; //환자진료형태(외래 O, 응급 E ,입원 I, D:DSC)
- var indd = ""; //입원일자
- var orddd = ""; //진료일자
- var ordindd = ""; //진료일자(외래일 경우 orddd, 입원일 경우 indd)
- var cretno = ""; //환자 일자별 일련번호
- //var sMrsmPgenrdd = ""; // 발생일자(시스템일자)
- //var sMrsmPgenrno = ""; // 발생번호 - 발생일자에 대한 일련번호
- //var sMrsmPinstcd = ""; // 기관코드
- //var sMrsmPpid = ""; // 등록(환자)번호
- //var sMrsmPorddd = ""; // 진료(입원)일자
- //var sMrsmPcretno = ""; // 생성번호
- //var sMrsmPorddeptcd = ""; // 진료과
- //var sMrsmPorddrid = ""; // 진료의
- //var sMrsmPprcpgenrflag = ""; // 처방발생구분 (코드정의서 M0010 참조) : oppatflagcd
- //var sMrsmPprcpdd = ""; // 처방일자(외래:원무의 진료일자와 동일, 입원:입원일자 이후의 처방일자, 응급:입원과 동일하게 처리)
- //var sMrsmPexecprcpuniqno = "0000000000"; // default 수술실에서 보낼경우 Setting
- //var sMrsmPcalcscorcd = ""; // 수가코드
- //var sMrsmPprcpflag = ""; // 처방구분 (O:정상, D:삭제- 수정이나 삭제 일경우)
- //var sMrsmPexecprcpqty = ""; // 실시처방수량
- //var sMrsmPexecprcptims = "1"; // 실시처방횟수
- //var sMrsmPexecprcpdayno = "1"; // 실시처방일수
- //var sMrsmPexecprcptotqty = ""; // 실시처방총수량
- //var sMrsmPallsizespecid = "-"; // AllSize규격ID
- //var sMrsmPissdeptcd = ""; // 발행부서 - 약품 및 재료에 대한 전달위치
- //var sMrsmPwardcd = ""; // 병동
- //var sMrsmProomcd = ""; // 병실
- //var sMrsmPpamexecdd = ""; // 원무실시일자
- //var sMrsmPexecdd = ""; // 처방에 대한 실시일자 - 모든 Part 공통 사용
- //var sMrsmPexectm = ""; // 처방에 대한 실시시간 - 모든 Part 공통 사용
- //var sMrsmPexecrid = ""; // 처방에 대한 실시자ID - 모든 Part 공통 사용
- //var sMrsmPsumflag = "N"; // 실시처방에 대한 집계구분(Y/N)
- //var sMrsmPsumdt = "0000000000000"; // 실시처방에 대한 집계일시
- // -----------------------------------------------------
- // 버튼 Action에 대한 처리구분 찾기
- // -----------------------------------------------------
- // X X X
- // - 1: Cart상태 1:임시,2:저장,3:불출,4:처방,5:확정,9:반납
- // - 2: 버튼구분(테이블구분) T:Cart처방저장(MNPHCTOS), C:임시처방저장(MNPHCCOL), P:확정처방저장(MNPHCCOL+원무)
- // - 3: 입력구분 I:입력, U:수정, D:삭제(데이타의 구분)
- // -----------------------------------------------------
- var tActionCode = "1TI,2TI,3TI,4TI,5TI,9TI," // 1
- + "1TU,2TU,3TU,4TU,5TU,9TU," // 2
- + "1TD,2TD,3TD,4TD,5TD,9TD," // 3
- + "1CI,2CI,3CI,4CI,5CI,9CI," // 4
- + "1CU,2CU,3CU,4CU,5CU,9CU," // 5
- + "1CD,2CD,3CD,4CD,5CD,9CD," // 6
- + "1PI,2PI,3PI,4PI,5PI,9PI," // 7
- + "1PU,2PU,3PU,4PU,5PU,9PU," // 8
- + "1PD,2PD,3PD,4PD,5PD,9PD," // 9
- + "1DD,2DD,3DD,4DD,5DD,9DD" ; // 10
- var tActCode = tActionCode.split(","); //
- //----------------------------------------------------------------------
- // 버튼 Action에 대한 처리구분를 찾고 아래의 세부처리를 표현한 Switch 값
- // 01*IX*XX*XX
- // -- : 처리번호
- // -- : Cart처방저장(MNPHCTOS) 구분
- // -- : 임시처방저장(MNPHCCOL) 구분
- // -- : 처방저장(원무) 구분
- // XX : N/A
- // IX : INSERT ONLY(처방INSERT포함)
- // UX : UPDATE ONLY
- // DX : DELETE ONLY
- // UI : UPDATE AND INSERT
- // IC : 처방INSERT AND 처방DC
- // XC : 처방DC
- //--------------------------------------------------------------
- // 1TI 2TI 3TI 4TI 5TI 9TI
- var tActionProc = "01*IX*XX*XX,01*IX*XX*XX,00*XX*XX*XX,00*XX*XX*XX,00*XX*XX*XX,00*XX*XX*XX," // 1
- // 1TU 2TU 3TU 4TU 5TU 9TU
- + "02*UX*XX*XX,02*UX*XX*XX,00*XX*XX*XX,00*XX*XX*XX,00*XX*XX*XX,00*XX*XX*XX," // 2
- // 1TD 2TD 3TD 4TD 5TD 9TD
- + "03*DX*XX*XX,03*DX*XX*XX,00*XX*XX*XX,00*XX*XX*XX,00*XX*XX*XX,00*XX*XX*XX," // 3
- // 1CI 2CI 3CI 4CI 5CI 9CI
- + "04*XX*IX*XX,04*XX*IX*XX,06*XX*IX*XX,06*XX*IX*XX,00*XX*XX*XX,00*XX*XX*XX," // 4
- // 1CU 2CU 3CU 4CU 5CU 9CU
- + "04*XX*IX*XX,04*XX*IX*XX,07*XX*UI*XX,07*XX*UI*XX,00*XX*XX*XX,00*XX*XX*XX," // 5
- // 1CD 2CD 3CD 4CD 5CD 9CD
- + "00*XX*XX*XX,00*XX*XX*XX,08*XX*UX*XX,08*XX*UX*XX,00*XX*XX*XX,00*XX*XX*XX," // 6
- // 1PI 2PI 3PI 4PI 5PI 9PI
- + "05*XX*IX*IX,05*XX*IX*IX,09*XX*IX*IX,09*XX*IX*IX,09*XX*IX*IX,09*XX*IX*IX," // 7
- // 1PU 2PU 3PU 4PU 5PU 9PU
- + "05*XX*IX*IX,05*XX*IX*IX,10*XX*UI*IX,10*XX*UI*IX,12*XX*UI*IC,12*XX*UI*IC," // 8
- // 1PD 2PD 3PD 4PD 5PD 9PD
- + "00*XX*XX*XX,00*XX*XX*XX,11*XX*UX*XX,11*XX*UX*XX,13*XX*UX*XC,13*XX*UX*XC," // 9
- // 1DD 2DD 3DD 4DD 5DD 9DD // 삭제 버튼 Click
- + "03*DX*XX*XX,03*DX*XX*XX,11*XX*UX*XX,11*XX*UX*XX,13*XX*UX*XC,13*XX*UX*XC" ; // 10
- var tActProc = tActionProc.split(","); //
- var sRecalfromdd = "";
- var sRecaltodd = "";
- var sRecalddStr = "";
- // 2009-03-10 ycd 처방데이터 parameter 추가 부분
- var sGoodCrFlag = ""; //물품발생구분
- var sInsuPynpy = ""; //급여구분
- var sNightYn = ""; //야간처방여부
-
- var sErPrpcFlag = "";
- var sErbgcd = "";
- //---------------------------------------
- // 임시, 확정, 처방을 저장하는 함수
- //---------------------------------------
- function fDataSave(pStat){
- var CartProcFlag = 0;
- var WkGoodQty = ""; // 불출수량
- var WkOutQty = ""; // 변경수량
- var WkSaveQty = ""; // 변경전 수량 = 불출수량 + 증감수량
- var WkAddreductQty = ""; // 증감수량 = 변경수량 - 불출수량
- var WkOproomDeptcd = ""; // 수술실방 부서코드
- var WkRecFalg = "";
- var WkOldAddQty = "0"; // 변경전증감수량
- var WkNewAddQty = "0"; // 변경후증감수량
- var WkDupflag = "";
- var WkDelCheck = ""; // 삭제구분
- var WkDeleteYn = "";
- //2008-08-21 오전 2:42:29 taebum 물품 실재고량 정보 추가
- var sTempStocqty = "";
- var tempGoodEngNm = ""; //알림창 용 물품명
- var sPrcpDataPat = "/root/main/patinfocond/patinfo";
- var sCartStat = model.getValue("/root/init/WorkData/cond/cartstat"); // 1:임시,2:저장, 3:불출,4:처방,5:확정,9:반납
- var sCartUseYn = model.getValue("/root/main/cond/cartuseyn");//임시카트리스트 사용여부(카트사용여부)
- var sBefPrcpdd = "";
- var sPrcpclscd = "";
-
- sLoginDeptcd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/issdeptcd");
-
- ProcCartStat = sCartStat + pStat;
-
- var delTempSaveYN = "N"; //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리 여부
- //2008-08-22 오전 1:51:10
- switch(ProcCartStat) {
- case("1T") : wCartStat = "2"; // 1:임시 임시만
- CartProcFlag = 1;
- break;
- case("1C") : wCartStat = "4"; // 임시 + 확정
- CartProcFlag = 2;
- break;
- case("1P") : wCartStat = "5"; // 임시 + 확정 + 처방
- CartProcFlag = 3;
- break;
- case("1D") : wCartStat = "2"; // 1:임시 임시만
- CartProcFlag = 1;
- break;
- case("2T") : wCartStat = "2"; // 2:저장 임시만
- CartProcFlag = 1;
- break;
- case("2C") : wCartStat = "4"; // 임시 + 확정
- CartProcFlag = 2;
- break;
- case("2P") : wCartStat = "5"; // 임시 + 확정 + 처방
- CartProcFlag = 3;
- break;
- case("2D") : wCartStat = "2"; // 2:저장 임시만
- CartProcFlag = 1;
- break;
- case("3C") : wCartStat = "4"; // 3:불출 확정
- CartProcFlag = 4;
- break;
- case("3P") : wCartStat = "5"; // 확정 + 처방
- CartProcFlag = 5;
- break;
- case("3D") : wCartStat = "4"; // 3:불출 확정
- CartProcFlag = 4;
- break;
- case("4C") : wCartStat = "4"; // 4:처방 확정
- CartProcFlag = 4;
- break;
- case("4P") : wCartStat = "5"; // 확정 + 처방
- CartProcFlag = 5;
- break;
- case("4D") : wCartStat = "4"; // 4:처방 확정
- CartProcFlag = 4;
- break;
- case("5P") : wCartStat = "5"; // 5:처방확정 확정 + 처방
- CartProcFlag = 5;
- break;
- case("5D") : wCartStat = "5"; // 5:처방확정 확정 + 처방
- CartProcFlag = 5;
- break;
- case("9P") : wCartStat = "9"; // 5:처방확정 확정 + 처방
- CartProcFlag = 5;
- break;
- default:
- return;
- }
- fPrcpHeader(); // 처방 헤더
- MnphctosData = fTitleCreate(); // CaseCart물품의 임시처방내역(CCR에서확정)
- MnphccolData = fTitleCreate(); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- fMrsmHeader(); // 재료집계 헤더
-
- var cartgubn = model.getValue("/root/init/WorkData/cond/cartgubn");
-
- //20101214_KNUH_Start 처방로봇수술여부 조회.
- if(model.getValue("/root/main/MmohoprsLists/mmohoprslist/robotopflag") == "Y") {
- if(cartgubn == "O") {
- PrcpData52 = "R";
- } else {
- PrcpData52 = "";
- }
- } else {
- PrcpData52 = "";
- }
-
- var PrcpIdx = 0;
- var PrcpFirst = 0; // 처방구성 첫번째 여부
- var SubmitCount = 0;
- var ProcCd = "";
- var ProcData = "";
- var PrcpQtyUnitFlag = "-"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- sPrcpPid = model.getValue(gPathNode[6]+"/pid") ; // 환자번호
- // -------------------------------------------------------------------------------------
- // 수정 입력된 자료를 구성한다. 0000 : ▣
- // 물품구분별 For Loop 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- // -------------------------------------------------------------------------------------
- //2008-08-02 오후 6:25:12 taebum add 회복은 수술카트 사용
- var tempCartGb = model.getValue("/root/init/WorkData/cond/cartgubn");
- /*
- // 2008-08-18 오후 1:31:55 taebum 회복은 기존처럼 R로 처리
- var sTmpCar2Gb = "";
- if(tempCartGb == "R"){
- sTmpCar2Gb = "R";
- }else if(tempCartGb == "A"){
- sTmpCar2Gb = "A";
- }else{
- sTmpCar2Gb = "O";
- }
- */
- //2008-08-18 오후 7:17:03 taebum 발행처 변수 추가
- var sIssdeptcd = "";
- //2009-03-10 YCD 처치발행처
- var sIssdeptcdCure = "";
- //2008-10-31 오후 8:28:39 taebum 소급관련 전역변수 초기화
- sRecalfromdd = "";
- sRecaltodd = "";
- sRecalddStr = "";
- //2008-11-28 오후 3:31:06 taebum 일반청구성 물품 관련 변수
- sReqmthd = "";
- sMrsmInfoData = ""; //서버에 전송할 일반청구 물품 정보 초기화
- sGoodCrFlag = "";
- sInsuPynpy = "-";
- sNightYn = model.getValue(gPathNode[6]+"/prcpamtaddyn");
- if(sNightYn == "" ){
- sNightYn = "N";
- }
- /*
- var gPathName = "/root/main/MnphcagoLists" + " " 0 Cart물품
- + "/root/main/MnpmcartList" + " " 1 CartCode
- + "/root/main/MmbhppdsLists" + " " 2 처치처방
- + "/root/init/WorkData/DelMnphcagoListss" + " " 3 삭제Cart물품
- + "/root/init/WorkData/codelists" + " " 4 Save Cart Master
- + "/root/init/WorkData/MnphcagoLists" + " " 5 Save 물품 내역
- + "/root/main/MmohoprsLists/mmohoprslist" + " " 6 예약정보 Path
- + "/root/main/operation/list" + " " 7 수술예약 상단정보
- + "/root/main/CartOrdData" ; 8 Cart Order Display Data Instance Path
- var gPathNode = gPathName.split(" ");
- var tCartPath = "ListSupplies" + " " 0 공급물품
- + "ListDrug" + " " 1 약재료
- + "ListInstrument" + " " 2 기구
- + "ListOpsupply" + " " 3 수술소모품
- + "ListDiposit" ; 4 가납물품
- var tPathCart = tCartPath.split(" ");
- var tCartName = "supplies" + " " 공급물품 0
- + "drug" + " " 약재료 1
- + "instrument" + " " 기구 2
- + "opsupply" + " " 수술소모품 3
- + "diposit" ; 가납물품 4
- var tNameCart = tCartName.split(" "); */
- //2008-12-29 오전 11:04:24 taebum 수술일 이후에 수술료를 발생시킬경우 소급인터페이스 추가
- var sTempOpcnfmdd = model.getValue(gPathNode[6]+"/opcnfmdd");
- var sCalArr = new Array();
- var supcnt = 0;
- for( Idx = 0; Idx < 5; Idx++ ) {
- wCartPath = gPathNode[8]+"/"+tPathCart[Idx]; // gPathNode[8] : "root/main/CartOrdData"
- sRowCnt = eval("grd_"+tNameCart[Idx]).rows - eval("grd_"+tNameCart[Idx]).fixedrows;
- PrcpData = "";
- sMrsmData = "";
- PrcpQtyUnitFlag = (Idx == 1) ? "3" : "-"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- // ---------------------------------------------------
- // For Loop : 물품구분에 해당하는 Grid별 물품Check
- // ---------------------------------------------------
- for (var i=1; i<= sRowCnt; i++) {
- SvRecflag = model.getValue(wCartPath + "[" + (i) +"]/recflag" ); // 17 U:수정,I:입력구분
- //2008-09-06 오후 1:55:14 taebum add 삭제된 경우 check 안되도록 수정 및 저장 시 전체 check 시 disable된 삭제처방이
- // 선택되었을 경우 skip 처리
- var tempDeleteyn = model.getValue(wCartPath + "[" + (i) +"]/deleteyn" ); //
- var tempDelcheck = model.getValue(wCartPath + "[" + (i) +"]/delcheck" ); //
- if(tempDeleteyn == "X" && (tempDelcheck == "true" || tempDelcheck == true) ){
- continue;
- }
- var delTempPid = model.getValue(wCartPath + "[" + (i) +"]/pid" ); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- var delTempSaveqty = model.getValue(wCartPath + "[" + (i) +"]/saveqty" ); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- var delTempOutqty = model.getValue(wCartPath + "[" + (i) +"]/outqty" ); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- var delTempPrcpno = model.getValue(wCartPath + "[" + (i) +"]/prcpno" ); //@@KNUH, 처방을추가했다가 바로 삭제하고 확정저장하는 경우, 저장하는 값에서 제외돼야 함 (2011.02.11 JJE)
- if(pStat == "C" && delTempPid == "DELETE" && tempDeleteyn == "D" && delTempSaveqty == 0 && delTempOutqty > 0){ //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- delTempSaveYN = "Y";
- continue;
- }
- if(pStat == "P" && (tempDelcheck=="true" || tempDelcheck==true) && (delTempPrcpno=="0" || isNull(delTempPrcpno))){ //@@KNUH, 처방을추가했다가 바로 삭제하고 확정저장하는 경우, 저장하는 값에서 제외돼야 함 (2011.02.11 JJE)
- continue;
- }
-
- if ((pStat == "D") && (SvRecflag == "I")) continue; // { // 삭제 이면 입력인 자료는 제외한다.
- WkDelCheck = model.getValue(wCartPath + "[" + (i) +"]/delcheck" ); // 삭제구분
- WkDeleteYn = model.getValue(wCartPath + "[" + (i) +"]/deleteyn" ); // 삭제여부
- WkGoodQty = model.getValue(wCartPath + "[" + (i) +"]/goodqty" ); // 불출수량
- WkAddreductQty = model.getValue(wCartPath + "[" + (i) +"]/addreductqty" ); // 증감수량 = 변경수량 - 불출수량
- WkSaveQty = model.getValue(wCartPath + "[" + (i) +"]/saveqty" ); // 변경전 수량 = 불출수량 + 증감수량
- WkOutQty = model.getValue(wCartPath + "[" + (i) +"]/outqty" ); // 변경수량
- SvOprsrvno = model.getValue(wCartPath + "[" + (i) +"]/oprsrvno" ); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
- SvCartgubn = model.getValue(wCartPath + "[" + (i) +"]/cartgubn" ); // 02 Cart구분 (O:수술,A:마취, R:회복) 2008-08-02 오후 6:49:10 taebum R:회복은 O수술을 같이 쓴다.
- WkOproomDeptcd = model.getValue(wCartPath + "[" + (i) +"]/oproomdeptcd" );
- sBefPrcpdd = model.getValue(wCartPath + "[" + (i) +"]/prcpdd" );
- sPrcpclscd = model.getValue(wCartPath + "[" + (i) +"]/prcpclscd" );
- sReqmthd = model.getValue(wCartPath + "[" + (i) +"]/reqmthd" );
- sGoodCrFlag = model.getValue(wCartPath + "[" + (i) +"]/goodcrflag" ); // 물품발생구분(정규 : S , 응급 : E )
- sInsuPynpy = model.getValue(wCartPath + "[" + (i) +"]/insupynpy1" ); // 급여구분
- sSignNo = model.getValue(wCartPath + "[" + (i) +"]/signno" ); // 인증번호
- sGrupcd = model.getValue(wCartPath + "[" + (i) +"]/grupcd" ); //그룹코드
-
- sErbgcd = model.getValue(wCartPath + "[" + (i) +"]/erbgcd" ); //그룹코드
- /*
- //2008-08-18 오후 7:18:21 taebum 약품일 경우 발행처 정보 Setting 주석처리
- if (Idx == 3) { // 약품일 경우 "3"
- if (tempCartGb == "A") {
- WkOproomDeptcd = "3073100000"; // 마취부서코드
- } else if (tempCartGb == "R") {
- WkOproomDeptcd = "3073300000"; // 회복실부서코드
- } else {
- WkOproomDeptcd = "3070000000"; // 수술실
- }
- }
- */
- //===============================================================================
- //2008-08-18 오후 7:19:21 taebum add
- /*
- Cart O : 발행처 - 수술실 대표코드 , 실시부서 - 수술방 매핑코드
- Cart A : 발행처 - 마취간호 대표코드 , 실시부서 - 마취간호 대표코드
- Cart R : 발행처 - 회복실 대표코드 , 실시부서 - 회복실 대표코드
- WkOproomDeptcd : 처방실시 부서코드
- PrcpData4141 : 발행처 부서코드
- */
- /* 2009-03-26 YCD 삭제 처리
- if (tempCartGb == "A") {
- sIssdeptcd = sLoginDeptcd; // 마취부서코드
- sIssdeptcdCure = sLoginDeptcd; // 마취부서코드
- WkOproomDeptcd = sLoginDeptcd; // 마취부서코드
- //sIssdeptcd = sLoginDeptcd;
- //WkOproomDeptcd = sLoginDeptcd;
- } else if (tempCartGb == "R") {
- sIssdeptcd = sLoginDeptcd; // 회복실부서코드
- sIssdeptcdCure = sLoginDeptcd; // 회복실부서코드
- WkOproomDeptcd = sLoginDeptcd; // 회복실부서코드
- //sIssdeptcd = sLoginDeptcd;
- //WkOproomDeptcd = sLoginDeptcd;
- } else {
- if(sLoginDeptcd == "3072700000"){ // 수술실 안과
- sIssdeptcd = sLoginDeptcd; // 수술실(물류)
- sIssdeptcdCure = model.getValue(gPathNode[6]+"/perfdeptcd") ; // 수술실(처치)
- }else{ // 수술실
- sIssdeptcd = "3070000000"; // 수술실(물류)
- sIssdeptcdCure = "3070000000"; // 수술실(처치)
- }
- //WkOproomDeptcd는 부서 매핑 코드를 그대로 사용함.
- }
- */
-
- // 부유형(subcretno) 셋팅
- var subcret = model.getValue(wCartPath + "[" + (i) +"]/anamneflag");
- var chkprcpno = model.getValue(wCartPath + "[" + (i) +"]/prcpno");
- var subcretno = 0;
-
- if (chkprcpno == 0) {
- if(subcret == "Y") {
- if (supcnt == 0 ) {
- // alert(supcnt);
- var flag = fSuppkind();
- supcnt++;
- if(flag == "false") {
- return;
- }
- }
- var subcretno = model.getValue("/root/temp/prcpinfo/subcretno");
- } else {
- subcretno = "0"
- }
- }
-
-
- PrcpData2938 = "N" + "▦" // 29 포터블처방구분 (Y/N) ==> default : "N"
- + "N" + "▦" // 30 정액처방구분 (Y/N) ==> default : "N"
- + "N" + "▦" // 31 선택처방구분 (Y/N) -> 만약 "-"일 경우 원무정보 기준으로 처리 ==> default : "N"
- + model.getValue(wCartPath + "[" + (i) +"]/anamneflag") + "▦" // 32 기왕력(증)구분 (Y/N) ==> default : "N"
- + "-" + "▦" // 33 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : "-" => default : "-"
- + "-" + "▦" // 34 Angio구분 (코드정의서 M0006 참조) : "-" => default : "-"
- + "-" + "▦" // 35 수술마취구분 (코드정의서 M0007, M0008 참조) : "-" => default : "-"
- + "0000" + "▦" // 36 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격 => default : "0000"
- + "N" + "▦" // 37 출장검진구분 (Y/N) => default : "N"
- + "00NNN" + "▦"; // 38 "00NNN" 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성 => default : "00NNN"
- //+ "-" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- //+ "00" + "▦"; // 40 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 "00") => default : "00"
- //PrcpData4949 = model.getValue(wCartPath + "[" + (i) +"]/prcpdelivefact") + "▦";
- PrcpData4949 = "-" + "▦";
- PrcpData73 = subcretno + "▩" ; // 부유형 +"▦"; // 73 부유형(subcretno)
-
- if(tempCartGb == "A" || tempCartGb == "R"){
- sIssdeptcd = sLoginDeptcd; // 마취부서코드, 회복실부서코드
- sIssdeptcdCure = sLoginDeptcd; // 마취부서코드, 회복실부서코드
- WkOproomDeptcd = sLoginDeptcd; // 마취부서코드, 회복실부서코드
- if( (sPrcpclscd == "H2")||(sPrcpclscd == "A2")||(sPrcpclscd == "A4")||(sPrcpclscd == "A6")||
- (sPrcpclscd == "C2")||(sPrcpclscd == "C4")||(sPrcpclscd == "B2")||(sPrcpclscd == "B4") ) {//H2:수술, A2:경구, A4:외용, A6:주사, C2:영상, C4:ANGIO, B2:진건, B4:수혈(후인증대상 처방)
- PrcpData44 = "1" + "▦";//후인증 필드
- PrcpData7172 = "12" + "▦"
- + model.getValue(gPathNode[6]+"/anstdrid") + "▦";//후인증 구분(11:수술간호처방)+후인증 의사(수술:집도의, 마취(회복):마취의)
- }else {
- PrcpData44 = "0" + "▦";//후인증 필드
- PrcpData7172 = "-" + "▦" + "-" + "▦"
- }
- }else{
- sIssdeptcd = sLoginDeptcd; // 수술실
- sIssdeptcdCure = sLoginDeptcd; //
- if( (sPrcpclscd == "H2")||(sPrcpclscd == "A2")||(sPrcpclscd == "A4")||(sPrcpclscd == "A6")||
- (sPrcpclscd == "C2")||(sPrcpclscd == "C4")||(sPrcpclscd == "B2")||(sPrcpclscd == "B4") ) {//H2:수술, A2:경구, A4:외용, A6:주사, C2:영상, C4:ANGIO, B2:진건, B4:수혈(후인증대상 처방)
- PrcpData44 = "1" + "▦";//후인증 필드
- PrcpData7172 = "12" + "▦"
- + model.getValue(gPathNode[6]+"/perfdrid") + "▦";//후인증 구분(12:수술간호처방)+후인증 의사(수술:집도의, 마취(회복):마취의)
- }else {
- PrcpData44 = "0" + "▦";//후인증 필드
- PrcpData7172 = "-" + "▦" + "-" + "▦"
- }
- }
- //===============================================================================
- SvOrdseq = model.getValue(wCartPath + "[" + (i) +"]/ordseq" ); // 03 처방순번
- SvInstcd = model.getValue(wCartPath + "[" + (i) +"]/instcd" ); // 04 병원기관코드(코드정의서 Z0007 참조)
- SvGoodcd = model.getValue(wCartPath + "[" + (i) +"]/goodcd" ); // 05 물품코드
- SvAllsizespecid = model.getValue(wCartPath + "[" + (i) +"]/allsizespecid" ); // 06 ALLSIZE규격ID
- SvGoodcls = model.getValue(wCartPath + "[" + (i) +"]/goodcls" ); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- SvGoodqty = model.getValue(wCartPath + "[" + (i) +"]/goodqty" ); // 08 물품수량
- SvAddreductqty = model.getValue(wCartPath + "[" + (i) +"]/addreductqty" ); // 09 가감수량
- SvPayflagcd = model.getValue(wCartPath + "[" + (i) +"]/payflagcd" ); // 10 급여구분코드 (코드정의서 M0029 참조)
- SvOproomcd = model.getValue(wCartPath + "[" + (i) +"]/oproomcd" ); // 11 수술실코드
- SvRoomdeptcd = model.getValue(wCartPath + "[" + (i) +"]/oproomdeptcd" ); // 12 수술방부서코드
- SvPrcpmemo = model.getValue(wCartPath + "[" + (i) +"]/prcpmemo" ); // 13 처방수정MEMO(사유)
- SvPrcpdd = model.getValue(wCartPath + "[" + (i) +"]/prcpdd" ); // 14 처방일자
- SvPrcpno = model.getValue(wCartPath + "[" + (i) +"]/prcpno" ); // 15 처방일자별 일련번호
- SvPrcphistno = model.getValue(wCartPath + "[" + (i) +"]/prcphistno" ); // 16 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
- SvPid = model.getValue(wCartPath + "[" + (i) +"]/pid" ); // 17 등록번호
- sPrcpno = model.getValue(wCartPath + "[" + (i) +"]/prcpno" ); // 18 등록번호2009.10.16 K.J.M 재고변동여부 체크
- sPid = model.getValue(wCartPath + "[" + (i) +"]/pid" ); // 19 등록번호2009.10.16 K.J.M 재고변동여부 체크
- SvReqtabcls = ""; // 20 테이블구 T:임시처방, C: 확정처방
- SvGoodengnm = model.getValue(wCartPath + "[" + (i) +"]/goodengnm" ); // 21 물품명
- sPurcflag = model.getValue(wCartPath + "[" + (i) +"]/purcflag" ); // 22 구매구분
- SvOldPayflagcd = model.getValue(wCartPath + "[" + (i) +"]/old_payflagcd" ); //
- //2008-08-21 오전 2:43:51 taebum 임시저장 이거나 인증저장일 경우 환자의 수술방에 물품재고량이 없을 경우 경고창 처리
- sTempStocqty = model.getValue(wCartPath + "[" + (i) +"]/stocqty" );
- //2009-07-20 산정여부 추가 K.J.M
- sCalCulYn = model.getValue(wCartPath + "[" + (i) +"]/calculyn" );//구매 산정여부
- //2009-08-18 수가대상여부, 수가코드 K.J.M
- sInsuYn = model.getValue(wCartPath + "[" + (i) +"]/insuyn" );//구매 수가대상 여부
- sCalcscorcd = model.getValue(wCartPath + "[" + (i) +"]/calcscorcd" );//수가코드
- //2009.12.29 처방 종료일자 K.J.M
- sTodd = model.getValue(wCartPath + "[" + (i) +"]/todd" );//종료일자
- sLisTodd = model.getValue(wCartPath + "[" + (i) +"]/listodd" );//종료일자
- sSpcmTodd = model.getValue(wCartPath + "[" + (i) +"]/spcmtodd" );//종료일자
- sGrupcd = model.getValue(wCartPath + "[" + (i) +"]/grupcd" );//그룹코드
- if( sInsuYn == "Y"&&sCalcscorcd == ""&&(!(tempDelcheck == "true" || tempDelcheck == true)) ) {//삭제일경우는 제외
- messageBox( SvGoodcd+"코드 처방 할 수 없습니다.!", "E000");
- return;
- }
- //처방불가 물품은 처방 안되게 막음, 삭제는 제외 2009.08.31 K.J.M
- if( sReqmthd == "X" && (!(tempDelcheck == "true" || tempDelcheck == true)) && tempDeleteyn != "X" ) { //@@ KNUH, 추가처방 확정 저장 시 삭제구분 X 처방이 수가에 없는 처방으로 블로킹 걸리는 오류 조치 (2011.02.14 JJE)
- messageBox( SvGoodcd+"코드 처방불가이므로 처방 할 수 없습니다.!", "E000");
- return;
- }
- //종료된 물품은 처방 안되게 막음, 2009.10.19 K.J.M
- //if( (sReqmthd == "" || sPrcpclscd == "")&&( sTodd != "99991231" )&&( SvGoodcd.substring(0, 1) != "T" )&&(!(tempDelcheck == "true" || tempDelcheck == true)) ) {//구매와 처방마스터에 살아있는 정보가 없으면 처방 막음, 중앙공급실에서 생성한 물품은 제외
- if( ( sTodd <= getCurrentDate() )&&( SvGoodcd.substring(0, 1) != "T" )&&(!(tempDelcheck == "true" || tempDelcheck == true)) ) {//구매와 처방마스터에 살아있는 정보가 없으면 처방 막음, 중앙공급실에서 생성한 물품은 제외
- if( (SvRecflag != "U")&&(ProcCartStat == "5P") ) {//이미 처방된것은 걸리지 않게 함
- messageBox( SvGoodcd+" 종료된 코드이므로 처방 할 수 없습니다.!", "E000");
- return;
- }
- }
- var sIndexCnt = 0;
- var sLength = sCalArr.length;
- if( initCnt == 0 ) {
- sCalArr[sLength] = new Array(3);
- sCalArr[sLength][0] = SvGoodcd;
- sCalArr[sLength][1] = 0;//비산정 카운트
- sCalArr[sLength][2] = 0;//산정 카운트
- initCnt++;
- }
- //alert(sCalArr.length);
- //삭제이면 카운트 안함.
- if( (sCalCulYn == "N")&&(WkDelCheck != "true")&&(WkDeleteYn == "") ) {//비산정
- for( var s = 0; s < sCalArr.length; s++ ) {
- sTGoodcd = sCalArr[s][0];//물품코드
- sNonCalCount = sCalArr[s][1];//비산정 카운트
- //alert(sTGoodcd);
- if( sTGoodcd == SvGoodcd ) {//같은 물품이면
- sCalArr[s][1] = (sNonCalCount+1);
- sIndexCnt++;
- //alert(sCalArr[s][1]);
- }
- }
- if( sIndexCnt < 1 ) {//배열에 없는 물품코드는 추가
- sCalArr[sLength] = new Array(3);
- sCalArr[sLength][0] = SvGoodcd;
- sCalArr[sLength][1] = 1;//비산정 카운트
- sCalArr[sLength][2] = 0;//산정 카운트
- }
- }else if ( (sCalCulYn == "Y")&&(WkDelCheck != "true")&&(WkDeleteYn == "") ) {//산정
- for( var s = 0; s < sCalArr.length; s++ ) {
- sTGoodcd = sCalArr[s][0];//물품코드
- sCalCount = sCalArr[s][2];//산정 카운트
- if( sTGoodcd == SvGoodcd ) {//같은 물품이면
- sCalArr[s][2] = (sCalCount+1);
- sIndexCnt++;
- }
- }
- if( sIndexCnt < 1 ) {//배열에 없는 물품코드는 추가
- sCalArr[sLength] = new Array(3);
- sCalArr[sLength][0] = SvGoodcd;
- sCalArr[sLength][1] = 0;//비산정 카운트
- sCalArr[sLength][2] = 1;//산정 카운트
- }
- }
- if (Idx == 1) { // 약품일 경우 "3"
- //2009-03-10 YCD 추가
- if(ordtype =="O"){
- PrcpData2528_R = SvPayflagcd + "▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
- + "N" + "▦" // 26 응급처방구분 (Y/N) ==> default : "N"
- + "Y" + "▦" // 27 선처치처방구분 (Y/N) ==> default : "N" MMBTPRCD
- + "N" + "▦"; // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : "N"
- }else{
- PrcpData2528_R = SvPayflagcd + "▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
- + "N" + "▦" // 26 응급처방구분 (Y/N) ==> default : "N"
- + "N" + "▦" // 27 선처치처방구분 (Y/N) ==> default : "N" MMBTPRCD
- + "N" + "▦"; // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : "N"
- }
- //2008-12-29 오전 9:34:34 taebum
- // 약품일 경우 원내/원외 구분을 원내로 setting함.
- if(ordtype == "O"){//외래 환자
- if(sPrcpclscd == "A2" || sPrcpclscd == "A4"){//경구, 외용제
- PrcpData3940_R = "I" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- + "55" + "▦"; // 검사를 위하여 필요하거나 수술 및 처치에 사용하는 주사제
- }else if(sPrcpclscd == "A6"){//주사제
- PrcpData3940_R = "I" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- + "52" + "▦"; // 주사제를 원내 투약한 경우
- }else{
- PrcpData3940_R = "I" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- + "55" + "▦"; // 검사를 위하여 필요하거나 수술 및 처치에 사용하는 주사제
- }
- }else{//입원 환자의 경우
- PrcpData3940_R = "I" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- + "00" + "▦";
- }
- SvDrugMthdSpccd = model.getValue(wCartPath + "[" + (i) +"]/drugmthdspccd"); // 21 투여방법 및 검체코드
- if(SvDrugMthdSpccd == "" && pStat == "P" && WkOutQty != "0"){
- messageBox("확정처방 저장시 용법지정은 필수 입력사항입니다.", "I000");
- return;
- }
- //2008-10-01 오후 12:58:22 taebum 예외용법일 경우를 체크하는 로직 추가
- if(SvDrugMthdSpccd == "IE" || SvDrugMthdSpccd == "EYDR" || SvDrugMthdSpccd == "XCO" || SvDrugMthdSpccd == "XWA" ||
- SvDrugMthdSpccd == "XIR" || SvDrugMthdSpccd == "XPR" || SvDrugMthdSpccd == "XFPR" || SvDrugMthdSpccd == "XCIC" ||
- SvDrugMthdSpccd == "IAR" || SvDrugMthdSpccd == "ICO" || SvDrugMthdSpccd == "IBB" || SvDrugMthdSpccd == "IVB" ||
- SvDrugMthdSpccd == "IVD" || SvDrugMthdSpccd == "IVSI" || SvDrugMthdSpccd == "ISA3" || SvDrugMthdSpccd == "IRB" ||
- SvDrugMthdSpccd == "SCJ" || SvDrugMthdSpccd == "IM" || SvDrugMthdSpccd == "ANES" ){
- SvDrugMthdSpcEtc = "-";
- SvDrugMthdSpccd = SvDrugMthdSpccd;
- }else{
- if(SvDrugMthdSpccd == ""){
- SvDrugMthdSpcEtc = "-";
- SvDrugMthdSpccd = SvDrugMthdSpccd;
- }else{
- SvDrugMthdSpcEtc = SvDrugMthdSpccd;
- SvDrugMthdSpccd = "ZZZ";
- if(SvDrugMthdSpcEtc == "ZZZ"){
- SvDrugMthdSpcEtc = "-";
- }
- }
- }
- }else{//약품이 아닐경우
-
- //20110325 이선경(경북대) : 응급처방여부
- sErPrpcFlag = model.getValue(wCartPath + "[" + i +"]/erprcpflag"); //응급처방여부
- if(sErPrpcFlag == "") { //값이 없는 경우는 디폴드값으로 넣어줌
- sErPrpcFlag = "N";
- }
-
- //2009-03-10 YCD 추가
- PrcpData2528_R = SvPayflagcd + "▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
- //+ "N" + "▦" // 26 응급처방구분 (Y/N) ==> default : "N"
- + sErPrpcFlag + "▦" // 26 응급처방구분 (Y/N) ==> default : "N"
- + "Y" + "▦" // 27 선처치처방구분 (Y/N) ==> default : "N" MMBTPRCD
- + sNightYn + "▦"; // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : "N"
- //2008-12-29 오전 10:41:11 taebum
- // 약품이 아닐 경우 원내/원외 구분을 - setting함.
- PrcpData3940_R = "-" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- + "00" + "▦";
- //처방구분이 수술일 경우.
- if(sPrcpclscd == "H2"){
- svOpansflagcd = "4";//주수술 setting
- }else{
- svOpansflagcd = "-";
- }
- SvDrugMthdSpcEtc = "-";
- SvDrugMthdSpccd = "-";
- }
- WkGoodQty = (WkGoodQty == "" ) ? "0" : WkGoodQty ; // 불출수량
- WkAddreductQty = (WkAddreductQty == "" ) ? "0" : WkAddreductQty ; // 증감수량 = 변경수량 - 불출수량
- WkSaveQty = (WkSaveQty == "" ) ? "0" : WkSaveQty ; // 변경전 수량 = 불출수량 + 증감수량
- WkOutQty = (WkOutQty == "" ) ? "0" : WkOutQty ; // 변경수량
- //
- WkPid = SvPid;
- WkDupflag = "N";
- WkRecFalg = "X";
- WkRecFalg = SvRecflag;
- WkOldAddQty = parseFloat(WkSaveQty) - parseFloat(WkGoodQty) ; // 변경전증감수량
- WkNewAddQty = parseFloat(WkOutQty ) - parseFloat(WkGoodQty) ; // 변경후증감수량
- if( WkDelCheck == "true" ) { // 삭제구분
- ProcCd = ProcCartStat + "D";
- }else {
- ProcCd = ProcCartStat + SvRecflag;
- }
- //---------------------------------
- // 처리형태를 가져온다
- //---------------------------------
- ProcData = fActionCodeCheck(ProcCd);
- SvAddreductqty = WkAddreductQty; // 09 가감수량
- // SvPid = (SvPid == "" ) ? sPrcpPid : SvPid ; // 환자번호
- SvPrcpdd = (SvPrcpdd == "" ) ? "" : SvPrcpdd ; // 처방일자
- SvPrcpno = (SvPrcpno == "" ) ? "0" : SvPrcpno ; // 처방일자별 일련번호
- SvPrcphistno = (SvPrcphistno == "" ) ? "0" : SvPrcphistno ; // 처방이력생할때 마다 생성
- SvRowno = ""; // 17 줄번호
- if( (ProcData != "") && (WkDeleteYn == "") ) {
- ActProc = ProcData.split("*"); //
- WkPid = sPrcpPid;
- if( ActProc[2] == "UI" ) {
- if (WkNewAddQty != WkOldAddQty || SvPayflagcd != SvOldPayflagcd) {
- WkPid = "DELETE";
- }
- }
- if (ActProc[2] == "UX") {
- WkPid = "DELETE";
- }
- //---------------------------------
- // 처방 수정 및 입력하는 루틴
- //---------------------------------
- if (ActProc[3] != "XX") {
- if (PrcpFirst == 0) {
- PrcpFirst = 1;
- fInitPrcpData(); // 처방내역 기본 SET
- // 처방일자
- //2008-10-04 오후 1:09:24 수술처방일 경우에도 처방일자는 현재일자로 내보내도록 수정.
- PrcpDate = getCurrentDate();//model.getValue(gPathNode[6] + "/opcnfmdd"); // 수술 처방확정일자
- }
- PrcpData2528 = PrcpData2528_R;
- PrcpData3940 = PrcpData3940_R;
- SvPrcpdd = PrcpDate ; // 처방일자
- PrcpData1520 = SvGoodcd + "▦" // 15 처방코드
- + SvGoodcd + "▦" // 16 수가코드 MMBTPRCD의 수가 코드 가져올것
- + "-" + "▦" // 17 종속처방코드 ("-") => default : "-"
- + 0 + "▦" // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0
- + WkOproomDeptcd + "▦" // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
- + PrcpDate + "▦"; // 20 처방희망일자 (처방일자 이전으로 발생불가)
- //2008-08-18 오후 7:23:14 taebum 발행부서 정보 변경
- //PrcpData4141 = WkOproomDeptcd + "▦"; // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : "-"
- if(SvGoodcls == "5"){ //처치처방
- PrcpData4141 = sIssdeptcdCure + "▦"; // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : "-"
- }else{
- PrcpData4141 = sIssdeptcd + "▦"; // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : "-"
- }
- if (SvAllsizespecid == "0" || SvAllsizespecid == "" ) {
- PrcpData64 = "-▦";
- }else{
- PrcpData64 = SvAllsizespecid+"▦";
- }
- //2008-10-01 오후 1:07:33 taebum free text 입력 용법 추가
- PrcpData65 = SvDrugMthdSpcEtc+"▦";
- if(PrcpData65 == "") {
- PrcpData65 = "-"+"▦";
- }
- //opansflagcd add
- PrcpData66 = svOpansflagcd+"▦";
- if (SvDrugMthdSpccd == "") SvDrugMthdSpccd = "-";
- PrcpData4848 = SvDrugMthdSpccd + "▦" ; // 48 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-") => default : "-"
- PrcpData68 = SvGoodengnm + "▦"; // 68 처방명
- if(sPrcpclscd == "" && sReqmthd == "1"){
- messageBox("["+SvGoodcd+ "] 처방 분류 정보가 존재하지 않습니다. 수가 정보 확인이 필요합니다.", "E000");
- return;
- }else{
- PrcpData69 = sPrcpclscd + "▦-▦"; // 69 처방분류코드 + 70 투여비율
- //PrcpData69 = sPrcpclscd + "▦-▩"; // 69 처방분류코드 + 70 투여비율
- }
- // -----------------------------------------------------------------------
- // 처방이 수정되어 DC를 내린다.(처방이 수정되어 생성과DC를 동시에 내린다.)
- // -----------------------------------------------------------------------
- if ((ActProc[3] == "IC" && SvGoodcls != "4" && SvGoodcls != "6" && SvGoodcls != "10")||(ActProc[3] == "IC" && sReqmthd != "" && (SvGoodcls == "4" || SvGoodcls == "6" || SvGoodcls == "10")) ) {
- if (WkNewAddQty != WkOldAddQty || SvPayflagcd != SvOldPayflagcd ) {
- if (parseFloat(WkSaveQty) != 0) {
- if(sRecalddStr == ""){
- sRecalddStr = sBefPrcpdd;
- }else{
- sRecalddStr = sRecalddStr+"▧"+sBefPrcpdd;
- }
- PrcpIdx++;
- PrcpData0101 = "C" + "▦"; // 01 신규(I), DC(C)
- PrcpData0205 = PrcpIdx + "▦" // 02 줄번호 (병리 요구)
- //2008-10-04 오후 1:19:23 taebum 수정
- + sBefPrcpdd + "▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- + SvPrcpno + "▦" // 04 처방번호 (status가 "I"일 경우 0)
- + SvPrcphistno + "▦"; // 05 처방이력번호 (status가 "I"일 경우 0)
- PrcpData2122 = WkSaveQty + "▦" // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
- + PrcpQtyUnitFlag + "▦"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- //일반 청구성 물품일 경우, 비산정 처방
- //if(sReqmthd == "3"||sCalCulYn == "N")
- //최소현 선생님 요청으로 산정 로직 중단 2009.10.14
- //2010.04.19 K. J. M 산정로직 추가(비산정일때는 구매집계에도 내려가면 안됨
- if( sCalCulYn != "N" ) {
- if(sReqmthd == "3"){
- sMrsmData += getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + model.getValue(gPathNode[6] + "/orddeptcd") +"▦"
- + model.getValue(gPathNode[6] + "/orddrid") +"▦"
- + model.getValue(gPathNode[6] + "/oppatflagcd") +"▦"
- + sBefPrcpdd +"▦"
- + "999999999" +"▦"
- + SvGoodcd +"▦"
- + "D" +"▦"
- + WkSaveQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkSaveQty +"▦"
- + PrcpData64 + "" //- "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + model.getValue(gPathNode[6] + "/wardcd") +"▦"
- + model.getValue(gPathNode[6] + "/roomcd") +"▦"
- + "00000000" +"▦"
- + getCurrentDate() +"▦"
- + getCurrentTime() +"▦"
- + getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + model.getValue(wCartPath + "[" + (i) +"]/oprsrvno")+"▩";
- }else {//처방집계 물품 및 산정인 처방
- PrcpData += PrcpData0101
- + PrcpData0205
- + PrcpData0614
- + PrcpData1520
- + PrcpData2122
- //+ PrcpData2340
- + PrcpData2324
- + PrcpData2528
- + PrcpData2938
- + PrcpData3940
- + PrcpData4141
- + PrcpData4243
- + PrcpData44
- + PrcpData4547
- //+ PrcpData4247
- + PrcpData4848
- + PrcpData4949
- + PrcpData5063
- + PrcpData64
- + PrcpData65
- + PrcpData66
- + PrcpData67
- + PrcpData68
- + PrcpData69//;
- + PrcpData7172
- + PrcpData73;
- }
- }
- WkPid = "CANCEL";
- }
- if (parseFloat(WkOutQty) == 0) {
- messageBox("처방 수량을 입력하십시요", "I000");
- return;
- }else {
- PrcpIdx++;
- PrcpData0101 = "I" + "▦"; // 01 신규(I), DC(C)
- PrcpData0205 = PrcpIdx + "▦" // 02 줄번호 (병리 요구)
- + PrcpDate + "▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- + "0" + "▦" // 04 처방번호 (status가 "I"일 경우 0)
- + "0" + "▦"; // 05 처방이력번호 (status가 "I"일 경우 0)
- PrcpData2122 = WkOutQty + "▦" // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
- + PrcpQtyUnitFlag + "▦"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- //일반 청구성 물품일 경우, 비산정 처방
- //if(sReqmthd == "3"||sCalCulYn == "N"){최소현 선생님 요청으로 산정 로직 중단 2009.10.14
- //2010.04.19 K. J. M 산정로직 추가(비산정일때는 구매집계에도 내려가면 안됨
- if( sCalCulYn != "N" ) {
- if(sReqmthd == "3"){
- // 정상 입력 처리
- sMrsmData += getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + model.getValue(gPathNode[6] + "/orddeptcd") +"▦"
- + model.getValue(gPathNode[6] + "/orddrid") +"▦"
- + model.getValue(gPathNode[6] + "/oppatflagcd") +"▦"
- + getCurrentDate() +"▦"
- + "999999999" +"▦"
- + SvGoodcd +"▦"
- + "O" +"▦"
- + WkOutQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkOutQty +"▦"
- + PrcpData64 +"" // "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + model.getValue(gPathNode[6] + "/wardcd") +"▦"
- + model.getValue(gPathNode[6] + "/roomcd") +"▦"
- + "00000000" +"▦"
- + getCurrentDate() +"▦"
- + getCurrentTime() +"▦"
- + getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + model.getValue(wCartPath + "[" + (i) +"]/oprsrvno")+"▩";
- }else{
- PrcpData += PrcpData0101
- + PrcpData0205
- + PrcpData0614
- + PrcpData1520
- + PrcpData2122
- //+ PrcpData2340
- + PrcpData2324
- + PrcpData2528
- + PrcpData2938
- + PrcpData3940
- + PrcpData4141
- + PrcpData4243
- + PrcpData44
- + PrcpData4547
- //+ PrcpData4247
- + PrcpData4848
- + PrcpData4949
- + PrcpData5063
- + PrcpData64
- + PrcpData65
- + PrcpData66
- + PrcpData67
- + PrcpData68
- + PrcpData69 //;
- + PrcpData7172
- + PrcpData73 ;
- SvRowno = PrcpIdx; // 17 줄번호
- }
- }
- }
- }
- }
- // -----------------------------------------------
- // 처방이 수정되어 DC를 내린다. 처방삭제
- // -----------------------------------------------
- //if (ActProc[3] == "XC" && (sReqmthd != ""&&(SvGoodcls == "4" || SvGoodcls == "6")))
- if ((ActProc[3] == "XC" && SvGoodcls != "4" && SvGoodcls != "6" && SvGoodcls != "10")||(ActProc[3] == "XC" && sReqmthd != "" && (SvGoodcls == "4" || SvGoodcls == "6" || SvGoodcls == "10")) ) {
- if (parseFloat(WkSaveQty) != 0) {
- if(sRecalddStr == ""){
- sRecalddStr = sBefPrcpdd;
- }else{
- sRecalddStr = sRecalddStr+"▧"+sBefPrcpdd;
- }
- PrcpIdx++;
- PrcpData0101 = "C" + "▦"; // 01 신규(I), DC(C)
- PrcpData0205 = PrcpIdx + "▦" // 02 줄번호 (병리 요구)
- //2008-10-04 오후 1:20:19 taebum 수정.
- + sBefPrcpdd + "▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- + SvPrcpno + "▦" // 04 처방번호 (status가 "I"일 경우 0)
- + SvPrcphistno + "▦"; // 05 처방이력번호 (status가 "I"일 경우 0)
- PrcpData2122 = WkSaveQty + "▦" // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
- + PrcpQtyUnitFlag + "▦"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- //일반 청구성 물품일 경우, 비산정 처방
- //if(sReqmthd == "3"||sCalCulYn == "N")
- //최소현 선생님 요청으로 산정 로직 중단 2009.10.14
- //2010.04.19 K. J. M 산정로직 추가(비산정일때는 구매집계에도 내려가면 안됨
- if( sCalCulYn != "N" ) {
- if(sReqmthd == "3"){
- sMrsmData += getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + model.getValue(gPathNode[6] + "/orddeptcd") +"▦"
- + model.getValue(gPathNode[6] + "/orddrid") +"▦"
- + model.getValue(gPathNode[6] + "/oppatflagcd") +"▦"
- + sBefPrcpdd +"▦"
- + "999999999" +"▦"
- + SvGoodcd +"▦"
- + "D" +"▦"
- + WkSaveQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkSaveQty +"▦"
- + PrcpData64 +"" // "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + model.getValue(gPathNode[6] + "/wardcd") +"▦"
- + model.getValue(gPathNode[6] + "/roomcd") +"▦"
- + "00000000" +"▦"
- + getCurrentDate() +"▦"
- + getCurrentTime() +"▦"
- + getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + model.getValue(wCartPath + "[" + (i) +"]/oprsrvno")+"▩";
- }else{
- PrcpData += PrcpData0101
- + PrcpData0205
- + PrcpData0614
- + PrcpData1520
- + PrcpData2122
- //+ PrcpData2340
- + PrcpData2324
- + PrcpData2528
- + PrcpData2938
- + PrcpData3940
- + PrcpData4141
- + PrcpData4243
- + PrcpData44
- + PrcpData4547
- //+ PrcpData4247
- + PrcpData4848
- + PrcpData4949
- + PrcpData5063
- + PrcpData64
- + PrcpData65
- + PrcpData66
- + PrcpData67
- + PrcpData68
- + PrcpData69 //;
- + PrcpData7172
- + PrcpData73 ;
- }
- }
- WkPid = "CANCEL";
- }
- }
- // -----------------------------------------------
- // 처방입력 한다.(신규처방생성)
- // -----------------------------------------------
- //if (ActProc[3] == "IX" && (sReqmthd != ""&&(SvGoodcls == "4" || SvGoodcls == "6")))
- if ((ActProc[3] == "IX" && SvGoodcls != "4" && SvGoodcls != "6" && SvGoodcls != "10")||(ActProc[3] == "IX" && sReqmthd != "" && (SvGoodcls == "4" || SvGoodcls == "6" || SvGoodcls == "10")) ) {
- if (parseFloat(WkOutQty) == 0) {
- WkPid = "DELETE";
- }else {
- PrcpIdx++;
- PrcpData0101 = "I" + "▦"; // 01 신규(I), DC(C)
- PrcpData0205 = PrcpIdx + "▦" // 02 줄번호 (병리 요구)
- + PrcpDate + "▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- + "0" + "▦" // 04 처방번호 (status가 "I"일 경우 0)
- + "0" + "▦"; // 05 처방이력번호 (status가 "I"일 경우 0)
- PrcpData2122 = WkOutQty + "▦" // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
- + PrcpQtyUnitFlag + "▦"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- //2008-12-29 오후 6:53:34 taebum 처방구분이 수술인 경우 신규로 발생시 수술일 이후에 수술료 발생시 소급인터페이스 적용
- if(sPrcpclscd == "H2"){
- if(sTempOpcnfmdd < getCurrentDate()){
- if(sRecalddStr == ""){
- sRecalddStr = getCurrentDate();
- }else{
- sRecalddStr = sRecalddStr+"▧"+getCurrentDate();
- }
- }
- }
- //일반 청구성 물품일 경우
- //if(sReqmthd == "3"||sCalCulYn == "N")
- //최소현 선생님 요청으로 산정 로직 중단 2009.10.14
- //2010.04.19 K. J. M 산정로직 추가(비산정일때는 구매집계에도 내려가면 안됨
- if( sCalCulYn != "N" ) {
- if(sReqmthd == "3"){
- // 정상 입력 처리
- sMrsmData += getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + model.getValue(gPathNode[6] + "/orddeptcd") +"▦"
- + model.getValue(gPathNode[6] + "/orddrid") +"▦"
- + model.getValue(gPathNode[6] + "/oppatflagcd") +"▦"
- + getCurrentDate() +"▦"
- + "0000000000" +"▦"
- + SvGoodcd +"▦"
- + "O" +"▦"
- + WkOutQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkOutQty +"▦"
- + PrcpData64 +"" // "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + model.getValue(gPathNode[6] + "/wardcd") +"▦"
- + model.getValue(gPathNode[6] + "/roomcd") +"▦"
- + "00000000" +"▦"
- + getCurrentDate() +"▦"
- + getCurrentTime() +"▦"
- + getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + model.getValue(wCartPath + "[" + (i) +"]/oprsrvno")+"▩";
- }else{
- PrcpData += PrcpData0101
- + PrcpData0205
- + PrcpData0614
- + PrcpData1520
- + PrcpData2122
- //+ PrcpData2340
- + PrcpData2324
- + PrcpData2528
- + PrcpData2938
- + PrcpData3940
- + PrcpData4141
- + PrcpData4243
- + PrcpData44
- + PrcpData4547
- //+ PrcpData4247
- + PrcpData4848
- + PrcpData4949
- + PrcpData5063
- + PrcpData64
- + PrcpData65
- + PrcpData66
- + PrcpData67
- + PrcpData68
- + PrcpData69 //;
- + PrcpData7172
- + PrcpData73;
- SvRowno = PrcpIdx; // 17 줄번호
- }
- }
- }
- }
- } // ActProc[3] != "XX"
- //--------------------------------
- // 확정 테이블을 수정한다.
- // 수량변경이 있는데 수량이 0이면 DELETE 시킨다.2009.12.04 K.J.M
- // 카트 사용하는 병원만 적용한다. 2010.04.19 K.J.M
- //--------------------------------
- if (ActProc[2] != "XX") { // 확정 테이블을 수정한다.
- if (ActProc[2] == "UI") {
- if (WkNewAddQty != WkOldAddQty || SvPayflagcd != SvOldPayflagcd) {
- SvPid = sPrcpPid; // 환자번호
- SvRecflag = "I";
- SvAddreductqty = WkNewAddQty; // 변경후증감수량
- SvReqtabcls = "C";
- if( sCartUseYn == "Y" ) {//카트사용하는 병원은 변경된 수량이 0이상이어야만 저장 0이면 삭제처리
- if( parseFloat(WkOutQty) > 0 ) {
- MnphccolData += fCartConstruct(PrcpDate); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- }
- }else {
- MnphccolData += fCartConstruct(PrcpDate); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- }
- SvRowno = ""; // 17 줄번호
- }
- //일반청구 물품일 경우, 비산정 처방 확정 테이블 수정시 prcpdd가 없을 경우 현재일자로 발생시킨다.
- //if((sReqmthd == "3"||sCalCulYn == "N") && sBefPrcpdd == "")
- //최소현 선생님 요청으로 산청로직 중단.2009.10.14
- if((sReqmthd == "3") && sBefPrcpdd == ""){
- sBefPrcpdd = getCurrentDate();
- }
- SvPid = WkPid; // 환자번호
- SvRecflag = "U" ;
- if( !(pStat == "C" && WkPid == "DELETE" && WkOutQty == "0") ) //KNUH, 임시처방 수량 0으로 보정 후 저장 시, 수량을 0으로 수정한 후 삭제처리되도록 함(2011.02.07 JJE)
- SvAddreductqty = WkOldAddQty; // 변경전증감수량
- SvReqtabcls = "C";
- MnphccolData += fCartConstruct(sBefPrcpdd); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- }
- if (ActProc[2] == "IX") {
- //2009-01-02 오후 9:19:32 taebum add 신규 확정처방의 수량이 0일 경우 삭제처리
- if(pStat == "P" && WkOutQty == 0 ){
- SvPid = "DELETE"; // 환자번호
- }else{
- SvPid = sPrcpPid; // 환자번호
- }
- SvRecflag = "I";
- SvAddreductqty = WkNewAddQty; // 변경후증감수량
- SvReqtabcls = "C";
- MnphccolData += fCartConstruct(PrcpDate); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- }
- if (ActProc[2] == "UX") {
- SvPid = WkPid; // 환자번호
- SvRecflag = "U" ;
- SvAddreductqty = WkOldAddQty; // 변경전증감수량
- SvReqtabcls = "C";
- MnphccolData += fCartConstruct(sBefPrcpdd); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- }
- }
- //--------------------------------
- // 임시 테이블을 수정한다.
- //--------------------------------
- if (ActProc[1] != "XX") {
- switch(ActProc[1]) {
- case("DX") : SvRecflag = "D" ;
- break;
- case("IX") : SvRecflag = "I";
- break;
- default : SvRecflag = "U" ;
- }
- SvReqtabcls = "T" ;
- SvGoodqty = WkOutQty ; // 물품수량
- MnphctosData += fCartConstruct(); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- }
- }
- SubmitCount++; // 수정 대상 건수
- } // 1111 : End Of for (var i=1; i<= sRowCnt; i++)
- PrcpInfoData += PrcpData;
- sMrsmInfoData += sMrsmData;
- } // 0000 : End Of for (Idx = 0; Idx < 5; Idx++ ) {
- //비산정 처방만 있을 경우 처방 제한(확정처방일때만)
- if( pStat == "P" ) {
- for( var k = 0; k < sCalArr.length; k++ ) {
- sNonCalCount = sCalArr[k][1];//비산정 카운트
- sCalCount = sCalArr[k][2];//산정 카운트
- //alert(sCalArr[k][0]+"======"+sCalArr[k][1]+"======"+sCalArr[k][2]);
- if( ( sNonCalCount > 0 )&&( sCalCount < 1 ) ) {//비산정만 있으면 블럭킹
- messageBox("산정처방이 없습니다. SET코드 처방 확인하세요!", "E000");
- return;
- }
- }
- }
- var Mmohoprslist = "instcd" + "▦" // 1 기관코드
- + "oprsrvno" + "▦" // 2 수술예약(의뢰)번호 (년도 + 일련번호)
- + "ophistno" + "▦" // 3 예약번호에따른이력번호
- + "ophistcd" + "▦" // 4 수술예약의이력코드
- + "cartgubn" + "▦" // 5 Cart구분 O:수술, A:마취
- + "cartstat" + "▦" // 6 Cart 임시:1, Cart 출력:2, Cart 불출:3, Cart 확정:4, Cart 반납:5, 처방 확정:9
- + "procstat" + "▦" // 7 테이블구 T:임시처방, C: 확정처방
- + "currentcartstat" + "▦" // 8 현재 화면의 Cart상태 임시:1, Cart 출력:2, Cart 불출:3, Cart 확정:4, Cart 반납:5, 처방 확정:9
- + "cartsavestat" + "▦"
- + "oproomcd" + "▩"
- + model.getValue(gPathNode[6]+"/instcd" ) + "▦" // 1 기관코드
- + model.getValue(gPathNode[6]+"/oprsrvno" ) + "▦" // 2 수술예약(의뢰)번호 (년도 + 일련번호)
- + model.getValue(gPathNode[6]+"/ophistno" ) + "▦" // 3 예약번호에따른이력번호
- + model.getValue(gPathNode[6]+"/ophistcd" ) + "▦" // 4 수술예약의이력코드
- + tempCartGb + "▦" // 5 Cart구분 O:수술, A:마취
- + wCartStat + "▦" // 6 Cart 임시:1, Cart 출력:2, Cart 불출:3, Cart 확정:4, Cart 반납:5, 처방 확정:9
- + ProcCartStat + "▦" // 7 처리구분 1T:임시,1C:임시+확정,1P:임시+확정+처방,2C/4C:확정,2P/4P/5P:확정+처방
- + model.getValue("/root/init/WorkData/cond/cartstat") + "▦" // 8 현재 화면의 Cart 상태
- + model.getValue("/root/main/cond/cartsavestat") + "▦" // 9 호출 구분(T;임시, C:확정)
- + model.getValue("/root/main/operation/list/oproomcd") + "▩"; // 10 화면 조회된 수술방번호
- // Summit Instance 생성
- model.removenode("/root/send");
- // 처방자료가 있는 경우를 Check한다.
- if (PrcpIdx > 0) {
- model.makeValue("/root/send/saveflaginfo", FlagInfoHeader+FlagInfoData);
- model.makeValue("/root/send/savergstinfo", RgstInfoHeader+RgstInfoData);
- model.makeValue("/root/send/saveprcpinfo", PrcpInfoHeader+PrcpInfoData);
-
- //처방인증데이터 생성
- if(submit("TRMNW10906")){
- var signbfcnts = model.getValue(sSIGNDATA_PATH + "/signbfcnts");
- var signuserid = getUserInfo("userid");
- var dschnotiyn = model.getValue(sSIGNDATA_PATH + "/dschnotiyn");
- if(dschnotiyn == "Y"){
- messageBox("해당 환자는 간호사 퇴원 확정된 상태이므로 처방을 저장을 할 수 없습니다.", "E000");
- return;
- }
- // -----------------------(2010.08.18 센터)start--------------------
- var signinfo = "";
- if (htmlwindow.DEVSystem != "true") {
- signinfo = fMakeSignData(signbfcnts, signuserid, true); // 항상 인증서 비밀번호 확인 설정(true)_20080909(ByJA)
- } else {
- signinfo = "A"; //인증저장모듈 로직 제외 by pyw
- }
- // -----------------------(2010.08.18 센터)start--------------------
- if(signinfo == "" || signinfo == "-"){ //인증저장 취소
- return;
- }else{
- model.setValue(sSIGNDATA_PATH + "/signaftcnts", signinfo); //true : 처방저장할 때마다 인증저장 태움
- var savesignlist = getNodeListCSV(model.instances(0).selectNodes(sSIGNDATA_PATH));
- model.makeValue("/root/send/savesigninfo", savesignlist); //사인 정보
- }
- }else{
- return;
- }
- model.makeValue("/root/send/savemrsminfo", sMrsmHeader+sMrsmInfoData); //일반청구물품
- model.makeNode("/root/send/refcond" ); //저장 후 조회조건
- model.copyNode("/root/send/refcond" , sPrcpDataPat ); //저장 후 조회조건
- }else {
- model.makeValue("/root/send/saveflaginfo", FlagInfoHeader);
- model.makeValue("/root/send/savergstinfo", RgstInfoHeader);
- model.makeValue("/root/send/saveprcpinfo", PrcpInfoHeader);
- model.makeValue("/root/send/savemrsminfo", sMrsmHeader);
- model.makeNode("/root/send/refcond" );
- model.copyNode("/root/send/refcond" , sPrcpDataPat ); // 저장 후 조회조건
- }
- model.makeValue("/root/send/mnphctoslist",MnphctosData); // CaseCart물품의 임시처방내역(CCR에서확정)
- model.makeValue("/root/send/mnphccollist",MnphccolData); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- model.makeValue("/root/send/mmohoprslist",Mmohoprslist); // 수술 예약정보
- //model.makeValue("/root/send/refcond/cartsavestat", model.getValue("/root/main/cond/cartsavestat"));
- if( SubmitCount < 1 ) {
- if( wCartStat < "9" ) {
- if( messageBox("수정된 내역이 없습니다.! ", "Q002") != 6 ) return;
- if( wCartStat >= "5" ) {//확정처방이상이면 인증타기
- if (Sign.signprocess() == true){
- }else { return; }
- }
- model.removenode("/root/send");
- model.makeValue("/root/send/reqdata/oprsrvno", model.getValue(gPathNode[6]+"/oprsrvno"));
- model.makeValue("/root/send/reqdata/ophistno", model.getValue(gPathNode[6]+"/ophistno"));
- model.makeValue("/root/send/reqdata/cartgubn", model.getValue("/root/init/WorkData/cond/cartgubn"));
- model.makeValue("/root/send/reqdata/cartstat", wCartStat);
- submit("TXMNP01809", false);
- fQueryData();
- return;
- }else {
- messageBox("수정된 내역이 없습니다.! ", "E000");
- return;
- }
- }
- //2008-07-21 오전 9:18:49 처방 마감 정보 추가 taebum
- fnEndddSave(pStat);
- //2008-10-31 오후 8:16:40 taebum 소급적용 관련 interface 연동 추가
- if(sRecalddStr != "" && sRecalddStr != "undefined" || sRecalddStr != null){
- var sRecalArr = sRecalddStr.split("▧");
- if(sRecalArr.length > 0){
- for(var m = 0; m < sRecalArr.length; m++){
- if(sRecalArr[m] == "" || sRecalArr[m] == null || sRecalArr[m] == "undefined"){
- //값 없음.
- }else{
- if(sRecalfromdd == ""){
- sRecalfromdd = sRecalArr[m];
- sRecaltodd = sRecalArr[m];
- }else{
- if(sRecalArr[m] < sRecalfromdd){
- sRecalfromdd = sRecalArr[m];
- }
- if(sRecalArr[m] > sRecaltodd){
- sRecaltodd = sRecalArr[m];
- }
- }
- }
- }
- }
- }
- if( sRecalfromdd != "" && sRecalfromdd != null && sRecalfromdd != "undefined" &&
- sRecaltodd != "" && sRecaltodd != null && sRecaltodd != "undefined" ){
- var sTempOprsXpath = "/root/main/MmohoprsLists/mmohoprslist/";
- //2009.05.07 소급시작일자가 기본값일때 현재 날짜로 변경
- if( sRecalfromdd == "00000000" ) {
- //sRecalfromdd = getCurrentDate();
- sRecalfromdd = model.getValue(gPathNode[6]+"/opcnfmdd");
- }
- if( sRecaltodd == "00000000" ) {
- sRecaltodd = getCurrentDate();
- }
- var sTempColumnInfo = "status▦pid▦indd▦cretno▦recalfromdd▦recaltodd▦instcd▦mskind▦histstat▦genrdd▦tretrslt▦errcnts▦retcgenrplce▩";
- var sTempColumnData = "U" +"▦"+ //01 상태
- sPrcpPid +"▦"+ //02 등록번호 원무key
- ordindd +"▦"+ //03 입원일자 원무key
- cretno +"▦"+ //04 생성번호 원무key
- sRecalfromdd +"▦"+ //05 재계산할 시작일자 재계산할시작일자(yyyymmdd) 오늘이 아닌 이전일자
- sRecaltodd +"▦"+ //06 재계산할 종료일자 재계산할종료일자(yyyymmdd) 오늘이 아닌 이전일자
- getUserInfo("dutplceinstcd") +"▦"+ //07 기관코드
- "M" +"▦"+ //08 주부유형
- "Y" +"▦"+ //09 이력상태
- getCurrentDate() +"▦"+ //10 발생일자
- "M" +"▦"+ //11 처리결과
- "" +"▦"+ //12 오류내용(처리결과)
- "G" +"▩"; //13 소급발생장소 W:원무, C:진료, G:간호, L:LIS, A:지원부서
- model.makeValue("/root/send/pamsogeubinfo", sTempColumnInfo+sTempColumnData);
- }
-
- if( submit("TXMNP01803", false) ) { // 정보저장
- if( wCartStat == "5" ) {
- //오류팝업
- var prcpErrList = model.instances(0).selectNodes( "/root/temp/result/prcperrlist" );
- if( prcpErrList.length > 0 ) {
- if( !isNull(model.getValue ( "/root/temp/result/prcperrlist/prcpcd")) ){
- var xpt = window.screenleft + 100;
- var ypt = window.screenTop + 50;
- var coord = getRelativeCoordinate (xpt, ypt);
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/temp/result", "/root/result", "", false );
- model.removeNodeset("/root/temp/result/prcperrlist");
- //fQueryData(); // 조회
- return;
- }
- }
- }
- if( model.getValue("/root/main/cond/cartsavestat") != "T" ) {
- model.setValue("/root/init/WorkData/cond/cartstat", wCartStat);
- cmb_cartstat.refresh();
- }
- gRvStat = wCartStat;
- // 2009-03-17 YCD 응급 CartBag 불출시 팝업, 재조회 처리 안함.
- if(model.getValue("/root/temp/cartoutflag") != "E" ){
- var sMsgFlag = (pStat == "D") ? "삭제가" : "저장이";
- messageBox("자료 "+ sMsgFlag, "I002");
- if( delTempSaveYN == "Y" ) fCnclDeleteRows(); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- fQueryData(); // 조회
- }
- }else {
-
- if( delTempSaveYN == "Y" ) fCnclDeleteRows(); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- fQueryData();
-
- }
- } //--- End Of function fDataSave(pStat){
- // ※ 인증데이터 생성함수 만들기
- function fMake_SignData(){
- Sign.certreload = true;
- Sign.addnode("/root/exotinfo/signotlists" );
- Sign.addnode("/root/exotinfo/signexlists" );
- }
- // --------------------------------------------------
- // 버튼 Action에 대한 처리구분 찾기
- // --------------------------------------------------
- function fActionCodeCheck(pCode) {
- var ii = 0 ;
- var sIdx = 999;
- var rData = ""
- //
- while(tActCode.length > ii) {
- if (tActCode[ii] == pCode) {
- sIdx = ii;
- ii = tActCode.length;
- }
- ii++;
- }
- //
- if (sIdx != 999) {
- rData = tActProc[sIdx];
- }
- return rData;
- }
- //
- function fTitleCreate(){
- var TitleData = "oprsrvno" + "▦" // 01 수술예약(의뢰)번호 (년도 + 일련번호)
- + "cartgubn" + "▦" // 02 Cart구분 (O:수술,A:마취)
- + "ordseq" + "▦" // 03 처방순번
- + "instcd" + "▦" // 04 병원기관코드(코드정의서 Z0007 참조)
- + "goodcd" + "▦" // 05 물품코드
- + "allsizespecid" + "▦" // 06 ALLSIZE규격ID
- + "goodcls" + "▦" // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- + "goodqty" + "▦" // 08 물품수량
- + "addreductqty" + "▦" // 09 가감수량
- + "payflagcd" + "▦" // 10 급여구분코드 (코드정의서 M0029 참조)
- + "oproomcd" + "▦" // 11 수술실코드
- + "roomdeptcd" + "▦" // 12 수술방부서코드 01/17 추가
- + "prcpmemo" + "▦" // 13 처방수정MEMO(사유) 01/17 추가
- + "prcpdd" + "▦" // 14 처방일자
- + "prcpno" + "▦" // 15 처방일자별 일련번호
- + "prcphistno" + "▦" // 16 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
- + "pid" + "▦" // 17 등록번호
- + "reqtabcls" + "▦" // 18 테이블구 T:임시처방, C: 확정처방
- + "rowno" + "▦" // 19 줄번호
- + "recflag" + "▦" // 20 U:수정,I:입력구분
- + "drugmthdspccd" + "▦" // 21 투여방법
- + "reqmthd" + "▦" // 22 청구방법
- + "goodcrflag" + "▦" // 23 물품발생구분
- + "calculyn" + "▦" // 23 산정여부
- + "oldprcpno" + "▦" // 25 이전 prcpno
- + "oldpid" + "▦" // 26 이전 PID
- + "signno" + "▦" // 27 인증번호
- + "purcflag" + "▦" // 28 구매구분
- + "grupcd" + "▦" // 29 그룹코드
- + "erprcpflag" + "▦" // 30 응급처방구분 20110412 이선경(경북대)
- + "erbgcd" + "▩"; // 31 응급카트구분
-
- return TitleData;
- }
- // Cart Data 구성
- function fCartConstruct(pPrcpdd) {
- //2008-08-18 오후 4:29:23 taebum allsized가 -로 들어가 있을 경우 0로 수정
- //2008-08-19 오전 11:01:37 taebum allsized가 0로 들어가 있을 경우 -로 수정
- if(SvAllsizespecid == "0" || SvAllsizespecid == "" || SvAllsizespecid == null || SvAllsizespecid == "undefined"){
- SvAllsizespecid = "-";
- }
- var SvOrdseq_1 = "";
- if(SvRecflag != "I") SvOrdseq_1 = SvOrdseq ;
- var cData = SvOprsrvno + "▦" // 01 수술예약(의뢰)번호 (년도 + 일련번호)
- + SvCartgubn + "▦" // 02 Cart구분 (O:수술,A:마취)
- + SvOrdseq_1 + "▦" // 03 처방순번
- + SvInstcd + "▦" // 04 병원기관코드(코드정의서 Z0007 참조)
- + SvGoodcd + "▦" // 05 물품코드
- + SvAllsizespecid + "▦" // 06 ALLSIZE규격ID
- + SvGoodcls + "▦" // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- + SvGoodqty + "▦" // 08 물품수량
- + SvAddreductqty + "▦" // 09 가감수량
- + SvPayflagcd + "▦" // 10 급여구분코드 (코드정의서 M0029 참조)
- + SvOproomcd + "▦" // 11 수술실코드
- + SvRoomdeptcd + "▦" // 12 수술방부서코드 01/17 추가
- + SvPrcpmemo + "▦" // 13 처방수정MEMO(사유) 01/17 추가
- + pPrcpdd + "▦" // 14 처방일자
- //+ SvPrcpdd + "▦" // 14 처방일자 //2008-10-04 오후 1:21:50 taebum 현재일자로 수정.
- + SvPrcpno + "▦" // 15 처방일자별 일련번호
- + SvPrcphistno + "▦" // 16 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
- + SvPid + "▦" // 17 등록번호
- + SvReqtabcls + "▦" // 18 테이블구 T:임시처방, C: 확정처방
- + SvRowno + "▦" // 19 줄번호
- + SvRecflag + "▦" // 20 U:수정,I:입력, D:삭제 구분
- + SvDrugMthdSpccd + "▦" // 21 투여방법
- + sReqmthd + "▦" // 22 청구방법 1 : 처방성, 3: 일반청구 2: 정량보충
- + sGoodCrFlag + "▦" // 23 물품발생구분(정규 : S, 응급 : E)
- + sCalCulYn + "▦" // 24 산정여부
- + sPrcpno + "▦" // 25 이전 prcpno
- + sPid + "▦" // 26 이전 PID
- + sSignNo + "▦" // 27 인증번호
- + sPurcflag + "▦" // 28 구매구분
- + sGrupcd + "▦" // 29 그룹코드
- + sErPrpcFlag + "▦" // 30 응급처방구분 20110412 이선경(경북대)
- + sErbgcd + "▩"; // 31 응급카트구분 20120718 김병국(경북대)
-
- return cData;
- }
- // --------------------------------------------------
- // 처방 Header 구성
- // --------------------------------------------------
- function fPrcpHeader(){
- // --------------------------------------------------
- // 지원부서 처방저장 Interface - 공통 사용
- // --------------------------------------------------
- // 저장구분정보(saveFlagInfoVO) -> "saveFlagInfo"
- // --------------------------------------------------
- FlagInfoData = "";
- FlagInfoHeader = "savedataflag" +"▦" // 01 저장자료구분 (2:처방)
- + "saveflag" +"▦" // 02 저장구분 (O:외래, I:입원, E:응급, S:건진)
- + "prcpflag" +"▦" // 03 처방구분 (코드정의서 M0035 참조 "0"을 제외한 해당 값을 넣어주세요...)1:정기,2:응급,3:추가
- + "inptflag" +"▦" // 04 입력구분 (코드정의서 M0034 참조)
- + "pamflag" +"▦" // 05 원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
- + "diagflag" +"▦" // 06 진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ("Y"이면 진단없이 처방 저장이 안됨)
- + "prcperrflag" +"▦" // 07 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
- + "deptcd" +"▦" // 08 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
- + "deptnm" +"▦" // 09 부서명 (입력자 또는 로그인한 사용자의 부서명)
- + "userid" +"▦" // 10 사용자ID (입력자 또는 로그인한 사용자ID)
- + "usernm" +"▦" // 11 사용자명 (입력자 또는 로그인한 사용자명)
- + "signyn" +"▦" // 12 전자서명여부 (Y/N)
- + "prcpdd" +"▩"; // 13 처방일자
- // --------------------------------------------------
- // 저장등록정보(saveRgstInfoVO) ->" saveRgstInfo"
- // --------------------------------------------------
- RgstInfoData = "";
- RgstInfoHeader = "pid" +"▦" // 1 등록번호(원무Key)
- + "orddd" +"▦" // 2 진료일자(원무Key) - 입원일경우는 "-"
- + "indd" +"▦" // 3 입원일자(원무Key) - 외래일경우는 "-"
- + "cretno" +"▦" // 4 생성번호(원무Key)
- + "orddeptcd" +"▦" // 5 진료과(원무)
- + "orddrid" +"▦" // 6 진료의ID(원무)
- + "instcd" +"▦" // 7 기관코드
- + "orddeptnm" +"▦" // 8 진료과ID(원무Key)
- + "orddrnm" +"▦" // 9 진료의명(원무Key)
- + "hngnm" +"▦" // 10 환자명
- + "sa" +"▦" // 11 성별나이
- + "ordtype" +"▩"; // 12 외래입원구분
- // --------------------------------------------------
- // 저장처방정보(savePrcpInfoVO) ->" savePrcpInfo"
- // --------------------------------------------------
- PrcpInfoData = "";
- PrcpInfoHeader = "status" +"▦" // 01 신규(I), DC(C)
- + "rowno" +"▦" // 02 줄번호 (병리 요구)
- + "prcpdd" +"▦" // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- + "prcpno" +"▦" // 04 처방번호 (status가 "I"일 경우 0)
- + "prcphistno" +"▦" // 05 처방이력번호 (status가 "I"일 경우 0)
- + "instcd" +"▦" // 06 기관코드
- + "pid" +"▦" // 07 등록번호(원무Key)
- + "orddd" +"▦" // 08 진료일자(원무Key) - 입원환자일 경우 indd
- + "cretno" +"▦" // 09 생성번호(원무Key)
- + "orddeptcd" +"▦" // 10 진료과(원무)
- + "orddrid" +"▦" // 11 진료의ID(원무)
- + "prcpgenrflag" +"▦" // 12 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
- + "prcpstatcd" +"▦" // 13 처방상태 : "000"
- + "prcpkindcd" +"▦" // 14 처방종류 : "20"
- + "prcpcd" +"▦" // 15 처방코드
- + "calcscorcd" +"▦" // 16 수가코드
- + "inclprcpcd" +"▦" // 17 종속처방코드 ("-")
- + "inclprcpno" +"▦" // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성)
- + "prcpexecdeptcd" +"▦" // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
- + "prcphopedd" +"▦" // 20 처방희망일자 (처방일자 이전으로 발생불가)
- + "prcpqty" +"▦" // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
- + "prcpqtyunitflag" +"▦" // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- + "prcptims" +"▦" // 23 처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
- + "prcpdayno" +"▦" // 24 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
- + "payflagcd" +"▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
- + "erprcpflag" +"▦" // 26 응급처방구분 (Y/N)
- + "precureprcpflag" +"▦" // 27 선처치처방구분 (Y/N)
- + "nigtprcpflag" +"▦" // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우
- + "portprcpflag" +"▦" // 29 포터블처방구분 (Y/N)
- + "fixprcpflag" +"▦" // 30 정액처방구분 (Y/N)
- + "choiordflag" +"▦" // 31 선택처방구분 (Y/N) -> 만약 "-"일 경우 원무정보 기준으로 처리
- + "anamneflag" +"▦" // 32 기왕력(증)구분 (Y/N)
- + "prcpdirecflag" +"▦" // 33 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : "-"
- + "angioflagcd" +"▦" // 34 Angio구분 (코드정의서 M0006 참조) : "-"
- + "opansflagcd" +"▦" // 35 수술마취구분 (코드정의서 M0007, M0008 참조) : "-"
- + "ansttm" +"▦" // 36 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
- + "offictourhealexamflag" +"▦" // 37 출장검진구분 (Y/N)
- + "stemcellflag" +"▦" // 38 "00NNN" 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
- + "hosinhosoutflag" +"▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-")
- + "hosinprcpresncd" +"▦" // 40 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 "00")
- + "issdeptcd" +"▦" // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
- + "prcpauthflag" +"▦" // 42 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
- + "prcpinptflag" +"▦" // 43 처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
- + "prcpsignflag" +"▦" // 44 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
- + "oprsrvno" +"▦" // 45 수술예약번호(0)
- + "clincstdyflag" +"▦" // 46 임상연구구분 (Y/N)
- + "clincstdycd" +"▦" // 47 임상연구코드 ("-") -> 임상연구구분이 "Y"일 경우 임상연구코드를 등록
- + "drugmthdspccd" +"▦" // 48 *투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-")
- + "prcpdelivefact" +"▦" // 49 처방전달사항
- + "tootfact" +"▦" // 50 치식 (병리만 사용, 나머지는 "-")
- + "matrsetprcpspec" +"▦" // 51 *재료처방내용 ("-") -> 추후정의
- + "calcflag" +"▦" // 52 계산구분 (Y/N)
- + "rsrvflag" +"▦" // 53 예약구분 (Y/N)
- + "rsrvdd" +"▦" // 54 예약일자 ("N"일 경우 "00000000")
- + "rsrvtm" +"▦" // 55 예약시간 ("N"일 경우 "000000")
- + "rsrvrid" +"▦" // 56 예약자ID ("-")
- + "execdd" +"▦" // 57 실시일자 ("00000000")
- + "exectm" +"▦" // 58 실시시간 ("000000")
- + "execrid" +"▦" // 59 실시자ID ("-")
- + "direcprcplnkdd" +"▦" // 60 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
- + "direcprcplnkno" +"▦" // 61 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
- + "ordreqlnkno" +"▦" // 62 진료의뢰연계번호 (0)
- + "testreqlnkno" +"▦" // 63 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
- + "matrallsizespecid" +"▦" // 64 재료 allsize id
- + "exptmthdfact" +"▦" // 65 기타 용법
- + "opansflagcd" +"▦" // 66 수술마취구분
- + "prcpflag" +"▦" // 67 처방구분 (코드정의서 M0035 참조 "0"을 제외한 해당 값을 넣어주세요...)1:정기,2:응급,3:추가
- + "prcpnm" +"▦" // 68 처방명
- + "prcpclscd" +"▦" // 69 처방분류코드
- + "drugrateqty" +"▦" // 70 투여비율
- + "aftcertflag" +"▦" // 71 후인증 구분(11:수술간호처방)
- + "aftcertdrid" +"▦" // 72 후인증의사(수술:집도의, 마취(회복):마취의)
- + "subcretno" +"▩"; // 73 생성번호(부유형)
- //+ "drugrateqty" +"▩"; // 70 투여비율
- //+ "aftcertflag" +"▦" // 71 후인증 구분(11:수술간호처방)
- //+ "aftcertdrid" +"▩"; // 72 후인증의사(수술:집도의, 마취(회복):마취의)
- // --------------------------------------------------
- // 저장처방정보(saveSignInfoVO) ->" saveSignInfo"
- // --------------------------------------------------
- SignInfoData = "";
- SignInfoHeader = "signdd" +"▦" // 01 서명일자
- + "signno" +"▦" // 02 서명번호
- + "instcd" +"▦" // 03 기관코드
- + "pid" +"▦" // 04 등록번호
- + "orddd" +"▦" // 05 진료일자
- + "cretno" +"▦" // 06 생성번호
- + "signflag" +"▦" // 07 서명구분
- + "signgenrflag" +"▦" // 08 서명발생구분
- + "rgstdeptcd" +"▦" // 09 등록부서코드
- + "rgstdd" +"▦" // 10 등록일자
- + "rgsttm" +"▦" // 11 등록시간
- + "rgstrid" +"▦" // 12 등록자ID
- + "updtdeptcd" +"▦" // 13 수정부서코드
- + "updtdd" +"▦" // 14 수정일자
- + "updttm" +"▦" // 15 수정시간
- + "updtrid" +"▦" // 16 수정자ID
- + "fstrgstrid" +"▦" // 17 최초등록자ID
- + "fstrgstdt" +"▦" // 18 최초등록일시
- + "lastupdtrid" +"▦" // 19 최종수정자ID
- + "lastupdtdt" +"▦" // 20 최종수정일시
- + "signbfcnts" +"▦" // 21 서명전내역
- + "signaftcnts" +"▩"; // 22 서명후내역
- } // 처방 Header 생성 fPrcpHeader()
- // --------------------------------------------------
- // 처방저장
- // --------------------------------------------------
- function fInitPrcpData(){
- // 처방정보 Save를 위한 Node생성
- //var ordtype = ""; //환자진료형태(외래 O, 응급 E ,입원 I, D:DSC)
- var deptcd = ""; //부서코드
- var deptnm = ""; //부서명
- //var indd = ""; //입원일자
- //var orddd = ""; //진료일자
- //var prcpdd = ""; //처방일자
- var prcphistno = ""; //처방이력번호
- var prcpno = ""; //처방번호
- //var ordindd = ""; //진료일자(외래일 경우 orddd, 입원일 경우 indd)
- //var cretno = ""; //환자 일자별 일련번호
- ordtype = model.getValue(gPathNode[6] + "/oppatflagcd"); // 환자진료형태(외래 O, 응급 E ,입원 I)
- deptcd = getUserInfo("dutplcecd"); // 로인 사용자 근무지 부서 코드
- deptnm = getUserInfo("dutplcenm"); // 로인 사용자 근무지 부서 코드명
- // 사용 및 반납에 관한 부서는 차대리가 준비중
- if (ordtype == "O") { //외래
- indd = "-"; //입원일자(원무Key) - 외래일경우는 "-"
- cretno = model.getValue(gPathNode[6] + "/o_cretno");
- orddd = model.getValue(gPathNode[6] + "/o_orddd" );
- ordindd = model.getValue(gPathNode[6] + "/o_orddd" );
- } else { //입원
- orddd = "-" ; //진료일자(원무Key) - 입원일경우는 "-"
- cretno = model.getValue(gPathNode[6] + "/i_cretno");
- indd = model.getValue(gPathNode[6] + "/i_indd" );
- ordindd = model.getValue(gPathNode[6] + "/i_indd" );
- }
- //2008-07-31 오후 4:31:31 taebum allsize가 0일 경우에는 -로 처리
- if(SvAllsizespecid == "0"){
- SvAllsizespecid = "-";
- }
-
- // 저장구분정보(saveFlagInfoVO)
- // 2007.12.05 + "Y" + "▦" // 07 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
- // --------------------------------------------------------------
- FlagInfoData = "2" + "▦" // 01 저장자료구분 (2:처방)
- + ordtype + "▦" // 02 저장구분 (O:외래, I:입원, E:응급, S:건진)
- + "2" + "▦" // 03 처방구분(M0035 처방권한에 대한 구분종류 : 간호 추가처방)
- + "10" + "▦" // 04 입력구분(M0034 처방입력에 대한 구분종류 : 간호처방) 10:Cart처방
- + "Y" + "▦" // 05 원무정보 처리구분 (Y/N)
- + "N" + "▦" // 06 진단정보 처리구분 (Y/N)
- + "Y" + "▦" // 07 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
- + deptcd + "▦" // 08 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
- + deptnm + "▦" // 09 부서명 (입력자 또는 로그인한 사용자의 부서명)
- + getUserInfo("userid") + "▦" // 10 사용자ID (입력자 또는 로그인한 사용자ID)
- + getUserInfo("usernm") + "▦" // 11 사용자명 (입력자 또는 로그인한 사용자명)
- + "Y" + "▦" // 12 전자서명여부 (Y/N)
- + getCurrentDate() + "▩"; // 13 처방일자
- // 저장등록정보(saveRgstInfoVO)
- RgstInfoData = sPrcpPid + "▦" // 1 등록번호(원무Key)
- + orddd + "▦" // 2 진료일자(원무Key) - 입원일경우는 "-"
- + indd + "▦" // 3 입원일자(원무Key) - 외래일경우는 "-"
- + cretno + "▦" // 4 생성번호(원무Key)
- + model.getValue(gPathNode[6] + "/orddeptcd" ) + "▦" // 5 진료과(원무)
- + model.getValue(gPathNode[6] + "/orddrid" ) + "▦" // 6 진료의ID(원무)
- + model.getValue(gPathNode[6] + "/instcd" ) + "▦" // 7 기관코드
- + model.getValue(gPathNode[6] + "/depthngnm" ) + "▦" // 8 진료과명(원무)
- + model.getValue(gPathNode[6] + "/perfdridnm" ) + "▦" // 9 진료의명(원무)
- + model.getValue(gPathNode[6] + "/patname" ) + "▦" // 10 환자명
- + model.getValue(gPathNode[6] + "/sa" ) + "▦" // 11 성별나이
- + model.getValue(gPathNode[6] + "/oppatflagcd") + "▩"; // 12 외래입원구분
- // 저장처방정보(savePrcpInfoVO) 자료를 구성한다.
- PrcpData = "";
- PrcpData0101 = "" ; // 01 신규(I), DC(C)
- PrcpData0205 = "" ; // 02 줄번호 (병리 요구)
- // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- // 04 처방번호 (status가 "I"일 경우 0)
- // 05 처방이력번호 (status가 "I"일 경우 0)
- PrcpData0614 = model.getValue(gPathNode[6] + "/instcd") + "▦" // 06 기관코드
- + sPrcpPid + "▦" // 07 등록번호(원무Key)
- + ordindd + "▦" // 08 진료일자(원무Key) - 입원환자일 경우 indd
- + cretno + "▦" // 09 생성번호(원무Key)
- + model.getValue(gPathNode[6]+"/orddeptcd") + "▦" // 10 진료과(원무)
- + model.getValue(gPathNode[6]+"/orddrid") + "▦" // 11 진료의ID(원무)
- + ordtype + "▦" // 12 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
- + "610" + "▦" // 13 처방상태 : "000" , 610:실시완료
- + "35" + "▦"; // 14 처방종류 : "20" , 35:수술중 2007.12.20 수술중생성으로 35로 변경
- PrcpData1520 = "" ; // 15 처방코드
- // 16 수가코드 MMBTPRCD의 수가 코드 가져올것
- // 17 종속처방코드 ("-") => default : "-"
- // 18 종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0
- // 19 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 "-"로 처리)
- // 20 처방희망일자 (처방일자 이전으로 발생불가)
- PrcpData2122 = "" ; // 21 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) 0 => default : 1
- // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-") => default : "-"
- //PrcpData2340 = "1" + "▦" // 23 처방횟수 (1) (입원일 경우 횟수에 따라 풀림) => default : 1
- PrcpData2324 = "1" + "▦" // 23 처방횟수 (1) (입원일 경우 횟수에 따라 풀림) => default : 1
- + "1" + "▦"; // 24 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김) => default : 1
- PrcpData2528 = "" + "▦" // 25 급여구분코드 (M0029 참조) -> "-"로 넣으주면 환자의 보험유형에 따라 자동 발생
- + + "▦" // 26 응급처방구분 (Y/N) ==> default : "N"
- + "" + "▦" // 27 선처치처방구분 (Y/N) ==> default : "N" MMBTPRCD
- + "" + "▦" // 28 야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : "N" // 2009-03-09 ycd 야간처방구분 추가
-
- PrcpData3940 = "-" + "▦" // 39 원내외구분(건진은 "I", 약이 아닐경우 "-") => default : "-"
- + "00" + "▦"; // 40 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 "00") => default : "00"
- PrcpData4141 = "" ; // 41 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> "-" 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : "-"
- PrcpData4243 = "2" + "▦" // 42 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
- + "10" + "▦"; // 43 처방입력구분(저장구분정보의 inptflag와 동일하게 처리) 10:Cart처방
- + "0" + "▦" // 44 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료) => default : "2"
- PrcpData4547 = model.getValue(gPathNode[6] +"/oprsrvno") + "▦" // 45 수술예약번호(0) => default : "-"
- + "N" + "▦" // 46 임상연구구분 (Y/N)
- + "-" + "▦"; // 47 임상연구코드 ("-") -> 임상연구구분이 "Y"일 경우 임상연구코드를 등록 => default : "-"
- //PrcpData4247 = "2" + "▦" // 42 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
- // + "10" + "▦" // 43 처방입력구분(저장구분정보의 inptflag와 동일하게 처리) 10:Cart처방
- // + "0" + "▦" // 44 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료) => default : "2"
- // + model.getValue(gPathNode[6] +"/oprsrvno") + "▦" // 45 수술예약번호(0) => default : "-"
- // + "N" + "▦" // 46 임상연구구분 (Y/N)
- // + "-" + "▦"; // 47 임상연구코드 ("-") -> 임상연구구분이 "Y"일 경우 임상연구코드를 등록 => default : "-"
- PrcpData4848 = "" ; // 48 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-") => default : "-"
- //2008-05-30 오전 11:13:16 김태범 수정 - 처방 전달사항을 default '-'로 수정함.
- PrcpData5063 = "-" + "▦" // 50 치식 (병리만 사용, 나머지는 "-") => default : "-"
- + "-" + "▦" // 51 재료처방내용 ("-") -> 추후정의
- + PrcpData52 + "▦" // 52 계산구분 (Y/N)
- + "N" + "▦" // 53 예약구분 (Y/N)
- + "00000000" + "▦" // 54 예약일자 ("N"일 경우 "00000000")
- + "000000" + "▦" // 55 예약시간 ("N"일 경우 "000000")
- + "-" + "▦" // 56 예약자ID ("-")
- + getCurrentDate() + "▦" // 57 실시일자 ("00000000")
- + getCurrentTime() + "▦" // 58 실시시간 ("000000")
- + getUserInfo("userid") + "▦" // 59 실시자ID ("-")
- + "00000000" + "▦" // 60 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
- + "0" + "▦" // 61 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
- + "0" + "▦" // 62 진료의뢰연계번호 (0)
- + "0" + "▦"; // 63 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
- PrcpData64 = "" + "▦"; // 64 allsize
- PrcpData65 = "" + "▦"; // 65 기타 용법
- PrcpData66 = "-" + "▦"; // 66 수술마취구분 M0007,M0008 -> 수술처방일경우 4 주수술로 보냄
- PrcpData67 = "2" + "▦"; // 67 처방구분 (코드정의서 M0035 참조 "0"을 제외한 해당 값을 넣어주세요...)1:정기,2:응급,3:추가
- PrcpData68 = "" + "▦"; // 68 처방명
- PrcpData69 = "" + "▦" // 69 처방분류코드
- + "-" + "▦"; // 70 투여비율
-
- } // 처방저장 fInitPrcpData()
- /**
- * @group :
- * @ver : 2008-07-16 오후 6:05:11
- * @by : 김태범
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 반환사유내역등록기능
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fnEndddSave(pFlag) {
- //현재 카트 상태가 확정일 경우에만 해당함.
- var sCcrtStat = model.getValue("/root/init/WorkData/cond/cartstat");
- if(sCcrtStat != "5" && sCcrtStat != "9"){ // -- 확정, 반납
- return;
- }
- var sPathCheckStr = "/root/main/CartOrdData/ListDiposit▨" //처지처방
- + "/root/main/CartOrdData/ListSupplies▨" //Supplies
- + "/root/main/CartOrdData/ListSutures▨" //Sutures
- + "/root/main/CartOrdData/ListDrug▨" // Drug
- + "/root/main/CartOrdData/ListInstrument▨" //Instrument
- + "/root/main/CartOrdData/ListOpsupply"; //수술소모품
- var sGridPathStr = "grd_diposit▨"
- + "grd_supplies▨"
- + "grd_sutures▨"
- + "grd_drug▨"
- + "grd_instrument▨"
- + "grd_opsupply";
- var sPathCheckArr = sPathCheckStr.split("▨");
- var sGridPathkArr = sGridPathStr.split("▨");
- var sCurrentPath = "";
- var sCurrentGrid = "";
- var sinstcd = getUserInfo("dutplceinstcd");
- var sEndFlag = false;
- var sprcpdd = "";
- var sprcpno = "";
- var sprcphistno = "";
- var sexecprcpno = "";
- var sioflag = "";
- var sDeleteFlag = "";
- var sRecflag = "";
- var sTempSaveqty = "";
- var sTempOutqty = "";
- for(var i = 0; i < sPathCheckArr.length; i++){
- sEndFlag = false;
- sCurrentPath = sPathCheckArr[i];
- sCurrentGrid = sGridPathkArr[i];
- var iRows = getNodesetCount(sCurrentPath);
- /*
- switch (sCurrentGrid) {
- case "grd_diposit" :
- iRows = getNodesetCount(sCurrentPath);
- break;
- case "grd_supplies" :
- iRows = grd_supplies.rows - grd_supplies.fixedrows;
- break;
- case "grd_sutures" :
- iRows = grd_sutures.rows - grd_sutures.fixedrows;
- break;
- case "grd_drug" :
- iRows = grd_drug.rows - grd_drug.fixedrows;
- break;
- case "grd_instrument" :
- iRows = grd_instrument.rows - grd_instrument.fixedrows;
- break;
- case "grd_opsupply" :
- iRows = grd_opsupply.rows - grd_opsupply.fixedrows;
- break;
- default :
- break;
- }
- */
- for(var k = 1; k <= iRows; k++){
- if(pFlag == "D"){
- sDeleteFlag = model.getValue(sCurrentPath+"["+k+"]/delcheck");
- if(sDeleteFlag == "true" || sDeleteFlag == true){
- sprcpdd = model.getValue(sCurrentPath+"["+k+"]/prcpdd");
- sprcpno = model.getValue(sCurrentPath+"["+k+"]/prcpno");
- sprcphistno = model.getValue(sCurrentPath+"["+k+"]/prcphistno");
- fnEndddSaveData(sprcpdd, sprcpno, sprcphistno); //마감 요부 확인 후 사유 입력 팝업 호출
- }else{
- continue;
- }
- }else{
- sRecflag = model.getValue(sCurrentPath+"["+k+"]/recflag");
- if(sRecflag == "U"){
- sTempSaveqty = model.getValue(sCurrentPath+"["+k+"]/saveqty"); // 변경Check 수량 (물품수량 + 가감수량)
- sTempOutqty = model.getValue(sCurrentPath+"["+k+"]/outqty"); // 변경할 수량 (물품수량 + 가감수량)
- if(sTempSaveqty != sTempOutqty){
- sprcpdd = model.getValue(sCurrentPath+"["+k+"]/prcpdd");
- sprcpno = model.getValue(sCurrentPath+"["+k+"]/prcpno");
- sprcphistno = model.getValue(sCurrentPath+"["+k+"]/prcphistno");
- fnEndddSaveData(sprcpdd, sprcpno, sprcphistno); //마감 요부 확인 후 사유 입력 팝업 호출
- }else{
- continue;
- }
- }
- }
- }
- }
- }
- /**
- * 마감여부 조회 및 사유 입력 메세지 연동
- */
- function fnEndddSaveData(sprcpdd, sprcpno, sprcphistno){
- //alert("fnEndddSaveData 접근완료!! sprcpdd : "+sprcpdd+ " , sprcpno : "+ sprcpno+ " , sprcphistno : "+sprcphistno);
- var sPathEndSave = "/root/sendendresult/endinfo"; //반환사유정보생성path
- var sPathEndResult = "/root/endddresult/endddresult";
- var sPathEndCond = "/root/endddresult/endddresult/enddd"; //enddd 확인 결과(종료일자)
- var sPathEndCond2 = "/root/endddresult/endddresult/execprcpno"; //enddd 확인 결과(간호처방 풀림 일련번호)
- var sPathEndCond3 = "/root/endddresult/endddresult/instcd"; //enddd 확인 결과(간호처방 풀림 일련번호)
- var sexecprcpno = "";
- var sinstcd = "";
- var sioflag = getPatientInfoDetail("ioflag");
- model.removeNodeset(sPathEndSave);
- model.makeNode(sPathEndSave);
- model.removeNodeset(sPathEndResult);
- model.makeNode(sPathEndResult);
- model.removeNodeset("/root/sendendsearch");
- model.makeNode("/root/sendendsearch");
- model.makeValue("/root/sendendsearch/prcpdd", sprcpdd);
- model.makeValue("/root/sendendsearch/prcpno", sprcpno);
- model.makeValue("/root/sendendsearch/prcphistno", sprcphistno);
- //model.makeValue(sPathEndCond + "/execprcpno", sexecprcpno); 수술마취 처방은 1건 자동액팅 되므로 execprcpno는 prcphistno와 동일함.
- //model.makeValue(sPathEndCond + "/instcd", sinstcd);
- //model.makeValue(sPathEndCond + "/ioflag", sioflag);
- submit("TXMNP01806");
- // model.alert("enddd : "+ model.getValue("/root/endddresult/enddd"));
- //alert("TXMNP01806 조회완료!! "+model.getValue(sPathEndCond));
- //조회된 처방 내역이 없거나, 종료되지 않았을 경우 return 한다.
- var sTemEnddd = model.getValue(sPathEndCond);
- if ( (sTemEnddd.substr(0,8) == "99991231") ||(sTemEnddd == "") ||
- (sTemEnddd == null) ) {
- return;
- }
- sexecprcpno = model.getValue(sPathEndCond2);
- sinstcd = model.getValue(sPathEndCond3);
- model.removeNodeset(sPathEndSave);
- model.makeNode(sPathEndSave);
- model.removeNodeset(sPathEndSave);
- model.makeNode(sPathEndSave);
- model.makeValue(sPathEndSave+"/list/prcpdd", sprcpdd );
- model.makeValue(sPathEndSave+"/list/prcpno", sprcpno );
- model.makeValue(sPathEndSave+"/list/prcphistno", sprcphistno );
- model.makeValue(sPathEndSave+"/list/execprcpno", sexecprcpno );
- model.makeValue(sPathEndSave+"/list/instcd", sinstcd );
- model.makeValue(sPathEndSave+"/list/ioflag", sioflag );
- if (getNodesetCount (sPathEndSave+"/list") > 0 ) {
- modal("SPPAS03000", "2", "100", "100", "SPPAS03000", sPathEndSave, "root/target",
- "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
- model.removeNodeset(sPathEndSave);
- }
- }
- /* 일반청구 물품 재료집계 테이블로 쌓기 위한 Header 정보 Setting (EMR.MMODMRSM table 참고 ) */
- function fMrsmHeader(){
- sMrsmHeader = "genrdd" +"▦"
- + "genrno" +"▦"
- + "instcd" +"▦"
- + "pid" +"▦"
- + "orddd" +"▦"
- + "cretno" +"▦"
- + "orddeptcd" +"▦"
- + "orddrid" +"▦"
- + "prcpgenrflag" +"▦"
- + "prcpdd" +"▦"
- + "execprcpuniqno" +"▦"
- + "calcscorcd" +"▦"
- + "prcpflag" +"▦"
- + "execprcpqty" +"▦"
- + "execprcptims" +"▦"
- + "execprcpdayno" +"▦"
- + "execprcptotqty" +"▦"
- + "allsizespecid" +"▦"
- + "issdeptcd" +"▦"
- + "wardcd" +"▦"
- + "roomcd" +"▦"
- + "pamexecdd" +"▦"
- + "execdd" +"▦"
- + "exectm" +"▦"
- + "execrid" +"▦"
- + "sumflag" +"▦"
- + "sumdt" +"▦"
- + "goodcls" +"▦"
- + "ordseq" +"▦"
- + "cartgubn" +"▦"
- + "oprsrvno" +"▩";
- }
- /* ------------------------------------------------- */
- /* ------End Of List ------------------------------- */
- /* -------------------------------------------------- */
- function fSuppkind() {
- var pid = model.getValue("/root/main/MmohoprsLists/mmohoprslist/pid");
- var indd = model.getValue("/root/main/MmohoprsLists/mmohoprslist/i_indd");
-
- model.makeValue("/root/temp/send/pid", pid);
- model.makeValue("/root/temp/send/indd", indd);
-
- if(submit("TRMMO15701")){
- var nodelist = model.instances(0).selectNodes("/root/temp/patsupkind/patsupkind");
- if(nodelist != null) {
- if(nodelist.length > 1){
- clearParameter("SPMMO15700_subcretno");
- modal("SPMMO15700", "", "", "", "SPMMO15700", "/root/temp/patsupkind", "/root/main/patsupkind");
-
- var subcretno = getParameter("SPMMO15700_subcretno");
-
- if(subcretno == "0") {
- var rtn = messageBox("주유형으로 처방을 발행하시겠습니까?", "Q");
- if(rtn != "6") {
- return "false";
- }
- }
-
- if( subcretno == null || subcretno == "") {
- messageBox("유형을 선택하세요", "E");
- return "false";
- }
- model.makeValue("/root/temp/prcpinfo/subcretno", subcretno);
- }
- }
- } else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
- model.makeValue("/root/temp/prcpinfo/subcretno", "0");
- }
-
- }
|