SMMNI02000.xjs 201 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/* ---------------------------------------------------------------------
  3. CHEMO MAIN 등록
  4. - Version :
  5. 1) : Ver.1.00.01
  6. : Create By Francis Choi
  7. : 2015.05.02
  8. 2) : Ver.2.00.01
  9. : Edit By dhkim
  10. : 2009.02.24 사용부서를 BMT센터와 암센터로 분리함
  11. : spclcare/js/MNS.js 스크립트 공유
  12. ---------------------------------------------------------------------- */
  13. // 하드코딩 수정 및 암센터/BMT센터 주사실 나눠질때 처방전송 어떻게 하나 문의할것..
  14. //var injSpclRoom = '3120400000';//특수주사실부서코드
  15. //20090213 dhkim 글로벌 변수 선언
  16. var suppdeptcd;//메뉴그룹 사용처로 변경함
  17. var suppdeptnm;
  18. var drprcpetc2; //BMT, 암센터 구분 (BMT센터 : B, 암센터 : Y)
  19. //20090223 dhkim 센터코드 선언 추가
  20. var centcd;//BMT, 암센터 구분 (BMT센터 : B, 암센터 : Y) 구분자에 따라 달라짐
  21. var centnm;
  22. var sSIGNDATA_PATH = "/root/main/signdata/signprcplist";
  23. //20090225 dhkim
  24. //환자검색 팝업 호출
  25. function fGetPatinfo(){
  26. var pid = ds_main_cond.getColumn(0, "pid");
  27. if( utlf_isNull(pid) ){
  28. //messageBox('등록번호를 입력하세요.', 'E999');
  29. grp_biz.grp_header.ipt_pid.value = "";
  30. grp_biz.grp_header.opt_hngnm.value = "";
  31. grp_biz.grp_header.opt_rrgstno.value = "";
  32. grp_biz.grp_header.opt_gndrage.value = "";
  33. }else{
  34. //----------조건
  35. ds_temppatinfo.setColumn(0, "pid", ds_main_cond.getColumn(0, "pid"));
  36. ds_temppatinfo.setColumn(0, "srchcond", "1")
  37. var objArg = new Object();
  38. objArg.arg_ds_send = ds_temppatinfo;
  39. frmf_modal("SPPMC02500","SPPMC02500",objArg,"",1,150,150,"","","","","","M");
  40. //---------리턴값
  41. var popupendflag = frmf_getParameter("SPPMC02500_popupendflag");
  42. if( popupendflag == "ok" ){
  43. ds_main_cond.setColumn(0, "pid", ds_patinfolist.getColumn(0, "pid"));
  44. ds_main_cond.setColumn(0, "hngnm", ds_patinfolist.getColumn(0, "hngnm"));
  45. ds_main_cond.setColumn(0, "gndrage", ds_patinfolist.getColumn(0, "sex") + '/' + ds_patinfolist.getColumn(0, "age"));
  46. var rrgstno = utlf_transNullToEmpty(ds_patinfolist.getColumn(0, "rrgstno1")) + utlf_transNullToEmpty(ds_patinfolist.getColumn(0, "rrgstno2"));
  47. grp_biz.grp_header.opt_rrgstno.value = rrgstno.substring(0, 6) + '-' + rrgstno.substring(6, 7) + '******';
  48. }else{
  49. grp_biz.grp_header.ipt_pid.value = "";
  50. grp_biz.grp_header.opt_hngnm.value = "";
  51. grp_biz.grp_header.opt_rrgstno.value = "";
  52. grp_biz.grp_header.opt_gndrage.value = "";
  53. }
  54. }
  55. //케모리스트조회
  56. fInqurySelectedPrgm();
  57. }
  58. // --------------------------------------------------
  59. // 화면 init()
  60. // --------------------------------------------------
  61. function fInitialize() {
  62. // 간호하드코딩 테이블 조회_20100316_SMY
  63. var pCode = "'077','C06'"; // 조회할 CdGrupID 코드정보
  64. var pDate = utlf_getCurrentDate(); //조회기준일자
  65. fGetNursHardCdInfo(pCode, pDate); //ds_codelist를 읽어옴
  66. //20090213 dhkim
  67. //화면 타이틀을 해당 부서에 맞게 변경한다.
  68. suppdeptcd = lf_aezfSetSuppDeptcd();
  69. ds_send.setColumn(0, "deptcd", suppdeptcd);
  70. var oParam = {};
  71. oParam.id = "TRMNI02031";
  72. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  73. oParam.method = "reqGetDeptInfo";
  74. oParam.inds = "req=ds_send";
  75. oParam.outds = "ds_temp_menudeptinfo=menudeptinfo";
  76. oParam.async = false;
  77. oParam.callback = "cf_TRMNI02031";
  78. tranf_submit(oParam);
  79. if( arErrorCode.pop("TRMNI02031") > -1 ){
  80. suppdeptnm = ds_temp_menudeptinfo.getColumn(0, "deptnm");
  81. }else{
  82. sysf_messageBox('메뉴사용처명 조회를 실패했습니다.', 'E999');
  83. }
  84. ds_menudeptinfo.setColumn(0, "deptcd", suppdeptcd);
  85. ds_menudeptinfo.setColumn(0, "deptnm", suppdeptnm);
  86. if( utlf_isNull(suppdeptnm) ){
  87. suppdeptnm = '항암';
  88. }
  89. grp_tle.capt_maintitl.text = suppdeptnm + ' 메인';
  90. grp_biz.swt_main.case_cm.text = suppdeptnm + ' Main';
  91. //20090217 dhkim
  92. //간호부서코드테이블에 등록된 bmt와 암센터 주사실의 코드를 조회한다.
  93. //injspecialroomweb/js/MNI001.js
  94. //fGetNursComnDept(cdgrupid, sendnode, recivenode, submitid, errmessage)
  95. ds_send.setColumn(0, "cdgrupid", "025");
  96. var oParam = {};
  97. oParam.id = "TRMNI02032";
  98. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  99. oParam.method = "reqGetNursDeptInfo";
  100. oParam.inds = "req=ds_send";
  101. oParam.outds = "ds_nursdeptinfo_bmtinfo_nursdeptlist=nursdeptlist";
  102. oParam.async = false;
  103. oParam.callback = "cf_TRMNI02032";
  104. tranf_submit(oParam);
  105. if( arErrorCode.pop("TRMNI02032") < 0 ){
  106. sysf_messageBox("간호에 등록된 bmt센터 소속간호부서조회를 실패하였습니다.", 'E999');
  107. return false;
  108. }
  109. ds_send.setColumn(0, "cdgrupid", "026");
  110. var oParam = {};
  111. oParam.id = "TRMNI02033";
  112. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  113. oParam.method = "reqGetNursDeptInfo";
  114. oParam.inds = "req=ds_send";
  115. oParam.outds = "ds_nursdeptinfo_cncrinfo_nursdeptlist=nursdeptlist";
  116. oParam.async = false;
  117. oParam.callback = "cf_TRMNI02033";
  118. tranf_submit(oParam);
  119. if( arErrorCode.pop("TRMNI02033") < 0 ){
  120. sysf_messageBox("간호에 등록된 암센터 소속간호부서조회를 실패하였습니다.", 'E999');
  121. return false;
  122. }
  123. var bmttempnode = ds_nursdeptinfo_bmtinfo_nursdeptlist;
  124. var cncrtempnode = ds_nursdeptinfo_cncrinfo_nursdeptlist;
  125. drprcpetc2 = lf_fGetDrPrcpEtc2(bmttempnode, cncrtempnode);//해당화면이 BMT센터인지 암센터인지 여부를 조회
  126. if(drprcpetc2 == 'B'){//BMT센터주사실
  127. ds_send.setColumn(0, "cdgrupid", "027");
  128. var oParam = {};
  129. oParam.id = "TRMNI02034";
  130. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  131. oParam.method = "reqGetNursDeptInfo";
  132. oParam.inds = "req=ds_send";
  133. oParam.outds = "ds_nursdeptinfo_centinfo_nursdeptlist=nursdeptlist";
  134. oParam.async = false;
  135. oParam.callback = "cf_TRMNI02034";
  136. tranf_submit(oParam);
  137. if( arErrorCode.pop("TRMNI02034") < 0 ){
  138. sysf_messageBox("간호에 등록된 BMT센터코드조회를 실패하였습니다.", 'E999');
  139. return false;
  140. }
  141. }else if(drprcpetc2 == 'Y'){//암센터주사실
  142. ds_send.setColumn(0, "cdgrupid", "028");
  143. var oParam = {};
  144. oParam.id = "TRMNI02034";
  145. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  146. oParam.method = "reqGetNursDeptInfo";
  147. oParam.inds = "req=ds_send";
  148. oParam.outds = "ds_nursdeptinfo_centinfo_nursdeptlist=nursdeptlist";
  149. oParam.async = false;
  150. oParam.callback = "cf_TRMNI02034";
  151. tranf_submit(oParam);
  152. if( arErrorCode.pop("TRMNI02034") < 0 ){
  153. sysf_messageBox("간호에 등록된 암센터코드조회를 실패하였습니다.", 'E999');
  154. return false;
  155. }
  156. }else{
  157. sysf_messageBox('메뉴그룹에 해당 사용처가 등록되어 있지 않습니다.', 'E999');
  158. // return false;
  159. }
  160. //글로벌변수에 센터코드 할당
  161. centcd = ds_nursdeptinfo_centinfo_nursdeptlist.getColumn(0, "deptcd");
  162. centnm = ds_nursdeptinfo_centinfo_nursdeptlist.getColumn(0, "deptnm");
  163. //alert('센터코드 : ' + centcd + ' 센터명 : ' + model.getValue('/root/nursdeptinfo/centinfo/nursdeptlist/deptnm'));
  164. //alert('BMT 센터 및 암센터 구분 : ' + drprcpetc2);
  165. //센터구분에 따른 센터코드 조회
  166. var xPathMain = "/root/main";
  167. var xPathInitCond = "/root/init/cond";
  168. var xPathMainCond = ds_main_cond;
  169. ds_main_cond.setColumn(0, "prestimportid", "cm");//외래메인이 메인으로 수정(20080924)특수주사실의 경우 그리드 변경으로 인해 메뉴파라미터(spclinj)를 쓰지못함(Nurse Main으로 기본 셋팅)
  170. //오늘 날짜로 초기화 하는 부분.(진료일자를 default로 오늘 날짜로 선택함)
  171. ds_main_cond.setColumn(0, "userid", sysf_getUserId());
  172. ds_main_cond.setColumn(0, "usernm", sysf_getUserName());
  173. ds_main_cond.setColumn(0, "wardcd", sysf_getUserInfo("dutplcecd"));
  174. ds_main_cond.setColumn(0, "orddd", utlf_getCurrentDate());
  175. ds_main_cond.setColumn(0, "orddeptcd", "");
  176. ds_main_cond.setColumn(0, "medispclid", "");
  177. ds_main_cond.setColumn(0, "atdoctid", "");
  178. ds_main_cond.setColumn(0, "indschacptstat", "1");
  179. //model.setValue("/root/main/cond/chemoindschacptstat", "1");
  180. //2090910 dhkim 항암처방만 체크상태 디폴트
  181. //여의도성모병원 : 특수주사실 메뉴그룹 선택시 default [항암처방만] 체크 풀도록 _20100316_SMY
  182. if( ds_codelist.lookupExpr("cdgrupid=='077' && supcdid=='05' && cdid=='"+sysf_getUserInfo("dutplceinstcd")+"'", "cdid") ){ //supcdid='05' : 여의도성모병원
  183. grp_biz.grp_header.chk_antcncryn.value = "";
  184. }else{
  185. grp_biz.grp_header.chk_antcncryn.value = "Y";
  186. }
  187. //20091102 dhkim 내환자세팅 조회
  188. fChemoSettingRnID();
  189. //오늘 날짜로 초기화 하는 부분.(진료일자를 default로 오늘 날짜로 선택함)
  190. var dt = utlf_getCurrentDate();
  191. ds_main_cond.setColumn(0, "prcpdd", dt);
  192. var colcaption = "";//grd_acting 컬럼길이
  193. var pGrd = grp_biz.swt_main.case_ac.grd_acting;//grd_acting 헤더 결정
  194. /*
  195. for (var i=0;i<pGrd.cols;i++) {
  196. var colnm = pGrd.colAttribute(i, "ref");
  197. switch (colnm) {
  198. case "chk":
  199. pGrd.colWidth(i) = 30;
  200. pGrd.colAttribute(i,"style") = "text-align:center;";
  201. pGrd.colDisabled(i) = false;
  202. colcaption+= "";
  203. break;
  204. case "prtldg":
  205. pGrd.colWidth(i) = 40;
  206. pGrd.colAttribute(i,"style") = "text-align:center;";
  207. colcaption+= "D";
  208. break;
  209. case "drugseq":
  210. pGrd.colWidth(i) = 60;
  211. pGrd.colAttribute(i,"style") = "text-align:center;";
  212. colcaption+= "투약순서";
  213. break;
  214. case "drugtt":
  215. pGrd.colWidth(i) = 60;
  216. pGrd.colAttribute(i,"style") = "text-align:right;";
  217. colcaption+= "투약시간";
  218. break;
  219. case "prcpmixno":
  220. pGrd.colWidth(i) = 50;
  221. pGrd.colAttribute(i,"style") = "text-align:left;";
  222. colcaption+= "MIX";
  223. break;
  224. case "prcpcd":
  225. pGrd.colWidth(i) = 80;
  226. pGrd.colAttribute(i,"style") = "text-align:left;";
  227. colcaption+= "처방코드";
  228. break;
  229. case "prcpnm":
  230. pGrd.colWidth(i) = 80;
  231. pGrd.colAttribute(i,"style") = "text-align:left;";
  232. colcaption+= "처방명칭";
  233. break;
  234. case "payflagcd":
  235. pGrd.colWidth(i) = 60;
  236. pGrd.colAttribute(i,"style") = "text-align:center;";
  237. colcaption+= "급여구분";
  238. break;
  239. case "volkind":
  240. pGrd.colWidth(i) = 70;
  241. pGrd.colAttribute(i,"style") = "text-align:left;";
  242. colcaption+= "적용방법";
  243. break;
  244. case "bsavol":
  245. pGrd.colWidth(i) = 60;
  246. pGrd.colAttribute(i,"style") = "text-align:right;";
  247. colcaption+= "BSA당용량";
  248. break;
  249. case "kgvol":
  250. pGrd.colWidth(i) = 60;
  251. pGrd.colAttribute(i,"style") = "text-align:right;";
  252. colcaption+= "kg당용량";
  253. break;
  254. case "prcpvol":
  255. pGrd.colWidth(i) = 60;
  256. pGrd.colAttribute(i,"style") = "text-align:right;";
  257. colcaption+= "1일용량";
  258. break;
  259. case "prcpvolunitnm":
  260. pGrd.colWidth(i) = 50;
  261. pGrd.colAttribute(i,"style") = "text-align:center;";
  262. colcaption+= "단위";
  263. break;
  264. case "prcpqty":
  265. pGrd.colWidth(i) = 60;
  266. pGrd.colAttribute(i,"style") = "text-align:right;";
  267. colcaption+= "1일수량";
  268. break;
  269. case "prcpqtyunitnm":
  270. pGrd.colWidth(i) = 50;
  271. pGrd.colAttribute(i,"style") = "text-align:center;";
  272. colcaption+= "단위";
  273. break;
  274. case "drugspd":
  275. pGrd.colWidth(i) = 60;
  276. pGrd.colAttribute(i,"style") = "text-align:right;";
  277. colcaption+= "투여속도";
  278. break;
  279. case "drugspdunitnm":
  280. pGrd.colWidth(i) = 50;
  281. pGrd.colAttribute(i,"style") = "text-align:center;";
  282. colcaption+= "단위";
  283. break;
  284. case "prcptims" :
  285. pGrd.colWidth(i) = 50;
  286. pGrd.colAttribute(i,"style") = "text-align:right;";
  287. colcaption+= "횟수";
  288. break;
  289. case "drugmthdspccdnm" :
  290. pGrd.colWidth(i)=100;
  291. pGrd.colAttribute(i,"style") = "text-align:center;";
  292. colcaption += "복용방법";
  293. pGrd.colHidden(i) = false;
  294. break;
  295. case "prnprcpflag":
  296. pGrd.colWidth(i) = 60;
  297. pGrd.colAttribute(i,"style") = "text-align:center;";
  298. colcaption+= "PRN여부";
  299. break;
  300. case "remark":
  301. pGrd.colWidth(i) = 80;
  302. pGrd.colAttribute(i,"style") = "text-align:left;";
  303. colcaption+= "전달사항";
  304. break;
  305. case "nursrem":
  306. pGrd.colWidth(i) = 80;
  307. pGrd.colAttribute(i,"style") = "text-align:left;";
  308. colcaption+= "간호전달";
  309. break;
  310. case "prcpexecdeptcd":
  311. pGrd.colWidth(i) = 80;
  312. pGrd.colAttribute(i,"style") = "text-align:center;";
  313. colcaption+= "실행부서";
  314. pGrd.colHidden(i) = true;
  315. break;
  316. case "instcd":
  317. pGrd.colWidth(i) = 0;
  318. pGrd.colAttribute(i,"style") = "text-align:left;";
  319. colcaption+= "기관코드";
  320. pGrd.colHidden(i) = true;
  321. break;
  322. case "cpgappno":
  323. pGrd.colWidth(i) = 0;
  324. pGrd.colAttribute(i,"style") = "text-align:left;";
  325. colcaption+= "CPG적용번호";
  326. pGrd.colHidden(i) = true;
  327. break;
  328. case "ordseqno":
  329. pGrd.colWidth(i) = 0;
  330. pGrd.colAttribute(i,"style") = "text-align:left;";
  331. colcaption+= "처방순번";
  332. pGrd.colHidden(i) = true;
  333. break;
  334. case "prcpdd":
  335. pGrd.colWidth(i) = 0;
  336. pGrd.colAttribute(i,"style") = "text-align:center;";
  337. colcaption+= "처방적용일";
  338. pGrd.colHidden(i) = true;
  339. break;
  340. case "saveflag":
  341. pGrd.colWidth(i) = 100;
  342. pGrd.colAttribute(i,"style") = "text-align:left;";
  343. colcaption+= "입원처방발생여부";
  344. pGrd.colHidden(i) = true;
  345. break;
  346. case "cretno":
  347. pGrd.colWidth(i) = 0;
  348. pGrd.colAttribute(i,"style") = "text-align:left;";
  349. colcaption+= "입퇴원생성번호";
  350. pGrd.colHidden(i) = true;
  351. break;
  352. case "prcpno":
  353. pGrd.colWidth(i) = 0;
  354. pGrd.colAttribute(i,"style") = "text-align:left;";
  355. colcaption+= "입원처방생성번호";
  356. pGrd.colHidden(i) = true;
  357. break;
  358. case "drugmthdspccd":
  359. pGrd.colWidth(i)=0;
  360. pGrd.colAttribute(i,"style") = "text-align:left;";
  361. colcaption+= "복용방법";
  362. pGrd.colHidden(i) = true;
  363. break;
  364. case "volrate" :
  365. pGrd.colWidth(i)=0;
  366. pGrd.colAttribute(i,"style") = "text-align:left;";
  367. colcaption+= "volrate";
  368. pGrd.colHidden(i) = true;
  369. break;
  370. case "prtldgnm" :
  371. pGrd.colWidth(i)=0;
  372. pGrd.colAttribute(i,"style") = "text-align:left;";
  373. colcaption+= "prtldgnm";
  374. pGrd.colHidden(i) = true;
  375. break;
  376. case "prtlkind" :
  377. pGrd.colWidth(i)=0;
  378. pGrd.colAttribute(i,"style") = "text-align:left;";
  379. colcaption+= "prtlkind";
  380. pGrd.colHidden(i) = true;
  381. break;
  382. }
  383. if ( i != (pGrd.cols-1))
  384. colcaption += "^";
  385. }
  386. pGrd.caption = colcaption;
  387. pGrd.frozenCols = fGridfindColIdx(pGrd,"prcpnm");
  388. */
  389. //공통코드(급여구분) - 처방전송탭의 그리드리스트에 조회
  390. ds_init_payflagcd_M0029.clearData();
  391. ds_init_coordflag_M0525.clearData();
  392. var arrParam = [{dsNm: "ds_init_payflagcd_M0029", cdGrpId: "M0029"},
  393. {dsNm: "ds_init_coordflag_M0525", cdGrpId: "M0525"}]
  394. appf_getCodeList(arrParam);
  395. //20091120 dhkim 상단정보 초기화
  396. appf_delPatientInfos(); //화면상단정보 삭제
  397. sysf_setGlobalVariable("paminfo", ""); //원무정보 reset
  398. if( ds_main_paminfo_list.rowcount > 0 ){
  399. ds_main_paminfo_list.clearData();
  400. }
  401. //특수주사실병동을 찾아넣는다.
  402. fSetWardcd();
  403. //자동조회시킨다.
  404. fInqurySelectedPrgm();
  405. }
  406. function cf_TRMNI02031(sSvcId, nErrorCode, sErrorMsg) {
  407. arErrorCode.push(sSvcId, nErrorCode);
  408. }
  409. function cf_TRMNI02032(sSvcId, nErrorCode, sErrorMsg) {
  410. arErrorCode.push(sSvcId, nErrorCode);
  411. }
  412. function cf_TRMNI02033(sSvcId, nErrorCode, sErrorMsg) {
  413. arErrorCode.push(sSvcId, nErrorCode);
  414. }
  415. function cf_TRMNI02034(sSvcId, nErrorCode, sErrorMsg) {
  416. arErrorCode.push(sSvcId, nErrorCode);
  417. }
  418. //20091102 dhkim
  419. //내환자세팅 조회
  420. function fChemoSettingRnID(){
  421. ds_main_cond.setColumn(0, "settingrnid", "");
  422. ds_send.clearData();
  423. ds_send.addRow();
  424. ds_send.setColumn(0, "wardcd", ds_main_cond.getColumn(0, "wardcd"));
  425. var oParam = {};
  426. oParam.id = "TRMNW00101";
  427. oParam.service = "wardcareapp.WardCareMngt";
  428. oParam.method = "reqGetWMInitData";
  429. oParam.inds = "reqcond=ds_send";
  430. oParam.outds = "ds_init_ward=ward ds_init_dept=dept ds_init_settingrn=settingrn";
  431. oParam.async = false;
  432. //oParam.callback = "cf_TRMNW00101";
  433. tranf_submit(oParam);
  434. for( var i=(ds_init_ward.rowcount-1) ; i>=0 ; i-- ){
  435. if( ds_init_ward.getColumn(i, "wardcd") == "2280200000" ){
  436. ds_init_ward.deleteRow(i); // 응급의료센터 제외
  437. }
  438. }
  439. grp_biz.grp_header.cmb_settingrn.index = 0;
  440. for( var i=0 ; i<ds_init_settingrn.rowcount ; i++ ){
  441. if( ds_main_cond.getColumn(0, "userid") == ds_init_settingrn.getColumn(i, "settingrnid") ){
  442. ds_main_cond.setColumn(0, "settingrnid", ds_main_cond.getColumn(0, "userid"));
  443. }
  444. }
  445. grp_biz.grp_header.cmb_dept.index = 0;
  446. fInqurySelectedPrgm();
  447. }
  448. //20081007 수정
  449. //병동을 특수주사실(3120400000)로 자동세팅
  450. function fSetWardcd(){
  451. //로그인한 사용자의 부서를 먼저 세팅
  452. var userDeptcd = sysf_getUserInfo('dutplcecd');
  453. if(userDeptcd != suppdeptcd){
  454. userDeptcd = suppdeptcd;
  455. }
  456. grp_biz.grp_header.combo1.value = userDeptcd;
  457. }
  458. //혈액준비, 항암미승인 조회
  459. function fGetWardPrescond()
  460. {
  461. ds_send.clearData();
  462. ds_send.addRow();
  463. ds_send.setColumn(0, "wardcd", ds_main_cond.getColumn(0, "wardcd"));
  464. ds_send.setColumn(0, "orddd", ds_main_cond.getColumn(0, "orddd"));
  465. var oParam = {};
  466. oParam.id = "TRMNW00104";
  467. oParam.service = "wardcareapp.WardCareMngt";
  468. oParam.method = "reqGetWardPrescond";
  469. oParam.inds = "reqcond=ds_send";
  470. oParam.outds = "ds_init_wardprescondinfo_wardprescond=wardprescond ds_init_wardprescondinfo_chngroomaprv=chngroomaprv ds_init_wardprescondinfo_blodprep=blodprep ds_init_wardprescondinfo_anticncr=anticncr ds_init_wardprescondinfo_unablspc=unablspc ds_init_wardprescondinfo_prcpnotend=prcpnotend ds_init_wardprescondinfo_wardisolcnt=wardisolcnt";
  471. oParam.async = false;
  472. //oParam.callback = "cf_TRMNW00104";
  473. tranf_submit(oParam);
  474. var blodpreppatlist = "";
  475. // var chngroomaprvpatlist = "";
  476. var anticncrlistpatlist = "";
  477. //혈액준비환자리스트 조합
  478. for( var i=0 ; i<ds_init_wardprescondinfo_blodprep.rowcount ; i++ ){
  479. if( i == 0 ){
  480. blodpreppatlist += ds_init_wardprescondinfo_blodprep.getColumn(i, "patnm");
  481. } else {
  482. blodpreppatlist += ", " + ds_init_wardprescondinfo_blodprep.getColumn(i, "patnm");
  483. }
  484. }
  485. /*
  486. //전실승인환자리스트 조합
  487. for(var i = 1; i <= getNodesetCount("/root/init/wardprescondinfo/chngroomaprv"); i++) {
  488. if (i == 1) {
  489. chngroomaprvpatlist += model.getValue("/root/init/wardprescondinfo/chngroomaprv["+ i +"]/patnm");
  490. } else {
  491. chngroomaprvpatlist += ", " + model.getValue("/root/init/wardprescondinfo/chngroomaprv["+ i +"]/patnm");
  492. }
  493. }
  494. */
  495. //항암미승인환자리스트 조합
  496. for( var i=0 ; i<ds_init_wardprescondinfo_anticncr.rowcount ; i++ ){
  497. if( i == 0 ){
  498. anticncrlistpatlist += ds_init_wardprescondinfo_anticncr.getColumn(i, "patnm");
  499. } else {
  500. anticncrlistpatlist += ", " + ds_init_wardprescondinfo_anticncr.getColumn(i, "patnm");
  501. }
  502. }
  503. grp_biz.tar_blodprep.value = blodpreppatlist;
  504. // model.setValue("/root/main/precondlist/chngroomaprvlist", chngroomaprvpatlist);
  505. grp_biz.tar_anticncrt.value = anticncrlistpatlist;
  506. }
  507. function fInqurySelectedPrgm(){
  508. fGetWardPrescond();//재원환자수, 전실승인, 혈액준비, 항암미승인 조회
  509. switch(ds_main_cond.getColumn(0, "prestimportid")) {
  510. case "cm": //특수주사실 main
  511. grp_biz.swt_main.tabindex = 0;
  512. grp_biz.swt_main.case_cm.sha_state.visible = true;
  513. grp_biz.swt_main.case_cm.cap_state.visible = true;
  514. grp_biz.swt_main.case_om.cap_color.visible = false;
  515. grp_biz.swt_main.case_om.cap_uncnfm.visible = false;
  516. grp_biz.swt_main.case_om.cap_prcp.visible = false;
  517. grp_biz.caption7.visible = false;//전실승인캡션
  518. grp_biz.tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  519. grp_biz.swt_main.case_cm.btn_prnt.enable = false;//환자카드출력
  520. fGetChemoList();//케모환자리스트 조회
  521. // fGetChkActing();
  522. break;
  523. case "ac": //항암전송
  524. grp_biz.swt_main.tabindex = 1;
  525. grp_biz.swt_main.case_cm.sha_state.visible = false;
  526. grp_biz.swt_main.case_cm.cap_state.visible = false;
  527. grp_biz.swt_main.case_om.cap_color.visible = false;
  528. grp_biz.swt_main.case_om.cap_uncnfm.visible = false;
  529. grp_biz.swt_main.case_om.cap_prcp.visible = false;
  530. grp_biz.caption7.visible = false;//전실승인캡션
  531. grp_biz.tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  532. //20090326 dhkim 전체 체크박스 활성화
  533. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "displaytype", "checkbox");
  534. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "edittype", "checkbox");
  535. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "text", "1");//추가..헤더 체크상태일때 전체체크 디폴드로..
  536. fGetActingList();
  537. break;
  538. case "om" ://order manage
  539. grp_biz.swt_main.tabindex = 2;
  540. grp_biz.swt_main.case_cm.sha_state.visible = false;
  541. grp_biz.swt_main.case_cm.cap_state.visible = false;
  542. grp_biz.swt_main.case_om.cap_color.visible = true;
  543. grp_biz.swt_main.case_om.cap_uncnfm.visible = true;
  544. grp_biz.swt_main.case_om.cap_prcp.visible = true;
  545. grp_biz.swt_main.case_om.cap_color.position.left = 15;
  546. grp_biz.swt_main.case_om.cap_color.position.width = 15;
  547. grp_biz.swt_main.case_om.cap_uncnfm.position.left = 35;
  548. grp_biz.swt_main.case_om.cap_uncnfm.position.width = 38;
  549. grp_biz.swt_main.case_om.cap_prcp.position.left = 120;
  550. grp_biz.swt_main.case_om.cap_prcp.position.width = 100;
  551. grp_biz.swt_main.case_om.cap_prcp.style.color = "#0000ff";
  552. grp_biz.caption7.visible = false;//전실승인캡션
  553. grp_biz.tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  554. fv_OrderDepth.fGetDrugStat();
  555. fv_OrderDepth.fGetOMPatList();
  556. break;
  557. case "nm" : //nurse main
  558. grp_biz.swt_main.tabindex = 3;
  559. grp_biz.swt_main.case_cm.sha_state.visible = false;
  560. grp_biz.swt_main.case_cm.cap_state.visible = true;
  561. grp_biz.swt_main.case_om.cap_color.visible = false;
  562. grp_biz.swt_main.case_om.cap_uncnfm.visible = false;
  563. grp_biz.swt_main.case_om.cap_prcp.visible = true;
  564. //cap_ser.visible = true;
  565. grp_biz.swt_main.case_om.cap_prcp.position.left = 698;
  566. grp_biz.swt_main.case_om.cap_prcp.style.color = "#000000";
  567. //grd_wardpatlist.visible = true;
  568. grp_biz.caption7.visible = false;//전실승인캡션
  569. grp_biz.tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  570. grp_biz.swt_main.case_nm.import1.fGetWardPatList();
  571. break;
  572. case "prn" :
  573. grp_biz.swt_main.tabindex = 2;
  574. grp_biz.swt_main.case_cm.sha_state.visible = false;
  575. grp_biz.swt_main.case_cm.cap_state.visible = false;
  576. grp_biz.swt_main.case_om.cap_color.visible = false;
  577. grp_biz.swt_main.case_om.cap_uncnfm.visible = false;
  578. grp_biz.swt_main.case_om.cap_prcp.visible = false;
  579. grp_biz.caption7.visible = false;//전실승인캡션
  580. grp_biz.tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  581. ds_main_cond.setColumn(0, "wardcd", ds_main_wardcdinfo_wardcdlist.getColumn(0, "chemowardcd"));
  582. ds_main_cond.setColumn(0, "orddd", ds_main_cond.getColumn(0, "prcpdd"));
  583. fv_OrderDepth.fSetPrnMode();
  584. fv_OrderDepth.fGetOMPatList("chemo");
  585. break;
  586. //20090702 dhkim 외래예약처방탭 추가
  587. case "rp" :
  588. grp_biz.swt_main.tabindex = 4; //예약처방전송버튼활성화
  589. grp_biz.swt_main.case_cm.sha_state.visible = false;//프로토콜메인 환자상태 캡션
  590. grp_biz.swt_main.case_cm.cap_state.visible = false;//프로토콜메인 환자상태 캡션
  591. grp_biz.swt_main.case_om.cap_color.visible = false;//미확인컬러 캡션
  592. grp_biz.swt_main.case_om.cap_uncnfm.visible = false;//미확인 캡션
  593. grp_biz.swt_main.case_om.cap_prcp.visible = false;//일반/반환/퇴원 캡션
  594. grp_biz.caption7.visible = false;//전실승인캡션
  595. grp_biz.tar_chngroomaprv.visible = false;//전실승인텍스트애리어
  596. //20091119 dhkim
  597. //예약처방전송 파라미터값을 상단정보기준으로 상단에 있는 환자의 파라미터값으로 받아오도록 변경
  598. //(현재는 메인그리드에 선택된 환자의 파라미터를 넘김)
  599. var curROw = ds_main_chemoinfo_chemolist.rowposition;
  600. var pid = "";
  601. var indd = "";
  602. var cretno = "";
  603. var ordtype = "";
  604. var medispclid = "";
  605. var roomcd = "";
  606. var sexage = "";
  607. var hngnm = "";
  608. //2010.01.25 dhkim 주석
  609. // var curRow = fSincMainGridTopInfo();//상단정보를 받아와 현재 row를 조회
  610. var topInfoRetn = fGetTopInfoToChemoPatInfo();
  611. var pid = getTopInfoKeysIndex(topInfoRetn, "pid");
  612. if( !utlf_isNull(pid) ){
  613. indd = getTopInfoKeysIndex(topInfoRetn, "indd");
  614. cretno = getTopInfoKeysIndex(topInfoRetn, "cretno");
  615. ordtype = getTopInfoKeysIndex(topInfoRetn, "ordtype");
  616. medispclid = getTopInfoKeysIndex(topInfoRetn, "medispclid");
  617. roomcd = getTopInfoKeysIndex(topInfoRetn, "roomcd");
  618. sexage = getTopInfoKeysIndex(topInfoRetn, "sexage");
  619. hngnm = getTopInfoKeysIndex(topInfoRetn, "hngnm");
  620. }else{
  621. sysf_messageBox("상단정보가 없거나 환자정보가 존재하지 않습니다.", "E");
  622. }
  623. /*
  624. var pid = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/pid');
  625. var indd = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_indd');
  626. var cretno = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_cretno');
  627. var ordtype = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_ordtype');
  628. var medispclid = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/rp_medispclid');
  629. var roomcd = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/roomcd');
  630. var sexage = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/age');
  631. var hngnm = model.getValue('/root/main/chemoinfo/chemolist[' + curRow + ']/hngnm');
  632. */
  633. if( utlf_isNull(indd) ){
  634. indd = utlf_getCurrentDate();
  635. }
  636. grp_biz.swt_main.case_rp.import4.fGetRsrvPrcpChemo(pid, indd, cretno, ordtype, medispclid, roomcd, sexage, hngnm);
  637. break;
  638. }
  639. }
  640. /**
  641. * 2010.01.25 dhkim - 상단정보에서 가져온 내역배열에서 key값으로 데이터 조회
  642. */
  643. function getTopInfoKeysIndex(topInfoRetn, topKey){
  644. var topInfoRowArry = topInfoRetn.split("▒");
  645. var retnStr = "";
  646. if(topInfoRowArry.length > 0){
  647. var topInfoKeys = topInfoRowArry[0];
  648. var topInfoColsStr = topInfoRowArry[1];
  649. if( !utlf_isNull(topInfoKeys) && !utlf_isNull(topInfoColsStr) ){
  650. var topInfoKeys = topInfoKeys.split("|");
  651. var topInfoDatas = topInfoColsStr.split("|");
  652. for( var i=0 ; i<topInfoKeys.length ; i++ ){
  653. if( topInfoKeys[i] == topKey ){
  654. retnStr = topInfoDatas[i];
  655. break;
  656. }
  657. }
  658. }else{
  659. retnStr = "";
  660. }
  661. }else{
  662. retnStr = "";
  663. }
  664. return retnStr;
  665. }
  666. // --------------------------------------------------
  667. // 그리드에서 컬럼명으로 컬럼idx 찾기
  668. // --------------------------------------------------
  669. function fGridfindColIdx(pGrd,colNm) {
  670. var iCols = pGrd.Cols;
  671. var colFindIdx=1;
  672. for( var col = 0; col < iCols; col++ ) {
  673. if (pGrd.colAttribute(col,"ref") == colNm) {
  674. colFindIdx = col;
  675. break;
  676. }
  677. }
  678. return colFindIdx;
  679. }
  680. // --------------------------------------------------
  681. //switch 작업 토클
  682. // --------------------------------------------------
  683. function fSelectedPrgm()
  684. {
  685. var xPathMainCond = "/root/main/cond";
  686. var flag = ds_main_cond.getColumn(0, "workflag");
  687. switch(flag) {
  688. case "cm":
  689. btn_sm.selected = true;
  690. model.toggle("case_cm");
  691. fGetChemoList();//케모환자리스트 조회
  692. break;
  693. case "ac":
  694. btn_ac.selected = true;
  695. model.toggle("case_ac");
  696. fGetActingList();
  697. break;
  698. case "om" :
  699. btn_om.selected = true;
  700. ds_main_cond.setColumn(0, "wardcd",model.getValue( "/root/main/wardcdinfo/wardcdlist/chemowardcd"));
  701. ds_main_cond.setColumn(0, "orddd",ds_main_cond.getColumn(0, "prcpdd"));
  702. model.refresh();
  703. model.toggle("case_om");
  704. fGetOMPatList("chemo");
  705. break;
  706. case "prn" :
  707. btn_om.selected = true;
  708. ds_main_cond.setColumn(0, "wardcd",model.getValue( "/root/main/wardcdinfo/wardcdlist/chemowardcd"));
  709. ds_main_cond.setColumn(0, "orddd",ds_main_cond.getColumn(0, "prcpdd"));
  710. model.refresh();
  711. model.toggle("case_om");
  712. fSetPrnMode();
  713. fGetOMPatList("chemo");
  714. break;
  715. default :
  716. model.toggle("case_cm");
  717. fGetChemoList();//케모환자리스트조회
  718. }
  719. }
  720. // --------------------------------------------------
  721. //chemo 메인 조회
  722. // 20091119 dhkim
  723. // 메인리스트 조회시 상단정보 초기화추가
  724. // --------------------------------------------------
  725. function fGetChemoList() {
  726. //20091119 dhkim
  727. //화면상단정보 삭제
  728. //delPatientInfos();
  729. // setGlobalVariable("paminfo", ""); //원무정보 reset
  730. // if(getNodesetCount("/root/main/paminfo") > 0) {
  731. // model.removeNodeset("/root/main/paminfo/list");
  732. // }
  733. var xPathSend = ds_send;
  734. var xPathSendReqdata = ds_send_reqdata;
  735. var row = ds_main_chemoinfo_chemolist.rowposition;
  736. ds_send_reqdata.copyData(ds_send_reqdata_temp);
  737. ds_send.clearData();
  738. ds_send.addRow();
  739. ds_send_reqdata.clearData();
  740. ds_send_reqdata.addRow();
  741. ds_send_reqdata.setColumn(0, "prcpdd", ds_main_cond.getColumn(0, "prcpdd"));
  742. ds_send_reqdata.setColumn(0, "pid", ds_main_cond.getColumn(0, "pid"));
  743. ds_send_reqdata.setColumn(0, "ordseqflag", ds_main_cond.getColumn(0, "ordseqflag"));
  744. //[20081127 dhkim] itc 변경개발요청에 따른 입퇴실구분 추가
  745. //model.makeValue(xPathSendReqdata + "/indschacptstat", ds_main_cond.getColumn(0, "chemoindschacptstat"));
  746. ds_send_reqdata.setColumn(0, "indschacptstat", ds_main_cond.getColumn(0, "indschacptstat"));
  747. ds_send_reqdata.setColumn(0, "orddeptcd", ds_main_cond.getColumn(0, "orddeptcd"));
  748. ds_send_reqdata.setColumn(0, "medispclid", ds_main_cond.getColumn(0, "medispclid"));
  749. ds_send_reqdata.setColumn(0, "atdoctid", ds_main_cond.getColumn(0, "atdoctid"));
  750. //20090223 dhkim 병동코드조건추가
  751. //병동이 null이면 디폴트로 로그인사용자부서로 조회
  752. var wardcd = ds_main_cond.getColumn(0, "wardcd");
  753. if( utlf_isNull(wardcd) ){
  754. wardcd = sysf_getUserInfo('dutplcecd');
  755. }
  756. //20090223 dhkim 해당 병동이 소속된 센터의 코드 파라미터 추가
  757. ds_send_reqdata.setColumn(0, "centcd", centcd);
  758. //20090223 dhkim 해당 병동 입원한 환자 조회
  759. ds_send_reqdata.setColumn(0, "wardcd", wardcd);
  760. //20090407 dhkim
  761. //암센터주사실과 BMT주사실 구분을 추가 (암센터주사실 : Y, BMT주사실 :B)
  762. ds_send_reqdata.setColumn(0, "drprcpetc2", drprcpetc2);
  763. //20090306 dhkim
  764. //조회조건에 등록번호가 입력되어 있지 않은경우는 성명 sexage 주민번호 clear
  765. var pid = ds_main_cond.getColumn(0, "pid");
  766. if( utlf_isNull(pid) ){
  767. grp_biz.grp_header.opt_hngnm.value = "";
  768. grp_biz.grp_header.opt_rrgstno.value = "";
  769. grp_biz.grp_header.opt_gndrage.value = "";
  770. }
  771. //20090910 dhkim 항암처방만 체크박스 추가
  772. var indschacptstat = ds_main_cond.getColumn(0, "indschacptstat");
  773. if(indschacptstat == '4'){
  774. //구분이 퇴실완료상태로 조회시 항암처방만 체크박스 체크상태 강제해제
  775. grp_biz.grp_header.chk_antcncryn.value = "";
  776. grp_biz.grp_header.chk_antcncryn.enable = false;
  777. }else{
  778. grp_biz.grp_header.chk_antcncryn.enable = true;
  779. }
  780. ds_send_reqdata.setColumn(0, "antcncryn", ds_main_cond.getColumn(0, "antcncryn"));
  781. //20091102 dhkim 내환자세팅 조건 추가
  782. ds_send_reqdata.setColumn(0, "settingrnid", ds_main_cond.getColumn(0, "settingrnid"));
  783. var chemorowp = grp_biz.swt_main.case_cm.grd_chemo.vscrollbar.pos;
  784. var oParam = {};
  785. oParam.id = "TRMNI02003";
  786. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  787. oParam.method = "reqGetChemoInfo";
  788. oParam.inds = "reqdata=ds_send_reqdata";
  789. oParam.outds = "ds_main_chemoinfo_chemolist=chemolist";
  790. oParam.async = false;
  791. oParam.callback = "cf_TRMNI02003";
  792. tranf_submit(oParam);
  793. for(var detstatustrim=0; detstatustrim < ds_main_chemoinfo_chemolist.rowcount; detstatustrim++){
  794. ds_main_chemoinfo_chemolist.setColumn(detstatustrim, "detstatus", ds_main_chemoinfo_chemolist.getColumn(detstatustrim, "detstatus").getTrim());
  795. }
  796. grp_biz.swt_main.case_cm.grd_chemo.vscrollbar.pos = chemorowp;
  797. if( utlf_isNull(ds_main_chemoinfo_chemolist.getColumnInfo("rgstno")) ){
  798. ds_main_chemoinfo_chemolist.addColumn("rgstno", "string");
  799. }
  800. ds_main_chemoinfo_chemolist.addColumn("colBgColor", "string");
  801. ds_main_chemoinfo_chemolist.addColumn("colBgColor9", "string");
  802. ds_main_chemoinfo_chemolist.addColumn("colBgIMG1", "string");
  803. ds_main_chemoinfo_chemolist.addColumn("colBgIMG2", "string");
  804. ds_main_chemoinfo_chemolist.addColumn("colBgIMG3", "string");
  805. ds_main_chemoinfo_chemolist.addColumn("colColor12", "string");
  806. if( arErrorCode.pop("TRMNI02003") < 0 ){
  807. sysf_messageBox('항암메인 환자 리스트 조회를 실패하였습니다.', 'E999');
  808. return false;
  809. }else{
  810. //2010.01.25 dhkim - 주석
  811. /*
  812. //20091119 dhkim
  813. //환자리스트 조회후 상단정보에 있는 환자 자동선택상태로 변경한다.
  814. var curRow = fSincMainGridTopInfo();
  815. grd_chemo.row = curRow;
  816. */
  817. }
  818. var xPath = ds_main_chemoinfo_chemolist;
  819. ds_main_chemoinfo_chemolist.enableevent = false;
  820. ds_main_chemoinfo_chemolist.updatecontrol = false;
  821. for( var i=0 ; i<ds_main_chemoinfo_chemolist.rowcount ; i++ ){
  822. var disp1 = ds_main_chemoinfo_chemolist.getColumn(i, "disp1");
  823. var disp2 = ds_main_chemoinfo_chemolist.getColumn(i, "disp2");
  824. var disp3 = ds_main_chemoinfo_chemolist.getColumn(i, "disp3");
  825. var medamtpostyn = ds_main_chemoinfo_chemolist.getColumn(i, "medamtpostyn");
  826. var dethyn = ds_main_chemoinfo_chemolist.getColumn(i, "dethyn");
  827. var prtlcd = ds_main_chemoinfo_chemolist.getColumn(i, "prtlcd");
  828. var bfprtlcd = ds_main_chemoinfo_chemolist.getColumn(i, "bfprtlcd");
  829. if(dethyn == "Y") {
  830. ds_main_chemoinfo_chemolist.setColumn(i, "colBgColor", "#999999");
  831. ds_main_chemoinfo_chemolist.setColumn(i, "colBgColor9", "#999999");
  832. } else {
  833. if(medamtpostyn == "V") {
  834. ds_main_chemoinfo_chemolist.setColumn(i, "colBgColor", "#ffff00");
  835. ds_main_chemoinfo_chemolist.setColumn(i, "colBgColor9", "#ffff00");
  836. } else {
  837. ds_main_chemoinfo_chemolist.setColumn(i, "colBgColor", "#ffffff");
  838. ds_main_chemoinfo_chemolist.setColumn(i, "colBgColor9", "#ffffff");
  839. }
  840. }
  841. if (disp1 == "Y") {
  842. ds_main_chemoinfo_chemolist.setColumn(i, "colBgIMG1", "../../../com/hismainxp/images/btn_top_infection0.gif");
  843. }else{
  844. ds_main_chemoinfo_chemolist.setColumn(i, "colBgIMG1", "");
  845. }
  846. if (disp2 == "Y") {
  847. ds_main_chemoinfo_chemolist.setColumn(i, "colBgIMG2", "../../../com/hismainxp/images/btn_top_infection1.gif");
  848. }else{
  849. ds_main_chemoinfo_chemolist.setColumn(i, "colBgIMG2", "");
  850. }
  851. if (disp3 == "Y") {
  852. ds_main_chemoinfo_chemolist.setColumn(i, "colBgIMG3", "../../../com/hismainxp/images/btn_top_infection2.gif");
  853. }else{
  854. ds_main_chemoinfo_chemolist.setColumn(i, "colBgIMG3", "");
  855. }
  856. if(prtlcd != bfprtlcd){
  857. ds_main_chemoinfo_chemolist.setColumn(i, "colColor12", "#ff0000");
  858. }else{
  859. ds_main_chemoinfo_chemolist.setColumn(i, "colColor12", "#000000");
  860. }
  861. }
  862. ds_main_chemoinfo_chemolist.updatecontrol = true;
  863. ds_main_chemoinfo_chemolist.enableevent = true;
  864. }
  865. function cf_TRMNI02003(sSvcId, nErrorCode, sErrorMsg) {
  866. arErrorCode.push(sSvcId, nErrorCode);
  867. }
  868. // --------------------------------------------------
  869. // 프로토콜 처방 리스트 조회
  870. // 20091119 dhkim
  871. // 변경전 : 현재 항암처방정보를 메인환자리스트 그리드에 선택된 row에 있는 환자의 정보로 가져오고 있음.
  872. // 변경후 : 상단정보가 세팅된 환자의 항암처방정보를 조회해 오는 것으로 변경함.(itc 요구사항-> 요청번호 ; 9091)
  873. // --------------------------------------------------
  874. function fGetActingList() {
  875. //2010.01.25 dhkim 주석처리
  876. var curRow = ds_main_chemoinfo_chemolist.rowposition;
  877. /*
  878. //20091119 dhkim 상단정보가 세팅된 환자의 처방 조회로 변경
  879. var curRow = fSincMainGridTopInfo();//상단정보를 받아와 현재 row를 조회
  880. */
  881. //2010.02.11 dhkim - 메인그리드를 상단정보의 환자로 세팅
  882. var curr = fSincMainGridTopInfo();
  883. // alert("chemo row : "+curr);
  884. ds_main_chemoinfo_chemolist.rowposition = curr;
  885. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  886. if (ds_main_chemoinfo_chemolist.rowposition < 0) {
  887. ds_main_actinginfo_actinglist.clearData(); //자료가 나오지 않게 질의하기 위해서
  888. ds_main_actingbasicinfo.clearData(); //자료가 나오지 않게 질의하기 위해서
  889. return;
  890. }
  891. var cpgappno = "";
  892. var prtldg = "";
  893. var prcpdd = "";
  894. var sickclsnm = "";
  895. var prtlnm = "";
  896. var prtldg = "";
  897. var prtldg_d = "";
  898. var inptflag = "";
  899. var detstatus = "";
  900. var disp_patnm = "";
  901. var disp_pid = "";
  902. var disp_age = "";
  903. var disp_depthngnm = "";
  904. var disp_orddrnm = "";
  905. var careinrmdd = "";
  906. var wardcd = "";
  907. var wardnm = "";
  908. //2010.01.25 dhkim - 상단정보의 환자정보로 그리드의 항암프로토콜 정보를 가져온다.
  909. var topInfoRetn = fGetTopInfoToChemoPatInfo();
  910. var pid = getTopInfoKeysIndex(topInfoRetn, "pid");
  911. if( utlf_isNull(pid) ){
  912. //messageBox("상단정보가 없거나 환자정보가 존재하지 않습니다.", "E");
  913. //2010.02.11 dhkim - 환자리스트에 환자상단에 해당되는 정보가 없을경우 상단정보 삭제후 리턴
  914. appf_delPatientInfos(); //화면상단정보 삭제
  915. sysf_setGlobalVariable("paminfo", ""); //원무정보 reset
  916. if( ds_main_paminfo_list.rowcount > 0 ){
  917. ds_main_paminfo_list.clearData();
  918. }
  919. }else{
  920. cpgappno = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "cpgappno"));
  921. prtldg = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "prtldg"));
  922. prcpdd = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "prcpdd"));
  923. sickclsnm = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "sickclsnm"));
  924. prtlnm = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "prtlnm"));
  925. prtldg_d = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "prtldg_d"));
  926. inptflag = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "inptflag"));
  927. detstatus = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "detstatus"));
  928. disp_patnm = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "hngnm"));
  929. disp_pid = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "pid"));
  930. disp_age = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "age"));
  931. disp_depthngnm = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "depthngnm"));
  932. disp_orddrnm = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "orddrnm"));
  933. careinrmdd = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "careinrmdd"));
  934. wardcd = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "wardcd"));
  935. wardnm = utlf_transNullToEmpty(getTopInfoKeysIndex(topInfoRetn, "wardnm"));
  936. }
  937. //2010.02.11 dhkim actingbasicinfo를 재구성
  938. ds_main_actingbasicinfo.clearData();
  939. ds_main_actingbasicinfo.addRow();
  940. ds_main_actingbasicinfo.setColumn(0, "cpgappno", cpgappno);
  941. ds_main_actingbasicinfo.setColumn(0, "prtldg", prtldg);
  942. ds_main_actingbasicinfo.setColumn(0, "prcpdd", prcpdd);
  943. ds_main_actingbasicinfo.setColumn(0, "sickclsnm", sickclsnm);
  944. ds_main_actingbasicinfo.setColumn(0, "prtlnm", prtlnm);
  945. ds_main_actingbasicinfo.setColumn(0, "prtldg_d", prtldg_d);
  946. ds_main_actingbasicinfo.setColumn(0, "inptflag", (inptflag == "undefined" ? "" : inptflag));
  947. ds_main_actingbasicinfo.setColumn(0, "detstatus", detstatus);
  948. ds_main_actingbasicinfo.setColumn(0, "disp_patnm", disp_patnm);
  949. ds_main_actingbasicinfo.setColumn(0, "disp_pid", disp_pid);
  950. ds_main_actingbasicinfo.setColumn(0, "disp_age", disp_age);
  951. ds_main_actingbasicinfo.setColumn(0, "disp_depthngnm", disp_depthngnm);
  952. ds_main_actingbasicinfo.setColumn(0, "disp_orddrnm", disp_orddrnm);
  953. ds_main_actingbasicinfo.setColumn(0, "careinrmdd", careinrmdd);
  954. ds_main_actingbasicinfo.setColumn(0, "wardcd", wardcd);
  955. ds_main_actingbasicinfo.setColumn(0, "wardnm", wardnm);
  956. /*
  957. //20091119 dhkim 진단명, 프로토콜명, 환자명, 등록번호, 차수, 구분, 상태 등 display
  958. model.setValue("/root/main/actingbasicinfo/cpgappno", cpgappno);
  959. model.setValue("/root/main/actingbasicinfo/prtldg", prtldg);
  960. model.setValue("/root/main/actingbasicinfo/prcpdd", prcpdd);
  961. model.setValue("/root/main/actingbasicinfo/sickclsnm", sickclsnm);
  962. model.setValue("/root/main/actingbasicinfo/prtlnm", prtlnm);
  963. model.setValue("/root/main/actingbasicinfo/prtldg_d", prtldg_d);
  964. model.setValue("/root/main/actingbasicinfo/inptflag", inptflag);
  965. model.setValue("/root/main/actingbasicinfo/detstatus", detstatus);
  966. model.setValue("/root/main/actingbasicinfo/disp_patnm", disp_patnm);
  967. model.setValue("/root/main/actingbasicinfo/disp_pid", disp_pid);
  968. model.setValue("/root/main/actingbasicinfo/disp_age", disp_age);
  969. model.setValue("/root/main/actingbasicinfo/disp_depthngnm", disp_depthngnm);
  970. model.setValue("/root/main/actingbasicinfo/disp_orddrnm", disp_orddrnm);
  971. model.setValue("/root/main/actingbasicinfo/careinrmdd", careinrmdd);
  972. model.setValue("/root/main/actingbasicinfo/wardcd", wardcd);
  973. model.setValue("/root/main/actingbasicinfo/wardnm", wardnm);
  974. */
  975. /*
  976. //2010.01.25 dhkim - 주석처리
  977. cpgappno = model.getValue("/root/main/chemoinfo/chemolist["+ curRow + "]/cpgappno");
  978. prtldg = model.getValue("/root/main/chemoinfo/chemolist["+ curRow + "]/prtldg");
  979. prcpdd = model.getValue("/root/main/chemoinfo/chemolist["+ curRow + "]/prcpdd");
  980. //20091119 dhkim 진단명, 프로토콜명, 환자명, 등록번호, 차수, 구분, 상태 등 display
  981. model.setValue("/root/main/actingbasicinfo/sickclsnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/sickclsnm"));
  982. model.setValue("/root/main/actingbasicinfo/prtlnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/prtlnm"));
  983. model.setValue("/root/main/actingbasicinfo/prtldg", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/prtldg"));
  984. model.setValue("/root/main/actingbasicinfo/prtldg_d", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/prtldg_d"));
  985. model.setValue("/root/main/actingbasicinfo/inptflag", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/inptflag"));
  986. model.setValue("/root/main/actingbasicinfo/detstatus", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/detstatus"));
  987. model.setValue("/root/main/actingbasicinfo/disp_patnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/hngnm"));
  988. model.setValue("/root/main/actingbasicinfo/disp_pid", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/pid"));
  989. model.setValue("/root/main/actingbasicinfo/disp_age", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/age"));
  990. model.setValue("/root/main/actingbasicinfo/disp_depthngnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/depthngnm"));
  991. model.setValue("/root/main/actingbasicinfo/disp_orddrnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/orddrnm"));
  992. model.setValue("/root/main/actingbasicinfo/careinrmdd", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/careinrmdd"));
  993. model.setValue("/root/main/actingbasicinfo/wardcd", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/wardcd"));
  994. model.setValue("/root/main/actingbasicinfo/wardnm", model.getValue("/root/main/chemoinfo/chemolist[" + curRow + "]/wardnm"));
  995. */
  996. //var cpgappno = model.getValue("/root/main/chemoinfo/chemolist["+ pGrd.row + "]/cpgappno");
  997. //var prtldg = in_actingprtldg.value;
  998. /*
  999. //20091119 dhkim 불필요한 visible로 판단되어 주석처리함
  1000. var prcpddidx = fGridfindColIdx(grd_acting,"prcpdd");
  1001. var prcpdd = "";
  1002. grd_acting.colWidth(prcpddidx) = 0;
  1003. grd_acting.colHidden(prcpddidx) = true;
  1004. if (prtldg == "") { //프로토콜 차수가없을 경우 적용일자를 display한다.
  1005. var prcpdd = "";
  1006. grd_acting.colWidth(prcpddidx) = 80;
  1007. grd_acting.colHidden(prcpddidx) = false;
  1008. }
  1009. */
  1010. var xPathSend = ds_send;
  1011. var xPathSendReqdata = ds_send_reqdata;
  1012. ds_send_reqdata.copyData(ds_send_reqdata_temp);
  1013. //항암처방조회시 필요한 key : cpgappno, prcpdd, prtldg
  1014. ds_send.clearData();
  1015. ds_send.addRow();
  1016. ds_send_reqdata.clearData();
  1017. ds_send_reqdata.addRow();
  1018. ds_send_reqdata.setColumn(0, "cpgappno",cpgappno );
  1019. ds_send_reqdata.setColumn(0, "prcpdd",prcpdd );
  1020. ds_send_reqdata.setColumn(0, "prtldg",prtldg );
  1021. var oParam = {};
  1022. oParam.id = "TRMNI02004";
  1023. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1024. oParam.method = "reqGetActingInfo";
  1025. oParam.inds = "reqdata=ds_send_reqdata";
  1026. oParam.outds = "ds_main_actinginfo_actinglist=actinglist";
  1027. oParam.async = false;
  1028. //oParam.callback = "cf_TRMNI02004";
  1029. tranf_submit(oParam);
  1030. // sysf_trace(grp_biz.swt_main.case_ac.grd_acting.getCellProperty("head", 0, "text"));
  1031. // if(grp_biz.swt_main.case_ac.grd_acting.getCellProperty("head", 0, "text") =="1"){
  1032. // dsf_setDefaultVal(ds_main_actinginfo_actinglist, "chk:true");
  1033. // }
  1034. ds_main_actinginfo_actinglist.addColumn("colBgColor", "string");
  1035. ds_main_actinginfo_actinglist.addColumn("colBgColor6", "string");
  1036. ds_main_actinginfo_actinglist.addColumn("colEdittype0", "string");
  1037. ds_main_actinginfo_actinglist.addColumn("colEdittype8", "string");
  1038. ds_main_actinginfo_actinglist.addColumn("colEdittype9", "string");
  1039. ds_main_actinginfo_actinglist.addColumn("colEdittype22", "string");
  1040. ds_main_actinginfo_actinglist.addColumn("colEdittype24", "string");
  1041. ds_main_actinginfo_actinglist.rowposition = -1;
  1042. var cnt = 0;
  1043. var nodeCnt = ds_main_actinginfo_actinglist.rowcount;
  1044. ds_main_actinginfo_actinglist.enableevent = false;
  1045. ds_main_actinginfo_actinglist.updatecontrol = false;
  1046. for( var i=0 ; i<nodeCnt ; i++ ){
  1047. //------------------(20081006)
  1048. var saveflag = ds_main_actinginfo_actinglist.getColumn(i, "saveflag");
  1049. if( saveflag == "D" ) {//반환인 경우 그리드 색 변경
  1050. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor", "#FFCCCC");
  1051. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#FFCCCC");
  1052. } else {
  1053. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor", "#FFFFFF");
  1054. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#FFFFFF");
  1055. }
  1056. //------------------(20081006)
  1057. if( ds_main_actinginfo_actinglist.getColumn(i, "chk") == "true" ){
  1058. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  1059. cnt++
  1060. }else if(saveflag == "D"){ //20090407 dhkim 반환처방의 경우 체크박스 해제 및 비활성화처리
  1061. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  1062. }else{
  1063. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "checkbox");
  1064. }
  1065. if ( ds_main_actinginfo_actinglist.getColumn(i, "prtlabsnyn") == "Y" ) {
  1066. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  1067. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor", "#ffbbd5");
  1068. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#ffbbd5");
  1069. }
  1070. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype8", "combo");
  1071. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype9", "combo");
  1072. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype22", "combo");
  1073. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype24", "checkbox");
  1074. }
  1075. ds_main_actinginfo_actinglist.updatecontrol = true;
  1076. ds_main_actinginfo_actinglist.enableevent = true;
  1077. if( cnt == nodeCnt ) {//All 체크 되어 있으면
  1078. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "displaytype", "normal");
  1079. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "edittype", "none");
  1080. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "text", "");
  1081. }
  1082. var drugmastspec;
  1083. var spclcd;
  1084. ds_main_actinginfo_actinglist.enableevent = false;
  1085. ds_main_actinginfo_actinglist.updatecontrol = false;
  1086. for( var i=0 ; i<ds_main_actinginfo_actinglist.rowcount ; i++ ){
  1087. drugmastspec = ds_main_actinginfo_actinglist.getColumn(i, "drugmastspec");
  1088. spclcd = new Array();
  1089. spclcd = drugmastspec.split("|");
  1090. if(spclcd[13] == "D") {
  1091. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#ffff00");
  1092. }
  1093. if(grp_biz.swt_main.case_ac.grd_acting.getCellProperty("head", 0, "text") =="1"){//추가..헤더 체크상태일때 전체체크 디폴드로..
  1094. ds_main_actinginfo_actinglist.setColumn(i, "chk", "true");
  1095. }
  1096. }
  1097. ds_main_actinginfo_actinglist.updatecontrol = true;
  1098. ds_main_actinginfo_actinglist.enableevent = true;
  1099. }
  1100. // --------------------------------------------------
  1101. //진료예약정보/검사예약정보 DISPLAY
  1102. // --------------------------------------------------
  1103. function fGridReservationInfo() {
  1104. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  1105. var row = ds_main_chemoinfo_chemolist.rowposition;
  1106. var xPathMainCond = ds_main_cond;
  1107. //값설정
  1108. var rsrvinfoflag = ds_main_cond.getColumn(0, "rsrvinfoflag");
  1109. // if(rsrvinfoflag == 1)
  1110. // model.toggle("case1");
  1111. // else if(rsrvinfoflag == 2)
  1112. // model.toggle("case2");
  1113. //체크
  1114. if( row < 0 ){
  1115. //alert("등록번호가 존재하지 않습니다");
  1116. sysf_messageBox("자료가","I004");
  1117. grp_biz.swt_main.case_cm.output1.value = "0";
  1118. grp_biz.swt_main.case_cm.opt_ordrsrvcnt.value = "0";
  1119. ds_main_patdetinfo_ordrsrvinfo.clearData();
  1120. ds_main_patdetinfo_testrsrvinfo.clearData();
  1121. return;
  1122. }
  1123. var ipid = ds_main_chemoinfo_chemolist.getColumn(row, "pid");
  1124. var iorddd= ds_main_chemoinfo_chemolist.getColumn(row, "prcpdd");
  1125. var iorddeptcd = ds_main_chemoinfo_chemolist.getColumn(row, "orddeptcd");
  1126. var iorddrid = ds_main_chemoinfo_chemolist.getColumn(row, "orddrid");
  1127. var xPathSend = ds_send;
  1128. var xPathReqData = ds_send_reqdata;
  1129. ds_send.clearData();
  1130. ds_send.addRow();
  1131. ds_send_reqdata.clearData();
  1132. ds_send_reqdata.addRow();
  1133. ds_send_reqdata_ordrsrvinforef.clearData();
  1134. ds_send_reqdata_ordrsrvinforef.addRow();
  1135. ds_send_reqdata_testrsrvinforef.clearData();
  1136. ds_send_reqdata_testrsrvinforef.addRow();
  1137. ds_send_reqdata_ordrsrvinforef.setColumn(0, "pid", ipid);
  1138. ds_send_reqdata_ordrsrvinforef.setColumn(0, "orddd", iorddd);
  1139. ds_send_reqdata_ordrsrvinforef.setColumn(0, "orddeptcd", iorddeptcd);
  1140. ds_send_reqdata_ordrsrvinforef.setColumn(0, "orddrid", iorddrid);
  1141. ds_send_reqdata_testrsrvinforef.setColumn(0, "pid", ipid);
  1142. ds_send_reqdata_testrsrvinforef.setColumn(0, "orddd", iorddd);
  1143. var oParam = {};
  1144. oParam.id = "TRMNI02001";
  1145. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1146. oParam.method = "reqGetPatDetlInfo";
  1147. oParam.inds = "ordrsrvinforef=ds_send_reqdata_ordrsrvinforef testrsrvinforef=ds_send_reqdata_testrsrvinforef";
  1148. oParam.outds = "ds_main_patdetinfo_ordrsrvinfo=ordrsrvinfo ds_main_patdetinfo_testrsrvinfo=testrsrvinfo ds_main_patdetinfo_rsrvinfocnt=rsrvinfocnt";
  1149. oParam.async = false;
  1150. //oParam.callback = "cf_TRMNI02001";
  1151. tranf_submit(oParam);
  1152. ds_main_patdetinfo_ordrsrvinfo.rowposition = -1;
  1153. }
  1154. //------------------------------------------------------------------------
  1155. // chemo_row change 시 뒤 화면에 정보를 display함
  1156. // desc : - 입실등록되지 않은 환자 퇴실등록버튼, 환자카드출력버튼 비활성화
  1157. // - 수납완료된 환자의 퇴실취소버튼 비활성화처리
  1158. // 20091119 dhkim
  1159. // 메인리스트의 rowChange이벤트시에는 switch의 메인부분만 변경하도록함
  1160. // (항암처방전송화면은 항암처방전송버튼 클릭 이벤트시에 세팅함)
  1161. //------------------------------------------------------------------------
  1162. function fGrdChemoRowChange() {
  1163. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  1164. var row = ds_main_chemoinfo_chemolist.rowposition;
  1165. //20091119 dhkim itc 요청으로 줄바꿈 실행시 상단세팅 삭제. 요청번호(9091) //20090702 dhkim 상단정보호출 추가 (rowChange시)
  1166. //fSetPatInfo_chemo() ;
  1167. //20090123 dhkim
  1168. //변경요청내역 반영 itc김숙인
  1169. //입실등록이 되지 않은 환자 선택시 퇴실등록 버튼 비활성화
  1170. var calcdd = ds_main_chemoinfo_chemolist.getColumn(row, "calcdd");
  1171. var calctm = ds_main_chemoinfo_chemolist.getColumn(row, "calctm");
  1172. if( !utlf_isNull(calcdd) && !utlf_isNull(calctm) ){
  1173. grp_biz.swt_main.case_cm.btn_outrgst.enable = true;//입실등록 된 경우 퇴실등록버튼 활성화
  1174. grp_biz.swt_main.case_cm.btn_prnt.enable = true;//자동출력(카드출력)
  1175. }else{
  1176. grp_biz.swt_main.case_cm.btn_outrgst.enable = false;//입실등록 안된 경우 퇴실등록버튼 비활성화
  1177. grp_biz.swt_main.case_cm.btn_prnt.enable = false;
  1178. }
  1179. //20090122 dhkim
  1180. //수납완료된 환자의 퇴실취소버튼 비활성화
  1181. var rcptyn = ds_main_chemoinfo_chemolist.getColumn(row, "rcptyn");
  1182. if (row < 0 ) return;
  1183. //입실시간/퇴실시간
  1184. ds_main_careinfo.setColumn(0, "calcdd",ds_main_chemoinfo_chemolist.getColumn(row, "calcdd"));
  1185. ds_main_careinfo.setColumn(0, "calctm",ds_main_chemoinfo_chemolist.getColumn(row, "calctm"));
  1186. ds_main_careinfo.setColumn(0, "caredschrmdd",ds_main_chemoinfo_chemolist.getColumn(row, "dschnotidd"));
  1187. ds_main_careinfo.setColumn(0, "caredschrmtm",ds_main_chemoinfo_chemolist.getColumn(row, "dschnotitm"));
  1188. //20091119 dhkim
  1189. //항암처방전송화면은 항암처방전송버튼 클릭 이벤트시에 세팅하도록 변경
  1190. /*
  1191. //acting화면
  1192. model.setValue("/root/main/actingbasicinfo/sickclsnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/sickclsnm"));
  1193. model.setValue("/root/main/actingbasicinfo/prtlnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/prtlnm"));
  1194. //20090225 dhkim prtldg_d 추가 (itc요청사항)
  1195. model.setValue("/root/main/actingbasicinfo/prtldg",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/prtldg"));
  1196. model.setValue("/root/main/actingbasicinfo/prtldg_d",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/prtldg_d"));
  1197. model.setValue("/root/main/actingbasicinfo/inptflag",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/inptflag"));
  1198. model.setValue("/root/main/actingbasicinfo/detstatus",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/detstatus"));
  1199. model.setValue("/root/main/actingbasicinfo/disp_patnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/hngnm"));
  1200. model.setValue("/root/main/actingbasicinfo/disp_pid",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/pid"));
  1201. model.setValue("/root/main/actingbasicinfo/disp_age",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/age"));
  1202. model.setValue("/root/main/actingbasicinfo/disp_depthngnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/depthngnm"));
  1203. model.setValue("/root/main/actingbasicinfo/disp_orddrnm",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/orddrnm"));
  1204. model.setValue("/root/main/actingbasicinfo/careinrmdd",model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/careinrmdd"));
  1205. //20090224 dhkim 추가
  1206. model.setValue("/root/main/actingbasicinfo/wardcd", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/wardcd"));
  1207. model.setValue("/root/main/actingbasicinfo/wardnm", model.getValue("/root/main/chemoinfo/chemolist[" + row + "]/wardnm"));
  1208. */
  1209. //------------------(20081006)
  1210. var detstatus = ds_main_chemoinfo_chemolist.getColumn(row, "detstatus");
  1211. //if (detstatus.indexOf('간호퇴원확정') != -1 ) {
  1212. //20090122 dhkim
  1213. //수납여부 조건 추가 (심사완료안하고 수납바로한 경우c상태로 남아있으므로 퇴실취소버튼 비활성화처리)
  1214. if(detstatus.indexOf('ⓒ') != -1 && rcptyn == 'Y'){//20081208 dhkim
  1215. //퇴실정리완료상태, 수납완료상태
  1216. //20090216 dhkim
  1217. //입실등록, 퇴실등록, 퇴실취소 버튼 비활성화
  1218. grp_biz.swt_main.case_cm.btn_outcancel.enable = false;//퇴실취소 비활성화
  1219. grp_biz.swt_main.case_cm.btn_inrgst.enable = false;//입실등록 비활성화
  1220. grp_biz.swt_main.case_cm.btn_outrgst.enable = false;//퇴실등록 비활성화
  1221. } else {
  1222. //정리안된상태일때
  1223. grp_biz.swt_main.case_cm.btn_outcancel.enable = true;//퇴실취소활성화
  1224. //20090216 dhkim
  1225. //입실등록, 퇴실등록, 퇴실취소 버튼 활성화
  1226. grp_biz.swt_main.case_cm.btn_inrgst.enable = true;//입실등록 활성화
  1227. grp_biz.swt_main.case_cm.btn_outrgst.enable = true;//퇴실등록 활성화
  1228. }
  1229. //------------------(20081006)
  1230. /*20090209
  1231. if(model.getValue("/root/main/actingbasicinfo/careinrmdd") !='') {
  1232. btn_prnt.disabled = "false";
  1233. //자동출력(카드출력)
  1234. }
  1235. else {
  1236. btn_prnt.disabled = "true";
  1237. }
  1238. */
  1239. }
  1240. //----------------------------------------------
  1241. // acting_row change 시 입력불가 여부 확인
  1242. //----------------------------------------------
  1243. function fGrdActingCheck() {
  1244. var pGrdCh = grp_biz.swt_main.case_cm.grd_chemo;
  1245. var pGrdAc = grp_biz.swt_main.case_ac.grd_acting;
  1246. var rowCh = ds_main_chemoinfo_chemolist.rowposition;
  1247. var rowAc = ds_main_actinginfo_actinglist.rowposition;
  1248. if( rowCh < 0 ) return;
  1249. if( rowAc < 0 ) return;
  1250. //차수로 비교
  1251. var sChemo = ds_main_chemoinfo_chemolist.getColumn(rowCh, "prtldg");
  1252. var prcpmixno = ds_main_actinginfo_actinglist.getColumn(rowAc, "prcpmixno");
  1253. var sActing = ds_main_actinginfo_actinglist.getColumn(rowAc, "prtldg");
  1254. var sRowstart;
  1255. var sRowend;
  1256. sRowstart = 0;
  1257. sRowend = ds_main_actinginfo_actinglist.rowcount;
  1258. //현재
  1259. for( var row=sRowstart ; row<sRowend ; row++ ){
  1260. var saveflagActing = ds_main_actinginfo_actinglist.getColumn(row, "saveflag");
  1261. var sActing = ds_main_actinginfo_actinglist.getColumn(row, "prtldg");
  1262. var prtl = ds_main_actinginfo_actinglist.getColumn(row, "prtldg");
  1263. var col = grp_biz.swt_main.case_ac.grd_acting.currentcol;
  1264. var colnm = utlf_transNullToEmpty(grp_biz.swt_main.case_ac.grd_acting.getCellProperty("Body", col, "text")).replace("bind:", "");
  1265. if (prtl == "N") {
  1266. switch (colnm) {
  1267. case "chk":
  1268. ds_main_actinginfo_actinglist.setColumn(row, "colEdittype0", "checkbox");
  1269. if( sChemo != sActing ){
  1270. ds_main_actinginfo_actinglist.setColumn(row, "colEdittype0", "none");
  1271. break;
  1272. }
  1273. if( saveflagActing == "Y" ){
  1274. ds_main_actinginfo_actinglist.setColumn(row, "colEdittype0", "none");
  1275. continue;
  1276. }
  1277. //20090408 dhkim 반환처방 선택불가
  1278. if( saveflagActing == "D" ){
  1279. ds_main_actinginfo_actinglist.setColumn(row, "colEdittype0", "none");
  1280. ds_main_actinginfo_actinglist.setColumn(row, "chk", "false");
  1281. continue;
  1282. }
  1283. if( ds_main_cond.getColumn(0, "chk_prcpmixno") == "Y" ){ //동일차수와 동일 MIX는 자동으로 설정되도록 처리
  1284. if( prcpmixno == ds_main_actinginfo_actinglist.getColumn(row, "prcpmixno" )
  1285. && !utlf_isNull(prcpmixno) && prcpmixno != "-" ) {
  1286. ds_main_actinginfo_actinglist.setColumn(row, "chk", ds_main_actinginfo_actinglist.getColumn(rowAc, "chk"));
  1287. } else {
  1288. break;
  1289. }
  1290. }
  1291. }
  1292. }
  1293. }
  1294. }
  1295. //----------------------------------------------
  1296. //
  1297. //----------------------------------------------
  1298. function fGrdOnEnterCell() {
  1299. var pGrdCh = grp_biz.swt_main.case_cm.grd_chemo;
  1300. var pGrdAc = grp_biz.swt_main.case_ac.grd_acting;
  1301. var rowCh = ds_main_chemoinfo_chemolist.rowposition;
  1302. var rowAc = ds_main_actinginfo_actinglist.rowposition;
  1303. if (rowCh < 0) return;
  1304. if (rowAc < 0) return;
  1305. //-------------------------------------------------------------------------------------------------
  1306. //차수로 비교
  1307. var sChemo = ds_main_chemoinfo_chemolist.getColumn(rowCh, "prtldg");
  1308. var prcpmixno = ds_main_actinginfo_actinglist.getColumn(rowAc, "prcpmixno");
  1309. var sActing = ds_main_actinginfo_actinglist.getColumn(rowAc, "prtldg");
  1310. var sRowstart;
  1311. var sRowend;
  1312. var saveflagActing = ds_main_actinginfo_actinglist.getColumn(rowAc, "saveflag");
  1313. var col = pGrdAc.currentcol;
  1314. var colnm = utlf_transNullToEmpty(pGrdAc.getCellProperty("Body", col, "text")).replace("bind:", "");
  1315. if ( colnm == "chk") {
  1316. ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype0", "checkbox");
  1317. if (saveflagActing == "Y") ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype0", "none");
  1318. //20090408 dhkim 반환처방 readonly
  1319. if (saveflagActing == "D") ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype0", "none");
  1320. if (sChemo != sActing) ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype0", "none");
  1321. } else {
  1322. if( colnm == "payflagcd" ){
  1323. ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype8", "none");
  1324. }else if( colnm == "volkind" ){
  1325. ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype9", "none");
  1326. }else if( colnm == "subtrvolresn" ){
  1327. ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype22", "none");
  1328. }else if( colnm == "prnprcpflag" ){
  1329. ds_main_actinginfo_actinglist.setColumn(rowAc, "colEdittype24", "none");
  1330. }
  1331. }
  1332. }
  1333. //----------------------------------------------
  1334. //입원저장
  1335. //----------------------------------------------
  1336. function fInptSave() {
  1337. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  1338. var xPathChemoList = ds_main_chemoinfo_chemolist;
  1339. var prtlnm = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtlnm"));
  1340. //----------------------------------------------
  1341. //체크
  1342. //----------------------------------------------
  1343. if( utlf_isNull(grp_biz.swt_main.case_cm.in_indd.value) || utlf_isNull(grp_biz.swt_main.case_cm.in_intm.value) ){
  1344. sysf_messageBox("입실일시와 입실시간","I003"); //필수입력입니다.ㅋ`
  1345. return false;
  1346. }
  1347. if( ds_main_chemoinfo_chemolist.rowposition < 0 ){
  1348. sysf_messageBox("자료가","I004");
  1349. return false;
  1350. }
  1351. if( !utlf_isNull(prtlnm) ){//외래 프로토콜 환자만 체크
  1352. //if (model.getValue(xPathChemoList + "[" + pGrd.row + "]/detstatus") != "외래") {
  1353. // messageBox("외래환자가 아닌 환자는 처리","E001"); //할 수 없습니다.
  1354. // return;
  1355. //}
  1356. //if (model.getValue(xPathChemoList + "[" + pGrd.row + "]/inptflag") != "") {
  1357. // messageBox("입원환자는 처리","E001"); //할 수 없습니다.
  1358. // return;
  1359. //}
  1360. if( ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prcpdd") != ds_main_careinfo.getColumn(0, "calcdd") ){
  1361. sysf_messageBox("적용일자와 입실일자가 다르면 처리 ","E001"); //할 수 없습니다.
  1362. return false;
  1363. }
  1364. }
  1365. var iRow = ds_main_chemoinfo_chemolist.rowposition;
  1366. var iindd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "prcpdd")); //입원일자
  1367. var ipid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "pid")); //등록번호
  1368. var icalcdd = ds_main_careinfo.getColumn(0, "calcdd"); //입실일시(필드가 변경되었음:calcddd)
  1369. var icalctm = utlf_transNullToEmpty(ds_main_careinfo.getColumn(0, "calctm")); //입실시간(필드가 변경되었음:calcdtm)
  1370. icalctm = icalctm.substring(0,4);
  1371. var iinsukind = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "inptinsukind")); //보험유형(?)
  1372. var isuppkind = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "inptsuppkind")); //보조유형(?)
  1373. var isuppkinresn = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "inptsuppkindresn")); //보조유형사유(?)
  1374. var iorddeptcd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "orddeptcd")); //진료과
  1375. var iorddrid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "orddrid")); //진료과의사
  1376. var iuserid = sysf_getUserId(); //사용자
  1377. var icalcdd = utlf_transNullToEmpty(ds_main_careinfo.getColumn(0, "calcdd")); //입실일자(원무용)
  1378. var icalctm = utlf_transNullToEmpty(ds_main_careinfo.getColumn(0, "calctm")); //입실시간(원무용)
  1379. icalctm = icalctm.substring(0,4);
  1380. var icpgappno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "cpgappno")); //CPG적용번호
  1381. var iprtldg = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "prtldg")); //프로토콜차수
  1382. var icretno = ""; //입퇴원내역생성번호(빈값으로 app에서 반영한 후 다른 곳에 사용한다.)
  1383. var iwardcd = utlf_transNullToEmpty(ds_main_wardcdinfo_wardcdlist.getColumn(0, "chemowardcd")); //특수주사실병동
  1384. var inptflag = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "inptflag")); //진료과의사
  1385. // 기 입실 등록된 환자인 경우 입실등록 중복 처리 안되도록 제어
  1386. var chkCalcdd = ds_main_chemoinfo_chemolist.getColumn(iRow, "calcdd");
  1387. var chkCalctm = ds_main_chemoinfo_chemolist.getColumn(iRow, "calctm");
  1388. if( ds_codelist.lookup("cdgrupid", "C06", "cdid") == "Y" ){
  1389. if( ds_temp.getColumn(0, "pid") != ipid ){
  1390. sysf_messageBox("선택한 환자와 외래예약정보가 일치 하지 않습니다. 환자를 다시 선택하세요.","I");
  1391. return false;
  1392. }
  1393. }
  1394. if( !utlf_isNull(chkCalcdd) || !utlf_isNull(chkCalctm) ){
  1395. sysf_messageBox("이미 입실등록 된 환자입니다.\r\n\r\n입실시간 변경을 원하실 경우 [시간변경] 버튼을 이용하세요.", "E999");
  1396. return false;
  1397. }
  1398. var xPathOrdrsvInfo = ds_main_patdetinfo_ordrsrvinfo;
  1399. var cnt = 0;
  1400. if( ds_codelist.lookup("cdgrupid", "C06", "cdid") == "Y" ){
  1401. // 동일 예약일/진료과/진료의로 미수행된 예약이 있는경우 입실저장 불가능 하도록 제어(2014.10.21)
  1402. for( var i=0 ; i<ds_main_patdetinfo_ordrsrvinfo.rowcount ; i++ ){
  1403. if( ds_main_patdetinfo_ordrsrvinfo.getColumn(i, "orddd") == iindd && ds_main_patdetinfo_ordrsrvinfo.getColumn(i, "orddrid") == iorddrid && ds_main_patdetinfo_ordrsrvinfo.getColumn(i, "orddeptcd") == iorddeptcd ){
  1404. if( ds_main_patdetinfo_ordrsrvinfo.getColumn(i, "execflag") != "Y" ){
  1405. cnt++;
  1406. }
  1407. }
  1408. }
  1409. if(cnt > 0){
  1410. sysf_messageBox("동일 예약일/진료과/진료의로 미수행된 예약이 존재하여 입실저장이 불가능 합니다.","I");
  1411. return false;
  1412. }
  1413. }
  1414. //20090227 dhkim
  1415. //원무에 전달할 파라미터값을 암센터병동에 입원시킬경우 C, BMT주사실병동에 입원시킬경우 B로 넘긴다
  1416. //var iflag = "C"; //구분자(생성)
  1417. var iflag = '';
  1418. // [drprcpetc2] Y : 암센터주사실, B : BMT주사실
  1419. if(drprcpetc2 == 'Y'){
  1420. iflag = 'C';
  1421. } else if(drprcpetc2 == 'B') {
  1422. iflag = 'B';
  1423. } else {
  1424. sysf_messageBox('메뉴그룹에 해당 사용처가 등록되어 있지 않습니다.', 'E999');
  1425. return false;
  1426. }
  1427. var scretno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "inptcretno")); //입원생성번호
  1428. //----------------------------------------------
  1429. //0. send 노드생성(보내는 instance 제거)
  1430. //----------------------------------------------
  1431. var xPathSend = ds_send;
  1432. ds_send.clearData();
  1433. ds_send.addRow();
  1434. ds_send_reqdata.clearData();
  1435. ds_send_senddata.clearData();
  1436. ds_send_savedata.clearData();
  1437. ds_send_reqdata2.setColumn(0, "pid", ipid);
  1438. ds_send_reqdata2.setColumn(0, "orddd", utlf_getCurrentDate());
  1439. var oParam = {};
  1440. oParam.id = "TRMNI02016";
  1441. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1442. oParam.method = "reqGetBfJudgList";
  1443. oParam.inds = "req=ds_send_reqdata2";
  1444. oParam.outds = "ds_tempinfo_bfjudglist=bfjudglist";
  1445. oParam.async = false;
  1446. //oParam.callback = "cf_TRMNI02016";
  1447. tranf_submit(oParam);
  1448. var cnt = ds_tempinfo_bfjudglist.getColumn(0, "cnt");
  1449. if(cnt > 0) {
  1450. sysf_messageBox("당일 외래에 사전심사 진행중인 처방이 존재합니다. 입원하실수 없습니다.", "E");
  1451. return;
  1452. }
  1453. //----------------------------------------------
  1454. // 진단명 복사를 위한 정보
  1455. //----------------------------------------------
  1456. var copydiagnmHeader = "instcd▦pid▦orddd_old▦cretno_old▦genrflagcd_old▦diagdd▦orddd▦cretno▦genrflagcd▩";
  1457. var copydiagnmData = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "instcd")) + "▦"//기관코드
  1458. + utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "pid")) + "▦"//등록번호
  1459. + utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "otptorddd")) + "▦"//복사할 진료일자
  1460. + utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(iRow, "otptcretno")) + "▦"//복사할 생성번호
  1461. + "O" + "▦"//복사할 환자구분
  1462. + utlf_getCurrentDate().substring(0, 8) + "▦"//진단일
  1463. + icalcdd + "▦"//진료일자
  1464. + "" + "▦"//생성버호
  1465. + "I" + "▩";//외래입원구분
  1466. dsf_setCSVToDs("ds_send_diagsave", copydiagnmHeader + copydiagnmData);
  1467. //----------------------------------------------
  1468. //1. 재조회를 위한 조건
  1469. //----------------------------------------------
  1470. //20090223 dhkim
  1471. //센터코드, 병동코드 추가
  1472. var wardcd = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "wardcd"));
  1473. var reqdataHeader = "prcpdd▦pid▦indschacptstat▦wardcd▦centcd▩";
  1474. var reqdataData = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "prcpdd")) + "▦"
  1475. + utlf_transNullToEmpty(ds_main_cond.getColumn(0, "pid")) + "▦"
  1476. + utlf_transNullToEmpty(ds_main_cond.getColumn(0, "indschacptstat")) + "▦"
  1477. + wardcd + "▦"
  1478. + utlf_transNullToEmpty(centcd) + "▩";
  1479. dsf_setCSVToDs("ds_send_reqdata", reqdataHeader + reqdataData);
  1480. //----------------------------------------------
  1481. //2. 입원등록시 상태 변경
  1482. //----------------------------------------------
  1483. var senddataHeader = "cpgappno▦prtldg▦cretno▦pid▦calcdd▦calctm▦prtlnm▦inptflag▩";
  1484. var senddataData = icpgappno + "▦"
  1485. + iprtldg + "▦"
  1486. + icretno + "▦"
  1487. + ipid + "▦"
  1488. + icalcdd + "▦"
  1489. + icalctm + "▦"
  1490. + prtlnm + "▦"
  1491. + inptflag + "▩";
  1492. dsf_setCSVToDs("ds_send_senddata", senddataHeader + senddataData);
  1493. //----------------------------------------------
  1494. //3. 입원등록 원무 정보를 반영한다.
  1495. //----------------------------------------------
  1496. var savedataHeader = "pid▦indd▦careinrmdd▦careinrmtm▦insukind▦suppkind▦suppkinresn▦orddeptcd▦orddrid▦userid▦flag▦careinrmrgstrid▦calcdd▦calctm▦wardcd▦scretno▩";
  1497. var savedataData = ipid + "▦"
  1498. //20090225 dhkim 수정 indd가 들어가야함
  1499. //+ icalcdd + "▦"
  1500. + iindd + "▦"
  1501. + icalcdd + "▦"
  1502. + icalctm + "▦"
  1503. + iinsukind + "▦"
  1504. + isuppkind + "▦"
  1505. + isuppkinresn+ "▦"
  1506. + iorddeptcd + "▦"
  1507. + iorddrid + "▦"
  1508. + iuserid + "▦"
  1509. + iflag + "▦"
  1510. + iuserid + "▦"
  1511. + icalcdd + "▦"
  1512. + icalctm + "▦"
  1513. + iwardcd + "▦"
  1514. + scretno + "▩";
  1515. dsf_setCSVToDs("ds_send_savedata", savedataHeader + savedataData);
  1516. //common.js에 있음
  1517. //20090224 dhkim
  1518. //입원등록 메세지를 bmt센터/암센터 환자 여부에 따라 다르게 등록한다.
  1519. var inMsg = '';
  1520. var patCentcd = ds_main_chemoinfo_chemolist.getColumn(iRow, "centcd");
  1521. var patCentnm = ds_main_chemoinfo_chemolist.getColumn(iRow, "centnm");
  1522. //20090429 dhkim bmt응급등록환자가 아닌경우만 메세지변경
  1523. var wardcd = ds_main_chemoinfo_chemolist.getColumn(iRow, "wardcd");
  1524. //20090429 dhkim 암센터/bmt주사실명칭 및 코드 임시변수에 저장
  1525. var cncrcd = ds_nursdeptinfo_cncrinfo_nursdeptlist.getColumn(0, "deptcd");//암센터주사실코드
  1526. var cncrnm = ds_nursdeptinfo_cncrinfo_nursdeptlist.getColumn(0, "deptnm");//암센터주사실명
  1527. var cncrctcd = ds_nursdeptinfo_cncrinfo_nursdeptlist.getColumn(0, "centcd");//암센터코드
  1528. var cncrctnm = ds_nursdeptinfo_cncrinfo_nursdeptlist.getColumn(0, "centnm");//암센터명
  1529. var bmtcd = ds_nursdeptinfo_bmtinfo_nursdeptlist.getColumn(0, "deptcd");//bmt주사실코드
  1530. var bmtnm = ds_nursdeptinfo_bmtinfo_nursdeptlist.getColumn(0, "deptnm");//bmt주사실명
  1531. var bmtctcd = ds_nursdeptinfo_bmtinfo_nursdeptlist.getColumn(0, "centcd");//bmt센터코드
  1532. var bmtctnm = ds_nursdeptinfo_bmtinfo_nursdeptlist.getColumn(0, "centnm");//bmt센터명
  1533. //20090408 dhkim 해당선택된 환자의 row를 임시변수에 저장
  1534. var pidRow = ds_main_chemoinfo_chemolist.rowposition;
  1535. //20090429 dhkim
  1536. //암센터주사실및 bmt주사실 대상환자가 아닌경우의 메세지
  1537. //
  1538. //[암센터주사실대상자가 아닌경우]
  1539. // 1. 센터가 bmt센터인경우
  1540. // 2. 센터가 bmt센터가 아니면서 병동코드가 bmt주사실인 경우
  1541. //
  1542. //[bmt주사실대상자가 아닌경우]
  1543. // 1. 센터가 bmt센터가 아닌경우
  1544. // 2. 센터가 bmt센터가 아니면서 병동코드가 bmt주사실이 아닌경우
  1545. //alert('drprcpetc2-' + drprcpetc2 + ',patCentcd-' + patCentcd + ',bmtctcd-'+ bmtctcd + ',wardcd-' + wardcd + ',bmtcd-' + bmtcd + ',bmtctnm-' + bmtctnm + ',centnm-' + centnm);
  1546. if(drprcpetc2 == 'Y'){
  1547. if((patCentcd == bmtctcd) || (patCentcd != bmtctcd && wardcd == bmtcd)){
  1548. inMsg = '해당 환자는 ' + bmtctnm + ' 환자 입니다. ' + centnm + ' 로 입실등록을';
  1549. } else {
  1550. inMsg = '입실등록을';
  1551. }
  1552. } else if(drprcpetc2 == 'B') {
  1553. if (patCentcd != bmtctcd && wardcd != bmtcd) {
  1554. inMsg = '해당 환자는 ' + cncrctnm + ' 환자 입니다. ' + centnm + ' 로 입실등록을';
  1555. } else {
  1556. inMsg = '입실등록을';
  1557. }
  1558. }
  1559. /*
  1560. //20090429 dhkim 이전내용 주석처리
  1561. if(patCentcd != "" && patCentcd != centcd){
  1562. //20090408 dhkim 센터환자가 아닌경우 암센터로 세팅
  1563. if(patCentcd == '-'){
  1564. //20090429 dhkim BMT응급등록환자가 아닌경우 암센터로 세팅
  1565. if(wardcd != bmtcd && wardcd != cncrcd){
  1566. //patCentnm = '암센터주사실';
  1567. //20090429 dhkim 암센터주사실 명칭 하드코딩 수정
  1568. patCentnm = cncrnm;
  1569. }
  1570. }
  1571. inMsg = '해당 환자는 ' + patCentnm + ' 환자 입니다. ' + centnm + ' 로 입실등록을';
  1572. }else{
  1573. inMsg = '입실등록을';
  1574. }
  1575. */
  1576. if (sysf_messageBox(inMsg, 'Q003') != 6) return false;
  1577. //-------(20110422) 경북대
  1578. // 원외처방확인
  1579. var chkflag = fnoutorderchk();
  1580. var chkmsg = "";
  1581. var deptsize = ds_main_outorderinfo_deptlist.rowcount;
  1582. if (chkflag == "Y" ) {
  1583. /*chkmsg = "당일 원외처방이 존재합니다.\n\n" +
  1584. "6시간이후 입퇴대상 환자일 경우\n" +
  1585. "반드시 원외처방을 D/C하시고\n" +
  1586. "원내처방으로 다시 처방하셔야 합니다.\n\n";*/
  1587. chkmsg = "처방전이 출력되지 않은 당일 원외처방이 존재합니다.\n\n" +
  1588. "동일 진료과 원외처방일 경우 원내처방으로 변경하시고,\n" +
  1589. "타 진료과의 원외처방일 경우 반드시 처방전을 출력하셔야 합니다.\n\n";
  1590. //messageBox(chkmsg, 'E999');
  1591. var inordeptnm = "원외처방 발행부서는";
  1592. for( var i=0 ; i<deptsize ; i++ ){
  1593. var inor = ds_main_outorderinfo_deptlist.getColumn(i, "inorddeptnm");
  1594. //alert(inor);
  1595. inordeptnm = inordeptnm + "\n" + inor;
  1596. }
  1597. alert( chkmsg + inordeptnm + " 입니다" );
  1598. //alert(inordeptnm.length);
  1599. //alert(inordeptnm);
  1600. return false;
  1601. //if (messageBox(chkmsg,'Q003',"") != 6) return;
  1602. }
  1603. //-------(20110422) 경북대
  1604. //2010.02.01 dhkim - 선택된 환자 paramter 세팅
  1605. var prt_pid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  1606. var prt_hngnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "hngnm");
  1607. var prt_sexage = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "age");
  1608. var prt_depthngnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "depthngnm");
  1609. var prt_orddrnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "orddrnm");
  1610. var prt_prtlnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtlnm");
  1611. var prt_instcd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "instcd");
  1612. var prt_prtldg_d = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtldg_d");
  1613. var oParam = {};
  1614. oParam.id = "TXMNI02006";
  1615. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1616. oParam.method = "reqExeSetInptSaveInfo";
  1617. oParam.inds = "reqdata=ds_send_reqdata senddata=ds_send_senddata savedata=ds_send_savedata diagsave=ds_send_diagsave";
  1618. oParam.outds = "ds_main_chemoinfo_chemolist=chemolist";
  1619. oParam.async = false;
  1620. oParam.callback = "cf_TXMNI02006";
  1621. tranf_submit(oParam);
  1622. if( arErrorCode.pop("TXMNI02006") > -1 ){
  1623. var instcd = sysf_getUserInfo("dutplceinstcd");
  1624. if (instcd == '031') {
  1625. fPreview(prt_pid, prt_hngnm, prt_sexage, prt_depthngnm, prt_orddrnm, prt_prtlnm, prt_instcd, prt_prtldg_d); //환자카드출력
  1626. } else {
  1627. grp_biz.group1.visible = true;
  1628. }
  1629. //20090408 dhkim 입실등록 후 재조회
  1630. fGetChemoList();
  1631. //20090408 dhkim 입실등록 완료후 해당 환자를 선택된 상태로 변경
  1632. var pid = "";
  1633. for( var i=0 ; i<ds_main_chemoinfo_chemolist.rowcount ; i++ ){
  1634. pid = ds_main_chemoinfo_chemolist.getColumn(i, "pid");
  1635. if(pid == ipid) {
  1636. pidRow = i;
  1637. break;
  1638. }
  1639. }
  1640. ds_main_chemoinfo_chemolist.rowposition = pidRow;
  1641. var patnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "hngnm");
  1642. var pid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  1643. ds_temp.setColumn(0, "patnm", '"' +patnm + '" 님');
  1644. ds_temp.setColumn(0, "pid", pid);
  1645. fSetPatInfo_chemo();
  1646. // 20110929 wify 경북대병원 환자 외래 덤프처방이 선택진료인지 여부 확인;
  1647. ds_send_chkdata.setColumn(0, "pid", ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid"));
  1648. ds_send_chkdata.setColumn(0, "execdd", ds_main_cond.getColumn(0, "prcpdd"));
  1649. var oParam = {};
  1650. oParam.id = "TRMNI02041";
  1651. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1652. oParam.method = "reqGetChkDataInfo";
  1653. oParam.inds = "req=ds_send_chkdata";
  1654. oParam.outds = "ds_temp_chkdata=chkdata";
  1655. oParam.async = false;
  1656. //oParam.callback = "cf_TRMNI02041";
  1657. tranf_submit(oParam);
  1658. if( ds_temp_chkdata.getColumn(0, "choiyn") == "Y" ){
  1659. fCheckSpecOrdSign();
  1660. }
  1661. // 항암동의서 확인 2012.06.18 KJS
  1662. // 항암프로토콜 종류
  1663. var pid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  1664. var appdd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prcpdd");
  1665. var prtlcd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtlcd");
  1666. ds_send_xproto.clearData();
  1667. ds_send_xproto.addRow();
  1668. ds_send_xproto.setColumn(0, "pid", pid);
  1669. ds_send_xproto.setColumn(0, "appdd", appdd);
  1670. ds_send_xproto.setColumn(0, "prtlcd", prtlcd);
  1671. var oParam = {};
  1672. oParam.id = "TRMNI02014";
  1673. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1674. oParam.method = "reqGetXProtoCnt";
  1675. oParam.inds = "req=ds_send_xproto";
  1676. oParam.outds = "ds_temp_xprotcnt=xprotcnt";
  1677. oParam.async = false;
  1678. //oParam.callback = "cf_TRMNI02014";
  1679. tranf_submit(oParam);
  1680. var xappdd = ds_temp_xprotcnt.getColumn(0, "xappdd");
  1681. ds_send_xproto.setColumn(0, "xappdd", xappdd);
  1682. var oParam = {};
  1683. oParam.id = "TRMNI02015";
  1684. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1685. oParam.method = "reqGetProtoConfirmCnt";
  1686. oParam.inds = "req=ds_send_xproto";
  1687. oParam.outds = "ds_temp_xprotcnt=xprotcnt";
  1688. oParam.async = false;
  1689. //oParam.callback = "cf_TRMNI02015";
  1690. tranf_submit(oParam);
  1691. var cnt = ds_temp_xprotcnt.getColumn(0, "cnt");
  1692. if (cnt < 1){
  1693. if (xappdd == 'N')
  1694. {
  1695. sysf_messageBox("해당 프로토콜에 대한 항암화학 동의서가 없으니 다시 확인해주시기 바랍니다.","I999");
  1696. } else {
  1697. sysf_messageBox("항암 프로토콜이 달라졌으니 동의서를 새로 받아주시기 바랍니다.","I999");
  1698. }
  1699. }
  1700. // fGetPrcpSetList();
  1701. // if(grd_prcplist2.rows > 0) {
  1702. // fSavePrcpInfo();
  1703. // } else {
  1704. // }
  1705. return true;
  1706. } else {
  1707. //alert("저장실패");
  1708. sysf_messageBox("입원등록이 ","E009"); //실패하였습니다.
  1709. fGetChemoList();
  1710. return false;
  1711. }
  1712. }
  1713. function cf_TXMNI02006(sSvcId, nErrorCode, sErrorMsg) {
  1714. arErrorCode.push(sSvcId, nErrorCode);
  1715. }
  1716. //----------------------------------------------
  1717. //퇴실저장
  1718. //----------------------------------------------
  1719. //20090224 dhkim
  1720. //flag추가 - flag 가 grid인 경우는 그리드에서 오른쪽 마우스로 들어온 경우임
  1721. function fdschSave(flag) {
  1722. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  1723. var xPathChemoList = ds_main_chemoinfo_chemolist;
  1724. //----------------------------------------------
  1725. //체크
  1726. //----------------------------------------------
  1727. if( ds_main_chemoinfo_chemolist.rowposition < 0 ) {
  1728. sysf_messageBox("자료가","I004"); //없습니다.
  1729. return;
  1730. }
  1731. //20090224 dhkim
  1732. //처방전송 메세지를 환자의 입실된병동과 조회된 병동이 다를경우 blocking한다.
  1733. var sendMsg = '';
  1734. var wardcd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "wardcd");
  1735. var wardnm = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "wardnm"));
  1736. if(wardcd != suppdeptcd){
  1737. sysf_messageBox('해당 환자는 ' + wardnm + ' 환자 입니다. ' + suppdeptnm + ' 에 입실된 환자만 퇴실등록 가능합니다.', 'E999');
  1738. //퇴실일시, 퇴실시간 초기화
  1739. grp_biz.swt_main.case_cm.in_dschdd.value = "";
  1740. grp_biz.swt_main.case_cm.in_dschtm.value = "";
  1741. return;
  1742. }
  1743. //20110923 wify 경북대병원 선택진료 관련 추가
  1744. fChkSpecOrdPrt();
  1745. //20090306 dhkim
  1746. //퇴실등록은 퇴원예고, 병동입원승인난 환자만 할것
  1747. var detstatus = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "detstatus");
  1748. //alert(model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/dschnotidd"));
  1749. //alert(detstatus);
  1750. //alert(detstatus.indexOf('ⓓ'));
  1751. //alert(detstatus.indexOf('■'));
  1752. if(detstatus.indexOf('ⓓ') == -1 && detstatus.indexOf('■') == -1 ) {
  1753. sysf_messageBox('환자의 구분이 ⓓ(퇴원예고)이거나 ■(병동입원승인) 상태일 때에만 퇴실등록 가능합니다.', 'E999');
  1754. return;
  1755. }
  1756. //20090224 dhkim
  1757. //flag추가함.
  1758. //그리드에서 오른쪽 마우스 클릭하여 들어온 경우
  1759. if(flag == 'grid'){
  1760. //20090123 dhkim
  1761. //itc김숙인 변경요청사항 반영
  1762. //입실시각이 입력되지 않은 상태에서 오른쪽 마우스의 퇴실정리 선택시 [입실체크 후 퇴실정리가 가능합니다.]라는 blocking메시지와 함께 퇴실정리 blocking함.
  1763. var calcdd = ds_main_careinfo.getColumn(0, "calcdd");
  1764. var calctm = ds_main_careinfo.getColumn(0, "calctm");
  1765. if( utlf_isNull(calcdd) || utlf_isNull(calctm) ){
  1766. sysf_messageBox('입실체크 후 퇴실정리가 가능합니다.', 'E999');
  1767. return;
  1768. }
  1769. //퇴실일자, 시간이 없으면 현재 일시로 셋팅
  1770. if( utlf_isNull(ds_main_careinfo.getColumn(0, "caredschrmdd")) || utlf_isNull(ds_main_careinfo.getColumn(0, "caredschrmtm")) ){
  1771. grp_biz.swt_main.case_cm.in_dschdd.value = utlf_getCurrentDate(); //퇴실일자
  1772. grp_biz.swt_main.case_cm.in_dschtm.value = utlf_getCurrentTime().substring(0,4); //퇴실시간
  1773. }
  1774. }
  1775. /*
  1776. if (model.getValue("/root/main/chemoinfo/chemolist[" + pGrd.row + "]/dschnotidd") != "") {
  1777. //alert("퇴실이전 환자만 퇴실이 가능 합니다");
  1778. //--(20080123추가)
  1779. //if ( detstatus.indexOf('정산완료') != -1 ||
  1780. // detstatus.indexOf('심사중') != -1 ||
  1781. // detstatus.indexOf('간호퇴원확정') != -1 ) {
  1782. // 20081208 dhkim 명칭변경
  1783. /*
  1784. if ( detstatus.indexOf('ⓕ') != -1 ||
  1785. detstatus.indexOf('ⓘ') != -1 ||
  1786. detstatus.indexOf('ⓒ') != -1 ) {
  1787. * /
  1788. if ( detstatus != 'ⓕ' &&
  1789. detstatus != 'ⓘ' &&
  1790. detstatus != 'ⓒ' ) {
  1791. if(messageBox ( "간호퇴원확정이 진행되었습니다 ", "Q003" ) == "6") { //계속진행하시겠습니까?
  1792. } else {
  1793. return;
  1794. }
  1795. }
  1796. }
  1797. //--------------------(20080930)
  1798. */
  1799. var ipid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid")); //등록번호
  1800. var iindd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prcpdd")); //입원일자
  1801. var icretno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "inptcretno")); //입퇴원내역생성번호
  1802. var icaredschdd = utlf_transNullToEmpty(ds_main_careinfo.getColumn(0, "caredschrmdd")); //퇴실일시
  1803. var icaredschtm = utlf_transNullToEmpty(ds_main_careinfo.getColumn(0, "caredschrmtm")); //퇴실시간
  1804. var iprtldg = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtldg")); //프로토콜차수
  1805. var icpgappno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "cpgappno")); //CPG적용번호
  1806. var prtlnm = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtlnm"));
  1807. //----------------------------------------------
  1808. // 보내는 instance 제거
  1809. //----------------------------------------------
  1810. var xPathSend = ds_send;
  1811. ds_send.clearData();
  1812. ds_send.addRow();
  1813. ds_send_reqdata.clearData();
  1814. ds_send_reqdata.addRow();
  1815. ds_send_reqdata.clearData();
  1816. //ds_send_reqdata.addRow();
  1817. ds_send_senddata.clearData();
  1818. //----------------------------------------------
  1819. //1. 재조회를 위한 조건
  1820. //----------------------------------------------
  1821. //20090306 dhkim
  1822. //센터코드, 병동코드 추가
  1823. var wardcd = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "wardcd"));
  1824. var reqdataHeader = "prcpdd▦pid▦indschacptstat▦wardcd▦centcd▩";
  1825. var reqdataData = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "prcpdd")) + "▦"
  1826. + utlf_transNullToEmpty(ds_main_cond.getColumn(0, "pid")) + "▦"
  1827. + utlf_transNullToEmpty(ds_main_cond.getColumn(0, "indschacptstat")) + "▦"
  1828. + wardcd + "▦"
  1829. + utlf_transNullToEmpty(centcd) + "▩";
  1830. /*
  1831. //----------------------------------------------
  1832. //1. 재조회를 위한 조건
  1833. //----------------------------------------------
  1834. var reqdataHeader = "prcpdd▦pid▦indschacptstat▩";
  1835. var reqdataData = model.getValue("/root/main/cond/prcpdd") + "▦"
  1836. + model.getValue("/root/main/cond/pid") + "▦"
  1837. + model.getValue("/root/main/cond/indschacptstat")+ "▩";
  1838. */
  1839. dsf_setCSVToDs("ds_send_reqdata", reqdataHeader+reqdataData);
  1840. if( ds_send_reqdata.rowcount < 1 ){
  1841. ds_send_reqdata.addRow();
  1842. }
  1843. //----------------------------------------------
  1844. //2. 퇴실등록시 상태변경
  1845. //----------------------------------------------
  1846. var senddataHeader = "pid▦indd▦cretno▦dschnotidd▦dschnotitm▦prtldg▦cpgappno▦prtlnm▩";
  1847. var senddataData = ipid + "▦"
  1848. + iindd + "▦"
  1849. + icretno + "▦"
  1850. + icaredschdd + "▦"
  1851. + icaredschtm + "▦"
  1852. + iprtldg + "▦"
  1853. + icpgappno + "▦"
  1854. + prtlnm + "▩";
  1855. dsf_setCSVToDs("ds_send_senddata", senddataHeader+senddataData);
  1856. //-------(20110422) 경북대
  1857. //6시간 이상인 환자에 대해서 퇴실시 check
  1858. var chkflag0 = fnChemoIOChk();
  1859. var chkmsg = "";
  1860. /*
  1861. if (chkflag0 == "I" ) {
  1862. // 원외처방체크
  1863. var chkflag = fnoutorderchk();
  1864. var chkmsg = "";
  1865. var deptsize = getNodesetCount("/root/main/outorderinfo/deptlist");
  1866. if (chkflag == "Y" ) {
  1867. chkmsg = "당일 원외처방이 존재합니다.\n\n" +
  1868. "6시간이후 입퇴대상 환자일 경우\n" +
  1869. "반드시 원외처방을 D/C하시고\n" +
  1870. "원내처방으로 다시 처방하셔야 합니다.\n\n";
  1871. // messageBox(chkmsg, 'E999');
  1872. var inordeptnm = "원외처방 발행부서는";
  1873. for ( i=1; i<=deptsize; i++) {
  1874. var inor = model.getValue("/root/main/outorderinfo/deptlist[" + i + "]/inorddeptnm");
  1875. //alert(inor);
  1876. inordeptnm = inordeptnm + "\n" + inor;
  1877. }
  1878. alert( chkmsg + inordeptnm + " 입니다" );
  1879. return;
  1880. }
  1881. } else if (chkflag0 == "" ) {
  1882. chkmsg = "입실일시 또는 퇴실일시가 정확하지 않습니다.\n" +
  1883. "확인하시기 바랍니다";
  1884. messageBox(chkmsg, 'E999');
  1885. return;
  1886. }
  1887. */
  1888. if( utlf_isNull(chkflag0) ){
  1889. chkmsg = "입실일시 또는 퇴실일시가 정확하지 않습니다.\n" +
  1890. "확인하시기 바랍니다";
  1891. sysf_messageBox(chkmsg, 'E999');
  1892. return;
  1893. } else {
  1894. // 원외처방체크
  1895. var chkflag = fnoutorderchk();
  1896. var chkmsg = "";
  1897. var deptsize = ds_main_outorderinfo_deptlist.rowcount;
  1898. if (chkflag == "Y" ) {
  1899. chkmsg = "처방전이 출력되지 않은 당일 원외처방이 존재합니다.\n\n" +
  1900. "동일 진료과 원외처방일 경우 원내처방으로 변경하시고,\n" +
  1901. "타 진료과의 원외처방일 경우 반드시 처방전을 출력하셔야 합니다.\n\n";
  1902. var inordeptnm = "원외처방 발행부서는";
  1903. for( var i=0 ; i<deptsize ; i++ ){
  1904. var inor = ds_main_outorderinfo_deptlist.getColumn(i, "inorddeptnm");
  1905. inordeptnm = inordeptnm + "\n" + inor;
  1906. }
  1907. alert( chkmsg + inordeptnm + " 입니다" );
  1908. return;
  1909. }
  1910. }
  1911. //-------(20110422) 경북대
  1912. //common.js에 있음
  1913. // 150818_항암주사실 요청에 의한 주석처리
  1914. //if (messageBox("퇴실등록",'Q003',"") != 6) return;
  1915. var oParam = {};
  1916. oParam.id = "TXMNI02008";
  1917. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  1918. oParam.method = "reqExeSetDschSaveInfo";
  1919. oParam.inds = "reqdata=ds_send_reqdata senddata=ds_send_senddata";
  1920. oParam.outds = "ds_main_chemoinfo_chemolist=chemolist";
  1921. oParam.async = false;
  1922. oParam.callback = "cf_TXMNI02008";
  1923. tranf_submit(oParam);
  1924. if( arErrorCode.pop("TXMNI02008") > -1 ){
  1925. //alert("퇴실정보가 반영되었습니다");
  1926. // 150818_항암주사실 요청에 의한 주석처리
  1927. // messageBox("입력한 퇴실일자와 퇴실시간이 반영","I001");
  1928. //open("SMMNW01200","1","20","128");
  1929. //퇴실정리프로그램 호출
  1930. //alert(wardcd);
  1931. //model.makeValue("/root/temp/param/wardcd",model.getValue("/root/main/wardcdinfo/wardcdlist/chemowardcd" ));
  1932. ds_temp_param.setColumn(0, "wardcd", wardcd);
  1933. frmf_open("SMMNI02010", "SMMNI02010", null, null, 1, 100, 100, null, null, null, null, null, "M");
  1934. //modal("SMMNI02010" ,"", "", "", "SMMNI02010");
  1935. //메인재조회
  1936. //fInqurySelectedPrgm();
  1937. } else {
  1938. //alert("저장실패");
  1939. sysf_messageBox("퇴실등록","E009");
  1940. fGetChemoList();
  1941. }
  1942. }
  1943. function cf_TXMNI02008(sSvcId, nErrorCode, sErrorMsg) {
  1944. arErrorCode.push(sSvcId, nErrorCode);
  1945. }
  1946. //----------------------------------------------
  1947. // 처방전송
  1948. //----------------------------------------------
  1949. function fActing() {
  1950. //선택사항을 저장한다.
  1951. var pGrdAc = grp_biz.swt_main.case_ac.grd_acting;
  1952. var pGrdCh = grp_biz.swt_main.case_cm.grd_chemo;
  1953. var xPathChemoList = ds_main_chemoinfo_chemolist;
  1954. var checkmessage = "Y";
  1955. var iRows = -1;
  1956. var chkflag;
  1957. var cnt = 0;
  1958. var FlagInfoData = "";
  1959. var RgstInfoData = "";
  1960. var PrcpInfoData = "";
  1961. var SignInfoData = "";
  1962. //----------------------------------------------
  1963. //전체체크기능(추가해야함)
  1964. //----------------------------------------------
  1965. var rowCh = ds_main_chemoinfo_chemolist.rowposition;
  1966. //alert(model.getValue(xPathChemoList+ "[" + grd_chemo.row + "]/pid") + " , " + model.getValue(xPathChemoList+ "[" + grd_chemo.row + "]/hngnm") );
  1967. if( ds_main_chemoinfo_chemolist.rowposition < 0 ){
  1968. //alert("자료가 존재하지 않습니다");
  1969. sysf_messageBox("자료가","I004"); //없습니다.
  1970. return;
  1971. }
  1972. //-------------(20080930)
  1973. var detstatus = ds_main_chemoinfo_chemolist.getColumn(rowCh, "detstatus");
  1974. //if (model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/detstatus") != "재원") {
  1975. //---------------------(20081006)
  1976. //퇴원예고환자도 처방전송할 수 있도록 함
  1977. //if (detstatus.indexOf('재원') == -1) {
  1978. // messageBox("재원환자이외는 처리","E001"); //할수 없습니다.
  1979. // return;
  1980. //}
  1981. //---------------------(20081006)
  1982. //20081208 dhkim 주석
  1983. if( ds_main_chemoinfo_chemolist.getColumn(rowCh, "inptflag") != "실" ){
  1984. //alert(model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/inptflag"));
  1985. sysf_messageBox("입실환자이외는 처방발생","E001");
  1986. return;
  1987. }
  1988. //if (model.getValue(xPathChemoList + "[" + pGrdCh.row + "]/detstatus") == "퇴실") {
  1989. //20081208 dhkim 주석
  1990. //if (detstatus.indexOf('퇴실') != -1) {
  1991. if( detstatus.indexOf('퇴실') != -1 ){
  1992. sysf_messageBox("퇴실환자는","E001");
  1993. return;
  1994. }
  1995. //alert("test--------------------20081006");
  1996. //----------------------(20080930)
  1997. //----------------------------------------------
  1998. //초기화
  1999. //----------------------------------------------
  2000. var xPathSend = ds_send;
  2001. ds_send.clearData();
  2002. ds_send.addRow();
  2003. ds_send_reqdata.clearData();
  2004. ds_send_reqdata.addRow();
  2005. ds_send_senddata.clearData();
  2006. ds_send_senddata.addRow();
  2007. ds_send_savedata.clearData();
  2008. ds_send_savedata.addRow();
  2009. ds_send_savedata_saveflaginfo.clearData();
  2010. ds_send_savedata_saveflaginfo.addRow();
  2011. ds_send_savedata_savergstinfo.clearData();
  2012. ds_send_savedata_savergstinfo.addRow();
  2013. ds_send_savedata_saveprcpinfo.clearData();
  2014. ds_send_savedata_saveprcpinfo.addRow();
  2015. ds_send_savedata_savesigninfo.clearData();
  2016. ds_send_savedata_savesigninfo.addRow();
  2017. //----------------------------------------------
  2018. //***** 저장 후 조회조건
  2019. //----------------------------------------------
  2020. var cpgappno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(rowCh, "cpgappno")); //번호
  2021. var prtldg = grp_biz.swt_main.case_ac.in_actingprtldg.value;//현재차수
  2022. //alert('현재차수: ' + prtldg);
  2023. var reqdataHeader = "cpgappno▦prcpdd▦prtldg▦lastprtldg▩";
  2024. var reqdataData = cpgappno + "▦"//처방전송번호
  2025. + "" + "▦"//처방일자
  2026. + prtldg + "▩";//현재차수
  2027. dsf_setCSVToDs("ds_send_reqdata", reqdataHeader+reqdataData);
  2028. // model.makeValue(xPathSend + "/reqdata/cpgappno",cpgappno);
  2029. // model.makeValue(xPathSend + "/reqdata/prtldg",prtldg);
  2030. //----------------------------------------------
  2031. //***** 저장구분정보(saveFlagInfoVO):입원처방
  2032. //----------------------------------------------
  2033. var deptcd = ""; //부서코드
  2034. var deptnm = ""; //부서명
  2035. var ordtype = "D" ; //환자진료형태(외래 O, 응급 E ,입원 I)
  2036. deptcd = sysf_getUserInfo("posdeptcd"); // "1000000000"; //getUserInfo("posdeptcd");(테스트용)
  2037. deptnm = sysf_getUserInfo("posdeptnm"); //"1000000000"; //getUserInfo("posdeptnm");(테스트용)
  2038. //alert(deptcd + "/" + deptnm);
  2039. //----------------------------------------------
  2040. //자료생성
  2041. //----------------------------------------------
  2042. // if (model.getValue("/root/main/prcpposinfo/cond/poscd") == '1') { //환자위치
  2043. // deptcd = model.getValue("/root/main/cond/wardcd");
  2044. // deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/cond/wardcd") + "']/depthngnm");
  2045. // } else { //User위치
  2046. // deptcd = model.getValue("/root/main/prcpposinfo/cond/deptcd");
  2047. // deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/prcpposinfo/cond/deptcd") + "']/depthngnm");
  2048. // }
  2049. var FlagInfoHeader = "savedataflag▦saveflag▦prcpflag▦inptflag▦pamflag▦diagflag▦prcperrflag▦deptcd▦deptnm▦userid▦usernm▦signyn▩";
  2050. //------------------(20080812)
  2051. // FlagInfoData = '2' +"▦" //저장자료구분 (2:처방)
  2052. // + ordtype +"▦" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  2053. // + '1' +"▦" //처방구분(M0035 처방권한에 대한 구분종류 : 간호 추가처방)(1:의사+간호처방,2:간호추가처방)
  2054. // + '09' +"▦" //입력구분(M0034 처방입력에 대한 구분종류 : 간호처방)(09:간호처방)
  2055. // + 'Y' +"▦" //원무정보 처리구분 (Y/N)(Y:원무자료체크)
  2056. // + 'N' +"▦" //진단정보 처리구분 (Y/N)(N:진료자료체크하지 않음)
  2057. // + 'Y' +"▦" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  2058. // + deptcd +"▦" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  2059. // + deptnm +"▦" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  2060. // + getUserId() +"▦" //사용자ID (입력자 또는 로그인한 사용자ID)
  2061. // + getUserName() +"▦" //사용자명 (입력자 또는 로그인한 사용자명)
  2062. // + 'N' +"▩"; //전자서명여부 (Y/N)(일단N)
  2063. //------------------
  2064. //----------------------------------------------
  2065. //***** 저장등록정보(saveRgstInfoVO)
  2066. //----------------------------------------------
  2067. var xPathMainChemo = ds_main_chemoinfo_chemolist;
  2068. var nowrow = ds_main_chemoinfo_chemolist.rowposition;
  2069. //------------------(20080827)
  2070. //간호사 정보에서 진료과 , 주치의로 반영함
  2071. var tdeptcd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "orddeptcd"));
  2072. var tdeptnm = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "depthngnm"));
  2073. var tuserid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "orddrid"));
  2074. var tusernm = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "orddrnm"));
  2075. FlagInfoData = '2' +"▦" //저장자료구분 (2:처방)
  2076. + ordtype +"▦" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  2077. + '1' +"▦" //처방구분(M0035 처방권한에 대한 구분종류 : 간호 추가처방)(1:의사+간호처방,2:간호추가처방)
  2078. + '09' +"▦" //입력구분(M0034 처방입력에 대한 구분종류 : 간호처방)(09:간호처방)
  2079. + 'Y' +"▦" //원무정보 처리구분 (Y/N)(Y:원무자료체크)
  2080. + 'N' +"▦" //진단정보 처리구분 (Y/N)(N:진료자료체크하지 않음)
  2081. + 'Y' +"▦" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  2082. + tdeptcd +"▦" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  2083. + tdeptnm +"▦" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  2084. + tuserid +"▦" //사용자ID (입력자 또는 로그인한 사용자ID)
  2085. + tusernm +"▦" //사용자명 (입력자 또는 로그인한 사용자명)
  2086. + 'N' +"▩"; //전자서명여부 (Y/N)(일단N)
  2087. //------------------(20080827)
  2088. var pid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "pid")) ; //등록번호
  2089. var orddd = "-"; //진료일자(원무Key) - 입원일경우는 '-'
  2090. var indd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "prcpdd")) ; //입원일자
  2091. var cretno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "inptcretno")) ; //입원생성번호(테스트용)
  2092. var orddeptcd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "orddeptcd")) ; //진료과
  2093. var orderid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "orddrid")) ; //진료의ID
  2094. var instcd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(nowrow, "instcd")) ; //기관코드(테스트용)
  2095. var RgstInfoHeader = "pid▦orddd▦indd▦cretno▦orddeptcd▦orddrid▦instcd▩";
  2096. RgstInfoData = pid +"▦"
  2097. + orddd +"▦"
  2098. + indd +"▦"
  2099. + cretno +"▦"
  2100. + orddeptcd +"▦"
  2101. + orderid +"▦"
  2102. + instcd +"▩";
  2103. //----------------------------------------------
  2104. //***** 실처방시 상태변경
  2105. //----------------------------------------------
  2106. var OrdseqnoHeader = "cpgappno▦ordseqno▦prcpno▦prcpcd▩";
  2107. var OrdseqnoData = "";
  2108. //----------------------------------------------
  2109. //***** 저장처방정보(savePrcpInfoVO)
  2110. //----------------------------------------------
  2111. var xPathMainActing = ds_main_actinginfo_actinglist;
  2112. var xPathMainChemo = ds_main_chemoinfo_chemolist;
  2113. var chkflag;
  2114. var cnt = 0;
  2115. var PrcpInfoHeader = "status▦rowno▦druglnkno▦prcpdd▦prcpno▦prcphistno▦instcd▦pid▦orddd▦cretno▦orddeptcd▦orddrid▦prcpgenrflag▦prcpstatcd▦prcpkindcd▦prcpcd▦calcscorcd▦inclprcpcd▦"
  2116. +"inclprcpno▦prcpexecdeptcd▦prcphopedd▦prcpqty▦prcpqtyunitflag▦prcptims▦prcpdayno▦payflagcd▦erprcpflag▦precureprcpflag▦nigtprcpflag▦portprcpflag▦fixprcpflag▦"
  2117. +"choiordflag▦anamneflag▦prcpdirecflag▦angioflagcd▦opansflagcd▦ansttm▦offictourhealexamflag▦stemcellflag▦hosinhosoutflag▦hosinprcpresncd▦issdeptcd▦prcpauthflag▦"
  2118. +"prcpinptflag▦prcpsignflag▦oprsrvno▦clincstdyflag▦clincstdycd▦drugmthdspccd▦prcpdelivefact▦tootfact▦matrsetprcpspec▦calcflag▦rsrvflag▦rsrvdd▦rsrvtm▦rsrvrid▦execdd▦"
  2119. +"exectm▦execrid▦direcprcplnkdd▦direcprcplnkno▦ordreqlnkno▦testreqlnkno▦";
  2120. //PrcpInfoHeader += "anticncrprtlno▦drugrateqty▦prnprcpflag▦prcpmixno▦prcpvol▩";
  2121. //20090227 dhkim anticncrdayno 추가
  2122. PrcpInfoHeader += "anticncrprtlno▦drugrateqty▦prnprcpflag▦prcpmixno▦prcpvol▦anticncrdayno▦drprcpetc6▦drprcpetc7▦drprcpetc8▩"; // 20100125 PRN 사유/횟수 추가 by LYJ
  2123. //----------------(20071203추가)
  2124. // '00000000' as execdd --실시일자
  2125. // '000000' as exectm --실시시간
  2126. // '-' as execrid --실시자ID
  2127. // prtl.cpgappno anticncrprtlno
  2128. // '-' drugrateqty
  2129. // prtl.prnprcpflag prnprcpflag
  2130. // prtl.prcpmixno prcpmixno
  2131. // ast.adbhprtlord prtl
  2132. //-----------------------------------------------
  2133. //for ( i = 1; i<= getNodesetCount("/root/main/prcpposinfo/prcpinfo/prcplist"); i++) {
  2134. for( var row=0 ; row<ds_main_actinginfo_actinglist.rowcount ; row++ ){
  2135. //선택하지 않은 자료는 거른다.
  2136. chkflag = ds_main_actinginfo_actinglist.getColumn(row, "chk");
  2137. if( chkflag != "true" ) continue;
  2138. //이미 저장된 자료는 거른다.
  2139. chkflag = ds_main_actinginfo_actinglist.getColumn(row, "saveflag");
  2140. // 20090408 dhkim 반환된 자료의 체크상태를 해제한다
  2141. if(chkflag == "D"){
  2142. ds_main_actinginfo_actinglist.setColumn(row, "chk", "false");
  2143. }
  2144. if( chkflag == "Y" || chkflag == "D" ) continue;
  2145. chkflag = ds_main_actinginfo_actinglist.getColumn(row, "prcpno");
  2146. if( chkflag != "0" ) {
  2147. //그냥 넘어갈수도 있음
  2148. //alert("이미 처방발생자료입니다");
  2149. if(checkmessage == "Y"){ // 메시지는 한번만 뜨도록 변경
  2150. sysf_messageBox("이미 처방이 발행된 자료는 처리","E001"); //할수 없습니다.
  2151. checkmessage = "N";
  2152. }
  2153. ds_main_actinginfo_actinglist.setColumn(row, "chk", 'false');
  2154. continue;
  2155. }
  2156. cnt += 1;
  2157. // if (model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/status") == 'C') { //DC
  2158. // prcphistno = model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/prcphistno");
  2159. // prcpno = model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/prcpno");
  2160. //
  2161. // } else if (model.getValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + i + "]/status") == 'I' ) { //신규
  2162. // prcphistno = 0;
  2163. // prcpno = 0;
  2164. // }
  2165. var prcpdd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(rowCh, "prcpdd"));
  2166. var prcpno = "0";
  2167. var prcphistno = "0";
  2168. //20090226 dhkim
  2169. // var instcd = getUserInfo("posinstcd");
  2170. var instcd = sysf_getUserInfo("dutplceinstcd");
  2171. var pid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(rowCh, "pid"));
  2172. var ordindd = prcpdd;
  2173. var orddeptcd = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(rowCh, "orddeptcd"));
  2174. var orddrid = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(rowCh, "orddrid"));
  2175. var ordtype = "D";
  2176. //------------------(20081010)
  2177. //var druglnkno = model.getValue(xPathMainActing + "[" + rowCh+ "]/ordseqno"); 1009
  2178. var druglnkno = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "ordseqno"));
  2179. if( utlf_isNull(druglnkno) ){
  2180. //alert( row + "/" + model.getValue(xPathMainActing + "[" + row+ "]/ordseqno") );
  2181. sysf_messageBox("DrugLnkNo 항암프로토콜 상세정보가 존재하지 않습니다.","E999");
  2182. return;
  2183. }
  2184. //------------------(20081010)
  2185. //cretno = "1"; //model.getValue(xPathMainActing + "[" + row + "]/cretno"); (테스트용)
  2186. //기본공통정보
  2187. PrcpInfoData += "I" +"▦" //신규(I), DC(C)
  2188. + row +"▦" //줄번호 (병리 요구)
  2189. + druglnkno +"▦" //처방순번
  2190. + prcpdd +"▦" //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  2191. + prcpno +"▦" //처방번호 (status가 'I'일 경우 0)
  2192. + prcphistno +"▦" //처방이력번호 (status가 'I'일 경우 0)
  2193. + instcd +"▦" //기관코드
  2194. + pid +"▦" //등록번호(원무Key)
  2195. + ordindd +"▦" //진료일자(원무Key) - 입원환자일 경우 indd
  2196. + cretno +"▦" //생성번호(원무Key)
  2197. + orddeptcd +"▦" //진료과(원무)
  2198. + orddrid +"▦" //진료의ID(원무)
  2199. + ordtype +"▦" //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  2200. + '000' +"▦" //처방상태 : '000'
  2201. + '20' +"▦"; //처방종류 : '20'
  2202. //emr.mmbtprcd(처방마스타)에 '처방코드'로 '수가코드'를 찾을것(식이를 제외하고는 처방코드=수가코드가 일치하는 경우가 대부분이다.
  2203. var calcscorcd = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpcd")); //수가코드(?) = 처방코드
  2204. var prcpqty = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpqty")); //어떤것인지(처방수량)(?) ==> actingfinfo에 추가 원본에는 prcpqty가 있음
  2205. var prcptims = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcptims")); //처방횟수
  2206. var prcpdayno = "1"; //처방일수(?) ==> 무조건 1일
  2207. var payflagcd = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "payflagcd"));
  2208. var erprcpflag = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "erprcpflag")); // 응급처방구분 (Y/N)
  2209. var drugmthdspccd = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "drugmthdspccd")); //복용방법
  2210. var remark = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "remark")) + " " + utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "nursrem")) ; //전달사항(20080110)
  2211. var prcpqtyunitflag = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpqtyunitflag")); //처방수량단위
  2212. //20090227 dhkim anticncrdayno 추가
  2213. var anticncrdayno = prtldg; //처방차수
  2214. //alert('anticncrdayno : ' + anticncrdayno );
  2215. //-----------(20081006)TEST
  2216. //alert ( prcpqtyunitflag); ADBDPRTLORD.prcpqtyunitflag 에 값이 없는경우
  2217. //-----------(20081006)
  2218. //---(20080129)
  2219. var prcpvol = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpvol")); //prcpvol +"▦"
  2220. var clincstdyflag = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "clincstdyflag"))
  2221. //var prcpvolunitflag = model.getValue(xPathMainActing + "[" + row + "]/prcpqtyunitflag"); //prcpvolunitflag
  2222. // alert(prcpqty +"/"+drugmthdspccd);
  2223. /*
  2224. //20081013 특수주사실 코드로 parameter 세팅
  2225. if(injSpclRoom == null || injSpclRoom != '3120400000'){
  2226. injSpclRoom = '3120400000';
  2227. }
  2228. */
  2229. //20090223 dhkim
  2230. //발행부서를 해당 사용자의 병동으로 세팅
  2231. //suppdeptcd
  2232. //20081013
  2233. //특수주사실 코드 글로벌변수 ==> injSpclRoom
  2234. /*김귀남 10-13 18:43
  2235. 특수주사실에서 항암 시행할때 issdeptcd 에 현재 orddeptcd가 들어가는데 wardcd 를 넣어주십시오.
  2236. 김귀남 10-13 18:43
  2237. 즉, 발행부서는 해당병동입니다.
  2238. */
  2239. //상세정보
  2240. PrcpInfoData += ds_main_actinginfo_actinglist.getColumn(row, "prcpcd") +"▦" //처방코드
  2241. + calcscorcd +"▦" //수가코드(처방코드인가?)
  2242. + '-' +"▦" //종속처방코드 ('-') => default : '-' //***
  2243. + 0 +"▦" //종속처방번호 (일련번호 - 종속처방코드별로 생성) => default : 0 //***
  2244. + orddeptcd +"▦" //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  2245. + prcpdd +"▦" //처방희망일자 (처방일자 이전으로 발생불가)
  2246. + prcpqty +"▦" //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨) => default : 1
  2247. + prcpqtyunitflag +"▦" //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-') => default : '-' //***
  2248. + prcptims +"▦" //처방횟수 (1) (입원일 경우 횟수에 따라 풀림) => default : 1 //***
  2249. + prcpdayno +"▦" //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김) => default : 1 //***
  2250. + payflagcd +"▦" //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  2251. + erprcpflag +"▦" //응급처방구분 (Y/N) ==> default : 'N' //***
  2252. + 'N' +"▦" //선처치처방구분 (Y/N) ==> default : 'N'
  2253. + 'N' +"▦" //야간처방구분 (Y/N) : 야간가산에 해당 될 경우 ==> default : 'N' //***
  2254. + 'N' +"▦" //포터블처방구분 (Y/N) ==> default : 'N' //***
  2255. + 'N' +"▦" //정액처방구분 (Y/N) ==> default : 'N' //***
  2256. + 'N' +"▦" //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리 ==> default : 'N' //***
  2257. + 'N' +"▦" //기왕력(증)구분 (Y/N) ==> default : 'N' //***
  2258. + '-' +"▦" //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-' => default : '-' //***
  2259. + '-' +"▦" //Angio구분 (코드정의서 M0006 참조) : '-' => default : '-' //***
  2260. + '-' +"▦" //수술마취구분 (코드정의서 M0007, M0008 참조) : '-' => default : '-' //***
  2261. + '0000' +"▦" //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격 => default : '0000' //***
  2262. + 'N' +"▦" //출장검진구분 (Y/N) => default : 'N' //***
  2263. + '00NNN' +"▦" //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성 => default : '00NNN' //***
  2264. + 'I' +"▦" //원내외구분(건진은 'I', 약이 아닐경우 '-') => default : '-' //***(20080110에 I로 변경)
  2265. + '00' +"▦" //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00') => default : '00' //***
  2266. + suppdeptcd +"▦" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : '-' //***
  2267. //+ orddeptcd +"▦" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리) => default : '-' //***
  2268. // + '2' +"▦" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  2269. + '0' +"▦" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  2270. + '06' +"▦" //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  2271. + '0' +"▦" //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료) => default : '2' //***????
  2272. + '-' +"▦" //수술예약번호(0) => default : '-' //***
  2273. + clincstdyflag +"▦" //임상연구구분 (Y/N)
  2274. + '-' +"▦" //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록 => default : '-' //***
  2275. + drugmthdspccd +"▦" //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-') => default : '-' //***
  2276. + remark +"▦" //처방전달사항 //***
  2277. + '-' +"▦" //치식 (병리만 사용, 나머지는 '-') => default : '-' //***
  2278. + '-' +"▦" //재료처방내용 ('-') -> 추후정의 //***
  2279. + 'N' +"▦" //계산구분 (Y/N)
  2280. + 'N' +"▦" //예약구분 (Y/N)
  2281. + '00000000' +"▦" //예약일자 ('N'일 경우 '00000000')
  2282. + '000000' +"▦" //예약시간 ('N'일 경우 '000000')
  2283. + '-' +"▦"; //예약자ID ('-')
  2284. var anticncrprtlno = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(rowCh, "cpgappno"));
  2285. var prnprcpflag = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prnprcpflag"));
  2286. var prcpmixno = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpmixno"));
  2287. PrcpInfoData += '00000000' +"▦" //실시일자 ('00000000') getCurrentDate()
  2288. + '000000' +"▦" //실시시간 ('000000') getCurrentTime()
  2289. + '-' +"▦" //실시자ID ('-') getUserId()
  2290. + '00000000' +"▦" //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  2291. + '0' +"▦" //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  2292. + '0' +"▦" //진료의뢰연계번호 (0)
  2293. + '0' +"▦" //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  2294. + anticncrprtlno +"▦" //항암프로토콜번호(anticncrprtlno)
  2295. + '-' +"▦"
  2296. + prnprcpflag +"▦"
  2297. + prcpmixno +"▦"
  2298. + prcpvol +"▦" //(20080129)
  2299. //20090227 dhkim anticncrdayno 추가
  2300. + anticncrdayno +"▦"
  2301. + utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prnprcpdtl"))+ "▦"
  2302. + utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "drprcpetc7"))+ "▦"
  2303. + utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "drprcpetc8"))+ "▩" //20100125 PRN 사유/횟수 추가 by LYJ
  2304. //+ prcpvol +"▩" //(20080129)
  2305. //자동 간호확인을 위한 데이터(20080828)
  2306. //var carechklist = "prcpdd▦prcpno▦prcphistno▦instcd▦hsctlnkno"
  2307. //carechklist = carechklist + "▩" + model.getValue(xPathMainChemo + "[" + rowCh+ "]/prcpdd"); + "▦" + goodcd + "▦" + allsizespecid
  2308. // + "▦" + windd + "▦" + (parseInt(winqty) - parseInt(oldqty)) + "▦" + "2"
  2309. // + "▦" + "0000" + "▦" + (parseInt(winqty) * parseInt(acmlbaseqty)) + "▦" + deptflag;
  2310. //----------------(20071203추가)
  2311. // '00000000' as execdd --실시일자
  2312. // '000000' as exectm --실시시간
  2313. // '-' as execrid --실시자ID
  2314. // prtl.cpgappno anticncrprtlno
  2315. // '-' drugrateqty
  2316. // prtl.prnprcpflag prnprcpflag
  2317. // prtl.prcpmixno prcpmixno
  2318. // ast.adbhprtlord prtl
  2319. //-----------------------------------------------
  2320. //----------------------------------------------
  2321. //***** 실처방시 상태변경
  2322. //----------------------------------------------
  2323. var cpgappno = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "cpgappno")); //cpgappno
  2324. var ordseqno = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "ordseqno")); //ordseqno
  2325. var prcpno = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpno")); //prcpno
  2326. var prcpcd = utlf_transNullToEmpty(ds_main_actinginfo_actinglist.getColumn(row, "prcpcd")); //prcpno
  2327. OrdseqnoData += ""
  2328. + cpgappno +"▦" //CPG적용번호
  2329. + ordseqno +"▦" //처방순번
  2330. + prcpno +"▦" //입원처방생성번호
  2331. + prcpcd +"▩" //처방코드
  2332. //alert("test------------------"+ OrdseqnoData);
  2333. }
  2334. if (cnt == 0) {
  2335. //alert("처방발생할 자료가 존재하지 않습니다");
  2336. sysf_messageBox("처방발행할 자료가","I004"); //없습니다.
  2337. return;
  2338. }
  2339. //----------------------------------------------
  2340. //***** 저장처방정보(savePrcpInfoVO)
  2341. //----------------------------------------------
  2342. // var SignInfoHeader = "signdd▦signno▦instcd▦pid▦orddd▦cretno▦signflag▦signgenrflag▦rgstdeptcd▦rgstdd▦rgsttm▦rgstrid▦updtdeptcd▦updtdd▦updttm▦updtrid▦fstrgstrid▦fstrgstdt▦lastupdtrid▦"
  2343. // +"lastupdtdt▦signbfcnts▦signaftcnts▩";
  2344. //----------------------------------------------
  2345. //***** 저장instance에반영
  2346. //----------------------------------------------
  2347. dsf_setCSVToDs("ds_send_savedata_saveflaginfo", FlagInfoHeader+FlagInfoData);
  2348. dsf_setCSVToDs("ds_send_savedata_savergstinfo", RgstInfoHeader+RgstInfoData);
  2349. dsf_setCSVToDs("ds_send_savedata_saveprcpinfo", PrcpInfoHeader+PrcpInfoData);
  2350. dsf_setCSVToDs("ds_send_senddata", OrdseqnoHeader+OrdseqnoData);
  2351. //20090224 dhkim
  2352. //처방전송 메세지를 환자의 입실된병동과 조회된 병동이 다를경우 blocking한다.
  2353. var sendMsg = '';
  2354. var wardcd = ds_main_actingbasicinfo.getColumn(0, "wardcd");
  2355. var wardnm = ds_main_actingbasicinfo.getColumn(0, "wardnm");
  2356. //alert('wardcd : ' + wardcd + 'wardnm : ' + wardnm);
  2357. //alert('wardcd : ' + wardcd + ', suppdeptcd : ' + suppdeptcd);
  2358. if(wardcd == suppdeptcd){
  2359. sendMsg = '처방전송을';
  2360. }else{
  2361. sysf_messageBox('해당 환자는 ' + wardnm + ' 환자 입니다. ' + suppdeptnm + ' 에 입실된 환자만 처방전송 가능합니다.', 'E999');
  2362. return;
  2363. }
  2364. if (sysf_messageBox(sendMsg, 'Q003', "") != 6) return;
  2365. dsf_setDefaultVal(ds_send_savedata_saveprcpinfo, "prcpno:0");
  2366. trace("yjh pid=>"+ds_main_paminfo_list.getColumn(0, "pid"));
  2367. trace("yjh=>"+ds_send_senddata.saveXML());
  2368. var oParam = {};
  2369. oParam.id = "TXMNI02007";
  2370. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  2371. oParam.method = "reqExeSetActingSaveInfo";
  2372. oParam.inds = "reqdata=ds_send_reqdata senddata=ds_send_senddata req_flaginfo=ds_send_savedata_saveflaginfo req_rgstinfo=ds_send_savedata_savergstinfo req_prcpinfo=ds_send_savedata_saveprcpinfo req_signinfo=ds_send_savedata_savesigninfo";
  2373. oParam.outds = "ds_main_actinginfo_actinglist=actinglist";
  2374. oParam.async = false;
  2375. oParam.callback = "cf_TXMNI02007";
  2376. tranf_submit(oParam);
  2377. ds_main_actinginfo_actinglist.addColumn("colBgColor", "string");
  2378. ds_main_actinginfo_actinglist.addColumn("colBgColor6", "string");
  2379. ds_main_actinginfo_actinglist.addColumn("colEdittype0", "string");
  2380. ds_main_actinginfo_actinglist.addColumn("colEdittype8", "string");
  2381. ds_main_actinginfo_actinglist.addColumn("colEdittype9", "string");
  2382. ds_main_actinginfo_actinglist.addColumn("colEdittype22", "string");
  2383. ds_main_actinginfo_actinglist.addColumn("colEdittype24", "string");
  2384. ds_main_actinginfo_actinglist.rowposition = -1;
  2385. var cnt = 0;
  2386. var nodeCnt = ds_main_actinginfo_actinglist.rowcount;
  2387. ds_main_actinginfo_actinglist.enableevent = false;
  2388. ds_main_actinginfo_actinglist.updatecontrol = false;
  2389. for( var i=0 ; i<nodeCnt ; i++ ){
  2390. //------------------(20081006)
  2391. var saveflag = ds_main_actinginfo_actinglist.getColumn(i, "saveflag");
  2392. if( saveflag == "D" ) {//반환인 경우 그리드 색 변경
  2393. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor", "#FFCCCC");
  2394. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#FFCCCC");
  2395. } else {
  2396. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor", "#FFFFFF");
  2397. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#FFFFFF");
  2398. }
  2399. //------------------(20081006)
  2400. if( ds_main_actinginfo_actinglist.getColumn(i, "chk") == "true" ){
  2401. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  2402. cnt++
  2403. }else if(saveflag == "D"){ //20090407 dhkim 반환처방의 경우 체크박스 해제 및 비활성화처리
  2404. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  2405. }else{
  2406. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "checkbox");
  2407. }
  2408. if ( ds_main_actinginfo_actinglist.getColumn(i, "prtlabsnyn") == "Y" ) {
  2409. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  2410. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor", "#ffbbd5");
  2411. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#ffbbd5");
  2412. }
  2413. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype8", "combo");
  2414. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype9", "combo");
  2415. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype22", "combo");
  2416. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype24", "checkbox");
  2417. }
  2418. ds_main_actinginfo_actinglist.updatecontrol = true;
  2419. ds_main_actinginfo_actinglist.enableevent = true;
  2420. if( cnt == nodeCnt ) {//All 체크 되어 있으면
  2421. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "displaytype", "normal");
  2422. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "edittype", "none");
  2423. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "text", "");
  2424. }
  2425. var drugmastspec;
  2426. var spclcd;
  2427. ds_main_actinginfo_actinglist.enableevent = false;
  2428. ds_main_actinginfo_actinglist.updatecontrol = false;
  2429. for( var i=0 ; i<ds_main_actinginfo_actinglist.rowcount ; i++ ){
  2430. drugmastspec = ds_main_actinginfo_actinglist.getColumn(i, "drugmastspec");
  2431. spclcd = new Array();
  2432. spclcd = drugmastspec.split("|");
  2433. if(spclcd[13] == "D") {
  2434. ds_main_actinginfo_actinglist.setColumn(i, "colBgColor6", "#ffff00");
  2435. }
  2436. }
  2437. ds_main_actinginfo_actinglist.updatecontrol = true;
  2438. ds_main_actinginfo_actinglist.enableevent = true;
  2439. if( arErrorCode.pop("TXMNI02007") > -1 ){
  2440. //오류팝업
  2441. var prcpErrList = ds_temp_result_prcperrlist;
  2442. if( ds_temp_result_prcperrlist.rowcount > 0 ){
  2443. if( !utlf_isNull(ds_temp_result_prcperrlist.getColumn(0, "prcpcd")) ){
  2444. var xpt = system.clientToScreenX(this, this.position.left) + 100;
  2445. var ypt = system.clientToScreenY(this, this.position.top) + 50;
  2446. //var coord = getRelativeCoordinate ( xpt, ypt );
  2447. var mon = 1;
  2448. // xpt = coord[1];
  2449. // ypt = coord[2];
  2450. ds_temp_result_prcperrlist2.copyData(ds_temp_result_prcperrlist);
  2451. var objArg = new Object();
  2452. objArg.arg_ds_result_prcperrlist = ds_temp_result_prcperrlist2;
  2453. frmf_open("SPMMO00600", "SPMMO00600", objArg, null, mon, xpt, ypt, null, null, null, null, null, "M");
  2454. ds_temp_result_prcperrlist.clearData();
  2455. }
  2456. } else {
  2457. // model.removeNodeset("/root/main/prcpposinfo/prcpinfo");
  2458. // model.copyNode("/root/main/bfprcpinfo/bfprcplistinfo", "/root/temp/result");
  2459. //model.copyNode("/root/main/prcpposinfo/prcpinfo", "/root/temp/result");
  2460. //grd_prcpposlist.colDisabled(1) = false;
  2461. //fPrcpListRef("Bf");
  2462. if( ds_codelist.lookupExpr("cdgrupid=='077' && supcdid=='02'", "cdid") == sysf_getUserInfo("dutplceinstcd") ){
  2463. fprint();
  2464. }
  2465. }
  2466. } else {
  2467. //alert("실처방발생 실패");
  2468. sysf_messageBox("실처방을 발행","E001");
  2469. }
  2470. var nodeCnt = ds_main_actinginfo_actinglist.rowcount;
  2471. grp_biz.swt_main.case_ac.grd_acting.setCellProperty("Head", 0, "text", "1");
  2472. for( var i=0 ; i<nodeCnt ; i++ ){
  2473. if( ds_main_actinginfo_actinglist.getColumn(i, "chk") == "true" || ds_main_actinginfo_actinglist.getColumn(i, "prtlabsnyn") == "Y" ){
  2474. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "none");
  2475. }else {
  2476. ds_main_actinginfo_actinglist.setColumn(i, "colEdittype0", "checkbox");
  2477. }
  2478. if(grp_biz.swt_main.case_ac.grd_acting.getCellProperty("head", 0, "text") =="1"){//추가..헤더 체크상태일때 전체체크 디폴드로..
  2479. ds_main_actinginfo_actinglist.setColumn(i, "chk", "true");
  2480. }
  2481. }
  2482. }
  2483. function cf_TXMNI02007(sSvcId, nErrorCode, sErrorMsg) {
  2484. arErrorCode.push(sSvcId, nErrorCode);
  2485. }
  2486. //-----------------------------------------------------------------------------------
  2487. //----------------------------------------------
  2488. // 선택한 그리드 자료에 대한 환자정보 상단에 올리기
  2489. // 20090212 dhkim (추가)
  2490. // 상단세팅전 서울성모 전환환자인지 조회
  2491. //----------------------------------------------
  2492. function fSetPatInfo_chemo() {
  2493. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  2494. var row = ds_main_chemoinfo_chemolist.rowposition;
  2495. var xPathChemo = "/root/main/chemoinfo";
  2496. var condparam = "";
  2497. if( ds_main_chemoinfo_chemolist.rowposition < 0 ) return;
  2498. //20090212 dhkim 추가
  2499. //상단정보세팅전 서울성모 전환환자인지 조회
  2500. var pid = ds_main_chemoinfo_chemolist.getColumn(row, "pid");
  2501. ds_send.clearData();
  2502. ds_send.addRow();
  2503. ds_send.setColumn(0, "pid", pid);
  2504. var oParam = {};
  2505. oParam.id = "TRMNI02030";
  2506. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  2507. oParam.method = "reqGetPidFlagInfo";
  2508. oParam.inds = "req=ds_send";
  2509. oParam.outds = "ds_bmtinfo=bmtinfo";
  2510. oParam.async = false;
  2511. oParam.callback = "cf_TRMNI02030";
  2512. tranf_submit(oParam);
  2513. if( arErrorCode.pop("TRMNI02030") < 0 ){
  2514. sysf_messageBox('상단정보세팅중 전환환자 여부조회를 실패하였습니다.', 'E999');
  2515. }else{
  2516. var pidflag = ds_bmtinfo.getColumn(0, "pidflag");
  2517. var hngnm = ds_bmtinfo.getColumn(0, "hngnm");
  2518. if( !utlf_isNull(hngnm) ){
  2519. hngnm = '"' + hngnm + '"님은 ';
  2520. }
  2521. if(pidflag == 'Y'){
  2522. sysf_messageBox(hngnm + '여의도성모에서 서울성모 전환 BMT환자입니다.', 'I999');
  2523. }
  2524. }
  2525. //--------------------------상단올리기 flag --------------------------
  2526. // 01 O:외래, I:입원구분, T:수술예약 , E:응급
  2527. // 02 등록번호
  2528. // 03 수술시작일자
  2529. // 04 cretno(없는 경우 ""로 처리)
  2530. // 05 기관코드
  2531. // 06 집도과부서
  2532. // 07 집도의ID
  2533. // 08 환자구분
  2534. // 09 F -처리구분 무조건 F로 설정
  2535. // 10 수술예약번호
  2536. // 11 수술이력번호
  2537. // 12 조회일자 2007-09-13 오지훈 추가...
  2538. //------------------------------------------------------------------
  2539. var pid = "";
  2540. var indd= "";
  2541. var cretno="";
  2542. var instcd = "";
  2543. var orddd= "";
  2544. var ordtype = "";
  2545. //----------(20080913)
  2546. var ioflag = ds_main_chemoinfo_chemolist.getColumn(row, "inptcretno") ;
  2547. var detstatus = utlf_trim(ds_main_chemoinfo_chemolist.getColumn(row, "detstatus"));
  2548. //if ( ioflag != "") { //입원정보를 기준으로 상단에 반영
  2549. if(detstatus == "외래") {
  2550. pid = ds_main_chemoinfo_chemolist.getColumn(row, "pid") ;
  2551. indd = ds_main_chemoinfo_chemolist.getColumn(row, "otptorddd") ;
  2552. cretno = ds_main_chemoinfo_chemolist.getColumn(row, "otptcretno") ;
  2553. instcd = ds_main_chemoinfo_chemolist.getColumn(row, "instcd");
  2554. orddd = ds_main_chemoinfo_chemolist.getColumn(row, "otptorddd"); //처방일(orddd)
  2555. ordtype = "O";
  2556. }
  2557. else { //외래정보를 기준으로 상단에 반영
  2558. pid = ds_main_chemoinfo_chemolist.getColumn(row, "pid") ;
  2559. indd = ds_main_chemoinfo_chemolist.getColumn(row, "prcpdd") ;
  2560. cretno = ds_main_chemoinfo_chemolist.getColumn(row, "inptcretno") ;
  2561. instcd = ds_main_chemoinfo_chemolist.getColumn(row, "instcd");
  2562. orddd = ds_main_chemoinfo_chemolist.getColumn(row, "prcpdd"); //처방일(orddd)
  2563. //=======================================================================================================
  2564. ordtype = "I"; //--> 'D' (테스트) ==> '상단정보parameter값이 잘못 설정 되었습니다' 로 나옴
  2565. //=======================================================================================================
  2566. }
  2567. //----------(20080913)
  2568. //항암 프로토콜 스케쥴 화면 조회를 위해 셋팅
  2569. ds_hidden_antisch.setColumn(0, "pid", pid);
  2570. ds_hidden_antisch.setColumn(0, "cpgappno", ds_main_chemoinfo_chemolist.getColumn(row, "cpgappno"));
  2571. // 상단 세팅을 위한 파라미터
  2572. condparam = ordtype + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd+ "▦" + orddd;
  2573. // setParameter("condparam", condparam);
  2574. // modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2575. appf_initPatientInfo(condparam); //상단정보 셋팅
  2576. //20090102 dhkim
  2577. //예약정보조회
  2578. fGridReservationInfo();
  2579. //model.makeNode("/root/main/paminfo");
  2580. var node = sysf_getGlobalVariable("paminfo");
  2581. dsf_setCSVToDs("ds_main_paminfo_list", node);
  2582. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  2583. ds_main_paminfo_list.addColumn("orddd", "string");
  2584. }
  2585. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  2586. ds_main_paminfo_list.addColumn("indd", "string");
  2587. }
  2588. //----------------------------------------------------
  2589. //설정된 상단정보를 불러옴
  2590. // alert("내리기");
  2591. // model.makeNode("/root/main/paminfo");
  2592. // var node = getGlobalVariable("paminfo");
  2593. // setCSVToNode("/root/main/paminfo", node);
  2594. //----------------------------------------------------
  2595. var flowSheetObj = frmf_findPopup("SMMNR00900");
  2596. if( !utlf_isNull(flowSheetObj) ){//카덱스]
  2597. flowSheetObj.fInitialize("init");
  2598. flowSheetObj.fInitViewer();
  2599. flowSheetObj.lf_emrSetTimer();
  2600. }
  2601. var careRecObj = frmf_findPopup("SMMNR03400");
  2602. if( !utlf_isNull(careRecObj) ){//카덱스]
  2603. careRecObj.fInitialize();
  2604. careRecObj.fcolwidth();
  2605. }
  2606. // // 항암동의서 확인 2012.06.18 KJS
  2607. // //항암프로토콜 종류
  2608. // var pid = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/pid');
  2609. // var appdd = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/prcpdd');
  2610. // var prtlcd = model.getValue('/root/main/chemoinfo/chemolist[' + grd_chemo.row + ']/prtlcd');
  2611. //
  2612. // model.removenode("/root/send/xproto")
  2613. // model.makeValue("/root/send/xproto/pid", pid);
  2614. // model.makeValue("/root/send/xproto/appdd", appdd);
  2615. // model.makeValue("/root/send/xproto/prtlcd", prtlcd);
  2616. //
  2617. // submit("TRMNI02014");
  2618. //
  2619. //
  2620. //
  2621. // var xappdd = model.getValue("/root/temp/xprotcnt/xappdd");
  2622. // model.makeValue("/root/send/xproto/xappdd", xappdd);
  2623. // //alert(model.getValue("/root/send/xproto/xappdd"));
  2624. // //alert(instance1.selectNodesXml("/root/send/xproto"));
  2625. // submit("TRMNI02015");
  2626. //
  2627. // var cnt = model.getValue("/root/temp/xprotcnt/cnt");
  2628. // if (cnt < 1){
  2629. // if (xappdd == 'N')
  2630. // {
  2631. // messageBox("해당 프로토콜에 대한 항암화학 동의서가 없으니 다시 확인해주시기 바랍니다.","I999");
  2632. // } else {
  2633. // messageBox("항암 프로토콜이 달라졌으니 동의서를 새로 받아주시기 바랍니다.","I999");
  2634. // }
  2635. // }
  2636. }
  2637. function cf_TRMNI02030(sSvcId, nErrorCode, sErrorMsg) {
  2638. arErrorCode.push(sSvcId, nErrorCode);
  2639. }
  2640. /**
  2641. * @ver : 2010.01.25 dhkim
  2642. * @desc : 상단정보에서 환자정보를 가지고 케모환자리스트의 정보를 get한다.
  2643. * @param :
  2644. * @return : [retnArry]
  2645. * [0] pid 등록번호
  2646. * [1] rp_indd 예약처방전송param_입원일
  2647. * [2] rp_cretno 예약처방전송param_생성번호
  2648. * [3] rp_ordtype 예약처방전송param_외래입원구분
  2649. * [4] rp_medispclid 예약처방전송param_주치의아이디
  2650. * [5] roomcd 병실코드
  2651. * [6] age 환자나이
  2652. * [7] hngnm 환자명
  2653. * [8] cpgappno 항암프로토콜cpg번호
  2654. * [9] prtldg 항암프로토콜차수코드
  2655. * [10]prcpdd 항암프로토콜처방일자
  2656. * [11]sickclsnm 진단명
  2657. * [12]prtlnm 항암프로토콜처방명
  2658. * [13]prtldg_d 항암프로토콜차수뷰
  2659. * [14]inptflag 입원구분
  2660. * [15]detstatus 진행상태
  2661. * [16]depthngnm 진료과명
  2662. * [17]orddrnm 주치의명
  2663. * [18]careinrmdd 간호입실일자
  2664. * [19]wardcd 병동코드
  2665. * [20]wardnm 병동명
  2666. */
  2667. function fGetTopInfoToChemoPatInfo(){
  2668. var retnArry = "";//리턴값
  2669. var paminfo = sysf_getGlobalVariable("paminfo");
  2670. if(paminfo.length > 0){//원무정보(기본정보)가 있는경우
  2671. //설정된 상단정보를 불러옴
  2672. ds_main_paminfo_list.clearData();
  2673. dsf_setCSVToDs("ds_main_paminfo_list", paminfo);
  2674. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  2675. ds_main_paminfo_list.addColumn("orddd", "string");
  2676. }
  2677. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  2678. ds_main_paminfo_list.addColumn("indd", "string");
  2679. }
  2680. var pid = ds_main_paminfo_list.getColumn(0, "pid");
  2681. var indd = ds_main_paminfo_list.getColumn(0, "indd");
  2682. var cretno = ds_main_paminfo_list.getColumn(0, "cretno");
  2683. var orddd = ds_main_paminfo_list.getColumn(0, "orddd");
  2684. var ioflag = ds_main_paminfo_list.getColumn(0, "ioflag");
  2685. if( !utlf_isNull(pid) ){
  2686. retnArry = "pid" + "|"
  2687. + "rp_indd" + "|"
  2688. + "rp_cretno" + "|"
  2689. + "rp_ordtype" + "|"
  2690. + "rp_medispclid" + "|"
  2691. + "roomcd" + "|"
  2692. + "age" + "|"
  2693. + "hngnm" + "|"
  2694. + "cpgappno" + "|"
  2695. + "prtldg" + "|"
  2696. + "prcpdd" + "|"
  2697. + "sickclsnm" + "|"
  2698. + "prtlnm" + "|"
  2699. + "prtldg_d" + "|"
  2700. + "inptflag" + "|"
  2701. + "detstatus" + "|"
  2702. + "depthngnm" + "|"
  2703. + "orddrnm" + "|"
  2704. + "careinrmdd" + "|"
  2705. + "wardcd" + "|"
  2706. + "wardnm" + "▒";
  2707. //상단정보가 있을경우 그리드 리스트에서 해당 환자를 찾아 필요 정보를 배열에 저장한 후 리턴한다.
  2708. var _pid, _indd, _orddd, _inptcretno, _otptcretno;
  2709. for( var i=0 ; i<ds_main_chemoinfo_chemolist.rowcount ; i++ ){
  2710. _pid = ds_main_chemoinfo_chemolist.getColumn(i, "pid");
  2711. _indd = ds_main_chemoinfo_chemolist.getColumn(i, "prcpdd");
  2712. _orddd = ds_main_chemoinfo_chemolist.getColumn(i, "otptorddd");
  2713. _inptcretno = ds_main_chemoinfo_chemolist.getColumn(i, "inptcretno");
  2714. _otptcretno = ds_main_chemoinfo_chemolist.getColumn(i, "otptcretno");
  2715. //alert('i: ' + i + ', _pid:' + _pid + ', tpid:' + pid
  2716. //+ ', _indd:' + _indd + ', tindd:' + indd
  2717. //+ ', _orddd:' + _orddd + ', torddd:' + orddd
  2718. //+ ', _inptcretno: ' + _inptcretno + ', _otptcretno: ' + _otptcretno + ', tcretno : ' + cretno + ', ioflag :' + ioflag );
  2719. if(_pid == pid){
  2720. if(
  2721. (ioflag == 'O' && _orddd == orddd && _otptcretno == cretno) //외래
  2722. || (ioflag == 'I' && _indd == indd && _inptcretno == cretno) //입원
  2723. || (ioflag == 'D' && _indd == indd && _inptcretno == cretno) //DSC/CHEMO
  2724. ){
  2725. retnArry += ds_main_chemoinfo_chemolist.getColumn(i, "pid") + "|"
  2726. + ds_main_chemoinfo_chemolist.getColumn(i, "rp_indd") + "|"
  2727. + ds_main_chemoinfo_chemolist.getColumn(i, "rp_cretno") + "|"
  2728. + ds_main_chemoinfo_chemolist.getColumn(i, "rp_ordtype") + "|"
  2729. + ds_main_chemoinfo_chemolist.getColumn(i, "rp_medispclid") + "|"
  2730. + ds_main_chemoinfo_chemolist.getColumn(i, "roomcd") + "|"
  2731. + ds_main_chemoinfo_chemolist.getColumn(i, "age") + "|"
  2732. + ds_main_chemoinfo_chemolist.getColumn(i, "hngnm") + "|"
  2733. + ds_main_chemoinfo_chemolist.getColumn(i, "cpgappno") + "|"
  2734. + ds_main_chemoinfo_chemolist.getColumn(i, "prtldg") + "|"
  2735. + ds_main_chemoinfo_chemolist.getColumn(i, "prcpdd") + "|"
  2736. + ds_main_chemoinfo_chemolist.getColumn(i, "sickclsnm") + "|"
  2737. + ds_main_chemoinfo_chemolist.getColumn(i, "prtlnm") + "|"
  2738. + ds_main_chemoinfo_chemolist.getColumn(i, "prtldg_d") + "|"
  2739. + ds_main_chemoinfo_chemolist.getColumn(i, "inptflag") + "|"
  2740. + ds_main_chemoinfo_chemolist.getColumn(i, "detstatus") + "|"
  2741. + ds_main_chemoinfo_chemolist.getColumn(i, "depthngnm") + "|"
  2742. + ds_main_chemoinfo_chemolist.getColumn(i, "orddrnm") + "|"
  2743. + ds_main_chemoinfo_chemolist.getColumn(i, "careinrmdd") + "|"
  2744. + ds_main_chemoinfo_chemolist.getColumn(i, "wardcd") + "|"
  2745. + ds_main_chemoinfo_chemolist.getColumn(i, "wardnm") + "▒";
  2746. break;
  2747. }
  2748. }
  2749. }
  2750. }
  2751. }
  2752. return retnArry;
  2753. }
  2754. //20091119 dhkim
  2755. //상단정보를 가져와서 메인그리드의 환자를 선택상태로 변경
  2756. function fSincMainGridTopInfo(){
  2757. var curRow = -1;
  2758. //상단정보 받아옴
  2759. var paminfo = sysf_getGlobalVariable("paminfo");
  2760. if(paminfo.length > 0){//원무정보(기본정보)가 있는 경우
  2761. //설정된 상단정보를 불러옴
  2762. ds_main_paminfo_list.clearData();
  2763. dsf_setCSVToDs("ds_main_paminfo_list", paminfo);
  2764. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  2765. ds_main_paminfo_list.addColumn("orddd", "string");
  2766. }
  2767. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  2768. ds_main_paminfo_list.addColumn("indd", "string");
  2769. }
  2770. var pid = ds_main_paminfo_list.getColumn(0, "pid");
  2771. var indd = ds_main_paminfo_list.getColumn(0, "indd");
  2772. var cretno = ds_main_paminfo_list.getColumn(0, "cretno");
  2773. var orddd = ds_main_paminfo_list.getColumn(0, "orddd");
  2774. var ioflag = ds_main_paminfo_list.getColumn(0, "ioflag");
  2775. if( !utlf_isNull(pid) ){
  2776. var _pid, _indd, _orddd, _inptcretno, _otptcretno;
  2777. for( var i=0 ; i<ds_main_chemoinfo_chemolist.rowcount ; i++ ){
  2778. _pid = ds_main_chemoinfo_chemolist.getColumn(i, "pid");
  2779. _indd = ds_main_chemoinfo_chemolist.getColumn(i, "prcpdd");
  2780. _orddd = ds_main_chemoinfo_chemolist.getColumn(i, "otptorddd");
  2781. _inptcretno = ds_main_chemoinfo_chemolist.getColumn(i, "inptcretno");
  2782. _otptcretno = ds_main_chemoinfo_chemolist.getColumn(i, "otptcretno");
  2783. //alert('i: ' + i + ', _pid:' + _pid + ', tpid:' + pid
  2784. //+ ', _indd:' + _indd + ', tindd:' + indd
  2785. //+ ', _orddd:' + _orddd + ', torddd:' + orddd
  2786. //+ ', _inptcretno: ' + _inptcretno + ', _otptcretno: ' + _otptcretno + ', tcretno : ' + cretno + ', ioflag :' + ioflag );
  2787. if(_pid == pid){
  2788. if(
  2789. (ioflag == 'O' && _orddd == orddd && _otptcretno == cretno) //외래
  2790. || (ioflag == 'I' && _indd == indd && _inptcretno == cretno) //입원
  2791. || (ioflag == 'D' && _indd == indd && _inptcretno == cretno) //DSC/CHEMO
  2792. ){
  2793. curRow = i;
  2794. break;
  2795. }
  2796. }
  2797. }
  2798. }
  2799. }
  2800. //2010.02.11 dhkim 상단삭제 주석처리
  2801. /*
  2802. //curRow가 0이면 상단정보 삭제
  2803. delPatientInfos(); //화면상단정보 삭제
  2804. setGlobalVariable("paminfo", ""); //원무정보 reset
  2805. if(getNodesetCount("/root/main/paminfo") > 0) {
  2806. model.removeNodeset("/root/main/paminfo/list");
  2807. }
  2808. */
  2809. return curRow;
  2810. }
  2811. function fInitGrid() {
  2812. model.removeNodeset("/root/main/actinginfo/actinglist"); //초기화시 그리드 1번째 row 삭제
  2813. model.removeNodeset("/root/main/chemoinfo/chemolist"); //초기화시 그리드 1번째 row 삭제
  2814. model.removeNodeset("/root/main/patdetinfo/ordrsrvinfo"); //초기화시 그리드 1번째 row 삭제
  2815. model.removeNodeset("/root/main/patdetinfo/testrsrvinfo"); //초기화시 그리드 1번째 row 삭제
  2816. model.refresh();
  2817. }
  2818. function fSetBackColor() {
  2819. // var elbulbodstat;
  2820. // for(var i = 1; i < grd_opatmngt.rows; i++) {
  2821. // elbulbodstat = model.getValue("/root/main/opatlist/opatlist[" + i + "]/elbulbodstat");
  2822. //
  2823. // if(elbulbodstat == "3") {
  2824. // grd_opatmngt.isReadOnly(i,1) = true;
  2825. // grd_opatmngt.cellstyle("background-color", i, 1, i, grd_opatmngt.cols-1) ="#FAC8C8";
  2826. //
  2827. // } else {
  2828. // grd_opatmngt.isReadOnly(i,1) = false;
  2829. // grd_opatmngt.cellstyle("background-color", i, 1, i, grd_opatmngt.cols-1) ="#FFFFF";
  2830. // }
  2831. // }
  2832. // grd_opatmngt.refresh();
  2833. }
  2834. //--------------------------------------------
  2835. // 우측마우스 팝업
  2836. //--------------------------------------------
  2837. function fShowPopupMenu(gridID, menuPath)
  2838. {
  2839. var gridObj = document.controls.item(gridID);
  2840. if(event.button == 3) {
  2841. if(gridObj.isCell(event.target) && gridObj.mouseRow >= gridObj.fixedrows){
  2842. window.setPopupMenu(true, menuPath, "name", "func", false);
  2843. }else{
  2844. window.setPopupMenu(false);
  2845. }
  2846. }
  2847. }
  2848. // --------------------------------------------------
  2849. // 출력
  2850. // --------------------------------------------------
  2851. function fprint() {
  2852. var pGrdCh = grp_biz.swt_main.case_cm.grd_chemo;
  2853. var pGrdAc = grp_biz.swt_main.case_ac.grd_acting;
  2854. // var prt_prtlinfo = "/root/main/prtlinfo";
  2855. // var prt_data = "/root/main/data";
  2856. // var prt_prtlprcpprelist = "/root/main/prtlprcpprelist";
  2857. // var prt_diaginfo = "/root/main/diaginfo";
  2858. var chemolist = ds_main_chemoinfo_chemolist;
  2859. var Actinglist = ds_main_actinginfo_actinglist;
  2860. var prtflag;
  2861. var pGrdChRow = ds_main_chemoinfo_chemolist.rowposition;
  2862. //체크
  2863. if( ds_main_chemoinfo_chemolist.rowcount < 1 ) return;
  2864. if( ds_main_actinginfo_actinglist.rowcount < 1 ) return;
  2865. //초기화
  2866. var xPathSendReqdata = ds_send_reqdata;
  2867. ds_send_reqdata.clearData();
  2868. ds_send_reqdata.addRow();
  2869. ds_temp_detailprint_prtlinfo.clearData();
  2870. ds_temp_detailprint_data.clearData();
  2871. ds_temp_detailprint_prcplist.clearData();
  2872. ds_temp_detailprint_diagcdlist.clearData();
  2873. // model.removeNodeset(prt_prtlinfo);
  2874. // model.removeNodeset(prt_data);
  2875. // model.removeNodeset(prt_prtlprcpprelist);
  2876. // model.removeNodeset(prt_diaginfo);
  2877. var chemolist = ds_main_chemoinfo_chemolist;
  2878. var pGrdChRow = ds_main_chemoinfo_chemolist.rowposition;
  2879. if( utlf_isNull(ds_send_reqdata.getColumnInfo("pid")) ){
  2880. ds_send_reqdata.addColumn("pid", "string");
  2881. }
  2882. if( utlf_isNull(ds_send_reqdata.getColumnInfo("indd")) ){
  2883. ds_send_reqdata.addColumn("indd", "string");
  2884. }
  2885. if( utlf_isNull(ds_send_reqdata.getColumnInfo("prtflag")) ){
  2886. ds_send_reqdata.addColumn("prtflag", "string");
  2887. }
  2888. ds_send_reqdata.setColumn(0, "prcpdd", ""); //model.getValue(chemolist + "["+ pGrdChRow + "]/prcpdd") );
  2889. ds_send_reqdata.setColumn(0, "pid", ds_main_chemoinfo_chemolist.getColumn(pGrdChRow, "pid") );
  2890. ds_send_reqdata.setColumn(0, "indd", ds_main_chemoinfo_chemolist.getColumn(pGrdChRow, "inptindd") );
  2891. ds_send_reqdata.setColumn(0, "cpgappno", ds_main_chemoinfo_chemolist.getColumn(pGrdChRow, "cpgappno") );
  2892. ds_send_reqdata.setColumn(0, "prtflag", "Y");
  2893. var oParam = {};
  2894. oParam.id = "TRMNI02008";
  2895. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  2896. oParam.method = "reqGetPrintQuery";
  2897. oParam.inds = "reqdata=ds_send_reqdata";
  2898. oParam.outds = "ds_temp_detailprint_prtlinfo=prtlinfo ds_temp_detailprint_data=data ds_temp_detailprint_prcplist=prcplist ds_temp_detailprint_diagcdlist=diagcdlist";
  2899. oParam.async = false;
  2900. oParam.callback = "cf_TRMNI02008";
  2901. tranf_submit(oParam);
  2902. if( arErrorCode.pop("TRMNI02008") > -1 ){
  2903. }else{}
  2904. //alert('처방코드 : ' + model.getValue("/root/temp/detailprint/prcplist[2]/prcpcd"));
  2905. var datacnt = ds_temp_detailprint_prcplist;
  2906. if( ds_temp_detailprint_prcplist.rowcount > 0 ){
  2907. ds_main_prtlinfo.clearData();
  2908. ds_main_data.clearData();
  2909. ds_main_prtlprcpprelist_prcplist.clearData();
  2910. ds_main_diaginfo_diagcdlist.clearData();
  2911. ds_main_prtlinfo.copyData(ds_temp_detailprint_prtlinfo);
  2912. ds_main_data.copyData(ds_temp_detailprint_data);
  2913. ds_main_diaginfo_diagcdlist.copyData(ds_temp_detailprint_diagcdlist);
  2914. if( ds_main_data.rowcount < 1 ){
  2915. ds_main_data.addRow();
  2916. }
  2917. if( utlf_isNull(ds_main_data.getColumnInfo("disp1")) ){
  2918. ds_main_data.addColumn("disp1", "string");
  2919. }
  2920. if( utlf_isNull(ds_main_data.getColumnInfo("disp2")) ){
  2921. ds_main_data.addColumn("disp2", "string");
  2922. }
  2923. if( utlf_isNull(ds_main_data.getColumnInfo("disp3")) ){
  2924. ds_main_data.addColumn("disp3", "string");
  2925. }
  2926. ds_main_data.setColumn(0, "disp1" , ds_main_chemoinfo_chemolist.getColumn(pGrdChRow, "disp1")); // 15.02.06 - AYS 추가
  2927. ds_main_data.setColumn(0, "disp2" , ds_main_chemoinfo_chemolist.getColumn(pGrdChRow, "disp2"));
  2928. ds_main_data.setColumn(0, "disp3" , ds_main_chemoinfo_chemolist.getColumn(pGrdChRow, "disp3"));
  2929. ds_main_prtlprcpprelist_prcplist.copyData(ds_temp_detailprint_prcplist);
  2930. ds_main_prtlprcpprelist_prcplist.clearData();
  2931. for( var idx=0 ; idx<ds_temp_detailprint_prcplist.rowcount ; idx++ ){
  2932. var nRow = ds_main_prtlprcpprelist_prcplist.addRow();
  2933. ds_main_prtlprcpprelist_prcplist.copyRow(nRow, ds_temp_detailprint_prcplist, idx);
  2934. }
  2935. //출력
  2936. //첫번째 true : 출력여부
  2937. //두번째 true : 미리보기 닫기여부
  2938. //exeReportPreview("RPADB01011", "XMLSTR", "", "", "true","","","","","true", "", "");
  2939. /* 190228_AYS_백업
  2940. ds_temp_detailprint_prcplist.filter("prnprcpflag == 'N'");
  2941. // 141203 - AYS 추가
  2942. if( ds_main_cond.getColumn(0, "chk_printoption") == 'Y' ){
  2943. var objDOM = rptf_createDOM(); // DOM 객체 설정
  2944. //rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_main_prtlprcpprelist_prcplist); // 데이터셋 1
  2945. //rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_temp_detailprint_prcplist.filter("prnprcpflag == 'N'")); // 데이터셋 1
  2946. rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_temp_detailprint_prcplist); // 데이터셋 1
  2947. rptf_setNodeListToDOM(objDOM, "root/main1/data", ds_main_data); // 데이터셋 1
  2948. rptf_setNodeListToDOM(objDOM, "root/main1/diaginfo/diagcdlist", ds_main_diaginfo_diagcdlist); // 데이터셋 1
  2949. rptf_setNodeListToDOM(objDOM, "root/main1/prtlinfo", ds_main_prtlinfo); // 데이터셋 1
  2950. var objParam = new Object();
  2951. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2952. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  2953. rptf_exeReportPreview30(["RPADB01015"],[objParam], option);
  2954. //exeReportPreview("RPADB01015", "XMLSTR", "", "", "true","","","","","", "", "");
  2955. //ds_temp_detailprint_prcplist.filter("");
  2956. } else {
  2957. var objDOM = rptf_createDOM(); // DOM 객체 설정
  2958. //rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_main_prtlprcpprelist_prcplist); // 데이터셋 1
  2959. //rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_temp_detailprint_prcplist.filter("prnprcpflag == 'N'")); // 데이터셋 1
  2960. rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_temp_detailprint_prcplist); // 데이터셋 1
  2961. rptf_setNodeListToDOM(objDOM, "root/main1/data", ds_main_data); // 데이터셋 1
  2962. rptf_setNodeListToDOM(objDOM, "root/main1/diaginfo/diagcdlist", ds_main_diaginfo_diagcdlist); // 데이터셋 1
  2963. rptf_setNodeListToDOM(objDOM, "root/main1/prtlinfo", ds_main_prtlinfo); // 데이터셋 1
  2964. var objParam = new Object();
  2965. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2966. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  2967. rptf_exeReportPreview30(["RPADB01013"],[objParam], option);
  2968. //exeReportPreview("RPADB01013", "XMLSTR", "", "", "true","","","","","", "", "");
  2969. //ds_temp_detailprint_prcplist.filter("");
  2970. }
  2971. ds_temp_detailprint_prcplist.filter("");
  2972. ds_main_prtlprcpprelist_prcplist.clearData();
  2973. ds_main_data.clearData();
  2974. ds_main_diaginfo_diagcdlist.clearData();
  2975. ds_main_prtlinfo.clearData();
  2976. */
  2977. //190228_AYS_원래대로_원복
  2978. //출력
  2979. //첫번째 true : 출력여부
  2980. //두번째 true : 미리보기 닫기여부
  2981. //exeReportPreview("RPADB01011", "XMLSTR", "", "", "true","","","","","true", "", "");
  2982. // 141203 - AYS 추가
  2983. if( ds_main_cond.getColumn(0, "chk_printoption") == 'Y' ){
  2984. var objDOM = rptf_createDOM(); // DOM 객체 설정
  2985. rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_main_prtlprcpprelist_prcplist); // 데이터셋 1
  2986. rptf_setNodeListToDOM(objDOM, "root/main1/data", ds_main_data); // 데이터셋 1
  2987. rptf_setNodeListToDOM(objDOM, "root/main1/diaginfo/diagcdlist", ds_main_diaginfo_diagcdlist); // 데이터셋 1
  2988. rptf_setNodeListToDOM(objDOM, "root/main1/prtlinfo", ds_main_prtlinfo); // 데이터셋 1
  2989. var objParam = new Object();
  2990. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2991. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  2992. rptf_exeReportPreview30(["RPADB01015"],[objParam], option);
  2993. //exeReportPreview("RPADB01015", "XMLSTR", "", "", "true","","","","","", "", "");
  2994. } else {
  2995. var objDOM = rptf_createDOM(); // DOM 객체 설정
  2996. rptf_setNodeListToDOM(objDOM, "root/main1/prtlprcpprelist/prcplist", ds_main_prtlprcpprelist_prcplist); // 데이터셋 1
  2997. rptf_setNodeListToDOM(objDOM, "root/main1/data", ds_main_data); // 데이터셋 1
  2998. rptf_setNodeListToDOM(objDOM, "root/main1/diaginfo/diagcdlist", ds_main_diaginfo_diagcdlist); // 데이터셋 1
  2999. rptf_setNodeListToDOM(objDOM, "root/main1/prtlinfo", ds_main_prtlinfo); // 데이터셋 1
  3000. var objParam = new Object();
  3001. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3002. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  3003. rptf_exeReportPreview30(["RPADB01013"],[objParam], option);
  3004. //exeReportPreview("RPADB01013", "XMLSTR", "", "", "true","","","","","", "", "");
  3005. }
  3006. ds_main_prtlprcpprelist_prcplist.clearData();
  3007. ds_main_data.clearData();
  3008. ds_main_diaginfo_diagcdlist.clearData();
  3009. ds_main_prtlinfo.clearData();
  3010. } else {
  3011. sysf_messageBox("출력할 자료가 ","I004");
  3012. }
  3013. /* (20080121)이전
  3014. //초기화
  3015. model.removeNodeset(prt_data);
  3016. model.removeNodeset(prt_prtlprcpprelist);
  3017. //data instance 생성
  3018. model.makeNode(prt_data);
  3019. model.makeValue(prt_data + "/ht" , model.getValue(chemolist + "["+ pGrdChRow + "]/ht"));
  3020. model.makeValue(prt_data + "/wt" , model.getValue(chemolist + "["+ pGrdChRow + "]/wt"));
  3021. model.makeValue(prt_data + "/ibw" , model.getValue(chemolist + "["+ pGrdChRow + "]/ibw"));
  3022. model.makeValue(prt_data + "/bsa" , model.getValue(chemolist + "["+ pGrdChRow + "]/bsa"));
  3023. model.makeValue(prt_data + "/age" , model.getValue(chemolist + "["+ pGrdChRow + "]/age"));
  3024. model.makeValue(prt_data + "/sc" , model.getValue(chemolist + "["+ pGrdChRow + "]/sc"));
  3025. model.makeValue(prt_data + "/urvol" , model.getValue(chemolist + "["+ pGrdChRow + "]/urvol"));
  3026. model.makeValue(prt_data + "/urcr" , model.getValue(chemolist + "["+ pGrdChRow + "]/urcr"));
  3027. model.makeValue(prt_data + "/auc" , model.getValue(chemolist + "["+ pGrdChRow + "]/auc"));
  3028. model.makeValue(prt_data + "/carbovol" , model.getValue(chemolist + "["+ pGrdChRow + "]/carbovol"));
  3029. model.makeValue(prt_data + "/gfrflag" , model.getValue(chemolist + "["+ pGrdChRow + "]/gfrflag"));
  3030. model.makeValue(prt_data + "/gfr" , model.getValue(chemolist + "["+ pGrdChRow + "]/gfr"));
  3031. model.makeValue(prt_data + "/sexrate" , model.getValue(chemolist + "["+ pGrdChRow + "]/sexrate"));
  3032. model.makeValue(prt_data + "/wtflag" , model.getValue(chemolist + "["+ pGrdChRow + "]/wtflag"));
  3033. model.makeValue(prt_data + "/prtlnm" , model.getValue(chemolist + "["+ pGrdChRow + "]/prtlnm"));
  3034. model.makeValue(prt_data + "/pid" , model.getValue(chemolist + "["+ pGrdChRow + "]/pid"));
  3035. model.makeValue(prt_data + "/hngnm" , model.getValue(chemolist + "["+ pGrdChRow + "]/hngnm"));
  3036. //prtlprcpprelist instance 생성
  3037. prtflag = false;
  3038. model.makeNode(prt_prtlprcpprelist);
  3039. prt_prtlprcpprelist = prt_prtlprcpprelist + "/prcplist";
  3040. var cnt=0;
  3041. for (var row=1;row<pGrdAc.rows;row++) {
  3042. //선택하지 않은 자료는 거른다.
  3043. var chkflag = model.getValue(Actinglist + "["+row+"]/chk");
  3044. if( chkflag != "true" ) continue;
  3045. prtflag = true;
  3046. model.makeNode(prt_prtlprcpprelist);
  3047. cnt ++;
  3048. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prtldgnm" , model.getValue(Actinglist + "["+ row + "]/prtldgnm"));
  3049. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugseq" , model.getValue(Actinglist + "["+ row + "]/drugseq"));
  3050. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugtt" , model.getValue(Actinglist + "["+ row + "]/drugtt"));
  3051. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpmixno" , model.getValue(Actinglist + "["+ row + "]/prcpmixno"));
  3052. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpcd" , model.getValue(Actinglist + "["+ row + "]/prcpcd"));
  3053. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpnm" , model.getValue(Actinglist + "["+ row + "]/prcpnm"));
  3054. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/payflagcd" , model.getValue(Actinglist + "["+ row + "]/payflagcd"));
  3055. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/volkind" , model.getValue(Actinglist + "["+ row + "]/volkind"));
  3056. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/bsavol" , model.getValue(Actinglist + "["+ row + "]/bsavol"));
  3057. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/kgvol" , model.getValue(Actinglist + "["+ row + "]/kgvol"));
  3058. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpvol" , model.getValue(Actinglist + "["+ row + "]/prcpvol"));
  3059. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpvolunitnm" , model.getValue(Actinglist + "["+ row + "]/prcpvolunitnm"));
  3060. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpqty" , model.getValue(Actinglist + "["+ row + "]/prcpqty"));
  3061. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpqtyunitnm" , model.getValue(Actinglist + "["+ row + "]/prcpqtyunitnm"));
  3062. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugspd" , model.getValue(Actinglist + "["+ row + "]/drugspd"));
  3063. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugspdunitnm" , model.getValue(Actinglist + "["+ row + "]/drugspdunitnm"));
  3064. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcptims" , model.getValue(Actinglist + "["+ row + "]/prcptims"));
  3065. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugmthdspccd" , model.getValue(Actinglist + "["+ row + "]/drugmthdspccd"));
  3066. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/drugmthdspccdnm" , model.getValue(Actinglist + "["+ row + "]/drugmthdspccdnm"));
  3067. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prnprcpflag" , model.getValue(Actinglist + "["+ row + "]/prnprcpflag"));
  3068. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/remark" , model.getValue(Actinglist + "["+ row + "]/remark"));
  3069. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/nursrem" , model.getValue(Actinglist + "["+ row + "]/nursrem"));
  3070. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prcpexecdeptcd" , model.getValue(Actinglist + "["+ row + "]/prcpexecdeptcd"));
  3071. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/ordseqno" , model.getValue(Actinglist + "["+ row + "]/ordseqno"));
  3072. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/volrate" , model.getValue(Actinglist + "["+ row + "]/volrate"));
  3073. model.makeValue(prt_prtlprcpprelist + "["+ cnt + "]/prtlkind" , model.getValue(Actinglist + "["+ row + "]/prtlkind"));
  3074. }
  3075. if ( prtflag == false) {
  3076. alert("출력할 자료가 존재하지 않습니다");
  3077. return;
  3078. }
  3079. */
  3080. }
  3081. function cf_TRMNI02008(sSvcId, nErrorCode, sErrorMsg) {
  3082. arErrorCode.push(sSvcId, nErrorCode);
  3083. }
  3084. /* --------------------------------------------------*/
  3085. /* type : function */
  3086. /* access : public */
  3087. /* desc : 항암 스케쥴 조회 팝업 */
  3088. /* param : */
  3089. /* return : */
  3090. /* --------------------------------------------------*/
  3091. function fScheProtocolPopUp() {
  3092. var objArg = new Object();
  3093. objArg.arg_ds_hidden_antisch = ds_hidden_antisch;
  3094. frmf_modal("SMADB01020","SMADB01020",objArg,"","","","","","","","","","M");
  3095. }
  3096. /* --------------------------------------------------*/
  3097. /* type : function */
  3098. /* access : public */
  3099. /* desc : 팝업 메뉴 */
  3100. /* param : */
  3101. /* return : */
  3102. /* --------------------------------------------------*/
  3103. function fShowPopup(pData){
  3104. var PopupName = "퇴실정리 #";
  3105. var PopupNm = PopupName.split("#");
  3106. var Idx = Number(pData);
  3107. var sPath = "/root/main/opPatlist/opPatInfo";
  3108. fSetPatInfo_chemo();// 상단정보 올리기
  3109. switch(Idx) {
  3110. case 1://퇴실정리
  3111. fdschSave('grid');
  3112. //open("SMMNI02010", "", "100", "100", "SMMNI02010", "", "");
  3113. break;
  3114. case 2://2010.02.10 dhkim 추가-환자라벨출력
  3115. fOpenLabelPrint_SMMNI02000();
  3116. break;
  3117. case 3://2011.03.08 이경민 추가-환자팔찌출력
  3118. fSetIntime();
  3119. break;
  3120. case 4://2013.12.09 KJS 의사변경
  3121. fChngInptDr();
  3122. break;
  3123. case 5:// 환자기초정보
  3124. fPatInfo1();
  3125. break;
  3126. case 6:// 안전사고보고작성
  3127. fPatQi_QM();
  3128. break;
  3129. case 7:// 의사 메모 호출
  3130. fEmrMemo();
  3131. break;
  3132. default :
  3133. break;
  3134. }
  3135. }
  3136. //2010.02.10 dhkim 추가
  3137. //환자라벨출력
  3138. function fOpenLabelPrint_SMMNI02000(){
  3139. ds_main.setColumn(0, "cmpatprtcnt", "1");
  3140. grp_biz.swt_main.case_cm.grp_prtlabel.visible = true;
  3141. grp_biz.swt_main.case_cm.grp_prtlabel.ipt_cmpatprtcnt.setFocus();
  3142. }
  3143. //2010.02.10 dhkim 추가
  3144. //라벨출력실행
  3145. function fPrintLabel_SMMNI02000(prtflag){
  3146. var pid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  3147. var patnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "hngnm");
  3148. var sexage = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "age");
  3149. var rgstno = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "rgstno");
  3150. var orddd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "rp_indd");
  3151. var roomcd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "depthngnm");
  3152. var deptnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "roomcd");
  3153. var prtcnt = ds_main.getColumn(0, "cmpatprtcnt");
  3154. if(prtflag == "IN"){
  3155. prtcnt = "1";
  3156. }
  3157. if(prtflag != "IN"){
  3158. var paminfo = sysf_getGlobalVariable("paminfo");
  3159. if(paminfo.length > 0){//원무정보(기본정보)가 있는경우
  3160. trace("paminfo in");
  3161. //설정된 상단정보를 불러옴
  3162. ds_main_paminfo_list.clearData();
  3163. dsf_setCSVToDs("ds_main_paminfo_list", paminfo);
  3164. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  3165. ds_main_paminfo_list.addColumn("orddd", "string");
  3166. }
  3167. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  3168. ds_main_paminfo_list.addColumn("indd", "string");
  3169. }
  3170. var rgstno1 = ds_main_paminfo_list.getColumn(0, "rrgstno1");
  3171. var rgstno2 = ds_main_paminfo_list.getColumn(0, "rrgstno2");
  3172. trace("rgstno1 : " + rgstno1);
  3173. trace("rgstno2 : " + rgstno2);
  3174. rgstno = rgstno1 + "-" + rgstno2.substring(0, 1) + "******"
  3175. }
  3176. }
  3177. // 환자 정보 라벨 출력
  3178. if(prtcnt > 0){
  3179. //1. 바코드 라벨 설정값 조회
  3180. var scrnid = "SMMNR00600";
  3181. ds_main_barcdprntsetup.clearData();
  3182. ds_send.clearData();
  3183. ds_send.addRow();
  3184. ds_send.setColumn(0, "scrnid", scrnid);
  3185. var oParam = {};
  3186. oParam.id = "TRLLC90101";
  3187. oParam.service = "diagtestapplib.LisCommon";
  3188. oParam.method = "reqGetSetUpInfo";
  3189. oParam.inds = "scrnid=ds_send";
  3190. oParam.outds = "ds_main_barcdprntsetup=getSetUpInfo";
  3191. oParam.async = false;
  3192. //oParam.callback = "cf_TRLLC90101";
  3193. tranf_submit(oParam);
  3194. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  3195. //XML string 값을 파라미터로 넘김
  3196. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  3197. var sParamObj = new Object();
  3198. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  3199. var pXmlStr = ds_main_barcdprntsetup.getColumn(0, "prntsetupinfo");
  3200. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  3201. sysf_trace(succYn);
  3202. // => retrun DS
  3203. // : ds_data_setupinfo(prntkind, commkind)
  3204. // : ds_data_comm01(setupval)
  3205. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  3206. // : ds_data_comm03(setupval)
  3207. // : ds_data_blank(left, top)
  3208. // ------------------------------------------------------------------------------------------------------------
  3209. //2. 바코드 라벨 환경설정
  3210. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  3211. lzzfMakeBrcdPrntObjHanDo("CommAX", barcdRef);
  3212. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  3213. //3. 환자라벨출력
  3214. //fPrtCarePatNameLabel(barcdRef, pid, roomcd, patnm, sexage, rgstno, orddd, prtcnt, portOpenTF);
  3215. frmf_setParameter("barcdRef", barcdRef);
  3216. frmf_setParameter("pid", pid);
  3217. frmf_setParameter("roomcd", roomcd);
  3218. frmf_setParameter("patnm", patnm);
  3219. frmf_setParameter("sexage", sexage);
  3220. frmf_setParameter("rgstno", rgstno);
  3221. frmf_setParameter("orddd", orddd);
  3222. frmf_setParameter("orddeptnm", deptnm);
  3223. frmf_setParameter("prtcnt", prtcnt);
  3224. frmf_setParameter("portOpenTF", portOpenTF);
  3225. frmf_modal("SPMNZ00700","SPMNZ00700","","","","","","","","","","","M");
  3226. }
  3227. if(prtflag != "IN"){
  3228. grp_biz.swt_main.case_cm.grp_prtlabel.visible = false;
  3229. }
  3230. }
  3231. // --------------------------------------------------
  3232. // 입실시각 적용(환자팔찌출력)
  3233. // --------------------------------------------------
  3234. //2011.03.08 이경민 추가
  3235. function fSetIntime()
  3236. {
  3237. var pRow = ds_main_chemoinfo_chemolist.rowposition;
  3238. var sPath = "/root/main/chemoinfo/chemolist["+pRow+"]";
  3239. var calcdd = ds_main_chemoinfo_chemolist.getColumn(pRow, "calcdd");
  3240. if( utlf_isNull(calcdd) ){
  3241. sysf_messageBox("입실 환자가 아닙니다.", "E999", "");
  3242. return;
  3243. }
  3244. var rcptyn = ds_main_chemoinfo_chemolist.getColumn(pRow, "rcptyn");
  3245. if(rcptyn == 'Y'){
  3246. sysf_messageBox("이미 퇴실처리된 환자입니다.", "E999", "");
  3247. return;
  3248. }
  3249. ds_main_chemoinfo_chemolist.setColumn(pRow, "calcdd", utlf_getCurrentDate()+""+utlf_getCurrentTime().substring(0,4));
  3250. fOpenPatBC();
  3251. }
  3252. // --------------------------------------------------
  3253. // 환자팔찌 재출력
  3254. // --------------------------------------------------
  3255. //2011.03.08 이경민 추가
  3256. function fOpenPatBC(flag)
  3257. {
  3258. var pRow = ds_main_chemoinfo_chemolist.rowposition;
  3259. var sPath = "/root/main/chemoinfo/chemolist["+pRow+"]/";
  3260. //20080905 추가
  3261. //port정보 가져오기
  3262. ds_send.clearData();
  3263. ds_send.addRow();
  3264. ds_main_barcdprntsetup.clearData();
  3265. ds_send.setColumn(0, "scrnid", 'SMMNI02000');
  3266. var comport = '1';
  3267. var oParam = {};
  3268. oParam.id = "TRLLC90101";
  3269. oParam.service = "diagtestapplib.LisCommon";
  3270. oParam.method = "reqGetSetUpInfo";
  3271. oParam.inds = "scrnid=ds_send";
  3272. oParam.outds = "ds_main_barcdprntsetup=getSetUpInfo";
  3273. oParam.async = false;
  3274. oParam.callback = "cf_TRLLC90101";
  3275. tranf_submit(oParam);
  3276. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  3277. //XML string 값을 파라미터로 넘김
  3278. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  3279. var sParamObj = new Object();
  3280. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  3281. var pXmlStr = ds_main_barcdprntsetup.getColumn(0, "prntsetupinfo");
  3282. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  3283. sysf_trace(succYn);
  3284. // => retrun DS
  3285. // : ds_data_setupinfo(prntkind, commkind)
  3286. // : ds_data_comm01(setupval)
  3287. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  3288. // : ds_data_comm03(setupval)
  3289. // : ds_data_blank(left, top)
  3290. // ------------------------------------------------------------------------------------------------------------
  3291. if( arErrorCode.pop("TRLLC90101") > -1 ){
  3292. if( !utlf_isNull(this.object["ds_data_comm02"]) && ds_data_comm02.rowcount > 0 ){
  3293. comport = ds_data_comm02.getColumn(0, "comm");
  3294. }else{
  3295. comport = "";
  3296. }
  3297. }
  3298. // 바코드 라벨 환경설정
  3299. lzzfMakeBrcdPrntObjHanDo("CommAX");
  3300. // 환자정보 상단으로..
  3301. if( utlf_isNull(flag) ){
  3302. fSetPatInfo_chemo();
  3303. }
  3304. //설정된 상단정보를 불러옴
  3305. ds_main_paminfo_list.clearData(); //노드초기화가없으면 처음 선택한 환자만 출
  3306. var node = sysf_getGlobalVariable("paminfo");
  3307. dsf_setCSVToDs("ds_main_paminfo_list", node);
  3308. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  3309. ds_main_paminfo_list.addColumn("orddd", "string");
  3310. }
  3311. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  3312. ds_main_paminfo_list.addColumn("indd", "string");
  3313. }
  3314. var pid, indd, cretno, mskind, histstat;
  3315. //patinfo 정보 셋팅
  3316. pid = ds_main_paminfo_list.getColumn(0, "pid");
  3317. indd = ds_main_paminfo_list.getColumn(0, "indd");
  3318. cretno = ds_main_paminfo_list.getColumn(0, "cretno");
  3319. mskind = ds_main_paminfo_list.getColumn(0, "mskind");
  3320. histstat = ds_main_paminfo_list.getColumn(0, "histstat");
  3321. /* 삭제된 파라미터 : pPort - COM Port 지정값
  3322. * 추가된 파라미터 : pSetyn - 프린터설정정보 셋팅여부
  3323. * pScrid - 프린터설정정보 조회용 화면 아이디
  3324. * pBarcdRef - 설정정보 xpath
  3325. */
  3326. lf_pmifPrintBarCode(pid, indd, cretno, mskind, histstat, "N", "SMMNI02000", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); // 20090527 변경됨.
  3327. }
  3328. function cf_TRLLC90101(sSvcId, nErrorCode, sErrorMsg) {
  3329. arErrorCode.push(sSvcId, nErrorCode);
  3330. }
  3331. //2010.02.10 dhkim 추가
  3332. function fCancelPrint_SMMNI02000(){
  3333. ds_main.setColumn(0, "cmpatprtcnt", "1");
  3334. grp_biz.swt_main.case_cm.grp_prtlabel.visible = false;
  3335. }
  3336. //-----------------------------------------
  3337. // chemo 퇴실 취소(20081006)
  3338. //-----------------------------------------
  3339. function fOutCancel() {
  3340. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  3341. var sPath = ds_main_chemoinfo_chemolist;
  3342. if( ds_main_chemoinfo_chemolist.rowposition < 0 ){
  3343. sysf_messageBox("자료가 선택되지 않았습니다.", "E999", "");
  3344. return;
  3345. }
  3346. var jPid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  3347. var jIndd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "inptindd");
  3348. var jCretno = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "inptcretno");
  3349. ds_send_judginfo.setColumn(0, "pid", jPid);
  3350. ds_send_judginfo.setColumn(0, "indd", jIndd);
  3351. ds_send_judginfo.setColumn(0, "cretno", jCretno);
  3352. var oParam = {};
  3353. oParam.id = "TRMNE00113";
  3354. oParam.service = "ercareapp.ERInRmOutRmMngt";
  3355. oParam.method = "reqGetJudgStat";
  3356. oParam.inds = "req=ds_send_judginfo";
  3357. oParam.outds = "ds_judginfo=judginfo";
  3358. oParam.async = false;
  3359. //oParam.callback = "cf_TRMNE00113";
  3360. tranf_submit(oParam);
  3361. var jJudginfo = ds_judginfo.getColumn(0, "dschjudgprcsstat");
  3362. if (jJudginfo != "A") {
  3363. sysf_messageBox(" 심사상태를 해제하고 퇴실취소를 진행하세요.\r\n\r\n" +
  3364. "※ 일과시간 중 - 심사실로 연락, 일과시간 외 - 응급수납으로 연락", "E999");
  3365. return;
  3366. }
  3367. var detstatus = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "detstatus");
  3368. //20081219 dhkim
  3369. //수납여부, 퇴실시간 추가
  3370. var rcptyn = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "rcptyn");
  3371. var dschnotidd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "dschnotidd");
  3372. //alert(detstatus+ "/"+detstatus.indexOf('간호퇴원확정'));
  3373. //20081208 dhkim 명칭변경 주석처리
  3374. //if (detstatus.indexOf('간호퇴원확정') == -1 ) {
  3375. //20081208 dhkim 명칭변경
  3376. if (detstatus == 'ⓒ' || (detstatus == '◆' && !utlf_isNull(dschnotidd)) ){
  3377. //20081218 dhkim
  3378. //6시간미만 환자의 경우 심사를 거치지 않고 바로 퇴원수납을 하는 경우가 존재함(안과의경우만해당)
  3379. //그리하여 퇴원수납여부를 체크해 퇴원수납된 환자의 경우 퇴실취소를 하지 못하도록 blocking처리 추가
  3380. if(rcptyn == 'Y'){
  3381. sysf_messageBox("이미 퇴원수납된 환자입니다.\r\n원무팀에 퇴원수납취소를 요청하신 후\r\n간호퇴실취소를 진행 하십시오.", "E999", "");
  3382. return;
  3383. }
  3384. //20081219 dhkim
  3385. //오늘일자환자가 아니면 취소불가
  3386. var indd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "calcdd");
  3387. if(indd != utlf_getCurrentDate()){
  3388. sysf_messageBox("입원일이 오늘인 환자만 간호퇴실취소 할 수 있습니다.", "E999", "");
  3389. return;
  3390. }
  3391. if (sysf_messageBox("간호퇴원확정 취소 ",'Q003',"") != 6) return;
  3392. var sHeader = "status▦careinrmdd▦pid▦indd▦cretno▦seqno▦cpgappno▩";
  3393. var sData = "u" +
  3394. "▦" +
  3395. "▦" + ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "inptpid") +
  3396. "▦" + ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "inptindd") +
  3397. "▦" + ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "inptcretno") +
  3398. "▦" + ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "cpgappno") + "▩";
  3399. //--------(20081006)
  3400. //alert(sData);
  3401. ds_send.clearData();
  3402. ds_send.addRow();
  3403. dsf_setCSVToDs("ds_send_chemoList", sHeader + sData);
  3404. var oParam = {};
  3405. oParam.id = "TXMNI02015";
  3406. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  3407. oParam.method = "reqExeChemoInOutInfOutCancel";
  3408. oParam.inds = "chemoList=ds_send_chemoList";
  3409. oParam.outds = "";
  3410. oParam.async = false;
  3411. oParam.callback = "cf_TXMNI02015";
  3412. tranf_submit(oParam);
  3413. if( arErrorCode.pop("TXMNI02015") > -1 ){
  3414. fInqurySelectedPrgm(); // 조회
  3415. }
  3416. } else {
  3417. sysf_messageBox("해당환자는 간호퇴실취소할 수 있는 상태가 아닙니다.", "E999", "");
  3418. return;
  3419. }
  3420. }
  3421. function cf_TXMNI02015(sSvcId, nErrorCode, sErrorMsg) {
  3422. arErrorCode.push(sSvcId, nErrorCode);
  3423. }
  3424. //환자카드출력
  3425. //2010.02.01 dhkim 파라미터값 추가
  3426. function fPreview(prt_pid, prt_hngnm, prt_sexage, prt_depthngnm, prt_orddrnm, prt_prtlnm, prt_instcd, prt_method,prt_prtldg_d){
  3427. //model.removeNodeset("/root/hidden1/actingbasicinfo"); //그리드미리보기하려고
  3428. //model.makeNode("/root/hidden1/actingbasicinfo");
  3429. //model.copyNode("/root/hidden1/actingbasicinfo", "/root/main/actingbasicinfo");
  3430. /*
  3431. model.resetInstanceNode("/root/hidden1/actingbasicinfo");
  3432. model.refresh();
  3433. model.copyNode("/root/hidden1/actingbasicinfo", "/root/main/actingbasicinfo");
  3434. model.refresh();
  3435. */
  3436. //2010.02.01 dhkim - 노드copy를 parameter세팅으로 변경
  3437. var pid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  3438. var hngnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "hngnm");
  3439. var sexage = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "age");
  3440. var depthngnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "depthngnm");
  3441. var orddrnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "orddrnm");
  3442. var prtlnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtlnm");
  3443. var instcd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "instcd");
  3444. var instcd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "instcd");
  3445. var methodd = ds_main_cond.getColumn(0, "method");
  3446. var prtldg_d = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtldg_d");
  3447. //2017.11.02_본원항암주사실 입실 저장시 환자 이름표 출력시 그리드 제일 윗환자가 출력되는 오류 수정
  3448. //if( grp_biz.swt_main.case_cm.grd_chemo.currentrow < 0 ){
  3449. if( !utlf_isNull(prt_pid) ) {
  3450. pid = prt_pid;
  3451. hngnm = prt_hngnm;
  3452. sexage = prt_sexage;
  3453. depthngnm = prt_depthngnm;
  3454. orddrnm = prt_orddrnm;
  3455. prtlnm = prt_prtlnm;
  3456. instcd = prt_instcd;
  3457. methodd = prt_method;
  3458. prtldg_d = prt_prtldg_d;
  3459. }
  3460. //2010.06.11 김달현 - (요청번호14176) [JCI인증대비] 이름 석자 중 가운데 자리는 별표 처리되도록 수정 요청함
  3461. /*20110425_KNUH_Start *없앰 주석처리함..
  3462. if(hngnm.length > 1){
  3463. hngnm = hngnm.substring(0, 1) + "*" + hngnm.substring(2);
  3464. }*/
  3465. var str = sexage.split('/');
  3466. ds_hidden1_actingbasicinfo.setColumn(0, "disp_pid", pid);
  3467. ds_hidden1_actingbasicinfo.setColumn(0, "disp_patnm", hngnm);
  3468. ds_hidden1_actingbasicinfo.setColumn(0, "disp_sex", str[0]);
  3469. ds_hidden1_actingbasicinfo.setColumn(0, "disp_age", str[1]);
  3470. ds_hidden1_actingbasicinfo.setColumn(0, "disp_depthngnm", depthngnm);
  3471. ds_hidden1_actingbasicinfo.setColumn(0, "disp_orddrnm", orddrnm);
  3472. ds_hidden1_actingbasicinfo.setColumn(0, "prtlnm", prtlnm);
  3473. ds_hidden1_actingbasicinfo.setColumn(0, "instcd", instcd);
  3474. ds_hidden1_actingbasicinfo.setColumn(0, "method", methodd);
  3475. ds_hidden1_actingbasicinfo.setColumn(0, "prtldg_d", prtldg_d);
  3476. var rid = "RPMNI02000"; // 레포트명
  3477. var dataType = "XMLSTR"; // 연계방법(XMLSTR/ XMLFILE/ XML)
  3478. var paramsXPath = "/root/hidden1/actingbasicinfo"; // 매개변수필드 XPath
  3479. var submitId = ""; // SubmitID
  3480. var print = "true"; // 출력여부(true, false)
  3481. var printDialog = ""; // 인쇄 창 보임 여부(true, false)
  3482. var fileType = ""; // 저장타입(xls/ pdf/ hml/rtf/ html/ bmp/ txt/ xml )
  3483. var fileName = ""; // 파일명(c:\report\레포트명.저장타입)
  3484. var fileDialog = ""; // 파일 저장 창 보임여부(0 : 숨김[기본]/1 : 보임)
  3485. var closeYn = "true"; // 미리보기창닫기여부(출력 후 true로 설정한 경우 미리보기 화면 닫기)
  3486. var monNo = ""; // 모니터 번호
  3487. var parentObjId = ""; // 부모객체명(미리 생성한 부모 객체명, 해당 부모 객체에 레포트 데이터를 생성한다.)
  3488. var printPaperBin = ""; // 트레이번호
  3489. var userService = ""; // 데이터 소스
  3490. var showButton = ""; // 툴바버튼보임여부(visible, hidden)
  3491. var printCount = ""; // 프린트장수(1, 2,..)
  3492. var zoomRate = ""; // 미리보기뷰어 비율(0, 50,...)
  3493. var printOption = ""; // 출력시 선택 옵션
  3494. var dataXPath = ""; // 데이터 XPath
  3495. var mainDataXPath = ""; // 메인리포트 반복XPath
  3496. var subDataXPath = ""; // 서브리포트1 반복Xpath
  3497. var objDOM = rptf_createDOM(); // DOM 객체 설정
  3498. rptf_setNodeListToDOM(objDOM, "root/hidden1/actingbasicinfo", ds_hidden1_actingbasicinfo); // 데이터셋 1
  3499. var objParam = new Object();
  3500. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3501. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  3502. rptf_exeReportPreview30([rid],[objParam], option);
  3503. }//fPreview END
  3504. //201011_KNUH_start
  3505. function fGetChemoData(i, idx) {
  3506. var item = grd_chemo.valueMatrix(i, grd_chemo.colRef(idx));
  3507. return item;
  3508. }
  3509. function fSavePrcpInfo() {
  3510. var idx = grd_chemo.row;
  3511. var instcd = fGetChemoData(idx, "instcd");
  3512. var cretno = fGetChemoData(idx, "inptcretno");
  3513. var pid = fGetChemoData(idx, "pid");
  3514. var indd = fGetChemoData(idx, "inptindd");
  3515. var orddd = fGetChemoData(idx, "inptindd");
  3516. var orddeptcd = fGetChemoData(idx, "orddeptcd");
  3517. var orddeptnm = fGetChemoData(idx, "depthngnm ");
  3518. var orddrid = fGetChemoData(idx, "orddrid");
  3519. var orddrnm = fGetChemoData(idx, "orddrnm");
  3520. var hngnm = fGetChemoData(idx, "hngnm");
  3521. var sa = fGetChemoData(idx, "age");
  3522. var ordtype = "I";
  3523. var ioflag = "I";
  3524. var aftcertdrid = "";
  3525. var pamflag = "N";
  3526. var deptcd = orddeptcd;
  3527. var deptnm = orddeptnm;
  3528. model.makeValue("/root/temp/saveflaginfo/savedataflag", "2"); //저장자료구분(2:처방)
  3529. model.makeValue("/root/temp/saveflaginfo/saveflag" , ioflag); //저장구분 O:외래, I:입원, E:응급, S:건진, D:DSC
  3530. model.makeValue("/root/temp/saveflaginfo/prcpflag" , "2"); //처방구분 (M0035 처방권한에 대한 구분종류 : 간호 추가처방)
  3531. model.makeValue("/root/temp/saveflaginfo/inptflag" , "09"); //처방입력구분 (M0034 처방입력에 대한 구분종류 : 간호처방)
  3532. model.makeValue("/root/temp/saveflaginfo/pamflag" , pamflag);//원무정보 처리구분(외래만 Y)
  3533. model.makeValue("/root/temp/saveflaginfo/prcperrflag" , "N"); //처방오류구분
  3534. model.makeValue("/root/temp/saveflaginfo/deptcd" , deptcd); //부서코드
  3535. model.makeValue("/root/temp/saveflaginfo/deptnm" , deptnm); //부서명
  3536. model.makeValue("/root/temp/saveflaginfo/userid" , sysf_getUserInfo("userid")); //사용자ID
  3537. model.makeValue("/root/temp/saveflaginfo/usernm" , sysf_getUserInfo("usernm")); //사용자명
  3538. model.makeValue("/root/temp/saveflaginfo/signyn" , "Y"); //전자서명여부
  3539. model.makeValue("/root/temp/saveflaginfo/prcpdd" , orddd); //처방일
  3540. var saveflaginfolist = getNodeListCSV(model.instances(0).selectNodes("/root/temp/saveflaginfo"));
  3541. model.makeValue("/root/send/reqdata/saveflaginfo", saveflaginfolist);
  3542. model.makeValue("/root/temp/savergstinfo/pid" , pid); //등록번호
  3543. model.makeValue("/root/temp/savergstinfo/indd" , orddd); //진료일자
  3544. model.makeValue("/root/temp/savergstinfo/orddd" , orddd); //진료일자
  3545. model.makeValue("/root/temp/savergstinfo/cretno" , cretno); //생성번호
  3546. model.makeValue("/root/temp/savergstinfo/instcd" , instcd); //기관코드
  3547. model.makeValue("/root/temp/savergstinfo/orddeptcd" , orddeptcd); //진료과
  3548. model.makeValue("/root/temp/savergstinfo/orddeptnm" , orddeptnm); //진료과명
  3549. model.makeValue("/root/temp/savergstinfo/orddrid" , orddrid); //진료의
  3550. model.makeValue("/root/temp/savergstinfo/orddrnm" , orddrnm); //진료의명
  3551. model.makeValue("/root/temp/savergstinfo/hngnm" , hngnm); //환자명
  3552. model.makeValue("/root/temp/savergstinfo/sa" , sa); //성별나이
  3553. model.makeValue("/root/temp/savergstinfo/ordtype" , ioflag); //외래입원구분
  3554. model.makeValue("/root/temp/savergstinfo/aftcertdrid" , aftcertdrid); //외래 일반의사의 경우 후인증 대상의사는 지정한다.
  3555. var savergstinfolist = getNodeListCSV(model.instances(0).selectNodes("/root/temp/savergstinfo"));
  3556. model.makeValue("/root/send/reqdata/savergstinfo", savergstinfolist);
  3557. var saveprcplist = getNodeListCSV(model.instances(0).selectNodes("/root/main/prcpsrch/prcplist"));
  3558. model.makeValue("/root/send/reqdata/saveprcpinfo", saveprcplist);
  3559. if(submit("TRMNW10906")){
  3560. var signinfo = "A";
  3561. model.setValue(sSIGNDATA_PATH + "/signaftcnts", signinfo); //true : 처방저장할 때마다 인증저장 태움
  3562. var savesignlist = getNodeListCSV(model.instances(0).selectNodes(sSIGNDATA_PATH));
  3563. model.makeValue("/root/send/savedata/saveflaginfo", saveflaginfolist);
  3564. model.makeValue("/root/send/savedata/savergstinfo", savergstinfolist);
  3565. model.makeValue("/root/send/savedata/saveprcpinfo", saveprcplist);
  3566. model.makeValue("/root/send/savedata/savesigninfo", savesignlist);
  3567. submit("TXMNW10901");
  3568. }
  3569. }
  3570. function fGetPrcpSetList() {
  3571. model.makeValue("/root/send/reqdata/instcd", sysf_getUserInfo("dutplceinstcd"));
  3572. model.makeValue("/root/send/reqdata/settypecd", "P");
  3573. submit("TRMNI02037");
  3574. for(var i = grd_prcplist2.fixedRows; i < grd_prcplist2.rows; i++) {
  3575. grd_prcplist2.rowStatus(i) = "1";
  3576. }
  3577. }
  3578. //201011_KNUH_END
  3579. //---------------(20110422) 경북대
  3580. function fnoutorderchk() {
  3581. var rtnval = "";
  3582. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  3583. var xPathChemoList = ds_main_chemoinfo_chemolist;
  3584. var xPathSend = "/root/send1";
  3585. var xPathSendReqdata = ds_send1_reqdata;
  3586. ds_send1_reqdata.clearData();
  3587. ds_send1_reqdata.addRow();
  3588. var prcpdd = ds_main_cond.getColumn(0, "prcpdd");
  3589. var pid = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "pid");
  3590. ds_send1_reqdata.setColumn(0, "prcpdd", prcpdd);
  3591. ds_send1_reqdata.setColumn(0, "pid", pid);
  3592. var oParam = {};
  3593. oParam.id = "TRMNI02040";
  3594. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  3595. oParam.method = "reqGetoutorderInfo";
  3596. oParam.inds = "reqdata=ds_send1_reqdata";
  3597. oParam.outds = "ds_main_outorderinfo_outorderlist=outorderlist ds_main_outorderinfo_deptlist=deptlist";
  3598. oParam.async = false;
  3599. //oParam.callback = "cf_TRMNI02040";
  3600. tranf_submit(oParam);
  3601. if( ds_main_outorderinfo_deptlist.rowcount > 0 ){
  3602. rtnval = "Y"; //당일 원외처방이 있는경우
  3603. } else {
  3604. rtnval = "N"; //당일 원외처방이 없는경우
  3605. }
  3606. return rtnval;
  3607. }
  3608. function fnChemoIOChk() {
  3609. var rtnval = "";
  3610. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  3611. var xPathChemoList = ds_main_chemoinfo_chemolist;
  3612. var xPathSend = "/root/send1";
  3613. var xPathSendReqdata = ds_send1_reqdata;
  3614. ds_send1_reqdata.clearData();
  3615. ds_send1_reqdata.addRow();
  3616. var indd = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "calcdd");
  3617. var intm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "calctm");
  3618. var outdd = ds_main_careinfo.getColumn(0, "caredschrmdd");
  3619. var outtm = ds_main_careinfo.getColumn(0, "caredschrmtm");
  3620. ds_send1_reqdata.setColumn(0, "inddtm", indd +""+intm);
  3621. ds_send1_reqdata.setColumn(0, "outddtm", outdd+""+outtm);
  3622. var oParam = {};
  3623. oParam.id = "TRMNI02041";
  3624. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  3625. oParam.method = "reqGetChemoIOchkInfo";
  3626. oParam.inds = "reqdata=ds_send1_reqdata";
  3627. oParam.outds = "ds_main_chemoiochkinfo_chemoiochklist=chemoiochklist";
  3628. oParam.async = false;
  3629. //oParam.callback = "cf_TRMNI02041";
  3630. tranf_submit(oParam);
  3631. if( ds_main_chemoiochkinfo_chemoiochklist.rowcount > 0 ){
  3632. rtnval = ds_main_chemoiochkinfo_chemoiochklist.getColumn(0, "ioflag");
  3633. }
  3634. return rtnval;
  3635. }
  3636. //---------------(20110422) 경북대
  3637. // 20110727 wify 경북대병원
  3638. // 항암주사실 메인 항암전송여부 check
  3639. function fGetChkActing() {
  3640. var xPathChemoList = "/root/main/chemoinfo/chemolist";
  3641. var pGrd = grd_chemo;
  3642. // 환자내역이 있을때만 처리한다.
  3643. //if ( instance1..size() > 0 ) {
  3644. for ( i= pGrd.fixedrows; i < pGrd.rows; i++) {
  3645. // check할 항암프로토콜 param 설정
  3646. var cpgappno = model.getValue(xPathChemoList + "[" + i + "]/cpgappno");
  3647. var prcpdd = model.getValue(xPathChemoList + "[" + i + "]/prcpdd");
  3648. var prtldg = model.getValue(xPathChemoList + "[" + i + "]/prtldg");
  3649. var pid = model.getValue(xPathChemoList + "[" + i + "]/pid");
  3650. model.makeValue("/root/send/reqactingdata/reqactinglist/cpgappno", cpgappno);
  3651. model.makeValue("/root/send/reqactingdata/reqactinglist/prcpdd", prcpdd);
  3652. model.makeValue("/root/send/reqactingdata/reqactinglist/prtldg", prtldg);
  3653. //항암전송여부 가져오기
  3654. submit("TRMNI02005", "false");
  3655. model.removenode("/root/send/reqactingdata");
  3656. var act = model.getValue("/root/init/chkinfo/chklist/act");
  3657. var chkact = model.getValue("/root/init/chkinfo/chklist/chkact");
  3658. if ( act == chkact ) {
  3659. model.setValue(xPathChemoList + "[" + i + "]/actyn", "전송");
  3660. } else if (act < chkact && act != 0) {
  3661. model.setValue(xPathChemoList + "[" + i + "]/actyn", "부분전송");
  3662. } else if ( act == 0 && chkact != 0) {
  3663. model.setValue(xPathChemoList + "[" + i + "]/actyn", "미전송");
  3664. }
  3665. }
  3666. pGrd.refresh();
  3667. //}
  3668. }
  3669. // 입실시 선택진료 확인
  3670. function fCheckSpecOrdSign() {
  3671. ds_main_paminfo_list.clearData();
  3672. var node = sysf_getGlobalVariable("paminfo");
  3673. dsf_setCSVToDs("ds_main_paminfo_list", node);
  3674. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  3675. ds_main_paminfo_list.addColumn("orddd", "string");
  3676. }
  3677. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  3678. ds_main_paminfo_list.addColumn("indd", "string");
  3679. }
  3680. var s_pid = ds_main_paminfo_list.getColumn(0, "pid");;
  3681. var s_ordtype = 'I';
  3682. var s_orddd = ds_main_paminfo_list.getColumn(0, "indd");
  3683. var s_orddeptcd = ds_main_paminfo_list.getColumn(0, "orddeptcd");
  3684. var s_orddrid = ds_main_paminfo_list.getColumn(0, "medispclid");
  3685. var s_fromdd = ds_main_paminfo_list.getColumn(0, "indd");
  3686. var s_hngnm = ds_main_paminfo_list.getColumn(0, "hngnm");
  3687. var s_rrgstno1 = ds_main_paminfo_list.getColumn(0, "rrgstno1");
  3688. var s_rrgstno2 = ds_main_paminfo_list.getColumn(0, "rrgstno2");
  3689. var s_specordyn = ds_main_paminfo_list.getColumn(0, "specordyn");
  3690. var sOrddeptcdMsg = ds_main_paminfo_list.getColumn(0, "orddeptnm");
  3691. var sOrddridMsg = ds_main_paminfo_list.getColumn(0, "orddrnm");
  3692. ds_send_data26.setColumn(0, "pid", s_pid); // pid
  3693. ds_send_data26.setColumn(0, "ordtype", "I"); // ordtype
  3694. ds_send_data26.setColumn(0, "indd", s_orddd);// orddd
  3695. ds_send_data26.setColumn(0, "orddd", s_orddd);// orddd
  3696. ds_send_data26.setColumn(0, "orddeptcd", s_orddeptcd); // orddeptcd
  3697. ds_send_data26.setColumn(0, "medispclid", s_orddrid); // orddrid
  3698. ds_send_data26.setColumn(0, "orddrid", s_orddrid); // orddrid
  3699. var oParam = {};
  3700. oParam.id = "TRPMI00406";
  3701. oParam.service = "ipatmngtapp.InhospUpdt";
  3702. oParam.method = "reqGetSpecOrdAppYN";
  3703. oParam.inds = "req=ds_send_data26";
  3704. oParam.outds = "ds_tempchk_specapp=rgst";
  3705. oParam.async = false;
  3706. //oParam.callback = "cf_TRPMI00406";
  3707. tranf_submit(oParam);
  3708. if( ds_tempchk_specapp.getColumn(0, "rgstyn") == "N" ){
  3709. var sMsg = "[" + sOrddeptcdMsg + "]" + "[" + sOrddridMsg + "]";
  3710. if( s_specordyn == "Y") {
  3711. if( sysf_messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?", "Q999", "") == 6 ){
  3712. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3713. }
  3714. } else {
  3715. if( sysf_messageBox(sMsg + " 진료지원 위임이 되어 있지 않습니다. 위임하시겠습니까?", "Q999", "") == 6 ){
  3716. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3717. }
  3718. }
  3719. }
  3720. }
  3721. // 퇴실시 선택진료 확인
  3722. function fChkSpecOrdPrt() {
  3723. ds_main_paminfo_list.clearData();
  3724. var node = sysf_getGlobalVariable("paminfo");
  3725. dsf_setCSVToDs("ds_main_paminfo_list", node);
  3726. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  3727. ds_main_paminfo_list.addColumn("orddd", "string");
  3728. }
  3729. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  3730. ds_main_paminfo_list.addColumn("indd", "string");
  3731. }
  3732. var s_pid = ds_main_paminfo_list.getColumn(0, "pid");;
  3733. var s_ordtype = 'I';
  3734. var s_orddd = ds_main_paminfo_list.getColumn(0, "indd");
  3735. var s_orddeptcd = ds_main_paminfo_list.getColumn(0, "orddeptcd");
  3736. var s_orddrid = ds_main_paminfo_list.getColumn(0, "medispclid");
  3737. var s_fromdd = ds_main_paminfo_list.getColumn(0, "indd");
  3738. var s_hngnm = ds_main_paminfo_list.getColumn(0, "hngnm");
  3739. var s_rrgstno1 = ds_main_paminfo_list.getColumn(0, "rrgstno1");
  3740. var s_rrgstno2 = ds_main_paminfo_list.getColumn(0, "rrgstno2");
  3741. var sOrddeptcdMsg = ds_main_paminfo_list.getColumn(0, "orddeptnm");
  3742. var sOrddridMsg = ds_main_paminfo_list.getColumn(0, "orddrnm");
  3743. ds_send_data26.setColumn(0, "pid", s_pid); // pid
  3744. ds_send_data26.setColumn(0, "ordtype", "I"); // ordtype
  3745. ds_send_data26.setColumn(0, "indd", s_orddd);// orddd
  3746. ds_send_data26.setColumn(0, "orddd", s_orddd);// orddd
  3747. ds_send_data26.setColumn(0, "orddeptcd", s_orddeptcd); // orddeptcd
  3748. ds_send_data26.setColumn(0, "medispclid", s_orddrid); // orddrid
  3749. ds_send_data26.setColumn(0, "orddrid", s_orddrid); // orddrid
  3750. /*
  3751. submit("TRPMI00406");
  3752. if (model.getValue("/root/tempchk/specapp/rgstyn") == "N") {
  3753. var sMsg = "[" + sOrddeptcdMsg + "]" + "[" + sOrddridMsg + "]";
  3754. if( messageBox(sMsg + " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?", "Q999", "") == 6 ){
  3755. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3756. }
  3757. } else {
  3758. */
  3759. var oParam = {};
  3760. oParam.id = "TRMNW01208";
  3761. oParam.service = "wardcareapp.WardCareMngt";
  3762. oParam.method = "reqGetSpecOrdPrtList";
  3763. oParam.inds = "req=ds_send_data26";
  3764. oParam.outds = "ds_temp_specordprtinfo_specordprtlist=specordprtlist";
  3765. oParam.async = false;
  3766. //oParam.callback = "cf_TRMNW01208";
  3767. tranf_submit(oParam);
  3768. var existyn = ds_temp_specordprtinfo_specordprtlist.getColumn(0, "existyn");
  3769. if(existyn == "N") {
  3770. //messageBox("출력된 메세지없음", "I");
  3771. } else {
  3772. sysf_messageBox("선택진료 동의 확인이 되지않았습니다.", "I");
  3773. frmf_setParameter("SMPMC06503_PARM_PID", s_pid);
  3774. frmf_modal("SMPMC06503","SMPMC06503",null,"",1,1,1,"","","","","","M");
  3775. //fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  3776. }
  3777. //}
  3778. }
  3779. // 2013.08.13 KJS 입실시간 변경
  3780. function fChngIndt() {
  3781. var pGrd = grp_biz.swt_main.case_cm.grd_chemo;
  3782. var xPathChemoList = ds_main_chemoinfo_chemolist;
  3783. var prtlnm = ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prtlnm");
  3784. if( utlf_isNull(grp_biz.swt_main.case_cm.in_indd.value) || utlf_isNull(grp_biz.swt_main.case_cm.in_intm.value) ){
  3785. sysf_messageBox("입실일시와 입실시간","I003"); //필수입력입니다.
  3786. return;
  3787. }
  3788. if( ds_main_chemoinfo_chemolist.rowposition < 0 ){
  3789. sysf_messageBox("자료가","I004");
  3790. return;
  3791. }
  3792. //상단에 올리기
  3793. fSetPatInfo_chemo();
  3794. //설정된 상단정보를 불러옴
  3795. var paminfo = sysf_getGlobalVariable("paminfo");
  3796. if(paminfo.length > 0){//원무정보(기본정보)가 있는경우
  3797. ds_main_paminfo_list.clearData();
  3798. dsf_setCSVToDs("ds_main_paminfo_list", paminfo);
  3799. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("orddd")) ){
  3800. ds_main_paminfo_list.addColumn("orddd", "string");
  3801. }
  3802. if( utlf_isNull(ds_main_paminfo_list.getColumnInfo("indd")) ){
  3803. ds_main_paminfo_list.addColumn("indd", "string");
  3804. }
  3805. } else {
  3806. sysf_messageBox("자료가","I004");
  3807. return;
  3808. }
  3809. //외래 프로토콜 환자만 체크
  3810. if( !utlf_isNull(prtlnm) ){
  3811. if( ds_main_chemoinfo_chemolist.getColumn(ds_main_chemoinfo_chemolist.rowposition, "prcpdd") != ds_main_careinfo.getColumn(0, "calcdd") ){
  3812. sysf_messageBox("적용일자와 입실일자가 다른면 처리 ","E001"); //할 수 없습니다.
  3813. return;
  3814. }
  3815. }
  3816. var iRow = ds_main_chemoinfo_chemolist.rowposition;
  3817. var calcdd = ds_main_chemoinfo_chemolist.getColumn(iRow, "calcdd");
  3818. var calctm = ds_main_chemoinfo_chemolist.getColumn(iRow, "calctm");
  3819. var dschnotidd = ds_main_chemoinfo_chemolist.getColumn(iRow, "dschnotidd");
  3820. var dschnotitm = ds_main_chemoinfo_chemolist.getColumn(iRow, "dschnotitm");
  3821. //기 입실등록 환자만 처리
  3822. if( utlf_isNull(calcdd) || utlf_isNull(calctm) || calcdd == "-" || calctm == "-" || calcdd == "00000000" || calctm == "0000" ){
  3823. sysf_messageBox("입실등록 되지 않은 환자는 변경","E001");
  3824. return;
  3825. }
  3826. //퇴실환자
  3827. if( !utlf_isNull(dschnotidd) || !utlf_isNull(dschnotitm) ){
  3828. sysf_messageBox("퇴실 등록된 환자는 변경","E001");
  3829. return;
  3830. }
  3831. // 입실시간 변경
  3832. var icalcdd = ds_main_careinfo.getColumn(0, "calcdd");
  3833. var icalctm = utlf_transNullToEmpty(ds_main_careinfo.getColumn(0, "calctm"));
  3834. icalctm = icalctm.substring(0,4);
  3835. var pid = ds_main_paminfo_list.getColumn(0, "pid");
  3836. var indd = ds_main_paminfo_list.getColumn(0, "indd");
  3837. var cretno = ds_main_paminfo_list.getColumn(0, "cretno");
  3838. var gbn = "M";
  3839. ds_send_cncldata.setColumn(0, "pid", pid);
  3840. ds_send_cncldata.setColumn(0, "indd", indd);
  3841. ds_send_cncldata.setColumn(0, "cretno", cretno);
  3842. ds_send_cncldata.setColumn(0, "gbn", gbn);
  3843. ds_send_cncldata.setColumn(0, "calcdd", icalcdd);
  3844. ds_send_cncldata.setColumn(0, "calctm", icalctm);
  3845. var oParam = {};
  3846. oParam.id = "TXMNI02016";
  3847. oParam.service = "injspecialroomapp.InjSpecialRoomPatMngt";
  3848. oParam.method = "reqExeCnclInptInfo";
  3849. oParam.inds = "req=ds_send_cncldata";
  3850. oParam.outds = "";
  3851. oParam.async = false;
  3852. //oParam.callback = "cf_TXMNI02016";
  3853. tranf_submit(oParam);
  3854. fInqurySelectedPrgm();
  3855. }
  3856. function fChngInptDr() {
  3857. var row = ds_main_chemoinfo_chemolist.rowposition;
  3858. if (row > -1) {
  3859. if( utlf_isNull(ds_main_chemoinfo_chemolist.getColumn(row, "careinrmdd")) || ds_main_chemoinfo_chemolist.getColumn(row, "careinrmdd") == "-" ){
  3860. ds_temp_chngdrinfo.setColumn(0, "predrid", ds_main_chemoinfo_chemolist.getColumn(row, "orddrid"));
  3861. ds_temp_chngdrinfo.setColumn(0, "predrnm", ds_main_chemoinfo_chemolist.getColumn(row, "orddrnm"));
  3862. ds_temp_chngdrinfo.setColumn(0, "orddeptcd", ds_main_chemoinfo_chemolist.getColumn(row, "orddeptcd"));
  3863. ds_temp_chngdrinfo.setColumn(0, "chngdrid", "");
  3864. var deptcd = ds_temp_chngdrinfo.getColumn(0, "orddeptcd");
  3865. ds_temp_doctlist_usercombo.clearData();
  3866. lf_mmbfGetUserComboList(ds_temp_doctlist_usercombo, deptcd, "0330", "", "T");
  3867. grp_biz.swt_main.case_cm.grp_chngdr.visible = true;
  3868. } else {
  3869. sysf_messageBox("의사변경 할 수 없는 상태입니다", "E999");
  3870. }
  3871. }
  3872. }
  3873. // 환자 기초정보 조회
  3874. function fPatInfo1(){
  3875. var row_cm = ds_main_chemoinfo_chemolist.rowposition;
  3876. if(row_cm < 0){
  3877. return false;
  3878. }
  3879. var pid = ds_main_chemoinfo_chemolist.getColumn(row_cm, "pid");
  3880. if( utlf_isNull(pid) && pid == " " && pid == "-" ){
  3881. return false;
  3882. }
  3883. ds_temp_source.setColumn(0, "srchcond", "1");
  3884. ds_temp_source.setColumn(0, "pid", pid);
  3885. var objArg = new Object();
  3886. objArg.arg_ds_source = ds_temp_source;
  3887. frmf_modal("SPPMO01400","SPPMO01400",objArg,"",1,100,100,"","","","","","M");
  3888. }
  3889. //안전사고보고작성
  3890. function fPatQi_QM(){
  3891. var row_cm = ds_main_chemoinfo_chemolist.rowposition;
  3892. if(row_cm < 0){
  3893. return false;
  3894. }
  3895. var pid = ds_main_chemoinfo_chemolist.getColumn(row_cm, "pid");
  3896. var hngnm = ds_main_chemoinfo_chemolist.getColumn(row_cm, "hngnm");
  3897. var orddeptcd = ds_main_chemoinfo_chemolist.getColumn(row_cm, "orddeptcd");
  3898. var medispclid = ds_main_chemoinfo_chemolist.getColumn(row_cm, "rp_medispclid");
  3899. var diag = ''
  3900. var diagcd = ''
  3901. var sexagestr = utlf_transNullToEmpty(ds_main_chemoinfo_chemolist.getColumn(row_cm, "age")).split("/");
  3902. if( sexagestr[0] == "F" ){ var sex = "여자"; }
  3903. if( sexagestr[0] == "M" ){ var sex = "남자"; }
  3904. var age = sexagestr[1];
  3905. var wardcd = ds_main_chemoinfo_chemolist.getColumn(row_cm, "wardcd");
  3906. var roomcd = ds_main_chemoinfo_chemolist.getColumn(row_cm, "roomcd");
  3907. var ioflag = "I";
  3908. //alert(pid + hngnm + orddeptcd + medispclid + diag + diagcd + sex + age + wardcd + roomcd + ioflag);
  3909. frmf_setParameter("SMMQR00100_PARAM", pid + "▦" + hngnm + "▦" + orddeptcd + "▦" + medispclid + "▦" + diag + "▦" + diagcd + "▦" + sex + "▦" + age + "▦" + wardcd + "▦" + roomcd + "▦" + ioflag);
  3910. frmf_modal("SMMQR00100","SMMQR00100",null,"",1,1,1,"","","","","","M");
  3911. }
  3912. /**
  3913. * 환자메모 팝업
  3914. * @param
  3915. * pid : 등록번호
  3916. * 190422_AYS_칠곡 항암주사실_업무요청에 따른 추가(외래의사가 환자 입/외퇴 처리여부 의사 메모에 작성하고, 이를 간호사가 확인함)
  3917. */
  3918. function fEmrMemo() {
  3919. var currow = ds_main_chemoinfo_chemolist.rowposition;
  3920. var ioflag = ds_main_chemoinfo_chemolist.getColumn(currow, "rp_ordtype");
  3921. var pid = ds_main_chemoinfo_chemolist.getColumn(currow, "pid");
  3922. var deptcd = ds_main_chemoinfo_chemolist.getColumn(currow, "orddeptcd");
  3923. var deptnm = ds_main_chemoinfo_chemolist.getColumn(currow, "depthngnm");
  3924. var hngnm = ds_main_chemoinfo_chemolist.getColumn(currow, "hngnm");
  3925. var age = ds_main_chemoinfo_chemolist.getColumn(currow, "age");
  3926. if(utlf_isNull(ioflag)){
  3927. ioflag = 'O';
  3928. } else if(!utlf_isNull(ioflag) && ioflag == 'D'){
  3929. ioflag = 'I';
  3930. }
  3931. frmf_setParameter("SPMMR05600_ioflag", ioflag);
  3932. frmf_setParameter("SPMMR05600_pid", pid);
  3933. frmf_setParameter("SPMMR05600_deptcd", deptcd); // 환자 진료과로 조회
  3934. frmf_setParameter("SPMMR05600_hngnm", hngnm);
  3935. frmf_setParameter("SPMMR05600_age", age);
  3936. frmf_setParameter("SPMMR05600_deptnm", deptnm);
  3937. frmf_setParameter("SPMMR05600_screenid", "SMMMO02500"); // 간호 메모, 진료 메모 수정을 위해 스크린 아이디를 넘긴다. 2014.04.11 엄영만
  3938. //frmf_setParameter("SPMMR05600_screenid", "SMMNI02000"); // 간호 메모, 진료 메모 수정을 위해 스크린 아이디를 넘긴다. 2014.04.11 엄영만
  3939. var curMemoObj = frmf_findPopup("SPMMR05600");
  3940. if(!utlf_isNull(curMemoObj)) {
  3941. curMemoObj.fGetPatMemo();
  3942. frmf_setFocusPop("SPMMR05600");
  3943. }else{
  3944. frmf_open("SPMMR05600", "SPMMR05600", null, false, 1, 200, 400, null, null, null, null, null, "P");
  3945. }
  3946. }
  3947. ]]></Script>