123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
- 수술마취임시,확정,간호처방 저장 (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 = utlf_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){
- trace("01802 fDataSave()");
- 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 = ds_main_patinfocond_patinfo;
- var sCartStat = ds_init_WorkData_cond.getColumn(0, "cartstat"); // 1:임시,2:저장, 3:불출,4:처방,5:확정,9:반납
- var sCartUseYn = ds_main_cond.getColumn(0, "cartuseyn");//임시카트리스트 사용여부(카트사용여부)
- var sBefPrcpdd = "";
- var sPrcpclscd = "";
-
- sLoginDeptcd = ds_main_MmohoprsLists_mmohoprslist.getColumn(0, "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 = ds_init_WorkData_cond.getColumn(0, "cartgubn");
-
- //20101214_KNUH_Start 처방로봇수술여부 조회.
- if( ds_main_MmohoprsLists_mmohoprslist.getColumn(0, "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 = eval(gPathNode[6]).getColumn(0, "pid") ; // 환자번호
- // -------------------------------------------------------------------------------------
- // 수정 입력된 자료를 구성한다. 0000 : ▣
- // 물품구분별 For Loop 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- // -------------------------------------------------------------------------------------
- //2008-08-02 오후 6:25:12 taebum add 회복은 수술카트 사용
- var tempCartGb = ds_init_WorkData_cond.getColumn(0, "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 = eval(gPathNode[6]).getColumn(0, "prcpamtaddyn");
- if( utlf_isNull(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 = eval(gPathNode[6]).getColumn(0, "opcnfmdd");
- var sCalArr = new Array();
- var supcnt = 0;
- for( var Idx=0 ; Idx<5 ; Idx++ ){
- wCartPath = eval(gPathNode[8]+tPathCart[Idx]); // gPathNode[8] : "root/main/CartOrdData"
- sRowCnt = eval(sGridNm[Idx]).rowcount;
- PrcpData = "";
- sMrsmData = "";
- PrcpQtyUnitFlag = (Idx == 1) ? "3" : "-"; // 22 처방수량단위 (약품일 경우 "3", 그렇지 않을경우 "-")
- // ---------------------------------------------------
- // For Loop : 물품구분에 해당하는 Grid별 물품Check
- // ---------------------------------------------------
- for( var i=0 ; i<sRowCnt ; i++ ){
- SvRecflag = wCartPath.getColumn(i, "recflag"); // 17 U:수정,I:입력구분
- //2008-09-06 오후 1:55:14 taebum add 삭제된 경우 check 안되도록 수정 및 저장 시 전체 check 시 disable된 삭제처방이
- // 선택되었을 경우 skip 처리
- var tempDeleteyn = wCartPath.getColumn(i, "deleteyn"); //
- var tempDelcheck = wCartPath.getColumn(i, "delcheck"); //
- if( tempDeleteyn == "X" && tempDelcheck == "1" ){
- continue;
- }
- var delTempPid = wCartPath.getColumn(i, "pid"); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- var delTempSaveqty = wCartPath.getColumn(i, "saveqty"); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- var delTempOutqty = wCartPath.getColumn(i, "outqty"); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- var delTempPrcpno = wCartPath.getColumn(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=="1" && (delTempPrcpno=="0" || utlf_isNull(delTempPrcpno)) ){ //@@KNUH, 처방을추가했다가 바로 삭제하고 확정저장하는 경우, 저장하는 값에서 제외돼야 함 (2011.02.11 JJE)
- continue;
- }
-
- if ((pStat == "D") && (SvRecflag == "I")) continue; // { // 삭제 이면 입력인 자료는 제외한다.
- WkDelCheck = wCartPath.getColumn(i, "delcheck"); // 삭제구분
- WkDeleteYn = wCartPath.getColumn(i, "deleteyn"); // 삭제여부
- WkGoodQty = wCartPath.getColumn(i, "goodqty"); // 불출수량
- WkAddreductQty = wCartPath.getColumn(i, "addreductqty"); // 증감수량 = 변경수량 - 불출수량
- WkSaveQty = wCartPath.getColumn(i, "saveqty"); // 변경전 수량 = 불출수량 + 증감수량
- WkOutQty = wCartPath.getColumn(i, "outqty"); // 변경수량
- SvOprsrvno = wCartPath.getColumn(i, "oprsrvno"); // 01 수술예약(의뢰)번호 (년도 + 일련번호)
- SvCartgubn = wCartPath.getColumn(i, "cartgubn"); // 02 Cart구분 (O:수술,A:마취, R:회복) 2008-08-02 오후 6:49:10 taebum R:회복은 O수술을 같이 쓴다.
- WkOproomDeptcd = wCartPath.getColumn(i, "oproomdeptcd");
- sBefPrcpdd = wCartPath.getColumn(i, "prcpdd");
- sPrcpclscd = wCartPath.getColumn(i, "prcpclscd");
- sReqmthd = wCartPath.getColumn(i, "reqmthd");
- sGoodCrFlag = wCartPath.getColumn(i, "goodcrflag"); // 물품발생구분(정규 : S , 응급 : E )
- sInsuPynpy = wCartPath.getColumn(i, "insupynpy1"); // 급여구분
- sSignNo = wCartPath.getColumn(i, "signno"); // 인증번호
- sGrupcd = wCartPath.getColumn(i, "grupcd"); //그룹코드
-
- sErbgcd = wCartPath.getColumn(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 = wCartPath.getColumn(i, "anamneflag");
- var chkprcpno = wCartPath.getColumn(i, "prcpno");
- var subcretno = 0;
-
- if( chkprcpno == 0 ){
- if(subcret == "1") {
- if (supcnt == 0 ) {
- // alert(supcnt);
- var flag = fSuppkind();
- supcnt++;
- if(flag == "false") {
- return;
- }
- }
- var subcretno = ds_temp_prcpinfo.getColumn(0, "subcretno");
- } else {
- subcretno = "0"
- }
- }
-
-
- PrcpData2938 = "N" + "▦" // 29 포터블처방구분 (Y/N) ==> default : "N"
- + "N" + "▦" // 30 정액처방구분 (Y/N) ==> default : "N"
- + "N" + "▦" // 31 선택처방구분 (Y/N) -> 만약 "-"일 경우 원무정보 기준으로 처리 ==> default : "N"
- + (wCartPath.getColumn(i, "anamneflag") == "1" ? "Y" : "N") + "▦" // 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" + "▦"
- + eval(gPathNode[6]).getColumn(0, "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" + "▦"
- + eval(gPathNode[6]).getColumn(0, "perfdrid") + "▦";//후인증 구분(12:수술간호처방)+후인증 의사(수술:집도의, 마취(회복):마취의)
- }else {
- PrcpData44 = "0" + "▦";//후인증 필드
- PrcpData7172 = "-" + "▦" + "-" + "▦"
- }
- }
- //===============================================================================
- SvOrdseq = wCartPath.getColumn(i, "ordseq"); // 03 처방순번
- SvInstcd = wCartPath.getColumn(i, "instcd"); // 04 병원기관코드(코드정의서 Z0007 참조)
- SvGoodcd = utlf_transNullToEmpty(wCartPath.getColumn(i, "goodcd")); // 05 물품코드
- SvAllsizespecid = wCartPath.getColumn(i, "allsizespecid"); // 06 ALLSIZE규격ID
- SvGoodcls = wCartPath.getColumn(i, "goodcls"); // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- SvGoodqty = wCartPath.getColumn(i, "goodqty"); // 08 물품수량
- SvAddreductqty = wCartPath.getColumn(i, "addreductqty"); // 09 가감수량
- SvPayflagcd = wCartPath.getColumn(i, "payflagcd"); // 10 급여구분코드 (코드정의서 M0029 참조)
- SvOproomcd = wCartPath.getColumn(i, "oproomcd"); // 11 수술실코드
- SvRoomdeptcd = wCartPath.getColumn(i, "oproomdeptcd"); // 12 수술방부서코드
- SvPrcpmemo = wCartPath.getColumn(i, "prcpmemo"); // 13 처방수정MEMO(사유)
- SvPrcpdd = wCartPath.getColumn(i, "prcpdd"); // 14 처방일자
- SvPrcpno = wCartPath.getColumn(i, "prcpno"); // 15 처방일자별 일련번호
- SvPrcphistno = wCartPath.getColumn(i, "prcphistno"); // 16 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
- SvPid = wCartPath.getColumn(i, "pid"); // 17 등록번호
- sPrcpno = wCartPath.getColumn(i, "prcpno"); // 18 등록번호2009.10.16 K.J.M 재고변동여부 체크
- sPid = wCartPath.getColumn(i, "pid"); // 19 등록번호2009.10.16 K.J.M 재고변동여부 체크
- SvReqtabcls = ""; // 20 테이블구 T:임시처방, C: 확정처방
- SvGoodengnm = wCartPath.getColumn(i, "goodengnm"); // 21 물품명
- sPurcflag = wCartPath.getColumn(i, "purcflag"); // 22 구매구분
- SvOldPayflagcd = wCartPath.getColumn(i, "old_payflagcd"); //
- //2008-08-21 오전 2:43:51 taebum 임시저장 이거나 인증저장일 경우 환자의 수술방에 물품재고량이 없을 경우 경고창 처리
- sTempStocqty = wCartPath.getColumn(i, "stocqty");
- //2009-07-20 산정여부 추가 K.J.M
- sCalCulYn = wCartPath.getColumn(i, "calculyn");//구매 산정여부
- //2009-08-18 수가대상여부, 수가코드 K.J.M
- sInsuYn = wCartPath.getColumn(i, "insuyn");//구매 수가대상 여부
- sCalcscorcd = wCartPath.getColumn(i, "calcscorcd");//수가코드
- //2009.12.29 처방 종료일자 K.J.M
- sTodd = wCartPath.getColumn(i, "todd");//종료일자
- sLisTodd = wCartPath.getColumn(i, "listodd");//종료일자
- sSpcmTodd = wCartPath.getColumn(i, "spcmtodd");//종료일자
- sGrupcd = wCartPath.getColumn(i, "grupcd");//그룹코드
- if( sInsuYn == "Y" && utlf_isNull(sCalcscorcd) && tempDelcheck != "1" ){//삭제일경우는 제외
- sysf_messageBox( SvGoodcd+"코드 처방 할 수 없습니다.!", "E000");
- return;
- }
- //처방불가 물품은 처방 안되게 막음, 삭제는 제외 2009.08.31 K.J.M
- if( sReqmthd == "X" && tempDelcheck != "1" && tempDeleteyn != "X" ){ //@@ KNUH, 추가처방 확정 저장 시 삭제구분 X 처방이 수가에 없는 처방으로 블로킹 걸리는 오류 조치 (2011.02.14 JJE)
- sysf_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 <= utlf_getCurrentDate()) && (SvGoodcd.substring(0, 1) != "T") && tempDelcheck != "1" ){//구매와 처방마스터에 살아있는 정보가 없으면 처방 막음, 중앙공급실에서 생성한 물품은 제외
- if( SvRecflag != "U" && ProcCartStat == "5P" ){//이미 처방된것은 걸리지 않게 함
- sysf_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 != "1" && utlf_isNull(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 != "1" && utlf_isNull(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 = wCartPath.getColumn(i, "drugmthdspccd"); // 21 투여방법 및 검체코드
- if( utlf_isNull(SvDrugMthdSpccd) && pStat == "P" && WkOutQty != "0" ){
- sysf_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( utlf_isNull(SvDrugMthdSpccd) ){
- SvDrugMthdSpcEtc = "-";
- SvDrugMthdSpccd = SvDrugMthdSpccd;
- }else{
- SvDrugMthdSpcEtc = SvDrugMthdSpccd;
- SvDrugMthdSpccd = "ZZZ";
- if(SvDrugMthdSpcEtc == "ZZZ"){
- SvDrugMthdSpcEtc = "-";
- }
- }
- }
- }else{//약품이 아닐경우
-
- //20110325 이선경(경북대) : 응급처방여부
- sErPrpcFlag = (wCartPath.getColumn(i, "erprcpflag") == "1" ? "Y" : "N"); //응급처방여부
- if( utlf_isNull(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 = utlf_isNull(WkGoodQty) ? "0" : WkGoodQty ; // 불출수량
- WkAddreductQty = utlf_isNull(WkAddreductQty) ? "0" : WkAddreductQty ; // 증감수량 = 변경수량 - 불출수량
- WkSaveQty = utlf_isNull(WkSaveQty) ? "0" : WkSaveQty ; // 변경전 수량 = 불출수량 + 증감수량
- WkOutQty = utlf_isNull(WkOutQty) ? "0" : WkOutQty ; // 변경수량
- //
- WkPid = SvPid;
- WkDupflag = "N";
- WkRecFalg = "X";
- WkRecFalg = SvRecflag;
- WkOldAddQty = parseFloat(WkSaveQty) - parseFloat(WkGoodQty) ; // 변경전증감수량
- WkNewAddQty = parseFloat(WkOutQty ) - parseFloat(WkGoodQty) ; // 변경후증감수량
- if( WkDelCheck == "1" ) { // 삭제구분
- ProcCd = ProcCartStat + "D";
- }else {
- ProcCd = ProcCartStat + SvRecflag;
- }
- //---------------------------------
- // 처리형태를 가져온다
- //---------------------------------
- ProcData = fActionCodeCheck(ProcCd);
- SvAddreductqty = WkAddreductQty; // 09 가감수량
- // SvPid = (SvPid == "" ) ? sPrcpPid : SvPid ; // 환자번호
- SvPrcpdd = utlf_isNull(SvPrcpdd) ? "" : SvPrcpdd ; // 처방일자
- SvPrcpno = utlf_isNull(SvPrcpno) ? "0" : SvPrcpno ; // 처방일자별 일련번호
- SvPrcphistno = utlf_isNull(SvPrcphistno) ? "0" : SvPrcphistno ; // 처방이력생할때 마다 생성
- SvRowno = ""; // 17 줄번호
- if( !utlf_isNull(ProcData) && utlf_isNull(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 = utlf_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" || utlf_isNull(SvAllsizespecid) ){
- PrcpData64 = "-▦";
- }else{
- PrcpData64 = SvAllsizespecid+"▦";
- }
- //2008-10-01 오후 1:07:33 taebum free text 입력 용법 추가
- PrcpData65 = SvDrugMthdSpcEtc+"▦";
- if( utlf_isNull(PrcpData65) ){
- PrcpData65 = "-"+"▦";
- }
- //opansflagcd add
- PrcpData66 = svOpansflagcd+"▦";
- if( utlf_isNull(SvDrugMthdSpccd) ) SvDrugMthdSpccd = "-";
- PrcpData4848 = SvDrugMthdSpccd + "▦" ; // 48 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default "-") => default : "-"
- PrcpData68 = SvGoodengnm + "▦"; // 68 처방명
- if( utlf_isNull(sPrcpclscd) && sReqmthd == "1" ){
- sysf_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" && !utlf_isNull(sReqmthd) && (SvGoodcls == "4" || SvGoodcls == "6" || SvGoodcls == "10")) ){
- if( WkNewAddQty != WkOldAddQty || SvPayflagcd != SvOldPayflagcd ){
- if( parseFloat(WkSaveQty) != 0 ){
- if( utlf_isNull(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 += utlf_getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddeptcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddrid") +"▦"
- + eval(gPathNode[6]).getColumn(0, "oppatflagcd") +"▦"
- + sBefPrcpdd +"▦"
- + "999999999" +"▦"
- + SvGoodcd +"▦"
- + "D" +"▦"
- + WkSaveQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkSaveQty +"▦"
- + PrcpData64 + "" //- "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + eval(gPathNode[6]).getColumn(0, "wardcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "roomcd") +"▦"
- + "00000000" +"▦"
- + utlf_getCurrentDate() +"▦"
- + utlf_getCurrentTime() +"▦"
- + sysf_getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + wCartPath.getColumn(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 ){
- sysf_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 += utlf_getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddeptcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddrid") +"▦"
- + eval(gPathNode[6]).getColumn(0, "oppatflagcd") +"▦"
- + utlf_getCurrentDate() +"▦"
- + "999999999" +"▦"
- + SvGoodcd +"▦"
- + "O" +"▦"
- + WkOutQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkOutQty +"▦"
- + PrcpData64 +"" // "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + eval(gPathNode[6]).getColumn(0, "wardcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "roomcd") +"▦"
- + "00000000" +"▦"
- + utlf_getCurrentDate() +"▦"
- + utlf_getCurrentTime() +"▦"
- + sysf_getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + wCartPath.getColumn(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" && !utlf_isNull(sReqmthd) && (SvGoodcls == "4" || SvGoodcls == "6" || SvGoodcls == "10")) ){
- if( parseFloat(WkSaveQty) != 0 ){
- if( utlf_isNull(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 += utlf_getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddeptcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddrid") +"▦"
- + eval(gPathNode[6]).getColumn(0, "oppatflagcd") +"▦";
- + sBefPrcpdd +"▦"
- + "999999999" +"▦"
- + SvGoodcd +"▦"
- + "D" +"▦"
- + WkSaveQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkSaveQty +"▦"
- + PrcpData64 +"" // "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + eval(gPathNode[6]).getColumn(0, "wardcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "roomcd") +"▦"
- + "00000000" +"▦"
- + utlf_getCurrentDate() +"▦"
- + utlf_getCurrentTime() +"▦"
- + sysf_getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + wCartPath.getColumn(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" && !utlf_isNull(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 < utlf_getCurrentDate()){
- if( utlf_isNull(sRecalddStr) ){
- sRecalddStr = utlf_getCurrentDate();
- }else{
- sRecalddStr = sRecalddStr+"▧"+utlf_getCurrentDate();
- }
- }
- }
- //일반 청구성 물품일 경우
- //if(sReqmthd == "3"||sCalCulYn == "N")
- //최소현 선생님 요청으로 산정 로직 중단 2009.10.14
- //2010.04.19 K. J. M 산정로직 추가(비산정일때는 구매집계에도 내려가면 안됨
- if( sCalCulYn != "N" ) {
- if(sReqmthd == "3"){
- // 정상 입력 처리
- sMrsmData += utlf_getCurrentDate() +"▦"
- + "" +"▦"
- + "" +"▦"
- + sPrcpPid +"▦"
- + ordindd +"▦"
- + cretno +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddeptcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "orddrid") +"▦"
- + eval(gPathNode[6]).getColumn(0, "oppatflagcd") +"▦"
- + utlf_getCurrentDate() +"▦"
- + "0000000000" +"▦"
- + SvGoodcd +"▦"
- + "O" +"▦"
- + WkOutQty +"▦"
- + "1" +"▦"
- + "1" +"▦"
- + WkOutQty +"▦"
- + PrcpData64 +"" // "▦"가 안에 포함되어있음.
- + sIssdeptcd +"▦"
- + eval(gPathNode[6]).getColumn(0, "wardcd") +"▦"
- + eval(gPathNode[6]).getColumn(0, "roomcd") +"▦"
- + "00000000" +"▦"
- + utlf_getCurrentDate() +"▦"
- + utlf_getCurrentTime() +"▦"
- + sysf_getUserInfo("userid") +"▦"
- + "N" +"▦"
- + "00000000000000" +"▦"
- + SvGoodcls +"▦"
- + SvOrdseq +"▦"
- + tempCartGb +"▦"
- + wCartPath.getColumn(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" && utlf_isNull(sBefPrcpdd) ){
- sBefPrcpdd = utlf_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 ) ) {//비산정만 있으면 블럭킹
- sysf_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" + "▩"
- + utlf_transNullToEmpty(eval(gPathNode[6]).getColumn(0, "instcd" )) + "▦" // 1 기관코드
- + utlf_transNullToEmpty(eval(gPathNode[6]).getColumn(0, "oprsrvno" )) + "▦" // 2 수술예약(의뢰)번호 (년도 + 일련번호)
- + utlf_transNullToEmpty(eval(gPathNode[6]).getColumn(0, "ophistno" )) + "▦" // 3 예약번호에따른이력번호
- + utlf_transNullToEmpty(eval(gPathNode[6]).getColumn(0, "ophistcd" )) + "▦" // 4 수술예약의이력코드
- + utlf_transNullToEmpty(tempCartGb) + "▦" // 5 Cart구분 O:수술, A:마취
- + utlf_transNullToEmpty(wCartStat) + "▦" // 6 Cart 임시:1, Cart 출력:2, Cart 불출:3, Cart 확정:4, Cart 반납:5, 처방 확정:9
- + utlf_transNullToEmpty(ProcCartStat) + "▦" // 7 처리구분 1T:임시,1C:임시+확정,1P:임시+확정+처방,2C/4C:확정,2P/4P/5P:확정+처방
- + utlf_transNullToEmpty(ds_init_WorkData_cond.getColumn(0, "cartstat")) + "▦" // 8 현재 화면의 Cart 상태
- + utlf_transNullToEmpty(ds_main_cond.getColumn(0, "cartsavestat")) + "▦" // 9 호출 구분(T;임시, C:확정)
- + utlf_transNullToEmpty(ds_main_operation_list.getColumn(0, "oproomcd")) + "▩"; // 10 화면 조회된 수술방번호
- // Summit Instance 생성
- // 처방자료가 있는 경우를 Check한다.
- if (PrcpIdx > 0) {
- dsf_setCSVToDs("ds_send_saveflaginfo", FlagInfoHeader+FlagInfoData);
- dsf_setCSVToDs("ds_send_savergstinfo", RgstInfoHeader+RgstInfoData);
- dsf_setCSVToDs("ds_send_saveprcpinfo", PrcpInfoHeader+PrcpInfoData);
-
- var oParam = {};
- oParam.id = "TRMNW10906";
- oParam.service = "wardorderapp.NursPrcpMngt";
- oParam.method = "reqGetSaveNursPrcpSignData";
- oParam.inds = "saveFlagInfo=ds_send_saveflaginfo saveRgstInfo=ds_send_savergstinfo savePrcpInfo=ds_send_saveprcpinfo";
- oParam.outds = "ds_main_signdata_signprcplist=signprcplist";
- oParam.async = false;
- oParam.callback = "cf_TRMNW10906";
- tranf_submit(oParam);
-
- if( utlf_isNull(ds_main_signdata_signprcplist.getColumnInfo("dschnotiyn")) ){
- ds_main_signdata_signprcplist.addColumn("dschnotiyn", "string");
- }
- if( utlf_isNull(ds_main_signdata_signprcplist.getColumnInfo("signbfcnts")) ){
- ds_main_signdata_signprcplist.addColumn("signbfcnts", "string");
- }
-
- //처방인증데이터 생성
- if( arErrorCode.pop("TRMNW10906") > -1 ){
- var signbfcnts = sSIGNDATA_PATH.getColumn(0, "signbfcnts");
- var signuserid = sysf_getUserInfo("userid");
- var dschnotiyn = sSIGNDATA_PATH.getColumn(0, "dschnotiyn");
- if(dschnotiyn == "Y"){
- sysf_messageBox("해당 환자는 간호사 퇴원 확정된 상태이므로 처방을 저장을 할 수 없습니다.", "E000");
- return;
- }
- // -----------------------(2010.08.18 센터)start--------------------
- var signinfo = "";
- if( gds_systemInfo.getColumn(0, "devsystem") != "1" ){
- signinfo = fMakeSignData(signbfcnts, signuserid, true); // 항상 인증서 비밀번호 확인 설정(true)_20080909(ByJA)
- } else {
- signinfo = "A"; //인증저장모듈 로직 제외 by pyw
- }
- // -----------------------(2010.08.18 센터)start--------------------
- if( utlf_isNull(signinfo) || signinfo == "-" ){ //인증저장 취소
- return;
- }else{
- sSIGNDATA_PATH.setColumn(0, "signaftcnts", signinfo); //true : 처방저장할 때마다 인증저장 태움
- //var savesignlist = getNodeListCSV(model.instances(0).selectNodes(sSIGNDATA_PATH));
- ds_send_savesigninfo.copyData(sSIGNDATA_PATH); //사인 정보
- }
- }else{
- return;
- }
-
- dsf_setCSVToDs("ds_send_savemrsminfo", sMrsmHeader+sMrsmInfoData); //일반청구물품
- ds_send_refcond.copyData(sPrcpDataPat); //저장 후 조회조건
- }else {
- dsf_setCSVToDs("ds_send_saveflaginfo", FlagInfoHeader);
- dsf_setCSVToDs("ds_send_savergstinfo", RgstInfoHeader);
- dsf_setCSVToDs("ds_send_saveprcpinfo", PrcpInfoHeader);
- dsf_setCSVToDs("ds_send_savemrsminfo", sMrsmHeader);
- ds_send_refcond.copyData(sPrcpDataPat); // 저장 후 조회조건
- }
-
- dsf_setCSVToDs("ds_send_mnphctoslist", MnphctosData); // CaseCart물품의 임시처방내역(CCR에서확정)
- dsf_setCSVToDs("ds_send_mnphccollist", MnphccolData); // 수술중에 사용한 물품의처방내역(수술처방화면에서등록)
- dsf_setCSVToDs("ds_send_mmohoprslist", Mmohoprslist); // 수술 예약정보
- //model.makeValue("/root/send/refcond/cartsavestat", model.getValue("/root/main/cond/cartsavestat"));
- if( SubmitCount < 1 ) {
- if( wCartStat < "9" ) {
- if( sysf_messageBox("수정된 내역이 없습니다.! ", "Q002") != 6 ) return;
- if( wCartStat >= "5" ) {//확정처방이상이면 인증타기
- Sign.certreload = true ;
- if (Sign.signprocess() == true){
- }else { return; }
- }
- ds_send_reqdata.setColumn(0, "oprsrvno", utlf_transNullToEmpty(eval(gPathNode[6]).getColumn(0, "oprsrvno")));
- ds_send_reqdata.setColumn(0, "ophistno", utlf_transNullToEmpty(eval(gPathNode[6]).getColumn(0, "ophistno")));
- ds_send_reqdata.setColumn(0, "cartgubn", utlf_transNullToEmpty(ds_init_WorkData_cond.getColumn(0, "cartgubn")));
- ds_send_reqdata.setColumn(0, "cartstat", utlf_transNullToEmpty(wCartStat));
-
- var oParam = {};
- oParam.id = "TXMNP01809";
- oParam.service = "opanstapp.OpAnstCCrtGoodMngt";
- oParam.method = "reqSetCCrtStat";
- oParam.inds = "reqdata=ds_send_reqdata";
- oParam.outds = "";
- oParam.async = false;
- //oParam.callback = "cf_TXMNP01809";
- tranf_submit(oParam);
-
- fQueryData();
- return;
- }else {
- sysf_messageBox("수정된 내역이 없습니다.! ", "E000");
- return;
- }
- }
- //2008-07-21 오전 9:18:49 처방 마감 정보 추가 taebum
- fnEndddSave(pStat);
- //2008-10-31 오후 8:16:40 taebum 소급적용 관련 interface 연동 추가
- if( !utlf_isNull(sRecalddStr) ){
- var sRecalArr = sRecalddStr.split("▧");
- if( sRecalArr.length > 0 ){
- for( var m=0 ; m<sRecalArr.length ; m++ ){
- if( utlf_isNull(sRecalArr[m]) ){
- //값 없음.
- }else{
- if( utlf_isNull(sRecalfromdd) ){
- sRecalfromdd = sRecalArr[m];
- sRecaltodd = sRecalArr[m];
- }else{
- if(sRecalArr[m] < sRecalfromdd){
- sRecalfromdd = sRecalArr[m];
- }
- if(sRecalArr[m] > sRecaltodd){
- sRecaltodd = sRecalArr[m];
- }
- }
- }
- }
- }
- }
- if( !utlf_isNull(sRecalfromdd) && !utlf_isNull(sRecaltodd) ){
- var sTempOprsXpath = ds_main_MmohoprsLists_mmohoprslist;
- //2009.05.07 소급시작일자가 기본값일때 현재 날짜로 변경
- if( sRecalfromdd == "00000000" ) {
- //sRecalfromdd = getCurrentDate();
- sRecalfromdd = eval(gPathNode[6]).getColumn(0, "opcnfmdd");
- }
- if( sRecaltodd == "00000000" ) {
- sRecaltodd = utlf_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) 오늘이 아닌 이전일자
- sysf_getUserInfo("dutplceinstcd") +"▦"+ //07 기관코드
- "M" +"▦"+ //08 주부유형
- "Y" +"▦"+ //09 이력상태
- utlf_getCurrentDate() +"▦"+ //10 발생일자
- "M" +"▦"+ //11 처리결과
- "" +"▦"+ //12 오류내용(처리결과)
- "G" +"▩"; //13 소급발생장소 W:원무, C:진료, G:간호, L:LIS, A:지원부서
- dsf_setCSVToDs("ds_send_pamsogeubinfo", sTempColumnInfo+sTempColumnData);
- }
-
- var oParam = {};
- oParam.id = "TXMNP01803";
- oParam.service = "opanstapp.OpAnstCCrtGoodMngt";
- oParam.method = "reqExeMnphPrcpDataInfo";
- oParam.inds = "mmohoprslist=ds_send_mmohoprslist mnphctoslist=ds_send_mnphctoslist mnphccollist=ds_send_mnphccollist req_flaginfo=ds_send_saveflaginfo req_rgstinfo=ds_send_savergstinfo req_prcpinfo=ds_send_saveprcpinfo req_mrsminfo=ds_send_savemrsminfo req_signinfo=ds_send_savesigninfo reqCond=ds_send_reqCond req_pamsogeubinfo=ds_send_pamsogeubinfo";
- oParam.outds = "ds_temp_result_prcperrlist=prcperrlist";
- oParam.async = false;
- oParam.callback = "cf_TXMNP01803";
- tranf_submit(oParam);
-
- if( arErrorCode.pop("TXMNP01803") > -1 ){ // 정보저장
- if( wCartStat == "5" ) {
- //오류팝업
- var prcpErrList = ds_temp_result_prcperrlist;
- if( prcpErrList.rowcount > 0 ) {
- if( !utlf_isNull(ds_temp_result_prcperrlist.getColumn(0, "prcpcd")) ){
- var xpt = system.clientToScreenX(this, this.position.left) + 100;
- var ypt = system.clientToScreenY(this, this.position.top) + 50;
- //var coord = getRelativeCoordinate ( xpt, ypt );
- var mon = sysf_getCurrentMonitorNumber();
- //xpt = coord[1];
- //ypt = coord[2];
-
-
- ds_temp_result_prcperrlist_copy.copyData(ds_temp_result_prcperrlist);
-
- var objArg = new Object();
- objArg.arg_ds_result_prcperrlist = ds_temp_result_prcperrlist_copy;
-
- frmf_open("SPMMO00600", "SPMMO00600", objArg, null, mon, xpt, ypt, null, null, null, null, null, "M");
-
- ds_temp_result_prcperrlist.clearData();
- //fQueryData(); // 조회
- return;
- }
- }
- }
- if( ds_main_cond.getColumn(0, "cartsavestat") != "T" ){
- ds_init_WorkData_cond.setColumn(0, "cartstat", wCartStat);
- }
- gRvStat = wCartStat;
- // 2009-03-17 YCD 응급 CartBag 불출시 팝업, 재조회 처리 안함.
- if( ds_temp.getColumn(0, "cartoutflag") != "E" ){
- var sMsgFlag = (pStat == "D") ? "삭제가" : "저장이";
- sysf_messageBox("자료 "+ sMsgFlag, "I002");
- if( delTempSaveYN == "Y" ) fCnclDeleteRows(); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- fQueryData(); // 조회
- }
- }else {
-
- if( delTempSaveYN == "Y" ) fCnclDeleteRows(); //@@KNUH, 삭제처방 된 처방 되살리는 경우 별도의 func으로 처리
- fQueryData();
-
- }
- } //--- End Of function fDataSave(pStat){
- function cf_TRMNW10906(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- function cf_TXMNP01803(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- // ※ 인증데이터 생성함수 만들기
- function fMake_SignData(){
- Sign.certreload = true;
-
- var arrSignPath = new Array();
- arrSignPath[0] = "/signotlists";
- arrSignPath[1] = "/signexlists";
-
- var arrSignDs = new Array();
- arrSignDs[0] = ds_exotinfo_signotlists.saveXML();
- arrSignDs[1] = ds_exotinfo_signexlists.saveXML();
-
- Sign.addnodeset(arrSignPath, arrSignDs);
-
- // Sign.addnode("/root/exotinfo/signotlists" ); //yjh : 사용안하는듯...
- // 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(){
- trace("01802 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) {
- trace("01802 fCartConstruct()");
- //2008-08-18 오후 4:29:23 taebum allsized가 -로 들어가 있을 경우 0로 수정
- //2008-08-19 오전 11:01:37 taebum allsized가 0로 들어가 있을 경우 -로 수정
- if( SvAllsizespecid == "0" || utlf_isNull(SvAllsizespecid) ){
- SvAllsizespecid = "-";
- }
- var SvOrdseq_1 = "";
- if(SvRecflag != "I") SvOrdseq_1 = SvOrdseq ;
- var cData = utlf_transNullToEmpty(SvOprsrvno) + "▦" // 01 수술예약(의뢰)번호 (년도 + 일련번호)
- + utlf_transNullToEmpty(SvCartgubn) + "▦" // 02 Cart구분 (O:수술,A:마취)
- + utlf_transNullToEmpty(SvOrdseq_1) + "▦" // 03 처방순번
- + utlf_transNullToEmpty(SvInstcd) + "▦" // 04 병원기관코드(코드정의서 Z0007 참조)
- + utlf_transNullToEmpty(SvGoodcd) + "▦" // 05 물품코드
- + utlf_transNullToEmpty(SvAllsizespecid) + "▦" // 06 ALLSIZE규격ID
- + utlf_transNullToEmpty(SvGoodcls) + "▦" // 07 물품구분 1:Sutures,2:Supplies,3:Drug,4:Instrument,5:처치처방,6:수술소모품
- + utlf_transNullToEmpty(SvGoodqty) + "▦" // 08 물품수량
- + utlf_transNullToEmpty(SvAddreductqty) + "▦" // 09 가감수량
- + utlf_transNullToEmpty(SvPayflagcd) + "▦" // 10 급여구분코드 (코드정의서 M0029 참조)
- + utlf_transNullToEmpty(SvOproomcd) + "▦" // 11 수술실코드
- + utlf_transNullToEmpty(SvRoomdeptcd) + "▦" // 12 수술방부서코드 01/17 추가
- + utlf_transNullToEmpty(SvPrcpmemo) + "▦" // 13 처방수정MEMO(사유) 01/17 추가
- + utlf_transNullToEmpty(pPrcpdd) + "▦" // 14 처방일자
- //+ SvPrcpdd + "▦" // 14 처방일자 //2008-10-04 오후 1:21:50 taebum 현재일자로 수정.
- + utlf_transNullToEmpty(SvPrcpno) + "▦" // 15 처방일자별 일련번호
- + utlf_transNullToEmpty(SvPrcphistno) + "▦" // 16 처방이력생할때 마다 생성 (처방일자, 처방번호, 기관코드 기준)
- + utlf_transNullToEmpty(SvPid) + "▦" // 17 등록번호
- + utlf_transNullToEmpty(SvReqtabcls) + "▦" // 18 테이블구 T:임시처방, C: 확정처방
- + utlf_transNullToEmpty(SvRowno) + "▦" // 19 줄번호
- + utlf_transNullToEmpty(SvRecflag) + "▦" // 20 U:수정,I:입력, D:삭제 구분
- + utlf_transNullToEmpty(SvDrugMthdSpccd) + "▦" // 21 투여방법
- + utlf_transNullToEmpty(sReqmthd) + "▦" // 22 청구방법 1 : 처방성, 3: 일반청구 2: 정량보충
- + utlf_transNullToEmpty(sGoodCrFlag) + "▦" // 23 물품발생구분(정규 : S, 응급 : E)
- + utlf_transNullToEmpty(sCalCulYn) + "▦" // 24 산정여부
- + utlf_transNullToEmpty(sPrcpno) + "▦" // 25 이전 prcpno
- + utlf_transNullToEmpty(sPid) + "▦" // 26 이전 PID
- + utlf_transNullToEmpty(sSignNo) + "▦" // 27 인증번호
- + utlf_transNullToEmpty(sPurcflag) + "▦" // 28 구매구분
- + utlf_transNullToEmpty(sGrupcd) + "▦" // 29 그룹코드
- + utlf_transNullToEmpty(sErPrpcFlag) + "▦" // 30 응급처방구분 20110412 이선경(경북대)
- + utlf_transNullToEmpty(sErbgcd) + "▩"; // 31 응급카트구분 20120718 김병국(경북대)
-
- return cData;
- }
- // --------------------------------------------------
- // 처방 Header 구성
- // --------------------------------------------------
- function fPrcpHeader(){
- trace("01802 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(){
- trace("01802 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 = eval(gPathNode[6]).getColumn(0, "oppatflagcd"); // 환자진료형태(외래 O, 응급 E ,입원 I)
- deptcd = sysf_getUserInfo("dutplcecd"); // 로인 사용자 근무지 부서 코드
- deptnm = sysf_getUserInfo("dutplcenm"); // 로인 사용자 근무지 부서 코드명
- // 사용 및 반납에 관한 부서는 차대리가 준비중
- if (ordtype == "O") { //외래
- indd = "-"; //입원일자(원무Key) - 외래일경우는 "-"
- cretno = eval(gPathNode[6]).getColumn(0, "o_cretno");
- orddd = eval(gPathNode[6]).getColumn(0, "o_orddd" );
- ordindd = eval(gPathNode[6]).getColumn(0, "o_orddd" );
- } else { //입원
- orddd = "-" ; //진료일자(원무Key) - 입원일경우는 "-"
- cretno = eval(gPathNode[6]).getColumn(0, "i_cretno");
- indd = eval(gPathNode[6]).getColumn(0, "i_indd" );
- ordindd = eval(gPathNode[6]).getColumn(0, "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 부서명 (입력자 또는 로그인한 사용자의 부서명)
- + sysf_getUserInfo("userid") + "▦" // 10 사용자ID (입력자 또는 로그인한 사용자ID)
- + sysf_getUserInfo("usernm") + "▦" // 11 사용자명 (입력자 또는 로그인한 사용자명)
- + "Y" + "▦" // 12 전자서명여부 (Y/N)
- + utlf_getCurrentDate() + "▩"; // 13 처방일자
- // 저장등록정보(saveRgstInfoVO)
- RgstInfoData = sPrcpPid + "▦" // 1 등록번호(원무Key)
- + orddd + "▦" // 2 진료일자(원무Key) - 입원일경우는 "-"
- + indd + "▦" // 3 입원일자(원무Key) - 외래일경우는 "-"
- + cretno + "▦" // 4 생성번호(원무Key)
- + eval(gPathNode[6]).getColumn(0, "orddeptcd" ) + "▦" // 5 진료과(원무)
- + eval(gPathNode[6]).getColumn(0, "orddrid" ) + "▦" // 6 진료의ID(원무)
- + eval(gPathNode[6]).getColumn(0, "instcd" ) + "▦" // 7 기관코드
- + eval(gPathNode[6]).getColumn(0, "depthngnm" ) + "▦" // 8 진료과명(원무)
- + eval(gPathNode[6]).getColumn(0, "perfdridnm" ) + "▦" // 9 진료의명(원무)
- + eval(gPathNode[6]).getColumn(0, "patname" ) + "▦" // 10 환자명
- + eval(gPathNode[6]).getColumn(0, "sa" ) + "▦" // 11 성별나이
- + eval(gPathNode[6]).getColumn(0, "oppatflagcd") + "▩"; // 12 외래입원구분
- // 저장처방정보(savePrcpInfoVO) 자료를 구성한다.
- PrcpData = "";
- PrcpData0101 = "" ; // 01 신규(I), DC(C)
- PrcpData0205 = "" ; // 02 줄번호 (병리 요구)
- // 03 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
- // 04 처방번호 (status가 "I"일 경우 0)
- // 05 처방이력번호 (status가 "I"일 경우 0)
- PrcpData0614 = eval(gPathNode[6]).getColumn(0, "instcd") + "▦" // 06 기관코드
- + sPrcpPid + "▦" // 07 등록번호(원무Key)
- + ordindd + "▦" // 08 진료일자(원무Key) - 입원환자일 경우 indd
- + cretno + "▦" // 09 생성번호(원무Key)
- + eval(gPathNode[6]).getColumn(0, "orddeptcd") + "▦" // 10 진료과(원무)
- + eval(gPathNode[6]).getColumn(0, "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 = eval(gPathNode[6]).getColumn(0, "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 ("-")
- + utlf_getCurrentDate() + "▦" // 57 실시일자 ("00000000")
- + utlf_getCurrentTime() + "▦" // 58 실시시간 ("000000")
- + sysf_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) {
- trace("01802 fnEndddSave()");
- //현재 카트 상태가 확정일 경우에만 해당함.
- var sCcrtStat = ds_init_WorkData_cond.getColumn(0, "cartstat");
- if(sCcrtStat != "5" && sCcrtStat != "9"){ // -- 확정, 반납
- return;
- }
- var sPathCheckStr = "ds_main_CartOrdData_ListDiposit▨" //처지처방
- + "ds_main_CartOrdData_ListSupplies▨" //Supplies
- + "ds_main_CartOrdData_ListSutures▨" //Sutures
- + "ds_main_CartOrdData_ListDrug▨" // Drug
- + "ds_main_CartOrdData_ListInstrument▨" //Instrument
- + "ds_main_CartOrdData_ListOpsupply"; //수술소모품
- var sGridPathStr = "group3.grp_ord.switch1.case3.grd_diposit▨"
- + "group3.grp_ord.switch1.case3.grd_supplies▨"
- + "grd_sutures▨"
- + "group3.grp_ord.switch1.case3.grd_drug▨"
- + "group3.grp_ord.switch1.case4.grd_instrument▨"
- + "group3.grp_ord.switch1.case4.grd_opsupply";
- var sPathCheckArr = sPathCheckStr.split("▨");
- var sGridPathkArr = sGridPathStr.split("▨");
- var sCurrentPath = "";
- var sCurrentGrid = "";
- var sinstcd = sysf_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 = eval(sPathCheckArr[i]);
- sCurrentGrid = sGridPathkArr[i];
- var iRows = sCurrentPath.rowcount;
- /*
- 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=0 ; k<iRows ; k++ ){
- if(pFlag == "D"){
- sDeleteFlag = sCurrentPath.getColumn(k, "delcheck");
- if( sDeleteFlag == "1"){
- sprcpdd = sCurrentPath.getColumn(k, "prcpdd");
- sprcpno = sCurrentPath.getColumn(k, "prcpno");
- sprcphistno = sCurrentPath.getColumn(k, "prcphistno");
- fnEndddSaveData(sprcpdd, sprcpno, sprcphistno); //마감 요부 확인 후 사유 입력 팝업 호출
- }else{
- continue;
- }
- }else{
- sRecflag = sCurrentPath.getColumn(k, "recflag");
- if(sRecflag == "U"){
- sTempSaveqty = sCurrentPath.getColumn(k, "saveqty"); // 변경Check 수량 (물품수량 + 가감수량)
- sTempOutqty = sCurrentPath.getColumn(k, "outqty"); // 변경할 수량 (물품수량 + 가감수량)
- if(sTempSaveqty != sTempOutqty){
- sprcpdd = sCurrentPath.getColumn(k, "prcpdd");
- sprcpno = sCurrentPath.getColumn(k, "prcpno");
- sprcphistno = sCurrentPath.getColumn(k, "prcphistno");
- fnEndddSaveData(sprcpdd, sprcpno, sprcphistno); //마감 요부 확인 후 사유 입력 팝업 호출
- }else{
- continue;
- }
- }
- }
- }
- }
- }
- /**
- * 마감여부 조회 및 사유 입력 메세지 연동
- */
- function fnEndddSaveData(sprcpdd, sprcpno, sprcphistno){
- trace("01802 fnEndddSaveData()");
- //alert("fnEndddSaveData 접근완료!! sprcpdd : "+sprcpdd+ " , sprcpno : "+ sprcpno+ " , sprcphistno : "+sprcphistno);
- var sPathEndSave = ds_sendendresult_endinfo_list; //반환사유정보생성path
- var sPathEndResult = ds_endddresult_endddresult;
- var sPathEndCond = ds_endddresult_endddresult.getColumn(0, "enddd"); //enddd 확인 결과(종료일자)
- var sPathEndCond2 = ds_endddresult_endddresult.getColumn(0, "execprcpno"); //enddd 확인 결과(간호처방 풀림 일련번호)
- var sPathEndCond3 = ds_endddresult_endddresult.getColumn(0, "instcd"); //enddd 확인 결과(간호처방 풀림 일련번호)
- var sexecprcpno = "";
- var sinstcd = "";
- var sioflag = appf_getPatientInfoDetail("ioflag");
- sPathEndResult.clearData();
- ds_sendendsearch.setColumn(0, "prcpdd", utlf_transNullToEmpty(sprcpdd));
- ds_sendendsearch.setColumn(0, "prcpno", utlf_transNullToEmpty(sprcpno));
- ds_sendendsearch.setColumn(0, "prcphistno", utlf_transNullToEmpty(sprcphistno));
- //model.makeValue(sPathEndCond + "/execprcpno", sexecprcpno); 수술마취 처방은 1건 자동액팅 되므로 execprcpno는 prcphistno와 동일함.
- //model.makeValue(sPathEndCond + "/instcd", sinstcd);
- //model.makeValue(sPathEndCond + "/ioflag", sioflag);
-
- var oParam = {};
- oParam.id = "TXMNP01806";
- oParam.service = "opanstapp.OpAnstCCrtGoodMngt";
- oParam.method = "reqGetEndddList";
- oParam.inds = "req=ds_sendendsearch";
- oParam.outds = "ds_endddresult_endddresult=endddresult";
- oParam.async = false;
- //oParam.callback = "cf_TXMNP01806";
- tranf_submit(oParam);
-
- // model.alert("enddd : "+ model.getValue("/root/endddresult/enddd"));
- //alert("TXMNP01806 조회완료!! "+model.getValue(sPathEndCond));
- //조회된 처방 내역이 없거나, 종료되지 않았을 경우 return 한다.
- var sTemEnddd = sPathEndCond;
- if( utlf_transNullToEmpty(sTemEnddd).substr(0,8) == "99991231" || utlf_isNull(sTemEnddd) ){
- return;
- }
- sexecprcpno = sPathEndCond2;
- sinstcd = sPathEndCond3;
- sPathEndSave.setColumn(0, "prcpdd", sprcpdd);
- sPathEndSave.setColumn(0, "prcpno", sprcpno);
- sPathEndSave.setColumn(0, "prcphistno", sprcphistno);
- sPathEndSave.setColumn(0, "execprcpno", sexecprcpno);
- sPathEndSave.setColumn(0, "instcd", sinstcd);
- sPathEndSave.setColumn(0, "ioflag", sioflag);
- if( sPathEndSave.rowcount > 0 ){
- var objArg = new Object();
- objArg.arg_ds_endinfo_result_list = sPathEndSave;
-
- frmf_modal("SPPAS03000","SPPAS03000",objArg,"",2,100,100,"","","","","","M");
- }
- }
- /* 일반청구 물품 재료집계 테이블로 쌓기 위한 Header 정보 Setting (EMR.MMODMRSM table 참고 ) */
- function fMrsmHeader(){
- trace("01802 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() {
- trace("01802 fSuppkind()");
- var pid = ds_main_MmohoprsLists_mmohoprslist.getColumn(0, "pid");
- var indd = ds_main_MmohoprsLists_mmohoprslist.getColumn(0, "i_indd");
-
- ds_temp_send.setColumn(0, "pid", pid);
- ds_temp_send.setColumn(0, "indd", indd);
-
- var oParam = {};
- oParam.id = "TRMMO15701";
- oParam.service = "prcpmngtapp.PatPrcpSrchMngt";
- oParam.method = "reqGetPatSupKind";
- oParam.inds = "req=ds_temp_send";
- oParam.outds = "ds_temp_patsupkind_patsupkind=patsupkind";
- oParam.async = false;
- oParam.callback = "cf_TRMMO15701";
- tranf_submit(oParam);
-
- if( arErrorCode.pop("TRMMO15701") > -1 ){
- var nodelist = ds_temp_patsupkind_patsupkind;
- if( !utlf_isNull(nodelist) ){
- if( nodelist.rowcount > 1 ){
- frmf_clearParameter("SPMMO15700_subcretno");
-
- var objArg = new Object();
- objArg.arg_ds_temp_patsupkind = ds_temp_patsupkind_patsupkind;
-
- frmf_modal("SPMMO15700","SPMMO15700",objArg,"","","","","","","","","","M");
-
- var subcretno = frmf_getParameter("SPMMO15700_subcretno");
-
- if(subcretno == "0") {
- var rtn = sysf_messageBox("주유형으로 처방을 발행하시겠습니까?", "Q");
- if(rtn != "6") {
- return "false";
- }
- }
-
- if( utlf_isNull(subcretno) ){
- sysf_messageBox("유형을 선택하세요", "E");
- return "false";
- }
- ds_temp_prcpinfo.setColumn(0, "subcretno", subcretno);
- }
- }
- } else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
- ds_temp_prcpinfo.setColumn(0, "subcretno", "0");
- }
-
- }
- function cf_TRMMO15701(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- ]]></Script>
|