MMR02900.js 211 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929
  1. /**
  2. * @desc : 화면초기화
  3. *
  4. * @param :
  5. * @return :
  6. * @author : HIT EMR Team
  7. * @---------------------------------------------------
  8. */
  9. var g_insukind = "";
  10. var degnseqchk = "Y";
  11. function fInitialize(){
  12. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  13. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/dutplcecd", 5501);
  14. // KNUH_20101207_박성호_end
  15. btn_prof.dispatch("onclick");
  16. model.makeValue("/root/main/newprof/orddept" , getUserInfo("dutplcenm"));
  17. model.makeValue("/root/main/newprof/orddeptcd" , getUserInfo("dutplcecd"));
  18. model.makeValue("/root/main/newprof/orddoctid" , getUserInfo("userid"));
  19. model.makeValue("/root/main/newprof/doctnm" , getUserInfo("usernm"));
  20. model.makeValue("/root/main/newprof/licnsno" , getUserInfo("licnsno"));
  21. var fromdd = ((getCurrentDate()).toDate()).getAddDate(-1, "M");
  22. model.setValue("/root/main/srchprofhist/fromdd" , fromdd.getDateFormat());
  23. model.setValue("/root/main/srchprofhist/todd" , getCurrentDate());
  24. var node = getGlobalVariable("paminfo");
  25. setCSVToNode("/root/main/paminfo", node);
  26. if(model.getValue("/root/main/paminfo/list/pid") ==""){
  27. // knuh_20110421_박성호_수정(의무기록, 제증명인 경우 로딩시 등록번호 체크하지 않음)
  28. var dutplcecd = getUserInfo("dutplcecd");
  29. //alert(model.getValue("/root/init/hardcd/hardcd[hardcd='" + dutplcecd + "']/hardcd"));
  30. if(model.getValue("/root/init/hardcd/hardcd[hardcd='" + dutplcecd + "']/hardcd") == "")
  31. {
  32. messageBox("선택된 환자정보가", "I004");
  33. }
  34. model.setFocus("ipt_pid");
  35. model.refresh();
  36. }
  37. else
  38. {
  39. // 환자 보험정보 설정
  40. model.makeValue("/root/main/patinfo/insukind", model.getValue("/root/main/paminfo/list/insukind"));
  41. if(model.getValue("/root/temp/recive/disflag") != "popup"){
  42. model.makeValue("/root/main/patinfo/hngnm" ,model.getValue("/root/main/paminfo/list/hngnm"));
  43. model.makeValue("/root/main/patinfo/ioflag", model.getValue("/root/main/paminfo/list/ioflag"));
  44. // 입원,외래 구분
  45. model.makeValue("/root/main/patinfo/pid" , fCheckedBindPid(model.getValue("/root/main/paminfo/list/pid"), "/root/temp2/reqata", "/root/temp2/tempbindpid"));
  46. model.makeValue("/root/main/patinfo/cretno" , model.getValue("/root/main/paminfo/list/cretno"));
  47. var ioflag = model.getValue("/root/main/patinfo/ioflag");
  48. if(ioflag == "O" || ioflag == "S"){
  49. model.makeValue("/root/main/patinfo/orddd" , model.getValue("/root/main/paminfo/list/orddd"));
  50. model.makeValue("/root/main/patinfo/orddrid", model.getValue("/root/main/paminfo/list/orddrid"));
  51. }else{
  52. model.makeValue("/root/main/patinfo/orddd" , model.getValue("/root/main/paminfo/list/indd"));
  53. model.makeValue("/root/main/patinfo/orddrid", model.getValue("/root/main/paminfo/list/medispclid"));
  54. }
  55. var sex = model.getValue("/root/main/paminfo/list/sex");
  56. if(sex == "M"){
  57. model.setValue("/root/main/patinfo/rrgstno1", model.getValue("/root/main/paminfo/list/rrgstno1") + "-1******");
  58. } else {
  59. model.setValue("/root/main/patinfo/rrgstno1", model.getValue("/root/main/paminfo/list/rrgstno1") + "-2******");
  60. }
  61. var age = model.getValue("/root/main/paminfo/list/age");
  62. model.makeValue("/root/main/patinfo/orddeptcd", model.getValue("/root/main/paminfo/list/orddeptcd"));
  63. model.makeValue("/root/main/patinfo/orddeptnm", model.getValue("/root/main/paminfo/list/orddeptnm"));
  64. model.makeValue("/root/main/patinfo/age" , sex+"/"+age);
  65. model.makeValue("/root/main/patinfo/addr" , getPatientInfo("addrdetl"));
  66. model.makeValue("/root/main/patinfo/hometel" , getPatientInfo("telno"));
  67. model.makeValue("/root/main/patinfo/brthdd" , model.getValue("/root/main/paminfo/list/brthdd"));
  68. model.makeValue("/root/main/patinfo/ordtm" , model.getValue("/root/main/paminfo/list/ordtm"));
  69. }
  70. }
  71. // 의료급여조회
  72. fGetPatInsuranceInfo();
  73. fGetProfForm();
  74. fReqFormlist();
  75. fPrstUsge();
  76. // 141021 - AYS 부서코드 조회
  77. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/main/orddept", "A");
  78. //addComboInstance("/root/main/orddept" , "deptcd^depthngnm", "-^전체", "dept");
  79. addComboItem("cmb_selectdept", "전체", "-", "above");
  80. if(btn_tabprofhist.selected == true){
  81. model.setValue("/root/temp/openmode", "rec");
  82. }else{
  83. model.setValue("/root/temp/openmode", "new");
  84. }
  85. //2012/04/18 Start
  86. var prcp_formcd=opener.javascript.getParameter("SMMMR02900_formcd");
  87. if(prcp_formcd!="" && prcp_formcd=="1200012640"){ // 중증화상환자 산정특례 연장신청 소견서
  88. model.setValue("/root/main/formcd", "1200012640");
  89. fChosProflist();
  90. }
  91. //2012/04/18 End
  92. //의료정보, 의료정보분석, 응급실 원무과만 발행, 재발행, 재출력 처리
  93. model.refresh();
  94. }
  95. /**
  96. * @desc : 서식명 조회
  97. * @
  98. * @param :
  99. * @return :
  100. * @---------------------------------------------------
  101. */
  102. function fReqFormlist(){
  103. if(submit("TRMRF00708")){
  104. addComboItem("cmb_profformlist", "전체", "-", "above");
  105. }
  106. }
  107. /**
  108. * @desc : 제증명리스트
  109. * @
  110. * @param :
  111. * @return :
  112. * @---------------------------------------------------
  113. */
  114. function fDelProflist(){
  115. var currow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  116. if(currow < 1){
  117. messageBox("삭제할 제증명을", "C001");
  118. return;
  119. }
  120. var profcertseq = model.getValue("/root/main/profhist/list[" + currow + "]/profcertseq");
  121. var yearseqno = model.getValue("/root/main/profhist/list[" + currow + "]/yearseqno");
  122. if (1 == 1) {
  123. //화면에 발행번호가 없을시 현시점의 발행여부를 확인한다
  124. model.makeValue("/root/send/reqdata/profcertseq",profcertseq);
  125. submit("TRMMR05504",false);
  126. var balyncnt = model.getValue("/root/hidden/balyn/cnt");
  127. //화면이 old
  128. if (balyncnt != 0) {
  129. messageBox("제증명이 발행되어 삭제 불가합니다","I999");
  130. return ;
  131. }
  132. }
  133. if(messageBox("", "Q001") == 6){
  134. var profcertseq = model.getValue("/root/main/profhist/list[" + currow + "]/profcertseq");
  135. model.removeNodeset("/root/send/reqdata");
  136. model.makeValue("/root/send/reqdata/prof/status" , "D");
  137. model.makeValue("/root/send/reqdata/profinfo/profcretseq", profcertseq);
  138. if(submit("TXMMR02903")){
  139. fGetProfPrntHist();
  140. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  141. }
  142. }
  143. }
  144. /**
  145. * @desc : 제증명리스트 신규 선택
  146. * @
  147. * @param :
  148. * @return :
  149. * @author : HIT EMR Team
  150. * @---------------------------------------------------
  151. */
  152. function fChosProflist(){
  153. var orddept = model.getValue("/root/main/newprof/orddept"); //진료과
  154. var orddeptcd = model.getValue("/root/main/newprof/orddeptcd"); //진료과코드
  155. var orddoctid = model.getValue("/root/main/newprof/orddoctid"); //전문의id
  156. var doctnm = model.getValue("/root/main/newprof/doctnm"); //전문의이름
  157. var licnsno = model.getValue("/root/main/newprof/licnsno"); //면허번호
  158. var currenttime = getCurrentDate()+getCurrentTime();
  159. var ioflag = model.getValue("/root/main/patinfo/ioflag");
  160. var pid = model.getValue("/root/main/patinfo/pid");
  161. var cretno = model.getValue("/root/main/patinfo/cretno");
  162. var orddd = model.getValue("/root/main/patinfo/orddd");
  163. var profformcd = "";
  164. model.resetInstanceNode("/root/main/newprof");
  165. //2009-07-15 오전 10:43:45 강지훈 추가 : 용도를 reset시켰다가 다시 셋팅한다.
  166. model.removeNode("/root/main/issusge");
  167. model.makeValue("/root/main/issusge", "");
  168. model.setValue("/root/main/newprof/orddept", orddept); //진료과
  169. model.setValue("/root/main/newprof/orddeptcd", orddeptcd);
  170. model.setValue("/root/main/newprof/orddoctid", orddoctid); //전문의id
  171. model.setValue("/root/main/newprof/doctnm", doctnm); //전문의이름
  172. model.setValue("/root/main/newprof/licnsno", licnsno); //면허번호
  173. if((pid == "")&&(model.getValue("/root/main/emptyform") == "")){
  174. messageBox("환자정보를 ", "C001");
  175. return;
  176. }
  177. if((swc_prof.selectedIndex == 0) && (trv_proflist.value == "")){
  178. return;
  179. } else if((swc_prof.selectedIndex == 1) && (trv_favor.value == "")){
  180. return;
  181. }
  182. profformcd = model.getValue("/root/main/formcd");
  183. if(profformcd == ""){
  184. return;
  185. }
  186. //전원소견서 메세지 추가
  187. var ioflag = model.getValue("/root/main/patinfo/ioflag");
  188. var insukind = model.getValue("/root/main/patinfo/insukind");
  189. var selformcd = profformcd;
  190. var dutplceinstcd = getUserInfo("dutplceinstcd");
  191. if(ioflag == "E" && selformcd == "0000002536" ) {
  192. var msg = messageBox("응급환자는 '응급환자진료의뢰서'를 작성하셔야 합니다.\n'응급환자진료의뢰서' 작성을", "Q013");
  193. if(msg != "6" ) {
  194. ivw_loader.src="../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  195. return;
  196. }
  197. var indx = trv_proflist.selectedIndex;
  198. trv_proflist.select(eval(indx)-1);
  199. model.setValue("/root/main/formcd", "0000003129");
  200. }
  201. if (fContainsHardCD("6014", selformcd)) {
  202. messageBox("Ku1.0으로는 작성할 수 없는 서식입니다","I");
  203. return;
  204. }
  205. //전원소견서(병동,외래)-회송(전원)서(20160509 이윤주)
  206. if ( selformcd == "1100011397" ) {
  207. if ( ioflag == "E") {
  208. messageBox("응급실 환자는 [응급환자진료의뢰서]를 작성하셔야 합니다!","I");
  209. return;
  210. }
  211. if (insukind == "21" || insukind == "22" ) {
  212. messageBox("의료급여 환자인 경우에는 [의료급여회송서]를 작성하셔야 합니다!","I");
  213. return;
  214. }
  215. }
  216. //의료급여회송서(20160509 이윤주)
  217. if (selformcd == "1400015254") {
  218. if (insukind.substr(0,1) != "2") {
  219. messageBox("의료급여 환자이외는 [의료급여회송서]를 작성하실 수 없습니다!","I");
  220. return;
  221. }
  222. }
  223. //의료급여진료의뢰서(20161031 이윤주)
  224. if (selformcd == "1600017534") {
  225. if (insukind.substr(0,1) != "2") {
  226. messageBox("의료급여 환자이외는 [의료급여의뢰서]를 작성하실 수 없습니다!","I");
  227. return;
  228. }
  229. }
  230. //진료의뢰서(20160509 이윤주)
  231. if (selformcd == "0900005340") {
  232. if ( ioflag == "E") {
  233. messageBox("응급실 환자는 [응급환자진료의뢰서]를 작성하셔야 합니다!","I");
  234. return;
  235. }
  236. else {
  237. messageBox("3차병원 의뢰 시 사용 부탁드립니다!","I");
  238. }
  239. }
  240. //응급실 전원소견서(20160509 이윤주)
  241. if (selformcd == "1100011620" || selformcd == "1600018117") {
  242. if ( ioflag != "E") {
  243. messageBox("응급실 환자가 아니므로 [응급환자진료의뢰서]를 작성할 수 없습니다!","I");
  244. return;
  245. }
  246. }
  247. //의뢰회송서(20160509 이윤주)
  248. if (selformcd == "1300014808") {
  249. messageBox("전원소견서로 작성하십시오!","I");
  250. return;
  251. }
  252. //회송서(20160509 이윤주)
  253. if (selformcd == "1100012259") {
  254. messageBox("전원소견서로 작성하십시오!","I");
  255. return;
  256. }
  257. //2012/11/16 Start 오픈한 제증명 서식이 일반 진단(소견서)서 일시에만 입원이력 자동입력 버튼 활성화
  258. if(profformcd=="1100012297"){
  259. btn_inptinfo.visible=true;
  260. }else{
  261. btn_inptinfo.visible=false;
  262. clearParameter("SMMMR08300_param");
  263. }
  264. //2012/11/16 End
  265. // 2012/05/11 Start 진단서 작성제한 확인
  266. //if(fRestrictionform(profformcd) == false)
  267. // return ;
  268. setParameter("SSMMR01100_getTopYn", "N");
  269. if (!ivw_loader.window.javascript.fSetPamInfo(pid, orddd, cretno, ioflag))
  270. {
  271. return;
  272. }
  273. //2012/11/22 Start
  274. //var existyn = fExistProf(pid, cretno, orddd, ioflag, profformcd);
  275. if(inptinfo_flag==true){ // 진단(소견)서 일 경우 입원이력 자동입력을 클릭시 아래의 메시지 뜨는걸 방지
  276. var existyn = "N";
  277. }else{
  278. clearParameter("SMMMR08300_param");
  279. var existyn = fExistProf(pid, cretno, orddd, ioflag, profformcd, orddeptcd);
  280. // [요청번호:20160708012] 전원소견서 제어
  281. if( model.getValue("/root/main/existdata/transexistyn") == "Y" ){
  282. messageBox("1년 이내에 동일과에 재작성이 불가하오니 진료의뢰서로 작성바랍니다","I");
  283. return;
  284. }
  285. }
  286. inptinfo_flag=false;
  287. //2012/11/22 End
  288. if(existyn != "Y"){
  289. ivw_loader.window.javascript.fLoadNewForm(profformcd, false); // 증명서 열기 0707 수정
  290. ivw_loader.window.javascript.afterSaveExeFuncNm = "fGetProfPrntHist";
  291. } else {
  292. if(window.alert("작성된 서식이 존재합니다.\n신규서식을 작성하시겠습니까?", "", 4) == 6){
  293. ivw_loader.window.javascript.fLoadNewForm(profformcd, false); // 증명서 열기 0707 수정
  294. ivw_loader.window.javascript.afterSaveExeFuncNm = "fGetProfPrntHist";
  295. } else {
  296. btn_tabprofhist.dispatch("onclick");
  297. btn_tabprofhist.dispatch("DOMActivate");
  298. fGetProfPrntHist();
  299. }
  300. }
  301. btn_tranprnt.visible = false;
  302. btn_pathist.visible = true;
  303. }
  304. /**
  305. * @desc : 제증명서식 로드
  306. * @
  307. * @param :
  308. * @return :
  309. * @author : 오지훈
  310. * @---------------------------------------------------
  311. */
  312. function fLoadProfForm(){
  313. var currow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  314. var formrecseq = model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq");
  315. var issstat = model.getValue("/root/main/profhist/list[" + currow + "]/issstat");
  316. var issflag = model.getValue("/root/main/profhist/list[" + currow + "]/issflag");
  317. var yearseqno = model.getValue("/root/main/profhist/list[" + currow + "]/yearseqno");
  318. var issnm = model.getValue("/root/main/profhist/list[" + currow + "]/issnm");
  319. var formcd = model.getValue("/root/main/profhist/list[" + currow + "]/formcd");
  320. var pid = model.getValue("/root/main/profhist/list[" + currow + "]/pid");
  321. var orddoctid = model.getValue("/root/main/profhist/list[" + currow + "]/orddoctid");
  322. var issdeptnm = model.getValue("/root/main/profhist/list[" + currow + "]/issdeptnm"); // 2011-01-19 경북대 최원돈 추가
  323. var iptgbn = model.getValue("/root/main/profhist/list[" + currow + "]/iptgbn");
  324. //사체검안서(0000002841), 입퇴원확인서(진단명포함)(0000001283),
  325. //출생증명서(0000001113), 소견서(0000001499)
  326. //채용신체검사서(일반)(공무원), 사망진단서(0000001314)
  327. //입원사실확인서,외래진료확인서
  328. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/formhardcd", 1005);
  329. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/tranprntcd", 9904); //응급실 전원소견서 formcd
  330. mmbfGetHardCodeInfo("/root/send/reqdata", "/root/nofee", 5972);//항상 무료로 발행되어야 하는 부서
  331. var iexNodeCnt = getNodesetCnt(model, "/root/init/formhardcd/hardcd[hardcd = '" + formcd + "']"); //무료발급서식(hardcd = 1005)
  332. if(iexNodeCnt > 0) {
  333. chk_freeflag.disabled = false;
  334. }else{
  335. model.setValue("/root/main/freeflag", "");
  336. chk_freeflag.disabled = true;
  337. }
  338. //이윤주 추가(항상 무료로 발행되어야 하는 로긴부서)
  339. var dutplcecd = getUserInfo("dutplcecd");
  340. var iexNodeCnt = getNodesetCnt(model, "/root/nofee/hardcd[hardcd = '" + dutplcecd + "']"); //작성 및 발행가능부서
  341. if(iexNodeCnt > 0) {
  342. model.setValue("/root/main/freeflag", "Y");
  343. chk_freeflag.disabled = true;
  344. }
  345. if(formrecseq == 0){
  346. //2009-08-04 오전 8:59:54 강지훈 수정 : 연번호가 없어도 스캔된 이미지가 보여진다. - 이태경샘 요청
  347. model.resetInstanceNode("/root/init/iemr");
  348. model.setValue("/root/init/iemr/pid" , pid); //등록번호
  349. model.setValue("/root/init/iemr/docucd" , formcd); //서식코드
  350. model.makeValue("/root/init/iemr/cmc_spcid" , ""); //blocking null exception
  351. model.makeValue("/root/init/iemr/cmc_orddate", ""); //blocking null exception
  352. model.makeValue("/root/init/iemr/cmc_orderseqno", ""); //blocking null exception
  353. if(yearseqno != ""){
  354. model.setValue("/root/init/iemr/ocmnum" , yearseqno); //연번호
  355. }
  356. if(window.children.item("imgemrviewer") == null){
  357. //window.load("SSMRC03130.xrw", "modeless", "imgemrviewer", "", "/root/init/iemr", "/root/hidden/temp");
  358. }
  359. if ( iptgbn == "I" ) {
  360. messageBox("인터넷 제증명입니다.", "I999");
  361. }
  362. else {
  363. messageBox("자필 제증명입니다.", "I999");
  364. }
  365. }else{
  366. model.setValue("/root/main/newprof/yearseqno", yearseqno);
  367. model.setValue("/root/main/newprof/doctnm" , issnm);
  368. model.setValue("/root/main/newprof/orddept" , issdeptnm); // 2011-01-19 경북대 최원돈 추가
  369. }
  370. //2009-06-30 오후 11:02:46 강지훈 수정
  371. //1.응급실 전원소견서를 선택 2.인증저장 3.이송의뢰서 OCR서식이 유효 : 3가지 조건이 모두 충족해야 이송의뢰서 출력버튼이 보인다.
  372. var tranformcd = "0900005742"; //이송의뢰서 OCR 서식코드
  373. model.removeNode("/root/send/formyn/tranformcd");
  374. model.makeValue("/root/send/formyn/formcd", tranformcd) ;
  375. var iTranPrntCnt = getNodesetCnt(model, "/root/init/tranprntcd/hardcd[hardcd = '" + formcd + "']"); //응급실 전원소견서(hardcd = 9904)
  376. if(iTranPrntCnt > 0) {
  377. if(issstat == "I"){
  378. if(submit("TRMMR02912")){ //이송의뢰서가 유효한지 확인한다.
  379. var formYn = model.getValue("/root/temp/formyn/formyn");
  380. if(formYn == "Y"){
  381. btn_tranprnt.visible = true;
  382. }
  383. else{
  384. btn_tranprnt.visible = false;
  385. }
  386. }
  387. else{ // submit TRMMR02912 실패할 경우
  388. btn_tranprnt.visible = false;
  389. }
  390. } else { // 인증저장이 아닌경우
  391. btn_tranprnt.visible = false;
  392. }
  393. }
  394. else{ //응급실 전원 소견서가 아닌경우
  395. btn_tranprnt.visible = false;
  396. }
  397. if(issstat == "R"){ //임시인 경우, 재발행, 재출력, 발행 disabled
  398. btn_reiss.disabled = true;
  399. btn_iss.disabled = true;
  400. btn_reprnt.disabled = true;
  401. btn_del.disabled = false;
  402. } else { //인증인 경우
  403. if(issflag == "10"){ //미발행, 발행 enabled
  404. btn_iss.disabled = false;
  405. btn_reiss.disabled = true;
  406. btn_reprnt.disabled = true;
  407. btn_del.disabled = false;
  408. }else if(issflag == "20"){ //발행, 재발행, 재출력 enabled
  409. btn_iss.disabled = true;
  410. btn_reiss.disabled = false;
  411. btn_reprnt.disabled = false;
  412. btn_del.disabled = true;
  413. }else if(issflag == "30"){ //재발행, 재출력 enabled
  414. btn_iss.disabled = true;
  415. btn_reiss.disabled = true;
  416. btn_reprnt.disabled = false;
  417. btn_del.disabled = true;
  418. }else if(issflag == "50"){ //반환인 경우
  419. btn_iss.disabled = false;
  420. btn_reiss.disabled = true;
  421. btn_reprnt.disabled = true;
  422. btn_del.disabled = false;
  423. }else if(issflag == "60"){ //부분반환인 경우 2014.01.14
  424. btn_iss.disabled = true;
  425. btn_reiss.disabled = false;
  426. btn_reprnt.disabled = false;
  427. btn_del.disabled = true;
  428. }
  429. }
  430. if(formrecseq != 0){
  431. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  432. // 전원소견서(0000002536), 응급실 전원소견서(0000003129) 일때 전원의뢰정보가 있는 경우 셋팅해줌. 하드코드(8900) (2010.06.14. 이은영 추가)
  433. if (formcd == "0000002536" || formcd == "0000003129") {
  434. fSetChngHospInfo(pid, formcd, formrecseq);
  435. }
  436. }
  437. model.refresh();
  438. }
  439. /**
  440. * @desc : 제증명 서식 트리 작성
  441. * @
  442. * @param :
  443. * @return :
  444. * @author : HIT EMR Team
  445. * @---------------------------------------------------
  446. */
  447. function fGetProfForm(){
  448. model.removeNodeset("/root/send/reqdata");
  449. model.makeValue("/root/send/reqdata/formprogflag", "PROF");
  450. submit("TRMMR02903");
  451. }
  452. /**
  453. * @desc : 출력내역 정보 조회
  454. *
  455. * @param :
  456. * @return :
  457. * @author : HIT EMR Team
  458. * @---------------------------------------------------
  459. */
  460. function fGetProfPrntHist(){
  461. if(model.getValue("/root/main/patinfo/pid") == ""){
  462. messageBox("환자를", "C001");
  463. return;
  464. }
  465. model.removeNodeset("/root/send/reqdata");
  466. model.makeValue("/root/send/reqdata/pid" , model.getValue("/root/main/patinfo/pid"));
  467. model.makeValue("/root/send/reqdata/fromdd" , model.getValue("/root/main/srchprofhist/fromdd"));
  468. model.makeValue("/root/send/reqdata/todd" , model.getValue("/root/main/srchprofhist/todd"));
  469. model.makeValue("/root/send/reqdata/formcd" , model.getValue("/root/main/newprof/formnm"));
  470. model.makeValue("/root/send/reqdata/issflag", model.getValue("/root/main/srchprofhist/issflag"));
  471. model.makeValue("/root/send/reqdata/deptcd", model.getValue("/root/main/selectdept")); // 141021 - AYS 추가
  472. //20100621-kys-작성기간포함여부 추가
  473. if(model.getValue("/root/main/srchprofhist/allsrchflag") == "true"){
  474. model.makeValue("/root/send/reqdata/allsrchflag", "N"); //작성기간으로 이력조회
  475. }else{
  476. model.makeValue("/root/send/reqdata/allsrchflag", "Y"); //모든제증명 이력조회
  477. }
  478. //2009-09-01 오전 9:55:40 강지훈수정 : 하드코딩정보 변경
  479. var userDept = getUserInfo("dutplcecd");
  480. var editableDeptList = findNodeset(model, "/root/init/editabledeptcd/hardcd[hardcd ='"+ userDept +"']"); //제증명 출력부서 : 하드코딩테이블에서 관리함 9906
  481. if(0 < editableDeptList.length){
  482. model.makeValue("/root/send/reqdata/issstat", "R");
  483. }
  484. if(submit("TRMMR02904")){
  485. model.removeNodeset("/root/send/reqdata");
  486. }
  487. grd_profhistlist.rebuildStyle();
  488. /*제증명 이력에서 발행일자가 3년이상 지난것은 붉은 색으로 표기 / 원무과 요청*/
  489. var basedd = getCurrentDate().toDate().getAddDate(-36,'M').getDateFormat();
  490. var NodeCnt = getNodesetCount("/root/main/profhist/list");
  491. for(var i = 1; i <= NodeCnt; i++){
  492. if( model.getValue("/root/main/profhist/list["+i+"]/issdt") <= basedd ){
  493. grd_profhistlist.cellstyle("background-color", i, 1, i, grd_profhistlist.cols-1) ="#ff0000";
  494. }
  495. }
  496. grd_profhistlist.refresh();
  497. }
  498. /**
  499. * @desc : 제증명 즐겨찾기 셋팅
  500. *
  501. * @param :
  502. * @return :
  503. * @author : HIT EMR Team
  504. * @---------------------------------------------------
  505. */
  506. function fSetFavorProf(){
  507. model.copyNode("/root/send/reqdata", "/root/main/favor/savedata");
  508. submit("TXMMR02902");
  509. }
  510. /**
  511. * @desc : 즐겨찾기 리스트 조회
  512. *
  513. * @param :
  514. * @return :
  515. * @author : HIT EMR Team
  516. * @---------------------------------------------------
  517. */
  518. function fGetFavorList(){
  519. ivw_loader.src = "../../../emr/medirecweb/xrw/SMMMR00000_Empty.xrw";
  520. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  521. model.removeNodeset("/root/send/reqdata");
  522. model.makeValue("/root/send/reqdata/indxflag", "I");
  523. model.makeValue("/root/send/reqdata/userid", getUserInfo("userid"));
  524. submit("TRMMR02905");
  525. }
  526. /**
  527. * @desc : 정보 저장
  528. *
  529. * @param :
  530. * @return :
  531. * @author : HIT EMR Team
  532. * @---------------------------------------------------
  533. */
  534. function fSaveRec(saveflag)
  535. {
  536. if (fSaveChk() == "false" )
  537. return;
  538. var successflag = "";
  539. ivw_loader.window.javascript.gSubmitSaveFlag = false;
  540. var iRow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  541. if(saveflag == "I"){ //인증저장
  542. var userDept = getUserInfo("dutplcecd");
  543. var editableDeptList = findNodeset(model, "/root/init/editabledeptcd/hardcd[hardcd ='"+ userDept +"']"); //인증저장 제외부서 : 하드코딩테이블에서 관리함 9906
  544. if(0 < editableDeptList.length){
  545. setParameter("SSMMR01100_nonCert", "Y");
  546. }
  547. setParameter("chkdeptpresave", "N");
  548. successflag = ivw_loader.window.javascript.fClickSave("Y");
  549. } else if(saveflag == "R"){ //임시저장
  550. setParameter("chkdeptpresave", "N");
  551. successflag = ivw_loader.window.javascript.fClickSave("N");
  552. }
  553. if (getParameter("SMMMR02900_saveerr") == "Y"){
  554. clearParameter("SMMMR02900_saveerr");
  555. messageBox("저장되지", "E007");//않았습니다.
  556. return;
  557. } else {
  558. clearParameter("SMMMR02900_saveerr");
  559. }
  560. //2010.02.24 dhkim - blocking 메세지후에 리턴처리
  561. if(successflag == false){
  562. return;
  563. }
  564. fSetRec();
  565. fSetProf(saveflag);
  566. if( degnseqchk == "N"){
  567. return;
  568. }
  569. if(saveflag == "I"){
  570. if(model.getValue("/root/main/newprof/signedyn") == "N"){
  571. return;
  572. }
  573. model.setValue("/root/main/newprof/issstat", saveflag);
  574. }
  575. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  576. var dutplcecd = getUserInfo("dutplcecd");
  577. if(model.getValue("/root/init/dutplcecd/hardcd[hardcd='" + dutplcecd + "']/hardcd") == ""){
  578. model.makeValue("/root/main/newprof/orddeptcd", getUserInfo("dutplcecd"));
  579. }
  580. //2009-07-20 오후 1:27:10 강지훈 수정 : 용도가 누락되는 오류 수정
  581. var issusge111 = instance1.selectSingleNode("/root/main/issusge");
  582. var issusge = model.getValue("/root/main/issusge");
  583. if(issusge != ""){
  584. issusge = issusge.split("▩");
  585. var prstusge = issusge[1].split("▦");
  586. model.setValue("/root/main/newprof/prstusge" , prstusge[0]);
  587. }
  588. else{
  589. model.removeNode("/root/main/newprof/prstusge");
  590. model.makeValue("/root/main/newprof/prstusge" , "");
  591. }
  592. copyNodeset("/root/send/reqdata/prof", "/root/main/newprof", "replace");
  593. if(model.getValue("/root/main/newprof/status") == "U"){
  594. var sendNode = instance1.selectNodes("/root/main/savedinfo/rsltmsg");
  595. copyNodeset("/root/send/reqdata/profinfo", "/root/main/savedinfo/profcretseqinfo", "append");
  596. model.makeValue("/root/send/reqdata/rsltmsg", getNodeListCSV(sendNode));
  597. }
  598. if(submit("TXMMR02903")){
  599. var rsltNodeCnt = getNodesetCount("/root/main/savedinfo/rsltmsg");
  600. for(var i = 1; i <= rsltNodeCnt; i++){
  601. if(model.getValue("/root/main/savedinfo/rsltmsg["+i+"]/formrecseq") != ""){
  602. var formrecseq = model.getValue("/root/main/savedinfo/rsltmsg["+ i +"]/formrecseq");
  603. var rechistseq = model.getValue("/root/main/savedinfo/rsltmsg["+ i +"]/rechistseq");
  604. var espiseq = model.getValue("/root/main/savedinfo/rsltmsg["+ i +"]/espiseq");
  605. ivw_loader.window.javascript.fSetSavedInfo(formrecseq, rechistseq, espiseq);
  606. }else{
  607. messageBox("저장을", "E009"); //*E009=실패하였습니다.
  608. return;
  609. }
  610. }
  611. messageBox("성공적으로 저장이", "I002"); //*I002=완료되었습니다.
  612. var pageInfo = new PAGEINFO();
  613. model.setValue("/root/main/newprof/status", ivw_loader.model.getValue(pageInfo.recMastRef + "/status"));
  614. chk_newiss.value = "";
  615. //model.resetInstanceNode("/root/main/savedinfo");
  616. if(model.getValue("/root/temp/closeyn") == "Y"){
  617. return; //창이 닫힐때 호출한 것이면 저장후 return.
  618. }
  619. } else {
  620. messageBox("저장을", "E009");
  621. return;
  622. }
  623. fSendRecInfoToSMMMO00100(saveflag);
  624. //2012/11/27 Start 입원이력 자동입력 버튼 히든처리
  625. btn_inptinfo.visible=false;
  626. //2012/11/27 End
  627. btn_tabprofhist.selected = true;
  628. model.toggle("case3");
  629. model.makeValue("/root/main/newprof/formnm", "-");
  630. model.makeValue("/root/main/selectdept", "-"); // 141114 AYS - 추가
  631. chk_newiss.attribute("visibility") = "hidden";
  632. model.setValue("/root/temp/openmode", "rec");
  633. fGetProfPrntHist();
  634. var profcertseq = model.getValue("/root/main/savedinfo/profcertseqinfo/profcertseq");
  635. var trgtrow = grd_profhistlist.findRow(profcertseq, 1, grd_profhistlist.colRef("profcertseq"));
  636. grd_profhistlist.row = trgtrow;
  637. fLoadProfForm();
  638. model.removeNodeset("/root/main/issusge");
  639. }
  640. /**
  641. * @desc : 제증명 정보 세팅
  642. *
  643. * @param :
  644. * @return :
  645. * @author : HIT EMR Team
  646. * @---------------------------------------------------
  647. */
  648. function fSetProf(saveflag){
  649. model.makeNode("/root/send/reqdata/prof");
  650. fSetProfNode(saveflag);
  651. return;
  652. }
  653. /**
  654. * @desc : 제증명 노드정보 셋팅
  655. *
  656. * @param :
  657. * @return :
  658. * @author : HIT EMR Team
  659. * @---------------------------------------------------
  660. */
  661. function fSetProfNode(saveflag){
  662. var iRow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  663. var nodePath = "/root/main/newprof";
  664. var orddept = model.getValue("/root/main/newprof/orddept"); //진료과
  665. var orddeptcd = model.getValue("/root/main/newprof/orddeptcd"); //진료과코드
  666. var orddoctid = model.getValue("/root/main/newprof/orddoctid"); //전문의id
  667. var doctnm = model.getValue("/root/main/newprof/doctnm"); //전문의이름
  668. var licnsno = model.getValue("/root/main/newprof/licnsno"); //면허번호
  669. // 인증저장된 제증명을 수정
  670. // 이력 Tab에서 기록이 미발행이 아닌 상태에서 인증저장을 클릭하면,
  671. // 새로운 기록으로 추가 된다
  672. if((saveflag == "I") && (model.getValue("/root/temp/openmode") == "rec")
  673. && (model.getValue("/root/main/profhist/list[" + iRow + "]/issflag") != "10")){
  674. degnseqchk = "Y";
  675. model.removenode("/root/send/degnpara");
  676. model.makeNode("/root/send/degnpara");
  677. model.makeValue("/root/send/degnpara/instcd", getUserInfo("dutplceinstcd"));
  678. model.makeValue("/root/send/degnpara/formcd", model.getValue("/root/send/reqdata/formrec/formcd"));
  679. if(submit("TRMMR06504")){
  680. if( model.getValue("/root/send/reqdata/formrec/formdegnseq") != model.getValue("/root/degnseq/item/formdegnseq") ){
  681. messageBox("해당 기록의 서식 디자인이 현재 변경되었습니다. \n신규로 작성해주세요.", "E999");
  682. degnseqchk = "N";
  683. return;
  684. }
  685. }
  686. model.makeValue(nodePath+"/status", "C");
  687. model.makeValue("/root/send/reqdata/formrec/status" , "C");
  688. model.makeValue("/root/send/reqdata/formrec/pid" , model.getValue("/root/main/patinfo/pid"));
  689. model.makeValue("/root/send/reqdata/formrec/orddd" , model.getValue("/root/main/patinfo/orddd"));
  690. model.makeValue("/root/send/reqdata/formrec/cretno" , model.getValue("/root/main/patinfo/cretno"));
  691. model.makeValue("/root/send/reqdata/formrec/ioflag" , model.getValue("/root/main/patinfo/ioflag"));
  692. model.makeValue("/root/send/reqdata/formrec/orddeptcd" , model.getValue("/root/main/patinfo/orddeptcd"));
  693. model.makeValue("/root/send/reqdata/formrec/formrecdeptcd" , getUserInfo("dutplcecd"));
  694. model.makeValue("/root/send/reqdata/formrec/formrecdeptnm" , getUserInfo("dutplcenm"));
  695. model.makeValue("/root/send/reqdata/formrec/formrecuserid" , getUserInfo("userid"));
  696. model.makeValue("/root/send/reqdata/formrec/formrecusernm" , getUserInfo("usernm"));
  697. } else {
  698. degnseqchk = "Y";
  699. model.makeValue(nodePath+"/status", model.getValue("/root/send/reqdata/formrec/status"));
  700. }
  701. model.makeValue(nodePath+"/pid" , model.getValue("/root/main/patinfo/pid"));
  702. model.makeValue(nodePath+"/orddd" , model.getValue("/root/main/patinfo/orddd"));
  703. model.makeValue(nodePath+"/cretno" , model.getValue("/root/main/patinfo/cretno"));
  704. model.makeValue(nodePath+"/ioflag" , model.getValue("/root/main/patinfo/ioflag"));
  705. model.makeValue(nodePath+"/instcd" , getUserInfo("dutplceinstcd"));
  706. model.makeValue(nodePath+"/orddeptcd" , model.getValue("/root/main/patinfo/orddeptcd"));
  707. model.makeValue(nodePath+"/formcd" , model.getValue("/root/main/formcd"));
  708. if( swc_prof.selectedIndex == 2 ){
  709. model.makeValue(nodePath+"/formrecseq", model.getValue("/root/main/profhist/list["+iRow+"]/formrecseq"));
  710. model.makeValue(nodePath+"/yearseqno" , model.getValue("/root/main/profhist/list["+iRow+"]/yearseqno"));
  711. model.makeValue(nodePath+"/issstat" , model.getValue("/root/main/profhist/list["+iRow+"]/issstat"));
  712. var userDept = getUserInfo("dutplcecd");
  713. //제증명 출력부서 : 하드코딩테이블에서 관리함 9906
  714. var editableDeptList = findNodeset(model, "/root/init/editabledeptcd/hardcd[hardcd ='"+ userDept +"']");
  715. if(0 < editableDeptList.length){
  716. model.makeValue(nodePath+"/issid" , model.getValue("/root/main/profhist/list[" + iRow + "]/issid"));
  717. model.makeValue(nodePath+"/issdeptcd", model.getValue("/root/main/profhist/list[" + iRow + "]/issdeptcd"));
  718. model.makeValue(nodePath+"/issflag" , model.getValue("/root/main/profhist/list[" + iRow + "]/issflag"));
  719. } else {
  720. model.makeValue(nodePath+"/issid" , orddoctid);
  721. model.makeValue(nodePath+"/issdeptcd", orddeptcd);
  722. model.makeValue(nodePath+"/issflag" , "10");
  723. //마지막 수정의사의 면허번호, 의사명, 의사라이센스가 들어간다.
  724. model.makeValue(nodePath+"/orddoctid" , getUserInfo("userid"));
  725. model.makeValue(nodePath+"/doctnm" , getUserInfo("usernm"));
  726. model.makeValue(nodePath+"/licnsno" , getUserInfo("licnsno"));
  727. }
  728. model.makeValue("/root/main/savedinfo/profcretseqinfo/profcretseq", model.getValue("/root/main/profhist/list["+iRow+"]/profcertseq"));
  729. } else {
  730. model.makeValue(nodePath+"/formrecseq", model.getValue("/root/main/savedinfo/rsltmsg/formrecseq"));
  731. model.makeValue(nodePath+"/issid" , orddoctid);
  732. model.makeValue(nodePath+"/issdeptcd" , orddeptcd);
  733. model.makeValue(nodePath+"/issflag" , "10");
  734. if(saveflag == "I"){
  735. model.makeValue(nodePath+"/issstat", saveflag);
  736. } else {
  737. model.makeValue(nodePath+"/issstat", "R");
  738. }
  739. }
  740. var issusge = model.getValue("/root/main/issusge");
  741. if(issusge != ""){
  742. issusge = issusge.split("▩");
  743. var prstusge = issusge[1].split("▦");
  744. model.makeValue(nodePath+"/prstusge" , prstusge[0]);
  745. }
  746. model.makeValue(nodePath+"/issdt" , getCurrentDate() + getCurrentTime());
  747. model.makeValue(nodePath+"/deluserid" , "");
  748. model.makeValue(nodePath+"/deldt" , "");
  749. model.makeValue(nodePath+"/prntuserid" , "");
  750. model.makeValue(nodePath+"/prntdeptcd" , "");
  751. model.makeValue(nodePath+"/prntdt" , "");
  752. model.makeValue(nodePath+"/prntuserid" , "");
  753. model.makeValue(nodePath+"/freeissresn" , "");
  754. model.makeValue(nodePath+"/fstrgstrid" , getUserInfo("userid"));
  755. model.makeValue(nodePath+"/fstrgstdt" , getCurrentDate() + getCurrentTime());
  756. model.makeValue(nodePath+"/lastupdtrid" , getUserInfo("userid"));
  757. model.makeValue(nodePath+"/lastupdtdt" , getCurrentDate() + getCurrentTime());
  758. }
  759. /**
  760. * @desc : 기록정보 지정
  761. *
  762. * @param :
  763. * @return :
  764. * @author : HIT EMR Team
  765. * @---------------------------------------------------
  766. */
  767. function fSetRec(){
  768. model.removeNodeset("/root/send/reqdata/recitem");
  769. model.removeNodeset("/root/send/reqdata/formrec");
  770. model.makeNode("/root/send/reqdata/recitem");
  771. model.makeNode("/root/send/reqdata/formrec");
  772. copyNodeset("/root/send/reqdata/formrec", "/root/send/saverecinfo/formrec" ,"replace" , model, ivw_loader.model);
  773. model.makeValue("/root/send/reqdata/recitem", ivw_loader.model.getValue("/root/send/saverecinfo/recitem"));
  774. if(model.getValue("/root/main/newprof/status") == "U"){
  775. model.setValue("/root/send/reqdata/formrec/status", "U");
  776. }
  777. if(chk_newiss.value == "newiss"){
  778. model.setValue("/root/send/reqdata/formrec/status", "C");
  779. model.setValue("/root/main/newprof/status", "C")
  780. }
  781. }
  782. /**
  783. * @desc : 모달 호출
  784. *
  785. * @param :
  786. * @return :
  787. * @author : HIT EMR Team
  788. * @---------------------------------------------------
  789. */
  790. function fCallModal(){
  791. var nodeList = "";
  792. model.makeNode("/root/send/reqdata/issusge");
  793. modal("SPMMR02200", 1, 0, 0, "SPMMR02200", "/root/main/newprof", "/root/temp/prof");
  794. //alert(instance1.selectNodesXml("/root/temp/prof"));
  795. model.setValue("/root/send/reqdata/issusge", model.getValue("/root/main/issusge"));
  796. }
  797. /**
  798. * @desc : 사용여부
  799. *
  800. * @param :
  801. * @return :
  802. * @author : HIT EMR Team
  803. * @---------------------------------------------------
  804. */
  805. function fPrstUsge(){
  806. model.removeNodeset("/root/hidden/issusge");
  807. model.makeNode("/root/hidden/issusge");
  808. zbcfGetCodeList(new Array("M0332"), new Array("/root/hidden/issusge"));
  809. // 2013.12.26 CYW 제증명, 사본발행 용도 공통코드 분리
  810. zbcfGetCodeList(new Array("M0385"), new Array("/root/hidden/issusge"));
  811. var isscnt = getNodesetCount("/root/hidden/issusge/M0385");
  812. for( i = 1 ; i <= isscnt ; i++ ){
  813. model.makeValue("/root/hidden/issusge/M0332[" + i + "]/cdid", model.getValue("/root/hidden/issusge/M0385[" + i + "]/cdid"));
  814. model.makeValue("/root/hidden/issusge/M0332[" + i + "]/cdnm", model.getValue("/root/hidden/issusge/M0385[" + i + "]/cdnm"));
  815. }
  816. model.refresh();
  817. }
  818. /**
  819. * @desc : 화면 표현 셋팅
  820. *
  821. * @param :
  822. * @return :
  823. * @author : HIT EMR Team
  824. * @---------------------------------------------------
  825. */
  826. function fSetDisplay(pid, orddd, cretno, ioflag, disflag, profcertseq, formrecseq, issstat){
  827. var fromdd = ((getCurrentDate()).toDate()).getAddDate(-1, "M");
  828. model.setValue("/root/main/srchprofhist/fromdd", fromdd.getDateFormat());
  829. model.setValue("/root/main/srchprofhist/todd", getCurrentDate());
  830. model.setValue("/root/main/patinfo/pid" , pid);
  831. model.setValue("/root/main/patinfo/orddd" , orddd);
  832. model.setValue("/root/main/patinfo/cretno" , cretno);
  833. model.setValue("/root/main/patinfo/ioflag" , ioflag);
  834. cmb_profformlist.value = "-";
  835. cmb_selectdept.value = "-";
  836. fReqGetComnPatOrdInfo(pid);
  837. fGetProfForm();
  838. fReqFormlist();
  839. fPrstUsge();
  840. btn_tabprofhist.dispatch("onclick");
  841. if((formrecseq != "") || (formrecseq != null)){
  842. fGetProfPrntHist();
  843. if(profcertseq != ""){
  844. var iRow = grd_profhistlist.findRow(profcertseq, 1, grd_profhistlist.colRef("profcertseq"));
  845. grd_profhistlist.row = iRow;
  846. fLoadProfForm();
  847. }
  848. }
  849. model.refresh();
  850. }
  851. /**
  852. * @desc : 즐겨찾기 추가
  853. *
  854. * @param :
  855. * @return :
  856. * @author : HIT EMR Team
  857. * @---------------------------------------------------
  858. */
  859. function fAddFavor(){
  860. var selectedFormcd = model.getValue("/root/main/profform/list[" + ( trv_proflist.mouseRow + 1 )+ "]/formcd");
  861. if(selectedFormcd == ""){
  862. return;
  863. }
  864. if(trv_proflist.isCell(event.target) && trv_proflist.mouseRow <= trv_proflist.length){
  865. var selIndx = trv_proflist.mouseRow + 1;
  866. var depth = instance1.selectSingleNode("/root/main/profform/list[" + selIndx + "]").depth.text;
  867. model.removeNodeSet("/root/main/favor/savedata");
  868. model.makeValue("/root/main/favor/savedata/supitemindxseq", instance1.selectSingleNode("/root/main/profform/list[" + selIndx + "]").supindx.text);
  869. model.makeValue("/root/main/favor/savedata/indxflag", "I");
  870. model.makeValue("/root/main/favor/savedata/deptcd", getUserInfo("dutplcecd"));
  871. model.makeValue("/root/main/favor/savedata/userid", getUserInfo("userid"));
  872. model.makeValue("/root/main/favor/savedata/fstrgstrid", getUserInfo("userid"));
  873. model.makeValue("/root/main/favor/savedata/fstrgstdt", getCurrentDate()+getCurrentTime());
  874. model.makeValue("/root/main/favor/savedata/lastupdtrid", getUserInfo("userid"));
  875. model.makeValue("/root/main/favor/savedata/lastupdtdt", getCurrentDate()+getCurrentTime());
  876. if(selectedFormcd == ""){
  877. model.makeValue("/root/main/favor/savedata/linkflag", "N");
  878. model.makeValue("/root/main/favor/savedata/linkcd", "");
  879. } else {
  880. model.makeValue("/root/main/favor/savedata/linkflag", "Y");
  881. model.makeValue("/root/main/favor/savedata/linkcd", selectedFormcd);
  882. }
  883. setPopupMenu("trv_proflist", false, "/root/init/mouserght", "label", "value");
  884. } else {
  885. initPopupMenu();
  886. }
  887. }
  888. /**
  889. * @desc : 제증명 즐겨찾기 삭제
  890. *
  891. * @param :
  892. * @return :
  893. * @author : HIT EMR Team
  894. * @---------------------------------------------------
  895. */
  896. function fDelFavorProf(){
  897. var selIndx = trv_favor.selectedIndex + 1;
  898. var profItemindx = instance1.selectSingleNode("/root/main/favorlist/list[" + selIndx + "]").itemindxseq.text
  899. model.removeNodeset("/root/send/reqdata");
  900. model.makeNode("/root/send/reqdata");
  901. model.makeValue("/root/send/reqdata/itemindxseq", profItemindx);
  902. model.makeValue("/root/send/reqdata/indxflag" , "I");
  903. model.makeValue("/root/send/reqdata/userid" , getUserInfo("userid"));
  904. submit("TXMMR02904");
  905. }
  906. /**
  907. * @desc : 생성될 수가데이터를 조합한다.
  908. *
  909. * @param :
  910. * @return :
  911. * @author : HIT EMR Team
  912. * @---------------------------------------------------
  913. */
  914. function fCalsSorcSave(iRow, calcCnt, freecalcscorcd){
  915. var sPassData =
  916. "savedataflag" //저장자료구분 (2:처방)
  917. + "▦saveflag" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  918. + "▦prcpflag" //처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  919. + "▦inptflag" //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  920. + "▦pamflag" //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  921. + "▦diagflag" //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  922. + "▦prcperrflag" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  923. + "▦deptcd" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  924. + "▦deptnm" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  925. + "▦userid" //사용자ID (입력자 또는 로그인한 사용자ID)
  926. + "▦usernm" //사용자명 (입력자 또는 로그인한 사용자명)
  927. + "▦singyn" //전자서명여부
  928. + "▦pid" //등록번호(원무Key)
  929. + "▦orddd" //진료일자(원무Key) - 입원일경우는 '-'
  930. + "▦indd" //입원일자(원무Key) - 외래일경우는 '-'
  931. + "▦cretno" //생성번호(원무Key)
  932. + "▦orddeptcd" //진료과(원무)
  933. + "▦orddrid" //진료의ID(원무)
  934. + "▦instcd" //기관코드
  935. + "▦status" //신규(I), DC(C)
  936. + "▦rowno" //줄번호 (병리 요구)
  937. + "▦prcpdd" //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  938. + "▦prcpno" //처방번호 (status가 'I'일 경우 0)
  939. + "▦prcphistno" //처방이력번호 (status가 'I'일 경우 0)
  940. + "▦prcpgenrflag" //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  941. + "▦prcpstatcd" //처방상태 : '000'
  942. + "▦prcpkindcd" //처방종류 : '20'
  943. + "▦prcpcd" //처방코드
  944. + "▦calcscorcd" //수가코드
  945. + "▦inclprcpcd" //종속처방코드 ('-')
  946. + "▦inclprcpno" //종속처방번호 (일련번호 - 종속처방코드별로 생성)
  947. + "▦prcpexecdeptcd" //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  948. + "▦prcphopedd" //처방희망일자 (처방일자 이전으로 발생불가)
  949. + "▦prcpqty" //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  950. + "▦prcpqtyunitflag" //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  951. + "▦prcptims" //처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  952. + "▦prcpdayno" //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  953. + "▦payflagcd" //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  954. + "▦erprcpflag" //응급처방구분 (Y/N)
  955. + "▦precureprcpflag" //선처치처방구분 (Y/N)
  956. + "▦nigtprcpflag" //야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  957. + "▦portprcpflag" //포터블처방구분 (Y/N)
  958. + "▦fixprcpflag" //정액처방구분 (Y/N)
  959. + "▦choiordflag" //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  960. + "▦anamneflag" //기왕력(증)구분 (Y/N)
  961. + "▦prcpdirecflag" //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  962. + "▦angioflagcd" //Angio구분 (코드정의서 M0006 참조) : '-'
  963. + "▦opansflagcd" //수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  964. + "▦ansttm" //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  965. + "▦offictourhealexamflag" //출장검진구분 (Y/N)
  966. + "▦stemcellflag" //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  967. + "▦hosinhosoutflag" //원내외구분(건진은 'I', 약이 아닐경우 '-')
  968. + "▦hosinprcpresncd" //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  969. + "▦issdeptcd" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  970. + "▦prcpauthflag" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  971. + "▦prcpinptflag" //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  972. + "▦prcpsignflag" //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  973. + "▦oprsrvno" //수술예약번호(0)
  974. + "▦clincstdyflag" //임상연구구분 (Y/N)
  975. + "▦clincstdycd" //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  976. + "▦drugmthdspccd" //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  977. + "▦prcpdelivefact" //처방전달사항
  978. + "▦tootfact" //치식 (병리만 사용, 나머지는 '-')
  979. + "▦matrsetprcpspec" //재료처방내용 ('-') -> 추후정의
  980. + "▦calcflag" //계산구분 (Y/N)
  981. + "▦rsrvflag" //예약구분 (Y/N)
  982. + "▦rsrvdd" //예약일자 ('N'일 경우 '00000000')
  983. + "▦rsrvtm" //예약시간 ('N'일 경우 '000000')
  984. + "▦rsrvrid" //예약자ID ('-')
  985. + "▦execdd" //실시일자 ('00000000')
  986. + "▦exectm" //실시시간 ('000000')
  987. + "▦execrid" //실시자ID ('-')
  988. + "▦direcprcplnkdd" //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  989. + "▦direcprcplnkno" //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  990. + "▦ordreqlnkno" //진료의뢰연계번호 (0)
  991. + "▦testreqlnkno" //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  992. + "▩";
  993. var savedataflag = "";
  994. var saveflag = "";
  995. var prcpflag = "";
  996. var inptflag = "";
  997. var pamflag = "";
  998. var diagflag = "";
  999. var prcperrflag = "";
  1000. var deptcd = "";
  1001. var deptnm = "";
  1002. var userid = "";
  1003. var usernm = "";
  1004. var singyn = "";
  1005. var pid = "";
  1006. var orddd = "";
  1007. var indd = "";
  1008. var cretno = "";
  1009. var orddeptcd = "";
  1010. var orddrid = "";
  1011. var instcd = "";
  1012. var status = "";
  1013. var rowno = "";
  1014. var prcpdd = "";
  1015. var prcpno = "";
  1016. var prcphistno = "";
  1017. var prcpgenrflag = "";
  1018. var prcpstatcd = "";
  1019. var prcpkindcd = "";
  1020. var prcpcd = "";
  1021. var calcscorcd = "";
  1022. var inclprcpcd = "";
  1023. var inclprcpno = "";
  1024. var prcpexecdeptcd = "";
  1025. var prcphopedd = "";
  1026. var prcpqty = "";
  1027. var prcpqtyunitflag = "";
  1028. var prcptims = "";
  1029. var prcpdayno = "";
  1030. var payflagcd = "";
  1031. var erprcpflag = "";
  1032. var precureprcpflag = "";
  1033. var nigtprcpflag = "";
  1034. var portprcpflag = "";
  1035. var fixprcpflag = "";
  1036. var choiordflag = "";
  1037. var anamneflag = "";
  1038. var prcpdirecflag = "";
  1039. var angioflagcd = "";
  1040. var opansflagcd = "";
  1041. var ansttm = "";
  1042. var offictourhealexamflag = "";
  1043. var stemcellflag = "";
  1044. var hosinhosoutflag = "";
  1045. var hosinprcpresncd = "";
  1046. var issdeptcd = "";
  1047. var prcpauthflag = "";
  1048. var prcpinptflag = "";
  1049. var prcpsignflag = "";
  1050. var oprsrvno = "";
  1051. var clincstdyflag = "";
  1052. var clincstdycd = "";
  1053. var drugmthdspccd = "";
  1054. var prcpdelivefact = "";
  1055. var tootfact = "";
  1056. var matrsetprcpspec = "";
  1057. var calcflag = "";
  1058. var rsrvflag = "";
  1059. var rsrvdd = "";
  1060. var rsrvtm = "";
  1061. var rsrvrid = "";
  1062. var execdd = "";
  1063. var exectm = "";
  1064. var execrid = "";
  1065. var direcprcplnkdd = "";
  1066. var direcprcplnkno = "";
  1067. var ordreqlnkno = "";
  1068. var testreqlnkno = "";
  1069. for(var i = 1; i <= calcCnt; i++){
  1070. savedataflag = "2"; //저장자료구분 (2:처방)
  1071. if((iRow >= 0)&&(iRow != "")){
  1072. saveflag = model.getValue("/root/main/profhist/list["+iRow+"]/ioflag"); //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1073. } else {
  1074. saveflag = model.getValue("/root/main/acptoccinfo/otpt_ordtype"); //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1075. }
  1076. prcpflag = "5"; //처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  1077. inptflag = "15"; //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  1078. pamflag = "Y"; //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  1079. diagflag = "N"; //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  1080. prcperrflag = "N"; //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1081. deptcd = getUserInfo("dutplcecd"); //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1082. deptnm = getUserInfo("dutplcenm"); //부서명 (입력자 또는 로그인한 사용자의 부서명)
  1083. userid = getUserInfo("userid"); //사용자ID (입력자 또는 로그인한 사용자ID)
  1084. usernm = getUserInfo("usernm"); //사용자명 (입력자 또는 로그인한 사용자명)
  1085. if((iRow >= 0)&&(iRow != "")){
  1086. singyn = "N"; //전자서명여부
  1087. pid = model.getValue("/root/main/profhist/list["+iRow+"]/pid"); //등록번호(원무Key)
  1088. if(saveflag == "O") {
  1089. orddd = model.getValue("/root/main/profhist/list["+iRow+"]/orddd"); //진료일자(원무Key) - 입원일경우는 '-'
  1090. indd = "-"; //입원일자(원무Key) - 외래일경우는 '-'
  1091. } else {
  1092. indd = model.getValue("/root/main/profhist/list["+iRow+"]/orddd");
  1093. orddd = "-";
  1094. }
  1095. cretno = model.getValue("/root/main/profhist/list["+iRow+"]/cretno"); //생성번호(원무Key)
  1096. // KNUH_20110504_수정(환자수진정보로 진료과, 진료의사 셋팅)
  1097. //orddeptcd = model.getValue("/root/main/profhist/list["+iRow+"]/issdeptcd"); //진료과(원무)
  1098. //orddrid = model.getValue("/root/main/profhist/list["+iRow+"]/issid");
  1099. orddeptcd = model.getValue("/root/main/profhist/list["+iRow+"]/orddeptcd"); //진료과(원무)
  1100. orddrid = model.getValue("/root/main/profhist/list["+iRow+"]/orddrid");
  1101. if( model.getValue("/root/send/chngissinfo/issvaliinfoflag") == "Y" ){
  1102. if ( model.getValue("/root/send/chngissinfo/orddeptcd") != "" ){
  1103. orddeptcd = model.getValue("/root/send/chngissinfo/orddeptcd");
  1104. }
  1105. if( model.getValue("/root/send/chngissinfo/orddoctid") != "" ){
  1106. orddrid = model.getValue("/root/send/chngissinfo/orddoctid");
  1107. }
  1108. }
  1109. var issdt = model.getValue("/root/main/profhist/list["+iRow+"]/issdt");
  1110. } else {
  1111. singyn = "N"; //전자서명여부
  1112. pid = model.getValue("/root/main/acptoccinfo/otpt_pid"); //등록번호(원무Key)
  1113. if(saveflag == "O") {
  1114. orddd = model.getValue("/root/main/acptoccinfo/otpt_orddd"); //진료일자(원무Key) - 입원일경우는 '-'
  1115. indd = "-"; //입원일자(원무Key) - 외래일경우는 '-'
  1116. } else {
  1117. indd = model.getValue("/root/main/acptoccinfo/otpt_orddd");
  1118. orddd = "-";
  1119. }
  1120. cretno = 0; //생성번호(원무Key)
  1121. orddeptcd = model.getValue("/root/main/acptoccinfo/otpt_orddeptcd"); //진료과(원무)
  1122. orddrid = model.getValue("/root/main/acptoccinfo/otpt_orddrid");
  1123. }
  1124. instcd = getUserInfo("dutplceinstcd"); //기관코드
  1125. status = ""; //신규(I), DC(C)
  1126. status = "I";
  1127. rowno = "1"; //줄번호 (병리 요구)
  1128. prcpdd = ""; //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  1129. if (saveflag == "I"){
  1130. prcpdd = getCurrentDate();
  1131. } else {
  1132. prcpdd = orddd;
  1133. }
  1134. prcpno = "0"; //처방번호 (status가 'I'일 경우 0)
  1135. prcphistno = "0"; //처방이력번호 (status가 'I'일 경우 0)
  1136. prcpgenrflag = saveflag; //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  1137. prcpstatcd = "000"; //처방상태 : '000'
  1138. prcpkindcd = "20"; //처방종류 : '20'
  1139. prcpcd = model.getValue("/root/main/calcscorinfo/calcscorlist[" + i + "]/calcscorcd"); //처방코드
  1140. calcscorcd = model.getValue("/root/main/calcscorinfo/calcscorlist[" + i + "]/calcscorcd"); //수가코드
  1141. inclprcpcd = "-"; //종속처방코드 ('-')
  1142. inclprcpno = ""; //종속처방번호 (일련번호 - 종속처방코드별로 생성)
  1143. prcpexecdeptcd = getUserInfo("dutplcecd"); //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  1144. prcphopedd = prcpdd //처방희망일자 (처방일자 이전으로 발생불가)
  1145. prcpqty = "1"; //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  1146. prcpqtyunitflag = "-"; //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  1147. prcptims = "1"; //처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  1148. prcpdayno = "1"; //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  1149. payflagcd = "-"; //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  1150. erprcpflag = "N"; //응급처방구분 (Y/N)
  1151. precureprcpflag = "N"; //선처치처방구분 (Y/N)
  1152. nigtprcpflag = "N"; //야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  1153. portprcpflag = "N"; //포터블처방구분 (Y/N)
  1154. fixprcpflag = "N"; //정액처방구분 (Y/N)
  1155. choiordflag = "-"; //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  1156. anamneflag = "N"; //기왕력(증)구분 (Y/N)
  1157. prcpdirecflag = "-"; //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  1158. angioflagcd = "-"; //Angio구분 (코드정의서 M0006 참조) : '-'
  1159. opansflagcd = "-"; //수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  1160. ansttm = "0000"; //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  1161. offictourhealexamflag = "N"; //출장검진구분 (Y/N)
  1162. stemcellflag = "N"; //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  1163. hosinhosoutflag = "-"; //원내외구분(건진은 'I', 약이 아닐경우 '-')
  1164. hosinprcpresncd = "00"; //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  1165. issdeptcd = "-"; //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  1166. prcpauthflag = "5"; //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  1167. prcpinptflag = "15"; //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  1168. prcpsignflag = "0"; //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  1169. oprsrvno = "0"; //수술예약번호(0)
  1170. clincstdyflag = "N"; //임상연구구분 (Y/N)
  1171. clincstdycd = "-"; //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  1172. drugmthdspccd = "-"; //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  1173. prcpdelivefact = "-"; //처방전달사항
  1174. tootfact = "-"; //치식 (병리만 사용, 나머지는 '-')
  1175. matrsetprcpspec = "-"; //재료처방내용 ('-') -> 추후정의
  1176. calcflag = "N"; //계산구분 (Y/N)
  1177. rsrvflag = "N"; //예약구분 (Y/N)
  1178. rsrvdd = "00000000"; //예약일자 ('N'일 경우 '00000000')
  1179. rsrvtm = "000000"; //예약시간 ('N'일 경우 '000000')
  1180. rsrvrid = "-"; //예약자ID ('-')
  1181. execdd = getCurrentDate(); //실시일자 ('00000000')
  1182. exectm = getCurrentTime(); //실시시간 ('000000')
  1183. execrid = getUserInfo("userid"); //실시자ID ('-')
  1184. direcprcplnkdd = "00000000"; //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  1185. direcprcplnkno = "0"; //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  1186. ordreqlnkno = "0"; //진료의뢰연계번호 (0)
  1187. testreqlnkno = "0"; //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  1188. sPassData = sPassData
  1189. + savedataflag //savedataflag 저장자료구분 (2:처방)
  1190. + "▦" + saveflag //saveflag" 저장구분 (O:외래, I:입원, E:응급, S:건진)
  1191. + "▦" + prcpflag //prcpflag" 처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  1192. + "▦" + inptflag //inptflag" 입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  1193. + "▦" + pamflag //pamflag" 원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  1194. + "▦" + diagflag //diagflag" 진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  1195. + "▦" + prcperrflag //prcperrflag" 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1196. + "▦" + deptcd //deptcd" 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1197. + "▦" + deptnm //deptnm" 부서명 (입력자 또는 로그인한 사용자의 부서명)
  1198. + "▦" + userid //userid" 사용자ID (입력자 또는 로그인한 사용자ID)
  1199. + "▦" + usernm //usernm" 사용자명 (입력자 또는 로그인한 사용자명)
  1200. + "▦" + singyn //singyn" 전자서명여부
  1201. + "▦" + pid //pid" 등록번호(원무Key)
  1202. + "▦" + orddd //orddd" 진료일자(원무Key) - 입원일경우는 '-'
  1203. + "▦" + indd //indd" 입원일자(원무Key) - 외래일경우는 '-'
  1204. + "▦" + cretno //cretno" 생성번호(원무Key)
  1205. + "▦" + orddeptcd //orddeptcd" 진료과(원무)
  1206. + "▦" + orddrid //orddrid" 진료의ID(원무)
  1207. + "▦" + instcd //instcd" 기관코드
  1208. + "▦" + status //status" 신규(I), DC(C)
  1209. + "▦" + rowno //rowno" 줄번호 (병리 요구)
  1210. + "▦" + prcpdd //prcpdd" 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  1211. + "▦" + prcpno //prcpno" 처방번호 (status가 'I'일 경우 0)
  1212. + "▦" + prcphistno //prcphistno" 처방이력번호 (status가 'I'일 경우 0)
  1213. + "▦" + prcpgenrflag //prcpgenrflag" 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  1214. + "▦" + prcpstatcd //prcpstatcd" 처방상태 : '000'
  1215. + "▦" + prcpkindcd //prcpkindcd" 처방종류 : '20'
  1216. + "▦" + prcpcd //prcpcd" 처방코드
  1217. + "▦" + calcscorcd //calcscorcd" 수가코드
  1218. + "▦" + inclprcpcd //inclprcpcd" 종속처방코드 ('-')
  1219. + "▦" + inclprcpno //inclprcpno" 종속처방번호 (일련번호 - 종속처방코드별로 생성)
  1220. + "▦" + prcpexecdeptcd //prcpexecdeptcd" 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  1221. + "▦" + prcphopedd //prcphopedd" 처방희망일자 (처방일자 이전으로 발생불가)
  1222. + "▦" + prcpqty //prcpqty" 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  1223. + "▦" + prcpqtyunitflag //prcpqtyunitflag" 처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  1224. + "▦" + prcptims //prcptims" 처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  1225. + "▦" + prcpdayno //prcpdayno" 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  1226. + "▦" + payflagcd //payflagcd" 급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  1227. + "▦" + erprcpflag //erprcpflag" 응급처방구분 (Y/N)
  1228. + "▦" + precureprcpflag //precureprcpflag" 선처치처방구분 (Y/N)
  1229. + "▦" + nigtprcpflag //nigtprcpflag" 야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  1230. + "▦" + portprcpflag //portprcpflag" 포터블처방구분 (Y/N)
  1231. + "▦" + fixprcpflag //fixprcpflag" 정액처방구분 (Y/N)
  1232. + "▦" + choiordflag //choiordflag" 선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  1233. + "▦" + anamneflag //anamneflag" 기왕력(증)구분 (Y/N)
  1234. + "▦" + prcpdirecflag //prcpdirecflag" 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  1235. + "▦" + angioflagcd //angioflagcd" Angio구분 (코드정의서 M0006 참조) : '-'
  1236. + "▦" + opansflagcd //opansflagcd" 수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  1237. + "▦" + ansttm //ansttm" 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  1238. + "▦" + offictourhealexamflag //offictourhealexamflag" 출장검진구분 (Y/N)
  1239. + "▦" + stemcellflag //stemcellflag" '00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  1240. + "▦" + hosinhosoutflag //hosinhosoutflag" 원내외구분(건진은 'I', 약이 아닐경우 '-')
  1241. + "▦" + hosinprcpresncd //hosinprcpresncd" 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  1242. + "▦" + issdeptcd //issdeptcd" 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  1243. + "▦" + prcpauthflag //prcpauthflag" 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  1244. + "▦" + prcpinptflag //prcpinptflag" 처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  1245. + "▦" + prcpsignflag //prcpsignflag" 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  1246. + "▦" + oprsrvno //oprsrvno" 수술예약번호(0)
  1247. + "▦" + clincstdyflag //clincstdyflag" 임상연구구분 (Y/N)
  1248. + "▦" + clincstdycd //clincstdycd" 임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  1249. + "▦" + drugmthdspccd //drugmthdspccd" 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  1250. + "▦" + prcpdelivefact //prcpdelivefact" 처방전달사항
  1251. + "▦" + tootfact //tootfact" 치식 (병리만 사용, 나머지는 '-')
  1252. + "▦" + matrsetprcpspec //matrsetprcpspec" 재료처방내용 ('-') -> 추후정의
  1253. + "▦" + calcflag //calcflag" 계산구분 (Y/N)
  1254. + "▦" + rsrvflag //rsrvflag" 예약구분 (Y/N)
  1255. + "▦" + rsrvdd //rsrvdd" 예약일자 ('N'일 경우 '00000000')
  1256. + "▦" + rsrvtm //rsrvtm" 예약시간 ('N'일 경우 '000000')
  1257. + "▦" + rsrvrid //rsrvrid" 예약자ID ('-')
  1258. + "▦" + execdd //execdd" 실시일자 ('00000000')
  1259. + "▦" + exectm //exectm" 실시시간 ('000000')
  1260. + "▦" + execrid //execrid" 실시자ID ('-')
  1261. + "▦" + direcprcplnkdd //direcprcplnkdd" 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  1262. + "▦" + direcprcplnkno //direcprcplnkno" 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  1263. + "▦" + ordreqlnkno //ordreqlnkno" 진료의뢰연계번호 (0)
  1264. + "▦" + testreqlnkno //testreqlnkno" 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  1265. + "▩";
  1266. }
  1267. model.makeValue("/root/send/reqdata/rcptlist", sPassData);
  1268. }
  1269. /**
  1270. * @desc
  1271. * 진단서와 매핑된 수가코드 조회 및 제증명 서식에 따라 수가처리
  1272. * 1.상해진단서, 예상치료기간이 21일 이상인 경우, 원본(HCDD022), 사본(HCDD072)
  1273. * 21일 미만인 경우, 원본(HCDD021), 사본(HCDD071)
  1274. * 2.향후 치료비 추정서, 전체 추정합계가 1000만원 이상인 경우, 원본(HCDD020), 사본(HCDD070)
  1275. * 1000만원 미만인 경우, 원본(HCDD019), 사본(HCDD069)
  1276. * 3.무료발급 가능 제증명
  1277. * 3-1. 사체검안서 원본(HCDD018), 사본없음
  1278. * 3-2. 입퇴원확인서 원본(HCDD013), 사본(HCDD064)
  1279. * 3-3. 출생증명서 원본(HCDD010), 사본없음
  1280. *
  1281. * 4.장애진단서 (2009.12.17. 이은영 추가)
  1282. * [의정부]
  1283. * 장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD111) : 심신장애진단서(정박아) 4만원
  1284. * "정신지체" 이외 해당할 경우, 원본(HCDD110) : 심신장애진단서 15000원
  1285. * [서울성모, 성빈센트] (2010.01.08 이은영 추가)
  1286. * 장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD041) : 심신장애진단서(정박아) 4만원
  1287. * "정신지체" 이외 해당할 경우, 원본(HCDD040) : 심신장애진단서 15000원
  1288. * [부천성모] (2010.01.11 이은영 추가)
  1289. * 장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD150) : 심신장애진단서(정박아) 4만원
  1290. * "정신지체" 이외 해당할 경우, 원본(HCDD149) : 심신장애진단서 15000원
  1291. * @param :
  1292. * @return :
  1293. * @author : 오지훈
  1294. * @---------------------------------------------------
  1295. */
  1296. function fSrchCalcScor(formcd){
  1297. model.makeValue("/root/send/reqdata/calcscor/formcd" , formcd);
  1298. model.makeValue("/root/send/reqdata/calcscor/srchflag", "PROF");
  1299. if(submit("TRMMR02906")){
  1300. var ivwCtrl = ivw_loader.window.document.controls("ivw_base");
  1301. if(formcd == "0000001455"){ //상해진단서인 경우, 예상치료기간에 따라 수가를 변경
  1302. var caredayno = ivw_loader.ivw_base.window.javascript.getFormItemValue("0005910.0000951");
  1303. if(caredayno.reccnts >= 21){ //21일 이상인 경우, 21일 미만의 원본, 사본 수가 삭제
  1304. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD021' and calcscorflag = 'O']");
  1305. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD071' and calcscorflag = 'C']");
  1306. }else{ //21일 미만인 경우, 21일 이상의 원본, 사본 수가 삭제
  1307. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD022' and calcscorflag = 'O']");
  1308. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD072' and calcscorflag = 'C']");
  1309. }
  1310. }else if(formcd == "0000001522" || formcd == "0800000403"){ //향후 치료비 추정서인 경우, 전체 추정합계에 따라 수가를 변경
  1311. //2008.12.19 치과용 향후 치료비 추정서 추가. 오지훈. 김성진 선생님 오류사항
  1312. var caremoney = ivw_loader.ivw_base.window.javascript.getFormItemValue("0000878");
  1313. if(caremoney.reccnts >= 10000000){ //추정합계 천만원 이상인 경우, 천만원 미만인 수가 삭제
  1314. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD019' and calcscorflag = 'O']");
  1315. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD069' and calcscorflag = 'C']");
  1316. }else{ //추정합계 천만원 미만인 경우, 천만원 이상인 수가 삭제
  1317. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD020' and calcscorflag = 'O']");
  1318. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = 'HCDD070' and calcscorflag = 'C']");
  1319. }
  1320. }else if(formcd == "0900004416"){ //장애진단서(병원서식)인 경우, 장애등급이 "정신지체장애" "발달장애" 인지, 그 이외인지에 따라 수가가 변경 됨
  1321. //2009.12.17 이은영 추가 (의정부 수가코드)
  1322. //장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD111) : 심신장애진단서(정박아) 40000원
  1323. // "정신지체" 이외 해당할 경우, 원본(HCDD110) : 심신장애진단서 15000원
  1324. //2010.01.08 이은영 추가 (서울성모, 성빈센트 수가코드)
  1325. //장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD041) : 심신장애진단서(정박아) 40000원
  1326. // "정신지체" 이외 해당할 경우, 원본(HCDD040) : 심신장애진단서 15000원
  1327. //2010.01.11 이은영 추가 (부천성모 수가코드)
  1328. //장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD150) : 심신장애진단서(정박아) 40000원
  1329. // "정신지체" 이외 해당할 경우, 원본(HCDD149) : 심신장애진단서 15000원
  1330. // 기관별 수가코드 정보 가져오기.. 장애진단서 수가코드 ("정신지체" 이외 or "정신지체장애" "발달장애")
  1331. // 9916 : 제증명 장애진단서 수가코드 심신장애진단서
  1332. // 9917 : 제증명 장애진단서 수가코드 심신장애진단서(정박아)
  1333. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/handicapcd0", 9916);
  1334. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/handicapcd1", 9917);
  1335. var handicapcd0 = model.getValue("/root/init/handicapcd0/hardcd/hardcd");
  1336. var handicapcd1 = model.getValue("/root/init/handicapcd1/hardcd/hardcd");
  1337. var handicapflag = ivw_loader.ivw_base.window.javascript.getFormItemValue("0014563");
  1338. // 2010.01.11 이은영 - 장애등급이 "정신지체장애" "발달장애" 인 경우
  1339. // 2010.05.14 이은영 - 고시 관련 장애등급 "발달장애" 분류가 "지적장애", "자폐성장애" 2가지로 분리되어 추가됨.
  1340. if(handicapflag.rectermcd == "0031782001" || handicapflag.rectermcd == "0035247001" || handicapflag.rectermcd == "0039121001" || handicapflag.rectermcd == "0039126001"){
  1341. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = '" + handicapcd0 + "' and calcscorflag = 'O']");
  1342. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = '" + handicapcd0 + "' and calcscorflag = 'C']");
  1343. }else{ //장애등급이 그 이외인 경우
  1344. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = '" + handicapcd1 + "' and calcscorflag = 'O']");
  1345. model.removeNode("/root/main/calcscorinfo/calcscorlist[calcscorcd = '" + handicapcd1 + "' and calcscorflag = 'C']");
  1346. }
  1347. }
  1348. var freeflag = model.getValue("/root/main/freeflag"); //무료구분
  1349. if(freeflag == "Y"){
  1350. //무료발급부서인 경우 메시지 팝업 안 띄움(20140621)
  1351. var iexNodeCnt = getNodesetCnt(model, "/root/nofee/hardcd[hardcd = '" + getUserInfo("dutplcecd") + "']");
  1352. var rtnval;
  1353. if ( iexNodeCnt > 0 ) {
  1354. rtnval = 6;
  1355. }
  1356. else {
  1357. rtnval = messageBox("해당 제증명이 무료로 발급", "S001");
  1358. }
  1359. if(rtnval == 6){
  1360. model.removeNodeset("/root/main/calcscorinfo/calcscorlist");
  1361. if(formcd == "0000002841"){ //사체검안서
  1362. model.setValue("/root/send/reqdata/profhist/freeissresn", "시신기증자");
  1363. }else if(formcd == "0000001283"){ //입퇴원확인서(진단명포함)
  1364. model.setValue("/root/send/reqdata/profhist/freeissresn", "퇴원당일");
  1365. }else if(formcd == "0000001113" || formcd == "1100011102"){ //출생증명서
  1366. model.setValue("/root/send/reqdata/profhist/freeissresn", "퇴원당일");
  1367. }else if(formcd == "0000001499"){ //소견서
  1368. model.makeValue("/root/send/reqdata/profhist/freeissresn", "타병원전원");
  1369. }
  1370. }else{
  1371. return false;
  1372. }
  1373. }
  1374. }
  1375. }
  1376. /**
  1377. * @desc : 보고서 데이타 생성
  1378. *
  1379. * @param :
  1380. * @return :
  1381. * @author : HIT EMR Team
  1382. * @---------------------------------------------------
  1383. */
  1384. function fGetReportData(){
  1385. var ivwLoader = ivw_loader.window.document.controls("ivw_base");
  1386. return ivwLoader.instance1.xml;
  1387. }
  1388. /**
  1389. * @desc : 존재하는 제증명 검색
  1390. *
  1391. * @param :
  1392. * @return :
  1393. * @author : HIT EMR Team
  1394. * @---------------------------------------------------
  1395. */
  1396. function fExistProf(pid, cretno, orddd, ioflag, formcd, orddeptcd){
  1397. // [요청번호:20160708012] 전원소견서 제어
  1398. var chkprofhist = "N";//lf_CheckPerPrint(formcd);
  1399. model.makeValue("/root/send/reqdata/hist/status", "new");
  1400. model.makeValue("/root/send/reqdata/hist/pid" , pid);
  1401. model.makeValue("/root/send/reqdata/hist/cretno", cretno);
  1402. model.makeValue("/root/send/reqdata/hist/orddd" , orddd);
  1403. model.makeValue("/root/send/reqdata/hist/ioflag", ioflag);
  1404. model.makeValue("/root/send/reqdata/hist/formcd", formcd);
  1405. model.makeValue("/root/send/reqdata/hist/orddeptcd", orddeptcd);
  1406. model.makeValue("/root/send/reqdata/hist/chkprofhist", chkprofhist);
  1407. if(submit("TRMMR02902")){
  1408. model.removeNodeset("/root/send/reqdata");
  1409. return model.getValue("/root/main/existdata/existyn");
  1410. } else {
  1411. model.removeNodeset("/root/send/reqdata");
  1412. return 0;
  1413. }
  1414. }
  1415. /**
  1416. * @desc : 저장 될 제증명 세팅
  1417. *
  1418. * @param :
  1419. * @return :
  1420. * @author : HIT EMR Team
  1421. * @---------------------------------------------------
  1422. */
  1423. function fNewRecProf(){
  1424. var orddept = model.getValue("/root/main/newprof/orddept"); //진료과명
  1425. var orddoctid = model.getValue("/root/main/newprof/orddoctid"); //전문의id
  1426. var doctnm = model.getValue("/root/main/newprof/doctnm"); //전문의이름
  1427. var licnsno = model.getValue("/root/main/newprof/licnsno"); //면허번호
  1428. var currenttime = getCurrentDate()+getCurrentTime();
  1429. var orddeptcd = model.getValue("/root/main/newprof/orddeptcd");
  1430. var ioflag = model.getValue("/root/main/patinfo/ioflag");
  1431. var pid = model.getValue("/root/main/patinfo/pid");
  1432. var cretno = model.getValue("/root/main/patinfo/cretno");
  1433. var orddd = model.getValue("/root/main/patinfo/orddd");
  1434. var profformcd = "";
  1435. model.resetInstanceNode("/root/main/newprof");
  1436. model.makeNode("/root/main/issusge" , "");
  1437. model.setValue("/root/main/newprof/orddept" , orddept); //진료과명
  1438. model.setValue("/root/main/newprof/orddeptcd", orddeptcd); //진료과코드
  1439. model.setValue("/root/main/newprof/orddoctid", orddoctid); //전문의ID
  1440. model.setValue("/root/main/newprof/doctnm" , doctnm); //전문의명
  1441. model.setValue("/root/main/newprof/licnsno" , licnsno); //면허번호
  1442. if(pid == ""){
  1443. messageBox("환자정보를", "C001");
  1444. return;
  1445. }
  1446. if((swc_prof.selectedIndex == 0) && (trv_proflist.value == "")){
  1447. return;
  1448. } else if((swc_prof.selectedIndex == 1) && (trv_favor.value == "")){
  1449. return;
  1450. }
  1451. profformcd = model.getValue("/root/main/formcd");
  1452. if(profformcd == ""){
  1453. return;
  1454. }
  1455. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  1456. model.makeValue("/root/send/saveddata/pid", pid);
  1457. model.makeValue("/root/send/saveddata/formcd", profformcd);
  1458. model.makeValue("/root/send/saveddata/issdeptcd", orddeptcd);
  1459. model.makeValue("/root/send/saveddata/issid", orddoctid);
  1460. if(submit("TRMMR02901")){
  1461. var formrecseq = model.getValue("/root/main/issprofinfo/info/formrecseq");
  1462. ivw_loader.window.javascript.fLoadRecForm(formrecseq, false);
  1463. if(formrecseq == ""){
  1464. fChosProflist();
  1465. }
  1466. }
  1467. model.refresh();
  1468. }
  1469. /**
  1470. * @desc : 환자 내역 조회
  1471. *
  1472. * @param :
  1473. * @return :
  1474. * @author : HIT EMR Team
  1475. * @---------------------------------------------------
  1476. */
  1477. function fGetPatHist(){
  1478. /*
  1479. if(btn_prof.selected == false){
  1480. return;
  1481. }*/
  1482. var pid = model.getValue("/root/main/patinfo/pid");
  1483. if(pid == ""){
  1484. messageBox("선택된 환자가", "I004");
  1485. return;
  1486. }
  1487. //var formcd = model.getValue("/root/main/profform/list[" + ( trv_proflist.mouseRow + 1 )+ "]/formcd");
  1488. //alert(trv_proflist.value);
  1489. //if(trv_proflist.value !=""){
  1490. // formcd = trv_proflist.value;
  1491. //}
  1492. var formcd = "";
  1493. if(btn_prof.selected == true){ // 제증명탭
  1494. formcd = trv_proflist.value;
  1495. }
  1496. else if(btn_tabprofhist.selected == true){ // 이력탭
  1497. formcd = model.getValue(grd_profhistlist.nodeset + "[" + grd_profhistlist.row + "]/formcd");
  1498. }
  1499. else{ // 즐겨찾기탭
  1500. formcd = trv_favor.value;
  1501. //return;
  1502. }
  1503. setParameter("SPMMR05500_formcd" , formcd);
  1504. setParameter("SPMMR05500_pid" , pid);
  1505. setParameter("SPMMR05500_orddeptcd", model.getValue("/root/main/patinfo/orddeptcd"));
  1506. setParameter("SPMMR05500_savepath" , "/root/hidden/patinfo");
  1507. //2009-08-06 오후 5:36:48 강지훈 수정 : 제증명 수진이력에서 조회했을때는 진료부도건 제외(Y : 제외, N : 포함)
  1508. setParameter("SPMMR05500_nopay" , "Y");
  1509. modal("SPMMR05500", 1, 10, 10, "SPMMR05500");
  1510. if(getParameter("SPMMR05500_useyn") == "Y"){
  1511. var ivwCtrl = ivw_loader.window.document.controls("ivw_base");
  1512. var itemVal = new ITEMVAL();
  1513. if(formcd == "0000002639"){ //통원치료 확인서(진단서 포함)
  1514. itemVal.reccnts = getParameter("SPMMR05500_msg") + "\n\n상기환자는 상기일자에 통원치료 하였음을 확인합니다.";
  1515. ivwCtrl.window.javascript.setFormItemValue("0005910", itemVal, true);
  1516. }
  1517. if(formcd == "0000002588"){ //통원치료 확인서(영문)
  1518. itemVal.reccnts = getParameter("SPMMR05500_msg") + "\n\nI would identify that above patient visited out-patient clinic.";
  1519. ivwCtrl.window.javascript.setFormItemValue("0005910", itemVal, true);
  1520. }
  1521. if(formcd == "0000001312"){ //외래진료확인서
  1522. itemVal.reccnts = getParameter("SPMMR05500_msg") + "\n\n상기환자는 상기일자에 외래진료 하였음을 확인합니다.";
  1523. ivwCtrl.window.javascript.setFormItemValue("0005910", itemVal, true);
  1524. }
  1525. // knuh_20110324_박성호 수정(입원사실확인서(입원중) 추가
  1526. //if(formcd == "0000001283" || formcd == "0000001300"){ //입퇴원확인서, 입원사실확인서
  1527. if(formcd == "0000001283" || formcd == "0000001300" || formcd == "1100011101"){ //입퇴원확인서, 입원사실확인서
  1528. itemVal.reccnts = getParameter("SPMMR05500_msg");
  1529. ivwCtrl.window.javascript.setFormItemValue("0002025", itemVal, true);
  1530. }
  1531. if(formcd == "0000001457"){ //수술확인서
  1532. itemVal = ivwCtrl.window.javascript.getFormItemValue("0010597");
  1533. itemVal.reccnts += "\n" + getParameter("SPMMR05500_msg");
  1534. ivwCtrl.window.javascript.setFormItemValue("0010597", itemVal, true);
  1535. itemVal = ivwCtrl.window.javascript.getFormItemValue("0016684");
  1536. itemVal.reccnts += "\n" + getParameter("SPMMR05500_opinfo");
  1537. ivwCtrl.window.javascript.setFormItemValue("0016684", itemVal, true);
  1538. }
  1539. if(formcd == "0000002792"){ //상급병실확인서 (2009.07.27. 추가)
  1540. itemVal = ivwCtrl.window.javascript.getFormItemValue("0002025");
  1541. itemVal.reccnts = getParameter("SPMMR05500_msg");
  1542. ivwCtrl.window.javascript.setFormItemValue("0002025", itemVal, true);
  1543. itemVal = ivwCtrl.window.javascript.getFormItemValue("0000965");
  1544. itemVal.reccnts = getParameter("SPMMR05500_orddeptnm");
  1545. ivwCtrl.window.javascript.setFormItemValue("0000965", itemVal, true);
  1546. var pid = getParameter("SPMMR05500_pid");
  1547. var indd = getParameter("SPMMR05500_indd");
  1548. var cretno = getParameter("SPMMR05500_cretno");
  1549. ivwCtrl.window.javascript.fGetRoomChargeList(pid, indd, cretno);
  1550. ivwCtrl.window.javascript.fSetPatRoomChargeInfo(pid, indd, cretno);
  1551. }
  1552. }
  1553. setParameter("SPMMR05500_useyn", "N");
  1554. }
  1555. /**
  1556. * @desc : 사용여부 추가
  1557. *
  1558. * @param :
  1559. * @return :
  1560. * @author : HIT EMR Team
  1561. * @---------------------------------------------------
  1562. */
  1563. function fAddIssUsge(){
  1564. model.removeNodeset("/root/temp/issusge/list");
  1565. fCallModal();
  1566. var listNode = model.getValue("/root/main/issusge");
  1567. var getNodeListCnt = getNodesetCount("/root/main/issusge");
  1568. setCSVToNode("/root/temp/issusge", listNode);
  1569. model.setValue("/root/main/issusge", "");
  1570. model.refresh();
  1571. fReqInsAddPrstUsge(); //사용여부 추가 후 이력저장 로직처리
  1572. }
  1573. /**
  1574. * @desc : 빈서식 출력
  1575. *
  1576. * @param :
  1577. * @return :
  1578. * @author : HIT EMR Team
  1579. * @---------------------------------------------------
  1580. */
  1581. function fEmptyFormPrnt(){
  1582. /*var resval = messageBox("빈 서식지를 출력", "S001");
  1583. if(resval == 6){
  1584. var currow = grd_profhistlist.row;
  1585. if(currow < 1){
  1586. messageBox("빈서식 출력할 서식을", "C002");
  1587. return;
  1588. }
  1589. var formcd = model.getValue("/root/main/profhist/list[" + currow + "]/formcd");
  1590. //서식 두번째 코드가 8인 경우,
  1591. if(formcd.charAt(1)=="8"){
  1592. formcd = formcd.substr(7, 3);
  1593. var rexid = "RFM" + "80" + formcd + "00";
  1594. }else{
  1595. formcd = formcd.substr(5, 5);
  1596. var rexid = "RFM" + formcd + "00";
  1597. }
  1598. //var ivwCtrl = ivw_loader.window.document.controls("ivw_base");
  1599. //빈서식 출력시 표시되어야할 사항
  1600. //환자기본정보, 등록번호, 환자명, 주민등록번호, 성별, 연령
  1601. //의료기관명, 병원주소, 전화번호, 진료과, FAX번호
  1602. var prntcnt = model.getValue("/root/main/issinfo/isscnt");
  1603. exeReportPreview(rexid, "XMLSTR", "", "", "true", "", "", "", "", "true","", "", "", "", "hidden", 1);
  1604. model.setValue("/root/main/issinfo/isscnt", "1");
  1605. model.refresh();
  1606. }*/
  1607. //출력시 호출할 REX report id를 설정
  1608. var ivwCtrl = ivw_loader.window.document.controls("ivw_base");
  1609. var formcd = model.getValue("/root/main/formcd");
  1610. if(formcd == "")
  1611. {
  1612. //var row = grd_profhistlist.rows - grd_profhistlist.fixedrows;
  1613. var row = grd_profhistlist.row;
  1614. formcd = model.getValue("/root/main/profhist/list[" + row + "]/formcd");
  1615. }
  1616. // 2016.06.15 전원(회송)소견서 구분
  1617. var nCheckPerPrint = lf_CheckPerPrint(formcd);
  1618. model.makeValue("/root/send/reqdata/hardcdno", "1114"); // 진단서 발행시 보험유형별로 다르게 출력되는 서식
  1619. submit("TRMRF03104");
  1620. var rexid = "";
  1621. if(model.getValue("/root/main/hardcdlist[trgtcd="+ formcd +"]/trgtcd") != "")
  1622. {
  1623. if(model.getValue("/root/main/hardcdlist[trgtcd="+ formcd +"]/trgtcdnm") == "진료의뢰서")
  1624. {
  1625. var hospcd = fGetHospitalCode();
  1626. var insukind = model.getValue("/root/main/result/pathistlist/insukind");
  1627. if(insukind == "11" || insukind == "81") // 건강보험인 경우
  1628. {
  1629. var tmpformcd = formcd.substr(5, 5);
  1630. rexid = "RFM" + tmpformcd + "01";
  1631. }
  1632. else // 건강보험이 아닌 경우
  1633. {
  1634. // 환자의 자격을 조회.
  1635. fGetPatInsuranceInfo();
  1636. var InsuranceInfoList = findNodeset(model, "/root/main/patinsuranceinfo");
  1637. if(InsuranceInfoList.length > 0)
  1638. {
  1639. var patInsuranceInfo = InsuranceInfoList.item(0);
  1640. var proccorpcd = patInsuranceInfo.selectSingleNode("proccorpcd").text; //등록번호
  1641. var hngnm = patInsuranceInfo.selectSingleNode("hngnm").text; //환자명
  1642. var qualflag = patInsuranceInfo.selectSingleNode("qualflag").text; //자격구분
  1643. var hshdnm = patInsuranceInfo.selectSingleNode("hshdnm").text; //세대주성명
  1644. var secuinstmark = patInsuranceInfo.selectSingleNode("secuinstmark").text; //보장기관기호
  1645. var estmmark = patInsuranceInfo.selectSingleNode("estmmark").text; //시설기호(증번호)
  1646. var ownbflag = patInsuranceInfo.selectSingleNode("ownbflag").text; //본인부담구분
  1647. var choicorpmark1 = patInsuranceInfo.selectSingleNode("choicorpmark1").text; //선택기관기호1
  1648. var choicorpmark2 = patInsuranceInfo.selectSingleNode("choicorpmark2").text;
  1649. var choicorpmark3 = patInsuranceInfo.selectSingleNode("choicorpmark3").text;
  1650. var choicorpmark4 = patInsuranceInfo.selectSingleNode("choicorpmark4").text;
  1651. var choicorpnm1 = patInsuranceInfo.selectSingleNode("choicorpnm1").text; //선택기관이름1
  1652. var choicorpnm2 = patInsuranceInfo.selectSingleNode("choicorpnm2").text;
  1653. var choicorpnm3 = patInsuranceInfo.selectSingleNode("choicorpnm3").text;
  1654. var choicorpnm4 = patInsuranceInfo.selectSingleNode("choicorpnm4").text;
  1655. model.makeValue("/root/send/reqdata/hardcdno", "1115"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  1656. submit("TRMRF03104");
  1657. // 1) 본인부담면제 항목이 비어있거나, 본인부담면제 항목이 있으면서 해당 코드가 M003~M010 -> 의료급여의뢰서: RFM0534002_의료급여의뢰서002.rex
  1658. if(ownbflag == "" || (ownbflag != "" && model.getValue("/root/main/hardcdlist[trgtcd="+ ownbflag +"]/trgtcd") != "") )
  1659. {
  1660. var tmpformcd = formcd.substr(5, 5);
  1661. rexid = "RFM" + tmpformcd + "02";
  1662. }
  1663. else
  1664. {
  1665. model.makeValue("/root/send/reqdata/hardcdno", "1116"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  1666. submit("TRMRF03104");
  1667. if(model.getValue("/root/main/hardcdlist[trgtcd="+ ownbflag +"]/trgtcd") != "")
  1668. {
  1669. var choicorpmark = "";
  1670. var selected = false;
  1671. for(var idx = 1; idx <= 4; idx++)
  1672. {
  1673. choicorpmark = "";
  1674. switch(idx)
  1675. {
  1676. case 1: choicorpmark = choicorpmark1;
  1677. break;
  1678. case 2: choicorpmark = choicorpmark2;
  1679. break;
  1680. case 3: choicorpmark = choicorpmark3;
  1681. break;
  1682. case 4: choicorpmark = choicorpmark4;
  1683. break;
  1684. }
  1685. if(choicorpmark == hospcd)
  1686. {
  1687. selected = true;
  1688. break;
  1689. }
  1690. }
  1691. // 2) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있는 경우 -> 의료급여의뢰서(선택기관발부용): RFM0534003_의료급여의뢰서003.rex
  1692. if(selected == true)
  1693. {
  1694. var tmpformcd = formcd.substr(5, 5);
  1695. rexid = "RFM" + tmpformcd + "03";
  1696. }
  1697. // 3) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있지 않는 경우 -> 의료급여의뢰서(의뢰진료기관에 "B006"으로 찍힘): RFM0534004_의료급여의뢰서004.rex
  1698. else
  1699. {
  1700. var tmpformcd = formcd.substr(5, 5);
  1701. rexid = "RFM" + tmpformcd + "04";
  1702. }
  1703. }
  1704. }
  1705. }
  1706. else
  1707. {
  1708. messageBox("환자의 의료자격조회 정보", "E013");
  1709. return;
  1710. }
  1711. }
  1712. }
  1713. }
  1714. else
  1715. {
  1716. //서식 두번째 코드가 8인 경우,
  1717. if(formcd.charAt(1)=="8")
  1718. {
  1719. formcd = formcd.substr(7, 3);
  1720. rexid = "RFM" + "80" + formcd + "00";
  1721. }
  1722. else if (formcd.charAt(0) == "1") // knuh_20110118 추가
  1723. {
  1724. var precd = formcd.substr(0, 2);
  1725. formcd = formcd.substr(5, 5);
  1726. rexid = "RFM" + precd + formcd;
  1727. }
  1728. else
  1729. {
  1730. formcd = formcd.substr(5, 5);
  1731. var rexid = "RFM" + formcd + "00";
  1732. }
  1733. }
  1734. if(model.getValue("/root/main/emptyform") == "empty")
  1735. {
  1736. // 병원명, 전화번호, 주소, fax, 요양기관기호
  1737. var instcd = getUserInfo("dutplceinstcd");
  1738. copyNodeset("/root/main/recinfo", "/root/temp/recinfo", "replace", model, ivwCtrl.model);
  1739. copyNodeset("/root/viewform/forminfo", "/root/main/forminfo", "replace", model, ivwCtrl.model);
  1740. model.removenode("/root/hidden/docinfo/signimge");
  1741. // 필수 항목으로 등록된 rectermcd를 삭제한다.
  1742. var rectermcdList = findNodeset(model, "/root/main/recinfo/recitem[rectermcd !='']");
  1743. for(var recidx = 0; recidx < rectermcdList.length; recidx++)
  1744. {
  1745. var recitemNode = rectermcdList.item(recidx);
  1746. if(recitemNode.selectSingleNode("rectermcd") != null)
  1747. recitemNode.selectSingleNode("rectermcd").text = "";
  1748. }
  1749. var formcd = model.getValue("/root/viewform/forminfo/formmast" + "/formcd");
  1750. var langflag = model.getValue("/root/viewform/forminfo/formmast" + "/langflag");
  1751. fSetHospInfo(instcd, formcd, langflag);
  1752. //copyNodeset("/root/main/recinfo", "/root/main/recinfo", "replace", model, ivwCtrl.model);
  1753. //model.makeValue("/root/hidden/docinfo/signimge", ivwCtrl.model.getValue("/root/hidden/docinfo/signimge"));
  1754. }
  1755. else
  1756. {
  1757. copyNodeset("/root/main/recinfo", "/root/main/recinfo", "replace", model, ivwCtrl.model);
  1758. model.makeValue("/root/hidden/docinfo/signimge", ivwCtrl.model.getValue("/root/hidden/docinfo/signimge"));
  1759. //진단코드 3자리마다 점(.)표시
  1760. var totcnt = getNodesetCount("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[degnitemlevlcd='0016650.0000960.0000960']");
  1761. for(var i = 0; i < totcnt; i++){
  1762. var rectermcd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd");
  1763. rectermcd = removeChar(rectermcd, "."); //점을 제거
  1764. rectermcd = insertChar(rectermcd, ".", 3); // 3개 단위로 점을 입력
  1765. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd", rectermcd);
  1766. }
  1767. }
  1768. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  1769. if( nCheckPerPrint == "Y" && model.getValue("/root/main/emptyform") != "empty"){
  1770. lf_getPerSignData();
  1771. if( model.instance1.selectSingleNode("/root/persigntemp/memo/memo/elctsigncnts") != null ){
  1772. model.makeValue("/root/hidden/signinfo/signimge", model.getValue("/root/persigntemp/memo/memo/elctsigncnts"));
  1773. }
  1774. }else{
  1775. model.removenode("/root/hidden/signinfo/signimge");
  1776. }
  1777. exeReportPreview(rexid, "XMLSTR", "", "", "true", "", "", "", "", "true","", "", "", "", "hidden", 1); //출력
  1778. if(model.getValue("/root/main/emptyform") == "empty") // 삭제했던 노드 복원
  1779. {
  1780. if( swc_prof.selectedIndex == 2 && getParameter("reportprintyn") == "Y" ){
  1781. cbf_SetPrePrntInfo(30);
  1782. }
  1783. copyNodeset("/root/main/recinfo", "/root/main/recinfo", "replace", model, ivwCtrl.model);
  1784. model.makeValue("/root/hidden/docinfo/signimge", ivwCtrl.model.getValue("/root/hidden/docinfo/signimge"));
  1785. }else{
  1786. if( swc_prof.selectedIndex == 2 && getParameter("reportprintyn") == "Y" ){
  1787. cbf_SetPrePrntInfo(20);
  1788. }
  1789. }
  1790. }
  1791. /**
  1792. * @desc : 제증명리스트 발급
  1793. * @
  1794. * @param : flag - 20: 발행 / 30: 재발행 / 40: 재출력
  1795. * @return :
  1796. * @author :
  1797. * @---------------------------------------------------
  1798. */
  1799. function fPrintProflist(flag){
  1800. if(btn_tabprofhist.selected != true){
  1801. messageBox("제증명이력 탭으로 이동", "I008");
  1802. return;
  1803. }
  1804. var currow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  1805. if(currow < 1){
  1806. messageBox("발급할 제증명 서식을", "C001");
  1807. return;
  1808. }
  1809. var issstat = model.getValue("/root/main/profhist/list[" + currow + "]/issstat"); //인증상태
  1810. if(issstat == "R"){
  1811. messageBox("인증되지 않은 제증명 서식을 출력", "");
  1812. return;
  1813. }
  1814. var prntcnt = model.getValue("/root/main/issinfo/isscnt");
  1815. if(prntcnt == 0){
  1816. messageBox("발행부수는 한장 이상만 출력", "I006");
  1817. return;
  1818. }
  1819. var pageInfo = new PAGEINFO();
  1820. var profcertseq = model.getValue("/root/main/profhist/list[" + currow + "]/profcertseq");
  1821. var lformrecseq = model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq");
  1822. var rformrecseq = ivw_loader.model.getValue(pageInfo.recMastRef + "/formrecseq");
  1823. if (lformrecseq != rformrecseq) {
  1824. messageBox("좌우의 서식이 틀립니다. 다시 선택하시기 바랍니다","I");
  1825. return;
  1826. }
  1827. //삭제여부체크
  1828. model.makeValue("/root/send/reqdata/profcertseq",profcertseq);
  1829. submit("TRMMR05505",false);
  1830. var delyncnt = model.getValue("/root/hidden/delyn/cnt");
  1831. //화면이 old
  1832. if (delyncnt != 0) {
  1833. messageBox("제증명이 삭제되어 발행 불가합니다","I999");
  1834. return ;
  1835. }
  1836. // 2014.04.09 CYW 발행시, 진료부서, 진료의의 상태 조회 Start ------------------------------------------------------------
  1837. // 부서가 사용가능한 상태인지, 진료의의 계정이 살아있는지
  1838. model.removeNode("/root/send/chngissinfo");
  1839. model.makeNode("/root/send/chngissinfo");
  1840. model.makeValue("/root/send/chngissinfo/issvaliinfoflag", "N");
  1841. model.makeValue("/root/send/chngissinfo/orddeptcd", "");
  1842. model.makeValue("/root/send/chngissinfo/orddoctid", "");
  1843. model.removenode("/root/send/isspara");
  1844. model.removenode("/root/issvaliinfo");
  1845. model.makeNode("/root/send/isspara");
  1846. model.makeNode("/root/issvaliinfo");
  1847. model.makeValue("/root/send/isspara/instcd" , getUserInfo("dutplceinstcd"));
  1848. model.makeValue("/root/send/isspara/pid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  1849. model.makeValue("/root/send/isspara/ioflag" , model.getValue("/root/main/profhist/list[" + currow + "]/ioflag"));
  1850. model.makeValue("/root/send/isspara/orddd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddd"));
  1851. model.makeValue("/root/send/isspara/orddrid" , model.getValue("/root/main/profhist/list[" + currow + "]/orddrid"));
  1852. model.makeValue("/root/send/isspara/cretno" , model.getValue("/root/main/profhist/list[" + currow + "]/cretno"));
  1853. model.makeValue("/root/send/isspara/orddeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd"));
  1854. if( submit("TRMMR06505") ){
  1855. // 부서정보 오류
  1856. if( model.getValue("/root/issvaliinfo/issdeptinfo/deptvaliyn") == "N" ){
  1857. //messageBox("발행부서를 다시 선택해 주십시오.", "C999");
  1858. model.setValue("/root/send/chngissinfo/issvaliinfoflag", "Y");
  1859. setParameter("SPMMR06503_pid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid") );
  1860. setParameter("SPMMR06503_orddeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd") );
  1861. setParameter("SPMMR06503_switflag" , "dept" );
  1862. setParameter("SPMMR06503_vieworddeptcd" , "" );
  1863. modal("SPMMR06503");
  1864. if( model.getValue("/root/send/chngissinfo/orddeptcd") == "" ){
  1865. messageBox("발행부서를 선택하신 후 진행해주십시오.", "C999");
  1866. return;
  1867. }
  1868. setParameter("SPMMR06503_switflag" , "orddrid" );
  1869. // 선택한 발행과가 있다면 해당 발행과의 의사목록을 가져오기위한 파라메타
  1870. if( model.getValue("/root/send/chngissinfo/orddeptcd") != "" ){
  1871. setParameter("SPMMR06503_vieworddeptcd" , model.getValue("/root/send/chngissinfo/orddeptcd") );
  1872. }
  1873. modal("SPMMR06503");
  1874. if( model.getValue("/root/send/chngissinfo/orddoctid") == "" ){
  1875. messageBox("발행의사를 선택하신 후 진행해주십시오.", "C999");
  1876. return;
  1877. }
  1878. }
  1879. // 의사정보 오류
  1880. if( model.getValue("/root/issvaliinfo/issdridinfo/orddridvaliyn") == "N" ){
  1881. if( model.getValue("/root/issvaliinfo/issdridinfo/msgtxt") != null && model.getValue("/root/issvaliinfo/issdridinfo/msgtxt") != "" ){
  1882. messageBox("발행의사를 다시 선택해주십시오. 【 " + model.getValue("/root/issvaliinfo/issdridinfo/msgtxt") + " 】" , "C999");
  1883. }
  1884. model.setValue("/root/send/chngissinfo/issvaliinfoflag", "Y");
  1885. setParameter("SPMMR06503_pid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid") );
  1886. setParameter("SPMMR06503_orddeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd") );
  1887. setParameter("SPMMR06503_switflag" , "orddrid" );
  1888. setParameter("SPMMR06503_vieworddeptcd" , "" );
  1889. // 선택한 발행과가 있다면 해당 발행과의 의사목록을 가져오기위한 파라메타
  1890. if( model.getValue("/root/send/chngissinfo/orddeptcd") != "" ){
  1891. setParameter("SPMMR06503_vieworddeptcd" , model.getValue("/root/send/chngissinfo/orddeptcd") );
  1892. }else{
  1893. setParameter("SPMMR06503_vieworddeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd") );
  1894. }
  1895. modal("SPMMR06503");
  1896. if( model.getValue("/root/send/chngissinfo/orddoctid") == "" ){
  1897. messageBox("발행의사를 선택하신 후 진행해주십시오.", "C999");
  1898. return;
  1899. }
  1900. }
  1901. /*getUserStateMsg : 사용자 일반의, 퇴직의 조회*/
  1902. var deptcd = model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd");
  1903. model.setValue("/root/send/msg/userid", model.getValue("/root/main/profhist/list[" + currow + "]/orddrid"));
  1904. model.setValue("/root/send/msg/deptcd", deptcd);
  1905. submit("TRMMR00001");
  1906. var chk_msg = model.getValue("/root/main/msg/msg/chk_msg");
  1907. var nodecnt = getNodesetCount("/root/main/msg/msg");
  1908. if( nodecnt > 0 ){
  1909. messageBox(chk_msg, "E");
  1910. setParameter("SPMMR06503_pid", model.getValue("/root/main/acptoccinfo/otpt_pid") );
  1911. setParameter("SPMMR06503_orddeptcd", deptcd );
  1912. setParameter("SPMMR06503_vieworddeptcd", deptcd );
  1913. setParameter("SPMMR06503_switflag" , "orddrid" );
  1914. modal("SPMMR06503");
  1915. if( model.getValue("/root/send/chngissinfo/orddoctid") == "" ){
  1916. messageBox("발행의사를 선택하신 후 진행해주십시오.", "C999");
  1917. return;
  1918. }else{
  1919. var orddrid = model.getValue("/root/send/chngissinfo/orddoctid");
  1920. }
  1921. }
  1922. }
  1923. // ------------------------------------------------------------------------------------------------------------------------
  1924. var formcd = model.getValue("/root/main/profhist/list[" + currow + "]/formcd");
  1925. var srcformcd = model.getValue("/root/main/profhist/list[" + currow + "]/srcformcd");
  1926. var formdegnseq = model.getValue("/root/main/profhist/list[" + currow + "]/formdegnseq");
  1927. var issdt = model.getValue("/root/main/profhist/list[" + currow + "]/issdt");
  1928. // 2016.06.15 전원(회송)소견서 구분
  1929. var nCheckPerPrint = lf_CheckPerPrint(srcformcd);
  1930. // 2016.06.17 전원(회송)소견서 환자, 관계 입력 제어[요청번호:20160617006]
  1931. if( nCheckPerPrint == "Y" ){
  1932. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0001654");
  1933. if( isNull(itemVal.reccnts) ){
  1934. //messageBox("환자(또는 보호자) 입력 후 진행해주십시오.", "C999");
  1935. //return;
  1936. }
  1937. itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0005964");
  1938. if( isNull(itemVal.reccnts) ){
  1939. //messageBox("관계 입력 후 진행해주십시오.", "C999");
  1940. //return;
  1941. }
  1942. }
  1943. if( nCheckPerPrint == "Y" ){
  1944. // 2016.06.15 전원(회송)소견서 개인정보 동의서 출력 -> 소스위치수정(20170920)
  1945. lf_CheckPrintOCR(currow);
  1946. var sPerprintyn = model.getValue("/root/ocrtemp/perprintyn");
  1947. //개인정보동의서를 받을 대상자에 한해서
  1948. if( sPerprintyn == "N" ) {
  1949. var rtntag = getParameter("SSMRC03160_param_rtnocrtag");
  1950. if (rtntag == 0 || rtntag == "") {
  1951. messageBox("동의서 발행시 오류!","E");
  1952. return;
  1953. }
  1954. }
  1955. }
  1956. //시스템 on 이고 해당서식일때:20171130 이윤주
  1957. if (fContainsHardCD("6008", formcd)&& fContainsHardCD("6009", "Y")) {
  1958. //진료정보교류동의 여부 파악
  1959. model.removeNodeset("/root/main/hiepatlist");
  1960. model.removeNodeset("/root/main/consentlist");
  1961. model.removeNodeset("/root/main/cdainfo");
  1962. var consentyn = "N";
  1963. model.makeValue("/root/send/cond/ssnnumber",model.getValue("/root/main/profhist/list[" + currow + "]/ssnnumber"));
  1964. model.makeValue("/root/send/cond/reqdeptno",model.getValue("/root/main/profhist/list[" + currow + "]/reqdeptno"));
  1965. model.makeValue("/root/send/cond/formrecseq",model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq"));
  1966. model.makeValue("/root/send/cond/pid",model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  1967. if(submit("TRARC01415") == false ){
  1968. return;
  1969. }
  1970. //진료교류 대상여부
  1971. var hiepatyn = model.getValue("/root/main/hiepatlist/hiepatyn");
  1972. //진료교류 동의여부
  1973. var consentyn = model.getValue("/root/main/consentlist/consentyn");
  1974. var consentpid = model.getValue("/root/main/profhist/list[" + currow + "]/pid");
  1975. //동의서 없거나 철회 되었다면 && 예외환자 제외
  1976. if ( consentyn != "Y" && !fContainsHardCD("6019", consentpid)) {
  1977. if ( issdt > "20171129180000" && srcformcd == "0000002536" ) {
  1978. if (formcd == "1700019854" && formdegnseq >= 1700082464 ) {
  1979. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012160");
  1980. var gbn = itemVal.rectermcd ;
  1981. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012160.0012159.0012164");
  1982. var relation = itemVal.reccnts ;
  1983. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012160.0012159.0012162");
  1984. var fname = itemVal.reccnts ;
  1985. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012160.0012159.0012163");
  1986. }
  1987. else if (formcd == "1700019834" && formdegnseq >= 1700082441 ) {
  1988. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012165");
  1989. var gbn = itemVal.rectermcd ;
  1990. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012165.0012164.0005964");
  1991. var relation = itemVal.reccnts ;
  1992. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012165.0012164.0012166");
  1993. var fname = itemVal.reccnts ;
  1994. var itemVal = ivw_loader.ivw_base.window.javascript.getFormItemValue("0012165.0012164.0012167");
  1995. var phone = itemVal.reccnts ;
  1996. }
  1997. if (isNull(gbn)) {
  1998. messageBox("환자(또는 가족) 입력 후 진행해주십시오.", "C999");
  1999. return;
  2000. }
  2001. //가족
  2002. if (gbn == "0021027001") {
  2003. if( isNull(relation) ){
  2004. messageBox("관계 입력 후 진행해 주십시오.", "C999");
  2005. return;
  2006. }
  2007. if( isNull(fname) ){
  2008. messageBox("이름 입력 후 진행해 주십시오.", "C999");
  2009. return;
  2010. }
  2011. if( isNull(phone) ){
  2012. messageBox("전화번호 입력 후 진행해 주십시오.", "C999");
  2013. return;
  2014. }
  2015. var tag3 = "FAMILY";
  2016. } else if (gbn == "0000475001") {
  2017. var tag3 = "MYSELF";
  2018. }
  2019. }
  2020. else {
  2021. tag3 = "MYSELF";
  2022. }
  2023. var tag3_kr = "";
  2024. if (tag3 == "MYSELF") {
  2025. tag3_kr = "본인";
  2026. }
  2027. else if(tag3 == "FAMILY") {
  2028. tag3_kr = "가족";
  2029. }
  2030. setParameter("SSMRC03160_param_instcd", getUserInfo("dutplceinstcd"));
  2031. setParameter("SSMRC03160_param_patid", model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  2032. setParameter("SSMRC03160_param_indate", model.getValue("/root/main/profhist/list[" + currow + "]/orddd"));
  2033. setParameter("SSMRC03160_param_cretno", model.getValue("/root/main/profhist/list[" + currow + "]/cretno"));
  2034. setParameter("SSMRC03160_param_class", model.getValue("/root/main/profhist/list[" + currow + "]/ioflag"));
  2035. setParameter("SSMRC03160_param_tag1", model.getValue("/root/main/patinfo/hngnm")); // 환자 또는 법정대리인 성명
  2036. setParameter("SSMRC03160_param_tag3", tag3_kr);
  2037. setParameter("SSMRC03160_param_flag", "G");
  2038. setParameter("SSMRC03160_param_cuser", getUserInfo("userid"));
  2039. setParameter("SSMRC03160_param_docucd", "1600018738"); //진료정보 교류 동의서
  2040. modal("SSMRC03160");
  2041. var rtnocrtag = getParameter("SSMRC03160_param_rtnocrtag");
  2042. //동의서 오류
  2043. if (rtnocrtag == 0 || rtnocrtag == "") {
  2044. messageBox("동의서 발행시 오류! 진료협력센터로 문의하시기 바랍니다","I");
  2045. return;
  2046. }
  2047. //hie 동의정보전송
  2048. model.makeValue("/root/send/save/name",model.getValue("/root/main/patinfo/hngnm"));
  2049. model.makeValue("/root/send/save/relationship",tag3);
  2050. model.makeValue("/root/send/save/instcd",getUserInfo("dutplceinstcd"));
  2051. model.makeValue("/root/send/save/patid",model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  2052. model.makeValue("/root/send/save/formrecseq",model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq"));
  2053. model.makeValue("/root/send/save/documenttype","1.2.410.100110.40.2.2.1.1");
  2054. submit("TXARH01101",false);
  2055. var sendCnt = getNodesetCnt(model, "/root/main/cdainfo"); // 전송성공여부 파악
  2056. //전송실패시 리턴
  2057. if(sendCnt == 0){
  2058. return;
  2059. }
  2060. }
  2061. }
  2062. //20120911 이윤주 수정(서식용도변경 가능여부)
  2063. if (flag == "30" || flag == "40" )
  2064. {
  2065. //용도변경 아이템 존재유무
  2066. var goalexistcnt = getNodesetCnt(ivw_loader.ivw_base.model,"/root/main/recinfo/recitem[degnitemcd='0036539001']");
  2067. if ( goalexistcnt > 0) {
  2068. model.removeNodeset("/root/goal");
  2069. var rechistseq = ivw_loader.ivw_base.model.getValue("/root/hidden/recinfo/recitem/rechistseq");
  2070. fgetGoal(rechistseq);
  2071. //DB
  2072. var goal = model.getValue("root/goal/val/goal");
  2073. //화면
  2074. var changegoal = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemcd='0013100001']/reccnts");
  2075. if ( goal != changegoal ){
  2076. if ( fIsOkGoal(rechistseq) == "false") {
  2077. messageBox("용도변경이 불가합니다","I999");
  2078. return;
  2079. }
  2080. }
  2081. }
  2082. }
  2083. model.makeValue("/root/main/profhist/list[" + currow + "]/issflag" , flag); //발행구분(10:미발행, 20:발행, 30:재발행, 40:재출력)
  2084. model.makeValue("/root/main/profhist/list[" + currow + "]/prntuserid", getUserInfo("userid")); //출력사용자ID
  2085. model.makeValue("/root/main/profhist/list[" + currow + "]/prntdt" , getCurrentDate().concat(getCurrentTime())); //출력일시
  2086. model.makeValue("/root/main/profhist/list[" + currow + "]/deluserid" , ""); //삭제사용자ID
  2087. model.makeValue("/root/main/profhist/list[" + currow + "]/deldt" , ""); //삭제일시
  2088. model.makeValue("/root/main/profhist/list[" + currow + "]/prntcnt" , prntcnt); //출력횟수
  2089. grd_profhistlist.rebuild();
  2090. model.removeNodeset("/root/send/reqdata");
  2091. model.makeNode("/root/send/reqdata");
  2092. model.setValue("/root/main/profhist/list[" + currow + "]/freeissresn", "");
  2093. copyNodeset("/root/send/reqdata/profhist", "/root/main/profhist/list[" + currow + "]"); //저장 instance에 복사
  2094. var pid = model.getValue("/root/main/profhist/list[" + currow + "]/pid");
  2095. // KNUH_20110504_수정(환자 수진일자로 진료과, 진료의사를 셋팅)
  2096. //var orddeptcd = model.getValue("/root/main/profhist/list[" + currow + "]/issdeptcd");
  2097. //var orddrid = model.getValue("/root/main/profhist/list[" + currow + "]/issid");
  2098. var orddeptcd = model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd");
  2099. var orddrid = model.getValue("/root/main/profhist/list[" + currow + "]/orddrid");
  2100. var issdd = model.getValue("/root/main/profhist/list[" + currow + "]/issdt").substring(0, 8);
  2101. issdd = issdd.substring(0, 4) + "-" + issdd.substring(4, 6) + "-" + issdd.substring(6, 8);
  2102. //사망진단서 발급인 경우, 입원환자의 퇴원비 수납여부 확인 함.
  2103. if(formcd == "0000001314"){
  2104. var indschacptstat = model.getValue("/root/main/result/pathistlist/indschacptstat");
  2105. //2009-06-26 오후 12:20:46 강지훈 수정
  2106. if(indschacptstat != "D" && indschacptstat != "R"){
  2107. messageBox("퇴원비 정산이 필요한 환자", "E008");
  2108. }
  2109. }
  2110. if( model.getValue("/root/send/chngissinfo/issvaliinfoflag") == "Y" ){
  2111. if ( model.getValue("/root/send/chngissinfo/orddeptcd") != "" ){
  2112. orddeptcd = model.getValue("/root/send/chngissinfo/orddeptcd");
  2113. }
  2114. if( model.getValue("/root/send/chngissinfo/orddoctid") != "" ){
  2115. orddrid = model.getValue("/root/send/chngissinfo/orddoctid");
  2116. }
  2117. }
  2118. //원무정보 설정, 등록번호, 진료일자, 진료과, 진료의, 진료시간
  2119. fSetOtptPamInfo(pid, getCurrentDate(), orddeptcd, orddrid, "0000");
  2120. copyNodeset("/root/send/reqdata/acptoccinfo", "/root/main/acptoccinfo"); //원무정보 저장 instance에 복사
  2121. //제증명 수가정보 조회
  2122. if(fSrchCalcScor(formcd)==false){
  2123. return;
  2124. }
  2125. //처방IF에 담길 제증명 처방정보를 생성
  2126. var nodecnt = getNodesetCount("/root/main/calcscorinfo/calcscorlist");
  2127. if(nodecnt != 0){
  2128. fCalsSorcSave(currow, nodecnt);
  2129. }
  2130. model.makeValue("/root/send/reqdata/status", "U");
  2131. //model.makeValue("/root/hidden/issflag" , flag); report에 사본이라는 메시지를 안 찍히기 하기 위해 처리함
  2132. //출력시 호출할 REX report id를 설정
  2133. var ivwCtrl = ivw_loader.window.document.controls("ivw_base");
  2134. var formcd = model.getValue("/root/main/profhist/list["+ currow +"]/formcd");
  2135. // 서식이 진료의뢰서인 경우
  2136. /* 환자의 보험유형 (코드군 P0008 참조)
  2137. 11 건강보험
  2138. 21 의료급여1종
  2139. 22 의료급여2종
  2140. 31 자보
  2141. 41 산재
  2142. 42 공상
  2143. 51 일반
  2144. 61 외국인
  2145. 71 임상시험
  2146. 81 노인장기요양보험
  2147. */
  2148. // 의료급여가 보험인 환자 -> 요양급여의뢰서: RFM0534001_요양급여의뢰서001.rex
  2149. // 의료급여가 보험이 아닌 것
  2150. // 1) 본인부담면제 항목이 비어있거나, 본인부담면제 항목이 있으면서 해당 코드가 M003~M010 -> 의료급여의뢰서: RFM0534002_의료급여의뢰서002.rex
  2151. // 2) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있는 경우 -> 의료급여의뢰서(선택기관발부용): RFM0534003_의료급여의뢰서003.rex
  2152. // 3) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있지 않는 경우 -> 의료급여의뢰서(의뢰진료기관에 "B006"으로 찍힘): RFM0534004_의료급여의뢰서004.rex
  2153. model.makeValue("/root/send/reqdata/hardcdno", "1114"); // 진단서 발행시 보험유형별로 다르게 출력되는 서식
  2154. submit("TRMRF03104");
  2155. var rexid = "";
  2156. if(model.getValue("/root/main/hardcdlist[trgtcd='"+ formcd +"']/trgtcd") != "")
  2157. {
  2158. if(model.getValue("/root/main/hardcdlist[trgtcd='"+ formcd +"']/trgtcdnm") == "진료의뢰서")
  2159. {
  2160. var hospcd = fGetHospitalCode();
  2161. var insukind = model.getValue("/root/main/result/pathistlist/insukind");
  2162. //var retList = findNodeset(model, "/root/hidden/insuinfo");
  2163. if(insukind == "11" || insukind == "81") // 건강보험인 경우
  2164. {
  2165. var tmpformcd = formcd.substr(5, 5);
  2166. rexid = "RFM" + tmpformcd + "01";
  2167. }
  2168. else // 건강보험이 아닌 경우
  2169. {
  2170. // 환자의 자격을 조회.
  2171. fGetPatInsuranceInfo();
  2172. var InsuranceInfoList = findNodeset(model, "/root/main/patinsuranceinfo");
  2173. if(InsuranceInfoList.length > 0)
  2174. {
  2175. var patInsuranceInfo = InsuranceInfoList.item(0);
  2176. var proccorpcd = patInsuranceInfo.selectSingleNode("proccorpcd").text; //등록번호
  2177. var hngnm = patInsuranceInfo.selectSingleNode("hngnm").text; //환자명
  2178. var qualflag = patInsuranceInfo.selectSingleNode("qualflag").text; //자격구분
  2179. var hshdnm = patInsuranceInfo.selectSingleNode("hshdnm").text; //세대주성명
  2180. var secuinstmark = patInsuranceInfo.selectSingleNode("secuinstmark").text; //보장기관기호
  2181. var estmmark = patInsuranceInfo.selectSingleNode("estmmark").text; //시설기호(증번호)
  2182. var ownbflag = patInsuranceInfo.selectSingleNode("ownbflag").text; //본인부담구분
  2183. var choicorpmark1 = patInsuranceInfo.selectSingleNode("choicorpmark1").text; //선택기관기호1
  2184. var choicorpmark2 = patInsuranceInfo.selectSingleNode("choicorpmark2").text;
  2185. var choicorpmark3 = patInsuranceInfo.selectSingleNode("choicorpmark3").text;
  2186. var choicorpmark4 = patInsuranceInfo.selectSingleNode("choicorpmark4").text;
  2187. var choicorpnm1 = patInsuranceInfo.selectSingleNode("choicorpnm1").text; //선택기관이름1
  2188. var choicorpnm2 = patInsuranceInfo.selectSingleNode("choicorpnm2").text;
  2189. var choicorpnm3 = patInsuranceInfo.selectSingleNode("choicorpnm3").text;
  2190. var choicorpnm4 = patInsuranceInfo.selectSingleNode("choicorpnm4").text;
  2191. model.makeValue("/root/send/reqdata/hardcdno", "1115"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  2192. submit("TRMRF03104");
  2193. // 1) 본인부담면제 항목이 비어있거나, 본인부담면제 항목이 있으면서 해당 코드가 M003~M010 -> 의료급여의뢰서: RFM0534002_의료급여의뢰서002.rex
  2194. if(ownbflag == "" || (ownbflag != "" && model.getValue("/root/main/hardcdlist[trgtcd='"+ ownbflag +"']/trgtcd") != "") )
  2195. {
  2196. var tmpformcd = formcd.substr(5, 5);
  2197. rexid = "RFM" + tmpformcd + "02";
  2198. }
  2199. else
  2200. {
  2201. model.makeValue("/root/send/reqdata/hardcdno", "1116"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  2202. submit("TRMRF03104");
  2203. if(model.getValue("/root/main/hardcdlist[trgtcd='"+ ownbflag +"']/trgtcd") != "")
  2204. {
  2205. var choicorpmark = "";
  2206. var selected = false;
  2207. for(var idx = 1; idx <= 4; idx++)
  2208. {
  2209. choicorpmark = "";
  2210. switch(idx)
  2211. {
  2212. case 1: choicorpmark = choicorpmark1;
  2213. break;
  2214. case 2: choicorpmark = choicorpmark2;
  2215. break;
  2216. case 3: choicorpmark = choicorpmark3;
  2217. break;
  2218. case 4: choicorpmark = choicorpmark4;
  2219. break;
  2220. }
  2221. if(choicorpmark == hospcd)
  2222. {
  2223. selected = true;
  2224. break;
  2225. }
  2226. }
  2227. // 2) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있는 경우 -> 의료급여의뢰서(선택기관발부용): RFM0534003_의료급여의뢰서003.rex
  2228. if(selected == true)
  2229. {
  2230. var tmpformcd = formcd.substr(5, 5);
  2231. rexid = "RFM" + tmpformcd + "03";
  2232. }
  2233. // 3) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있지 않는 경우 -> 의료급여의뢰서(의뢰진료기관에 "B006"으로 찍힘): RFM0534004_의료급여의뢰서004.rex
  2234. else
  2235. {
  2236. var tmpformcd = formcd.substr(5, 5);
  2237. rexid = "RFM" + tmpformcd + "04";
  2238. }
  2239. }
  2240. }
  2241. }
  2242. else
  2243. {
  2244. messageBox("환자의 의료자격조회 정보가", "E013");
  2245. return;
  2246. }
  2247. }
  2248. }
  2249. }
  2250. else
  2251. {
  2252. //서식 두번째 코드가 8인 경우,
  2253. if(formcd.charAt(1)=="8")
  2254. {
  2255. formcd = formcd.substr(7, 3);
  2256. rexid = "RFM" + "80" + formcd + "00";
  2257. }
  2258. else if (formcd.charAt(0) == "1") // knuh_20110118 추가
  2259. {
  2260. var precd = formcd.substr(0, 2);
  2261. formcd = formcd.substr(5, 5);
  2262. rexid = "RFM" + precd + formcd;
  2263. }
  2264. else
  2265. {
  2266. formcd = formcd.substr(5, 5);
  2267. var rexid = "RFM" + formcd + "00";
  2268. }
  2269. }
  2270. //용도변경이 입력되는 서식여부를 검사
  2271. var hardcd = model.getValue("/root/init/hardcd/hardcd[hardcd='" + formcd + "']/hardcd");
  2272. if(hardcd != ""){
  2273. //용도변경 정보가 있는 서식
  2274. model.makeValue("/root/send/reqdata/profhist/prstusgeflag", "Y");
  2275. }else{
  2276. //용도변경 정보가 없는 서식
  2277. model.makeValue("/root/send/reqdata/profhist/prstusgeflag", "N");
  2278. }
  2279. ////////////////////////////////
  2280. // 2009.10.13 제증명 출력 시 특정 프린터로 출력 하기 위해 추가
  2281. var sPrinterName = model.getValue("/root/init/PAM/P0018list/P0018[cdid = '5']/cdnm");
  2282. // 코드가 존재하지 않거나 코드명(프린터드라이버명)이 null(설정되지 않음)일 때는 기본프린터로 출력할 수 있도록 설정
  2283. if (isNull(sPrinterName)) {
  2284. sPrinterName = "true";
  2285. } else {
  2286. var sPrinterCheck = model.registry("HKEY_CURRENT_USER", "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Devices", sPrinterName, "STRING");
  2287. if ( sPrinterCheck == "" )
  2288. sPrinterName = "true";
  2289. }
  2290. //////////////////////
  2291. if(flag == "30"){
  2292. model.makeValue("/root/send/reqdata/certmemo", model.getValue("/root/tmp/certmemo"));
  2293. model.makeValue("/root/send/reqdata/elctsignkey", model.getValue("/root/tmp/elctsignkey"));
  2294. model.makeValue("/root/send/reqdata/elctsigncnts", model.getValue("/root/tmp/elctsigncnts"));
  2295. }else{
  2296. model.removenode("/root/send/reqdata/certmemo");
  2297. model.removenode("/root/send/reqdata/elctsignkey");
  2298. model.removenode("/root/send/reqdata/elctsigncnts");
  2299. }
  2300. if(flag != "40"){ //재출력이 아닌 경우
  2301. //2012/03/28 Start 제증명 재발행의 경우 발행용도를 바꾸어서 저장
  2302. if(flag=="30" && ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemcd='0013100001']/reccnts")!=""){
  2303. var issusge = model.getValue("/root/main/issusge");
  2304. if(issusge != ""){
  2305. issusge = issusge.split("▩");
  2306. var prstusge = issusge[1].split("▦");
  2307. model.setValue("/root/send/reqdata/profhist/prstusge", prstusge[0]); //용도구분
  2308. }
  2309. }
  2310. //2012/03/28 End
  2311. if(submit("TXMMR02905")){
  2312. var yearseqno = model.getValue("/root/main/iss/yearseqno");
  2313. if(yearseqno != ""){
  2314. var itemVal = new ITEMVAL();
  2315. itemVal.reccnts = yearseqno;
  2316. ivw_loader.ivw_base.window.javascript.setFormItemValue("0008632", itemVal, true); //발행 후 연번호 설정
  2317. }
  2318. copyNodeset("/root/main/recinfo", "/root/main/recinfo", "replace", model, ivwCtrl.model); //서식지 정보 설정
  2319. model.makeValue("/root/hidden/docinfo/signimge", ivwCtrl.model.getValue("/root/hidden/docinfo/signimge")); //서식서명이미지 설정
  2320. //출력 Report양식처리, 1)진단코드 3자리 점(.)찍기 2)출력내용이 늘어나는 것을 방지하기 위해 제증명내용 instance로 분리
  2321. fDoMakeProfPrntInfo(ivwCtrl);
  2322. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  2323. if( nCheckPerPrint == "Y" ){
  2324. if( flag == "30" && model.instance1.selectSingleNode("/root/send/reqdata/elctsigncnts") != null ){ // 재출력
  2325. model.makeValue("/root/hidden/signinfo/signimge", model.getValue("/root/send/reqdata/elctsigncnts"));
  2326. }else{
  2327. lf_getPerSignData(currow);
  2328. if( model.instance1.selectSingleNode("/root/persigntemp/memo/memo/elctsigncnts") != null ){
  2329. model.makeValue("/root/hidden/signinfo/signimge", model.getValue("/root/persigntemp/memo/memo/elctsigncnts"));
  2330. }
  2331. }
  2332. }
  2333. exeReportPreview(rexid, "XMLSTR", "", "", sPrinterName , "", "", "", "", "true","", "", "", "", "hidden", prntcnt); //출력
  2334. // OCR 이미지 저장 로직 제거(20160512 이윤주)
  2335. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  2336. if( nCheckPerPrint == "Y" ){
  2337. LTP_Init();
  2338. // 기존파일 삭제 후 생성
  2339. try{
  2340. var fso, folderspec;
  2341. folderspec = "c:\\report";
  2342. fso = new ActiveXObject("Scripting.FileSystemObject");
  2343. fso.DeleteFolder(folderspec);
  2344. var a = fso.CreateFolder(folderspec);
  2345. //a.close();
  2346. }catch(e){
  2347. //alert(e);
  2348. }
  2349. exeReportPreview(rexid, "XMLSTR", "", "", "false" , "false", "jpeg", rexid, "0", "true","", "", "", "", "", ""); //출력
  2350. model.refresh();
  2351. model.makeValue("/root/send/ocrtaginfo/pid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  2352. model.makeValue("/root/send/ocrtaginfo/formcd" , model.getValue("/root/main/profhist/list[" + currow + "]/formcd"));
  2353. model.makeValue("/root/send/ocrtaginfo/orddd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddd"));
  2354. model.makeValue("/root/send/ocrtaginfo/profcertseq" , model.getValue("/root/main/iss/profcertseq"));
  2355. if( submit("TXMMR02910") ){
  2356. model.copyNode("/root/main/ocrtaginfo", "/root/tmp/ocrtaginfo/ocrtaginfo");
  2357. model.makeValue("/root/send/ocrtreat/patid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid"));
  2358. model.makeValue("/root/send/ocrtreat/cretno" , model.getValue("/root/main/profhist/list[" + currow + "]/cretno"));
  2359. model.makeValue("/root/send/ocrtreat/indate" , model.getValue("/root/main/profhist/list[" + currow + "]/orddd"));
  2360. model.makeValue("/root/send/ocrtreat/instcd" , getUserInfo("dutplceinstcd") );
  2361. model.makeValue("/root/send/ocrtreat/class" , model.getValue("/root/main/profhist/list[" + currow + "]/ioflag"));
  2362. model.makeValue("/root/send/ocrtreat/docucd" , model.getValue("/root/main/profhist/list[" + currow + "]/formcd"));
  2363. model.makeValue("/root/send/ocrtreat/formcd" , model.getValue("/root/main/profhist/list[" + currow + "]/formcd"));
  2364. model.makeValue("/root/send/ocrtreat/cuser" , getUserInfo("userid") );
  2365. model.makeValue("/root/send/ocrtreat/ocrtag" , model.getValue("/root/main/ocrtaginfo/ocrtag"));
  2366. model.makeValue("/root/send/ocrtreat/formfromdt" , model.getValue("/root/main/ocrtaginfo/formfromdt"));
  2367. model.makeValue("/root/send/ocrtreat/orddeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddeptcd"));
  2368. model.makeValue("/root/send/ocrtreat/orddrid" , model.getValue("/root/main/profhist/list[" + currow + "]/orddrid"));
  2369. ImageSave( model.getValue("/root/send/ocrtaginfo/formcd") , rexid );
  2370. }
  2371. // cyw 이미지저장 2013-12-09 End --------------------------------------------------------------------------------------------------------------------------------
  2372. }
  2373. model.makeValue("/root/main/newprof/formnm", "-"); //이력 전체조회
  2374. model.makeValue("/root/main/selectdept", "-"); // 141114 - AYS 추가
  2375. model.setValue("/root/main/issinfo/isscnt", "1"); //발급부수 1로 기본 설정
  2376. }
  2377. fGetProfPrntHist();
  2378. }else{
  2379. copyNodeset("/root/main/recinfo", "/root/main/recinfo", "replace", model, ivwCtrl.model);
  2380. model.makeValue("/root/hidden/docinfo/signimge", ivwCtrl.model.getValue("/root/hidden/docinfo/signimge"));
  2381. //출력 Report양식처리, 1)진단코드 3자리 점(.)찍기 2)출력내용이 늘어나는 것을 방지하기 위해 제증명내용 instance로 분리
  2382. fDoMakeProfPrntInfo(ivwCtrl);
  2383. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  2384. if( nCheckPerPrint == "Y"){
  2385. lf_getPerSignData(currow);
  2386. if( model.instance1.selectSingleNode("/root/persigntemp/memo/memo/elctsigncnts") != null ){
  2387. model.makeValue("/root/hidden/signinfo/signimge", model.getValue("/root/persigntemp/memo/memo/elctsigncnts"));
  2388. }
  2389. }
  2390. exeReportPreview(rexid, "XMLSTR", "", "", sPrinterName , "", "", "", "", "true","", "", "", "", "hidden", prntcnt); //출력
  2391. // 2016.06.15 전원(회송)소견서 개인정보 동의서 출력
  2392. if( nCheckPerPrint == "Y" ){
  2393. lf_CheckPrintOCR(currow);
  2394. }
  2395. model.makeValue("/root/main/newprof/formnm", "-");
  2396. model.makeValue("/root/main/selectdept", "-"); // 141114 - AYS 추가
  2397. fGetProfPrntHist();
  2398. }
  2399. model.setValue("/root/main/issinfo/isscnt", "1"); //출력매수 1매로 적용
  2400. model.refresh();
  2401. }
  2402. /**
  2403. * @desc : 용도추가 버튼 클릭시, 선택된 제증명의 용도를 변경한 이력을 추가
  2404. * 발행상태는 미발행, 연번호는 생성되지 않는다.
  2405. * @
  2406. * @param :
  2407. * @return :
  2408. * @author : 2008. 08. 13. 오지훈
  2409. * @---------------------------------------------------
  2410. */
  2411. function fReqInsAddPrstUsge(){
  2412. var currow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  2413. if(currow < 1){
  2414. messageBox("용도 추가할 제증명 서식을", "C001");
  2415. return;
  2416. }
  2417. var prstusge = "";
  2418. var prstusgenm = "※용도추가※\n[";
  2419. var prstusgecnt = getNodesetCount("/root/temp/issusge/list");
  2420. if(prstusgecnt == 0){
  2421. return;
  2422. }
  2423. for(var i = 1; i <= prstusgecnt; i++){
  2424. prstusge += model.getValue("/root/temp/issusge/list[" + i + "]/cdid").concat("^");
  2425. prstusgenm += model.getValue("/root/temp/issusge/list[" + i + "]/cdnm").concat("]\n[");
  2426. }
  2427. prstusgenm = prstusgenm.substring(0, prstusgenm.length-1); //마지막의 '['를 제거
  2428. var resval = messageBox(prstusgenm + "의 용도로", "Q008");
  2429. if(resval == 6){ // '예'를 선택한 경우, 추가된 용도 저장
  2430. model.removeNodeset("/root/send/savedata");
  2431. model.makeValue("/root/send/savedata/pid" , model.getValue("/root/main/profhist/list[" + currow + "]/pid")); //등록번호
  2432. model.makeValue("/root/send/savedata/orddd" , model.getValue("/root/main/profhist/list[" + currow + "]/orddd")); //진료일자
  2433. model.makeValue("/root/send/savedata/cretno" , model.getValue("/root/main/profhist/list[" + currow + "]/cretno")); //생성번호
  2434. model.makeValue("/root/send/savedata/ioflag" , model.getValue("/root/main/profhist/list[" + currow + "]/ioflag")); //외래입원구분
  2435. model.makeValue("/root/send/savedata/formcd" , model.getValue("/root/main/profhist/list[" + currow + "]/formcd")); //서식코드
  2436. model.makeValue("/root/send/savedata/issstat" , model.getValue("/root/main/profhist/list[" + currow + "]/issstat")); //발행상태(임시, 인증저장)
  2437. model.makeValue("/root/send/savedata/issid" , model.getValue("/root/main/profhist/list[" + currow + "]/issid")); //발행자ID
  2438. model.makeValue("/root/send/savedata/issdeptcd" , model.getValue("/root/main/profhist/list[" + currow + "]/issdeptcd")); //발행자ID
  2439. model.makeValue("/root/send/savedata/issdt" , model.getValue("/root/main/profhist/list[" + currow + "]/issdt")); //발행일시
  2440. model.makeValue("/root/send/savedata/profcertseq", model.getValue("/root/main/profhist/list[" + currow + "]/profcertseq"));//일련번호
  2441. model.makeValue("/root/send/savedata/formrecseq" , model.getValue("/root/main/profhist/list[" + currow + "]/formrecseq")); //서식기록순번
  2442. model.makeValue("/root/send/savedata/issflag" , "10"); //미발행
  2443. model.makeValue("/root/send/savedata/prstusge" , prstusge.substring(0, prstusge.length-1)); //용도구분
  2444. model.makeValue("/root/send/savedata/fstrgstrid" , getUserInfo("userid")); //최초등록자ID
  2445. model.makeValue("/root/send/savedata/lastupdtrid", getUserInfo("userid")); //최종수정자ID
  2446. model.makeValue("/root/send/savedata/fromdd" , model.getValue("/root/main/srchprofhist/fromdd")); //시작일자-저장 이후 조회용 정보
  2447. model.makeValue("/root/send/savedata/todd" , model.getValue("/root/main/srchprofhist/todd")); //종료일자-저장 이후 조회용 정보
  2448. model.makeValue("/root/send/savedata/histcd" , 0);
  2449. if(submit("TXMMR02906")){
  2450. fGetProfPrntHist();
  2451. }
  2452. }else{ // '아니오'를 선택한 경우, 선택된 용도 nodeset 제거
  2453. model.removeNodeset("/root/temp/issusge/list");
  2454. model.makeNode("/root/temp/issusge/list");
  2455. }
  2456. }
  2457. /**
  2458. * @desc : 서식수가 조회
  2459. * @
  2460. * @param : formcd : 서식코드
  2461. * : srchflag : 조회구분(PROF:제증명, OCR:OCR)
  2462. * @return : true : 조회성공
  2463. * : false : 조회실패
  2464. * @---------------------------------------------------
  2465. */
  2466. function fReqGetCalcScorcd(formcd, srchflag){
  2467. model.removeNodeset("/root/send/reqdata");
  2468. model.makeValue("/root/send/reqdata/calcscor/formcd" , formcd);
  2469. model.makeValue("/root/send/reqdata/calcscor/srchflag", srchflag);
  2470. if(submit("TRMMR02906")){
  2471. return true;
  2472. }else{
  2473. return false;
  2474. }
  2475. }
  2476. /**
  2477. * @desc : 환자 외래원무정보 생성
  2478. * @
  2479. * @param : formcd : 서식코드
  2480. * : srchflag : 조회구분(PROF:제증명, OCR:OCR)
  2481. * @return :
  2482. * @---------------------------------------------------
  2483. */
  2484. function fSetOtptPamInfo(pid, orddd, orddeptcd, orddrid){
  2485. model.makeValue("/root/send/reqdata/pid",pid);
  2486. model.makeValue("/root/send/reqdata/orddd",orddd);
  2487. model.makeValue("/root/send/reqdata/orddeptcd",orddeptcd);
  2488. if(submit("TRMMR02920")){
  2489. var centcd = model.getValue("/root/temp/centcd/centcd");
  2490. if (centcd == "") {
  2491. centcd = "-";
  2492. }
  2493. }
  2494. var insukind ="";
  2495. var suppkind ="";
  2496. var formcd = model.getValue("/root/send/reqdata/profhist/formcd");
  2497. var srcformcd = model.getValue("/root/send/reqdata/profhist/srcformcd");
  2498. //보험유형을 넘겨야 하는 서식들
  2499. if ( srcformcd == "1300014808" || srcformcd == "1100012259" || srcformcd == "0000002536" || srcformcd == "1400015254" || srcformcd == "1000008583" ) {
  2500. var insukind = model.getValue("/root/main/patinfo/insukind");
  2501. var suppkind = model.getValue("/root/main/patinfo/suppkind");
  2502. }
  2503. model.makeValue("/root/main/acptoccinfo/otpt_flag" , "I");
  2504. model.makeValue("/root/main/acptoccinfo/otpt_pid" , pid);
  2505. model.makeValue("/root/main/acptoccinfo/otpt_orddd" , orddd);
  2506. model.makeValue("/root/main/acptoccinfo/otpt_orddeptcd" , orddeptcd);
  2507. model.makeValue("/root/main/acptoccinfo/otpt_centcd" , centcd);
  2508. model.makeValue("/root/main/acptoccinfo/otpt_orddrid" , orddrid);
  2509. model.makeValue("/root/main/acptoccinfo/otpt_ordtm" , "0000");
  2510. model.makeValue("/root/main/acptoccinfo/otpt_ordtype" , "O");
  2511. model.makeValue("/root/main/acptoccinfo/otpt_medamtestmyn" , "N");
  2512. model.makeValue("/root/main/acptoccinfo/otpt_medamtfreeresn", "01");
  2513. model.makeValue("/root/main/acptoccinfo/otpt_insukind " , insukind);
  2514. model.makeValue("/root/main/acptoccinfo/otpt_suppkind " , suppkind);
  2515. model.makeValue("/root/main/acptoccinfo/otpt_rsrvflag" , "3");
  2516. model.makeValue("/root/main/acptoccinfo/otpt_etcordflag" , "");
  2517. model.makeValue("/root/main/acptoccinfo/otpt_instcd" , getUserInfo("dutplceinstcd"));
  2518. model.makeValue("/root/main/acptoccinfo/sess_userid" , getUserInfo("userid"));
  2519. model.makeValue("/root/main/acptoccinfo/otpt_remfact" , "제증명 - 진단서발급");
  2520. }
  2521. /**
  2522. * @desc : 제증명정보 생성
  2523. * @
  2524. * @param : status : 처리구분(0:외래가접수, 1:외래/입원수진정보)
  2525. * : pid : 등록번호
  2526. * : orddd : 진료일자
  2527. * : cretno : 생성번호
  2528. * : ioflag : 외래입원구분
  2529. * @return :
  2530. * @---------------------------------------------------
  2531. */
  2532. function fSetProfInfo(status, pid, orddd, cretno, ioflag, formcd, orddeptcd, orddrid, prntcnt, extraflag, issflag, holograpflag, prstusge) { // 용도구분(prstusge) - 2010.05.04 김찬영 추가
  2533. model.removeNode("/root/main/newprof");
  2534. model.makeValue("/root/main/newprof/status" , status);
  2535. model.makeValue("/root/main/newprof/pid" , pid); //등록번호
  2536. model.makeValue("/root/main/newprof/orddd" , orddd); //진료일자
  2537. model.makeValue("/root/main/newprof/cretno" , cretno); //생성번호
  2538. model.makeValue("/root/main/newprof/ioflag" , ioflag); //외래입원구분
  2539. model.makeValue("/root/main/newprof/formcd" , formcd); //서식코드
  2540. model.makeValue("/root/main/newprof/issstat" , "I"); //발행상태(임시, 인증저장)
  2541. model.makeValue("/root/main/newprof/issid" , orddrid); //발행자ID
  2542. model.makeValue("/root/main/newprof/issdeptcd" , orddeptcd); //발행자ID
  2543. model.makeValue("/root/main/newprof/issdt" , getCurrentDate().concat(getCurrentTime())); //발행일시
  2544. model.makeValue("/root/main/newprof/profcertseq", ""); //일련번호
  2545. model.makeValue("/root/main/newprof/formrecseq" , 0); //서식기록순번
  2546. model.makeValue("/root/main/newprof/issflag" , issflag);//발행
  2547. model.makeValue("/root/main/newprof/prstusge" , prstusge); //용도구분 - 2010.05.04 김찬영 추가
  2548. model.makeValue("/root/main/newprof/fstrgstrid" , getUserInfo("userid")); //최초등록자ID
  2549. model.makeValue("/root/main/newprof/lastupdtrid", getUserInfo("userid")); //최종수정자ID
  2550. model.makeValue("/root/main/newprof/histcd" , 0);
  2551. model.makeValue("/root/main/newprof/orddept" , ""); //진료과
  2552. model.makeValue("/root/main/newprof/doctnm" , ""); //진료의이름
  2553. model.makeValue("/root/main/newprof/licnsno" , ""); //면허번호
  2554. model.makeValue("/root/main/newprof/formnm" , ""); //서식지명
  2555. model.makeValue("/root/main/newprof/yearseqno" , ""); //연번호
  2556. model.makeValue("/root/main/newprof/prntcnt" , prntcnt); //발급부수
  2557. model.makeValue("/root/main/newprof/extraflag" , extraflag); //사본구분
  2558. model.makeValue("/root/main/newprof/holograpflag" , holograpflag); //자필제증명구분
  2559. //2009-07-15 오전 11:31:47 강지훈 추가 : 연번호발행이후에 일부제증명 신규작성할때 오류발생하는것을 방지
  2560. model.makeValue("/root/main/newprof/orddeptcd" , getUserInfo("dutplcecd"));
  2561. model.makeValue("/root/main/newprof/orddoctid" , getUserInfo("userid"));
  2562. }
  2563. /**
  2564. * @desc : 제증명 연번호 발행
  2565. * @
  2566. * @param :
  2567. * @return :
  2568. * @---------------------------------------------------
  2569. */
  2570. function fReqInsCretYearNo(){
  2571. //건진센터에서 발행하는 경우, 건강진단서, 채용신검을 제외하고는 권한 없음 메시지를 출력함
  2572. var dutplcecd = getUserInfo("dutplcecd");
  2573. if(dutplcecd == "2370106000" || dutplcecd == "2370144000" ||
  2574. dutplcecd == "2380000000" || dutplcecd == "2370301000" || dutplcecd == "2370302000"){
  2575. messageBox("발급 권한이", "I004");
  2576. return;
  2577. }
  2578. var pid = model.getValue("/root/main/patinfo/pid");
  2579. if(memoviewflag == ""){
  2580. memoviewflag = popmemoviewflag;
  2581. }
  2582. setParameter("SPMMR02300_pid" , pid );
  2583. setParameter("SPMMR02300_memoviewflag" , memoviewflag );
  2584. setParameter("SPMMR02300_signflag" , signflag );
  2585. setParameter("SPMMR02300_signipcnt" , signipcnt );
  2586. modal("SPMMR02300");
  2587. var useyn = getParameter("SPMMR02300_useyn");
  2588. if(useyn == "Y"){
  2589. var formcd = getParameter("SPMMR02300_formcd");
  2590. var formnm = getParameter("SPMMR02300_formnm");
  2591. var orddeptcd = getParameter("SPMMR02300_orddeptcd");
  2592. var orddrid = getParameter("SPMMR02300_orddrid");
  2593. var ioflag = getParameter("SPMMR02300_ioflag");
  2594. var cretno = getParameter("SPMMR02300_cretno");
  2595. var orddd = getParameter("SPMMR02300_orddd");
  2596. var prntcnt = getParameter("SPMMR02300_prntcnt");
  2597. var extraflag = getParameter("SPMMR02300_extraflag");
  2598. var freeflag = getParameter("SPMMR02300_freeflag");
  2599. var status = getParameter("SPMMR02300_status");
  2600. var handicap = getParameter("SPMMR02300_handicap");
  2601. var extraflag = getParameter("SPMMR02300_extraflag");
  2602. var issflag = getParameter("SPMMR02300_issflag");
  2603. var holograpflag = getParameter("SPMMR02300_holograpflag");
  2604. var prstusge = getParameter("SPMMR02300_prstusge"); //용도구분 - 2010.05.04 김찬영 추가
  2605. var certmemo = getParameter("SPMMR02300_certmemo"); // 발행Comment - 2014.01.10 cyw
  2606. var elctsignkey = getParameter("SPMMR02300_elctsignkey"); // 발행사인키 - 2014.01.16 cyw
  2607. var elctsigncnts = getParameter("SPMMR02300_elctsigncnts"); // 발행사인내용 - 2014.01.16 cyw
  2608. fSetOtptPamInfo(pid, getCurrentDate(), orddeptcd, orddrid); //외래접수정보 설정
  2609. if(freeflag != "Y"){ //항상 무료인 부서와 무료를 check 하지 않은 경우
  2610. if(fReqGetCalcScorcd(formcd, "PROF")){ //재증명 수가정보 조회
  2611. var calcscorcd = model.getValue("/root/main/calcscorinfo/calcscorlist/calcscorcd");
  2612. if(calcscorcd != ""){
  2613. var calcNodeCnt = getNodesetCount("/root/main/calcscorinfo/calcscorlist");
  2614. fCalsSorcSave("", calcNodeCnt);
  2615. }else{
  2616. var rtnval = messageBox("해당 제증명 수가 정보가 없습니다.", "Q003");
  2617. if(rtnval == 7){
  2618. return;
  2619. }
  2620. }
  2621. }
  2622. }
  2623. fSetProfInfo(status, pid, orddd, cretno, ioflag, formcd, orddeptcd, orddrid, prntcnt, extraflag, issflag, holograpflag, prstusge); //제증명정보 설정, 용도구분(prstusge) - 2010.05.04 김찬영 추가
  2624. model.makeValue("/root/main/newprof/prntdt" , getCurrentDate().concat(getCurrentTime())); //발급시간 추가
  2625. copyNodeset("/root/send/reqdata/prof" , "/root/main/newprof");
  2626. copyNodeset("/root/send/reqdata/acptoccinfo" , "/root/main/acptoccinfo");
  2627. model.makeValue("/root/send/reqdata/prof/certmemo" , certmemo ); // 2014.01.10
  2628. model.makeValue("/root/send/reqdata/prof/elctsignkey" , elctsignkey ); // 2014.01.16
  2629. model.makeValue("/root/send/reqdata/prof/elctsigncnts" , elctsigncnts ); // 2014.01.16
  2630. if(handicap != ""){
  2631. handicap = handicap.split("^");
  2632. if(handicap.length > 0){
  2633. model.makeValue("/root/send/reqdata/handicap/handicapflag" , handicap[0] );
  2634. model.makeValue("/root/send/reqdata/handicap/handicapgrde" , handicap[1] );
  2635. model.makeValue("/root/send/reqdata/handicap/handicapno" , handicap[2] );
  2636. model.makeValue("/root/send/reqdata/handicap/claiminstcd" , handicap[3] );
  2637. }
  2638. }
  2639. if(submit("TXMMR02901")){
  2640. if(formcd == "0800000552"){ //방문간호지시서인 경우 무료발급사유가 연번호
  2641. var yearseqno = model.getValue("/root/main/iss/freeissresn");
  2642. }else{
  2643. var yearseqno = model.getValue("/root/main/iss/yearseqno");
  2644. }
  2645. var hngnm = model.getValue("/root/main/patinfo/hngnm");
  2646. if(yearseqno != ""){
  2647. var msgstr = "환자 : [" + pid + "]" + hngnm + "\n서식 : [" + formnm + "]\n연번호 : [" + yearseqno + "]로";
  2648. messageBox(msgstr, "I001");
  2649. model.makeValue("/root/main/newprof/formnm", "-");
  2650. model.makeValue("root/main/selectdept", "-"); // 141114 - AYS 추가
  2651. fGetProfPrntHist();
  2652. }
  2653. }
  2654. setParameter("SPMMR02300_useyn" , "N");
  2655. setParameter("SPMMR02300_formcd" , "");
  2656. setParameter("SPMMR02300_formnm" , "");
  2657. setParameter("SPMMR02300_orddeptcd", "");
  2658. setParameter("SPMMR02300_orddrid" , "");
  2659. setParameter("SPMMR02300_ioflag" , "");
  2660. setParameter("SPMMR02300_cretno" , "");
  2661. setParameter("SPMMR02300_orddd" , "");
  2662. setParameter("SPMMR02300_prntcnt" , "");
  2663. setParameter("SPMMR02300_status" , "");
  2664. setParameter("SPMMR02300_handicap" , "");
  2665. setParameter("SPMMR02300_issflag" , "");
  2666. setParameter("SPMMR02300_prstusge" , ""); //용도구분 - 2010.05.04 김찬영 추가
  2667. setParameter("SPMMR02300_certmemo" , ""); // 발행Comment - 2014.01.10 cyw
  2668. setParameter("SPMMR02300_elctsignkey" , "");
  2669. setParameter("SPMMR02300_elctsigncnts" , "");
  2670. }
  2671. }
  2672. /**
  2673. * @desc : 환자진료정보 조회 및 설정
  2674. * @
  2675. * @param :
  2676. * @return :
  2677. * @---------------------------------------------------
  2678. */
  2679. function fReqGetComnPatOrdInfo(pid){
  2680. btn_cretotpt.visible = false; //새로운 환자조회시 가접수생성 버튼 hidden
  2681. model.removeNodeset("/root/send/reqdata");
  2682. //2009 07 14 강지훈 수정 : 등록번호로 조회할때 환자정보및 발행용도 reset
  2683. model.removeNodeset("/root/main/patinfo"); //환자정보 삭제
  2684. model.makeValue("/root/send/reqdata/pid" , pid);
  2685. model.makeValue("/root/send/reqdata/orddeptcd", "-");
  2686. if(submit("TRMMR05501")){
  2687. var srchnodelist = model.instances(0).selectNodes("/root/main/result/pathistlist");
  2688. if(srchnodelist.length > 1){
  2689. modal("SPMMR05700", "", 10, 10, "", "/root/main/result", "/root/main/result");
  2690. if(getParameter("SPMMR05700_useyn")=="Y"){
  2691. var pid = model.getValue("/root/main/result/pathistlist/pid");
  2692. var orddd = model.getValue("/root/main/result/pathistlist/orddd");
  2693. var cretno = model.getValue("/root/main/result/pathistlist/cretno");
  2694. var hngnm = model.getValue("/root/main/result/pathistlist/hngnm");
  2695. var sex = model.getValue("/root/main/result/pathistlist/sex");
  2696. var age = model.getValue("/root/main/result/pathistlist/age");
  2697. var brthdd = model.getValue("/root/main/result/pathistlist/brthdd");
  2698. var rrgstno1 = model.getValue("/root/main/result/pathistlist/rrgstno1");
  2699. var rrgstno2 = model.getValue("/root/main/result/pathistlist/rrgstno2");
  2700. var addr = model.getValue("/root/main/result/pathistlist/addr");
  2701. var hometel = model.getValue("/root/main/result/pathistlist/hometel");
  2702. var ioflag = model.getValue("/root/main/result/pathistlist/ordtype");
  2703. var orddeptcd= model.getValue("/root/main/result/pathistlist/orddeptcd");
  2704. var orddeptnm= model.getValue("/root/main/result/pathistlist/orddeptnm");
  2705. var orddrid = model.getValue("/root/main/result/pathistlist/orddrid");
  2706. var insukind = model.getValue("/root/main/result/pathistlist/insukind");
  2707. var suppkind = model.getValue("/root/main/result/pathistlist/suppkind");
  2708. var dschdd = model.getValue("/root/main/result/pathistlist/dschdd"); // 2009.09.28 퇴원일 추가 (상급병실확인서)
  2709. setParameter("SPMMR05700_useyn", "N");
  2710. }else{
  2711. setParameter("SPMMR05700_useyn", "N");
  2712. return;
  2713. }
  2714. }else if(srchnodelist.length == 1){
  2715. var pid = model.getValue("/root/main/result/pathistlist/pid");
  2716. var orddd = model.getValue("/root/main/result/pathistlist/orddd");
  2717. var cretno = model.getValue("/root/main/result/pathistlist/cretno");
  2718. var hngnm = model.getValue("/root/main/result/pathistlist/hngnm");
  2719. var sex = model.getValue("/root/main/result/pathistlist/sex");
  2720. var age = model.getValue("/root/main/result/pathistlist/age");
  2721. var brthdd = model.getValue("/root/main/result/pathistlist/brthdd");
  2722. var rrgstno1 = model.getValue("/root/main/result/pathistlist/rrgstno1");
  2723. var rrgstno2 = model.getValue("/root/main/result/pathistlist/rrgstno2");
  2724. var addr = model.getValue("/root/main/result/pathistlist/addr");
  2725. var hometel = model.getValue("/root/main/result/pathistlist/hometel");
  2726. var ioflag = model.getValue("/root/main/result/pathistlist/ordtype");
  2727. var orddeptcd= model.getValue("/root/main/result/pathistlist/orddeptcd");
  2728. var orddeptnm= model.getValue("/root/main/result/pathistlist/orddeptnm");
  2729. var orddrid = model.getValue("/root/main/result/pathistlist/orddrid");
  2730. var insukind = model.getValue("/root/main/result/pathistlist/insukind");
  2731. var suppkind = model.getValue("/root/main/result/pathistlist/suppkind");
  2732. var dschdd = model.getValue("/root/main/result/pathistlist/dschdd"); // 2009.09.28 퇴원일 추가 (상급병실확인서)
  2733. }else{
  2734. model.removeNodeset("/root/send/reqdata");
  2735. model.makeValue("/root/send/reqdata/pid", pid);
  2736. if(submit("TRMMR02909")){
  2737. var ptbsinfo = model.instances(0).selectNodes("/root/temp/patinfo/patinfo");
  2738. if(ptbsinfo.length == 0){
  2739. messageBox("환자정보가", "I004");
  2740. return;
  2741. }
  2742. var sex = model.getValue("/root/temp/patinfo/patinfo/sex");
  2743. var age = model.getValue("/root/temp/patinfo/patinfo/age");
  2744. var rrgstno1 = model.getValue("/root/temp/patinfo/patinfo/rrgstno1");
  2745. var rrgstno2 = model.getValue("/root/temp/patinfo/patinfo/rrgstno2");
  2746. model.makeValue("/root/main/patinfo/pid" , pid);
  2747. model.makeValue("/root/main/patinfo/hngnm" , model.getValue("/root/temp/patinfo/patinfo/hngnm"));
  2748. model.makeValue("/root/main/patinfo/age" , sex.concat("/").concat(age));
  2749. model.makeValue("/root/main/patinfo/rrgstno1", rrgstno1 + "-" + rrgstno2.substring(0, 1) + "******");
  2750. model.makeValue("/root/main/patinfo/addr" , model.getValue("/root/temp/patinfo/patinfo/addr"));
  2751. model.makeValue("/root/main/patinfo/hometel" , model.getValue("/root/temp/patinfo/patinfo/hometel"));
  2752. model.makeValue("/root/main/patinfo/brthdd" , model.getValue("/root/temp/patinfo/patinfo/brthdd"));
  2753. model.makeValue("/root/main/patinfo/insukind", model.getValue("/root/temp/patinfo/patinfo/insukind"));
  2754. model.makeValue("/root/main/patinfo/suppkind", model.getValue("/root/temp/patinfo/patinfo/suppkind"));
  2755. }
  2756. btn_cretotpt.visible = true; //원무수진 정보가 없는 환자인 경우, 가접수생성 버튼 visible
  2757. model.refresh();
  2758. return false;
  2759. }
  2760. model.makeValue("/root/main/patinfo/pid" , pid);
  2761. model.makeValue("/root/main/patinfo/orddd" , orddd);
  2762. model.makeValue("/root/main/patinfo/cretno" , cretno);
  2763. model.makeValue("/root/main/patinfo/hngnm" , hngnm);
  2764. model.makeValue("/root/main/patinfo/rrgstno1" , rrgstno1 + "-" + rrgstno2.substring(0, 1) + "******");
  2765. model.makeValue("/root/main/patinfo/age" , sex.concat("/").concat(age));
  2766. model.makeValue("/root/main/patinfo/brthdd" , brthdd);
  2767. model.makeValue("/root/main/patinfo/addr" , addr);
  2768. model.makeValue("/root/main/patinfo/ioflag" , ioflag);
  2769. model.makeValue("/root/main/patinfo/orddeptcd" , orddeptcd);
  2770. model.makeValue("/root/main/patinfo/orddeptnm" , orddeptnm);
  2771. model.makeValue("/root/main/patinfo/hometel" , hometel);
  2772. model.makeValue("/root/main/patinfo/orddrid" , orddrid);
  2773. model.makeValue("/root/main/patinfo/insukind" , insukind);
  2774. model.makeValue("/root/main/patinfo/suppkind" , suppkind);
  2775. model.makeValue("/root/main/patinfo/dschdd" , dschdd); // 2009.09.28 퇴원일 추가 (상급병실확인서)
  2776. fSetRcptpossynmsg(model.getValue("/root/main/patinfo/pid")); //무인수납 가능 여부 조회, 2010.03.08 주희경
  2777. model.refresh();
  2778. // 환자 보험정보 조회
  2779. fGetPatInsuranceInfo();
  2780. if(btn_tabprofhist.selected == true){
  2781. btn_profhist.dispatch("DOMActivate");
  2782. }
  2783. setParameter("SSMMR01100_getTopYn", "N");
  2784. ivw_loader.window.javascript.fSetPamInfo(pid, orddd, cretno, ioflag);
  2785. ivw_loader.src = "../../../emr/medirecweb/xrw/SSMMR01100_서식로더.xrw";
  2786. }
  2787. }
  2788. /**
  2789. * @desc : 환자검색 팝업으로 조회
  2790. * @
  2791. * @param :
  2792. * @return :
  2793. * @author : 오지훈
  2794. * @---------------------------------------------------
  2795. */
  2796. function fOpenPatSrchWnd(){
  2797. var rrgstno2 = "";
  2798. //환자정보 조회팝업에 기본 정보 넘겨준다.
  2799. model.makeValue("/root/tmp/pid", model.getValue("/root/main/patinfo/pid"));
  2800. model.makeValue("/root/tmp/hngnm", model.getValue("/root/main/patinfo/hngnm"));
  2801. model.makeValue("/root/tmp/srchcond",model.getValue("/root/main/patinfo/srchcond"));
  2802. model.makeValue("/root/tmp/autoflag","Y"); // 1건인경우 자동으로닫힘
  2803. modal("SPPMC02500", 1, 10, 10, "SPPMC02500", "/root/tmp", "/root/send");
  2804. var pid = model.getValue("/root/main/patinfo/patinfolist/pid");
  2805. model.removeNodeset("/root/main/patinfo/patinfolist");
  2806. if(pid != ""){
  2807. fReqGetComnPatOrdInfo(pid, "-");
  2808. model.makeValue("/root/main/newprof/formnm", "-");
  2809. model.makeValue("root/main/selectdept", "-"); // 141114 - AYS 추가
  2810. btn_tabprofhist.dispatch("DOMActivate");
  2811. }
  2812. }
  2813. /**
  2814. * @desc : 환자검색 팝업으로 조회
  2815. * @
  2816. * @param :
  2817. * @return :
  2818. * @author : 오지훈
  2819. * @---------------------------------------------------
  2820. */
  2821. function fDoMakeProfPrntInfo(ivwCtrl)
  2822. {
  2823. try
  2824. {
  2825. //진단코드 3자리마다 점(.)표시
  2826. // 진단명 그리드의 진단명 컬럼을 카운트
  2827. var totcnt = getNodesetCount("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[degnitemlevlcd='0016650.0000960.0000960']");
  2828. var formcd = ivwCtrl.model.getValue("/root/main/forminfo/formmast/formcd");
  2829. var srcformcd = ivwCtrl.model.getValue("/root/main/forminfo/formmast/srcformcd");
  2830. for(var i = 0; i < totcnt; i++){
  2831. var diagroflag = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[degnitemlevlcd='0016650.0000960.0004249' and rowno='" + i + "' and colno='0']/reccnts");
  2832. var diagkindflag = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[degnitemlevlcd='0016650.0000960.0001443' and rowno='" + i + "' and colno='1']/reccnts");
  2833. var rectermcd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd");
  2834. var rectermnm = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermnm");
  2835. var reccnts = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/reccnts");
  2836. var langflag = ivwCtrl.model.getValue("/root/main/forminfo/formmast/langflag");
  2837. if(langflag == "KO"){
  2838. //if(isHangul(rectermnm)== "H"){
  2839. if(diagkindflag == "M"){
  2840. rectermnm = "(주)".concat(rectermnm);
  2841. }
  2842. if(diagroflag == "R"){
  2843. rectermnm = "(의증)".concat(rectermnm);
  2844. }
  2845. if(reccnts != ""){
  2846. reccnts = " [" + reccnts + "]";
  2847. }
  2848. //2012/12/05 Start
  2849. //1000007215-->1100011577로 변경
  2850. if(formcd != "1100011577"){ //20100621-kys-근로능력평가진단서는 코멘트를 진단명에 달지 않는다.
  2851. rectermnm = rectermnm + reccnts;
  2852. }
  2853. //2012/12/05 End
  2854. }else if(langflag == "EN"){
  2855. //}else if(isHangul(rectermnm)== "E"){
  2856. if(diagkindflag == "M"){
  2857. rectermnm = "(Principle diagnosis)".concat(rectermnm);
  2858. }
  2859. if(diagroflag == "R"){
  2860. rectermnm = "(R/O)".concat(rectermnm);
  2861. }
  2862. if(reccnts != ""){
  2863. reccnts = " [" + reccnts + "]";
  2864. }
  2865. //2012/12/05 Start
  2866. //1000007215-->1100011577로 변경
  2867. if(formcd != "1100011577"){ //20100621-kys-근로능력평가진단서는 코멘트를 진단명에 달지 않는다.
  2868. rectermnm = rectermnm + reccnts;
  2869. }
  2870. //2012/12/05 End
  2871. }
  2872. rectermcd = removeChar(rectermcd, "."); //점을 제거
  2873. rectermcd = insertChar(rectermcd, ".", 3); // 3개 단위로 점을 입력
  2874. if(rectermcd != "")
  2875. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd", rectermcd);
  2876. if(rectermnm != "")
  2877. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermnm", rectermnm);
  2878. }
  2879. //2012/12/05 Start 근로능력평가용 진단서에서 평가대상 질환명2일 경우
  2880. if(formcd=="1100011577"){
  2881. var totcnt = getNodesetCount("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[degnitemlevlcd='0000960']");
  2882. for(var i = 0; i < totcnt; i++){
  2883. var diagroflag = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[degnitemlevlcd='0000960.0004249' and rowno='" + i + "' and colno='0']/reccnts");
  2884. var diagkindflag = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[degnitemlevlcd='0000960.0001443' and rowno='" + i + "' and colno='1']/reccnts");
  2885. var rectermcd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd");
  2886. var rectermnm = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[rowno='" + i + "' and colno='2']/rectermnm");
  2887. var reccnts = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[rowno='" + i + "' and colno='2']/reccnts");
  2888. var langflag = ivwCtrl.model.getValue("/root/main/forminfo/formmast/langflag");
  2889. if(langflag == "KO"){
  2890. //if(isHangul(rectermnm)== "H"){
  2891. if(diagkindflag == "M"){
  2892. rectermnm = "(주)".concat(rectermnm);
  2893. }
  2894. if(diagroflag == "R"){
  2895. rectermnm = "(의증)".concat(rectermnm);
  2896. }
  2897. if(reccnts != ""){
  2898. reccnts = " [" + reccnts + "]";
  2899. }
  2900. }else if(langflag == "EN"){
  2901. //}else if(isHangul(rectermnm)== "E"){
  2902. if(diagkindflag == "M"){
  2903. rectermnm = "(Principle diagnosis)".concat(rectermnm);
  2904. }
  2905. if(diagroflag == "R"){
  2906. rectermnm = "(R/O)".concat(rectermnm);
  2907. }
  2908. if(reccnts != ""){
  2909. reccnts = " [" + reccnts + "]";
  2910. }
  2911. }
  2912. rectermcd = removeChar(rectermcd, "."); //점을 제거
  2913. rectermcd = insertChar(rectermcd, ".", 3); // 3개 단위로 점을 입력
  2914. if(rectermcd != "")
  2915. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd", rectermcd);
  2916. if(rectermnm != "")
  2917. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0000960']/recitem[rowno='" + i + "' and colno='2']/rectermnm", rectermnm);
  2918. }
  2919. }
  2920. //2012/12/05 End
  2921. var stmt = "";
  2922. //var formcd = ivwCtrl.model.getValue("/root/main/forminfo/formmast/formcd"); 20100621-kys-위로 위치이동.
  2923. //일반진단서, 정신진단서
  2924. if( formcd == "0000000890" || formcd == "1100010592" ){
  2925. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0008224']/reccnts"); //향후 치료의견
  2926. fDoSepProfPage(stmt, 47);
  2927. }
  2928. //2012/11/26 Start 일반 진단(소견)서 일경우에는 90으로 조정
  2929. if(formcd == "1100012297"){
  2930. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0008224']/reccnts"); //향후 치료의견
  2931. fDoSepProfPage(stmt);
  2932. }
  2933. //2012/11/26 End
  2934. // 2013.12.04 CYW Start 의뢰회송서
  2935. if(formcd == "1300014808"){
  2936. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0008224']/reccnts"); //향후 치료의견
  2937. fDoSepProfPage(stmt);
  2938. }
  2939. // 2013.12.04 CYW End
  2940. //일반진단서(영문)
  2941. if(formcd == "0000001442"){
  2942. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0008224']/reccnts"); //향후 치료의견
  2943. fDoSepProfPage(stmt, 90);
  2944. }
  2945. //소견서
  2946. if(formcd == "0000001499"){
  2947. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0007168']/reccnts"); //내용
  2948. fDoSepProfPage(stmt, 47);
  2949. }
  2950. //소견서(영문)
  2951. if(formcd == "0000001501"){
  2952. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0007168']/reccnts"); //내용
  2953. fDoSepProfPage(stmt, 90);
  2954. }
  2955. //전원소견서, 응급실전원소견서,회송서
  2956. if(srcformcd == "0000002536" || formcd == "1100012259" || formcd == "1100011397" || formcd == "0000003129" || formcd == "1100011620" || formcd == "1600018117"){
  2957. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0010597']/reccnts"); //내용
  2958. fDoSepProfPage(stmt, 47);
  2959. }
  2960. //2012/05/07 Start
  2961. //진료의뢰서
  2962. // 2016.07.12 1600017534 의료급여의뢰서 추가
  2963. if(formcd == "0900005340" || formcd == "1700020559" || formcd == "1600017534"){
  2964. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0001213']/reccnts"); //내용
  2965. fDoSepProfPage(stmt, 47);
  2966. }
  2967. //2012/05/07 End
  2968. //투석환자 전원소견서, 투약력, 기타투약 컬럼
  2969. //2008. 1. 15 오지훈
  2970. if(formcd == "0000000618"){
  2971. model.removeNodeset("/root/main/contents");
  2972. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0001112']/reccnts"); //투약력
  2973. stmt2 = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0014933']/reccnts"); //기타투약
  2974. fDoSepProfPageExtn(stmt, stmt2, "drug", "etcdrug");
  2975. }
  2976. //수술확인서
  2977. //2009. 2. 17 오지훈
  2978. if(formcd == "0000001457"){
  2979. stmt = model.getValue("/root/main/recinfo/recitem[degnitemno='72']/reccnts"); //수술내역
  2980. fDoSepProfPage(stmt, 90, "/root/main/content1");
  2981. stmt = model.getValue("/root/main/recinfo/recitem[degnitemno='20']/reccnts"); //내용
  2982. fDoSepProfPage(stmt, 90, "/root/main/content2");
  2983. }
  2984. //외래 진료확인서
  2985. if(formcd == "0000001312" || formcd == "0000002639"){
  2986. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0005910']/reccnts"); //치료기간
  2987. fDoSepProfPage(stmt, 90, "/root/main/content1");
  2988. }
  2989. //향후치료비 추정서
  2990. //2009-09-24 오전 10:14:52 강지훈 추가
  2991. if(formcd == "0000001522" || formcd == "0800000403"){ // 2016.02.15 향후치료비 추정서(치과) 추가
  2992. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0006706']/reccnts"); //주치의 소견
  2993. fDoSepProfPage(stmt, 47);
  2994. }
  2995. // 요양급여 의뢰서
  2996. if(formcd == "1000007900"){
  2997. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0001213']/reccnts"); //향후 치료의견
  2998. fDoSepProfPage(stmt, 85);
  2999. }
  3000. //근로능력평가 진단서-20100608-kys
  3001. // knuh_20110803_수정_근로능력평가용 진단서 추가
  3002. if(formcd == "1000007215" || formcd == "1100011577"){
  3003. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0001049']/reccnts"); //치료경과 내용
  3004. fDoSepProfPage(stmt, 47);
  3005. }
  3006. // 2016.08.08 의료급여회송서
  3007. if(formcd == "1400015254"){
  3008. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0010597']/reccnts"); // 환자상태 및 진료소견
  3009. fDoSepProfPage(stmt);
  3010. }
  3011. // 2016.08.26 응급환자진료의뢰서
  3012. if(formcd == "1600018117"){
  3013. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0012043']/reccnts"); // 담당의사소견 기타
  3014. fDoSepProfPage(stmt);
  3015. }
  3016. // 2016.12.09 (장비공동이용)검사 의뢰서
  3017. if(formcd == "1600018709"){
  3018. stmt = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0016650.0041819']/reccnts"); // 환자상태 및 진료소견
  3019. fDoSepProfPage(stmt, 47);
  3020. }
  3021. //2017.08.10 전원소견서 투약정보 Text 변경
  3022. if(formcd == "1700019854" || formcd == "1700019834"){
  3023. var tmpArr = ["0012063.0041892","0012063.0041817","0012063.0041816","0012063.0014611","0012063.0014609","0012063.0001224","0012063.0017732","0012063.0014174"];
  3024. //처방명 기준
  3025. var totcnt = getNodesetCount("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='0012063.0041816']");
  3026. var recData = "";
  3027. for(var i = 0; i < totcnt; i++){
  3028. // 처방일자
  3029. var prcpdd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[0] +"' and rowno='" + i + "' and colno='0']/reccnts");
  3030. // 처방코드
  3031. var prcpcd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[1] +"' and rowno='" + i + "' and colno='1']/reccnts");
  3032. // 처방명
  3033. var prcpnm = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[2] +"' and rowno='" + i + "' and colno='2']/reccnts");
  3034. // 수량
  3035. var prcpqty = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[3] +"' and rowno='" + i + "' and colno='3']/reccnts");
  3036. // 단위
  3037. var prcpqtyunitnm = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[4] +"' and rowno='" + i + "' and colno='4']/reccnts");
  3038. // 횟수
  3039. var prcptims = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[5] +"' and rowno='" + i + "' and colno='5']/reccnts");
  3040. // 일수
  3041. var prcpdayno = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[6] +"' and rowno='" + i + "' and colno='6']/reccnts");
  3042. // 용법
  3043. var drugmthdspccdnm = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[degnitemlevlcd='"+ tmpArr[7] +"' and rowno='" + i + "' and colno='7']/reccnts");
  3044. recData = recData + "[" + prcpdd + "] " + prcpnm + " " + prcpqty + prcpqtyunitnm + " x " + prcptims + " x " + prcpdayno + "days " + drugmthdspccdnm + "\n";
  3045. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0012063']/recitem[rowno='0' and colno='-1']/reccnts", recData);
  3046. }
  3047. // 2018.04.23 수술정보
  3048. var tmpArr = ["0016684.0000515","0016684.0000509","0016684.0018746"];
  3049. // 수술명 기준
  3050. var totcnt = getNodesetCount("/root/main/recinfo/grid[degnitemlevlcd='0016684']/recitem[degnitemlevlcd='0016684.0000509']");
  3051. var recData = "";
  3052. if( totcnt > 5 ) totcnt = 5;
  3053. for(var i = 0; i < totcnt; i++){
  3054. // 수술일자
  3055. var opdd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016684']/recitem[degnitemlevlcd='"+ tmpArr[0] +"' and rowno='" + i + "' and colno='0']/reccnts");
  3056. // 수술코드
  3057. var opcd = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016684']/recitem[degnitemlevlcd='"+ tmpArr[2] +"' and rowno='" + i + "' and colno='2']/reccnts");
  3058. // 수술명
  3059. var opnm = model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016684']/recitem[degnitemlevlcd='"+ tmpArr[1] +"' and rowno='" + i + "' and colno='1']/reccnts");
  3060. //recData = recData + "[" + opdd + " | " + opcd + "] " + opnm + "\n";
  3061. if( i == 4 ){
  3062. recData = recData + "[" + opdd + "] " + opnm;
  3063. }else{
  3064. recData = recData + "[" + opdd + "] " + opnm + "\n";
  3065. }
  3066. model.setValue("/root/main/recinfo/grid[degnitemlevlcd='0016684']/recitem[rowno='0' and colno='-1']/reccnts", recData);
  3067. }
  3068. }
  3069. }
  3070. catch(e)
  3071. {
  3072. }
  3073. }
  3074. /**
  3075. * @desc : 제증명 페이지 설정(출력시, 제증명 내용이 늘어지는 것을 막는다)
  3076. * @
  3077. * @param :
  3078. * @return :
  3079. * @author : 오지훈
  3080. * @---------------------------------------------------
  3081. */
  3082. function fDoSepProfPage(stmt, maxcnt, path, nodenm, nodenm2){
  3083. if(path == "" || path == null){
  3084. path = "/root/main/contents";
  3085. }
  3086. if(nodenm == "" || nodenm == null){
  3087. nodenm = "detail";
  3088. }
  3089. model.removeNodeset(path);
  3090. var detail = "";
  3091. var wordcnt = 0;
  3092. var rowcnt = 1;
  3093. if(stmt != ""){
  3094. for(var i = 0; i < stmt.length ; i++){
  3095. if(stmt.charAt(i)=='\n'){ //Enter입력인 경우
  3096. model.makeNode(path + "[" + rowcnt + "]");
  3097. model.makeValue(path + "[" + rowcnt + "]/" + nodenm, detail);
  3098. detail = "";
  3099. wordcnt = 0;
  3100. rowcnt++;
  3101. }
  3102. detail = detail.concat(stmt.charAt(i));
  3103. wordcnt++;
  3104. if(wordcnt == maxcnt){
  3105. model.makeNode(path + "[" + rowcnt + "]");
  3106. model.makeValue(path + "[" + rowcnt + "]/" + nodenm, detail);
  3107. detail = "";
  3108. wordcnt = 0;
  3109. rowcnt++;
  3110. }
  3111. }
  3112. }
  3113. model.makeNode(path + "[" + rowcnt + "]");
  3114. model.makeValue(path + "[" + rowcnt + "]/" + nodenm, detail);
  3115. model.refresh();
  3116. }
  3117. /**
  3118. * @desc :
  3119. * @
  3120. * @param :
  3121. * @return :
  3122. * @author : 오지훈
  3123. * @---------------------------------------------------
  3124. */
  3125. function fDoSepProfPageExtn(stmt, stmt2, nodenm, nodenm2){
  3126. var path = "/root/main/contents";
  3127. model.removeNodeset(path);
  3128. var detail = "";
  3129. var detail2= "";
  3130. var rowcnt = 1;
  3131. if(stmt != ""){
  3132. for(var i = 0; i < stmt.length ; i++){
  3133. if(stmt.charAt(i)=='\n'){ //Enter입력인 경우
  3134. model.makeNode(path + "[" + rowcnt + "]");
  3135. model.makeValue(path + "[" + rowcnt + "]/" + nodenm , detail);
  3136. detail = "";
  3137. rowcnt++;
  3138. }
  3139. detail = detail.concat(stmt.charAt(i));
  3140. }
  3141. model.makeNode(path + "[" + rowcnt + "]");
  3142. model.makeValue(path + "[" + rowcnt + "]/" + nodenm , detail);
  3143. rowcnt = 1;
  3144. for(var i = 0; i < stmt2.length ; i++){
  3145. if(stmt2.charAt(i)=='\n'){ //Enter입력인 경우
  3146. if(model.instance1.selectSingleNode(path + "[" + rowcnt + "]") != null){
  3147. model.makeValue(path + "[" + rowcnt + "]/" + nodenm2, detail2);
  3148. }else{
  3149. model.makeNode(path + "[" + rowcnt + "]");
  3150. model.makeValue(path + "[" + rowcnt + "]/" + nodenm2, detail2);
  3151. }
  3152. detail2 = "";
  3153. rowcnt++;
  3154. }
  3155. detail2= detail2.concat(stmt2.charAt(i));
  3156. }
  3157. if(model.instance1.selectSingleNode(path + "[" + rowcnt + "]") != null){
  3158. model.makeValue(path + "[" + rowcnt + "]/" + nodenm2, detail2);
  3159. }else{
  3160. model.makeNode(path + "[" + rowcnt + "]");
  3161. model.makeValue(path + "[" + rowcnt + "]/" + nodenm2, detail2);
  3162. }
  3163. }
  3164. model.refresh();
  3165. }
  3166. // 환자 의료보험 조회
  3167. // root/patinsuranceinfo
  3168. function fGetPatInsuranceInfo()
  3169. {
  3170. //var paminfo = getGlobalVariable("paminfo");
  3171. //var rrgstno = model.getValue("/root/main/paminfo/list/rrgstno1") + model.getValue("/root/main/paminfo/list/rrgstno2");
  3172. //var hngnm = model.getValue("/root/main/patinfo/hngnm");
  3173. //model.makeValue("/root/send/cond/hngnm", hngnm);
  3174. //model.makeValue("/root/send/cond/rrgstno", rrgstno);
  3175. var pid = model.getValue("/root/main/patinfo/pid");
  3176. var orddd = model.getValue("/root/main/patinfo/orddd");
  3177. if(pid != "")
  3178. {
  3179. model.makeValue("/root/send/cond/pid", pid);
  3180. model.makeValue("/root/send/cond/orddd", orddd);
  3181. submit("TRMMR02910");
  3182. // 조회데이터 확인
  3183. var InsuranceInfoList = findNodeset(model, "/root/main/patinsuranceinfo");
  3184. if(InsuranceInfoList.length == 0)
  3185. {
  3186. model.makeValue("/root/send/cond/pid", pid);
  3187. model.makeValue("/root/send/cond/orddd", getCurrentDate());
  3188. submit("TRMMR02910");
  3189. }
  3190. }
  3191. }
  3192. function fGetHospitalCode()
  3193. {
  3194. var hospcd = model.getValue("/root/main/hospinfo/hospcd");
  3195. if(hospcd == "")
  3196. {
  3197. model.makeValue("/root/send/reqdata/hardcdno", "1112"); // 의료급여기관코드
  3198. submit("TRMRF03104");
  3199. var hardcdlistNode = findNodeset(model, "/root/main/hardcdlist");
  3200. var hospcd = "";
  3201. if(hardcdlistNode.length > 0)
  3202. {
  3203. var hardcdNode = hardcdlistNode.item(0);
  3204. hospcd = hardcdNode.selectSingleNode("trgtcd").text;
  3205. }
  3206. model.makeValue("/root/main/hospinfo/hospcd", hospcd);
  3207. }
  3208. return hospcd;
  3209. }
  3210. function fSetHospInfo(instcd, formcd, langflag)
  3211. {
  3212. try{
  3213. g_pageInfo = new PAGEINFO();
  3214. model.makeValue("/root/send/reqdata/hardcdno", "1007"); // 제증명 병원주소 기본 문장 코드
  3215. submit("TRMRF03104");
  3216. var hardcdlistNode = findNodeset(model, "/root/main/hardcdlist");
  3217. var CommonHospNm = "";
  3218. var HospNm = "";
  3219. for(var idx = 0; idx < hardcdlistNode.length; idx++)
  3220. {
  3221. var hardcdNode = hardcdlistNode.item(idx);
  3222. if(hardcdNode.selectSingleNode("trgtcd").text == "COMMON")
  3223. CommonHospNm = hardcdNode.selectSingleNode("trgtcdnm").text;
  3224. if(hardcdNode.selectSingleNode("trgtcd").text == "ENGNM")
  3225. HospNm = hardcdNode.selectSingleNode("trgtcdnm").text;
  3226. }
  3227. submit("TRMRF01204");
  3228. // 발행일 삭제
  3229. fSetItemDataByItemBaseCd("0004499", "0004499", "");
  3230. if(langflag != "EN")
  3231. {
  3232. //의료기관명 : 0004500.0004500
  3233. fSetItemDataByItemBaseCd("0004500.0004500", "0004500", model.getValue("/root/hidden/hospinfo/hospnm"));
  3234. //주소 : 0004500.0000930
  3235. fSetItemDataByItemBaseCd("0004500.0000930", "0000930", model.getValue("/root/hidden/hospinfo/addr"));
  3236. //전화 : 0004500.0000883
  3237. fSetItemDataByItemBaseCd("0004500.0000883", "0000883", model.getValue("/root/hidden/hospinfo/reprtel1"));
  3238. //Fax : 0004500.0008377
  3239. fSetItemDataByItemBaseCd("0004500.0008377", "0008377", model.getValue("/root/hidden/hospinfo/reprfaxno"));
  3240. //사업자등록번호 : 0004500.0014545
  3241. fSetItemDataByItemBaseCd("0004500.0014545", "0014545", model.getValue("/root/hidden/hospinfo/bizmngrgstno"));
  3242. //대표자명 : 0004500.0011291
  3243. fSetItemDataByItemBaseCd("0004500.0011291", "0011291", model.getValue("/root/hidden/hospinfo/prsdnm"));
  3244. //대표자 주민번호 : 0004500.0011291.0000929
  3245. //fSetItemDataByItemBaseCd("0012925.0000457", "0000929", model.getValue("/root/hidden/hospinfo/prsdnm"));
  3246. //요양기관기호
  3247. fSetItemDataByItemBaseCd("0004500.0018753", "0018753", model.getValue("/root/hidden/hospinfo/proccorpcd"));
  3248. }
  3249. else
  3250. {
  3251. //의료기관명 : 0004500.0004500
  3252. if(CommonHospNm != "" && HospNm != "")
  3253. {
  3254. //var hospengnm = CommonHospNm + "\n\r" + HospNm;
  3255. var hospengnm = CommonHospNm + "\n" + HospNm;
  3256. //fSetItemDataByItemBaseCd("0004500.0004500", "0004500", model.getValue("/root/hidden/hospinfo/hospengnm"));
  3257. fSetItemDataByItemBaseCd("0004500.0004500", "0004500", hospengnm);
  3258. }
  3259. else
  3260. {
  3261. var hospengnmArr = model.getValue("/root/hidden/hospinfo/hospengnm").split(",");
  3262. CommonHospNm = hospengnmArr[0].getTrimRight();
  3263. CommonHospNm += ",\n";
  3264. HospNm = hospengnmArr[1].getTrimLeft();
  3265. fSetItemDataByItemBaseCd("0004500.0004500", "0004500", CommonHospNm + HospNm);
  3266. }
  3267. // 2009-04-02 오지훈 하드코딩을 수정
  3268. //주소 : 0004500.0000930
  3269. //fSetItemDataByItemBaseCd("0004500.0000930", "0000930", "505.Banpo-Dong, Seocho-Gu, Seoul, Korea(137-040)");
  3270. fSetItemDataByItemBaseCd("0004500.0000930", "0000930", model.getValue("/root/hidden/hospinfo/engaddr"));
  3271. //전화 : 0004500.0000883
  3272. var reprtel1 = model.getValue("/root/hidden/hospinfo/reprtel1");
  3273. if( !isNull(reprtel1) )
  3274. reprtel1 = reprtel1.substr(1, reprtel1.length);
  3275. fSetItemDataByItemBaseCd("0004500.0000883", "0000883", "82-" + reprtel1);
  3276. //Fax : 0004500.0008377
  3277. var reprfaxno = model.getValue("/root/hidden/hospinfo/reprfaxno");
  3278. if( !isNull(reprfaxno) )
  3279. reprfaxno = reprfaxno.substr(1, reprfaxno.length);
  3280. fSetItemDataByItemBaseCd("0004500.0008377", "0008377", "82-" + reprfaxno);
  3281. //사업자등록번호 : 0004500.0014545
  3282. fSetItemDataByItemBaseCd("0004500.0014545", "0014545", model.getValue("/root/hidden/hospinfo/bizmngrgstno"));
  3283. //대표자명 : 0004500.0011291
  3284. fSetItemDataByItemBaseCd("0004500.0011291", "0011291", model.getValue("/root/hidden/hospinfo/prsdengnm"));
  3285. //대표자 주민번호 : 0004500.0011291.0000929
  3286. //fSetItemDataByItemBaseCd("0012925.0000457", "0000929", model.getValue("/root/hidden/hospinfo/prsdnm"));
  3287. //요양기관기호
  3288. fSetItemDataByItemBaseCd("0004500.0018753", "0018753", model.getValue("/root/hidden/hospinfo/proccorpcd"));
  3289. }
  3290. //증명서별 특수 case
  3291. if(formcd == "0000001485")//사산증명서
  3292. {
  3293. //사산장소 : 0014551.0000930
  3294. fSetItemDataByItemBaseCd("0014551.0000930", "0000930", model.getValue("/root/hidden/hospinfo/hospnm"));
  3295. }
  3296. else if(formcd == "0000001484" || formcd == "1800020599")
  3297. {
  3298. //상호
  3299. fSetItemDataByItemBaseCd("0012925.0004500", "0004500", model.getValue("/root/hidden/hospinfo/hospnm"));
  3300. //소재지
  3301. fSetItemDataByItemBaseCd("0012925.0000930", "0000930", model.getValue("/root/hidden/hospinfo/addr"));
  3302. }
  3303. else if(formcd == "0900005340") // 진료의뢰서
  3304. {
  3305. model.makeValue("/root/send/reqdata/hardcdno", "1117");
  3306. submit("TRMRF03104");
  3307. var hardcdlistNode = findNodeset(model, "/root/main/hardcdlist");
  3308. var PrdNm = "";
  3309. for(var idx = 0; idx < hardcdlistNode.length; idx++)
  3310. {
  3311. var hardcdNode = hardcdlistNode.item(idx);
  3312. if(hardcdNode.selectSingleNode("trgtcd").text == "PRDNM")
  3313. PrdNm = hardcdNode.selectSingleNode("trgtcdnm").text;
  3314. }
  3315. if(PrdNm != "")
  3316. fSetItemDataByItemBaseCd("0004500.0011291", "0011291", PrdNm);
  3317. }
  3318. }
  3319. catch(e)
  3320. {
  3321. }
  3322. model.refresh();
  3323. }
  3324. function fSetItemDataByItemBaseCd(levelcd, basecd, itemval, targetRef)
  3325. {
  3326. if(targetRef == null)
  3327. targetRef = "reccnts";
  3328. var pageInfo = new PAGEINFO();
  3329. //pmodel.setValue(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval", itemval);
  3330. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[contains(degnitemlevlcd, '" + levelcd + "') and contains(degnitemcd, '" + basecd + "')]/" + targetRef);
  3331. //alert(levelcd + ", " + basecd + ", " + itemval + " : " + nodeList.length);
  3332. for(var i = 0; i < nodeList.length; i++)
  3333. {
  3334. var node = nodeList.item(i);
  3335. node.text = itemval;
  3336. }
  3337. //pmodel.refresh();
  3338. }
  3339. /**
  3340. * @desc : 응급환자 이송의뢰서 출력 기능
  3341. * @param :
  3342. * @return :
  3343. * @author : 2009-07-01 오전 9:13:34 강지훈
  3344. * @---------------------------------------------------
  3345. */
  3346. function fSetTranPrnt(){
  3347. var rtn = ivw_loader.window.javascript.fCheckChangeDataForCosign();
  3348. if (rtn != "N")
  3349. {
  3350. messageBox("기록내용 중 수정된 내용이 있습니다. 저장 후", "C003");
  3351. model.setFocus("btn_save");
  3352. return;
  3353. }
  3354. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/pidprntform", 3801);
  3355. mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/eddeptcd", 1);
  3356. var currow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  3357. var ivwCtrl = ivw_loader.window.document.controls("ivw_base");
  3358. var usernm = getUserName();
  3359. var instcd = getUserInfo("dutplceinstcd");
  3360. var pidPrntForm = model.getValue("/root/init/pidprntform/hardcd/hardcd");
  3361. var pid = model.getValue("/root/main/patinfo/pid");
  3362. var orddeptcd = model.getValue("/root/init/eddeptcd/hardcd/hardcd");
  3363. var formcd = "0900005742"; //이송의뢰서 OCR 서식코드
  3364. var rexid = "RFM0574200"; //이송의뢰서 rexpert ID
  3365. copyNodeset("/root/main/recinfo", "/root/main/recinfo", "replace", model, ivwCtrl.model); //서식지 정보 설정
  3366. //TRMMR02911 submit 정보 setting
  3367. model.removenode("/root/send/barcodereq");
  3368. model.makeValue("/root/send/barcodereq/pid" , pid); //등록번호
  3369. model.makeValue("/root/send/barcodereq/orddeptcd", orddeptcd); //부서코드
  3370. model.makeValue("/root/send/barcodereq/instcd" , instcd); //기관코드
  3371. model.makeValue("/root/send/barcodereq/formcd" , formcd); //이송의뢰서 서식코드
  3372. //주민번호, 부서명 가져오기 위한 submit
  3373. if(submit("TRMMR02911")){
  3374. var seq = model.getValue("/root/temp/docinfo/seq");
  3375. var edcntctel = model.getValue("/root/temp/docinfo/edcntctel");
  3376. var indd = model.getValue("/root/main/patinfo/orddd");
  3377. model.removenode("/root/hidden/docinfo");
  3378. model.makeValue("/root/hidden/docinfo/signimge" , ivwCtrl.model.getValue("/root/hidden/docinfo/signimge")); //서식서명이미지 설정
  3379. model.makeValue("/root/hidden/docinfo/orddd" , indd); //진료일
  3380. model.makeValue("/root/hidden/docinfo/logurl" , getImageURL("biglogo"+getUserInfo("dutplceinstcd"), "jpg")); //병원 로고
  3381. model.makeValue("/root/hidden/docinfo/usernm" , usernm); //출력자명
  3382. model.makeValue("/root/hidden/docinfo/seq" , seq); //바코드번호
  3383. model.makeValue("/root/hidden/docinfo/orddeptabbr" , model.getValue("/root/temp/docinfo/orddeptabbr")); //진료과 약어명
  3384. model.makeValue("/root/hidden/docinfo/rrgstno1" , model.getValue("/root/temp/docinfo/rrgstno1")); //주민번호앞자리
  3385. model.makeValue("/root/hidden/docinfo/rrgstno2" , model.getValue("/root/temp/docinfo/rrgstno2")); //주민번호뒷자리
  3386. model.makeValue("/root/hidden/docinfo/curdd" , getCurrentDate()); //현재 연월일
  3387. model.makeValue("/root/hidden/docinfo/curtm" , getCurrentTime()); //현재 시간
  3388. model.makeValue("/root/hidden/docinfo/pidprntform" , pidPrntForm); //서식 출력양식
  3389. model.makeValue("/root/hidden/docinfo/edcntctel" , edcntctel); //응급실 전화번호
  3390. fDoMakeProfPrntInfo(ivwCtrl);
  3391. clearParameter("reportprintyn");
  3392. exeReportPreview(rexid, "XMLSTR", "", "", "true", "", "", "", "", "true"); //미리보기만 가능
  3393. if (getParameter("reportprintyn") == "Y"){ // 프린트 출력이 되고 창이 닫혔을 때
  3394. var pagecnt = getParameter("reportPageCount"); //출력장수(RPMNW03600)
  3395. //OCR정보를 저장하기 위한 parameter
  3396. var cretno = model.getValue("/root/main/patinfo/cretno");
  3397. var ordtype = model.getValue("/root/main/patinfo/ioflag");
  3398. var orddrid = model.getValue("/root/main/patinfo/orddrid");
  3399. var formfromdt = model.getValue("/root/temp/docinfo/formfromdt");
  3400. //OCR 정보 저장
  3401. if(!fSaveOCRIF(seq, pid, indd, cretno, ordtype, orddeptcd, orddrid, formcd, formfromdt, "", "", pagecnt)){
  3402. messageBox("통합기록조회 연동중 실패하였습니다.","C999");
  3403. return;
  3404. }
  3405. }
  3406. }
  3407. else{
  3408. messageBox("서식을 열 수", "I004");
  3409. return;
  3410. }
  3411. }
  3412. /**
  3413. * @desc : 환자의 보험유형에 따라 진료의뢰서 작성 제한 기능
  3414. * @param :
  3415. * @return :
  3416. * @author : 2009-07-03 오전 8:46 이경희
  3417. * @---------------------------------------------------
  3418. */
  3419. function fRestrictionform(profformcd)
  3420. {
  3421. // 진료의뢰서인 경우 환자의 보험유형이 건강보험, 의료급여 1,2종이 아닌 경우 진료의뢰서를 작성하지 못하도록 함.
  3422. if(profformcd == "0900005340")
  3423. {
  3424. var insukind = model.getValue("/root/main/patinfo/insukind");
  3425. //var insukind = model.getValue("/root/main/paminfo/list/insukind");
  3426. // 보험 공통코드군 P0008
  3427. /*
  3428. 11 건보
  3429. 21 의료급여1종
  3430. 22 의료급여2종
  3431. 31 자보
  3432. 41 산재
  3433. 42 공상
  3434. 51 일반
  3435. 61 외국인
  3436. 71 임상시험
  3437. 81 노인장기요양보험
  3438. */
  3439. var insunm = "";
  3440. switch(insukind)
  3441. {
  3442. case "11":
  3443. case "21":
  3444. case "22":
  3445. return true;
  3446. break;
  3447. case "31": insunm = "자보";
  3448. break;
  3449. case "41": insunm = "산재";
  3450. break;
  3451. case "42": insunm = "공상";
  3452. break;
  3453. case "51": insunm = "일반";
  3454. break;
  3455. case "61": insunm = "외국인";
  3456. break;
  3457. case "71": insunm = "임상시험";
  3458. break;
  3459. case "81": insunm = "노인장기요양보험";
  3460. break;
  3461. }
  3462. /*
  3463. var patnm = model.getValue("/root/main/patinfo/hngnm");
  3464. if(patnm == "")
  3465. patnm = "해당";
  3466. var msg = patnm + " 환자의 보험유형(" + insunm + ")으로는 진료의뢰서를 작성할 수";
  3467. var optmsg = "\n※진료의뢰서의 작성은 건강보험, 의료급여 1, 2종의 보험일때만 가능합니다.";
  3468. messageBox(msg, "I004", optmsg);
  3469. */
  3470. messageBox("진료의뢰서는 건강보험, 의료급여(1,2종)인 경우만 작성", "I006");
  3471. return false;
  3472. }
  3473. }
  3474. // 전원소견서(0000002536), 응급실 전원소견서(0000003129) 일때 전원의뢰정보가 있는 경우 셋팅해줌. 하드코드(8900) (2010.06.14. 이은영 추가)
  3475. function fSetChngHospInfo(pid, formcd, formrecseq)
  3476. {
  3477. //alert("pid=[" + pid + "] formcd=[" + formcd + "] formrecseq=[" + formrecseq + "]");
  3478. model.makeValue("/root/send/chnghospinfo/instcd" , getUserInfo("dutplceinstcd"));
  3479. model.makeValue("/root/send/chnghospinfo/pid" , pid);
  3480. model.makeValue("/root/send/chnghospinfo/formcd" , formcd);
  3481. model.makeValue("/root/send/chnghospinfo/formrecseq", formrecseq);
  3482. if (formrecseq != "0" && formrecseq != "")
  3483. {
  3484. if(submit("TRMMR02913"))
  3485. {
  3486. var coophospnm = model.getValue("/root/hidden/chnghospinfo/coophospnm");
  3487. var coopdrnm = model.getValue("/root/hidden/chnghospinfo/coopdrnm");
  3488. if (coophospnm != "" || coopdrnm != "") {
  3489. var item_coophospnm = ivw_loader.ivw_base.window.javascript.getFormItemValue("0016976.0016976");
  3490. var temp_coophospnm = item_coophospnm.reccnts;
  3491. var item_coopdrnm = ivw_loader.ivw_base.window.javascript.getFormItemValue("0016976.0002730");
  3492. var temp_coopdrnm = item_coopdrnm.reccnts;
  3493. if (coophospnm != temp_coophospnm || coopdrnm != temp_coopdrnm) {
  3494. var msg = "";
  3495. msg = msg + "\n" + "---------------------------------------------------------------";
  3496. msg = msg + "\n" + "소견서에 등록된 정보입니다. ";
  3497. msg = msg + "\n" + "전원병원명 [" + temp_coophospnm + "] 확인자(전원병원) [" + temp_coopdrnm + "]";
  3498. msg = msg + "\n" + "---------------------------------------------------------------";
  3499. msg = msg + "\n" + "전원의뢰 정보입니다.";
  3500. msg = msg + "\n" + "전원의뢰병원 [" + coophospnm + "] 전원의뢰의사 [" + coopdrnm + "]";
  3501. msg = msg + "\n" + "---------------------------------------------------------------";
  3502. msg = msg + "\n" + "전원병원명과 확인자(전원병원)가 전원의뢰 정보로 변경되었습니다.";
  3503. msg = msg + "\n" + "저장 후 발행하십시오.";
  3504. msg = msg + "\n" + "---------------------------------------------------------------";
  3505. messageBox(msg, "I");
  3506. // 변경된 내용 셋팅해주기..
  3507. item_coophospnm.reccnts = coophospnm;
  3508. ivw_loader.ivw_base.window.javascript.setFormItemValue("0016976.0016976", item_coophospnm, true);
  3509. item_coopdrnm.reccnts =coopdrnm;
  3510. ivw_loader.ivw_base.window.javascript.setFormItemValue("0016976.0002730", item_coopdrnm, true);
  3511. }
  3512. }
  3513. }
  3514. }
  3515. }
  3516. function fSaveChk(){
  3517. var chk="true";
  3518. var formcd = ivw_loader.ivw_base.model.getValue("/root/main/forminfo/formmast/formcd");
  3519. var srcformcd = ivw_loader.ivw_base.model.getValue("/root/main/forminfo/formmast/srcformcd");
  3520. //제증명 이력에서 저장시 화면체크(20140724 이윤주)
  3521. if (swc_prof.selectedIndex == 2 ) {
  3522. var selectedrow = grd_profhistlist.row;
  3523. var profcertseq = model.getValue("/root/main/profhist/list[" + selectedrow + "]/profcertseq");
  3524. var yearseqno = model.getValue("/root/main/profhist/list[" + selectedrow + "]/yearseqno");
  3525. if (yearseqno == "") {
  3526. //발행번호가 없을시 현시점의 발행여부를 확인한다
  3527. model.makeValue("/root/send/reqdata/profcertseq",profcertseq);
  3528. submit("TRMMR05504",false);
  3529. var balyncnt = model.getValue("/root/hidden/balyn/cnt");
  3530. //화면이 old
  3531. if (balyncnt != 0) {
  3532. messageBox("화면을 재조회 하신후 진행하시기 바랍니다","I999");
  3533. return "false";
  3534. }
  3535. }
  3536. //[20150625009] 기출력된 제증명 수정후 신규서식으로 저장시 오류수정 요청
  3537. var orddoctid = model.getValue("/root/main/profhist/list[" + selectedrow + "]/issid");
  3538. var sUserid = getUserInfo("userid")
  3539. // 직군이 의사, 발행연번호가 존재하고 발행자와 로그인한 사용자와의 정보가 다를경우 로그인한 사용자의 정보를 설정
  3540. if(yearseqno != "" && yearseqno != null && orddoctid != sUserid && formcd != "0000001539" && getUserInfo("jobkindcd").substring(0,2) == "03")
  3541. {
  3542. var langflag = ivw_loader.ivw_base.model.getValue("/root/main/forminfo/formmast/langflag");
  3543. drid = getUserId();
  3544. drnm = getUserInfo("usernm");
  3545. drengnm = getUserInfo("userengnm");
  3546. deptnm = getUserInfo("dutplcenm");
  3547. deptengnm = getUserInfo("deptengnm");
  3548. licnsno = getUserInfo("licnsno");
  3549. medispclno = getUserInfo("medispclno");
  3550. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0016651.0007593", "0007593" , licnsno); //의사면허번호 : 0007593
  3551. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0016651.0017053", "0017053" , medispclno); //전문의 번호
  3552. if(langflag == "EN"){ //영문서식인 경우 영문명 설정
  3553. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0016651.0000940", "0000940", drengnm); //의사성명 : 0000940
  3554. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0000965", "0000965", deptengnm); //진료과 : 0000965
  3555. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0012706.0016979", "0016979", drid); //작성자 : 0012706.0016979
  3556. }else{
  3557. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0016651.0000940", "0000940", drnm); //의사성명 : 0000940
  3558. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0000965", "0000965", deptnm); //진료과 : 0000965
  3559. ivw_loader.ivw_base.window.javascript.fSetItemDataByItemBaseCd("0012706.0016979", "0016979", drid); //작성자 : 0012706.0016979
  3560. }
  3561. }
  3562. }
  3563. //사망확인서 or 시체검안서
  3564. if(formcd=="0000001314" ||formcd=="0000002841" ){
  3565. var bal = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemno='9']/reccnts");
  3566. if (bal !=""){
  3567. if (bal.length < 21) {
  3568. messageBox("발병일시가 정확하게 입력되지 안았습니다.\n작성 예(2011년 12월 25일 12시 25분)", "I");
  3569. chk="false";
  3570. return chk;
  3571. }
  3572. }
  3573. var deathdate = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemno='10']/reccnts");
  3574. if (deathdate !=""){
  3575. if (deathdate.length< 21){
  3576. messageBox("사망일시가 정확하게 입력되지 안았습니다.\n작성 예(2011년 12월 25일 12시 25분)", "I");
  3577. chk="false";
  3578. return chk;
  3579. }
  3580. var currentdate = getCurrentDate()+getCurrentTime();
  3581. currentdate = currentdate.substr(0,12);
  3582. deathdate = deathdate.substr(0,4)+deathdate.substr(6,2)+deathdate.substr(10,2)+deathdate.substr(14,2)+deathdate.substr(18,2);
  3583. if (deathdate > currentdate) {
  3584. messageBox("사망일시가 현 시각보다 늦을 수는 없습니다","I");
  3585. chk="false";
  3586. return chk;
  3587. }
  3588. }
  3589. var badate = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemno='47']/reccnts");
  3590. if (badate !=""){
  3591. if (badate.length < 21){
  3592. messageBox("사고 발생일시가 정확하게 입력되지 안았습니다.\n작성 예(2011년 12월 25일 12시 25분)", "I");
  3593. chk="false";
  3594. return chk;
  3595. }
  3596. }
  3597. //2012/06/22 Start
  3598. if(formcd=="0000001314"){
  3599. var juminbunho = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0001209.0000929']/reccnts");
  3600. var birthday = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0001209.0001037']/reccnts");
  3601. var jumin = juminbunho.substring(0,6);
  3602. var birth = birthday.substring(2,8);
  3603. if(jumin != birth){
  3604. var check=messageBox("주민번호 앞자리와 실제 생년월일이 다릅니다.\n계속 진행", "S001", ""); //예:6 아니오:7 취소:2
  3605. if(check=="6"){
  3606. chk="true";
  3607. }else if(check=="7"){
  3608. chk="false";
  3609. return chk;
  3610. }else if(check=="2"){
  3611. chk="false";
  3612. }
  3613. }
  3614. return chk;
  3615. }
  3616. //2012/06/22 End
  3617. }
  3618. //전원소견서
  3619. if(srcformcd=="0000002536"){
  3620. if(!fTransChk()) {
  3621. messageBox("당월 동일과 또는 재원중에 발행이력이 있으니 진료의뢰서로 작성 하시기 바랍니다! 문의:진료의뢰센터(5023)","I");
  3622. return "false";
  3623. }
  3624. var hospname = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemno='126']/reccnts");
  3625. if (hospname !=""){
  3626. if (hospname.length < 3){
  3627. messageBox("전원 병원명은 세글자 이상이어야 합니다.", "I");
  3628. chk="false";
  3629. return chk;
  3630. }
  3631. }
  3632. }
  3633. //응급실 전원소견서
  3634. if(formcd=="1100011620"){
  3635. var hospname = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemno='134']/reccnts");
  3636. if (hospname !=""){
  3637. if (hospname.length < 3){
  3638. messageBox("전원 병원명은 세글자 이상이어야 합니다.", "I");
  3639. chk="false";
  3640. return chk;
  3641. }
  3642. }
  3643. }
  3644. // 2014.03.17 cyw 제증명 일반진단서 입력시, 비고란 길이 체크. 해당 너비 초과하지 않도록!!----------------------------------------
  3645. if( formcd == "1100012297"){
  3646. var Nodelist = findNodeset(ivw_loader.ivw_base.model, "/root/main/recinfo/recitem[degnitemcd ='0000381001' and degnitemkind = 'MTX']");
  3647. if( Nodelist.length > 0 ){
  3648. var FormNodelist = Nodelist.item(0);
  3649. var reccnts = FormNodelist.selectSingleNode("reccnts").text;
  3650. var reccntarry = reccnts.split("\n");
  3651. var reccntcnt = reccntarry.length-1;
  3652. // Enter 키값이 없을경우 문장의 길이 체크
  3653. if( reccntcnt == 0 ){
  3654. if(reccntarry[0].length > 175 ){
  3655. messageBox("비고란의 글자수가 초과되었으니 위칸(소견란)을 이용하시기 바랍니다. ( 문의 : 원무팀 제증명 담당 )","I");
  3656. chk="false"; return chk;
  3657. }
  3658. }else{
  3659. // 각 행의 길이 체크
  3660. if( reccntcnt > 4 ){ // Enter키값이 5개 이상일 경우
  3661. messageBox("비고란의 글자수가 초과되었으니 위칸(소견란)을 이용하시기 바랍니다. ( 문의 : 원무팀 제증명 담당 )","I"); chk="false"; return chk;
  3662. }else{
  3663. var calcvalue = 0;
  3664. for( var i = 0 ; i <= reccntcnt; i++ ){
  3665. calcvalue = calcvalue + reccntarry[i].length;
  3666. }
  3667. if( calcvalue > 140 ) {
  3668. messageBox("비고란의 글자수가 초과되었으니 위칸(소견란)을 이용하시기 바랍니다. ( 문의 : 원무팀 제증명 담당 )","I");
  3669. chk="false";
  3670. return chk;
  3671. }
  3672. }
  3673. }
  3674. }
  3675. }
  3676. //---------------------------------------------------------------------------------------------------------------------------------
  3677. // 2016.06.17 회송(전원)소견서 진단명 없을경우 제어[요청번호:20160617006]
  3678. if( lf_CheckPerPrint(formcd) == "Y" ) {
  3679. var nGrdCnt = ivw_loader.ivw_base.window.javascript.getNodesetCount("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[degnitemlevlcd='0016650.0000960.0000960']");
  3680. var sComment = "";
  3681. for( var i=0; i<nGrdCnt; i++ ){
  3682. var diagcd = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermcd");
  3683. var diagnm = ivw_loader.ivw_base.model.getValue("/root/main/recinfo/grid[degnitemlevlcd='0016650.0000960']/recitem[rowno='" + i + "' and colno='2']/rectermnm");
  3684. if( i!=0 && isNull( diagcd ) && isNull( diagnm ) ){
  3685. continue;
  3686. }else if( isNull( diagcd ) ){
  3687. sComment = "진단코드";
  3688. break;
  3689. }else if( isNull( diagnm ) ){
  3690. sComment = "진단명";
  3691. break;
  3692. }
  3693. }
  3694. if( !isNull( sComment ) ){
  3695. messageBox("진단명 " + (i+1) + "행 " + sComment + " 입력바랍니다.", "I");
  3696. chk="false";
  3697. return chk;
  3698. }
  3699. if( nGrdCnt < 1 ){
  3700. messageBox("진단명은 필수입력입니다.", "I");
  3701. chk="false";
  3702. return chk;
  3703. }
  3704. }
  3705. //2012/01/25
  3706. //모든 제증명의 발행일
  3707. var y=getCurrentDate().substring(0, 4);
  3708. var m=getCurrentDate().substring(4, 6);
  3709. var d=getCurrentDate().substring(6, 8);
  3710. var current_date=y+"-"+m+"-"+d;
  3711. if((ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemcd='0004499002']/reccnts")!=current_date)&&
  3712. (ivw_loader.ivw_base.model.getValue("/root/main/recinfo/recitem[degnitemcd='0004499002']/reccnts")!="")){
  3713. var check=messageBox("발행일이 과거 일자입니다. 계속 진행", "S001", ""); //예:6 아니오:7 취소:2
  3714. if(check=="6"){
  3715. chk="true";
  3716. }else if(check=="7"){
  3717. chk="false";
  3718. return chk;
  3719. }else if(check=="2"){
  3720. chk="false";
  3721. return chk;
  3722. }
  3723. }
  3724. }
  3725. function fIsOkGoal(rechistseq){
  3726. var chk="false";
  3727. model.makeValue("/root/send/reqdata/rechistseq", rechistseq);
  3728. submit("TRMMR02916");
  3729. var cnt = model.getValue("root/goal/cnt/cnt");
  3730. if (cnt > 0 ) {
  3731. chk = "true";
  3732. }
  3733. return chk;
  3734. }
  3735. function fgetGoal(rechistseq){
  3736. model.makeValue("/root/send/reqdata/rechistseq", rechistseq);
  3737. submit("TRMMR02917");
  3738. }
  3739. //일반 진단(소견)서에서 진단 기간을 당겨올 수 있도록 하는 로직 추가
  3740. var inptinfo_flag=false;
  3741. function fInptInfo(){
  3742. model.makeValue("/root/send/inptinfo/pid", model.getValue("/root/main/patinfo/pid"));
  3743. //환자의 입원기록이 있는지 확인(최근 1년간)
  3744. submit("TRMMR02918");
  3745. if(model.getValue("/root/temp/inptinfo/chkyn")=='Y'){ // 1년 이내에 입원이력이 있을 경우만 처리
  3746. var check=messageBox("환자의 입원 이력을 선택 할 경우 작성된 모든 내용이 삭제됩니다. \n그래도", "Q003", ""); //예:6 아니오:7 취소:2
  3747. if(check=="6"){
  3748. setParameter("SMMMR08300_pid", model.getValue("/root/main/patinfo/pid"));
  3749. modal("SMMMR08300", 1, 0, 0, "", "", "");
  3750. // 입원이력을 선택했을 경우 모든 기록아이템 초기화
  3751. if(getParameter("SMMMR08300_param")!=""){
  3752. inptinfo_flag=true;
  3753. fChosProflist();
  3754. }
  3755. }else if(check=="7"){
  3756. return;
  3757. }else if(check=="2"){
  3758. return;
  3759. }
  3760. }else{
  3761. messageBox(model.getValue("/root/main/patinfo/hngnm")+"님은 최근 1년간 입원 또는 응급으로 내원하신 적이", "I004");
  3762. return;
  3763. }
  3764. }
  3765. // 아이뷰어의 크기 조절
  3766. function fiviewSize(param){
  3767. if(param=="expand"){
  3768. swc_prof.attribute("width") = "967";
  3769. grd_profhistlist.attribute("width") = "964";
  3770. ivw_loader.attribute("left")="972px";
  3771. ivw_loader.attribute("width")="218px";
  3772. }else if(param=="normal"){
  3773. swc_prof.attribute("width") = "375";
  3774. grd_profhistlist.attribute("width") = "372";
  3775. ivw_loader.attribute("left")="380px";
  3776. ivw_loader.attribute("width")="810px";
  3777. ivw_loader.ivw_base.attribute("width") ="805";
  3778. }
  3779. }
  3780. // 2013.12.06 제증명 발행시, 서식을 이미지로 저장
  3781. function ImageSave(formcd, rexid )
  3782. {
  3783. var fso;
  3784. var jpgpath;
  3785. var count;
  3786. var cretno;
  3787. var pathidimg;
  3788. var pathidrecord;
  3789. var instcd;
  3790. var treatno;
  3791. var formcode;
  3792. var cuserid;
  3793. var userid;
  3794. var dutplcecd;
  3795. var dutplceinstcd;
  3796. var localpath;
  3797. var localfullpath = "";
  3798. var imgpaths ="";
  3799. var imgpath ="";
  3800. var wavpaths ="";
  3801. var wavpath ="";
  3802. var pid;
  3803. var ordtype;
  3804. var orddd;
  3805. var flag;
  3806. var checkdatas;
  3807. var checkdata;
  3808. var checkdataval;
  3809. var checkid;
  3810. var checkvalue;
  3811. var ocrtag;
  3812. var cdate;
  3813. var ctime;
  3814. var cdateyyyymm;
  3815. var cdatedd;
  3816. var pagecnt;
  3817. var instance = document.models(0).instances(0);
  3818. var orddrid;
  3819. var orddeptcd;
  3820. var formfromdt;
  3821. var depthngnm;
  3822. var imgcnt = 0;
  3823. var imgpath_head = "c:\\" + "report" + "\\";
  3824. // var server = '192.168.100.194';
  3825. // var port = '2500';
  3826. // var user = 'user';
  3827. var server = model.getValue("/root/main/ltp/img/ltpindexserver");
  3828. var port = model.getValue("/root/main/ltp/img/ltpindexport");
  3829. var user = model.getValue("/root/main/ltp/img/ltpindexuser");
  3830. if (LTPInit1(server, port, user) == false)
  3831. {
  3832. alert("파일서버가 열려있지않거나 접속 할 수 없습니다.")
  3833. window.close();
  3834. //return;
  3835. }
  3836. fso = new ActiveXObject("Scripting.FileSystemObject");
  3837. for( var i = 1; i <= 10; i++ ){
  3838. imgpath = imgpath_head + rexid + i + ".jpeg";
  3839. if(fso.FileExists(imgpath)){
  3840. imgcnt++;
  3841. }
  3842. }
  3843. model.removeNodeset("/root/data");
  3844. model.makeNode("/root/data");
  3845. model.removeNodeset("/root/hidden/paget");
  3846. model.makeNode("/root/hidden/paget");
  3847. orddd = model.getValue("/root/main/result/pathistlist/orddd");
  3848. submit("TRMPL04308"); //get Treatno
  3849. // imgpath = imgpaths.split("|"); //저장된 패스 여러장일경우 구분자 '|' 로잘라줘야함
  3850. // pagecnt = imgpath.length-1;
  3851. model.removeNodeset("/root/main/paget");
  3852. model.makeNode("/root/main/paget");
  3853. model.makeValue("/root/main/paget/cdate" , "null");
  3854. model.makeValue("/root/main/paget/instcd" , model.getValue("/root/send/ocrtreat/instcd" ));
  3855. model.makeValue("/root/main/paget/pathid" , model.getvalue("/root/main/ltpindexinfo/pathid"));
  3856. model.makeValue("/root/main/paget/treatno" , model.getValue("/root/hidden/paget/treatno" ));
  3857. model.makeValue("/root/main/paget/formcode", model.getValue("/root/send/ocrtreat/formcd" ));
  3858. model.makeValue("/root/main/paget/cuserid" , model.getValue("/root/send/ocrtreat/cuser" ));
  3859. cuserid = model.getValue("/root/send/ocrtreat/cuser");
  3860. pid = model.getValue("/root/send/ocrtreat/patid");
  3861. patname = model.getValue("/root/main/treat/patname");
  3862. ordtype = model.getValue("/root/send/ocrtreat/class");
  3863. orddd = model.getValue("/root/send/ocrtreat/indate");
  3864. orddrid = model.getValue("/root/send/ocrtreat/orddrid");
  3865. orddeptcd = model.getValue("/root/send/ocrtreat/orddeptcd");
  3866. cretno = model.getValue("/root/send/ocrtreat/cretno");
  3867. treatno = model.getValue("/root/main/paget/treatno");
  3868. formcode = model.getValue("/root/send/ocrtreat/formcd");
  3869. instcd = model.getValue("/root/send/ocrtreat/instcd");
  3870. flag = model.getValue("/root/send/ocrtreat/flag");
  3871. pathidimg = model.getValue("/root/main/ltp/img/pathid");
  3872. pathidrecord = model.getValue("/root/main/ltp/record/pathid");
  3873. formfromdt = model.getValue("/root/send/ocrtreat/formfromdt");
  3874. depthngnm1 = model.getValue("/root/main/treat/depthngnm1")
  3875. dutplcecd = getUserInfo("dutplcecd");
  3876. dutplceinstcd = getUserInfo("dutplceinstcd");
  3877. ocrtag = model.getValue("/root/send/ocrtreat/ocrtag");
  3878. cdateyyyymm = getCurrentDate() + getCurrentTime().substr(0, 6);
  3879. //cmr 저장
  3880. imgpath = "";
  3881. var sSaveData = "status▦pathid▦cdate▦cuserid▦filesize▦extension▦instcd▦treatno▦formcode▦pid▦orddd▦class▦ocrtag▦flag▦cretno▦page▦orddeptcd▩";
  3882. for (count = 1; count <= imgcnt; count++)
  3883. {
  3884. imgpath = imgpath_head + rexid + count + ".jpeg" ;
  3885. pageno = model.getValue("/root/hidden/paget/pageno");
  3886. //ssave data 를 장수대로 만들어주면됨
  3887. sSaveData += "d▦" + pathidimg + "▦" + cdate ;
  3888. sSaveData += "▦" + cuserid + "▦" + fso.GetFile(imgpath).size ;
  3889. sSaveData += "▦" + "jpg" + "▦" + instcd + "▦" + treatno + "▦" + formcode ;
  3890. sSaveData += "▦" + pid + "▦" + orddd + "▦" + ordtype ;
  3891. sSaveData += "▦" + ocrtag + "▦" + flag + "▦" + cretno + "▦" + count + "▦" + orddeptcd + "▩" ;
  3892. }
  3893. if( imgcnt == 0 ){
  3894. //ssave data 를 장수대로 만들어주면됨
  3895. imgpath = imgpath_head + rexid + ".jpeg";
  3896. sSaveData += "d▦" + pathidimg + "▦" + cdate ;
  3897. sSaveData += "▦" + cuserid + "▦" + fso.GetFile(imgpath).size ;
  3898. sSaveData += "▦" + "jpg" + "▦" + instcd + "▦" + treatno + "▦" + formcode ;
  3899. sSaveData += "▦" + pid + "▦" + orddd + "▦" + ordtype ;
  3900. sSaveData += "▦" + ocrtag + "▦" + flag + "▦" + cretno + "▦" + "1" + "▦" + orddeptcd + "▩" ;
  3901. }
  3902. //ocr 저장
  3903. var sOcrData = "ocrtag▦pid▦ordtype▦orddd▦cretno▦orddrid▦orddeptcd▦formcd▦formfromdt▦fstprntdt▦fstprntdeptcd▦fstprntid▦updtdt▦updtdeptcd▦updtuserid▦diagnm▦opnm▦eocryn▦pagecnt▩";
  3904. sOcrData += ocrtag + "▦" + pid + "▦" + ordtype + "▦" + orddd + "▦" + cretno ;
  3905. sOcrData += "▦" + orddrid + "▦" + orddeptcd + "▦" + formcode + "▦" + formfromdt;
  3906. sOcrData += "▦" + cdateyyyymm + "▦" + dutplcecd + "▦" + cuserid + "▦" + cdateyyyymm;
  3907. sOcrData += "▦" + dutplcecd + "▦" + cuserid + "▦" + "" + "▦" + "";
  3908. sOcrData += "▦" + "Y" + "▦" + imgcnt + "▩" ;
  3909. model.makeValue("/root/data/savedata", sSaveData);
  3910. model.makeValue("/root/data/ocrdata", sOcrData);
  3911. var imgpaths = "";
  3912. for (count = 1; count <= imgcnt; count++)
  3913. {
  3914. imgpath = imgpath_head + rexid + count + ".jpeg" ;
  3915. if( count == 1 ){
  3916. imgpaths = imgpath ;
  3917. } else{
  3918. imgpaths = imgpaths + "|" + imgpath;
  3919. }
  3920. }
  3921. if( imgcnt == 0 ){
  3922. imgpath = imgpath_head + rexid + ".jpeg" ;
  3923. imgpaths = imgpath;
  3924. }
  3925. if (submit("TXMPL03304")) {
  3926. if (ImageFilePut(imgpaths) == false)
  3927. {
  3928. alert("이미지파일 저장실패");
  3929. filetransfail(imgpaths)
  3930. //insert 된 ocr 정보 삭제
  3931. model.setValue("/root/send/ocrhistory/ocrtag", ocrtag);
  3932. model.setValue("/root/send/ocrhistory/delflag", 1);
  3933. submit("TXMPL03303");
  3934. return;
  3935. }
  3936. } else {
  3937. messageBox("제증명 저장실패", "I000");
  3938. model.setValue("/root/send/ocrhistory/ocrtag", ocrtag);
  3939. model.setValue("/root/send/ocrhistory/delflag", 1);
  3940. submit("TXMPL03303");
  3941. }
  3942. }
  3943. function LTPInit1(server, port, user)
  3944. {
  3945. if(f_ltp.IsOnline)
  3946. {
  3947. }
  3948. else
  3949. {
  3950. f_ltp.server = server;
  3951. f_ltp.port = 2500;
  3952. f_ltp.account = user;
  3953. if(f_ltp.Connect())
  3954. {
  3955. }
  3956. else
  3957. {
  3958. alert('LTP 데몬과의 접속이 실패하였습니다.');
  3959. return false;
  3960. }
  3961. }
  3962. }
  3963. function LTP_Init()
  3964. {
  3965. model.setValue("/root/send/ltp/activeA","A"); // 이미지저장b
  3966. model.setValue("/root/send/ltp/activeR","R"); // 체크 , 가이드 xml 파일
  3967. model.setValue("/root/send/ltp/activeC","C"); // 디자인 , 헤더푸터 파일
  3968. model.setValue("/root/send/ltp/activeV","V"); // 음성녹음 저장
  3969. submit("TRMPL03307"); // ltp정보
  3970. model.setValue("/root/main/ltp/img/ltpindexserver",model.getValue("/root/main/ltpindexinfo[" + 1 +"]/ltpindexserver"));
  3971. model.setValue("/root/main/ltp/img/ltpindexport","2500");
  3972. model.setValue("/root/main/ltp/img/ltpindexuser",model.getValue("/root/main/ltpindexinfo[" + 1 +"]/ltpindexuser"));
  3973. model.setValue("/root/main/ltp/img/ltpindexpath",model.getValue("/root/main/ltpindexinfo[" + 1 +"]/ltpindexpath"));
  3974. model.setValue("/root/main/ltp/img/pathid",model.getValue("/root/main/ltpindexinfo[" + 1 +"]/pathid"));
  3975. model.setValue("/root/main/ltp/validata/ltpindexserver",model.getValue("/root/main/ltpindexinfo["+ 2 +"]/ltpindexserver"));
  3976. model.setValue("/root/main/ltp/validata/ltpindexport","2500");
  3977. model.setValue("/root/main/ltp/validata/ltpindexuser",model.getValue("/root/main/ltpindexinfo["+ 2 +"]/ltpindexuser"));
  3978. model.setValue("/root/main/ltp/validata/ltpindexpath",model.getValue("/root/main/ltpindexinfo["+ 2 +"]/ltpindexpath"));
  3979. model.setValue("/root/main/ltp/validata/pathid",model.getValue("/root/main/ltpindexinfo["+ 2 +"]/pathid"));
  3980. model.setValue("/root/main/ltp/resource/ltpindexserver",model.getValue("/root/main/ltpindexinfo["+ 3 +"]/ltpindexserver"));
  3981. model.setValue("/root/main/ltp/resource/ltpindexport","2500");
  3982. model.setValue("/root/main/ltp/resource/ltpindexuser",model.getValue("/root/main/ltpindexinfo["+ 3 +"]/ltpindexuser"));
  3983. model.setValue("/root/main/ltp/resource/ltpindexpath",model.getValue("/root/main/ltpindexinfo["+ 3 +"]/ltpindexpath"));
  3984. model.setValue("/root/main/ltp/resource/pathid",model.getValue("/root/main/ltpindexinfo["+ 3 +"]/pathid"));
  3985. model.setValue("/root/main/ltp/record/ltpindexserver",model.getValue("/root/main/ltpindexinfo["+ 4 +"]/ltpindexserver"));
  3986. model.setValue("/root/main/ltp/record/ltpindexport","2500");
  3987. model.setValue("/root/main/ltp/record/ltpindexuser",model.getValue("/root/main/ltpindexinfo["+ 4 +"]/ltpindexuser"));
  3988. model.setValue("/root/main/ltp/record/ltpindexpath",model.getValue("/root/main/ltpindexinfo["+ 4 +"]/ltpindexpath"));
  3989. model.setValue("/root/main/ltp/record/pathid",model.getValue("/root/main/ltpindexinfo["+ 4 +"]/pathid"));
  3990. model.refresh();
  3991. }
  3992. function ImageFilePut(imgpaths)
  3993. {
  3994. var dirname;
  3995. var fullpath;
  3996. var dirfull;
  3997. var count;
  3998. var pagecnt;
  3999. var imgpath;
  4000. var flag;
  4001. var fso;
  4002. fso = new ActiveXObject("Scripting.FileSystemObject");
  4003. imgpath = imgpaths.split("|"); //저장된 패스 여러장일경우 구분자 '|' 로잘라줘야함
  4004. pagecnt = imgpath.length;
  4005. for (count = 0; count < pagecnt; count++)
  4006. {
  4007. pageno = model.getValue("/root/main/paget[" + (count+1) +"]/pageno");
  4008. dir = pageno.substr(pageno.length -4 , pageno.length );
  4009. dirfull = model.getValue("/root/main/ltp/img/ltpindexpath") + "\\" + dir;
  4010. fullpath = dirfull + "\\" + pageno + ".jpg";
  4011. flag = LTPFilePut(fullpath,imgpath[count])
  4012. if (flag == false)
  4013. {
  4014. return false;
  4015. }
  4016. else if(flag == true)
  4017. {
  4018. if(fso.FileExists(imgpath[count]))
  4019. {
  4020. fso.DeleteFile(imgpath[count], true);
  4021. }
  4022. }
  4023. }
  4024. return flag;
  4025. }
  4026. function filetransfail(imgpaths)
  4027. {
  4028. var bDelData = "status▦pageno▩";
  4029. imgpath = imgpaths.split("|"); //저장된 패스 여러장일경우 구분자 '|' 로잘라줘야함
  4030. pagecnt = imgpath.length-1;
  4031. for (count = 0; count < pagecnt; count++)
  4032. {
  4033. pageno = model.getValue("/root/main/paget[" + (count+1) +"]/pageno");
  4034. bDelData += "d▦" + pageno + "▩";
  4035. }
  4036. model.setValue("/root/send/delimage/pageno", bDelData);
  4037. submit("TXMPL03317");
  4038. }
  4039. function fSendRecInfoToSMMMO00100(pSaveflag){
  4040. if(getUserInfo("jobkindcd").substring(0,2) == "03"){
  4041. if(isPopup()){
  4042. if(pSaveflag == "I"){
  4043. if(model.getValue("/root/hidden/procpconfiag/answcnt") == "001"){
  4044. var pamInfoNode = "/root/main/paminfo/list";
  4045. var pid = model.getValue ( pamInfoNode + "/pid" );
  4046. var cretno = model.getValue ( pamInfoNode + "/cretno" );
  4047. var orddd = model.getValue ( pamInfoNode + "/orddd" );
  4048. if(isNull(orddd)){
  4049. orddd = model.getValue ( pamInfoNode + "/indd" );
  4050. }
  4051. var wd = opener.javascript.findChildWindowByScreenID("SMMMO00100");
  4052. if(wd != null){
  4053. var formcd = model.getValue("/root/main/formcd");
  4054. var formnm;
  4055. var swindex = swc_prof.selectedIndex;
  4056. var gridrow = model.getValue("/root/send/certimgrownum");
  4057. if(!isNull(formcd) || (gridrow != null && gridrow > 0)){
  4058. switch(swindex){
  4059. case 0 :
  4060. formnm = model.getValue("/root/main/profform/list[formcd='" + formcd + "']/formnm");
  4061. break;
  4062. case 1 :
  4063. formnm = model.getValue("/root/main/favorlist/list[formcd='" + formcd + "']/formnm");
  4064. break;
  4065. case 2 :
  4066. if(gridrow != null && gridrow > 0){
  4067. formnm = model.getValue("/root/main/profhist/list[" + gridrow + "]/formnm");
  4068. }else{
  4069. if(!isNull(formcd)){
  4070. formnm = model.getValue("/root/main/profhist/list[formcd='" + formcd + "']/formnm");
  4071. }else{
  4072. formnm = "제증명";
  4073. }
  4074. }
  4075. break;
  4076. default : formnm = "제증명";
  4077. break;
  4078. }
  4079. }else{
  4080. formnm = "제증명";
  4081. }
  4082. wd.javascript.fSetAutoPrcpInfo(pid, cretno, orddd, formnm + " 작성" );
  4083. }
  4084. }
  4085. }
  4086. }
  4087. }
  4088. }
  4089. /*************************************************************************************************************
  4090. * Function : lf_CheckPrintOCR
  4091. * Description : 전원(회송)의뢰서 개인정보 이용동의서 출력여부
  4092. * Argument : 01.nRow - 제증명 이력 선택행
  4093. * retrun type :
  4094. * Creator :
  4095. ************************************************************************************************************/
  4096. function lf_CheckPrintOCR(nRow){
  4097. if( nRow == "" ){
  4098. nRow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  4099. }
  4100. var nPid = model.getValue("/root/main/profhist/list[" + nRow + "]/pid");
  4101. var nOrddd = model.getValue("/root/main/profhist/list[" + nRow + "]/orddd");
  4102. var nCretno = model.getValue("/root/main/profhist/list[" + nRow + "]/cretno");
  4103. var nIoflag = model.getValue("/root/main/profhist/list[" + nRow + "]/ioflag");
  4104. //개인정보이용동의서 출력을 위한 서식코드 취득
  4105. reqHardCodeInfo("/root/send/reqdata", "/root/init/prncd", "5604");
  4106. // 구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  4107. var nFormcd = model.getValue("/root/init/prncd/hardcd[cdseqno='3']/hardcd");
  4108. // Step1. 기준일자 : 2016501(반납확인일 기준)
  4109. model.makeValue("/root/send/ocrdata/pid", nPid);
  4110. model.makeValue("/root/send/ocrdata/formcd", nFormcd);
  4111. submit("TRMMR02921");
  4112. var sPerprintyn = model.getValue("/root/ocrtemp/perprintyn");
  4113. if( sPerprintyn == "N" ){
  4114. // 코드조회
  4115. pamfGetCodeList(new Array("PK018"), new Array("/root/init/PAM/PK018list"));
  4116. // Step2. 개인정보동의서 출력
  4117. var sOcrType = "O";
  4118. if (model.getValue("/root/init/PAM/PK018list/PK018[cdid='" + app.clientIp + "']/cdnm") == "Y"){
  4119. sOcrType = "S";
  4120. }
  4121. //alert(nFormcd + " || " + nPid + " || " + nOrddd+ " || " +nCretno+ " || " +sOcrType);
  4122. //개인정보이용동의서 출력
  4123. fPerPrintOCR(nFormcd, nPid, nOrddd, nCretno, nIoflag, sOcrType);
  4124. }
  4125. }
  4126. /*************************************************************************************************************
  4127. * Function : lf_getPerSignData
  4128. * Description : 전원(회송)의뢰서 제증명 서명 정보 조회
  4129. * Argument : 01.nRow - 제증명 이력 선택행
  4130. * retrun type :
  4131. * Creator :
  4132. ************************************************************************************************************/
  4133. function lf_getPerSignData(nRow){
  4134. if( isNull(nRow) ){
  4135. nRow = grd_profhistlist.row - grd_profhistlist.fixedRows + 1;
  4136. }
  4137. var nPid = model.getValue("/root/main/profhist/list[" + nRow + "]/pid");
  4138. var nProfcertseq = model.getValue("/root/main/profhist/list[" + nRow + "]/profcertseq");
  4139. model.makeValue("/root/send/reqdata/pid" , nPid );
  4140. model.makeValue("/root/send/reqdata/profcertseq" , nProfcertseq );
  4141. submit("TRMMR06502");
  4142. }
  4143. /*************************************************************************************************************
  4144. * Function : lf_getPerSignData
  4145. * Description : 전원(회송)의뢰서 실행여부 리턴
  4146. * Argument : 01.nFormcd - 서식코드
  4147. * retrun type : Y / N
  4148. * Creator :
  4149. ************************************************************************************************************/
  4150. function lf_CheckPerPrint(nFormcd){
  4151. var nCheckPerPrint = "N";
  4152. if( nFormcd == "0000002536" ){
  4153. nCheckPerPrint = "Y";
  4154. }
  4155. return nCheckPerPrint;
  4156. }
  4157. /*************************************************************************************************************
  4158. * Function : cbf_SetPrePrntInfo
  4159. * Description : 출력정보 저장
  4160. * Argument : N/A
  4161. * retrun type : N/A
  4162. ************************************************************************************************************/
  4163. function cbf_SetPrePrntInfo(nFlag){
  4164. model.removeNodeset("/root/preprntinfo/list");
  4165. model.makeNode("/root/preprntinfo/list");
  4166. var currow = grd_profhistlist.row;
  4167. if(currow < 0){
  4168. return;
  4169. }
  4170. model.copyNode("/root/preprntinfo/list", "/root/main/profhist/list["+ currow +"]");
  4171. model.makeValue("/root/preprntinfo/list/prntflag", nFlag);
  4172. //var nParamCnt = getParameter("reportPageCount");
  4173. model.setValue("/root/preprntinfo/list/prntcnt" , 1);
  4174. model.setValue("/root/preprntinfo/list/prntuserid" , getUserInfo("userid"));
  4175. model.setValue("/root/preprntinfo/list/prntdeptcd" , getUserInfo("dutplcecd"));
  4176. model.setValue("/root/preprntinfo/list/prntdt" , getCurrentDate() + getCurrentTime());
  4177. model.setValue("/root/preprntinfo/list/fstrgstrid" , getUserInfo("userid"));
  4178. model.setValue("/root/preprntinfo/list/fstrgstdt" , getCurrentDate() + getCurrentTime());
  4179. model.setValue("/root/preprntinfo/list/lastupdtrid" , getUserInfo("userid"));
  4180. model.setValue("/root/preprntinfo/list/lastupdtdt" , getCurrentDate() + getCurrentTime());
  4181. submit("TXMMR02911", false);
  4182. }
  4183. function fTransChk() {
  4184. var pid = model.getValue("/root/main/patinfo/pid");
  4185. var orddeptcd = model.getValue("/root/main/patinfo/orddeptcd");
  4186. model.makeValue("/root/send/savedata/pid",pid);
  4187. model.makeValue("/root/send/savedata/orddeptcd",orddeptcd);
  4188. if(submit("TRMMR02922")) {
  4189. var cnt = model.getValue("/root/tmp2/cntlist/cnt");
  4190. if(cnt > 0){
  4191. return false;
  4192. }
  4193. }
  4194. else {
  4195. return false;
  4196. }
  4197. return true;
  4198. }