MMR02900.xjs 303 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/////////////////////////
  3. ////////////////////////
  4. var lgv_Foldernm_MMR02900 = system.convertRealPath("%MYDOCUMENT%") + "\KU20\\report";
  5. /**
  6. *
  7. * @param :
  8. * @return :
  9. * @author : HIT EMR Team
  10. * @---------------------------------------------------
  11. */
  12. var g_insukind = "";
  13. var degnseqchk = "Y";
  14. var arErrorCode = new HashArray();
  15. var objExtCommon = new ExtCommon();
  16. var pageno;
  17. var path = this.components["grp_base"];
  18. var gImageSave = false;
  19. var gRexid = "";
  20. function cf_TXMMR02905(sSvcId, nErrorCode, sErrorMsg) {
  21. arErrorCode.push(sSvcId, nErrorCode);
  22. if(nErrorCode < 0) return;
  23. utlf_addLog("***** cf_TXMMR02905 *****");
  24. }
  25. function cf_TXMMR02910(sSvcId, nErrorCode, sErrorMsg) {
  26. arErrorCode.push(sSvcId, nErrorCode);
  27. if(nErrorCode < 0) return;
  28. utlf_addLog("***** cf_TXMMR02910 *****");
  29. }
  30. function cf_TXMMR02906(sSvcId, nErrorCode, sErrorMsg) {
  31. arErrorCode.push(sSvcId, nErrorCode);
  32. if(nErrorCode < 0) return;
  33. utlf_addLog("***** cf_TXMMR02906 *****");
  34. }
  35. function cf_TRMMR02906(sSvcId, nErrorCode, sErrorMsg) {
  36. arErrorCode.push(sSvcId, nErrorCode);
  37. if(nErrorCode < 0) return;
  38. utlf_addLog("***** cf_TRMMR02906 *****");
  39. }
  40. function cf_TRMMR02920(sSvcId, nErrorCode, sErrorMsg) {
  41. arErrorCode.push(sSvcId, nErrorCode);
  42. if(nErrorCode < 0) return;
  43. utlf_addLog("***** cf_TRMMR02920 *****");
  44. }
  45. function cf_TXMMR02901(sSvcId, nErrorCode, sErrorMsg) {
  46. arErrorCode.push(sSvcId, nErrorCode);
  47. if(nErrorCode < 0) return;
  48. utlf_addLog("***** cf_TXMMR02901 *****");
  49. }
  50. function cf_TRMMR02911(sSvcId, nErrorCode, sErrorMsg) {
  51. arErrorCode.push(sSvcId, nErrorCode);
  52. if(nErrorCode < 0) return;
  53. utlf_addLog("***** cf_TRMMR02911 *****");
  54. }
  55. function cf_TRMRF00708(sSvcId, nErrorCode, sErrorMsg) {
  56. arErrorCode.push(sSvcId, nErrorCode);
  57. if(nErrorCode < 0) return;
  58. utlf_addLog("***** cf_TRMRF00708 *****");
  59. }
  60. function cf_TRMMR05501(sSvcId, nErrorCode, sErrorMsg) {
  61. arErrorCode.push(sSvcId, nErrorCode);
  62. if(nErrorCode < 0) return;
  63. utlf_addLog("***** cf_TRMMR05501 *****");
  64. }
  65. function cf_TRMMR02909(sSvcId, nErrorCode, sErrorMsg) {
  66. arErrorCode.push(sSvcId, nErrorCode);
  67. if(nErrorCode < 0) return;
  68. utlf_addLog("***** cf_TRMMR02909 *****");
  69. }
  70. function cf_TRMMR06505(sSvcId, nErrorCode, sErrorMsg) {
  71. arErrorCode.push(sSvcId, nErrorCode);
  72. if(nErrorCode < 0) return;
  73. utlf_addLog("***** cf_TRMMR06505 *****");
  74. }
  75. function cf_TRMMR02904(sSvcId, nErrorCode, sErrorMsg) {
  76. arErrorCode.push(sSvcId, nErrorCode);
  77. if(nErrorCode < 0) return;
  78. utlf_addLog("***** cf_TRMMR02904 *****");
  79. }
  80. function cf_TXMPL03304(sSvcId, nErrorCode, sErrorMsg) {
  81. arErrorCode.push(sSvcId, nErrorCode);
  82. if(nErrorCode < 0) return;
  83. utlf_addLog("***** cf_TXMPL03304 *****");
  84. }
  85. function cf_TRMMR06504(sSvcId, nErrorCode, sErrorMsg) {
  86. arErrorCode.push(sSvcId, nErrorCode);
  87. if(nErrorCode < 0) return;
  88. utlf_addLog("***** cf_TRMMR06504 *****");
  89. }
  90. function cf_TXMMR02903(sSvcId, nErrorCode, sErrorMsg) {
  91. arErrorCode.push(sSvcId, nErrorCode);
  92. if(nErrorCode < 0) return;
  93. utlf_addLog("***** cf_TXMMR02903 *****");
  94. }
  95. function cf_TRMMR02902(sSvcId, nErrorCode, sErrorMsg) {
  96. arErrorCode.push(sSvcId, nErrorCode);
  97. if(nErrorCode < 0) return;
  98. utlf_addLog("***** cf_TRMMR02902 *****");
  99. }
  100. function cf_TRMMR02912(sSvcId, nErrorCode, sErrorMsg) {
  101. arErrorCode.push(sSvcId, nErrorCode);
  102. if(nErrorCode < 0) return;
  103. utlf_addLog("***** cf_TRMMR02912 *****");
  104. }
  105. function cf_TRMMR02901(sSvcId, nErrorCode, sErrorMsg) {
  106. arErrorCode.push(sSvcId, nErrorCode);
  107. if(nErrorCode < 0) return;
  108. utlf_addLog("***** cf_TRMMR02901 *****");
  109. }
  110. function cf_TRMMR02913(sSvcId, nErrorCode, sErrorMsg) {
  111. arErrorCode.push(sSvcId, nErrorCode);
  112. if(nErrorCode < 0) return;
  113. utlf_addLog("***** cf_TRMMR02913 *****");
  114. }
  115. function cf_GetChngAmblInfo(sSvcId, nErrorCode, sErrorMsg) {
  116. arErrorCode.push(sSvcId, nErrorCode);
  117. if(nErrorCode < 0) return;
  118. utlf_addLog("***** cf_GetChngAmblInfo *****");
  119. }
  120. function fInitialize(){///
  121. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  122. lf_getHardCDList("N", 5501, null, ds_init_dutplcecd);
  123. // KNUH_20101207_박성호_end
  124. // 화면 초기화시 popup Menu 설정
  125. frmf_createPopupMenu("pmn_popupMenu", "pmnmouserght_onmenuclick");
  126. frmf_createPopupMenu("ypmn_popupMenu", "pmnmenu2_onmenuclick");
  127. //연명가이드 사용여부
  128. // if (lf_ContainsHardCD("6942", "Y")) {
  129. // grp_tle.btn_yeon.visible = true;
  130. // }
  131. //
  132. // //연명가이드2 사용여부
  133. // if (lf_ContainsHardCD("6168", sysf_getUserInfo("userid"))) {
  134. // grp_tle.btn_yeon2.visible = true;
  135. // }
  136. grp_base.swc_prof.tabindex = 0;
  137. dsf_makeValue(ds_main_newprof,"orddept" , "string", sysf_getUserInfo("dutplcenm"));
  138. dsf_makeValue(ds_main_newprof,"orddeptcd" , "string", sysf_getUserInfo("dutplcecd"));
  139. dsf_makeValue(ds_main_newprof,"orddoctid" , "string", sysf_getUserInfo("userid"));
  140. dsf_makeValue(ds_main_newprof,"doctnm" , "string", sysf_getUserInfo("usernm"));
  141. dsf_makeValue(ds_main_newprof,"licnsno" , "string", sysf_getUserInfo("licnsno"));
  142. var fromdd = ((utlf_getCurrentDate()).toDate()).getAddDate(-1, "M");
  143. ds_main_srchprofhist.setColumn(0,"fromdd" , fromdd.getDateFormat());
  144. ds_main_srchprofhist.setColumn(0,"todd" , utlf_getCurrentDate());
  145. ds_main_paminfo.clearData();
  146. var node = sysf_getGlobalVariable("paminfo");
  147. dsf_setCSVToDs("ds_main_paminfo", node);
  148. if(utlf_isNull(ds_main_paminfo.getColumn(0,"pid"))){
  149. // knuh_20110421_박성호_수정(의무기록, 제증명인 경우 로딩시 등록번호 체크하지 않음)
  150. var dutplcecd = sysf_getUserInfo("dutplcecd");
  151. if(utlf_isNull(ds_init_hardcd.lookup("hardcd", dutplcecd, "hardcd")))
  152. {
  153. sysf_messageBox("선택된 환자정보가", "I004");
  154. }
  155. grp_base.ipt_pid.setFocus();
  156. }
  157. else
  158. {
  159. // 환자 보험정보 설정
  160. dsf_makeValue(ds_main_patinfo,"insukind", "string", ds_main_paminfo.getColumn(0,"insukind"));
  161. if(ds_temp_recive.getColumn(0,"disflag") != "popup"){
  162. dsf_makeValue(ds_main_patinfo,"hngnm" ,"string",ds_main_paminfo.getColumn(0,"hngnm"));
  163. dsf_makeValue(ds_main_patinfo,"ioflag", "string",ds_main_paminfo.getColumn(0,"ioflag"));
  164. // 입원,외래 구분
  165. dsf_makeValue(ds_main_patinfo,"pid" , "string", fCheckedBindPid(ds_main_paminfo.getColumn(0,"pid")));
  166. dsf_makeValue(ds_main_patinfo,"cretno" , "string", ds_main_paminfo.getColumn(0,"cretno"));
  167. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  168. if(ioflag == "O" || ioflag == "S"){
  169. dsf_makeValue(ds_main_patinfo,"orddd" , "string",ds_main_paminfo.getColumn(0,"orddd"));
  170. dsf_makeValue(ds_main_patinfo,"orddrid", "string",ds_main_paminfo.getColumn(0,"orddrid"));
  171. }else{
  172. dsf_makeValue(ds_main_patinfo,"orddd" , "string",ds_main_paminfo.getColumn(0,"indd"));
  173. dsf_makeValue(ds_main_patinfo,"orddrid", "string",ds_main_paminfo.getColumn(0,"medispclid"));
  174. }
  175. var sex = ds_main_paminfo.getColumn(0,"sex");
  176. if(sex == "M"){
  177. //dsf_makeValue(ds_main_patinfo,"rrgstno1", "string",ds_main_paminfo.getColumn(0,"rrgstno1") + "-1******");
  178. ds_main_patinfo.setColumn(0, "rrgstno1", ds_main_paminfo.getColumn(0,"rrgstno1") + "-1******");
  179. } else {
  180. //dsf_makeValue(ds_main_patinfo,"rrgstno1", "string",ds_main_paminfo.getColumn(0,"rrgstno1") + "-2******");
  181. ds_main_patinfo.setColumn(0, "rrgstno1", ds_main_paminfo.getColumn(0,"rrgstno1") + "-2******");
  182. }
  183. var age = ds_main_paminfo.getColumn(0,"age");
  184. dsf_makeValue(ds_main_patinfo,"orddeptcd", "string",ds_main_paminfo.getColumn(0,"orddeptcd"));
  185. dsf_makeValue(ds_main_patinfo,"orddeptnm", "string",ds_main_paminfo.getColumn(0,"orddeptnm"));
  186. dsf_makeValue(ds_main_patinfo,"age" , "string", sex+"/"+age);
  187. dsf_makeValue(ds_main_patinfo,"addr" , "string",appf_getPatientInfo("addrdetl"));
  188. dsf_makeValue(ds_main_patinfo,"hometel" , "string",appf_getPatientInfo("telno"));
  189. dsf_makeValue(ds_main_patinfo,"brthdd" , "string",ds_main_paminfo.getColumn(0,"brthdd"));
  190. dsf_makeValue(ds_main_patinfo,"ordtm" , "string",dsf_getColumnNullToEmpty(ds_main_paminfo, 0, "ordtm"));
  191. }
  192. }
  193. // 의료급여조회
  194. fGetPatInsuranceInfo();
  195. fGetProfForm(); // 제증명 서식트리
  196. fReqFormlist(); // 서식명 조회
  197. fPrstUsge(); // 공통코드 조회 332, 385
  198. // 141021 - AYS 부서코드 조회
  199. lf_mmbfGetDeptCodeComboList(ds_main_orddept, "A");
  200. frmf_addComboItem("grp_base.swc_prof.case3.cmb_selectdept", "전체", "-", "above");
  201. if(grp_base.swc_prof.tabindex == 2){
  202. ds_temp.setColumn(0,"openmode", "rec");
  203. }else{
  204. ds_temp.setColumn(0,"openmode", "new");
  205. }
  206. var prcp_formcd=opener.frmf_getParameter("SMMMR02900_formcd");
  207. var jobkind = utlf_transNullToEmpty(sysf_getUserInfo("jobkindcd")).substring(0, 2);
  208. dsf_createDs("ds_init_tran");
  209. lf_getHardCDList("N", 10032, null, ds_init_tran); // 회송서/의뢰서 버튼 세분화에 따른 연동서식코드 관리 공통코드
  210. // hardcd : 01(1,2차 회송/의료급여/병동외래구분X), 02(1,2차 회송/건강보험/병동), 03(1,2차 회송/건강보험/외래),
  211. // 04(본원의뢰/의료급여), 05(본원의뢰/건강보험)
  212. // 06(기타3차 의뢰/의료급여), 07(기타3차 의뢰/건강보험)
  213. if ( prcp_formcd == "trans" ) { // 1,2차 회송
  214. var searchformcd = "";
  215. if (!utlf_isNull(ds_main_paminfo.getColumn(0,"pid"))) {
  216. if (ds_main_paminfo.getColumn(0,"insukind") == "21" || ds_main_paminfo.getColumn(0,"insukind") == "22") { // 의료급여1종, 의료급여2종
  217. //searchformcd = "1400015254"; //03-의료급여회송서
  218. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '01'"), "hardcdnm").split("$")[0];
  219. } else {
  220. if (ds_main_paminfo.getColumn(0,"ioflag") == "I") {
  221. //searchformcd = "1700019834"; //01-전원소견서(병동)-회송(전원)서-1차,2차용
  222. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '02'"), "hardcdnm").split("$")[0];
  223. }
  224. if (ds_main_paminfo.getColumn(0,"ioflag") == "O") {
  225. //searchformcd = "1700019854"; //02-전원소견서(외래)-회송(전원)서-1차,2차용
  226. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '03'"), "hardcdnm").split("$")[0];
  227. }
  228. }
  229. ds_main_profform_list.rowposition = ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'");
  230. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'"));
  231. fChosProflist();
  232. } else {
  233. //기본값으로 01-전원소견서(병동)-회송(전원)서-1차,2차용 열어줌 (1700019834)
  234. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '02'"), "hardcdnm").split("$")[0]
  235. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'"));
  236. }
  237. } else if ( prcp_formcd == "mreq1" ) { // 본원의뢰
  238. var searchformcd = "";
  239. if (!utlf_isNull(ds_main_paminfo.getColumn(0,"pid"))) {
  240. if (ds_main_paminfo.getColumn(0,"insukind") == "21" || ds_main_paminfo.getColumn(0,"insukind") == "22") { // 의료급여1종, 의료급여2종
  241. //searchformcd = "1600017534"; // 의료급여의뢰서
  242. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '04'"), "hardcdnm").split("$")[0];
  243. } else {
  244. //searchformcd = "1700020559"; // 01.진료의뢰서(칠곡용,본원용)
  245. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '05'"), "hardcdnm").split("$")[0];
  246. }
  247. ds_main_profform_list.rowposition = ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'");
  248. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'"));
  249. fChosProflist();
  250. } else {
  251. //기본값으로 01.진료의뢰서(칠곡용,본원용) 열어줌 (1700020559)
  252. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '05'"), "hardcdnm").split("$")[0];
  253. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'"));
  254. }
  255. } else if ( prcp_formcd == "mreq2" ) { // 기타3차 의뢰
  256. var searchformcd = "";
  257. if (!utlf_isNull(ds_main_paminfo.getColumn(0,"pid"))) {
  258. if (ds_main_paminfo.getColumn(0,"insukind") == "21" || ds_main_paminfo.getColumn(0,"insukind") == "22") { // 의료급여1종, 의료급여2종
  259. //searchformcd = "1600017534"; // 의료급여의뢰서
  260. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '06'"), "hardcdnm").split("$")[0];
  261. } else {
  262. //searchformcd = "0900005340"; // 02.진료의뢰서(기타,3차)
  263. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '07'"), "hardcdnm").split("$")[0];
  264. }
  265. ds_main_profform_list.rowposition = ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'");
  266. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'"));
  267. fChosProflist();
  268. } else {
  269. //기본값으로 02.진료의뢰서(기타,3차) 열어줌 (0900005340)
  270. searchformcd = ds_init_tran.getColumn(ds_init_tran.findRowExpr("hardcd == '07'"), "hardcdnm").split("$")[0];
  271. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '"+searchformcd+"'"));
  272. }
  273. } else if (prcp_formcd=="1200012640" ){ //prcp_formcd=="1200012640" 중증화상환자 산정특례 연장신청 소견서
  274. //ds_main.setColumn(0,"formcd", "1200012640");
  275. var nFindRow = ds_main_profform_list.findRowExpr("formcd == '" + prcp_formcd + "'");
  276. if( nFindRow > -1 ){
  277. ds_main_profform_list.rowposition = nFindRow;
  278. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, nFindRow);
  279. fChosProflist();
  280. }
  281. } else if ( !utlf_isNull(ds_main_paminfo.getColumn(0,"pid"))
  282. && grp_base.swc_prof.tabindex == 0
  283. && ds_envinfo.lookup("qestcd", "066", "answcnt") == "001"
  284. && jobkind == "03"){
  285. utlf_addLog("####prcp_formcd3#####"+prcp_formcd);
  286. //즐겨찾기로 진단(소견)서 등록되어 있으면 환자선택하여 바로열어주기 채의수 교수님 요청(환경설정 066)
  287. // 2016.10.04 의사인경우로만 조건 추가
  288. ds_main_profform_list.rowposition = ds_main_profform_list.findRowExpr("formcd == '1100012297'");
  289. grdf_expandTree(grp_base.swc_prof.case1.trv_proflist, ds_main_profform_list.findRowExpr("formcd == '1100012297'"));
  290. fChosProflist();
  291. }
  292. opener.frmf_clearParameter("SMMMR02900_formcd");
  293. }
  294. /**
  295. * @desc : 서식명 조회
  296. * @
  297. * @param :
  298. * @return :
  299. * @---------------------------------------------------
  300. */
  301. function fReqFormlist(){///
  302. var oParam = {};
  303. oParam.id = "TRMRF00708";
  304. oParam.service = "formmngtapp.FormMngt";
  305. oParam.method = "reqGetProfFormcd";
  306. oParam.inds = "req=ds_send_savedata";
  307. oParam.outds = "ds_main_formlist=formlist";
  308. oParam.async = false;
  309. oParam.callback = "cf_TRMRF00708";
  310. tranf_submit(oParam);
  311. if(arErrorCode.pop("TRMRF00708") > -1){
  312. frmf_addComboItem("grp_base.swc_prof.case3.cmb_profformlist", "전체", "-", "above");
  313. grp_base.swc_prof.case3.cmb_profformlist.index = 0;
  314. }
  315. }
  316. /**
  317. * @desc : 제증명리스트
  318. * @
  319. * @param :
  320. * @return :
  321. * @---------------------------------------------------
  322. */
  323. function fDelProflist(){///
  324. var currow = ds_main_profhist.rowposition;
  325. if(currow < 0){
  326. sysf_messageBox("삭제할 제증명을", "C001");
  327. return;
  328. }
  329. var profcertseq = ds_main_profhist.getColumn(currow, "profcertseq");
  330. var yearseqno = ds_main_profhist.getColumn(currow, "yearseqno");
  331. if (1==1) {
  332. //현시점의 발행여부를 확인한다
  333. dsf_makeValue(ds_send_reqdata,"profcertseq","string",profcertseq);
  334. var oParam = {};
  335. oParam.id = "TRMMR05504";
  336. oParam.service = "medirecapp.ExtnMediRec";
  337. oParam.method = "reqGetYearseqnoYN";
  338. oParam.inds = "req=ds_send_reqdata";
  339. oParam.outds = "ds_hidden_balyn=balyn";
  340. oParam.async = false;
  341. tranf_submit(oParam);
  342. var balyncnt = ds_hidden_balyn.getColumn(0,"cnt");
  343. //화면이 old
  344. if (balyncnt != 0) {
  345. sysf_messageBox("제증명이 발행되어 삭제 불가합니다","I999");
  346. return ;
  347. }
  348. }
  349. if(sysf_messageBox("", "Q001") == 6){
  350. var profcertseq = ds_main_profhist.getColumn(currow, "profcertseq");
  351. ds_send_reqdata_prof.clear();
  352. ds_send_reqdata_profinfo.clear();
  353. ///
  354. ds_send_reqdata_issusge.clearData();
  355. ds_send_reqdata_rsltmsg.clearData();
  356. ds_send_reqdata_formrec.clearData();
  357. ds_send_reqdata_recitem.clearData();
  358. //
  359. dsf_makeValue(ds_send_reqdata_prof, "status", "string", "D", 0)
  360. dsf_makeValue(ds_send_reqdata_profinfo, "profseq", "string", profcertseq, 0)
  361. /*
  362. sysf_trace("1 " + ds_send_reqdata_prof.saveXML());
  363. sysf_trace("2 " + ds_send_reqdata_profinfo.saveXML());
  364. sysf_trace("3 " + ds_send_reqdata_issusge.saveXML());
  365. sysf_trace("4 " + ds_send_reqdata.getColumn(0, "rsltmsg"));
  366. sysf_trace("5 " + ds_send_reqdata_formrec.saveXML());
  367. sysf_trace("6 " + ds_send_reqdata_recitem.saveXML());
  368. return;
  369. */
  370. dsf_setDefaultVal(ds_send_reqdata_prof, "histcd:0");
  371. var oParam = {};
  372. oParam.id = "TXMMR02903";
  373. oParam.service = "medirecapp.ExtnMediRec";
  374. oParam.method = "reqSetProfData";
  375. oParam.inds = "prof=ds_send_reqdata_prof issusge=ds_send_reqdata_issusge profinfo=ds_send_reqdata_profinfo rsltmsg=ds_send_reqdata_rsltmsg formrec=ds_send_reqdata_formrec recitem=ds_send_reqdata_recitem";
  376. oParam.outds = "ds_savedinfo_rsltmsg=rsltmsg ds_savedinfo_profcertseqinfo=profcertseqinfo";
  377. oParam.async = false;
  378. oParam.callback = "cf_TXMMR02903";
  379. tranf_submit(oParam);
  380. // sysf_trace("3 " + ds_savedinfo_rsltmsg.saveXML());
  381. // sysf_trace("4 " + ds_savedinfo_profcertseqinfo.saveXML());
  382. if(arErrorCode.pop("TXMMR02903") > -1){
  383. fGetProfPrntHist();
  384. grp_base.ivw_loader.ivw_base.url = "";
  385. // grp_base.ivw_loader.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  386. }
  387. }
  388. }
  389. /**
  390. * @desc : 제증명리스트 신규 선택
  391. * @
  392. * @param :
  393. * @return :
  394. * @author : HIT EMR Team
  395. * @---------------------------------------------------
  396. */
  397. function fChosProflist(){
  398. utlf_addLog("***** fChosProflist *****");
  399. var orddept = ds_main_newprof.getColumn(0,"orddept"); //진료과
  400. var orddeptcd = ds_main_newprof.getColumn(0,"orddeptcd"); //진료과코드
  401. var orddoctid = ds_main_newprof.getColumn(0,"orddoctid"); //전문의id
  402. var doctnm = ds_main_newprof.getColumn(0,"doctnm"); //전문의이름
  403. var licnsno = ds_main_newprof.getColumn(0,"licnsno"); //면허번호
  404. var currenttime = utlf_getCurrentDate()+ utlf_getCurrentTime();
  405. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  406. var pid = ds_main_patinfo.getColumn(0,"pid");
  407. var cretno = ds_main_patinfo.getColumn(0,"cretno");
  408. var orddd = ds_main_patinfo.getColumn(0,"orddd");
  409. var orddeptcd = ds_main_patinfo.getColumn(0,"orddeptcd");
  410. var profformcd = "";
  411. var srcformcd = "";
  412. ds_main_newprof.clearData();
  413. if(ds_main_newprof.rowcount ==0) ds_main_newprof.addRow();
  414. //2009-07-15 오전 10:43:45 강지훈 추가 : 용도를 reset시켰다가 다시 셋팅한다.
  415. ds_main.deleteColumn("issusge");
  416. dsf_makeValue(ds_main, "issusge", "string", "", 0);
  417. ds_main_newprof.setColumn(0, "orddept", orddept); //진료과
  418. ds_main_newprof.setColumn(0, "orddeptcd", orddeptcd);
  419. ds_main_newprof.setColumn(0, "orddoctid", orddoctid); //전문의id
  420. ds_main_newprof.setColumn(0, "doctnm", doctnm); //전문의이름
  421. ds_main_newprof.setColumn(0, "licnsno", licnsno); //면허번호
  422. if((utlf_isNull(pid))&& utlf_isNull(ds_main.getColumn(0, "emptyform"))){
  423. sysf_messageBox("환자정보를 ", "C001");
  424. return;
  425. }
  426. if( grp_base.swc_prof.tabindex == 0 ){
  427. profformcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "formcd");
  428. srcformcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "srcformcd");
  429. } else if( grp_base.swc_prof.tabindex == 1 ){
  430. profformcd = ds_main_favorlist_list.getColumn(ds_main_favorlist_list.rowposition, "formcd");
  431. srcformcd = ds_main_favorlist_list.getColumn(ds_main_favorlist_list.rowposition, "srcformcd");
  432. }
  433. //연명진료가이드(new) 2020-02-11 이윤주
  434. if (lf_ContainsHardCD("6944", profformcd)) {
  435. if (utlf_isNull(frmf_getParameter("SPMRI09010_formcd"))) {
  436. sysf_messageBox("연명의료 관련 서식은 연명의료가이드에서 진행하셔야 합니다! 문의:연명의료 담당자 본원:6238, 칠곡:3040","I");
  437. return;
  438. }
  439. }
  440. if(!utlf_isNull(frmf_getParameter("SPMRI09010_formcd"))) {
  441. if (grp_base.swc_prof.tabindex == 2 ) {
  442. sysf_messageBox("제증명 이력텝에서는 진행할 수 없습니다");
  443. return;
  444. }
  445. profformcd = frmf_getParameter("SPMRI09010_formcd");
  446. srcformcd = frmf_getParameter("SPMRI09010_srcformcd");
  447. frmf_setParameter("SPMRI09010_formcd","");
  448. frmf_setParameter("SPMRI09010_srcformcd","");
  449. }
  450. //전원소견서 메세지 추가
  451. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  452. var insukind = utlf_transNullToEmpty(ds_main_patinfo.getColumn(0,"insukind"));
  453. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  454. var selformcd = profformcd;
  455. //본원,칠곡용 진료의뢰서 선택시(20180227)
  456. if (selformcd == "1700020559" ) {
  457. if ( ioflag == "E") {
  458. sysf_messageBox("응급실 환자는 [응급환자진료의뢰서]를 작성하셔야 합니다!","I");
  459. return;
  460. }
  461. if (insukind == "21" || insukind == "22" ) {
  462. sysf_messageBox("의료급여 환자인 경우에는 [의료급여의뢰서]를 작성하셔야 합니다!","I");
  463. return;
  464. }
  465. }
  466. //전원소견서(병동,외래)-회송(전원)서(20170814 이윤주)
  467. if ( srcformcd == "0000002536" ) {
  468. if ( ioflag == "E") {
  469. sysf_messageBox("응급실 환자는 [응급환자진료의뢰서]를 작성하셔야 합니다!","I");
  470. return;
  471. }
  472. if (insukind == "21" || insukind == "22" ) {
  473. sysf_messageBox("의료급여 환자인 경우에는 [의료급여회송서]를 작성하셔야 합니다!","I");
  474. return;
  475. }
  476. if(!fTransChk()) {
  477. sysf_messageBox("당월 동일과 또는 재원중에 발행이력이 있으니 진료의뢰서로 작성 하시기 바랍니다! 문의:진료의뢰센터","I");
  478. return;
  479. }
  480. if(!lf_ContainsHardCD("10028", "Y")) { // 회송서 버튼 세분화 적용 시 아래 메시지 안 띄움 (Y:세분화 적용) [요청번호: 20200224008]
  481. sysf_messageBox("경대병원 방문환자는 진료의뢰서 (칠곡용,본원용) 으로 작성하시기 바랍니다! 문의:진료협력센터","I");
  482. }
  483. }
  484. //의료급여회송서(20160509 이윤주)
  485. if (selformcd == "1400015254") {
  486. if (insukind.substr(0,1) != "2") {
  487. sysf_messageBox("의료급여 환자이외는 [의료급여회송서]를 작성하실 수 없습니다!","I");
  488. return;
  489. }
  490. // 입원환자 회송서 발행 기준변경(요청번호 : 20200113014)
  491. if(!fTransChk()) {
  492. sysf_messageBox("당월 동일과 또는 재원중에 발행이력이 있으니 진료의뢰서로 작성 하시기 바랍니다! 문의:진료의뢰센터","I");
  493. return;
  494. }
  495. }
  496. //의료급여진료의뢰서(20161031 이윤주)
  497. if (selformcd == "1600017534") {
  498. if (insukind.substr(0,1) != "2") {
  499. sysf_messageBox("의료급여 환자이외는 [의료급여의뢰서]를 작성하실 수 없습니다!","I");
  500. return;
  501. }
  502. }
  503. //진료의뢰서관련 제어
  504. if (selformcd == "0900005340" && sysf_getUserInfo("dutplceinstcd") != "033") {
  505. if ( ioflag == "E") {
  506. sysf_messageBox("응급실 환자는 [응급환자진료의뢰서]를 작성하셔야 합니다!","I");
  507. return;
  508. }
  509. if (insukind == "21" || insukind == "22" ) {
  510. sysf_messageBox("의료급여 환자인 경우에는 [의료급여의뢰서]를 작성하셔야 합니다!","I");
  511. return;
  512. }
  513. }
  514. //응급실 전원소견서(20160509 이윤주)
  515. if (selformcd == "1100011620" || selformcd == "1600018117" ) {
  516. if ( ioflag != "E") {
  517. sysf_messageBox("응급실 환자가 아니므로 [응급환자진료의뢰서]를 작성할 수 없습니다!","I");
  518. return;
  519. }
  520. }
  521. //의뢰회송서(20160509 이윤주)
  522. if (selformcd == "1300014808") {
  523. sysf_messageBox("전원소견서로 작성하십시오!","I");
  524. return;
  525. }
  526. //회송서(20160509 이윤주)
  527. if (selformcd == "1100012259") {
  528. sysf_messageBox("전원소견서로 작성하십시오!","I");
  529. return;
  530. }
  531. //profformcd = ds_main.getColumn(0,"formcd");
  532. if(utlf_isNull(profformcd)){
  533. return;
  534. }
  535. //2012/11/16 Start 오픈한 제증명 서식이 일반 진단(소견서)서 일시에만 입원이력 자동입력 버튼 활성화
  536. if(profformcd=="1100012297"){
  537. btn_inptinfo.visible=true;
  538. }else{
  539. btn_inptinfo.visible=false;
  540. frmf_clearParameter("SMMMR08300_param");
  541. }
  542. frmf_setParameter("SSMMR01100_getTopYn", "N");
  543. if (!grp_base.ivw_loader.fSetPamInfo(pid, orddd, cretno, ioflag))
  544. {
  545. return;
  546. }
  547. if(inptinfo_flag==true){ // 진단(소견)서 일 경우 입원이력 자동입력을 클릭시 아래의 메시지 뜨는걸 방지
  548. var existyn = "N";
  549. }else{
  550. frmf_clearParameter("SMMMR08300_param");
  551. var existyn = fExistProf(pid, cretno, orddd, ioflag, profformcd, orddeptcd);
  552. // [요청번호:20160708012] 전원소견서 제어
  553. if( ds_main_existdata.getColumn(0, "transexistyn") == "Y" )
  554. {
  555. //의료급여회송서 요청사항[20190220008]
  556. if(profformcd == "1400015254")
  557. {
  558. sysf_messageBox("당월 동일과 또는 재원중에 발행이력이 있으니 의료급여의뢰서로 작성하시기바랍니다!","I");
  559. }
  560. else
  561. {
  562. sysf_messageBox("1년 이내에 동일과에 재작성이 불가하오니 진료의뢰서로 작성바랍니다","I");
  563. }
  564. return;
  565. }
  566. }
  567. inptinfo_flag=false;
  568. //2012/11/22 End
  569. ds_cond_formdata.clearData();
  570. ds_cond_formdata.addRow();
  571. ds_cond_formdata.setColumn(0, "formcd", profformcd);
  572. ds_cond_formdata.setColumn(0, "formkind", "new");
  573. ds_cond_formdata.setColumn(0, "btnvisible", "false");
  574. ds_cond_formdata.setColumn(0, "pid", pid);
  575. ds_cond_formdata.setColumn(0, "orddd", orddd);
  576. ds_cond_formdata.setColumn(0, "cretno", cretno);
  577. ds_cond_formdata.setColumn(0, "ioflag", ioflag);
  578. ds_cond_formdata.setColumn(0, "orddeptcd", ds_main_patinfo.getColumn(0,"orddeptcd"));
  579. if(existyn != "Y"){
  580. var objArg = new Object();
  581. objArg.ds_cond_formdata = ds_cond_formdata;
  582. lf_loadSMMMR01100(false, objArg, path);
  583. //grp_base.ivw_loader.fLoadNewForm(profformcd, false); // 증명서 열기 0707 수정
  584. //grp_base.ivw_loader.afterSaveExeFuncNm = "fGetProfPrntHist";
  585. fGetProfPrntHist();
  586. } else {
  587. trace(ds_main_profhist.saveXML());
  588. // if(selformcd == "1400015254")
  589. // {
  590. // if(ioflag == "I" &&
  591. // sysf_messageBox("작성된 서식이 존재합니다.\n신규서식을 작성하시겠습니까?", "Q") == 6
  592. // }
  593. if(sysf_messageBox("작성된 서식이 존재합니다.\n신규서식을 작성하시겠습니까?", "Q") == 6){
  594. var objArg = new Object();
  595. objArg.ds_cond_formdata = ds_cond_formdata;
  596. lf_loadSMMMR01100(false, objArg, path);
  597. //grp_base.ivw_loader.fLoadNewForm(profformcd, false); // 증명서 열기 0707 수정
  598. //grp_base.ivw_loader.afterSaveExeFuncNm = "fGetProfPrntHist";
  599. fGetProfPrntHist();
  600. } else {
  601. grp_base.swc_prof.tabindex = 2;
  602. fGetProfPrntHist();
  603. //grp_base.ivw_loader.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  604. grp_base.ivw_loader.ivw_base.url = "";
  605. //grp_base.ivw_loader.ivw_base.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  606. lf_ivw_loader_setting();
  607. }
  608. }
  609. btn_tranprnt.visible = false;
  610. grp_base.btn_pathist.visible = true;
  611. }
  612. /**
  613. * @desc : 제증명서식 로드
  614. * @
  615. * @param :
  616. * @return :
  617. * @author : 오지훈
  618. * @---------------------------------------------------
  619. */
  620. function fLoadProfForm(){///
  621. var currow = ds_main_profhist.rowposition;
  622. var formrecseq = ds_main_profhist.getColumn(currow, "formrecseq");
  623. var issstat = ds_main_profhist.getColumn(currow, "issstat");
  624. var issflag = ds_main_profhist.getColumn(currow, "issflag");
  625. var yearseqno = ds_main_profhist.getColumn(currow, "yearseqno");
  626. var issnm = ds_main_profhist.getColumn(currow, "issnm");
  627. var formcd = ds_main_profhist.getColumn(currow, "formcd");
  628. var pid = ds_main_profhist.getColumn(currow, "pid");
  629. var orddd = ds_main_profhist.getColumn(currow, "orddd");
  630. var cretno = ds_main_profhist.getColumn(currow, "cretno");
  631. var orddoctid;
  632. if(!utlf_isNull(ds_main_profhist.getColumnInfo("orddoctid"))){
  633. orddoctid = ds_main_profhist.getColumn(currow, "orddoctid");
  634. }
  635. var issdeptnm = ds_main_profhist.getColumn(currow, "issdeptnm"); // 2011-01-19 경북대 최원돈 추가wjstkst
  636. var iptgbn = ds_main_profhist.getColumn(currow, "iptgbn");
  637. //사체검안서(0000002841), 입퇴원확인서(진단명포함)(0000001283),
  638. //출생증명서(0000001113), 소견서(0000001499)
  639. //채용신체검사서(일반)(공무원), 사망진단서(0000001314)
  640. //입원사실확인서,외래진료확인서
  641. lf_getHardCDList("N", 1005, null, ds_init_formhardcd); //응급실 전원소견서 formcd
  642. lf_getHardCDList("N", 9904, null, ds_init_tranprntcd);//항상 무료로 발행되어야 하는 부서
  643. lf_getHardCDList("N", 5972, null, ds_nofee);
  644. var iexNodeCnt = ds_init_formhardcd.getCaseCount("hardcd == '" + formcd + "'"); //무료발급서식(hardcd = 1005)
  645. if(iexNodeCnt > 0) {
  646. grp_base.chk_freeflag.enable = true;
  647. }else{
  648. ds_main.setColumn(0, "freeflag", "");
  649. grp_base.chk_freeflag.enable = false;
  650. }
  651. //이윤주 추가(항상 무료로 발행되어야 하는 로긴부서)
  652. var dutplcecd = sysf_getUserInfo("dutplcecd");
  653. var iexNodeCnt = ds_nofee.getCaseCount("hardcd == '" + dutplcecd + "'"); //작성 및 발행가능부서
  654. if(iexNodeCnt > 0) {
  655. ds_main.setColumn(0, "freeflag", "Y");
  656. grp_base.chk_freeflag.enable = false;
  657. }
  658. if(formrecseq == 0){
  659. //2009-08-04 오전 8:59:54 강지훈 수정 : 연번호가 없어도 스캔된 이미지가 보여진다. - 이태경샘 요청
  660. ds_init_iemr.clearData();
  661. if(ds_init_iemr.rowcount==0) ds_init_iemr.addRow();
  662. ds_init_iemr.setColumn(0,"pid" , pid); //등록번호
  663. ds_init_iemr.setColumn(0,"docucd" , formcd); //서식코드
  664. dsf_makeValue(ds_init_iemr,"cmc_spcid", "string", "", 0); //blocking null exception
  665. dsf_makeValue(ds_init_iemr,"cmc_orddate", "string", "", 0); //blocking null exception
  666. dsf_makeValue(ds_init_iemr,"cmc_orderseqno", "string", "", 0); //blocking null exception
  667. if(!utlf_isNull(yearseqno)){
  668. ds_init_iemr.setColumn(0,"ocmnum" , yearseqno); //연번호
  669. }
  670. if ( iptgbn == "I" ) {
  671. sysf_messageBox("인터넷 제증명입니다.", "I999");
  672. }
  673. else {
  674. sysf_messageBox("자필 제증명입니다.", "I999");
  675. }
  676. }else{
  677. ds_main_newprof.setColumn(0,"yearseqno", yearseqno);
  678. ds_main_newprof.setColumn(0,"doctnm" , issnm);
  679. ds_main_newprof.setColumn(0,"orddept" , issdeptnm); // 2011-01-19 경북대 최원돈 추가
  680. }
  681. //2009-06-30 오후 11:02:46 강지훈 수정
  682. //1.응급실 전원소견서를 선택 2.인증저장 3.이송의뢰서 OCR서식이 유효 : 3가지 조건이 모두 충족해야 이송의뢰서 출력버튼이 보인다.
  683. var tranformcd = "0900005742"; //이송의뢰서 OCR 서식코드
  684. //if(!utlf_isNull(ds_send_formyn.getColumnInfo("tranformcd"))) ds_send_formyn.deleteColumn("tranformcd");
  685. var iTranPrntCnt = ds_init_tranprntcd.getCaseCount("hardcd == '" + formcd + "'"); //응급실 전원소견서(hardcd = 9904)
  686. if(iTranPrntCnt > 0) {
  687. if(issstat == "I"){
  688. dsf_createDsRow("ds_send_formyn", [ {col:"formcd", type:"string", size:256, val:tranformcd}
  689. , {col:"instcd", type:"string", size:256, val:""}]);
  690. dsf_createDs("ds_temp_formyn", [{col:"formyn", type:"string", size:256}]);
  691. var oParam = {};
  692. oParam.id = "TRMMR02912";
  693. oParam.service = "medirecapp.ExtnMediRec";
  694. oParam.method = "reqGetEDPatTranFormInfo";
  695. oParam.inds = "req=ds_send_formyn";
  696. oParam.outds = "ds_temp_formyn=formyn";
  697. oParam.async = false;
  698. oParam.callback = "cf_TRMMR02912";
  699. tranf_submit(oParam);
  700. if(arErrorCode.pop("TRMMR02912") > -1){ //이송의뢰서가 유효한지 확인한다.
  701. var formYn = ds_temp_formyn.getColumn(0,"formyn");
  702. if(formYn == "Y"){
  703. btn_tranprnt.visible = true;
  704. }
  705. else{
  706. btn_tranprnt.visible = false;
  707. }
  708. dsf_deleteDs("ds_send_formyn");
  709. dsf_deleteDs("ds_temp_formyn");
  710. }
  711. else{ // submit TRMMR02912 실패할 경우
  712. btn_tranprnt.visible = false;
  713. }
  714. } else { // 인증저장이 아닌경우
  715. btn_tranprnt.visible = false;
  716. }
  717. }else{ //응급실 전원 소견서가 아닌경우
  718. btn_tranprnt.visible = false;
  719. }
  720. if(issstat == "R"){ //임시인 경우, 재발행, 재출력, 발행 disabled
  721. grp_base.btn_reiss.enable = false;
  722. grp_base.btn_iss.enable = false;
  723. grp_base.btn_reprnt.enable = false;
  724. btn_del.enable = true;
  725. } else { //인증인 경우
  726. if(issflag == "10"){ //미발행, 발행 enabled
  727. grp_base.btn_iss.enable = true;
  728. grp_base.btn_reiss.enable = false;
  729. grp_base.btn_reprnt.enable = false;
  730. btn_del.enable = true;
  731. }else if(issflag == "20"){ //발행, 재발행, 재출력 enabled
  732. grp_base.btn_iss.enable = false;
  733. grp_base.btn_reiss.enable = true;
  734. grp_base.btn_reprnt.enable = true;
  735. btn_del.enable = false;
  736. }else if(issflag == "30"){ //재발행, 재출력 enabled
  737. grp_base.btn_iss.enable = false;
  738. grp_base.btn_reiss.enable = false;
  739. grp_base.btn_reprnt.enable = true;
  740. btn_del.enable = false;
  741. }else if(issflag == "50"){ //반환인 경우
  742. grp_base.btn_iss.enable = true;
  743. grp_base.btn_reiss.enable = false;
  744. grp_base.btn_reprnt.enable = false;
  745. btn_del.enable = true;
  746. }else if(issflag == "60"){ //부분반환인 경우 2014.01.14
  747. grp_base.btn_iss.enable = false;
  748. grp_base.btn_reiss.enable = true;
  749. grp_base.btn_reprnt.enable = true;
  750. btn_del.enable = false;
  751. }
  752. }
  753. if(formrecseq != 0){
  754. // grp_base.ivw_loader.url = "";
  755. // grp_base.ivw_loader.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  756. ds_temp.setColumn(0, "openmode", "rec");
  757. ds_cond_formdata.clearData();
  758. ds_cond_formdata.addRow();//"1100012297"
  759. ds_cond_formdata.setColumn(0, "formcd", formrecseq);
  760. ds_cond_formdata.setColumn(0, "formkind", "rec");
  761. ds_cond_formdata.setColumn(0, "btnvisible", "false");
  762. ds_cond_formdata.setColumn(0, "pid", pid);
  763. ds_cond_formdata.setColumn(0, "orddd", orddd);
  764. ds_cond_formdata.setColumn(0, "cretno", cretno);
  765. var objArg = new Object();
  766. objArg.ds_cond_formdata = ds_cond_formdata;
  767. lf_loadSMMMR01100(false, objArg, path);
  768. // 전원소견서(0000002536), 응급실 전원소견서(0000003129) 일때 전원의뢰정보가 있는 경우 셋팅해줌. 하드코드(8900) (2010.06.14. 이은영 추가)
  769. if (formcd == "0000002536" || formcd == "0000003129") {
  770. fSetChngHospInfo(pid, formcd, formrecseq);
  771. }
  772. }
  773. }
  774. /**
  775. * @desc : 제증명 서식 트리 작성
  776. * @
  777. * @param :
  778. * @return :
  779. * @author : HIT EMR Team
  780. * @---------------------------------------------------
  781. */
  782. function fGetProfForm(){///
  783. dsf_createDsRow("ds_send_reqdata", [{col:"formprogflag", type:"string", size:256, val:"PROF"}]);
  784. var oParam = {};
  785. oParam.id = "TRMMR02903";
  786. oParam.service = "medirecapp.ExtnMediRec";
  787. oParam.method = "reqGetProfForm";
  788. oParam.inds = "req=ds_send_reqdata";
  789. oParam.outds = "ds_main_profform_list=profformlist";
  790. oParam.async = false;
  791. tranf_submit(oParam);
  792. }
  793. /**
  794. * @desc : 출력내역 정보 조회
  795. *
  796. * @param :
  797. * @return :
  798. * @author : HIT EMR Team
  799. * @---------------------------------------------------
  800. */
  801. function fGetProfPrntHist(){
  802. if(utlf_isNull(ds_main_patinfo.getColumn(0,"pid"))){
  803. sysf_messageBox("환자를", "C001");
  804. return;
  805. }
  806. // sysf_trace("18 "+ ds_main_patinfo.getColumn(0,"pid") +" "+ ds_main_srchprofhist.getColumn(0,"fromdd") +" "+ ds_main_srchprofhist.getColumn(0,"todd") +" "+ds_main_newprof.getColumn(0,"formnm")
  807. // +" "+ ds_main_srchprofhist.getColumn(0,"issflag") +" "+ ds_main.getColumn(0, "selectdept"));
  808. dsf_createDsRow("ds_send_reqdata"
  809. ,[{col: "pid" , val: ds_main_patinfo.getColumn(0, "pid")}
  810. , {col: "fromdd" , val: ds_main_srchprofhist.getColumn(0,"fromdd")}
  811. , {col: "todd" , val: ds_main_srchprofhist.getColumn(0,"todd")}
  812. , {col: "formcd" , val: ds_main_newprof.getColumn(0,"formnm")}
  813. , {col: "issflag" , val: ds_main_srchprofhist.getColumn(0,"issflag")}
  814. , {col: "deptcd" , val: ds_main.getColumn(0, "selectdept")} // 141021 - AYS 추가
  815. , {col: "issstat" , val: ""}
  816. , {col: "allsrchflag" , val: ""}]);
  817. //20100621-kys-작성기간포함여부 추가
  818. if(ds_main_srchprofhist.getColumn(0,"allsrchflag") == "true"){
  819. ds_send_reqdata.setColumn(0, "allsrchflag", "N"); //작성기간으로 이력조회
  820. }else{
  821. ds_send_reqdata.setColumn(0, "allsrchflag", "Y"); //모든제증명 이력조회
  822. }
  823. //2009-09-01 오전 9:55:40 강지훈수정 : 하드코딩정보 변경
  824. var userDept = sysf_getUserInfo("dutplcecd");
  825. if(0 < ds_init_editabledeptcd.getCaseCount("hardcd =='"+ userDept +"'")){ //제증명 출력부서 : 하드코딩테이블에서 관리함 9906
  826. ds_send_reqdata.setColumn(0, "issstat", "R");
  827. }
  828. ds_main_profhist.clearData();
  829. var oParam = {};
  830. oParam.id = "TRMMR02904";
  831. oParam.service = "medirecapp.ExtnMediRec";
  832. oParam.method = "reqGetProfHist";
  833. oParam.inds = "req=ds_send_reqdata";
  834. oParam.outds = "ds_main_profhist=profhist";
  835. oParam.async = false;
  836. oParam.callback = "cf_TRMMR02904";
  837. tranf_submit(oParam);
  838. if(arErrorCode.pop("TRMMR02904") > -1){
  839. ds_main_profhist.rowposition = -1;
  840. //ds_send_reqdata.clearData();
  841. }
  842. }
  843. function fColDisableChk_new(currow,col){///
  844. var bEnable = "default";
  845. /*제증명 이력에서 발행일자가 3년이상 지난것은 붉은 색으로 표기 / 원무과 요청*/
  846. var basedd = utlf_getCurrentDate().toDate().getAddDate(-36,'M').getDateFormat();
  847. if( ds_main_profhist.getColumn(currow,"issdt") <= basedd ){
  848. bEnable = "#ff0000ff";
  849. return bEnable;
  850. }else{
  851. bEnable = "default";
  852. return bEnable;
  853. }
  854. }
  855. /**
  856. * @desc : 제증명 즐겨찾기 셋팅
  857. *
  858. * @param :
  859. * @return :
  860. * @author : HIT EMR Team
  861. * @---------------------------------------------------
  862. */
  863. function fSetFavorProf(){
  864. dsf_copyDs(ds_send_reqdata, ds_main_favor_savedata);
  865. dsf_setTypeFormat(ds_send_reqdata, "supitemindxseq:INT");
  866. var oParam = {};
  867. oParam.id = "TXMMR02902";
  868. oParam.service = "medirecapp.ExtnMediRec";
  869. oParam.method = "reqSetFavorItem";
  870. oParam.inds = "req=ds_send_reqdata";
  871. oParam.outds = "ds_main_favor=favorCnt";
  872. oParam.async = false;
  873. tranf_submit(oParam);
  874. }
  875. /**
  876. * @desc : 즐겨찾기 리스트 조회
  877. *
  878. * @param :
  879. * @return :
  880. * @author : HIT EMR Team
  881. * @---------------------------------------------------
  882. */
  883. function fGetFavorList(){///
  884. utlf_addLog("***** fGetFavorList 즐겨찾기 리스트 조회 *****");
  885. // grp_base.ivw_loader.url = "emr_medirecxp::SMMMR00000_Empty.xfdl";
  886. // grp_base.ivw_loader.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  887. ds_send_reqdata.clear();
  888. dsf_makeValue(ds_send_reqdata,"indxflag","string", "I");
  889. dsf_makeValue(ds_send_reqdata,"userid", "string", sysf_getUserInfo("userid"));
  890. var oParam = {};
  891. oParam.id = "TRMMR02905";
  892. oParam.service = "medirecapp.ExtnMediRec";
  893. oParam.method = "reqGetFavorList";
  894. oParam.inds = "req=ds_send_reqdata";
  895. oParam.outds = "ds_main_favorlist_list=favorlist";
  896. oParam.async = false;
  897. tranf_submit(oParam);
  898. for(var i=ds_main_favorlist_list.rowcount; i>=0; i--) {
  899. if(ds_main_favorlist_list.getColumn(i, "depth") < 3) {
  900. grp_base.swc_prof.case2.trv_favor.setTreeStatus(i,true); // 펼치기
  901. }
  902. }
  903. ds_main_favorlist_list.rowposition = -1;
  904. }
  905. /**
  906. * @desc : 정보 저장
  907. *
  908. * @param :
  909. * @return :
  910. * @author : HIT EMR Team
  911. * @---------------------------------------------------
  912. */
  913. function fSaveRec(saveflag)
  914. {///
  915. if (fSaveChk() == "false" ) return;
  916. var successflag = "";
  917. grp_base.ivw_loader.gSubmitSaveFlag = false;
  918. var iRow = ds_main_profhist.rowposition;
  919. if(saveflag == "I"){ //인증저장
  920. var userDept = sysf_getUserInfo("dutplcecd");
  921. if(0 < ds_init_editabledeptcd.getCaseCount("hardcd =='"+ userDept +"'")){//확인필요 인증저장 제외부서 : 하드코딩테이블에서 관리함 9906
  922. frmf_setParameter("SSMMR01100_nonCert", "Y");
  923. }
  924. frmf_setParameter("chkdeptpresave", "N");
  925. successflag = grp_base.ivw_loader.fClickSave("Y");
  926. } else if(saveflag == "R"){ //임시저장
  927. frmf_setParameter("chkdeptpresave", "N");
  928. successflag = grp_base.ivw_loader.fClickSave("N");
  929. }
  930. if (frmf_getParameter("SMMMR02900_saveerr") == "Y"){
  931. frmf_clearParameter("SMMMR02900_saveerr");
  932. sysf_messageBox("저장되지", "E007");//않았습니다.
  933. return;
  934. } else {
  935. frmf_clearParameter("SMMMR02900_saveerr");
  936. }
  937. //2010.02.24 dhkim - blocking 메세지후에 리턴처리
  938. if(successflag == false){
  939. return;
  940. }
  941. fSetRec();
  942. fSetProf(saveflag);
  943. if( degnseqchk == "N"){
  944. return;
  945. }
  946. if(saveflag == "I"){
  947. if(ds_main_newprof.getColumn(0,"signedyn") == "N"){
  948. return;
  949. }
  950. ds_main_newprof.setColumn(0,"issstat", saveflag);
  951. }
  952. // KNUH_20101207_박성호_start_의무기록 부서코드 가져오기
  953. var dutplcecd = sysf_getUserInfo("dutplcecd");
  954. if(utlf_isNull(ds_init_dutplcecd.lookup("hardcd", dutplcecd, "hardcd"))){
  955. dsf_makeValue(ds_main_newprof,"orddeptcd", sysf_getUserInfo("dutplcecd"));
  956. }
  957. //2009-07-20 오후 1:27:10 강지훈 수정 : 용도가 누락되는 오류 수정
  958. // var issusge111 = instance1.selectSingleNode("/root/main/issusge");
  959. var issusge = ds_main.getColumn(0,"issusge");
  960. if(!utlf_isNull(issusge)){
  961. issusge = issusge.split("▩");
  962. var prstusge = issusge[1].split("▦");
  963. ds_main_newprof.setColumn(0,"prstusge" , prstusge[0]);
  964. }
  965. else{
  966. ds_main_newprof.deleteColumn("prstusge");
  967. dsf_makeValue(ds_main_newprof, "prstusge", "string", "");
  968. }
  969. //연명진료분류 입력
  970. dsf_makeValue(ds_main_newprof,"kind","string",frmf_getParameter("SPMRI09010_kind"));
  971. frmf_setParameter("SPMRI09010_kind","");
  972. dsf_copyDs(ds_send_reqdata_prof, ds_main_newprof,"replace");
  973. if(ds_main_newprof.getColumn(0,"status") == "U"){
  974. dsf_copyDs(ds_send_reqdata_profinfo, ds_savedinfo_profcretseqinfo,"append");
  975. dsf_createDsRow("ds_send_reqdata_rsltmsg", [{col:"rsltmsg", type:"string", size:256, val:dsf_getDsCSV(ds_savedinfo_rsltmsg)}]);
  976. }
  977. /*
  978. sysf_trace(ds_send_reqdata_prof.saveXML());
  979. sysf_trace(ds_send_reqdata_issusge.saveXML());
  980. sysf_trace(ds_send_reqdata_profinfo.saveXML());
  981. sysf_trace(ds_send_reqdata_rsltmsg.saveXML());
  982. sysf_trace(ds_send_reqdata_formrec.saveXML());
  983. sysf_trace(ds_send_reqdata_recitem.saveXML());
  984. */
  985. dsf_setDefaultVal(ds_send_reqdata_prof, "histcd:0");
  986. dsf_setTypeFormat(ds_send_reqdata_prof, "cretno:INT");
  987. dsf_setDefaultVal(ds_send_reqdata_recitem, "degnitemlevlno:1,supdegnitemno:0");
  988. //dsf_setTypeFormat(ds_send_reqdata_recitem, "recitemno:INT^degnitemno:INT^degnitemlevlno:INT^supdegnitemno:INT");
  989. var oParam = {};
  990. oParam.id = "TXMMR02903";
  991. oParam.service = "medirecapp.ExtnMediRec";
  992. oParam.method = "reqSetProfData";
  993. oParam.inds = "prof=ds_send_reqdata_prof issusge=ds_send_reqdata_issusge profinfo=ds_send_reqdata_profinfo rsltmsg=ds_send_reqdata_rsltmsg formrec=ds_send_reqdata_formrec recitem=ds_send_reqdata_recitem";
  994. oParam.outds = "ds_savedinfo_rsltmsg=rsltmsg ds_savedinfo_profcertseqinfo=profcertseqinfo";
  995. oParam.async = false;
  996. oParam.callback = "cf_TXMMR02903";
  997. tranf_submit(oParam);
  998. if(arErrorCode.pop("TXMMR02903") > -1){
  999. var rsltNodeCnt = ds_savedinfo_rsltmsg.rowcount;
  1000. for(var i = 0; i < rsltNodeCnt; i++){
  1001. if(!utlf_isNull(ds_savedinfo_rsltmsg.getColumn(i,"formrecseq"))){
  1002. var formrecseq = ds_savedinfo_rsltmsg.getColumn(i,"formrecseq");
  1003. var rechistseq = ds_savedinfo_rsltmsg.getColumn(i,"rechistseq");
  1004. var espiseq = ds_savedinfo_rsltmsg.getColumn(i,"espiseq");
  1005. grp_base.ivw_loader.fSetSavedInfo(formrecseq, rechistseq, espiseq);
  1006. }else{
  1007. sysf_messageBox("저장을", "E009"); //*E009=실패하였습니다.
  1008. return;
  1009. }
  1010. }
  1011. sysf_messageBox("성공적으로 저장이", "I002"); //*I002=완료되었습니다.
  1012. var pageInfo = new PAGEINFO();
  1013. //sysf_trace("저장 후 ds_data_formrec"+grp_base.ivw_loader.ds_data_formrec.getColumn(0, "status"));
  1014. ds_main_newprof.setColumn(0,"status", grp_base.ivw_loader.ds_data_formrec.getColumn(0, "status"));
  1015. chk_newiss.value = "";
  1016. //model.resetInstanceNode("/root/main/savedinfo");
  1017. if(ds_temp.getColumn(0,"closeyn") == "Y"){
  1018. return; //창이 닫힐때 호출한 것이면 저장후 return.
  1019. }
  1020. } else {
  1021. sysf_messageBox("저장을", "E009");
  1022. return;
  1023. }
  1024. fSendRecInfoToSMMMO00100(saveflag);
  1025. var yGuideObj = frmf_findPopup("SPMRI09030"); //활성화된 연명진료가이드확인
  1026. if(!utlf_isNull(yGuideObj)) yGuideObj.reLoad();
  1027. //20151008 (#140) 제증명 인증저장시 화면 바로 닫도록 개인화(채의수교수님 요청사항)
  1028. if( saveflag == "I" && ds_envinfo.lookup("qestcd", "068", "answcnt") == "001" ){
  1029. grp_base.ivw_loader.g_recitem_oldrec = grp_base.ivw_loader.fGetCSV("ds_data_recitem");
  1030. this.close();
  1031. }
  1032. btn_inptinfo.visible=false;
  1033. grp_base.swc_prof.tabindex = 2;
  1034. dsf_makeValue(ds_main_newprof,"formnm", "string", "-");
  1035. dsf_makeValue(ds_main,"selectdept", "string", "-"); // 141114 AYS - 추가
  1036. chk_newiss.visible = false;
  1037. ds_temp.setColumn(0,"openmode", "rec");
  1038. fGetProfPrntHist();
  1039. var profcertseq = ds_savedinfo_profcertseqinfo.getColumn(0,"profcertseq");
  1040. var trgtrow = ds_main_profhist.findRow("profcertseq", profcertseq);
  1041. ds_main_profhist.rowposition = trgtrow;
  1042. fLoadProfForm();
  1043. ds_main.deleteColumn("issusge");
  1044. }
  1045. /**
  1046. * @desc : 제증명 정보 세팅
  1047. *
  1048. * @param :
  1049. * @return :
  1050. * @author : HIT EMR Team
  1051. * @---------------------------------------------------
  1052. */
  1053. function fSetProf(saveflag){///
  1054. if(!isValidObject("ds_send_reqdata_prof")) dsf_createDs("ds_send_reqdata_prof");
  1055. fSetProfNode(saveflag);
  1056. return;
  1057. }
  1058. /**
  1059. * @desc : 제증명 노드정보 셋팅
  1060. *
  1061. * @param :
  1062. * @return :
  1063. * @author : HIT EMR Team
  1064. * @---------------------------------------------------
  1065. */
  1066. function fSetProfNode(saveflag){///
  1067. var iRow = ds_main_profhist.rowposition;
  1068. var orddept = ds_main_newprof.getColumn(0,"orddept"); //진료과
  1069. var orddeptcd = ds_main_newprof.getColumn(0,"orddeptcd"); //진료과코드
  1070. var orddoctid = ds_main_newprof.getColumn(0,"orddoctid"); //전문의id
  1071. var doctnm = ds_main_newprof.getColumn(0,"doctnm"); //전문의이름
  1072. var licnsno = ds_main_newprof.getColumn(0,"licnsno"); //면허번호
  1073. //진료과,진료의 정보가 없는 경우는 현재 로그인한 의사로 처리함
  1074. if(utlf_isNull(orddeptcd)){
  1075. orddeptcd = sysf_getUserInfo("dutplcecd");
  1076. }
  1077. if(utlf_isNull(orddoctid)){
  1078. orddoctid = sysf_getUserInfo("userid");
  1079. }
  1080. var sUserDeptCd = sysf_getUserInfo("dutplcecd"); // 사용자 부서코드
  1081. var sUserDeptNm = sysf_getUserInfo("dutplcenm"); // 사용자 부서명
  1082. var sOrdDeptCd = ds_main_patinfo.getColumn(0,"orddeptcd");
  1083. var sIoFlag = ds_main_patinfo.getColumn(0,"ioflag");
  1084. var sJobPosCd = sysf_getUserInfo("jobposcd"); // 사용자 직군
  1085. var sUserId = sysf_getUserInfo ("userid");
  1086. var bNewDeptcd = false;
  1087. utlf_addLog("1164 : " + lf_ContainsHardCD("598", "Y") + " || 568 : " + lf_ContainsHardCD("568", sOrdDeptCd) + " || 568 : " + lf_ContainsHardCD("568", sUserDeptCd));
  1088. if ( ("I" == sIoFlag || "E" == sIoFlag || "D" == sIoFlag) // 외래 제외
  1089. && sOrdDeptCd != sUserDeptCd // 환자의 부서와 로그인 부서가 다른경우
  1090. && lf_ContainsHardCD("598", "Y") // 내과계열 등록부서 사용여부(598)
  1091. && lf_ContainsHardCD("568", sOrdDeptCd) // 환자의 진료과 내과계열 부서(568)
  1092. && lf_ContainsHardCD("568", sUserDeptCd) // 로그인 부서 내과계열 부서(568)
  1093. ) {
  1094. if( sJobPosCd == "1799" // 인턴
  1095. || sJobPosCd == "1800" // 전공의
  1096. || lf_ContainsHardCD("617", sUserId) // 처방 기록 저장 부서 선택 팝업 사용자 (내과계열 전공의 제외)
  1097. ) {
  1098. sUserDeptCd = grp_base.ivw_loader.frmf_getParameter("SPMMB08700_deptcd");
  1099. sUserDeptNm = grp_base.ivw_loader.frmf_getParameter("SPMMB08700_deptnm");
  1100. utlf_addLog("sUserDeptCd : " + sUserDeptCd + " || sUserDeptNm : " + sUserDeptNm );
  1101. if( !utlf_isNull(sUserDeptCd) && !utlf_isNull(sUserDeptNm)){
  1102. bNewDeptcd = true;
  1103. }
  1104. }
  1105. }
  1106. utlf_addLog("bNewDeptcd : " + bNewDeptcd);
  1107. // 인증저장된 제증명을 수정
  1108. // 이력 Tab에서 기록이 미발행이 아닌 상태에서 인증저장을 클릭하면,
  1109. // 새로운 기록으로 추가 된다
  1110. if((saveflag == "I") && (ds_temp.getColumn(0,"openmode") == "rec")
  1111. && (ds_main_profhist.getColumn(iRow,"issflag") != "10")){
  1112. degnseqchk = "Y";
  1113. dsf_createDsRow("ds_send_degnpara", [{col:"instcd", type:"string", size:256, val:sysf_getUserInfo("dutplceinstcd")},
  1114. {col:"formcd", type:"string", size:256, val:ds_send_reqdata_formrec.getColumn(0,"formcd")}]);
  1115. var oParam = {};
  1116. oParam.id = "TRMMR06504";
  1117. oParam.service = "medirecapp.ExtnMediRec";
  1118. oParam.method = "reqGetFormDegnSeqSrch";
  1119. oParam.inds = "req=ds_send_degnpara";
  1120. oParam.outds = "ds_degnseq=item";
  1121. oParam.async = false;
  1122. oParam.callback = "cf_TRMMR06504";
  1123. tranf_submit(oParam);
  1124. if(arErrorCode.pop("TRMMR06504") > -1){
  1125. if( ds_send_reqdata_formrec.getColumn(0,"formdegnseq") != ds_degnseq.getColumn(0,"formdegnseq") ){
  1126. sysf_messageBox("해당 기록의 서식 디자인이 현재 변경되었습니다. \n신규로 작성해주세요.", "E999");
  1127. degnseqchk = "N";
  1128. return;
  1129. }
  1130. }
  1131. dsf_makeValue(ds_main_newprof,"status","string", "C");
  1132. dsf_makeValue(ds_send_reqdata_formrec,"status" , "string", "C");
  1133. dsf_makeValue(ds_send_reqdata_formrec,"pid" , "string", ds_main_patinfo.getColumn(0,"pid"));
  1134. dsf_makeValue(ds_send_reqdata_formrec,"orddd" , "string", ds_main_patinfo.getColumn(0,"orddd"));
  1135. dsf_makeValue(ds_send_reqdata_formrec,"cretno" , "string", ds_main_patinfo.getColumn(0,"cretno"));
  1136. dsf_makeValue(ds_send_reqdata_formrec,"ioflag" , "string", ds_main_patinfo.getColumn(0,"ioflag"));
  1137. dsf_makeValue(ds_send_reqdata_formrec,"orddeptcd" , "string", bNewDeptcd==true ? sUserDeptCd : ds_main_patinfo.getColumn(0,"orddeptcd"));
  1138. dsf_makeValue(ds_send_reqdata_formrec,"formrecdeptcd" , "string", bNewDeptcd==true ? sUserDeptCd : sysf_getUserInfo("dutplcecd"));
  1139. dsf_makeValue(ds_send_reqdata_formrec,"formrecdeptnm" , "string", bNewDeptcd==true ? sUserDeptNm : sysf_getUserInfo("dutplcenm"));
  1140. dsf_makeValue(ds_send_reqdata_formrec,"formrecuserid" , "string", sysf_getUserInfo("userid"));
  1141. dsf_makeValue(ds_send_reqdata_formrec,"formrecusernm" , "string", sysf_getUserInfo("usernm"));
  1142. } else {
  1143. degnseqchk = "Y";
  1144. dsf_makeValue(ds_main_newprof,"status", "string", ds_send_reqdata_formrec.getColumn(0,"status"));
  1145. }
  1146. dsf_makeValue(ds_main_newprof,"pid" , "string", ds_main_patinfo.getColumn(0,"pid"));
  1147. dsf_makeValue(ds_main_newprof,"orddd" , "string", ds_main_patinfo.getColumn(0,"orddd"));
  1148. dsf_makeValue(ds_main_newprof,"cretno" , "string", ds_main_patinfo.getColumn(0,"cretno"));
  1149. dsf_makeValue(ds_main_newprof,"ioflag" , "string", ds_main_patinfo.getColumn(0,"ioflag"));
  1150. dsf_makeValue(ds_main_newprof,"instcd" , "string", sysf_getUserInfo("dutplceinstcd"));
  1151. dsf_makeValue(ds_main_newprof,"orddeptcd" , "string", bNewDeptcd==true ? sUserDeptCd : ds_main_patinfo.getColumn(0,"orddeptcd"));
  1152. dsf_makeValue(ds_main_newprof,"formcd" , "string", ds_main.getColumn(0,"formcd"));
  1153. if( grp_base.swc_prof.tabindex == 2 ){
  1154. dsf_makeValue(ds_main_newprof,"formrecseq", "string", ds_main_profhist.getColumn(iRow, "formrecseq"));
  1155. dsf_makeValue(ds_main_newprof,"yearseqno" , "string", ds_main_profhist.getColumn(iRow, "yearseqno"));
  1156. dsf_makeValue(ds_main_newprof,"issstat" , "string", ds_main_profhist.getColumn(iRow, "issstat"));
  1157. var userDept = sysf_getUserInfo("dutplcecd");
  1158. //제증명 출력부서 : 하드코딩테이블에서 관리함 9906
  1159. if(0 < ds_init_editabledeptcd.getCaseCount("hardcd =='"+ userDept +"'") ){
  1160. dsf_makeValue(ds_main_newprof,"issid" , "string", ds_main_profhist.getColumn(iRow, "issid"));
  1161. dsf_makeValue(ds_main_newprof,"issdeptcd", "string", ds_main_profhist.getColumn(iRow, "issdeptcd"));
  1162. dsf_makeValue(ds_main_newprof,"issflag" , "string", ds_main_profhist.getColumn(iRow, "issflag"));
  1163. } else {
  1164. dsf_makeValue(ds_main_newprof,"issid" , "string", orddoctid);
  1165. dsf_makeValue(ds_main_newprof,"issdeptcd", "string", bNewDeptcd==true ? sUserDeptCd : orddeptcd);
  1166. dsf_makeValue(ds_main_newprof,"issflag" , "string", "10");
  1167. //마지막 수정의사의 면허번호, 의사명, 의사라이센스가 들어간다.
  1168. dsf_makeValue(ds_main_newprof,"orddoctid" , "string", sysf_getUserInfo("userid"));
  1169. dsf_makeValue(ds_main_newprof,"doctnm" , "string", sysf_getUserInfo("usernm"));
  1170. dsf_makeValue(ds_main_newprof,"licnsno" , "string", sysf_getUserInfo("licnsno"));
  1171. }
  1172. dsf_makeValue(ds_savedinfo_profcretseqinfo,"profseq", "string", ds_main_profhist.getColumn(iRow, "profcertseq"));
  1173. } else {
  1174. dsf_makeValue(ds_main_newprof,"formrecseq", "string", ds_savedinfo_rsltmsg.getColumn(0,"formrecseq"));
  1175. dsf_makeValue(ds_main_newprof,"issid" , "string", orddoctid);
  1176. dsf_makeValue(ds_main_newprof,"issdeptcd" , "string", bNewDeptcd==true ? sUserDeptCd : orddeptcd);
  1177. dsf_makeValue(ds_main_newprof,"issflag" , "string", "10");
  1178. if(saveflag == "I"){
  1179. dsf_makeValue(ds_main_newprof,"issstat", "string", saveflag);
  1180. } else {
  1181. dsf_makeValue(ds_main_newprof,"issstat", "string", "R");
  1182. }
  1183. }
  1184. var issusge = ds_main.getColumn(0,"issusge");
  1185. if(!utlf_isNull(issusge)){
  1186. issusge = issusge.split("▩");
  1187. var prstusge = issusge[1].split("▦");
  1188. dsf_makeValue(ds_main_newprof,"prstusge" , "string", prstusge[0]);
  1189. }
  1190. dsf_makeValue(ds_main_newprof,"issdt" , "string", utlf_getCurrentDate() + utlf_getCurrentTime());
  1191. dsf_makeValue(ds_main_newprof,"deluserid" , "string", "");
  1192. dsf_makeValue(ds_main_newprof,"deldt" , "string", "");
  1193. dsf_makeValue(ds_main_newprof,"prntuserid" , "string", "");
  1194. dsf_makeValue(ds_main_newprof,"prntdeptcd" , "string", "");
  1195. dsf_makeValue(ds_main_newprof,"prntdt" , "string", "");
  1196. dsf_makeValue(ds_main_newprof,"prntuserid" , "string", "");
  1197. dsf_makeValue(ds_main_newprof,"freeissresn" , "string", "");
  1198. dsf_makeValue(ds_main_newprof,"fstrgstrid" , "string", sysf_getUserInfo("userid"));
  1199. dsf_makeValue(ds_main_newprof,"fstrgstdt" , "string", utlf_getCurrentDate() + utlf_getCurrentTime());
  1200. dsf_makeValue(ds_main_newprof,"lastupdtrid" , "string", sysf_getUserInfo("userid"));
  1201. dsf_makeValue(ds_main_newprof,"lastupdtdt" , "string", utlf_getCurrentDate() + utlf_getCurrentTime());
  1202. dsf_makeValue(ds_main_newprof,"kind" , "string", frmf_getParameter("SPMRI09010_kind"));
  1203. }
  1204. /**
  1205. * @desc : 기록정보 지정
  1206. *
  1207. * @param :
  1208. * @return :
  1209. * @author : HIT EMR Team
  1210. * @---------------------------------------------------
  1211. */
  1212. function fSetRec(){///
  1213. ds_send_reqdata_recitem.clear();
  1214. ds_send_reqdata_formrec.clear();
  1215. //dsf_copyDs(ds_send_reqdata_formrec, grp_base.ivw_loader.ds_data_formrec,"replace"); //grp_base.ivw_loader.ds_data_formrec
  1216. //dsf_makeValue(ds_send_reqdata_recitem, "recitem", "string",grp_base.ivw_loader.ds_data_recitem ); //grp_base.ivw_loader.ds_data_recitem
  1217. ds_send_reqdata_formrec.copyData(grp_base.ivw_loader.ds_send_saverecinfo_formrec);
  1218. ds_send_reqdata_recitem.copyData(grp_base.ivw_loader.ds_send_saverecinfo_recitem);
  1219. if(ds_main_newprof.getColumn(0,"status") == "U"){
  1220. ds_send_reqdata_formrec.setColumn(0,"status", "U");
  1221. }
  1222. if(chk_newiss.value == "newiss"){
  1223. ds_send_reqdata_formrec.setColumn(0,"status", "C");
  1224. ds_main_newprof.setColumn(0,"status", "C");
  1225. }
  1226. }
  1227. /**
  1228. * @desc : 모달 호출
  1229. *
  1230. * @param :
  1231. * @return :
  1232. * @author : HIT EMR Team
  1233. * @---------------------------------------------------
  1234. */
  1235. function fCallModal(){///
  1236. var objArg = new Object();
  1237. objArg.arg_ds_temp_prof = ds_main_newprof;
  1238. var rtObj = frmf_modal("SPMMR02200", "SPMMR02200", objArg ,"","", 10, 10, "","","","","","M");
  1239. var issusge = "";
  1240. if( frmf_getParameter("rsltYN") == "Y" ){
  1241. issusge = rtObj.copyInfoDs.getColumn(rtObj.copyInfoDs.rowposition, "reqdata");
  1242. }
  1243. ds_main.setColumn(0, "issusge", issusge);
  1244. //dsf_createDsRow("ds_send_reqdata_issusge", [{col:"issusge", type:"string", size:256, val:ds_main.getColumn(0,"issusge")}]);
  1245. if(ds_send_reqdata.getColumnInfo("issusge") == null){
  1246. ds_send_reqdata.addColumn("issusge", "string");
  1247. }
  1248. ds_send_reqdata.setColumn(0, "issusge", ds_main.getColumn(0, "issusge"));
  1249. }
  1250. /**
  1251. * @desc : 사용여부
  1252. *
  1253. * @param :
  1254. * @return :
  1255. * @author : HIT EMR Team
  1256. * @---------------------------------------------------
  1257. */
  1258. function fPrstUsge(){///
  1259. ds_hidden_issusge_M0332.clear();
  1260. ds_hidden_issusge_M0385.clear();
  1261. appf_getCodeList([{dsNm: "ds_hidden_issusge_M0332", cdGrpId: "M0332"}, {dsNm: "ds_hidden_issusge_M0385", cdGrpId: "M0385"}], true);
  1262. // 2013.12.26 CYW 제증명, 사본발행 용도 공통코드 분리
  1263. //appf_getCodeList([{dsNm: "ds_hidden_issusge_M0385", cdGrpId: "M0385"}], true);
  1264. var isscnt = ds_hidden_issusge_M0385.rowcount;
  1265. for( i = 0 ; i < isscnt ; i++ ){
  1266. dsf_makeValue(ds_hidden_issusge_M0332,"cdid", "string", ds_hidden_issusge_M0385.getColumn(i,"cdid"), i);
  1267. dsf_makeValue(ds_hidden_issusge_M0332,"cdnm", "string", ds_hidden_issusge_M0385.getColumn(i,"cdnm"), i);
  1268. }
  1269. }
  1270. /**
  1271. * @desc : 화면 표현 셋팅
  1272. *
  1273. * @param :
  1274. * @return :
  1275. * @author : HIT EMR Team
  1276. * @---------------------------------------------------
  1277. */
  1278. function fSetDisplay(pid, orddd, cretno, ioflag, disflag, profcertseq, formrecseq, issstat){///
  1279. var fromdd = ((utlf_getCurrentDate()).toDate()).getAddDate(-1, "M");
  1280. ds_main_srchprofhist.setColumn(0,"fromdd", fromdd.getDateFormat());
  1281. ds_main_srchprofhist.setColumn(0,"todd", utlf_getCurrentDate());
  1282. ds_main_patinfo.setColumn(0,"pid" , pid);
  1283. ds_main_patinfo.setColumn(0,"orddd" , orddd);
  1284. ds_main_patinfo.setColumn(0,"cretno" , cretno);
  1285. ds_main_patinfo.setColumn(0,"ioflag" , ioflag);
  1286. grp_base.swc_prof.case3.cmb_profformlist.value = "-";
  1287. grp_base.swc_prof.case3.cmb_selectdept.value = "-";
  1288. fReqGetComnPatOrdInfo(pid);
  1289. fGetProfForm();
  1290. fReqFormlist();
  1291. fPrstUsge();
  1292. grp_base.swc_prof.tabindex = 2;
  1293. if(!utlf_isNull(formrecseq)){
  1294. fGetProfPrntHist();
  1295. if(!utlf_isNull(profcertseq)){
  1296. var iRow = ds_main_profhist.findRow("profcertseq", profcertseq);
  1297. ds_main_profhist.rowposition = iRow;
  1298. fLoadProfForm();
  1299. }
  1300. }
  1301. }
  1302. /**
  1303. * @desc : 즐겨찾기 추가
  1304. *
  1305. * @param :
  1306. * @return :
  1307. * @author : HIT EMR Team
  1308. * @---------------------------------------------------
  1309. */
  1310. function fAddFavor(obj:Grid, e:GridMouseEventInfo){///
  1311. var selectedFormcd = ds_main_profform_list.getColumn(e.row,"formcd");
  1312. if(utlf_isNull(selectedFormcd)){
  1313. return;
  1314. }
  1315. if(e.row > -1 && e.col >-1){
  1316. var selIndx = e.row;
  1317. dsf_createDsRow("ds_main_favor_savedata", [{col:"supitemindxseq", type:"string", size:256, val:ds_main_profform_list.getColumn(selIndx,"supindx")},
  1318. {col:"indxflag", type:"string", size:256, val:"I"},
  1319. {col:"deptcd", type:"string", size:256, val:sysf_getUserInfo("dutplcecd")},
  1320. {col:"userid", type:"string", size:256, val:sysf_getUserInfo("userid")},
  1321. {col:"fstrgstrid", type:"string", size:256, val:sysf_getUserInfo("userid")},
  1322. {col:"fstrgstdt", type:"string", size:256, val:utlf_getCurrentDate()+utlf_getCurrentTime()},
  1323. {col:"lastupdtrid", type:"string", size:256, val:sysf_getUserInfo("userid")},
  1324. {col:"lastupdtdt", type:"string", size:256, val:utlf_getCurrentDate()+utlf_getCurrentTime()}]);
  1325. if(utlf_isNull(selectedFormcd)){
  1326. dsf_makeValue(ds_main_favor_savedata, "linkflag" , "string" , "N");
  1327. dsf_makeValue(ds_main_favor_savedata, "linkcd" , "string" , "");
  1328. } else {
  1329. dsf_makeValue(ds_main_favor_savedata, "linkflag" , "string" , "Y");
  1330. dsf_makeValue(ds_main_favor_savedata, "linkcd" , "string" , selectedFormcd);
  1331. }
  1332. if(e.row < 0 || e.col < 0) return;
  1333. grdf_setSelectedCell(obj, e);
  1334. if (selectedFormcd == "1800020639" ) {
  1335. frmf_setPopupMenuDs( "pmn_popupMenu", [{id: "fSetFavorProf", level: "0", title: "즐겨찾기추가"}
  1336. ,{id: "lf_yexplain", level: "0", title: "연명의료설명서"}
  1337. ]);
  1338. }
  1339. else {
  1340. frmf_setPopupMenuDs( "pmn_popupMenu", [{id: "fSetFavorProf", level: "0", title: "즐겨찾기추가"}
  1341. ]);
  1342. }
  1343. //pmnmouserght.trackPopup(e.screenX,e.screenY);
  1344. pmn_popupMenu.trackPopup(e.screenX,e.screenY);
  1345. } else {
  1346. frmf_initPopupMenu();
  1347. }
  1348. }
  1349. /**
  1350. * @desc : 제증명 즐겨찾기 삭제
  1351. *
  1352. * @param :
  1353. * @return :
  1354. * @author : HIT EMR Team
  1355. * @---------------------------------------------------
  1356. */
  1357. function fDelFavorProf(){///
  1358. var selIndx = ds_main_favorlist_list.rowposition;
  1359. var profItemindx = ds_main_favorlist_list.getColumn(selIndx, "itemindxseq");
  1360. ds_send_reqdata.clear();
  1361. dsf_makeValue(ds_send_reqdata,"itemindxseq", "string" ,profItemindx);
  1362. dsf_makeValue(ds_send_reqdata,"indxflag" , "string" ,"I");
  1363. dsf_makeValue(ds_send_reqdata,"userid" , "string" ,sysf_getUserInfo("userid"));
  1364. dsf_setTypeFormat(ds_send_reqdata, "itemindxseq:INT");
  1365. var oParam = {};
  1366. oParam.id = "TXMMR02904";
  1367. oParam.service = "medirecapp.ExtnMediRec";
  1368. oParam.method = "reqDelFavorProf";
  1369. oParam.inds = "req=ds_send_reqdata";
  1370. oParam.outds = "ds_main_favorlist_list=favorlist";
  1371. oParam.async = false;
  1372. tranf_submit(oParam);
  1373. }
  1374. /**
  1375. * @desc : 생성될 수가데이터를 조합한다.
  1376. *
  1377. * @param :
  1378. * @return :
  1379. * @author : HIT EMR Team
  1380. * @---------------------------------------------------
  1381. */
  1382. function fCalsSorcSave(iRow, calcCnt, freecalcscorcd){///
  1383. var sPassData =
  1384. "savedataflag" //저장자료구분 (2:처방)
  1385. + "▦saveflag" //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1386. + "▦prcpflag" //처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  1387. + "▦inptflag" //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  1388. + "▦pamflag" //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  1389. + "▦diagflag" //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  1390. + "▦prcperrflag" //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1391. + "▦deptcd" //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1392. + "▦deptnm" //부서명 (입력자 또는 로그인한 사용자의 부서명)
  1393. + "▦userid" //사용자ID (입력자 또는 로그인한 사용자ID)
  1394. + "▦usernm" //사용자명 (입력자 또는 로그인한 사용자명)
  1395. + "▦singyn" //전자서명여부
  1396. + "▦pid" //등록번호(원무Key)
  1397. + "▦orddd" //진료일자(원무Key) - 입원일경우는 '-'
  1398. + "▦indd" //입원일자(원무Key) - 외래일경우는 '-'
  1399. + "▦cretno" //생성번호(원무Key)
  1400. + "▦orddeptcd" //진료과(원무)
  1401. + "▦orddrid" //진료의ID(원무)
  1402. + "▦instcd" //기관코드
  1403. + "▦status" //신규(I), DC(C)
  1404. + "▦rowno" //줄번호 (병리 요구)
  1405. + "▦prcpdd" //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  1406. + "▦prcpno" //처방번호 (status가 'I'일 경우 0)
  1407. + "▦prcphistno" //처방이력번호 (status가 'I'일 경우 0)
  1408. + "▦prcpgenrflag" //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  1409. + "▦prcpstatcd" //처방상태 : '000'
  1410. + "▦prcpkindcd" //처방종류 : '20'
  1411. + "▦prcpcd" //처방코드
  1412. + "▦calcscorcd" //수가코드
  1413. + "▦inclprcpcd" //종속처방코드 ('-')
  1414. + "▦inclprcpno" //종속처방번호 (일련번호 - 종속처방코드별로 생성)
  1415. + "▦prcpexecdeptcd" //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  1416. + "▦prcphopedd" //처방희망일자 (처방일자 이전으로 발생불가)
  1417. + "▦prcpqty" //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  1418. + "▦prcpqtyunitflag" //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  1419. + "▦prcptims" //처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  1420. + "▦prcpdayno" //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  1421. + "▦payflagcd" //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  1422. + "▦erprcpflag" //응급처방구분 (Y/N)
  1423. + "▦precureprcpflag" //선처치처방구분 (Y/N)
  1424. + "▦nigtprcpflag" //야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  1425. + "▦portprcpflag" //포터블처방구분 (Y/N)
  1426. + "▦fixprcpflag" //정액처방구분 (Y/N)
  1427. + "▦choiordflag" //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  1428. + "▦anamneflag" //기왕력(증)구분 (Y/N)
  1429. + "▦prcpdirecflag" //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  1430. + "▦angioflagcd" //Angio구분 (코드정의서 M0006 참조) : '-'
  1431. + "▦opansflagcd" //수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  1432. + "▦ansttm" //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  1433. + "▦offictourhealexamflag" //출장검진구분 (Y/N)
  1434. + "▦stemcellflag" //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  1435. + "▦hosinhosoutflag" //원내외구분(건진은 'I', 약이 아닐경우 '-')
  1436. + "▦hosinprcpresncd" //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  1437. + "▦issdeptcd" //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  1438. + "▦prcpauthflag" //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  1439. + "▦prcpinptflag" //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  1440. + "▦prcpsignflag" //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  1441. + "▦oprsrvno" //수술예약번호(0)
  1442. + "▦clincstdyflag" //임상연구구분 (Y/N)
  1443. + "▦clincstdycd" //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  1444. + "▦drugmthdspccd" //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  1445. + "▦prcpdelivefact" //처방전달사항
  1446. + "▦tootfact" //치식 (병리만 사용, 나머지는 '-')
  1447. + "▦matrsetprcpspec" //재료처방내용 ('-') -> 추후정의
  1448. + "▦calcflag" //계산구분 (Y/N)
  1449. + "▦rsrvflag" //예약구분 (Y/N)
  1450. + "▦rsrvdd" //예약일자 ('N'일 경우 '00000000')
  1451. + "▦rsrvtm" //예약시간 ('N'일 경우 '000000')
  1452. + "▦rsrvrid" //예약자ID ('-')
  1453. + "▦execdd" //실시일자 ('00000000')
  1454. + "▦exectm" //실시시간 ('000000')
  1455. + "▦execrid" //실시자ID ('-')
  1456. + "▦direcprcplnkdd" //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  1457. + "▦direcprcplnkno" //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  1458. + "▦ordreqlnkno" //진료의뢰연계번호 (0)
  1459. + "▦testreqlnkno" //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  1460. + "▩";
  1461. var savedataflag = "";
  1462. var saveflag = "";
  1463. var prcpflag = "";
  1464. var inptflag = "";
  1465. var pamflag = "";
  1466. var diagflag = "";
  1467. var prcperrflag = "";
  1468. var deptcd = "";
  1469. var deptnm = "";
  1470. var userid = "";
  1471. var usernm = "";
  1472. var singyn = "";
  1473. var pid = "";
  1474. var orddd = "";
  1475. var indd = "";
  1476. var cretno = "";
  1477. var orddeptcd = "";
  1478. var orddrid = "";
  1479. var instcd = "";
  1480. var status = "";
  1481. var rowno = "";
  1482. var prcpdd = "";
  1483. var prcpno = "";
  1484. var prcphistno = "";
  1485. var prcpgenrflag = "";
  1486. var prcpstatcd = "";
  1487. var prcpkindcd = "";
  1488. var prcpcd = "";
  1489. var calcscorcd = "";
  1490. var inclprcpcd = "";
  1491. var inclprcpno = "";
  1492. var prcpexecdeptcd = "";
  1493. var prcphopedd = "";
  1494. var prcpqty = "";
  1495. var prcpqtyunitflag = "";
  1496. var prcptims = "";
  1497. var prcpdayno = "";
  1498. var payflagcd = "";
  1499. var erprcpflag = "";
  1500. var precureprcpflag = "";
  1501. var nigtprcpflag = "";
  1502. var portprcpflag = "";
  1503. var fixprcpflag = "";
  1504. var choiordflag = "";
  1505. var anamneflag = "";
  1506. var prcpdirecflag = "";
  1507. var angioflagcd = "";
  1508. var opansflagcd = "";
  1509. var ansttm = "";
  1510. var offictourhealexamflag = "";
  1511. var stemcellflag = "";
  1512. var hosinhosoutflag = "";
  1513. var hosinprcpresncd = "";
  1514. var issdeptcd = "";
  1515. var prcpauthflag = "";
  1516. var prcpinptflag = "";
  1517. var prcpsignflag = "";
  1518. var oprsrvno = "";
  1519. var clincstdyflag = "";
  1520. var clincstdycd = "";
  1521. var drugmthdspccd = "";
  1522. var prcpdelivefact = "";
  1523. var tootfact = "";
  1524. var matrsetprcpspec = "";
  1525. var calcflag = "";
  1526. var rsrvflag = "";
  1527. var rsrvdd = "";
  1528. var rsrvtm = "";
  1529. var rsrvrid = "";
  1530. var execdd = "";
  1531. var exectm = "";
  1532. var execrid = "";
  1533. var direcprcplnkdd = "";
  1534. var direcprcplnkno = "";
  1535. var ordreqlnkno = "";
  1536. var testreqlnkno = "";
  1537. for(var i = 0; i < calcCnt; i++){
  1538. savedataflag = "2"; //저장자료구분 (2:처방)
  1539. if((iRow >= 0)&& !utlf_isNull(iRow)){
  1540. saveflag = ds_main_profhist.getColumn(iRow,"ioflag"); //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1541. } else {
  1542. saveflag = ds_main_acptoccinfo.getColumn(0,"otpt_ordtype"); //저장구분 (O:외래, I:입원, E:응급, S:건진)
  1543. }
  1544. prcpflag = "5"; //처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  1545. inptflag = "15"; //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  1546. pamflag = "Y"; //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  1547. diagflag = "N"; //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  1548. prcperrflag = "N"; //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1549. deptcd = sysf_getUserInfo("dutplcecd"); //부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1550. deptnm = sysf_getUserInfo("dutplcenm"); //부서명 (입력자 또는 로그인한 사용자의 부서명)
  1551. userid = sysf_getUserInfo("userid"); //사용자ID (입력자 또는 로그인한 사용자ID)
  1552. usernm = sysf_getUserInfo("usernm"); //사용자명 (입력자 또는 로그인한 사용자명)
  1553. if((iRow >= 0)&&!utlf_isNull(iRow)){
  1554. singyn = "N"; //전자서명여부
  1555. pid = ds_main_profhist.getColumn(iRow,"pid"); //등록번호(원무Key)
  1556. if(saveflag == "O") {
  1557. orddd = ds_main_profhist.getColumn(iRow,"orddd"); //진료일자(원무Key) - 입원일경우는 '-'
  1558. indd = "-"; //입원일자(원무Key) - 외래일경우는 '-'
  1559. } else {
  1560. indd = ds_main_profhist.getColumn(iRow,"orddd");
  1561. orddd = "-";
  1562. }
  1563. cretno = ds_main_profhist.getColumn(iRow,"cretno"); //생성번호(원무Key)
  1564. // KNUH_20110504_수정(환자수진정보로 진료과, 진료의사 셋팅)
  1565. orddeptcd = ds_main_profhist.getColumn(iRow,"orddeptcd"); //진료과(원무)
  1566. orddrid = ds_main_profhist.getColumn(iRow,"orddrid");
  1567. if( ds_send_chngissinfo.getColumn(0,"issvaliinfoflag") == "Y" ){
  1568. if ( !utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddeptcd"))){
  1569. orddeptcd = ds_send_chngissinfo.getColumn(0,"orddeptcd");
  1570. }
  1571. if(!utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddoctid")) ){
  1572. orddrid = ds_send_chngissinfo.getColumn(0,"orddoctid");
  1573. }
  1574. }
  1575. var issdt = ds_main_profhist.getColumn(iRow,"issdt");
  1576. }else{
  1577. singyn = "N"; //전자서명여부
  1578. pid = ds_main_acptoccinfo.getColumn(0,"otpt_pid"); //등록번호(원무Key)
  1579. if(saveflag == "O") {
  1580. orddd = ds_main_acptoccinfo.getColumn(0,"otpt_orddd"); //진료일자(원무Key) - 입원일경우는 '-'
  1581. indd = "-"; //입원일자(원무Key) - 외래일경우는 '-'
  1582. } else {
  1583. indd = ds_main_acptoccinfo.getColumn(0,"otpt_orddd");
  1584. orddd = "-";
  1585. }
  1586. cretno = 0; //생성번호(원무Key)
  1587. orddeptcd = ds_main_acptoccinfo.getColumn(0,"otpt_orddeptcd"); //진료과(원무)
  1588. orddrid = ds_main_acptoccinfo.getColumn(0,"otpt_orddrid");
  1589. }
  1590. instcd = sysf_getUserInfo("dutplceinstcd"); //기관코드
  1591. status = ""; //신규(I), DC(C)
  1592. status = "I";
  1593. rowno = "1"; //줄번호 (병리 요구)
  1594. prcpdd = ""; //처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  1595. if (saveflag == "I"){
  1596. prcpdd = utlf_getCurrentDate();
  1597. } else {
  1598. prcpdd = orddd;
  1599. }
  1600. prcpno = "0"; //처방번호 (status가 'I'일 경우 0)
  1601. prcphistno = "0"; //처방이력번호 (status가 'I'일 경우 0)
  1602. prcpgenrflag = saveflag; //처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  1603. prcpstatcd = "000"; //처방상태 : '000'
  1604. prcpkindcd = "20"; //처방종류 : '20'
  1605. prcpcd = ds_main_calcscorinfo.getColumn(i, "calcscorcd"); //처방코드
  1606. calcscorcd = ds_main_calcscorinfo.getColumn(i, "calcscorcd"); //수가코드
  1607. inclprcpcd = "-"; //종속처방코드 ('-')
  1608. inclprcpno = ""; //종속처방번호 (일련번호 - 종속처방코드별로 생성)
  1609. prcpexecdeptcd = sysf_getUserInfo("dutplcecd"); //처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  1610. prcphopedd = prcpdd; //처방희망일자 (처방일자 이전으로 발생불가)
  1611. prcpqty = "1"; //처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  1612. prcpqtyunitflag = "-"; //처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  1613. prcptims = "1"; //처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  1614. prcpdayno = "1"; //처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  1615. payflagcd = "-"; //급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  1616. erprcpflag = "N"; //응급처방구분 (Y/N)
  1617. precureprcpflag = "N"; //선처치처방구분 (Y/N)
  1618. nigtprcpflag = "N"; //야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  1619. portprcpflag = "N"; //포터블처방구분 (Y/N)
  1620. fixprcpflag = "N"; //정액처방구분 (Y/N)
  1621. choiordflag = "-"; //선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  1622. anamneflag = "N"; //기왕력(증)구분 (Y/N)
  1623. prcpdirecflag = "-"; //처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  1624. angioflagcd = "-"; //Angio구분 (코드정의서 M0006 참조) : '-'
  1625. opansflagcd = "-"; //수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  1626. ansttm = "0000"; //마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  1627. offictourhealexamflag = "N"; //출장검진구분 (Y/N)
  1628. stemcellflag = "N"; //'00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  1629. hosinhosoutflag = "-"; //원내외구분(건진은 'I', 약이 아닐경우 '-')
  1630. hosinprcpresncd = "00"; //원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  1631. issdeptcd = "-"; //발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  1632. prcpauthflag = "5"; //처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  1633. prcpinptflag = "15"; //처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  1634. prcpsignflag = "0"; //처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  1635. oprsrvno = "0"; //수술예약번호(0)
  1636. clincstdyflag = "N"; //임상연구구분 (Y/N)
  1637. clincstdycd = "-"; //임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  1638. drugmthdspccd = "-"; //투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  1639. prcpdelivefact = "-"; //처방전달사항
  1640. tootfact = "-"; //치식 (병리만 사용, 나머지는 '-')
  1641. matrsetprcpspec = "-"; //재료처방내용 ('-') -> 추후정의
  1642. calcflag = "N"; //계산구분 (Y/N)
  1643. rsrvflag = "N"; //예약구분 (Y/N)
  1644. rsrvdd = "00000000"; //예약일자 ('N'일 경우 '00000000')
  1645. rsrvtm = "000000"; //예약시간 ('N'일 경우 '000000')
  1646. rsrvrid = "-"; //예약자ID ('-')
  1647. execdd = utlf_getCurrentDate(); //실시일자 ('00000000')
  1648. exectm = utlf_getCurrentTime(); //실시시간 ('000000')
  1649. execrid = sysf_getUserInfo("userid"); //실시자ID ('-')
  1650. direcprcplnkdd = "00000000"; //지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  1651. direcprcplnkno = "0"; //지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  1652. ordreqlnkno = "0"; //진료의뢰연계번호 (0)
  1653. testreqlnkno = "0"; //검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  1654. sPassData = sPassData
  1655. + savedataflag //savedataflag 저장자료구분 (2:처방)
  1656. + "▦" + saveflag //saveflag" 저장구분 (O:외래, I:입원, E:응급, S:건진)
  1657. + "▦" + prcpflag //prcpflag" 처방구분 (코드정의서 M0035 참조 '0'을 제외한 해당 값을 넣어주세요...)
  1658. + "▦" + inptflag //inptflag" 입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  1659. + "▦" + pamflag //pamflag" 원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  1660. + "▦" + diagflag //diagflag" 진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  1661. + "▦" + prcperrflag //prcperrflag" 처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1662. + "▦" + deptcd //deptcd" 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  1663. + "▦" + deptnm //deptnm" 부서명 (입력자 또는 로그인한 사용자의 부서명)
  1664. + "▦" + userid //userid" 사용자ID (입력자 또는 로그인한 사용자ID)
  1665. + "▦" + usernm //usernm" 사용자명 (입력자 또는 로그인한 사용자명)
  1666. + "▦" + singyn //singyn" 전자서명여부
  1667. + "▦" + pid //pid" 등록번호(원무Key)
  1668. + "▦" + orddd //orddd" 진료일자(원무Key) - 입원일경우는 '-'
  1669. + "▦" + indd //indd" 입원일자(원무Key) - 외래일경우는 '-'
  1670. + "▦" + cretno //cretno" 생성번호(원무Key)
  1671. + "▦" + orddeptcd //orddeptcd" 진료과(원무)
  1672. + "▦" + orddrid //orddrid" 진료의ID(원무)
  1673. + "▦" + instcd //instcd" 기관코드
  1674. + "▦" + status //status" 신규(I), DC(C)
  1675. + "▦" + rowno //rowno" 줄번호 (병리 요구)
  1676. + "▦" + prcpdd //prcpdd" 처방일자(외래/종건은 orddd와 동일, 입원은 처방일자)
  1677. + "▦" + prcpno //prcpno" 처방번호 (status가 'I'일 경우 0)
  1678. + "▦" + prcphistno //prcphistno" 처방이력번호 (status가 'I'일 경우 0)
  1679. + "▦" + prcpgenrflag //prcpgenrflag" 처방발생구분(원무) - O:외래, I:입원, E:응급, S:건진
  1680. + "▦" + prcpstatcd //prcpstatcd" 처방상태 : '000'
  1681. + "▦" + prcpkindcd //prcpkindcd" 처방종류 : '20'
  1682. + "▦" + prcpcd //prcpcd" 처방코드
  1683. + "▦" + calcscorcd //calcscorcd" 수가코드
  1684. + "▦" + inclprcpcd //inclprcpcd" 종속처방코드 ('-')
  1685. + "▦" + inclprcpno //inclprcpno" 종속처방번호 (일련번호 - 종속처방코드별로 생성)
  1686. + "▦" + prcpexecdeptcd //prcpexecdeptcd" 처방실시부서코드 (수가의 접수부서를 넣어 주거나, 접수하는 부서코드, 없을 경우 '-'로 처리)
  1687. + "▦" + prcphopedd //prcphopedd" 처방희망일자 (처방일자 이전으로 발생불가)
  1688. + "▦" + prcpqty //prcpqty" 처방수량 (1) (약품일 경우 반드시 포장단위 수량을 넣어 주어야 됨)
  1689. + "▦" + prcpqtyunitflag //prcpqtyunitflag" 처방수량단위 (약품일 경우 '3', 그렇지 않을경우 '-')
  1690. + "▦" + prcptims //prcptims" 처방횟수 (1) (입원일 경우 횟수에 따라 풀림)
  1691. + "▦" + prcpdayno //prcpdayno" 처방일수 (1) (지원부서에서는 주사처방에 대하여 일수를 넣으면 안됨, 넣으면 자료가 문제가 생김)
  1692. + "▦" + payflagcd //payflagcd" 급여구분코드 (M0029 참조) -> '-'로 넣으주면 환자의 보험유형에 따라 자동 발생
  1693. + "▦" + erprcpflag //erprcpflag" 응급처방구분 (Y/N)
  1694. + "▦" + precureprcpflag //precureprcpflag" 선처치처방구분 (Y/N)
  1695. + "▦" + nigtprcpflag //nigtprcpflag" 야간처방구분 (Y/N) : 야간가산에 해당 될 경우
  1696. + "▦" + portprcpflag //portprcpflag" 포터블처방구분 (Y/N)
  1697. + "▦" + fixprcpflag //fixprcpflag" 정액처방구분 (Y/N)
  1698. + "▦" + choiordflag //choiordflag" 선택처방구분 (Y/N) -> 만약 '-'일 경우 원무정보 기준으로 처리
  1699. + "▦" + anamneflag //anamneflag" 기왕력(증)구분 (Y/N)
  1700. + "▦" + prcpdirecflag //prcpdirecflag" 처방방향구분 (코드정의서 M0041 참조), 재활은 위치구분으로 사용 : '-'
  1701. + "▦" + angioflagcd //angioflagcd" Angio구분 (코드정의서 M0006 참조) : '-'
  1702. + "▦" + opansflagcd //opansflagcd" 수술마취구분 (코드정의서 M0007, M0008 참조) : '-'
  1703. + "▦" + ansttm //ansttm" 마취처방에 대한 마취적용시간 - 분을 4자리로 표현, 연속검사 검사간격
  1704. + "▦" + offictourhealexamflag //offictourhealexamflag" 출장검진구분 (Y/N)
  1705. + "▦" + stemcellflag //stemcellflag" '00NNN' 건진청구구분, 조혈모(줄기)세포 구분 - Stem Cell Source 여부 ,Cryo여부, CD34 채집여부, 해동여부의 조합으로 구성
  1706. + "▦" + hosinhosoutflag //hosinhosoutflag" 원내외구분(건진은 'I', 약이 아닐경우 '-')
  1707. + "▦" + hosinprcpresncd //hosinprcpresncd" 원내처방사유 (건진에 해당하는 사유 - 정의, 약이 아닐경우 '00')
  1708. + "▦" + issdeptcd //issdeptcd" 발행부서코드 (집계가 타부서일 경우 타과코드, 입원은 기본이 병동) -> '-' 로 처리하면 자동 처리(기본은 처방입력부서이나 입원은 해당 병동으로 처리)
  1709. + "▦" + prcpauthflag //prcpauthflag" 처방권한구분(0:의사처방화면, 1:의사및간호사공유처방, 2:순수간호처방, 3:지원부서의사처방, 4:기타처방 - 기타 지원부서 추가, 5:계산용원무처방, 6:건진처방 ==> 0,1만 의사처방화면에 보임, 단 3은 추후에 결정)
  1710. + "▦" + prcpinptflag //prcpinptflag" 처방입력구분(저장구분정보의 inptflag와 동일하게 처리)
  1711. + "▦" + prcpsignflag //prcpsignflag" 처방서명구분(0:인증안됨, 1:의사가 후인증, 2:인증완료)
  1712. + "▦" + oprsrvno //oprsrvno" 수술예약번호(0)
  1713. + "▦" + clincstdyflag //clincstdyflag" 임상연구구분 (Y/N)
  1714. + "▦" + clincstdycd //clincstdycd" 임상연구코드 ('-') -> 임상연구구분이 'Y'일 경우 임상연구코드를 등록
  1715. + "▦" + drugmthdspccd //drugmthdspccd" 투여방법및검체코드(약일 경우 복용방법, 진검 및 병리일 경우 검체코드, Default '-')
  1716. + "▦" + prcpdelivefact //prcpdelivefact" 처방전달사항
  1717. + "▦" + tootfact //tootfact" 치식 (병리만 사용, 나머지는 '-')
  1718. + "▦" + matrsetprcpspec //matrsetprcpspec" 재료처방내용 ('-') -> 추후정의
  1719. + "▦" + calcflag //calcflag" 계산구분 (Y/N)
  1720. + "▦" + rsrvflag //rsrvflag" 예약구분 (Y/N)
  1721. + "▦" + rsrvdd //rsrvdd" 예약일자 ('N'일 경우 '00000000')
  1722. + "▦" + rsrvtm //rsrvtm" 예약시간 ('N'일 경우 '000000')
  1723. + "▦" + rsrvrid //rsrvrid" 예약자ID ('-')
  1724. + "▦" + execdd //execdd" 실시일자 ('00000000')
  1725. + "▦" + exectm //exectm" 실시시간 ('000000')
  1726. + "▦" + execrid //execrid" 실시자ID ('-')
  1727. + "▦" + direcprcplnkdd //direcprcplnkdd" 지시처방연계일자 (00000000) -> 지원부서에서 사용 - 원지시처방의 처방일자
  1728. + "▦" + direcprcplnkno //direcprcplnkno" 지시처방연계번호 (0) -> 지원부서에서 사용 - 원지시처방의 실시처방유일번호
  1729. + "▦" + ordreqlnkno //ordreqlnkno" 진료의뢰연계번호 (0)
  1730. + "▦" + testreqlnkno //testreqlnkno" 검사의뢰연계번호 (0) -> 병리와 진단검사 사용
  1731. + "▩";
  1732. }
  1733. dsf_createDs("ds_send_reqdata_rcptlist");
  1734. dsf_setCSVToDs("ds_send_reqdata_rcptlist", sPassData);
  1735. }
  1736. /**
  1737. * @desc
  1738. * 진단서와 매핑된 수가코드 조회 및 제증명 서식에 따라 수가처리
  1739. * 1.상해진단서, 예상치료기간이 21일 이상인 경우, 원본(HCDD022), 사본(HCDD072)
  1740. * 21일 미만인 경우, 원본(HCDD021), 사본(HCDD071)
  1741. * 2.향후 치료비 추정서, 전체 추정합계가 1000만원 이상인 경우, 원본(HCDD020), 사본(HCDD070)
  1742. * 1000만원 미만인 경우, 원본(HCDD019), 사본(HCDD069)
  1743. * 3.무료발급 가능 제증명
  1744. * 3-1. 사체검안서 원본(HCDD018), 사본없음
  1745. * 3-2. 입퇴원확인서 원본(HCDD013), 사본(HCDD064)
  1746. * 3-3. 출생증명서 원본(HCDD010), 사본없음
  1747. *
  1748. * 4.장애진단서
  1749. * @param :
  1750. * @return :
  1751. * @---------------------------------------------------
  1752. */
  1753. function fSrchCalcScor(formcd){
  1754. dsf_createDsRow("ds_send_reqdata_calcscor", [{col:"formcd", type:"string", size:256, val:formcd}
  1755. , {col:"bizflag", type:"string", size:256, val:"PROF"}]);
  1756. ds_main_calcscorinfo.clearData();
  1757. var oParam = {};
  1758. oParam.id = "TRMMR02906";
  1759. oParam.service = "medirecapp.ExtnMediRec";
  1760. oParam.method = "reqGetCalcScorcd";
  1761. oParam.inds = "req=ds_send_reqdata_calcscor";
  1762. oParam.outds = "ds_main_calcscorinfo=calcscorinfo";
  1763. oParam.async = false;
  1764. oParam.callback = "cf_TRMMR02906";
  1765. tranf_submit(oParam);
  1766. if(arErrorCode.pop("TRMMR02906") > -1){
  1767. if(formcd == "0000001455"){ //상해진단서인 경우, 예상치료기간에 따라 수가를 변경
  1768. var caredayno = grp_base.ivw_loader.ivw_base.getFormItemValue("0005910.0000951");
  1769. if(parseInt(caredayno.reccnts) >= 21){ //21일 이상인 경우, 21일 미만의 원본, 사본 수가 삭제
  1770. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == 'HCDD021' && calcscorflag == 'O'"));
  1771. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == 'HCDD071' && calcscorflag == 'C'"));
  1772. }else{ //21일 미만인 경우, 21일 이상의 원본, 사본 수가 삭제
  1773. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == 'HCDD022' && calcscorflag == 'O'"));
  1774. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == 'HCDD072' && calcscorflag == 'C'"));
  1775. }
  1776. }else if(formcd == "0000001522" || formcd == "0800000403"){ //향후 치료비 추정서인 경우, 전체 추정합계에 따라 수가를 변경
  1777. //2008.12.19 치과용 향후 치료비 추정서 추가. 오지훈. 김성진 선생님 오류사항
  1778. var caremoney = grp_base.ivw_loader.ivw_base.getFormItemValue("0000878");
  1779. if(caremoney.reccnts >= 10000000){ //추정합계 천만원 이상인 경우, Y012A 수가변경 2019.06.19 _서재영
  1780. ds_main_calcscorinfo.setColumn(ds_main_calcscorinfo.findRowExpr("calcscorcd == 'Y012A' && calcscorflag == 'O'"), "calcscorcd", "Y012B");
  1781. }
  1782. }else if(formcd == "0900004416"){ //장애진단서(병원서식)인 경우, 장애등급이 "정신지체장애" "발달장애" 인지, 그 이외인지에 따라 수가가 변경 됨
  1783. //2009.12.17 이은영 추가 (의정부 수가코드)
  1784. //장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD111) : 심신장애진단서(정박아) 40000원
  1785. // "정신지체" 이외 해당할 경우, 원본(HCDD110) : 심신장애진단서 15000원
  1786. //2010.01.08 이은영 추가 (서울성모, 성빈센트 수가코드)
  1787. //장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD041) : 심신장애진단서(정박아) 40000원
  1788. // "정신지체" 이외 해당할 경우, 원본(HCDD040) : 심신장애진단서 15000원
  1789. //2010.01.11 이은영 추가 (부천성모 수가코드)
  1790. //장애등급이 "정신지체장애" "발달장애" 에 해당할 경우, 원본(HCDD150) : 심신장애진단서(정박아) 40000원
  1791. // "정신지체" 이외 해당할 경우, 원본(HCDD149) : 심신장애진단서 15000원
  1792. // 기관별 수가코드 정보 가져오기.. 장애진단서 수가코드 ("정신지체" 이외 or "정신지체장애" "발달장애")
  1793. // 9916 : 제증명 장애진단서 수가코드 심신장애진단서
  1794. // 9917 : 제증명 장애진단서 수가코드 심신장애진단서(정박아)
  1795. //mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/handicapcd0", 9916);
  1796. if( !isValidObject("ds_init_handicapcd0")) dsf_createDs("ds_init_handicapcd0");
  1797. lf_getHardCDList("N", 9916, null, ds_init_handicapcd0);
  1798. //mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/init/handicapcd1", 9917);
  1799. if( !isValidObject("ds_init_handicapcd1")) dsf_createDs("ds_init_handicapcd1");
  1800. lf_getHardCDList("N", 9917, null, ds_init_handicapcd1);
  1801. var handicapcd0 = ds_init_handicapcd0.getColumn(0,"hardcd");
  1802. var handicapcd1 = ds_init_handicapcd1.getColumn(0,"hardcd");
  1803. var handicapflag = grp_base.ivw_loader.ivw_base.getFormItemValue("0014563");
  1804. // 2010.01.11 이은영 - 장애등급이 "정신지체장애" "발달장애" 인 경우
  1805. // 2010.05.14 이은영 - 고시 관련 장애등급 "발달장애" 분류가 "지적장애", "자폐성장애" 2가지로 분리되어 추가됨.
  1806. if(handicapflag.rectermcd == "0031782001" || handicapflag.rectermcd == "0035247001" || handicapflag.rectermcd == "0039121001" || handicapflag.rectermcd == "0039126001"){
  1807. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == '" + handicapcd0 + "' && calcscorflag == 'O'"));
  1808. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == '" + handicapcd0 + "' && calcscorflag == 'C'"));
  1809. }else{ //장애등급이 그 이외인 경우
  1810. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == '" + handicapcd1 + "' && calcscorflag == 'O'"));
  1811. ds_main_calcscorinfo.deleteRow(ds_main_calcscorinfo.findRowExpr("calcscorcd == '" + handicapcd1 + "' && calcscorflag == 'C'"));
  1812. }
  1813. }
  1814. //var freeflag = model.getValue("/root/main/freeflag"); //무료구분
  1815. if(grp_base.chk_freeflag.value == "Y"){
  1816. //무료발급부서인 경우 메시지 팝업 안 띄움(20140621)
  1817. var iexNodeCnt = ds_nofee.getCaseCount("hardcd == '" + sysf_getUserInfo("dutplcecd") + "'");
  1818. var rtnval;
  1819. if ( iexNodeCnt > 0 ) {
  1820. rtnval = 6;
  1821. }
  1822. else {
  1823. rtnval = sysf_messageBox("해당 제증명이 무료로 발급", "S001");
  1824. }
  1825. if(rtnval == 6){
  1826. ds_main_calcscorinfo.clearData();
  1827. if(formcd == "0000002841"){ //사체검안서
  1828. ds_send_reqdata_profhist.setColumn(0,"freeissresn", "시신기증자");
  1829. }else if(formcd == "0000001283"){ //입퇴원확인서(진단명포함)
  1830. ds_send_reqdata_profhist.setColumn(0,"freeissresn", "퇴원당일");
  1831. }else if(formcd == "0000001113" || formcd == "1100011102"){ //출생증명서
  1832. ds_send_reqdata_profhist.setColumn(0,"freeissresn", "퇴원당일");
  1833. }else if(formcd == "0000001499"){ //소견서
  1834. dsf_makeValue(ds_send_reqdata_profhist,"freeissresn", "string", "타병원전원");
  1835. }
  1836. }else{
  1837. return false;
  1838. }
  1839. }
  1840. }
  1841. }
  1842. /**
  1843. * @desc : 보고서 데이타 생성
  1844. *
  1845. * @param :
  1846. * @return :
  1847. * @author : HIT EMR Team
  1848. * @---------------------------------------------------
  1849. * 추후 확인필요함.
  1850. */
  1851. function fGetReportData(){///
  1852. var ivwLoader = grp_base.ivw_loader.components["ivw_base"];
  1853. return ivwLoader.xml;
  1854. }
  1855. /**
  1856. * @desc : 존재하는 제증명 검색
  1857. *
  1858. * @param :
  1859. * @return :
  1860. * @author : HIT EMR Team
  1861. * @---------------------------------------------------
  1862. */
  1863. function fExistProf(pid, cretno, orddd, ioflag, formcd, orddeptcd){
  1864. // [요청번호:20160708012] 전원소견서 제어
  1865. var chkprofhist = "N";//lf_CheckPerPrint(formcd);
  1866. //의료급여회송서 요청사항[20190220008]
  1867. if(formcd == "1400015254")
  1868. {
  1869. chkprofhist = "Y";
  1870. }
  1871. dsf_createDsRow("ds_send_reqdata_hist", [{col:"status" , type:"string", size:256, val:"new"},
  1872. {col:"pid" , type:"string", size:256, val:pid},
  1873. {col:"cretno" , type:"string", size:256, val:cretno},
  1874. {col:"orddd" , type:"string", size:256, val:orddd},
  1875. {col:"ioflag" , type:"string", size:256, val:ioflag},
  1876. {col:"formcd" , type:"string", size:256, val:formcd},
  1877. {col:"orddeptcd" , type:"string", size:256, val:orddeptcd},
  1878. {col:"chkprofhist" , type:"string", size:256, val:chkprofhist}]);
  1879. dsf_setTypeFormat(ds_send_reqdata_hist, "cretno:INT");
  1880. var oParam = {};
  1881. oParam.id = "TRMMR02902";
  1882. oParam.service = "medirecapp.ExtnMediRec";
  1883. oParam.method = "reqGetExistData";
  1884. oParam.inds = "req=ds_send_reqdata_hist";
  1885. oParam.outds = "ds_main_existdata=existinfo";
  1886. oParam.async = false;
  1887. oParam.callback = "cf_TRMMR02902";
  1888. tranf_submit(oParam);
  1889. if(arErrorCode.pop("TRMMR02902") > -1){
  1890. ds_send_reqdata_hist.clear();
  1891. return ds_main_existdata.getColumn(0,"existyn");
  1892. } else {
  1893. ds_send_reqdata_hist.clear();
  1894. return 0;
  1895. }
  1896. }
  1897. /**
  1898. * @desc : 저장 될 제증명 세팅
  1899. *
  1900. * @param :
  1901. * @return :
  1902. * @author : HIT EMR Team
  1903. * @---------------------------------------------------
  1904. */
  1905. function fNewRecProf(){
  1906. var orddept = ds_main_newprof.getColumn(0,"orddept"); //진료과명
  1907. var orddoctid = ds_main_newprof.getColumn(0,"orddoctid"); //전문의id
  1908. var doctnm = ds_main_newprof.getColumn(0,"doctnm"); //전문의이름
  1909. var licnsno = ds_main_newprof.getColumn(0,"licnsno"); //면허번호
  1910. var currenttime = utlf_getCurrentDate()+utlf_getCurrentTime();
  1911. var orddeptcd = ds_main_newprof.getColumn(0,"orddeptcd");
  1912. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  1913. var pid = ds_main_patinfo.getColumn(0,"pid");
  1914. var cretno = ds_main_patinfo.getColumn(0,"cretno");
  1915. var orddd = ds_main_patinfo.getColumn(0,"orddd");
  1916. var profformcd = "";
  1917. ds_main_newprof.clearData();
  1918. dsf_makeValue(ds_main,"issusge" ,"string" , "");
  1919. ds_main_newprof.setColumn(0, "orddept", orddept); //진료과명
  1920. ds_main_newprof.setColumn(0, "orddeptcd", orddeptcd); //진료과코드
  1921. ds_main_newprof.setColumn(0, "orddoctid", orddoctid); //전문의ID
  1922. ds_main_newprof.setColumn(0, "doctnm", doctnm); //전문의명
  1923. ds_main_newprof.setColumn(0, "licnsno", licnsno); //면허번호
  1924. if(utlf_isNull(pid)){
  1925. sysf_messageBox("환자정보를", "C001");
  1926. return;
  1927. }
  1928. var nRow = ds_main.rowposition;
  1929. if((grp_base.swc_prof.tabindex == 0) && (utlf_isNull(ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "formcd")))){
  1930. return;
  1931. } else if((grp_base.swc_prof.tabindex == 1) && (utlf_isNull(ds_main_favorlist_list.getColumn(ds_main_favorlist_list.rowposition, "formcd")))){
  1932. return;
  1933. }
  1934. if(grp_base.swc_prof.tabindex == 0){
  1935. profformcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "formcd");
  1936. }
  1937. if(grp_base.swc_prof.tabindex == 1){
  1938. profformcd = ds_main_favorlist_list.getColumn(ds_main_favorlist_list.rowposition, "formcd");
  1939. }
  1940. if(utlf_isNull(profformcd)){
  1941. return;
  1942. }
  1943. // grp_base.ivw_loader.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  1944. dsf_makeValue(ds_send_savedata,"pid","string", pid);
  1945. dsf_makeValue(ds_send_savedata,"formcd", "string",profformcd);
  1946. dsf_makeValue(ds_send_savedata,"issdeptcd", "string",orddeptcd);
  1947. dsf_makeValue(ds_send_savedata,"issid", "string",orddoctid);
  1948. var oParam = {};
  1949. oParam.id = "TRMMR02901";
  1950. oParam.service = "medirecapp.ExtnMediRec";
  1951. oParam.method = "reqGetIssProf";
  1952. oParam.inds = "req=ds_send_savedata";
  1953. oParam.outds = "ds_main_issprofinfo=proflist";
  1954. oParam.async = false;
  1955. oParam.callback = "cf_TRMMR02901";
  1956. tranf_submit(oParam);
  1957. if(arErrorCode.pop("TRMMR02901") > -1){
  1958. var formrecseq = ds_main_issprofinfo.getColumn(0,"formrecseq");
  1959. grp_base.ivw_loader.fLoadRecForm(formrecseq, false);
  1960. if(utlf_isNull(formrecseq)){
  1961. fChosProflist();
  1962. }
  1963. }
  1964. }
  1965. /**
  1966. * @desc : 환자 내역 조회
  1967. *
  1968. * @param :
  1969. * @return :
  1970. * @author : HIT EMR Team
  1971. * @---------------------------------------------------
  1972. */
  1973. function fGetPatHist(){
  1974. var pid = ds_main_patinfo.getColumn(0,"pid");
  1975. if(utlf_isNull(pid)){
  1976. sysf_messageBox("선택된 환자가", "I004");
  1977. return;
  1978. }
  1979. var formcd = "";
  1980. if(grp_base.swc_prof.tabindex == 0){ // 제증명탭
  1981. formcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "formcd");
  1982. }
  1983. else if(grp_base.swc_prof.tabindex == 2){ // 이력탭
  1984. var nRow = ds_main_profhist.rowposition;
  1985. formcd = ds_main_profhist.getColumn(nRow, "formcd");
  1986. }
  1987. else{ // 즐겨찾기탭
  1988. formcd = ds_main_favorlist_list.getColumn(ds_main_favorlist_list.rowposition, "formcd");
  1989. //return;
  1990. }
  1991. frmf_setParameter("SPMMR05500_formcd" , formcd);
  1992. frmf_setParameter("SPMMR05500_pid" , pid);
  1993. frmf_setParameter("SPMMR05500_orddeptcd", ds_main_patinfo.getColumn(0,"orddeptcd"));
  1994. frmf_setParameter("SPMMR05500_savepath" , "ds_hidden_patinfo" );//"/root/hidden/patinfo");
  1995. //2009-08-06 오후 5:36:48 강지훈 수정 : 제증명 수진이력에서 조회했을때는 진료부도건 제외(Y : 제외, N : 포함)
  1996. frmf_setParameter("SPMMR05500_nopay" , "Y");
  1997. frmf_modal("SPMMR05500","SPMMR05500","", 1, 10, 10,"","", "", "", "", "", "M");
  1998. if(frmf_getParameter("SPMMR05500_useyn") == "Y"){
  1999. var ivwCtrl = grp_base.ivw_loader.components["ivw_base"];
  2000. var itemVal = new ITEMVAL();
  2001. if(formcd == "0000002639"){ //통원치료 확인서(진단서 포함)
  2002. itemVal.reccnts = frmf_getParameter("SPMMR05500_msg") + "\n\n상기환자는 상기일자에 통원치료 하였음을 확인합니다.";
  2003. ivwCtrl.setFormItemValue("0005910", itemVal);
  2004. }
  2005. if(formcd == "0000002588"){ //통원치료 확인서(영문)
  2006. itemVal.reccnts = frmf_getParameter("SPMMR05500_msg") + "\n\nI would identify that above patient visited out-patient clinic.";
  2007. ivwCtrl.setFormItemValue("0005910", itemVal);
  2008. }
  2009. if(formcd == "0000001312"){ //외래진료확인서
  2010. itemVal.reccnts = frmf_getParameter("SPMMR05500_msg") + "\n\n상기환자는 상기일자에 외래진료 하였음을 확인합니다.";
  2011. ivwCtrl.setFormItemValue("0005910", itemVal);
  2012. }
  2013. // knuh_20110324_박성호 수정(입원사실확인서(입원중) 추가
  2014. if(formcd == "0000001283" || formcd == "0000001300" || formcd == "1100011101"){ //입퇴원확인서, 입원사실확인서
  2015. itemVal.reccnts = frmf_getParameter("SPMMR05500_msg");
  2016. ivwCtrl.setFormItemValue("0002025", itemVal);
  2017. }
  2018. if(formcd == "0000001457"){ //수술확인서
  2019. itemVal = ivwCtrl.getFormItemValue("0010597");
  2020. itemVal.reccnts += "\n" + frmf_getParameter("SPMMR05500_msg");
  2021. ivwCtrl.setFormItemValue("0010597", itemVal);
  2022. itemVal = ivwCtrl.getFormItemValue("0016684");
  2023. itemVal.reccnts += "\n" + frmf_getParameter("SPMMR05500_opinfo");
  2024. ivwCtrl.setFormItemValue("0016684", itemVal);
  2025. }
  2026. if(formcd == "0000002792"){ //상급병실확인서 (2009.07.27. 추가)
  2027. itemVal = ivwCtrl.getFormItemValue("0002025");
  2028. itemVal.reccnts = frmf_getParameter("SPMMR05500_msg");
  2029. ivwCtrl.setFormItemValue("0002025", itemVal);
  2030. itemVal = ivwCtrl.ivw_base.getFormItemValue("0000965");
  2031. itemVal.reccnts = frmf_getParameter("SPMMR05500_orddeptnm");
  2032. ivwCtrl.setFormItemValue("0000965", itemVal);
  2033. var pid = frmf_getParameter("SPMMR05500_pid");
  2034. var indd = frmf_getParameter("SPMMR05500_indd");
  2035. var cretno = frmf_getParameter("SPMMR05500_cretno");
  2036. ivwCtrl.fGetRoomChargeList(pid, indd, cretno);
  2037. ivwCtrl.fSetPatRoomChargeInfo(pid, indd, cretno);
  2038. }
  2039. if(formcd == "1100012297"){ //진단서
  2040. itemVal = ivwCtrl.getFormItemValue("0012146");
  2041. itemVal.reccnts = frmf_getParameter("SPMMR05500_indd");
  2042. ivwCtrl.setFormItemValue("0012146", itemVal);
  2043. itemVal = ivwCtrl.getFormItemValue("0012149");
  2044. var temp = frmf_getParameter("SPMMR05500_dschdd");
  2045. if(temp == "재원중"){
  2046. itemVal.reccnts = "noneValue";
  2047. ivwCtrl.CAL_66.readonly = false;
  2048. }else{
  2049. itemVal.reccnts = frmf_getParameter("SPMMR05500_dschdd");
  2050. ivwCtrl.CAL_66.readonly = true;
  2051. }
  2052. ivwCtrl.setFormItemValue("0012149", itemVal);
  2053. }
  2054. }
  2055. frmf_setParameter("SPMMR05500_useyn", "N");
  2056. }
  2057. /**
  2058. * @desc : 사용여부 추가
  2059. *
  2060. * @param :
  2061. * @return :
  2062. * @author : HIT EMR Team
  2063. * @---------------------------------------------------
  2064. */
  2065. function fAddIssUsge(){
  2066. if(isValidObject("ds_temp_issusge")) ds_temp_issusge.clear();
  2067. fCallModal();
  2068. var listNode = ds_main.getColumn(0,"issusge");
  2069. dsf_setCSVToDs("ds_temp_issusge", listNode);
  2070. ds_main.setColumn(0,"issusge", "");
  2071. fReqInsAddPrstUsge(); //사용여부 추가 후 이력저장 로직처리
  2072. }
  2073. /****************************************************************************************
  2074. * Function : fEmptyFormPrnt
  2075. * Description : 빈서식 출력
  2076. * Argument : N/A
  2077. * retrun type : N/A
  2078. * Creator :
  2079. ****************************************************************************************/
  2080. function fEmptyFormPrnt(){
  2081. //출력시 호출할 REX report id를 설정
  2082. var ivwCtrl = grp_base.ivw_loader.components["ivw_base"];
  2083. var formcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "formcd");//ds_main.getColumn(0,"formcd");
  2084. var srcformcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "srcformcd");
  2085. if(utlf_isNull(formcd))
  2086. {
  2087. var row = ds_main_profhist.rowposition;
  2088. formcd = ds_main_profhist.getColumn(row,"formcd");
  2089. srcformcd = ds_main_profhist.getColumn(row,"srcformcd");
  2090. }
  2091. if( utlf_isNull(formcd) ){
  2092. sysf_messageBox("제증명 서식을", "C002");
  2093. return;
  2094. }
  2095. // 2016.06.15 전원(회송)소견서 구분
  2096. var nCheckPerPrint = lf_CheckPerPrint(srcformcd);
  2097. dsf_makeValue(ds_send_reqdata,"hardcdno","string", "1114"); // 진단서 발행시 보험유형별로 다르게 출력되는 서식
  2098. ds_main_hardcdlist.clearData();
  2099. var oParam = {};
  2100. oParam.id = "TRMRF03104";
  2101. oParam.service = "formmngtapp.SetIndxMngt";
  2102. oParam.method = "reqGetEmrInfoTeamCd";
  2103. oParam.inds = "req=ds_send_reqdata";
  2104. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  2105. oParam.async = false;
  2106. tranf_submit(oParam);
  2107. var rexid = "";
  2108. if(!utlf_isNull(ds_main_hardcdlist.lookup("trgtcd", formcd ,"trgtcd")))
  2109. {
  2110. if(ds_main_hardcdlist.lookup("trgtcd", formcd ,"trgtcdnm") == "진료의뢰서")
  2111. {
  2112. var hospcd = fGetHospitalCode();
  2113. var insukind = ds_main_result_pathistlist.getColumn(0,"insukind");
  2114. if(insukind == "11" || insukind == "81") // 건강보험인 경우
  2115. {
  2116. var tmpformcd = formcd.substr(5, 5);
  2117. rexid = "RFM" + tmpformcd + "01";
  2118. }
  2119. else // 건강보험이 아닌 경우
  2120. {
  2121. // 환자의 자격을 조회.
  2122. fGetPatInsuranceInfo();
  2123. if(ds_main_patinsuranceinfo.rowcount > 0)
  2124. {
  2125. var proccorpcd = ds_main_patinsuranceinfo.getColumn(0,"proccorpcd"); //등록번호
  2126. var hngnm = ds_main_patinsuranceinfo.getColumn(0,"hngnm"); //환자명
  2127. var qualflag = ds_main_patinsuranceinfo.getColumn(0,"qualflag"); //자격구분
  2128. var hshdnm = ds_main_patinsuranceinfo.getColumn(0,"hshdnm"); //세대주성명
  2129. var secuinstmark = ds_main_patinsuranceinfo.getColumn(0,"secuinstmark"); //보장기관기호
  2130. var estmmark = ds_main_patinsuranceinfo.getColumn(0,"estmmark"); //시설기호(증번호)
  2131. var ownbflag = ds_main_patinsuranceinfo.getColumn(0,"ownbflag"); //본인부담구분
  2132. var choicorpmark1 = ds_main_patinsuranceinfo.getColumn(0,"choicorpmark1"); //선택기관기호1
  2133. var choicorpmark2 = ds_main_patinsuranceinfo.getColumn(0,"choicorpmark2");
  2134. var choicorpmark3 = ds_main_patinsuranceinfo.getColumn(0,"choicorpmark3");
  2135. var choicorpmark4 = ds_main_patinsuranceinfo.getColumn(0,"choicorpmark4");
  2136. var choicorpnm1 = ds_main_patinsuranceinfo.getColumn(0,"choicorpnm1"); //선택기관이름1
  2137. var choicorpnm2 = ds_main_patinsuranceinfo.getColumn(0,"choicorpnm2");
  2138. var choicorpnm3 = ds_main_patinsuranceinfo.getColumn(0,"choicorpnm3");
  2139. var choicorpnm4 = ds_main_patinsuranceinfo.getColumn(0,"choicorpnm4");
  2140. dsf_makeValue(ds_send_reqdata,"hardcdno","string", "1115"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  2141. ds_main_hardcdlist.clearData();
  2142. var oParam = {};
  2143. oParam.id = "TRMRF03104";
  2144. oParam.service = "formmngtapp.SetIndxMngt";
  2145. oParam.method = "reqGetEmrInfoTeamCd";
  2146. oParam.inds = "req=ds_send_reqdata";
  2147. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  2148. oParam.async = false;
  2149. tranf_submit(oParam);
  2150. // 1) 본인부담면제 항목이 비어있거나, 본인부담면제 항목이 있으면서 해당 코드가 M003~M010 -> 의료급여의뢰서: RFM0534002_의료급여의뢰서002.rex
  2151. if(utlf_isNull(ownbflag) || (!utlf_isNull(ownbflag) && !utlf_isNull(ds_main_hardcdlist.lookup("trgtcd", ownbflag , "trgtcd"))))
  2152. {
  2153. var tmpformcd = formcd.substr(5, 5);
  2154. rexid = "RFM" + tmpformcd + "02";
  2155. }
  2156. else
  2157. {
  2158. dsf_makeValue(ds_send_reqdata,"hardcdno","string", "1116"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  2159. ds_main_hardcdlist.clearData();
  2160. var oParam = {};
  2161. oParam.id = "TRMRF03104";
  2162. oParam.service = "formmngtapp.SetIndxMngt";
  2163. oParam.method = "reqGetEmrInfoTeamCd";
  2164. oParam.inds = "req=ds_send_reqdata";
  2165. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  2166. oParam.async = false;
  2167. tranf_submit(oParam);
  2168. if(!utlf_isNull(ds_main_hardcdlist.lookup("trgtcd", ownbflag , "trgtcd")))
  2169. {
  2170. var choicorpmark = "";
  2171. var selected = false;
  2172. for(var idx = 1; idx <= 4; idx++)
  2173. {
  2174. choicorpmark = "";
  2175. switch(idx)
  2176. {
  2177. case 1: choicorpmark = choicorpmark1;
  2178. break;
  2179. case 2: choicorpmark = choicorpmark2;
  2180. break;
  2181. case 3: choicorpmark = choicorpmark3;
  2182. break;
  2183. case 4: choicorpmark = choicorpmark4;
  2184. break;
  2185. }
  2186. if(choicorpmark == hospcd)
  2187. {
  2188. selected = true;
  2189. break;
  2190. }
  2191. }
  2192. // 2) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있는 경우 -> 의료급여의뢰서(선택기관발부용): RFM0534003_의료급여의뢰서003.rex
  2193. if(selected == true)
  2194. {
  2195. var tmpformcd = formcd.substr(5, 5);
  2196. rexid = "RFM" + tmpformcd + "03";
  2197. }
  2198. // 3) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있지 않는 경우 -> 의료급여의뢰서(의뢰진료기관에 "B006"으로 찍힘): RFM0534004_의료급여의뢰서004.rex
  2199. else
  2200. {
  2201. var tmpformcd = formcd.substr(5, 5);
  2202. rexid = "RFM" + tmpformcd + "04";
  2203. }
  2204. }
  2205. }
  2206. }
  2207. else
  2208. {
  2209. sysf_messageBox("환자의 의료자격조회 정보", "E013");
  2210. return;
  2211. }
  2212. }
  2213. }
  2214. }
  2215. else
  2216. {
  2217. //서식 두번째 코드가 8인 경우,
  2218. if(formcd.charAt(1)=="8")
  2219. {
  2220. formcd = formcd.substr(7, 3);
  2221. rexid = "RFM" + "80" + formcd + "00";
  2222. }
  2223. else if (formcd.charAt(0) == "1") // knuh_20110118 추가
  2224. {
  2225. var precd = formcd.substr(0, 2);
  2226. formcd = formcd.substr(5, 5);
  2227. rexid = "RFM" + precd + formcd;
  2228. }
  2229. else
  2230. {
  2231. formcd = formcd.substr(5, 5);
  2232. var rexid = "RFM" + formcd + "00";
  2233. }
  2234. }
  2235. if(ds_main.getColumn(0,"emptyform") == "empty")
  2236. {
  2237. // 병원명, 전화번호, 주소, fax, 요양기관기호
  2238. var instcd = sysf_getUserInfo("dutplceinstcd");
  2239. ds_data_recitem.clearData();
  2240. ds_data_formmast.clearData();
  2241. ds_data_recitem.addRow();
  2242. ds_data_formmast.addRow();
  2243. ds_data_recitem.copyData(grp_base.ivw_loader.ds_data_recitem);
  2244. ds_data_formmast.copyData(grp_base.ivw_loader.ds_data_formmast);
  2245. if(!utlf_isNull(ds_data_docinfo.getColumnInfo("signimge"))){
  2246. //ds_data_docinfo.deleteColumn("signimge");
  2247. ds_data_docinfo.setColumn(0, "signimge", "");
  2248. }
  2249. // 필수 항목으로 등록된 rectermcd를 삭제한다.
  2250. for(var recidx = 0; recidx < ds_data_recitem.rowcount; recidx++)
  2251. {
  2252. if(ds_data_recitem.getColumn(recidx, "rectermcd") != null)
  2253. ds_data_recitem.setColumn(recidx, "rectermcd", "");
  2254. if(ds_data_recitem.getColumn(recidx, "rectermnm") != null)
  2255. ds_data_recitem.setColumn(recidx, "rectermnm", "");
  2256. if(ds_data_recitem.getColumn(recidx, "reccnts") != null)
  2257. ds_data_recitem.setColumn(recidx, "reccnts", "");
  2258. }
  2259. var formcd = grp_base.ivw_loader.ds_data_formmast.getColumn(0, "formcd");
  2260. var langflag = grp_base.ivw_loader.ds_data_formmast.getColumn(0, "langflag");
  2261. //fSetHospInfo(instcd, formcd, langflag);
  2262. var balhang ="Y";
  2263. lf_setHospInfo(instcd, formcd, langflag, balhang);
  2264. var objImgeData = "";
  2265. }else{
  2266. ds_data_recitem.clearData();
  2267. ds_data_recitem.addRow();
  2268. grp_base.ivw_loader.lf_getGenFormData(); //기록데이터 취합
  2269. ds_data_recitem.copyData(grp_base.ivw_loader.ivw_base.ds_data_recitem); //서식지 정보 설정
  2270. //기관직인 이미지 세팅
  2271. var imgcd = "logoimage_"+sysf_getUserInfo("dutplceinstcd");
  2272. var logoimage = sysf_getURLprefix()+"/xpapps/IMAGES/emr/MR/"+imgcd+".png";
  2273. ds_data_docinfo.addColumn("sealimage", "string");
  2274. if(ds_data_docinfo.getRowCount() < 1){
  2275. ds_data_docinfo.addRow();
  2276. }
  2277. ds_data_docinfo.setColumn(0, "sealimage", logoimage);
  2278. var objImgeData = objExtCommon.encodeBase64(ds_data_docinfo.getColumn(0, "signdata"));
  2279. //진단코드 3자리마다 점(.)표시
  2280. ds_data_recitem.filter("degnitemlevlcd=='0016650.0000960.0000960'");
  2281. var totcnt = ds_data_recitem.rowcount;
  2282. ds_data_recitem.filter("");
  2283. for(var i = 0; i < totcnt; i++){
  2284. ds_data_recitem.filter("degnitemlevlcd=='0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  2285. var rectermcd = ds_data_recitem.getColumn(0, "rectermcd");
  2286. ds_data_recitem.filter("");
  2287. rectermcd = removeChar(rectermcd, "."); //점을 제거
  2288. rectermcd = insertChar(rectermcd, ".", 3); // 3개 단위로 점을 입력
  2289. ds_data_recitem.filter("degnitemlevlcd=='0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  2290. ds_data_recitem.setColumn(0, "rectermcd", rectermcd);
  2291. ds_data_recitem.filter("");
  2292. }
  2293. }
  2294. fDoMakeProfPrntInfo(ivwCtrl);
  2295. ///////////////////////////////
  2296. // 2015.11.06 제증명 내 이미지가 존재할 경우 해당 이미지 출력을 위해 recimgetemp column을 생성하여 사용
  2297. var nFindRow = ds_data_recitem.findRowExpr("!utlf_isNull(recimge)");
  2298. if( nFindRow > -1 ){
  2299. if( ds_data_recitem.getColumnInfo("recimgetemp") == null ){
  2300. ds_data_recitem.addColumn("recimgetemp", "string");
  2301. }
  2302. ds_data_recitem.filter("!utlf_isNull(recimge)");
  2303. for( var i=0; i<ds_data_recitem.rowcount; i++){
  2304. var recimgetemp = objExtCommon.encodeBase64(ds_data_recitem.getColumn(i, "recimge"));
  2305. ds_data_recitem.setColumn(i, "recimgetemp", recimgetemp);
  2306. }
  2307. ds_data_recitem.filter("");
  2308. }
  2309. ///////////////////////////////
  2310. var objDOM = rptf_createDOM(); // DOM 객체 설정
  2311. var objDOM1 = rptf_createDOM();
  2312. var objDOM2 = rptf_createDOM();
  2313. var objDOM3 = rptf_createDOM();
  2314. rptf_setNodeListToDOM(objDOM, "/root/main/recinfo/recitem", ds_data_recitem); // 데이터셋 1
  2315. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/sealimage",ds_data_docinfo.getColumn(0, "sealimage")); // 데이터셋 2
  2316. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/signimge", objImgeData); // 데이터셋 3
  2317. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  2318. if( nCheckPerPrint == "Y" && ds_main.getColumn(0,"emptyform") != "empty"){
  2319. lf_getPerSignData();
  2320. //var objSignData = objExtCommon.encodeBase64(ds_persigntemp_memo_memo.getColumn(0, "elctsigncnts"));
  2321. rptf_setValueToDOM(objDOM, "/root/hidden/signinfo/signimge", ds_persigntemp_memo_memo.getColumn(0, "elctsigncnts"));
  2322. }
  2323. if( ds_main.getColumn(0,"emptyform") != "empty" && lf_SetMedispclInfo("IMG") == true ){
  2324. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/mdispclsignimge", objExtCommon.encodeBase64(ds_data_medispclinfo.getColumn(0, "signdata")));
  2325. }
  2326. var objParam = new Object();
  2327. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  2328. if(isValidObject("ds_main_contents")){
  2329. if(ds_main.getColumn(0,"emptyform") == "empty"){
  2330. ds_main_contents.clearData();
  2331. ds_main_contents.addRow();
  2332. }
  2333. rptf_setNodeListToDOM(objDOM1, "/root/main/contents", ds_main_contents); // 데이터셋 2
  2334. objParam.xml_data_XML2 = objDOM1.documentElement.source; // 최상의노드 XML 스트링 추출
  2335. }
  2336. if(isValidObject("ds_main_content1")){
  2337. if(ds_main.getColumn(0,"emptyform") == "empty"){
  2338. ds_main_contents1.clearData();
  2339. ds_main_contents1.addRow();
  2340. }
  2341. rptf_setNodeListToDOM(objDOM2, "/root/main/content1", ds_main_content1); // 데이터셋 3
  2342. objParam.xml_data_XML3 = objDOM2.documentElement.source; // 최상의노드 XML 스트링 추출
  2343. }
  2344. if(isValidObject("ds_main_content2")){
  2345. if(ds_main.getColumn(0,"emptyform") == "empty"){
  2346. ds_main_contents2.clearData();
  2347. ds_main_contents2.addRow();
  2348. }
  2349. rptf_setNodeListToDOM(objDOM3, "/root/main/content2", ds_main_content2); // 데이터셋 4
  2350. objParam.xml_data_XML4 = objDOM3.documentElement.source; // 최상의노드 XML 스트링 추출
  2351. }
  2352. if(grp_base.swc_prof.tabindex == 2){
  2353. if(ds_main.getColumn(0,"emptyform") == "empty"){
  2354. // 빈서식출력(데이터 무)
  2355. lf_SetPrePrntInfo(30);
  2356. }else{
  2357. // 빈서식출력(데이터 유)
  2358. lf_SetPrePrntInfo(20);
  2359. }
  2360. }else{
  2361. dsf_createDs("ds_preprntinfo");
  2362. }
  2363. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;callback=cbf_SetPrePrntInfo";
  2364. rptf_exeReportPreview30([rexid],[objParam], option);
  2365. if(ds_main.getColumn(0,"emptyform") == "empty") // 삭제했던 노드 복원
  2366. {
  2367. ds_data_recitem.clearData();
  2368. ds_data_recitem.addRow();
  2369. grp_base.ivw_loader.lf_getGenFormData(); //기록데이터 취합
  2370. ds_data_recitem.copyData(grp_base.ivw_loader.ivw_base.ds_data_recitem); //서식지 정보 설정
  2371. //기관직인 이미지 세팅
  2372. var imgcd = "logoimage_"+sysf_getUserInfo("dutplceinstcd");
  2373. var logoimage = sysf_getURLprefix()+"/xpapps/IMAGES/emr/MR/"+imgcd+".png";
  2374. ds_data_docinfo.addColumn("sealimage", "string");
  2375. if(ds_data_docinfo.getRowCount() < 1){
  2376. ds_data_docinfo.addRow();
  2377. }
  2378. ds_data_docinfo.setColumn(0, "sealimage", logoimage);
  2379. var objImgeData = objExtCommon.encodeBase64(ds_data_docinfo.getColumn(0, "signdata"));
  2380. }
  2381. }
  2382. function fRegisterConsent_hira()
  2383. {
  2384. var currow = ds_main_profhist.rowposition;
  2385. //var formcd = ds_main_profhist.getColumn(currow, "formcd");
  2386. //var srcformcd = ds_main_profhist.getColumn(currow, "srcformcd");
  2387. //var formdegnseq = ds_main_profhist.getColumn(currow, "formdegnseq");
  2388. //var issdt = ds_main_profhist.getColumn(currow, "issdt");
  2389. dsf_createDsRow("ds_send_hiraconsentyn", [
  2390. {col:"pid", type:"STRING", size:256, val: ds_main_profhist.getColumn(currow, "pid")}
  2391. ])
  2392. dsf_createDs("ds_hiraconsentyn");
  2393. // 심평원 회송 동의서 받았는지 체크
  2394. var oParam = {};
  2395. oParam.id = "TRMMR02920";
  2396. oParam.service = "healcarecoopapp.ReqAgnMngt";
  2397. oParam.method = "reqGetHiraConsentYN";
  2398. oParam.inds = "req=ds_send_hiraconsentyn";
  2399. oParam.outds = "ds_hiraconsentyn=hiraconsentinfo";
  2400. oParam.async = false;
  2401. tranf_submit(oParam);
  2402. var consentyn = ds_hiraconsentyn.getColumn(0, "consentyn");
  2403. if(consentyn == "Y") return true;
  2404. frmf_setParameter("SSMRC03160_param_instcd", sysf_getUserInfo("dutplceinstcd"));
  2405. frmf_setParameter("SSMRC03160_param_patid", ds_main_profhist.getColumn(currow, "pid"));
  2406. frmf_setParameter("SSMRC03160_param_indate", ds_main_profhist.getColumn(currow, "orddd"));
  2407. frmf_setParameter("SSMRC03160_param_cretno", ds_main_profhist.getColumn(currow, "cretno"));
  2408. frmf_setParameter("SSMRC03160_param_class", ds_main_profhist.getColumn(currow, "ioflag"));
  2409. frmf_setParameter("SSMRC03160_param_tag1", ds_main_patinfo.getColumn(0, "hngnm")); // 환자 또는 법정대리인 성명
  2410. //frmf_setParameter("SSMRC03160_param_tag3", tag3_kr); // 동의 승인자와 환자와의 관계 유형(MYSELF : 본인, FAMILY : 가족, LEGAL_REPRESENTIVE : 법정대리인, ETC : 기타)
  2411. frmf_setParameter("SSMRC03160_param_flag", "G");
  2412. frmf_setParameter("SSMRC03160_param_cuser", sysf_getUserInfo("userid"));
  2413. frmf_setParameter("SSMRC03160_param_docucd", "1900023001"); //진료정보 교류 동의서
  2414. frmf_modal("SSMRC03160", "SSMRC03160", null, null, null, null, null, null, null, null, null, null, "M");
  2415. var rtnocrtag = frmf_getParameter("SSMRC03160_param_rtnocrtag");
  2416. //동의서 오류
  2417. if (rtnocrtag == 0 || utlf_isNull(rtnocrtag)) {
  2418. sysf_messageBox("동의서 발행시 오류! 진료협력센터로 문의하시기 바랍니다","I");
  2419. return false;
  2420. }
  2421. return true;
  2422. }
  2423. function fRegisterConsent_hie()
  2424. {
  2425. var currow = ds_main_profhist.rowposition;
  2426. var formcd = ds_main_profhist.getColumn(currow, "formcd");
  2427. var srcformcd = ds_main_profhist.getColumn(currow, "srcformcd");
  2428. var formdegnseq = ds_main_profhist.getColumn(currow, "formdegnseq");
  2429. var issdt = ds_main_profhist.getColumn(currow, "issdt");
  2430. var formrecseq = ds_main_profhist.getColumn(currow, "formrecseq");
  2431. //진료정보교류동의 여부 파악
  2432. var consentyn = "N";
  2433. dsf_createDsRow("ds_cond_TRARC01415", [{col:"ssnnumber", type:"STRING", size:256, val:ds_main_profhist.getColumn(currow, "ssnnumber")}
  2434. , {col:"reqdeptno", type:"STRING", size:256, val:ds_main_profhist.getColumn(currow, "reqdeptno")}
  2435. , {col:"formrecseq", type:"STRING", size:256, val:ds_main_profhist.getColumn(currow, "formrecseq")}
  2436. , {col:"pid", type:"STRING", size:256, val:ds_main_profhist.getColumn(currow, "pid")}]);
  2437. dsf_createDs("ds_main_consentlist", [{col:"consentyn", type:"STRING", size:256}]);
  2438. dsf_createDs("ds_main_hiepatlist", [{col:"hiepatyn", type:"STRING", size:256}]);
  2439. var oParam = {};
  2440. oParam.id = "TRARC01415";
  2441. oParam.service = "healcarecoopapp.ReqAgnMngt";
  2442. oParam.method = "reqGetHIEConsentInfo";
  2443. oParam.inds = "req=ds_cond_TRARC01415";
  2444. oParam.outds = "ds_main_consentlist=consentlist ds_main_hiepatlist=hiepatlist";
  2445. oParam.async = false;
  2446. //oParam.callback = "cf_TRARC01415";
  2447. tranf_submit(oParam);
  2448. //진료교류 대상여부
  2449. var hiepatyn = ds_main_hiepatlist.getColumn(0, "hiepatyn");
  2450. //진료교류 동의여부
  2451. var consentyn = ds_main_consentlist.getColumn(0, "consentyn");
  2452. var consentpid = ds_main_profhist.getColumn(currow, "pid");
  2453. //동의서 없거나 철회 되었다면 && 예외환자 제외
  2454. if ( consentyn != "Y" && !lf_ContainsHardCD("6019", consentpid)) {
  2455. if ( issdt > "20171129180000" && srcformcd == "0000002536") {
  2456. if (formcd == "1700019854" && formdegnseq >= 1700082464) {
  2457. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160");
  2458. var gbn = itemVal.rectermcd ;
  2459. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160.0012159.0012164");
  2460. var relation = itemVal.reccnts ;
  2461. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160.0012159.0012162");
  2462. var fname = itemVal.reccnts ;
  2463. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160.0012159.0012163");
  2464. }else if (formcd == "1700019834" && formdegnseq >= 1700082441) {
  2465. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165");
  2466. var gbn = itemVal.rectermcd ;
  2467. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165.0012164.0005964");
  2468. var relation = itemVal.reccnts ;
  2469. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165.0012164.0012166");
  2470. var fname = itemVal.reccnts ;
  2471. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165.0012164.0012167");
  2472. var phone = itemVal.reccnts ;
  2473. }
  2474. if (utlf_isNull(gbn)) {
  2475. sysf_messageBox("환자(또는 가족) 입력 후 진행해주십시오.", "C999");
  2476. return false;
  2477. }
  2478. //가족
  2479. if (gbn == "0021027001") {
  2480. if( utlf_isNull(relation) ){
  2481. sysf_messageBox("관계 입력 후 진행해 주십시오.", "C999");
  2482. return false;
  2483. }
  2484. if( utlf_isNull(fname) ){
  2485. sysf_messageBox("이름 입력 후 진행해 주십시오.", "C999");
  2486. return false;
  2487. }
  2488. if( utlf_isNull(phone) ){
  2489. sysf_messageBox("전화번호 입력 후 진행해 주십시오.", "C999");
  2490. return false;
  2491. }
  2492. var tag3 = "FAMILY";
  2493. } else if (gbn == "0000475001") {
  2494. var tag3 = "MYSELF";
  2495. }
  2496. }
  2497. else {
  2498. tag3 = "MYSELF";
  2499. }
  2500. var tag3_kr = "";
  2501. if (tag3 == "MYSELF") {
  2502. tag3_kr = "본인";
  2503. }
  2504. else if(tag3 == "FAMILY") {
  2505. tag3_kr = "가족";
  2506. }
  2507. frmf_setParameter("SSMRC03160_param_instcd", sysf_getUserInfo("dutplceinstcd"));
  2508. frmf_setParameter("SSMRC03160_param_patid", ds_main_profhist.getColumn(currow, "pid"));
  2509. frmf_setParameter("SSMRC03160_param_indate", ds_main_profhist.getColumn(currow, "orddd"));
  2510. frmf_setParameter("SSMRC03160_param_cretno", ds_main_profhist.getColumn(currow, "cretno"));
  2511. frmf_setParameter("SSMRC03160_param_class", ds_main_profhist.getColumn(currow, "ioflag"));
  2512. frmf_setParameter("SSMRC03160_param_tag1", ds_main_patinfo.getColumn(0, "hngnm")); // 환자 또는 법정대리인 성명
  2513. frmf_setParameter("SSMRC03160_param_tag3", tag3_kr); // 동의 승인자와 환자와의 관계 유형(MYSELF : 본인, FAMILY : 가족, LEGAL_REPRESENTIVE : 법정대리인, ETC : 기타)
  2514. frmf_setParameter("SSMRC03160_param_flag", "G");
  2515. frmf_setParameter("SSMRC03160_param_cuser", sysf_getUserInfo("userid"));
  2516. frmf_setParameter("SSMRC03160_param_docucd", "1600018738"); //진료정보 교류 동의서
  2517. frmf_modal("SSMRC03160", "SSMRC03160", null, null, null, null, null, null, null, null, null, null, "M");
  2518. var rtnocrtag = frmf_getParameter("SSMRC03160_param_rtnocrtag");
  2519. //동의서 오류
  2520. if (rtnocrtag == 0 || utlf_isNull(rtnocrtag)) {
  2521. sysf_messageBox("동의서 발행시 오류! 진료협력센터로 문의하시기 바랍니다","I");
  2522. return false;
  2523. }
  2524. // Input
  2525. dsf_createDsRow("ds_send_save", [{col:"name", type:"STRING", size:256, val:ds_main_patinfo.getColumn(0, "hngnm")}
  2526. , {col:"ssn", type:"STRING", size:256, val:""}
  2527. , {col:"reason", type:"STRING", size:256, val:""}
  2528. , {col:"wholewithdrawalreason", type:"STRING", size:256, val:""}
  2529. , {col:"withdrawaldepartmentreason", type:"STRING", size:256, val:""}
  2530. , {col:"withdrawalorganizationreason", type:"STRING", size:256, val:""}
  2531. , {col:"instcd", type:"STRING", size:256, val:sysf_getUserInfo("dutplceinstcd")}
  2532. , {col:"pid", type:"STRING", size:256, val:ds_main_profhist.getColumn(currow, "pid")}
  2533. , {col:"formrecseq", type:"STRING", size:256, val:ds_main_profhist.getColumn(currow, "formrecseq")}
  2534. , {col:"relationship", type:"STRING", size:256, val:tag3}
  2535. , {col:"guardianname", type:"STRING", size:256, val:""}
  2536. , {col:"guardiantelcom", type:"STRING", size:256, val:""}
  2537. , {col:"documenttype", type:"STRING", size:256, val:"1.2.410.100110.40.2.2.1.1"}
  2538. , {col:"policytype", type:"STRING", size:256, val:""}
  2539. , {col:"signature", type:"STRING", size:256, val:""}]);
  2540. dsf_createDsRow("ds_send_save_withdrawhosplist", [{col:"oid", type:"STRING", size:256, val:""}]);
  2541. dsf_createDsRow("ds_send_save_withdrawdeptlist", [{col:"withdrawaldepartmentcode", type:"STRING", size:256, val:""}]);
  2542. // Output
  2543. dsf_createDs("ds_data_TXARH01101_mainlist", [{col:"mpiid", type:"STRING", size:256}
  2544. , {col:"responsestatus", type:"STRING", size:256}]);
  2545. dsf_createDs("ds_data_TXARH01101_cdalist", [{col:"title", type:"STRING", size:256}
  2546. , {col:"documentuniqueid", type:"STRING", size:256}
  2547. , {col:"document", type:"STRING", size:256}
  2548. , {col:"cdaxml", type:"STRING", size:256}]);
  2549. var oParam = {};
  2550. oParam.id = "TXARH01101";
  2551. oParam.service = "healcarecoopapp.ReqAgnMngt";
  2552. oParam.method = "reqExeHIETransConsent";
  2553. oParam.inds = "req=ds_send_save withdrawalorganizationsVO=ds_send_save_withdrawhosplist withdrawaldepartmentcodesVO=ds_send_save_withdrawdeptlist";
  2554. oParam.outds = "ds_data_TXARH01101_mainlist=mainVO ds_data_TXARH01101_cdalist=registereddocumentVO";
  2555. oParam.async = false;
  2556. //oParam.callback = "cf_TXARH01101";
  2557. tranf_submit(oParam);
  2558. var sendtitle = ds_data_TXARH01101_cdalist.getColumn(0,"title"); // 전송성공여부 파악
  2559. //전송실패시 리턴
  2560. if( utlf_isNull(sendtitle)){
  2561. return false;
  2562. }
  2563. }
  2564. return true;
  2565. }
  2566. /****************************************************************************************
  2567. * Function : fPrintProflist
  2568. * Description : 제증명리스트 발급
  2569. * Argument : 01. flag : 20 - 발행 / 30 - 재발행 / 40 - 재출력
  2570. * retrun type : N/A
  2571. * Creator :
  2572. ****************************************************************************************/
  2573. function fPrintProflist(flag){
  2574. if(grp_base.swc_prof.tabindex != 2){
  2575. sysf_messageBox("제증명이력 탭으로 이동", "I008");
  2576. return;
  2577. }
  2578. var currow = ds_main_profhist.rowposition;
  2579. if(currow < 0){
  2580. sysf_messageBox("발급할 제증명 서식을", "C001");
  2581. return;
  2582. }
  2583. var issstat = ds_main_profhist.getColumn(currow, "issstat"); //인증상태
  2584. if(issstat == "R"){
  2585. sysf_messageBox("인증되지 않은 제증명 서식을 출력", "");
  2586. return;
  2587. }
  2588. var prntcnt = ds_main_issinfo.getColumn(0,"isscnt");
  2589. if(prntcnt == 0){
  2590. sysf_messageBox("발행부수는 한장 이상만 출력", "I006");
  2591. return;
  2592. }
  2593. var profcertseq = ds_main_profhist.getColumn(currow, "profcertseq");
  2594. var lformrecseq = ds_main_profhist.getColumn(currow, "formrecseq");
  2595. var rformrecseq = grp_base.ivw_loader.ds_data_formrec.getColumn(0,"formrecseq");
  2596. if (lformrecseq != rformrecseq) {
  2597. sysf_messageBox("좌우의 서식이 틀립니다. 다시 선택하시기 바랍니다","I");
  2598. return;
  2599. }
  2600. //삭제여부체크
  2601. dsf_makeValue(ds_send_reqdata,"profcertseq","string", profcertseq);
  2602. var oParam = {};
  2603. oParam.id = "TRMMR05505";
  2604. oParam.service = "medirecapp.ExtnMediRec";
  2605. oParam.method = "reqGetDelYN";
  2606. oParam.inds = "req=ds_send_reqdata";
  2607. oParam.outds = "ds_hidden_delyn=delyn";
  2608. oParam.async = false;
  2609. tranf_submit(oParam);
  2610. var delyncnt = ds_hidden_delyn.getColumn(0,"cnt");
  2611. //화면이 old
  2612. if (delyncnt != 0) {
  2613. sysf_messageBox("제증명이 삭제되어 발행 불가합니다","I999");
  2614. return ;
  2615. }
  2616. // 2014.04.09 CYW 발행시, 진료부서, 진료의의 상태 조회 Start ------------------------------------------------------------
  2617. // 부서가 사용가능한 상태인지, 진료의의 계정이 살아있는지
  2618. dsf_createDsRow("ds_send_chngissinfo", [{col:"issvaliinfoflag", type:"string", size:256, val:"N"},
  2619. {col:"orddeptcd", type:"string", size:256, val:""},
  2620. {col:"orddoctid", type:"string", size:256, val:""}]);
  2621. ds_issvaliinfo_issdeptinfo.clearData();
  2622. ds_issvaliinfo_issdridinfo.clearData();
  2623. dsf_createDsRow("ds_send_isspara", [{col:"instcd", type:"string", size:256, val:sysf_getUserInfo("dutplceinstcd")},
  2624. {col:"pid", type:"string", size:256, val:ds_main_profhist.getColumn(currow, "pid")},
  2625. {col:"ioflag", type:"string", size:256, val:ds_main_profhist.getColumn(currow, "ioflag")},
  2626. {col:"orddd", type:"string", size:256, val:ds_main_profhist.getColumn(currow, "orddd")},
  2627. {col:"orddrid", type:"string", size:256, val:ds_main_profhist.getColumn(currow, "orddrid")},
  2628. {col:"cretno", type:"string", size:256, val:ds_main_profhist.getColumn(currow, "cretno")},
  2629. {col:"orddeptcd", type:"string", size:256, val:ds_main_profhist.getColumn(currow, "orddeptcd")}]);
  2630. var oParam = {};
  2631. oParam.id = "TRMMR06505";
  2632. oParam.service = "medirecapp.ExtnMediRec";
  2633. oParam.method = "reqGetProfCertIssDeptDocSrch";
  2634. oParam.inds = "req=ds_send_isspara";
  2635. oParam.outds = "ds_issvaliinfo_issdeptinfo=issdeptinfo ds_issvaliinfo_issdridinfo=issdridinfo";
  2636. oParam.async = false;
  2637. oParam.callback = "cf_TRMMR06505";
  2638. tranf_submit(oParam);
  2639. // 통상근무시간 외 입원회송관리료 관련 수정(2019.10.21 - 19338)
  2640. var ovtworkyn = ds_data_ovtWorkYnInfo.getColumn(0, "ovtworkyn");
  2641. var trnshospnm = ds_data_ovtWorkYnInfo.getColumn(0, "trnshospnm");
  2642. var bhscndyn = ds_data_ovtWorkYnInfo.getColumn(0, "bhscndyn");
  2643. if( arErrorCode.pop("TRMMR06505") > -1 ){
  2644. // 부서정보 오류
  2645. if( ds_issvaliinfo_issdeptinfo.getColumn(0,"deptvaliyn") == "N" ){
  2646. //messageBox("발행부서를 다시 선택해 주십시오.", "C999");
  2647. ds_send_chngissinfo.setColumn(0,"issvaliinfoflag", "Y");
  2648. frmf_setParameter("SPMMR06503_pid" , ds_main_profhist.getColumn(currow, "pid") );
  2649. frmf_setParameter("SPMMR06503_orddeptcd" , ds_main_profhist.getColumn(currow, "orddeptcd") );
  2650. frmf_setParameter("SPMMR06503_switflag" , "dept" );
  2651. frmf_setParameter("SPMMR06503_vieworddeptcd" , "" );
  2652. frmf_modal("SPMMR06503", "SPMMR06503", null, null, null, null, null, null, null, null, null, null, "M");
  2653. if(utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddeptcd")) ){
  2654. sysf_messageBox("발행부서를 선택하신 후 진행해주십시오.", "C999");
  2655. return;
  2656. }
  2657. frmf_setParameter("SPMMR06503_switflag" , "orddrid" );
  2658. // 선택한 발행과가 있다면 해당 발행과의 의사목록을 가져오기위한 파라메타
  2659. if( !utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddeptcd")) ){
  2660. frmf_setParameter("SPMMR06503_vieworddeptcd" , ds_send_chngissinfo.getColumn(0,"orddeptcd") );
  2661. }
  2662. frmf_modal("SPMMR06503", "SPMMR06503", null, null, null, null, null, null, null, null, null, null, "M");
  2663. if( utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddoctid"))){
  2664. sysf_messageBox("발행의사를 선택하신 후 진행해주십시오.", "C999");
  2665. return;
  2666. }
  2667. }
  2668. // 의사정보 오류
  2669. if( ds_issvaliinfo_issdridinfo.getColumn(0,"orddridvaliyn") == "N" ){
  2670. if( !utlf_isNull(ds_issvaliinfo_issdridinfo.getColumn(0,"msgtxt")) ){
  2671. sysf_messageBox("발행의사를 다시 선택해주십시오. 【 " +ds_issvaliinfo_issdridinfo.getColumn(0,"msgtxt") + " 】" , "C999");
  2672. }
  2673. ds_send_chngissinfo.setColumn(0,"issvaliinfoflag", "Y");
  2674. frmf_setParameter("SPMMR06503_pid" , ds_main_profhist.getColumn(currow, "pid") );
  2675. frmf_setParameter("SPMMR06503_orddeptcd" , ds_main_profhist.getColumn(currow, "orddeptcd") );
  2676. frmf_setParameter("SPMMR06503_switflag" , "orddrid" );
  2677. frmf_setParameter("SPMMR06503_vieworddeptcd" , "" );
  2678. // 선택한 발행과가 있다면 해당 발행과의 의사목록을 가져오기위한 파라메타
  2679. if( !utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddeptcd")) ){
  2680. frmf_setParameter("SPMMR06503_vieworddeptcd" , ds_send_chngissinfo.getColumn(0,"orddeptcd") );
  2681. }else{
  2682. frmf_setParameter("SPMMR06503_vieworddeptcd" , ds_main_profhist.getColumn(currow, "orddeptcd") );
  2683. }
  2684. frmf_modal("SPMMR06503", "SPMMR06503", null, null, null, null, null, null, null, null, null, null, "M");
  2685. if( utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddoctid")) ){
  2686. sysf_messageBox("발행의사를 선택하신 후 진행해주십시오.", "C999");
  2687. return;
  2688. }
  2689. }
  2690. /*getUserStateMsg : 사용자 일반의, 퇴직의 조회*/
  2691. var deptcd = ds_main_profhist.getColumn(currow, "orddeptcd");
  2692. ds_send_msg.setColumn(0, "userid", ds_main_profhist.getColumn(currow, "orddrid"));
  2693. ds_send_msg.setColumn(0, "deptcd", deptcd);
  2694. var oParam = {};
  2695. oParam.id = "TRMMR00001";
  2696. oParam.service = "medirecapp.ComnMediRec";
  2697. oParam.method = "reqGetUserStateMsg";
  2698. oParam.inds = "req=ds_send_msg";
  2699. oParam.outds = "ds_main_msg_msg=msg";
  2700. oParam.async = false;
  2701. tranf_submit(oParam);
  2702. var chk_msg = ds_main_msg_msg.getColumn(0,"chk_msg");
  2703. if( ds_main_msg_msg.rowcount > 0 ){
  2704. sysf_messageBox(chk_msg, "E");
  2705. frmf_setParameter("SPMMR06503_pid" , ds_main_acptoccinfo.getColumn(0,"otpt_pid") );
  2706. frmf_setParameter("SPMMR06503_orddeptcd" , deptcd );
  2707. frmf_setParameter("SPMMR06503_vieworddeptcd", deptcd );
  2708. frmf_setParameter("SPMMR06503_switflag" , "orddrid" );
  2709. frmf_modal("SPMMR06503", "SPMMR06503", null, null, null, null, null, null, null, null, null, null, "M");
  2710. if( utlf_isNull(ds_send_chngissinfo.getColumn(0,"orddoctid")) ){
  2711. sysf_messageBox("발행의사를 선택하신 후 진행해주십시오.", "C999");
  2712. return;
  2713. }else{
  2714. var orddrid = ds_send_chngissinfo.getColumn(0,"orddoctid");
  2715. }
  2716. }
  2717. }
  2718. // ------------------------------------------------------------------------------------------------------------------------
  2719. var formcd = ds_main_profhist.getColumn(currow, "formcd");
  2720. var srcformcd = ds_main_profhist.getColumn(currow, "srcformcd");
  2721. var formdegnseq = ds_main_profhist.getColumn(currow, "formdegnseq");
  2722. var issdt = ds_main_profhist.getColumn(currow, "issdt");
  2723. // 2016.06.15 전원(회송)소견서 구분
  2724. var nCheckPerPrint = lf_CheckPerPrint(srcformcd);
  2725. // 2016.06.17 전원(회송)소견서 환자, 관계 입력 제어[요청번호:20160617006]
  2726. if( nCheckPerPrint == "Y" ){
  2727. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0001654");
  2728. if( utlf_isNull(itemVal.reccnts) ){
  2729. // sysf_messageBox("환자(또는 보호자) 입력 후 진행해주십시오.", "C999");
  2730. // return;
  2731. }
  2732. itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0005964");
  2733. if( utlf_isNull(itemVal.reccnts) ){
  2734. // sysf_messageBox("관계 입력 후 진행해주십시오.", "C999");
  2735. // return;
  2736. }
  2737. }
  2738. //응급진료의뢰서 인경우 :20190115 이윤주
  2739. if (lf_ContainsHardCD("6933", formcd)) {
  2740. var ls_formcd = lf_getHardCDList("Y", "6934", "3");
  2741. frmf_setParameter("SSMRC03160_param_instcd", sysf_getUserInfo("dutplceinstcd"));
  2742. frmf_setParameter("SSMRC03160_param_patid", ds_main_profhist.getColumn(currow, "pid"));
  2743. frmf_setParameter("SSMRC03160_param_indate", ds_main_profhist.getColumn(currow, "orddd"));
  2744. frmf_setParameter("SSMRC03160_param_cretno", ds_main_profhist.getColumn(currow, "cretno"));
  2745. frmf_setParameter("SSMRC03160_param_class", ds_main_profhist.getColumn(currow, "ioflag"));
  2746. frmf_setParameter("SSMRC03160_param_flag", "G");
  2747. frmf_setParameter("SSMRC03160_param_cuser", sysf_getUserInfo("userid"));
  2748. frmf_setParameter("SSMRC03160_param_docucd", ls_formcd); //전원동의서
  2749. frmf_modal("SSMRC03160", "SSMRC03160", null, null, null, null, null, null, null, null, null, null, "M");
  2750. var rtnocrtag = frmf_getParameter("SSMRC03160_param_rtnocrtag");
  2751. //동의서 오류
  2752. if (rtnocrtag == 0 || utlf_isNull(rtnocrtag)) {
  2753. sysf_messageBox("동의서 발행시 오류!","I");
  2754. return;
  2755. }
  2756. }
  2757. // 시스템 on 이고 해당서식일때:20171130 이윤주
  2758. // 심평원동의까지 포함토록 수정 by beshon_190422
  2759. if (lf_ContainsHardCD("6022", formcd) || lf_ContainsHardCD("6008", formcd)) {
  2760. dsf_createDsRow("ds_send_transcntinfo", [
  2761. {col:"pid", type:"INT", size:256, val: ds_main_profhist.getColumn(currow, "pid")}
  2762. , {col:"formrecseq", type:"STRING", size:256, val: ds_main_profhist.getColumn(currow, "formrecseq")}])
  2763. dsf_createDs("ds_transcntinfo");
  2764. // 해당서식의 전송대상 건수 확인
  2765. var oParam = {};
  2766. oParam.id = "TRMMR02920";
  2767. oParam.service = "healcarecoopapp.ReqAgnMngt";
  2768. oParam.method = "reqGetTransListCount";
  2769. oParam.inds = "req=ds_send_transcntinfo";
  2770. oParam.outds = "ds_transcntinfo=transcntinfo";
  2771. oParam.async = false;
  2772. tranf_submit(oParam);
  2773. // 심평원동의여부 체크토록 한 경우 해당formrecseq의 전송건 있을 때
  2774. // 통상근무시간 외 입원회송관리료 관련 수정(2019.10.21 - 19338)
  2775. if((lf_ContainsHardCD("6021", "Y") && ds_transcntinfo.getColumn(0, "hiracnt") > 0) || (ovtworkyn == 'Y' && trnshospnm != 'N' && bhscndyn == 'N')){
  2776. // 동의서 징구여부 체크해서 없을 시 전자동의서 팝업
  2777. if(!fRegisterConsent_hira()) return;
  2778. }
  2779. // HIE동의여부 체크토록 한 경우 HIE 등록된 거 있을 때
  2780. // 통상근무시간 외 입원회송관리료 관련 수정(2019.10.21 - 19338)
  2781. //if((lf_ContainsHardCD("6009", "Y") && ds_transcntinfo.getColumn(0, "hiecnt") > 0) || (ovtworkyn == 'Y' && trnshospnm != 'N' && bhscndyn == 'N')){
  2782. if(lf_ContainsHardCD("6009", "Y") && ds_transcntinfo.getColumn(0, "hiecnt") > 0){
  2783. // 동의여부 확인해서 동의안된 경우에 전자동의서 팝업
  2784. if(!fRegisterConsent_hie()) return;
  2785. }
  2786. }
  2787. //20120911 이윤주 수정(서식용도변경 가능여부)
  2788. if (flag == "30" || flag == "40" )
  2789. {
  2790. //용도변경 아이템 존재유무
  2791. if ( grp_base.ivw_loader.ivw_base.ds_data_recitem.getCaseCount("degnitemcd=='0036539001'") > 0) {
  2792. var rechistseq = grp_base.ivw_loader.ds_data_recitem.getColumn(0, "rechistseq"); //확인필요 ivw_loader.ivw_base.model.getValue("/root/hidden/recinfo/recitem/rechistseq");
  2793. fgetGoal(rechistseq);
  2794. //DB
  2795. var goal = utlf_transNullToEmpty(ds_goal.getColumn(0,"goal"));
  2796. //화면
  2797. var nFindRow = grp_base.ivw_loader.ivw_base.ds_data_recitem.findRow("degnitemcd", "0013100001");
  2798. var changegoal = utlf_transNullToEmpty(grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(nFindRow, "reccnts"));
  2799. if ( goal != changegoal ){
  2800. if ( fIsOkGoal(rechistseq) == "false") {
  2801. sysf_messageBox("용도변경이 불가합니다","I999");
  2802. return;
  2803. }
  2804. }
  2805. }
  2806. }
  2807. dsf_makeValue(ds_main_profhist,"issflag" , "string", flag , currow); //발행구분(10:미발행, 20:발행, 30:재발행, 40:재출력)
  2808. dsf_makeValue(ds_main_profhist,"prntuserid" , "string", sysf_getUserInfo("userid") , currow); //출력사용자ID
  2809. dsf_makeValue(ds_main_profhist,"prntdt" , "string", utlf_getCurrentDate().concat(utlf_getCurrentTime()) , currow); //출력일시
  2810. dsf_makeValue(ds_main_profhist,"deluserid" , "string", "" , currow); //삭제사용자ID
  2811. dsf_makeValue(ds_main_profhist,"deldt" , "string", "" , currow); //삭제일시
  2812. dsf_makeValue(ds_main_profhist,"prntcnt" , "string", prntcnt , currow); //출력횟수
  2813. // ds_main_profhist.applyChange();
  2814. ds_main_profhist.setColumn(currow, "freeissresn", "");
  2815. ds_send_reqdata_profhist.copyData(ds_main_profhist);
  2816. ds_send_reqdata_profhist.clearData();
  2817. var newrow = ds_send_reqdata_profhist.addRow();
  2818. ds_send_reqdata_profhist.copyRow(newrow,ds_main_profhist,currow); //저장 instance에 복사
  2819. var pid = ds_main_profhist.getColumn(currow, "pid");
  2820. // KNUH_20110504_수정(환자 수진일자로 진료과, 진료의사를 셋팅)
  2821. var orddeptcd = ds_main_profhist.getColumn(currow, "orddeptcd");
  2822. var orddrid = ds_main_profhist.getColumn(currow, "orddrid");
  2823. var issdd = utlf_transNullToEmpty(ds_main_profhist.getColumn(currow, "issdt")).substring(0, 8);
  2824. issdd = issdd.substring(0, 4) + "-" + issdd.substring(4, 6) + "-" + issdd.substring(6, 8);
  2825. //사망진단서 발급인 경우, 입원환자의 퇴원비 수납여부 확인 함.
  2826. if(formcd == "0000001314"){
  2827. var indschacptstat = ds_main_result_pathistlist.getColumn(0, "indschacptstat");
  2828. //2009-06-26 오후 12:20:46 강지훈 수정
  2829. if(indschacptstat != "D" && indschacptstat != "R"){
  2830. sysf_messageBox("퇴원비 정산이 필요한 환자", "E008");
  2831. }
  2832. }
  2833. if( ds_send_chngissinfo.getColumn(0, "issvaliinfoflag") == "Y" ){
  2834. if (!utlf_isNull(ds_send_chngissinfo.getColumn(0, "orddeptcd"))){
  2835. orddeptcd = ds_send_chngissinfo.getColumn(0, "orddeptcd");
  2836. }
  2837. if(!utlf_isNull(ds_send_chngissinfo.getColumn(0, "orddoctid"))){
  2838. orddrid = ds_send_chngissinfo.getColumn(0, "orddoctid");
  2839. }
  2840. }
  2841. //원무정보 설정, 등록번호, 진료일자, 진료과, 진료의, 진료시간
  2842. fSetOtptPamInfo(pid, utlf_getCurrentDate(), orddeptcd, orddrid, "0000");
  2843. ds_send_reqdata_acptoccinfo.copyData(ds_main_acptoccinfo);
  2844. //제증명 수가정보 조회
  2845. if(fSrchCalcScor(formcd)==false){
  2846. return;
  2847. }
  2848. //처방IF에 담길 제증명 처방정보를 생성
  2849. var nodecnt = ds_main_calcscorinfo.rowcount;//alert("nodecnt " + nodecnt);
  2850. //sysf_trace("12 " + nodecnt + " "+currow);
  2851. ds_send_reqdata_rcptlist.clearData();
  2852. if(nodecnt != 0){
  2853. fCalsSorcSave(currow, nodecnt);
  2854. }
  2855. dsf_makeValue(ds_send_reqdata_profhist,"status", "string", "U");
  2856. //출력시 호출할 REX report id를 설정
  2857. var ivwCtrl = grp_base.ivw_loader.components["ivw_base"];
  2858. var formcd = utlf_transNullToEmpty(ds_main_profhist.getColumn(currow, "formcd"));
  2859. // 서식이 진료의뢰서인 경우
  2860. /* 환자의 보험유형 (코드군 P0008 참조)
  2861. 11 건강보험
  2862. 21 의료급여1종
  2863. 22 의료급여2종
  2864. 31 자보
  2865. 41 산재
  2866. 42 공상
  2867. 51 일반
  2868. 61 외국인
  2869. 71 임상시험
  2870. 81 노인장기요양보험
  2871. */
  2872. // 의료급여가 보험인 환자 -> 요양급여의뢰서: RFM0534001_요양급여의뢰서001.rex
  2873. // 의료급여가 보험이 아닌 것
  2874. // 1) 본인부담면제 항목이 비어있거나, 본인부담면제 항목이 있으면서 해당 코드가 M003~M010 -> 의료급여의뢰서: RFM0534002_의료급여의뢰서002.rex
  2875. // 2) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있는 경우 -> 의료급여의뢰서(선택기관발부용): RFM0534003_의료급여의뢰서003.rex
  2876. // 3) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있지 않는 경우 -> 의료급여의뢰서(의뢰진료기관에 "B006"으로 찍힘): RFM0534004_의료급여의뢰서004.rex
  2877. dsf_makeValue(ds_send_reqdata,"hardcdno", "string", "1114"); // 진단서 발행시 보험유형별로 다르게 출력되는 서식
  2878. ds_main_hardcdlist.clearData();
  2879. var oParam = {};
  2880. oParam.id = "TRMRF03104";
  2881. oParam.service = "formmngtapp.SetIndxMngt";
  2882. oParam.method = "reqGetEmrInfoTeamCd";
  2883. oParam.inds = "req=ds_send_reqdata";
  2884. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  2885. oParam.async = false;
  2886. tranf_submit(oParam);
  2887. var rexid = "";
  2888. if(!utlf_isNull(ds_main_hardcdlist.lookup("trgtcd", formcd, "trgtcd")))
  2889. {
  2890. if(ds_main_hardcdlist.lookup("trgtcd", formcd, "trgtcdnm") == "진료의뢰서")
  2891. {
  2892. var hospcd = fGetHospitalCode();
  2893. var insukind = ds_main_result_pathistlist.getColumn(0, "insukind");
  2894. if(insukind == "11" || insukind == "81") // 건강보험인 경우
  2895. {
  2896. var tmpformcd = formcd.substr(5, 5);
  2897. rexid = "RFM" + tmpformcd + "01";
  2898. }
  2899. else // 건강보험이 아닌 경우
  2900. {
  2901. // 환자의 자격을 조회.
  2902. fGetPatInsuranceInfo();
  2903. var InsuranceInfoList = ds_main_patinsuranceinfo.rowcount;
  2904. if(InsuranceInfoList > 0)
  2905. {
  2906. var proccorpcd = ds_main_patinsuranceinfo.getColumn(0, "proccorpcd"); //등록번호
  2907. var hngnm = ds_main_patinsuranceinfo.getColumn(0, "hngnm"); //환자명
  2908. var qualflag = ds_main_patinsuranceinfo.getColumn(0, "qualflag"); //자격구분
  2909. var hshdnm = ds_main_patinsuranceinfo.getColumn(0, "hshdnm"); //세대주성명
  2910. var secuinstmark = ds_main_patinsuranceinfo.getColumn(0, "secuinstmark"); //보장기관기호
  2911. var estmmark = ds_main_patinsuranceinfo.getColumn(0, "estmmark"); //시설기호(증번호)
  2912. var ownbflag = ds_main_patinsuranceinfo.getColumn(0, "ownbflag"); //본인부담구분
  2913. var choicorpmark1 = ds_main_patinsuranceinfo.getColumn(0, "choicorpmark1"); //선택기관기호1
  2914. var choicorpmark2 = ds_main_patinsuranceinfo.getColumn(0, "choicorpmark2");
  2915. var choicorpmark3 = ds_main_patinsuranceinfo.getColumn(0, "choicorpmark3");
  2916. var choicorpmark4 = ds_main_patinsuranceinfo.getColumn(0, "choicorpmark4");
  2917. var choicorpnm1 = ds_main_patinsuranceinfo.getColumn(0, "choicorpnm1"); //선택기관이름1
  2918. var choicorpnm2 = ds_main_patinsuranceinfo.getColumn(0, "choicorpnm2");
  2919. var choicorpnm3 = ds_main_patinsuranceinfo.getColumn(0, "choicorpnm3");
  2920. var choicorpnm4 = ds_main_patinsuranceinfo.getColumn(0, "choicorpnm4");
  2921. dsf_makeValue(ds_send_reqdata,"hardcdno", "string", "1115"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  2922. ds_main_hardcdlist.clearData();
  2923. var oParam = {};
  2924. oParam.id = "TRMRF03104";
  2925. oParam.service = "formmngtapp.SetIndxMngt";
  2926. oParam.method = "reqGetEmrInfoTeamCd";
  2927. oParam.inds = "req=ds_send_reqdata";
  2928. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  2929. oParam.async = false;
  2930. tranf_submit(oParam);
  2931. // 1) 본인부담면제 항목이 비어있거나, 본인부담면제 항목이 있으면서 해당 코드가 M003~M010 -> 의료급여의뢰서: RFM0534002_의료급여의뢰서002.rex
  2932. if(utlf_isNull(ownbflag) || (!utlf_isNull(ownbflag)&& !utlf_isNull(ds_main_hardcdlist.lookup("trgtcd", ownbflag, "trgtcd"))))
  2933. {
  2934. var tmpformcd = formcd.substr(5, 5);
  2935. rexid = "RFM" + tmpformcd + "02";
  2936. }
  2937. else
  2938. {
  2939. dsf_makeValue(ds_send_reqdata,"hardcdno", "string", "1116"); // 의료급여의뢰서 발급 기준(진료의뢰서식)
  2940. ds_main_hardcdlist.clearData();
  2941. var oParam = {};
  2942. oParam.id = "TRMRF03104";
  2943. oParam.service = "formmngtapp.SetIndxMngt";
  2944. oParam.method = "reqGetEmrInfoTeamCd";
  2945. oParam.inds = "req=ds_send_reqdata";
  2946. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  2947. oParam.async = false;
  2948. tranf_submit(oParam);
  2949. if(!utlf_isNull(ds_main_hardcdlist.lookup("trgtcd", ownbflag, "trgtcd")))
  2950. {
  2951. var choicorpmark = "";
  2952. var selected = false;
  2953. for(var idx = 1; idx <= 4; idx++)
  2954. {
  2955. choicorpmark = "";
  2956. switch(idx)
  2957. {
  2958. case 1: choicorpmark = choicorpmark1;
  2959. break;
  2960. case 2: choicorpmark = choicorpmark2;
  2961. break;
  2962. case 3: choicorpmark = choicorpmark3;
  2963. break;
  2964. case 4: choicorpmark = choicorpmark4;
  2965. break;
  2966. }
  2967. if(choicorpmark == hospcd)
  2968. {
  2969. selected = true;
  2970. break;
  2971. }
  2972. }
  2973. // 2) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있는 경우 -> 의료급여의뢰서(선택기관발부용): RFM0534003_의료급여의뢰서003.rex
  2974. if(selected == true)
  2975. {
  2976. var tmpformcd = formcd.substr(5, 5);
  2977. rexid = "RFM" + tmpformcd + "03";
  2978. }
  2979. // 3) 본인부담면제 항목이 M001, M002, B001, B002 이면서 선택기관기호에 해당 기관이 들어있지 않는 경우 -> 의료급여의뢰서(의뢰진료기관에 "B006"으로 찍힘): RFM0534004_의료급여의뢰서004.rex
  2980. else
  2981. {
  2982. var tmpformcd = formcd.substr(5, 5);
  2983. rexid = "RFM" + tmpformcd + "04";
  2984. }
  2985. }
  2986. }
  2987. }
  2988. else
  2989. {
  2990. sysf_messageBox("환자의 의료자격조회 정보가", "E013");
  2991. return;
  2992. }
  2993. }
  2994. }
  2995. }
  2996. else
  2997. {
  2998. //서식 두번째 코드가 8인 경우,
  2999. if(formcd.charAt(1)=="8")
  3000. {
  3001. formcd = formcd.substr(7, 3);
  3002. rexid = "RFM" + "80" + formcd + "00";
  3003. }
  3004. else if (formcd.charAt(0) == "1") // knuh_20110118 추가
  3005. {
  3006. var precd = formcd.substr(0, 2);
  3007. formcd = formcd.substr(5, 5);
  3008. rexid = "RFM" + precd + formcd;
  3009. }
  3010. else
  3011. {
  3012. formcd = formcd.substr(5, 5);
  3013. var rexid = "RFM" + formcd + "00";
  3014. }
  3015. }
  3016. // 20190820 금정화 추가; 버전관리하는 서식일 경우 해당 버전의 rexid를 가져옴.
  3017. rexid = getRexperId(rexid);
  3018. //용도변경이 입력되는 서식여부를 검사
  3019. var hardcd = ds_init_hardcd.lookup("hardcd", formcd, "hardcd");
  3020. if(!utlf_isNull(hardcd)){
  3021. //용도변경 정보가 있는 서식
  3022. dsf_makeValue(ds_send_reqdata_profhist,"prstusgeflag", "string", "Y");
  3023. }else{
  3024. //용도변경 정보가 없는 서식
  3025. dsf_makeValue(ds_send_reqdata_profhist,"prstusgeflag", "string", "N");
  3026. }
  3027. ////////////////////////////////
  3028. // 2009.10.13 제증명 출력 시 특정 프린터로 출력 하기 위해 추가
  3029. var nFindRow = ds_init_PAM_P0018list.findRow("cdid", "5");
  3030. var sPrinterName = ds_init_PAM_P0018list.getColumn(nFindRow,"cdnm");
  3031. // 코드가 존재하지 않거나 코드명(프린터드라이버명)이 null(설정되지 않음)일 때는 기본프린터로 출력할 수 있도록 설정
  3032. if (utlf_isNull(sPrinterName)) {
  3033. sPrinterName = "true";
  3034. } else {
  3035. var sPrinterCheck = objExtCommon.regGetValue("HKEY_CURRENT_USER", "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Devices", sPrinterName, "S");
  3036. if (utlf_isNull(sPrinterCheck) || sPrinterCheck == 0)
  3037. sPrinterName = "true";
  3038. }
  3039. //////////////////////
  3040. if(flag == "30"){ //30일때 확인필요!!
  3041. dsf_makeValue(ds_send_reqdata_profhist,"certmemo", "string", utlf_transNullToEmpty(ds_tmp.getColumn(0, "certmemo")));
  3042. if(ds_tmp.getColumnInfo("elctsignkey")==null){
  3043. dsf_makeValue(ds_send_reqdata_profhist,"elctsignkey", "string", "");
  3044. }else{
  3045. dsf_makeValue(ds_send_reqdata_profhist,"elctsignkey", "string", utlf_transNullToEmpty(ds_tmp.getColumn(0, "elctsignkey")));
  3046. }
  3047. if(ds_tmp.getColumnInfo("elctsigncnts")==null){
  3048. dsf_makeValue(ds_send_reqdata_profhist,"elctsigncnts", "string", "");
  3049. }else{
  3050. dsf_makeValue(ds_send_reqdata_profhist,"elctsigncnts", "string", utlf_transNullToEmpty(ds_tmp.getColumn(0, "elctsigncnts")));
  3051. }
  3052. }else{
  3053. ds_send_reqdata_profhist.updatecontrol = false;
  3054. ds_send_reqdata_profhist.deleteColumn("certmemo");
  3055. if(ds_send_reqdata_profhist.getColumnInfo("elctsignkey")!=null){
  3056. ds_send_reqdata_profhist.deleteColumn("elctsignkey");
  3057. }
  3058. if(ds_send_reqdata_profhist.getColumnInfo("elctsigncnts")!=null){
  3059. ds_send_reqdata_profhist.deleteColumn("elctsigncnts");
  3060. }
  3061. ds_send_reqdata_profhist.updatecontrol = true;
  3062. }
  3063. //기관직인 이미지 세팅
  3064. var imgcd = "logoimage_"+sysf_getUserInfo("dutplceinstcd");
  3065. var logoimage = sysf_getURLprefix()+"/xpapps/IMAGES/emr/MR/"+imgcd+".png";
  3066. ds_data_docinfo.addColumn("sealimage", "string");
  3067. if(ds_data_docinfo.getRowCount() < 1){
  3068. ds_data_docinfo.addRow();
  3069. }
  3070. ds_data_docinfo.setColumn(0, "sealimage", logoimage);
  3071. var objImgeData = objExtCommon.encodeBase64(ds_data_docinfo.getColumn(0, "signdata"));
  3072. if(flag != "40"){ //재출력이 아닌 경우
  3073. //2012/03/28 Start 제증명 재발행의 경우 발행용도를 바꾸어서 저장
  3074. var nFindRow = grp_base.ivw_loader.ivw_base.ds_data_recitem.findRow("degnitemcd", "0013100001");
  3075. var sTmpIssusge = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(nFindRow, "reccnts");
  3076. if(flag=="30" && !utlf_isNull(grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts"))){
  3077. var issusge = ds_main.getColumn(0, "issusge");
  3078. if(!utlf_isNull(issusge)){
  3079. issusge = issusge.split("▩");
  3080. var prstusge = issusge[1].split("▦");
  3081. ds_send_reqdata_profhist.setColumn(0, "prstusge" , prstusge[0]);//용도구분
  3082. }
  3083. }
  3084. //2012/03/28 End
  3085. // 통상근무시간 외 입원회송관리료 관련 수정(2019.10.21 - 19338)
  3086. dsf_makeValue(ds_send_reqdata_profhist, "ovtworkyn", "string", ovtworkyn);
  3087. dsf_makeValue(ds_send_reqdata_profhist, "trnshospnm", "string", trnshospnm);
  3088. dsf_makeValue(ds_send_reqdata_profhist, "bhscndyn", "string", bhscndyn);
  3089. utlf_addLog(">>>>>>>>>> ds_send_reqdata_profhist >>>>>>>>>>");
  3090. utlf_addLog(ds_send_reqdata_profhist.saveXML());
  3091. utlf_addLog(">>>>>>>>>> ds_send_reqdata_profhist >>>>>>>>>>");
  3092. utlf_addLog(">>>>>>>>>> ds_send_reqdata_rcptlist >>>>>>>>>>");
  3093. utlf_addLog(ds_send_reqdata_rcptlist.saveXML());
  3094. utlf_addLog(">>>>>>>>>> ds_send_reqdata_rcptlist >>>>>>>>>>");
  3095. // if( ds_send_reqdata_rcptlist.rowcoutn == 0 ){
  3096. // ds_send_reqdata_rcptlist.addRow();
  3097. // }
  3098. //dsf_setTypeFormat(ds_send_reqdata, "profcertseq:INT^cretno:INT^prntcnt:INT");
  3099. var oParam = {};
  3100. oParam.id = "TXMMR02905";
  3101. oParam.service = "medirecapp.ExtnMediRec";
  3102. oParam.method = "reqExeSaveProfInfo";
  3103. oParam.inds = "req=ds_send_reqdata_profhist reqrcptlist=ds_send_reqdata_rcptlist acptoccinfo=ds_send_reqdata_acptoccinfo";
  3104. oParam.outds = "ds_main_iss=yearseqnoinfo";
  3105. oParam.async = false;
  3106. oParam.callback = "cf_TXMMR02905";
  3107. tranf_submit(oParam);
  3108. if(arErrorCode.pop("TXMMR02905") > -1) {
  3109. var yearseqno = ds_main_iss.getColumn(0, "yearseqno");
  3110. if(!utlf_isNull(yearseqno)){
  3111. var itemVal = new ITEMVAL();
  3112. itemVal.reccnts = yearseqno;
  3113. grp_base.ivw_loader.ivw_base.setFormItemValue("0008632", itemVal);
  3114. ds_main_newprof.setColumn(0, "yearseqno", yearseqno);
  3115. //저장된 아이템정보에 연번호 row를 추가한다.
  3116. var tRow;
  3117. var fRow = grp_base.ivw_loader.ivw_base.ds_data_recitem.findRow("degnitemlevlcd", "0008632");
  3118. var indx = grp_base.ivw_loader.ds_data_recitem.findRow("degnitemlevlcd", "0008632");
  3119. if(indx < 0){
  3120. tRow = grp_base.ivw_loader.ds_data_recitem.addRow(); //저장된 아이템정보
  3121. } else {
  3122. tRow = indx; //저장된 아이템정보
  3123. }
  3124. grp_base.ivw_loader.ds_data_recitem.copyRow(tRow, grp_base.ivw_loader.ivw_base.ds_data_recitem, fRow);
  3125. }
  3126. ds_data_recitem.clearData();
  3127. ds_data_formrec.clearData();
  3128. ds_data_recitem.addRow();
  3129. ds_data_formrec.addRow();
  3130. grp_base.ivw_loader.lf_getGenFormData(); //기록데이터 취합
  3131. ds_data_recitem.copyData(grp_base.ivw_loader.ivw_base.ds_data_recitem);
  3132. ds_data_formrec.copyData(grp_base.ivw_loader.ds_data_formrec);
  3133. //출력 Report양식처리, 1)진단코드 3자리 점(.)찍기 2)출력내용이 늘어나는 것을 방지하기 위해 제증명내용 instance로 분리
  3134. fDoMakeProfPrntInfo(ivwCtrl);
  3135. var objDOM = rptf_createDOM(); // DOM 객체 설정
  3136. var objDOM1 = rptf_createDOM();
  3137. var objDOM2 = rptf_createDOM();
  3138. var objDOM3 = rptf_createDOM();
  3139. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/sealimage",ds_data_docinfo.getColumn(0, "sealimage"));
  3140. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/signimge", objImgeData);
  3141. rptf_setNodeListToDOM(objDOM, "/root/main/recinfo/recitem", ds_data_recitem); // 데이터셋 1
  3142. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  3143. if( nCheckPerPrint == "Y" ){
  3144. if( flag=="30" ){
  3145. var objSignData = objExtCommon.encodeBase64(ds_send_reqdata_profhist.getColumn(0, "elctsigncnts"));
  3146. rptf_setValueToDOM(objDOM, "/root/hidden/signinfo/signimge", objSignData);
  3147. }else{
  3148. lf_getPerSignData();
  3149. rptf_setValueToDOM(objDOM, "/root/hidden/signinfo/signimge", ds_persigntemp_memo_memo.getColumn(0, "elctsigncnts"));
  3150. }
  3151. }
  3152. if( lf_SetMedispclInfo("IMG") == true ){
  3153. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/mdispclsignimge", objExtCommon.encodeBase64(ds_data_medispclinfo.getColumn(0, "signdata")));
  3154. }
  3155. var objParam = new Object();
  3156. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3157. if(isValidObject("ds_main_contents")){
  3158. rptf_setNodeListToDOM(objDOM1, "/root/main/contents", ds_main_contents); // 데이터셋 2
  3159. objParam.xml_data_XML2 = objDOM1.documentElement.source; // 최상의노드 XML 스트링 추출
  3160. }
  3161. if(isValidObject("ds_main_content1")){
  3162. rptf_setNodeListToDOM(objDOM2, "/root/main/content1", ds_main_content1); // 데이터셋 3
  3163. objParam.xml_data_XML3 = objDOM2.documentElement.source; // 최상의노드 XML 스트링 추출
  3164. }
  3165. if(isValidObject("ds_main_content2")){
  3166. rptf_setNodeListToDOM(objDOM3, "/root/main/content2", ds_main_content2); // 데이터셋 4
  3167. objParam.xml_data_XML4 = objDOM3.documentElement.source; // 최상의노드 XML 스트링 추출
  3168. }
  3169. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  3170. var sPrnopt = "copies="+prntcnt+";printername="+sPrinterName+";";
  3171. rptf_exeReportPreview30([rexid],[objParam], option, sPrnopt);
  3172. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  3173. if( nCheckPerPrint == "Y" ){
  3174. // 2016.06.15 전원(회송)소견서 개인정보 동의서 출력
  3175. lf_CheckPrintOCR();
  3176. // cyw 이미지저장 2013-12-09 Start ------------------------------------------------------------------------------------------------
  3177. LTP_Init();
  3178. // 기존파일 삭제 후 생성
  3179. try{
  3180. var objFileList = VirtualFile.getFileList(lgv_Foldernm_MMR02900, "*", VirtualFile.findFileOnly);
  3181. for(var i=0; i<objFileList.length; i++){
  3182. sFileName = objFileList[i].filename;
  3183. bDeleteFile = VirtualFile.delete(lgv_Foldernm_MMR02900+"\\"+sFileName);
  3184. }
  3185. }catch(e){
  3186. }
  3187. var sFileName = lgv_Foldernm_MMR02900 + "\\"+ rexid + ".jpg";
  3188. gImageSave = false;
  3189. gRexid = "";
  3190. var option = "open=1;save=1;export=1;exportdialog=0;exporttype=jpg;printdailog=0;print=1;zoom=0;exportfilename="+sFileName+";";
  3191. rptf_exeReportPreview30([rexid],[objParam], option);
  3192. //exeReportPreview(rexid, "XMLSTR", "", "", "false" , "false", "jpeg", rexid, "0", "true","", "", "", "", "", ""); //출력
  3193. dsf_createDsRow("ds_send_ocrtaginfo", [ {col:"pid", type:"string", size:256, val:ds_main_profhist.getColumn(currow,"pid")}
  3194. , {col:"formcd", type:"string", size:256, val:ds_main_profhist.getColumn(currow,"formcd")}
  3195. , {col:"orddd", type:"string", size:256, val:ds_main_profhist.getColumn(currow,"orddd")}
  3196. , {col:"profcertseq", type:"string", size:256, val:ds_main_iss.getColumn(0,"profcertseq")}
  3197. ]);
  3198. dsf_createDs("ds_tmp_ocrtaginfo");
  3199. var oParam = {};
  3200. oParam.id = "TXMMR02910";
  3201. oParam.service = "medirecapp.ExtnMediRec";
  3202. oParam.method = "reqGetCertOcrTagInfo";
  3203. oParam.inds = "req=ds_send_ocrtaginfo";
  3204. oParam.outds = "ds_tmp_ocrtaginfo=ocrtaginfo";
  3205. oParam.async = false;
  3206. oParam.callback = "cf_TXMMR02910";
  3207. tranf_submit(oParam);
  3208. if(arErrorCode.pop("TXMMR02910") > -1) {
  3209. dsf_createDs("ds_main_ocrtaginfo");
  3210. ds_main_ocrtaginfo.copyData(ds_tmp_ocrtaginfo);
  3211. dsf_createDsRow("ds_send_ocrtreat", [{col:"pid" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"pid")}
  3212. , {col:"cretno" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"cretno")}
  3213. , {col:"indate" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"orddd")}
  3214. , {col:"instcd" , type:"string", size:256, val:sysf_getUserInfo("dutplceinstcd")}
  3215. , {col:"class" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"ioflag")}
  3216. , {col:"docucd" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"formcd")}
  3217. , {col:"formcd" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"formcd")}
  3218. , {col:"cuser" , type:"string", size:256, val:sysf_getUserInfo("userid")}
  3219. , {col:"ocrtag" , type:"string", size:256, val:ds_main_ocrtaginfo.getColumn(0, "ocrtag")}
  3220. , {col:"formfromdt" , type:"string", size:256, val:ds_main_ocrtaginfo.getColumn(0, "formfromdt")}
  3221. , {col:"orddeptcd" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"orddeptcd")}
  3222. , {col:"orddrid" , type:"string", size:256, val:ds_main_profhist.getColumn(currow,"orddrid")}
  3223. ]);
  3224. //ImageSave( ds_send_ocrtaginfo.getColumn(0, "formcd") , rexid ); //확인필요
  3225. gImageSave = true;
  3226. gRexid = rexid;
  3227. this.setTimer(1, 4000);
  3228. }
  3229. // cyw 이미지저장 2013-12-09 End --------------------------------------------------------------------------------------------------------------------------------
  3230. }
  3231. dsf_makeValue(ds_main_newprof,"formnm", "string", "-"); //이력 전체조회
  3232. dsf_makeValue(ds_main,"selectdept", "string", "-");// 141114 - AYS 추가
  3233. ds_main_issinfo.setColumn(0, "isscnt", "1"); //발급부수 1로 기본 설정
  3234. }
  3235. fGetProfPrntHist();
  3236. }else{
  3237. //dsf_copyDsList(["ds_data_recitem"], ["ds_data_recitem"], "replace" ,this, grp_base.ivw_loader.ivw_base);
  3238. //dsf_makeValue(ds_data_docinfo,"signimge", "string", "");
  3239. ds_data_recitem.clearData();
  3240. ds_data_formrec.clearData();
  3241. ds_data_recitem.addRow();
  3242. ds_data_formrec.addRow();
  3243. grp_base.ivw_loader.lf_getGenFormData(); //기록데이터 취합
  3244. ds_data_recitem.copyData(grp_base.ivw_loader.ivw_base.ds_data_recitem);
  3245. ds_data_formrec.copyData(grp_base.ivw_loader.ds_data_formrec);
  3246. //출력 Report양식처리, 1)진단코드 3자리 점(.)찍기 2)출력내용이 늘어나는 것을 방지하기 위해 제증명내용 instance로 분리
  3247. fDoMakeProfPrntInfo(ivwCtrl);//20150504 i번째 / formcd 확인필요!!
  3248. var objDOM = rptf_createDOM(); // DOM 객체 설정
  3249. var objDOM1 = rptf_createDOM();
  3250. var objDOM2 = rptf_createDOM();
  3251. var objDOM3 = rptf_createDOM();
  3252. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/sealimage",ds_data_docinfo.getColumn(0, "sealimage"));
  3253. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/signimge", objImgeData);
  3254. rptf_setNodeListToDOM(objDOM, "/root/main/recinfo/recitem", ds_data_recitem); // 데이터셋 1
  3255. // 2016.06.15 전원(회송)소견서 개인 서명 추가 및 이미지 저장
  3256. if( nCheckPerPrint == "Y"){
  3257. lf_getPerSignData();
  3258. //var objSignData = objExtCommon.encodeBase64(ds_persigntemp_memo_memo.getColumn(0, "elctsigncnts"));
  3259. rptf_setValueToDOM(objDOM, "/root/hidden/signinfo/signimge", ds_persigntemp_memo_memo.getColumn(0, "elctsigncnts"));
  3260. }
  3261. if( lf_SetMedispclInfo("IMG") == true ){
  3262. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/mdispclsignimge", objExtCommon.encodeBase64(ds_data_medispclinfo.getColumn(0, "signdata")));
  3263. }
  3264. var objParam = new Object();
  3265. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  3266. if(isValidObject("ds_main_contents")){
  3267. rptf_setNodeListToDOM(objDOM1, "/root/main/contents", ds_main_contents); // 데이터셋 2
  3268. objParam.xml_data_XML2 = objDOM1.documentElement.source; // 최상의노드 XML 스트링 추출
  3269. }
  3270. if(isValidObject("ds_main_content1")){
  3271. rptf_setNodeListToDOM(objDOM2, "/root/main/content1", ds_main_content1); // 데이터셋 3
  3272. objParam.xml_data_XML3 = objDOM2.documentElement.source; // 최상의노드 XML 스트링 추출
  3273. }
  3274. if(isValidObject("ds_main_content2")){
  3275. rptf_setNodeListToDOM(objDOM3, "/root/main/content2", ds_main_content2); // 데이터셋 4
  3276. objParam.xml_data_XML4 = objDOM3.documentElement.source; // 최상의노드 XML 스트링 추출
  3277. }
  3278. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0;";
  3279. var sPrnopt = "copies="+prntcnt+";printername="+sPrinterName+";";
  3280. rptf_exeReportPreview30([rexid],[objParam], option, sPrnopt);
  3281. // 2016.06.15 전원(회송)소견서 개인정보 동의서 출력
  3282. if( nCheckPerPrint == "Y" ){
  3283. lf_CheckPrintOCR();
  3284. }
  3285. dsf_makeValue(ds_main_newprof,"formnm", "string", "-");
  3286. dsf_makeValue(ds_main,"selectdept", "string", "-");
  3287. fGetProfPrntHist();
  3288. }
  3289. ds_main_issinfo.setColumn(0, "isscnt", "1"); //출력매수 1매로 적용
  3290. }
  3291. /**
  3292. * @desc : 용도추가 버튼 클릭시, 선택된 제증명의 용도를 변경한 이력을 추가
  3293. * 발행상태는 미발행, 연번호는 생성되지 않는다.
  3294. * @
  3295. * @param :
  3296. * @return :
  3297. * @author : 2008. 08. 13. 오지훈
  3298. * @---------------------------------------------------
  3299. */
  3300. function fReqInsAddPrstUsge(){///
  3301. var currow = ds_main_profhist.rowposition;
  3302. if(currow < 0){
  3303. sysf_messageBox("용도 추가할 제증명 서식을", "C001");
  3304. return;
  3305. }
  3306. var prstusge = "";
  3307. var prstusgenm = "※용도추가※\n[";
  3308. var prstusgecnt = ds_temp_issusge.rowcount;
  3309. if(prstusgecnt == 0){
  3310. return;
  3311. }
  3312. for(var i = 0; i < prstusgecnt; i++){
  3313. prstusge += ds_temp_issusge.getColumn(i,"cdid").concat("^");
  3314. prstusgenm += ds_temp_issusge.getColumn(i,"cdnm").concat("]\n[");
  3315. }
  3316. prstusgenm = prstusgenm.substring(0, prstusgenm.length-1); //마지막의 '['를 제거
  3317. var resval = sysf_messageBox(prstusgenm + "의 용도로", "Q008");
  3318. if(resval == 6){ // '예'를 선택한 경우, 추가된 용도 저장
  3319. ds_send_savedata.clear();
  3320. dsf_makeValue(ds_send_savedata,"pid", "string", ds_main_profhist.getColumn(currow, "pid")); //등록번호
  3321. dsf_makeValue(ds_send_savedata,"orddd", "string", ds_main_profhist.getColumn(currow, "orddd")); //진료일자
  3322. dsf_makeValue(ds_send_savedata,"cretno", "string", ds_main_profhist.getColumn(currow, "cretno")); //생성번호
  3323. dsf_makeValue(ds_send_savedata,"ioflag", "string", ds_main_profhist.getColumn(currow, "ioflag")); //외래입원구분
  3324. dsf_makeValue(ds_send_savedata,"formcd", "string", ds_main_profhist.getColumn(currow, "formcd")); //서식코드
  3325. dsf_makeValue(ds_send_savedata,"issstat", "string", ds_main_profhist.getColumn(currow, "issstat")); //발행상태(임시, 인증저장)
  3326. dsf_makeValue(ds_send_savedata,"issid", "string", ds_main_profhist.getColumn(currow, "issid")); //발행자ID
  3327. // sysf_trace(ds_main_profhist.getColumn(currow, "pid")+" "+ds_main_profhist.getColumn(currow, "orddd")+" "+ds_main_profhist.getColumn(currow, "cretno")+" "+ds_main_profhist.getColumn(currow, "ioflag")+" "+
  3328. // ds_main_profhist.getColumn(currow, "formcd")+" "+ds_main_profhist.getColumn(currow, "issstat")+" "+ds_main_profhist.getColumn(currow, "issid"));
  3329. dsf_makeValue(ds_send_savedata,"issdeptcd", "string", ds_main_profhist.getColumn(currow, "issdeptcd")); //발행자ID
  3330. dsf_makeValue(ds_send_savedata,"issdt", "string", ds_main_profhist.getColumn(currow, "issdt")); //발행일시
  3331. dsf_makeValue(ds_send_savedata,"profcertseq", "string", ds_main_profhist.getColumn(currow, "profcertseq"));//일련번호
  3332. dsf_makeValue(ds_send_savedata,"formrecseq", "BIGDECIMAL", ds_main_profhist.getColumn(currow, "formrecseq")); //서식기록순번
  3333. // sysf_trace(ds_main_profhist.getColumn(currow, "issdeptcd")+" "+ds_main_profhist.getColumn(currow, "issdt")+" "+ds_main_profhist.getColumn(currow, "profcertseq")+" "+ds_main_profhist.getColumn(currow, "formrecseq"));
  3334. dsf_makeValue(ds_send_savedata,"issflag", "string", "10"); //미발행
  3335. dsf_makeValue(ds_send_savedata,"prstusge", "string", prstusge.substring(0, prstusge.length-1)); //용도구분
  3336. dsf_makeValue(ds_send_savedata,"fstrgstrid", "string", sysf_getUserInfo("userid")); //최초등록자ID
  3337. dsf_makeValue(ds_send_savedata,"lastupdtrid", "string", sysf_getUserInfo("userid")); //최종수정자ID
  3338. //sysf_trace(prstusge.substring(0, prstusge.length-1)+" "+sysf_getUserInfo("userid")+" "+sysf_getUserInfo("userid"));
  3339. dsf_makeValue(ds_send_savedata,"fromdd", "string", ds_main_srchprofhist.getColumn(0, "fromdd")); //시작일자-저장 이후 조회용 정보
  3340. dsf_makeValue(ds_send_savedata,"todd", "string", ds_main_srchprofhist.getColumn(0, "todd")); //종료일자-저장 이후 조회용 정보
  3341. dsf_makeValue(ds_send_savedata,"histcd", "string", 0);
  3342. // sysf_trace(ds_main_srchprofhist.getColumn(0, "fromdd")+" "+ds_main_srchprofhist.getColumn(0, "todd"));
  3343. dsf_setTypeFormat(ds_send_savedata, "cretno:INT");
  3344. var oParam = {};
  3345. oParam.id = "TXMMR02906";
  3346. oParam.service = "medirecapp.ExtnMediRec";
  3347. oParam.method = "reqInsAddPrstUsge";
  3348. oParam.inds = "req=ds_send_savedata";
  3349. oParam.outds = "ds_main_profhist=profhist";
  3350. oParam.async = false;
  3351. oParam.callback = "cf_TXMMR02906";
  3352. tranf_submit(oParam);
  3353. if(arErrorCode.pop("TXMMR02906") > -1) {
  3354. fGetProfPrntHist();
  3355. }
  3356. }else{ // '아니오'를 선택한 경우, 선택된 용도 nodeset 제거
  3357. ds_temp_issusge.clear();
  3358. }
  3359. }
  3360. /**
  3361. * @desc : 서식수가 조회
  3362. * @
  3363. * @param : formcd : 서식코드
  3364. * : srchflag : 조회구분(PROF:제증명, OCR:OCR)
  3365. * @return : true : 조회성공
  3366. * : false : 조회실패
  3367. * @---------------------------------------------------
  3368. */
  3369. function fReqGetCalcScorcd(formcd, srchflag){
  3370. dsf_createDsRow("ds_send_reqdata_calcscor", [{col:"formcd", type:"string", size:256, val:formcd}
  3371. , {col:"bizflag", type:"string", size:256, val:srchflag}]);
  3372. ds_main_calcscorinfo.clearData();
  3373. var oParam = {};
  3374. oParam.id = "TRMMR02906";
  3375. oParam.service = "medirecapp.ExtnMediRec";
  3376. oParam.method = "reqGetCalcScorcd";
  3377. oParam.inds = "req=ds_send_reqdata_calcscor";
  3378. oParam.outds = "ds_main_calcscorinfo=calcscorinfo";
  3379. oParam.async = false;
  3380. oParam.callback = "cf_TRMMR02906";
  3381. tranf_submit(oParam);
  3382. if(arErrorCode.pop("TRMMR02906") > -1) {
  3383. return true;
  3384. }else{
  3385. return false;
  3386. }
  3387. }
  3388. /**
  3389. * @desc : 환자 외래원무정보 생성
  3390. * @
  3391. * @param : formcd : 서식코드
  3392. * : srchflag : 조회구분(PROF:제증명, OCR:OCR)
  3393. * @return :
  3394. * @---------------------------------------------------
  3395. */
  3396. function fSetOtptPamInfo(pid, orddd, orddeptcd, orddrid){///
  3397. dsf_makeValue(ds_send_reqdata,"pid", "string", pid);
  3398. dsf_makeValue(ds_send_reqdata,"orddd", "string", orddd);
  3399. dsf_makeValue(ds_send_reqdata,"orddeptcd", "string", orddeptcd);
  3400. dsf_createDs("ds_temp_centcd");
  3401. var oParam = {};
  3402. oParam.id = "TRMMR02920";
  3403. oParam.service = "medirecapp.ExtnMediRec";
  3404. oParam.method = "reqGetCentcd";
  3405. oParam.inds = "req=ds_send_reqdata";
  3406. oParam.outds = "ds_temp_centcd=centcd";
  3407. oParam.async = false;
  3408. oParam.callback = "cf_TRMMR02920";
  3409. tranf_submit(oParam);
  3410. if(arErrorCode.pop("TRMMR02920") > -1) {
  3411. var centcd = ds_temp_centcd.getColumn(0, "centcd");
  3412. if (utlf_isNull(centcd)) {
  3413. centcd = "-";
  3414. }
  3415. }
  3416. var insukind ="";
  3417. var suppkind ="";
  3418. var formcd = ds_send_reqdata_profhist.getColumn(0, "formcd");
  3419. var srcformcd = ds_send_reqdata_profhist.getColumn(0, "srcformcd");
  3420. //보험유형을 넘겨야 하는 서식들
  3421. if ( srcformcd == "1300014808" || srcformcd == "1100012259" || srcformcd == "0000002536" || srcformcd == "1400015254" || srcformcd == "1000008583" ) {
  3422. var insukind = ds_main_patinfo.getColumn(0, "insukind");
  3423. var suppkind = ds_main_patinfo.getColumn(0, "suppkind");
  3424. }
  3425. dsf_makeValue(ds_main_acptoccinfo,"otpt_flag", "string", "I");
  3426. dsf_makeValue(ds_main_acptoccinfo,"otpt_pid", "string", pid);
  3427. dsf_makeValue(ds_main_acptoccinfo,"otpt_orddd", "string", orddd);
  3428. dsf_makeValue(ds_main_acptoccinfo,"otpt_orddeptcd", "string", orddeptcd);
  3429. dsf_makeValue(ds_main_acptoccinfo,"otpt_centcd", "string", centcd);
  3430. dsf_makeValue(ds_main_acptoccinfo,"otpt_orddrid", "string", orddrid);
  3431. dsf_makeValue(ds_main_acptoccinfo,"otpt_ordtm", "string", "0000");
  3432. dsf_makeValue(ds_main_acptoccinfo,"otpt_ordtype", "string", "O");
  3433. dsf_makeValue(ds_main_acptoccinfo,"otpt_medamtestmyn", "string", "N");
  3434. dsf_makeValue(ds_main_acptoccinfo,"otpt_medamtfreeresn", "string", "01");
  3435. dsf_makeValue(ds_main_acptoccinfo,"otpt_insukind", "string", insukind);
  3436. dsf_makeValue(ds_main_acptoccinfo,"otpt_suppkind", "string", suppkind);
  3437. dsf_makeValue(ds_main_acptoccinfo,"otpt_rsrvflag", "string", "3");
  3438. dsf_makeValue(ds_main_acptoccinfo,"otpt_etcordflag", "string", "");
  3439. dsf_makeValue(ds_main_acptoccinfo,"otpt_instcd", "string", sysf_getUserInfo("dutplceinstcd"));
  3440. dsf_makeValue(ds_main_acptoccinfo,"sess_userid", "string", sysf_getUserInfo("userid"));
  3441. dsf_makeValue(ds_main_acptoccinfo,"otpt_remfact", "string", "제증명 - 진단서발급");
  3442. }
  3443. /**
  3444. * @desc : 제증명정보 생성
  3445. * @
  3446. * @param : status : 처리구분(0:외래가접수, 1:외래/입원수진정보)
  3447. * : pid : 등록번호
  3448. * : orddd : 진료일자
  3449. * : cretno : 생성번호
  3450. * : ioflag : 외래입원구분
  3451. * @return :
  3452. * @---------------------------------------------------
  3453. */
  3454. function fSetProfInfo(status, pid, orddd, cretno, ioflag, formcd, orddeptcd, orddrid, prntcnt, extraflag, issflag, holograpflag, prstusge) {/// // 용도구분(prstusge) - 2010.05.04 김찬영 추가
  3455. dsf_createDs("ds_main_newprof");
  3456. // sysf_trace(status+" "+ pid+" "+orddd +" "+cretno +" "+ ioflag+" "+formcd +" "+ orddrid+" "+ orddeptcd+" "+utlf_getCurrentDate().concat(utlf_getCurrentTime())
  3457. // +" "+issflag +" "+prstusge +" "+ sysf_getUserInfo("userid")+" "+ prntcnt+" "+extraflag +" "+holograpflag +" "+sysf_getUserInfo("dutplcecd"));
  3458. dsf_makeValue(ds_main_newprof,"status" , "string" , status);
  3459. dsf_makeValue(ds_main_newprof,"pid" , "string" , pid); //등록번호
  3460. dsf_makeValue(ds_main_newprof,"orddd" , "string" , orddd); //진료일자
  3461. dsf_makeValue(ds_main_newprof,"cretno" , "string" , cretno); //생성번호
  3462. dsf_makeValue(ds_main_newprof,"ioflag" , "string" , ioflag); //외래입원구분
  3463. dsf_makeValue(ds_main_newprof,"formcd" , "string" , formcd); //서식코드
  3464. dsf_makeValue(ds_main_newprof,"issstat" , "string" , "I"); //발행상태(임시, 인증저장)
  3465. dsf_makeValue(ds_main_newprof,"issid" , "string" , orddrid); //발행자ID
  3466. dsf_makeValue(ds_main_newprof,"issdeptcd" , "string" , orddeptcd); //발행자ID
  3467. dsf_makeValue(ds_main_newprof,"issdt" , "string" , utlf_getCurrentDate().concat(utlf_getCurrentTime())); //발행일시
  3468. dsf_makeValue(ds_main_newprof,"profcertseq" , "string" , ""); //일련번호
  3469. dsf_makeValue(ds_main_newprof,"formrecseq" , "BIGDECIMAL" , 0); //서식기록순번
  3470. dsf_makeValue(ds_main_newprof,"issflag" , "string" , issflag); //발행
  3471. dsf_makeValue(ds_main_newprof,"prstusge" , "string" , prstusge); //용도구분 - 2010.05.04 김찬영 추가
  3472. dsf_makeValue(ds_main_newprof,"fstrgstrid" , "string" , sysf_getUserInfo("userid")); //최초등록자ID
  3473. dsf_makeValue(ds_main_newprof,"lastupdtrid" , "string" , sysf_getUserInfo("userid")); //최종수정자ID
  3474. dsf_makeValue(ds_main_newprof,"histcd" , "string" , 0);
  3475. dsf_makeValue(ds_main_newprof,"orddept" , "string" , ""); //진료과
  3476. dsf_makeValue(ds_main_newprof,"doctnm" , "string" , ""); //진료의이름
  3477. dsf_makeValue(ds_main_newprof,"licnsno" , "string" , ""); //면허번호
  3478. dsf_makeValue(ds_main_newprof,"formnm" , "string" , ""); //서식지명
  3479. dsf_makeValue(ds_main_newprof,"yearseqno" , "string" , ""); //연번호
  3480. dsf_makeValue(ds_main_newprof,"prntcnt" , "string" , prntcnt); //발급부수
  3481. dsf_makeValue(ds_main_newprof,"extraflag" , "string" , extraflag); //사본구분
  3482. dsf_makeValue(ds_main_newprof,"holograpflag", "string" , holograpflag);//자필제증명구분
  3483. //2009-07-15 오전 11:31:47 강지훈 추가 : 연번호발행이후에 일부제증명 신규작성할때 오류발생하는것을 방지
  3484. dsf_makeValue(ds_main_newprof,"orddeptcd", "string" , sysf_getUserInfo("dutplcecd"));
  3485. dsf_makeValue(ds_main_newprof,"orddoctid", "string" , sysf_getUserInfo("userid"));
  3486. }
  3487. /**
  3488. * @desc : 제증명 연번호 발행
  3489. * @
  3490. * @param :
  3491. * @return :
  3492. * @---------------------------------------------------
  3493. */
  3494. function fReqInsCretYearNo(){///
  3495. //건진센터에서 발행하는 경우, 건강진단서, 채용신검을 제외하고는 권한 없음 메시지를 출력함
  3496. var dutplcecd = sysf_getUserInfo("dutplcecd");
  3497. if(dutplcecd == "2370106000" || dutplcecd == "2370144000" ||
  3498. dutplcecd == "2380000000" || dutplcecd == "2370301000" || dutplcecd == "2370302000"){
  3499. sysf_messageBox("발급 권한이", "I004");
  3500. return;
  3501. }
  3502. var pid = ds_main_patinfo.getColumn(0, "pid");
  3503. if(utlf_isNull(memoviewflag)){
  3504. memoviewflag = popmemoviewflag;
  3505. }
  3506. frmf_setParameter("SPMMR02300_pid" , pid );
  3507. frmf_setParameter("SPMMR02300_memoviewflag" , memoviewflag );
  3508. frmf_setParameter("SPMMR02300_signflag" , signflag );
  3509. frmf_setParameter("SPMMR02300_signipcnt" , signipcnt );
  3510. frmf_modal("SPMMR02300", "SPMMR02300", "", "", "" ,"", "","","","","","","M");
  3511. var useyn = frmf_getParameter("SPMMR02300_useyn");
  3512. if(useyn == "Y"){
  3513. var formcd = frmf_getParameter("SPMMR02300_formcd");
  3514. var formnm = frmf_getParameter("SPMMR02300_formnm");
  3515. var orddeptcd = frmf_getParameter("SPMMR02300_orddeptcd");
  3516. var orddrid = frmf_getParameter("SPMMR02300_orddrid");
  3517. var ioflag = frmf_getParameter("SPMMR02300_ioflag");
  3518. var cretno = frmf_getParameter("SPMMR02300_cretno");
  3519. var orddd = frmf_getParameter("SPMMR02300_orddd");
  3520. var prntcnt = frmf_getParameter("SPMMR02300_prntcnt");
  3521. var extraflag = frmf_getParameter("SPMMR02300_extraflag");
  3522. var freeflag = frmf_getParameter("SPMMR02300_freeflag");
  3523. var status = frmf_getParameter("SPMMR02300_status");
  3524. var handicap = frmf_getParameter("SPMMR02300_handicap");
  3525. var extraflag = frmf_getParameter("SPMMR02300_extraflag");
  3526. var issflag = frmf_getParameter("SPMMR02300_issflag");
  3527. var holograpflag = frmf_getParameter("SPMMR02300_holograpflag");
  3528. var prstusge = frmf_getParameter("SPMMR02300_prstusge"); //용도구분 - 2010.05.04 김찬영 추가
  3529. var certmemo = frmf_getParameter("SPMMR02300_certmemo"); // 발행Comment - 2014.01.10 cyw
  3530. var elctsignkey = frmf_getParameter("SPMMR02300_elctsignkey"); // 발행사인키 - 2014.01.16 cyw
  3531. var elctsigncnts = frmf_getParameter("SPMMR02300_elctsigncnts"); // 발행사인내용 - 2014.01.16 cyw
  3532. // sysf_trace(useyn+" "+formcd +" "+formnm +" "+ orddeptcd+" "+ orddrid+" "+ioflag +" "+ cretno+" "+ orddd+" "+prntcnt +" "+extraflag +" "+ freeflag+" "+status);
  3533. // sysf_trace(handicap+" "+extraflag +" "+issflag +" "+ holograpflag+" "+ prstusge+" "+certmemo +" "+ elctsignkey+" "+ elctsigncnts);
  3534. // sysf_trace(pid+" "+utlf_getCurrentDate() +" "+orddeptcd +" "+ orddrid);
  3535. // 발행수가 초기화
  3536. ds_send_reqdata_rcptlist.clearData();
  3537. fSetOtptPamInfo(pid, utlf_getCurrentDate(), orddeptcd, orddrid); //외래접수정보 설정
  3538. if(freeflag != "Y"){ //항상 무료인 부서와 무료를 check 하지 않은 경우
  3539. if(fReqGetCalcScorcd(formcd, "PROF")){ //재증명 수가정보 조회
  3540. var calcscorcd = ds_main_calcscorinfo.getColumn(0, "calcscorcd"); //model.getValue("/root/main/calcscorinfo/calcscorlist/calcscorcd");
  3541. if(!utlf_isNull(calcscorcd)){
  3542. var calcNodeCnt = ds_main_calcscorinfo.rowcount;
  3543. fCalsSorcSave("", calcNodeCnt);
  3544. }else{
  3545. var rtnval = sysf_messageBox("해당 제증명 수가 정보가 없습니다.", "Q003");
  3546. if(rtnval == 7){
  3547. return;
  3548. }
  3549. }
  3550. }
  3551. }
  3552. fSetProfInfo(status, pid, orddd, cretno, ioflag, formcd, orddeptcd, orddrid, prntcnt, extraflag, issflag, holograpflag, prstusge); //제증명정보 설정, 용도구분(prstusge) - 2010.05.04 김찬영 추가
  3553. dsf_makeValue(ds_main_newprof,"prntdt", "string" , utlf_getCurrentDate().concat(utlf_getCurrentTime())); //발급시간 추가
  3554. dsf_copyDs(ds_send_reqdata_prof,ds_main_newprof);
  3555. dsf_copyDs(ds_send_reqdata_acptoccinfo,ds_main_acptoccinfo);
  3556. dsf_makeValue(ds_send_reqdata_prof,"certmemo", "string" , certmemo); // 2014.01.10
  3557. dsf_makeValue(ds_send_reqdata_prof,"elctsignkey", "string" , elctsignkey); // 2014.01.16
  3558. dsf_makeValue(ds_send_reqdata_prof,"elctsigncnts", "string" , elctsigncnts); // 2014.01.16
  3559. if(!utlf_isNull(handicap)){
  3560. handicap = handicap.split("^");
  3561. if(handicap.length > 0){
  3562. dsf_makeValue(ds_send_reqdata_handicap,"handicapflag", "string" , handicap[0] );
  3563. dsf_makeValue(ds_send_reqdata_handicap,"handicapgrde", "string" , handicap[1] );
  3564. dsf_makeValue(ds_send_reqdata_handicap,"handicapno", "string" , handicap[2] );
  3565. dsf_makeValue(ds_send_reqdata_handicap,"claiminstcd", "string" , handicap[3] );
  3566. }
  3567. }
  3568. /*
  3569. sysf_trace(ds_send_reqdata_acptoccinfo.saveXML());
  3570. sysf_trace(ds_send_reqdata_prof.saveXML());
  3571. sysf_trace(ds_send_reqdata_rcptlist.saveXML());
  3572. sysf_trace(ds_send_reqdata_handicap.saveXML());
  3573. */
  3574. dsf_setDefaultVal(ds_send_reqdata_prof, "histcd:0");
  3575. dsf_setTypeFormat(ds_send_reqdata_prof, "cretno:INT");
  3576. var oParam = {};
  3577. oParam.id = "TXMMR02901";
  3578. oParam.service = "medirecapp.ExtnMediRec";
  3579. oParam.method = "reqInsCretYearNo";
  3580. oParam.inds = "acptoccinfo=ds_send_reqdata_acptoccinfo prof=ds_send_reqdata_prof reqrcptlist=ds_send_reqdata_rcptlist handicap=ds_send_reqdata_handicap";
  3581. oParam.outds = "ds_main_iss=yearseqnoinfo";
  3582. oParam.async = false;
  3583. oParam.callback = "cf_TXMMR02901";
  3584. tranf_submit(oParam);
  3585. if(arErrorCode.pop("TXMMR02901") > -1) {
  3586. if(formcd == "0800000552"){ //방문간호지시서인 경우 무료발급사유가 연번호
  3587. var yearseqno = ds_main_iss.getColumn(0, "freeissresn");
  3588. }else{
  3589. var yearseqno = ds_main_iss.getColumn(0, "yearseqno");
  3590. }
  3591. var hngnm = ds_main_patinfo.getColumn(0, "hngnm");
  3592. if(!utlf_isNull(yearseqno)){
  3593. var msgstr = "환자 : [" + pid + "]" + hngnm + "\n서식 : [" + formnm + "]\n연번호 : [" + yearseqno + "]로";
  3594. sysf_messageBox(msgstr, "I001");
  3595. dsf_makeValue(ds_main_newprof,"formnm", "string" , "-");
  3596. dsf_makeValue(ds_main,"selectdept", "string", "-"); // 141114 - AYS 추가
  3597. fGetProfPrntHist();
  3598. }
  3599. }
  3600. frmf_setParameter("SPMMR02300_useyn" , "N");
  3601. frmf_setParameter("SPMMR02300_formcd" , "");
  3602. frmf_setParameter("SPMMR02300_formnm" , "");
  3603. frmf_setParameter("SPMMR02300_orddeptcd", "");
  3604. frmf_setParameter("SPMMR02300_orddrid" , "");
  3605. frmf_setParameter("SPMMR02300_ioflag" , "");
  3606. frmf_setParameter("SPMMR02300_cretno" , "");
  3607. frmf_setParameter("SPMMR02300_orddd" , "");
  3608. frmf_setParameter("SPMMR02300_prntcnt" , "");
  3609. frmf_setParameter("SPMMR02300_status" , "");
  3610. frmf_setParameter("SPMMR02300_handicap" , "");
  3611. frmf_setParameter("SPMMR02300_issflag" , "");
  3612. frmf_setParameter("SPMMR02300_prstusge" , ""); //용도구분 - 2010.05.04 김찬영 추가
  3613. frmf_setParameter("SPMMR02300_certmemo" , ""); // 발행Comment - 2014.01.10 cyw
  3614. frmf_setParameter("SPMMR02300_elctsignkey" , "");
  3615. frmf_setParameter("SPMMR02300_elctsigncnts" , "");
  3616. }
  3617. }
  3618. /**
  3619. * @desc : 환자진료정보 조회 및 설정
  3620. * @
  3621. * @param :
  3622. * @return :
  3623. * @---------------------------------------------------
  3624. */
  3625. function fReqGetComnPatOrdInfo(pid){///
  3626. grp_base.btn_cretotpt.visible = false; //새로운 환자조회시 가접수생성 버튼 hidden
  3627. // 등록번호로 조회할때 환자정보및 발행용도 reset
  3628. ds_main_patinfo.clearData(); //환자정보 삭제
  3629. ds_main_patinfo.addRow();
  3630. dsf_makeValue(ds_send_reqdata,"pid" , "string",pid);
  3631. dsf_makeValue(ds_send_reqdata,"orddeptcd", "string","-");
  3632. dsf_makeValue(ds_send_reqdata,"orddrid", "string","-");
  3633. dsf_createDsRow("ds_send_reqdata", [{col:"pid", type:"string", size:256, val:pid}
  3634. ,{col:"orddeptcd", type:"string", size:256, val:"-"}
  3635. ,{col:"orddrid", type:"string", size:256, val:""}
  3636. ,{col:"ordtype", type:"string", size:256, val:""}
  3637. ,{col:"exceptordtype", type:"string", size:256, val:"Y"}
  3638. ,{col:"srchmode", type:"string", size:256, val:""}
  3639. ,{col:"dschflag", type:"string", size:256, val:""}
  3640. ,{col:"rsrvflag", type:"string", size:256, val:""}
  3641. ,{col:"nopay", type:"string", size:256, val:""}
  3642. ,{col:"ordddfr", type:"string", size:256, val:""}
  3643. ,{col:"ordddto", type:"string", size:256, val:""}
  3644. ,{col:"amtyn", type:"string", size:256, val:""}]);
  3645. dsf_setDefaultVal(ds_send_reqdata, "orddeptcd:-,orddrid:-");
  3646. var oParam = {};
  3647. oParam.id = "TRMMR05501";
  3648. oParam.service = "medirecapp.ExtnMediRec";
  3649. oParam.method = "reqGetPatHistList";
  3650. oParam.inds = "req=ds_send_reqdata";
  3651. oParam.outds = "ds_main_result_pathistlist=pathistlist";
  3652. oParam.async = false;
  3653. oParam.callback = "cf_TRMMR05501";
  3654. tranf_submit(oParam);
  3655. if(arErrorCode.pop("TRMMR05501") > -1){
  3656. if(ds_main_result_pathistlist.rowcount > 1){
  3657. var objArg = new Object();
  3658. objArg.arg_ds_main_result_pathistlist = ds_main_result_pathistlist;
  3659. frmf_modal("SPMMR05700", "SPMMR05700", objArg ,"",1, 10, 10, "","","","","","M"); //확인필요 multi, 환자정보
  3660. if(frmf_getParameter("SPMMR05700_useyn")=="Y"){
  3661. var pid = ds_main_result_pathistlist.getColumn(0,"pid");
  3662. var orddd = ds_main_result_pathistlist.getColumn(0,"orddd");
  3663. var cretno = ds_main_result_pathistlist.getColumn(0,"cretno");
  3664. var hngnm = ds_main_result_pathistlist.getColumn(0,"hngnm");
  3665. var sex = ds_main_result_pathistlist.getColumn(0,"sex");
  3666. var age = ds_main_result_pathistlist.getColumn(0,"age");
  3667. var brthdd = ds_main_result_pathistlist.getColumn(0,"brthdd");
  3668. var rrgstno1 = ds_main_result_pathistlist.getColumn(0,"rrgstno1");
  3669. var rrgstno2 = ds_main_result_pathistlist.getColumn(0,"rrgstno2");
  3670. var addr = ds_main_result_pathistlist.getColumn(0,"addr");
  3671. var hometel = ds_main_result_pathistlist.getColumn(0,"hometel");
  3672. var mpphontel= ds_main_result_pathistlist.getColumn(0,"mpphontel");
  3673. var ioflag = ds_main_result_pathistlist.getColumn(0,"ordtype");
  3674. var orddeptcd= ds_main_result_pathistlist.getColumn(0,"orddeptcd");
  3675. var orddeptnm= ds_main_result_pathistlist.getColumn(0,"orddeptnm");
  3676. var orddrid = ds_main_result_pathistlist.getColumn(0,"orddrid");
  3677. var insukind = ds_main_result_pathistlist.getColumn(0,"insukind");
  3678. var suppkind = ds_main_result_pathistlist.getColumn(0,"suppkind");
  3679. var dschdd = ds_main_result_pathistlist.getColumn(0,"dschdd"); // 2009.09.28 퇴원일 추가 (상급병실확인서)
  3680. frmf_setParameter("SPMMR05700_useyn", "N");
  3681. }else{
  3682. frmf_setParameter("SPMMR05700_useyn", "N");
  3683. return;
  3684. }
  3685. }else if(ds_main_result_pathistlist.rowcount == 1){
  3686. var pid = ds_main_result_pathistlist.getColumn(0,"pid");
  3687. var orddd = ds_main_result_pathistlist.getColumn(0,"orddd");
  3688. var cretno = ds_main_result_pathistlist.getColumn(0,"cretno");
  3689. var hngnm = ds_main_result_pathistlist.getColumn(0,"hngnm");
  3690. var sex = ds_main_result_pathistlist.getColumn(0,"sex");
  3691. var age = ds_main_result_pathistlist.getColumn(0,"age");
  3692. var brthdd = ds_main_result_pathistlist.getColumn(0,"brthdd");
  3693. var rrgstno1 = ds_main_result_pathistlist.getColumn(0,"rrgstno1");
  3694. var rrgstno2 = ds_main_result_pathistlist.getColumn(0,"rrgstno2");
  3695. var addr = ds_main_result_pathistlist.getColumn(0,"addr");
  3696. var hometel = ds_main_result_pathistlist.getColumn(0,"hometel");
  3697. var mpphontel= ds_main_result_pathistlist.getColumn(0,"mpphontel");
  3698. var ioflag = ds_main_result_pathistlist.getColumn(0,"ordtype");
  3699. var orddeptcd= ds_main_result_pathistlist.getColumn(0,"orddeptcd");
  3700. var orddeptnm= ds_main_result_pathistlist.getColumn(0,"orddeptnm");
  3701. var orddrid = ds_main_result_pathistlist.getColumn(0,"orddrid");
  3702. var insukind = ds_main_result_pathistlist.getColumn(0,"insukind");
  3703. var suppkind = ds_main_result_pathistlist.getColumn(0,"suppkind");
  3704. var dschdd = ds_main_result_pathistlist.getColumn(0,"dschdd"); // 2009.09.28 퇴원일 추가 (상급병실확인서)
  3705. }else{
  3706. dsf_createDsRow("ds_send_reqdata", [{col:"pid", type:"string", size:256, val:pid}]);
  3707. ds_temp_patinfo.clearData();
  3708. var oParam = {};
  3709. oParam.id = "TRMMR02909";
  3710. oParam.service = "medirecapp.ExtnMediRec";
  3711. oParam.method = "reqGetPatInfo";
  3712. oParam.inds = "req=ds_send_reqdata";
  3713. oParam.outds = "ds_temp_patinfo=patinfo";
  3714. oParam.async = false;
  3715. oParam.callback = "cf_TRMMR02909";
  3716. tranf_submit(oParam);
  3717. if(arErrorCode.pop("TRMMR02909") > -1){
  3718. if(ds_temp_patinfo.rowcount == 0){
  3719. sysf_messageBox("환자정보가", "I004");
  3720. return;
  3721. }
  3722. var sex = ds_temp_patinfo.getColumn(0,"sex");
  3723. var age = ds_temp_patinfo.getColumn(0,"age");
  3724. var rrgstno1 = ds_temp_patinfo.getColumn(0,"rrgstno1");
  3725. var rrgstno2 = ds_temp_patinfo.getColumn(0,"rrgstno2");
  3726. dsf_makeValue(ds_main_patinfo,"pid" , "string",pid);
  3727. dsf_makeValue(ds_main_patinfo,"hngnm" , "string",ds_temp_patinfo.getColumn(0,"hngnm"));
  3728. dsf_makeValue(ds_main_patinfo,"age" , "string",sex.concat("/").concat(age));
  3729. dsf_makeValue(ds_main_patinfo,"rrgstno1", "string",rrgstno1 + "-" + rrgstno2.substring(0, 1) + "******");
  3730. dsf_makeValue(ds_main_patinfo,"addr" , "string",ds_temp_patinfo.getColumn(0,"addr"));
  3731. dsf_makeValue(ds_main_patinfo,"hometel" , "string",ds_temp_patinfo.getColumn(0,"hometel"));
  3732. dsf_makeValue(ds_main_patinfo,"mpphontel" , "string",ds_temp_patinfo.getColumn(0,"mpphontel")); // 20190806 금정화 추가
  3733. dsf_makeValue(ds_main_patinfo,"brthdd" , "string",ds_temp_patinfo.getColumn(0,"brthdd"));
  3734. dsf_makeValue(ds_main_patinfo,"insukind", "string",ds_temp_patinfo.getColumn(0,"insukind"));
  3735. dsf_makeValue(ds_main_patinfo,"suppkind", "string",ds_temp_patinfo.getColumn(0,"suppkind"));
  3736. }
  3737. grp_base.btn_cretotpt.visible = true; //원무수진 정보가 없는 환자인 경우, 가접수생성 버튼 visible
  3738. return false;
  3739. }
  3740. dsf_makeValue(ds_main_patinfo,"pid" , "string",pid);
  3741. dsf_makeValue(ds_main_patinfo,"orddd" , "string",orddd);
  3742. dsf_makeValue(ds_main_patinfo,"cretno" , "string",cretno);
  3743. dsf_makeValue(ds_main_patinfo,"hngnm" , "string",hngnm);
  3744. dsf_makeValue(ds_main_patinfo,"rrgstno1" , "string",rrgstno1 + "-" + rrgstno2.substring(0, 1) + "******");
  3745. dsf_makeValue(ds_main_patinfo,"age" , "string",sex.concat("/").concat(age));
  3746. dsf_makeValue(ds_main_patinfo,"brthdd" , "string",brthdd);
  3747. dsf_makeValue(ds_main_patinfo,"addr" , "string",addr);
  3748. dsf_makeValue(ds_main_patinfo,"ioflag" , "string",ioflag);
  3749. dsf_makeValue(ds_main_patinfo,"orddeptcd" , "string",orddeptcd);
  3750. dsf_makeValue(ds_main_patinfo,"orddeptnm" , "string",orddeptnm);
  3751. dsf_makeValue(ds_main_patinfo,"hometel" , "string", hometel);
  3752. dsf_makeValue(ds_main_patinfo,"mpphontel" , "string", mpphontel); // 20190806 금정화 추가
  3753. dsf_makeValue(ds_main_patinfo,"orddrid" , "string",orddrid);
  3754. dsf_makeValue(ds_main_patinfo,"insukind" , "string",insukind);
  3755. dsf_makeValue(ds_main_patinfo,"suppkind" , "string",suppkind);
  3756. dsf_makeValue(ds_main_patinfo,"dschdd" , "string", dschdd); // 2009.09.28 퇴원일 추가 (상급병실확인서)
  3757. fSetRcptpossynmsg(ds_main_patinfo.getColumn(0, "pid")); //무인수납 가능 여부 조회, 2010.03.08 주희경
  3758. // 환자 보험정보 조회
  3759. fGetPatInsuranceInfo();
  3760. if(grp_base.swc_prof.tabindex == 2){
  3761. var ev = new ClickEventInfo;
  3762. frmf_inputEnterKey("grp_base.swc_prof.case3.btn_profhist", "onclick", ev );
  3763. }
  3764. frmf_setParameter("SSMMR01100_getTopYn", "N");
  3765. grp_base.ivw_loader.fSetPamInfo(pid, orddd, cretno, ioflag);
  3766. grp_base.ivw_loader.ivw_base.url="";
  3767. //grp_base.ivw_loader.url ="";
  3768. //grp_base.ivw_loader.url = "emr_medirecxp::SSMMR01100_서식로더.xfdl";
  3769. }
  3770. }
  3771. /**
  3772. * @desc : 환자검색 팝업으로 조회
  3773. * @
  3774. * @param :
  3775. * @return :
  3776. * @author : 오지훈
  3777. * @---------------------------------------------------
  3778. */
  3779. function fOpenPatSrchWnd(){///
  3780. var rrgstno2 = "";
  3781. //환자정보 조회팝업에 기본 정보 넘겨준다.
  3782. dsf_makeValue(ds_tmp,"pid", "string", ds_main_patinfo.getColumn(0,"pid"));
  3783. dsf_makeValue(ds_tmp,"hngnm", "string", ds_main_patinfo.getColumn(0,"hngnm"));
  3784. dsf_makeValue(ds_tmp,"srchcond","string", ds_main_patinfo.getColumn(0,"srchcond"));
  3785. dsf_makeValue(ds_tmp,"autoflag","string", "Y"); // 1건인경우 자동으로닫힘
  3786. var objArg = new Object();
  3787. objArg.arg_ds_send = ds_tmp;
  3788. frmf_modal("SPPMC02500", "SPPMC02500",objArg, "", 1, 10,10,"","","","","","M" );
  3789. if(isValidObject("ds_patinfolist")){ //환자조회 확인 누를 시
  3790. var pid = ds_patinfolist.getColumn(0,"pid"); //x 창닫을 시 확인필요
  3791. ds_patinfolist.clear();
  3792. if(!utlf_isNull(pid)){
  3793. fReqGetComnPatOrdInfo(pid, "-");
  3794. dsf_makeValue(ds_main_newprof,"formnm", "string", "-");
  3795. dsf_makeValue(ds_main,"selectdept", "string", "-"); // 141114 - AYS 추가
  3796. grp_base.swc_prof.tabindex = 2;
  3797. }
  3798. }
  3799. }
  3800. /**
  3801. * @desc : 환자검색 팝업으로 조회
  3802. * @
  3803. * @param :
  3804. * @return :
  3805. * @author : 오지훈
  3806. * @---------------------------------------------------
  3807. */
  3808. function fDoMakeProfPrntInfo(ivwCtrl)
  3809. {///0000001303/0800003696 병사용진단서/병사용진단서(안과)
  3810. try
  3811. {
  3812. //진단코드 3자리마다 점(.)표시
  3813. // 진단명 그리드의 진단명 컬럼을 카운트
  3814. ds_data_recitem.filter("degnitemlevlcd=='0016650.0000960.0000960'");
  3815. var totcnt = ds_data_recitem.rowcount;
  3816. ds_data_recitem.filter("");
  3817. // 20190819 서식생성기관련 수정
  3818. var FormMastDs = null;
  3819. if( this.components["grp_base"] != null && grp_base.components["ivw_loader"] != null ){
  3820. FormMastDs = grp_base.ivw_loader.objects["ds_data_formmast"];
  3821. }else if(this.components["ivw_loader"]){
  3822. FormMastDs = ivw_loader.objects["ds_data_formmast"];
  3823. }
  3824. if( FormMastDs == null ){
  3825. sysf_messageBox("서식정보(FORMMAST)를 찾을 수 없습니다. 전산실로 문의바랍니다.", "I");
  3826. return;
  3827. }
  3828. var formcd = FormMastDs.getColumn(0, "formcd");
  3829. var srcformcd = FormMastDs.getColumn(0, "srcformcd");
  3830. for(var i = 0; i < totcnt; i++){
  3831. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0004249' && rowno == '"+i+"' && colno == '0'");
  3832. var diagroflag = ds_data_recitem.getColumn(0, "reccnts");
  3833. ds_data_recitem.filter("");
  3834. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0001443' && rowno == '"+i+"' && colno == '1'");
  3835. var diagkindflag = ds_data_recitem.getColumn(0, "reccnts");
  3836. ds_data_recitem.filter("");
  3837. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3838. var rectermcd = ds_data_recitem.getColumn(0, "rectermcd");
  3839. ds_data_recitem.filter("");
  3840. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3841. var rectermnm = ds_data_recitem.getColumn(0, "rectermnm");
  3842. ds_data_recitem.filter("");
  3843. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3844. var reccnts = ds_data_recitem.getColumn(0, "reccnts");
  3845. ds_data_recitem.filter("");
  3846. //alert(diagroflag+" "+diagkindflag +" "+ rectermcd+" "+rectermnm +" "+ reccnts+" "+ grp_base.ivw_loader.ds_data_formmast.getColumn(0, "langflag"));
  3847. var langflag = FormMastDs.getColumn(0, "langflag");
  3848. if(langflag == "KO"){
  3849. if(diagkindflag == "M"){
  3850. rectermnm = "(주)".concat(rectermnm);
  3851. }
  3852. if(diagroflag == "R"){
  3853. rectermnm = "(의증)".concat(rectermnm);
  3854. }
  3855. if(!utlf_isNull(reccnts)){
  3856. reccnts = " [" + reccnts + "]";
  3857. }
  3858. //추가 null일때
  3859. if(utlf_isNull(reccnts)){
  3860. reccnts = "";
  3861. }
  3862. if(utlf_isNull(rectermnm)){
  3863. rectermnm = "";
  3864. }
  3865. //2012/12/05 Start
  3866. //1000007215-->1100011577로 변경
  3867. if(formcd != "1100011577" && formcd != "1500016910"){ //20100621-kys-근로능력평가진단서는 코멘트를 진단명에 달지 않는다.
  3868. rectermnm = rectermnm + reccnts;
  3869. }
  3870. //2012/12/05 End
  3871. }else if(langflag == "EN"){
  3872. if(diagkindflag == "M"){
  3873. rectermnm = "(Principle diagnosis)".concat(rectermnm);
  3874. }
  3875. if(diagroflag == "R"){
  3876. rectermnm = "(R/O)".concat(rectermnm);
  3877. }
  3878. if(!utlf_isNull(reccnts)){
  3879. reccnts = " [" + reccnts + "]";
  3880. }
  3881. //추가 null일때
  3882. if(utlf_isNull(reccnts)){
  3883. reccnts = "";
  3884. }
  3885. if(utlf_isNull(rectermnm)){
  3886. rectermnm = "";
  3887. }
  3888. //2012/12/05 Start
  3889. //1000007215-->1100011577로 변경
  3890. if(formcd != "1100011577" && formcd != "1500016910"){ //20100621-kys-근로능력평가진단서는 코멘트를 진단명에 달지 않는다.
  3891. rectermnm = rectermnm + reccnts;
  3892. }
  3893. //2012/12/05 End
  3894. }
  3895. rectermcd = removeChar(rectermcd, "."); //점을 제거
  3896. rectermcd = insertChar(rectermcd, ".", 3); // 3개 단위로 점을 입력
  3897. if(!utlf_isNull(rectermcd)){
  3898. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3899. ds_data_recitem.setColumn(0, "rectermcd", rectermcd);
  3900. ds_data_recitem.filter("");
  3901. }
  3902. if(!utlf_isNull(rectermnm)){
  3903. ds_data_recitem.filter("degnitemlevlcd == '0016650.0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3904. ds_data_recitem.setColumn(0, "rectermnm", rectermnm);
  3905. ds_data_recitem.filter("");
  3906. }
  3907. }
  3908. //2012/12/05 Start 근로능력평가용 진단서에서 평가대상 질환명2일 경우
  3909. if(formcd == "1100011577" || formcd == "1500016910"){
  3910. ds_data_recitem.filter("degnitemlevlcd == '0000960.0000960'");
  3911. var totcnt = ds_data_recitem.rowcount;
  3912. ds_data_recitem.filter("");
  3913. for(var i = 0; i < totcnt; i++){
  3914. ds_data_recitem.filter("degnitemlevlcd == '0000960.0004249' && rowno == '"+i+"' && colno == '0'");
  3915. var diagroflag = ds_data_recitem.getColumn(0, "reccnts");
  3916. ds_data_recitem.filter("");
  3917. ds_data_recitem.filter("degnitemlevlcd == '0000960.0001443' && rowno == '"+i+"' && colno == '1'");
  3918. var diagkindflag = ds_data_recitem.getColumn(0, "reccnts");
  3919. ds_data_recitem.filter("");
  3920. ds_data_recitem.filter("degnitemlevlcd == '0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3921. var rectermcd = ds_data_recitem.getColumn(0, "rectermcd");
  3922. ds_data_recitem.filter("");
  3923. ds_data_recitem.filter("degnitemlevlcd == '0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3924. var rectermnm = ds_data_recitem.getColumn(0, "rectermnm");
  3925. ds_data_recitem.filter("");
  3926. ds_data_recitem.filter("degnitemlevlcd == '0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3927. var reccnts = ds_data_recitem.getColumn(0, "reccnts");
  3928. ds_data_recitem.filter("");
  3929. var langflag = FormMastDs.getColumn(0, "langflag");
  3930. if(langflag == "KO"){
  3931. if(diagkindflag == "M"){
  3932. rectermnm = "(주)".concat(rectermnm);
  3933. }
  3934. if(diagroflag == "R"){
  3935. rectermnm = "(의증)".concat(rectermnm);
  3936. }
  3937. if(!utlf_isNull(reccnts)){
  3938. reccnts = " [" + reccnts + "]";
  3939. }
  3940. }else if(langflag == "EN"){
  3941. if(diagkindflag == "M"){
  3942. rectermnm = "(Principle diagnosis)".concat(rectermnm);
  3943. }
  3944. if(diagroflag == "R"){
  3945. rectermnm = "(R/O)".concat(rectermnm);
  3946. }
  3947. if(!utlf_isNull(reccnts)){
  3948. reccnts = " [" + reccnts + "]";
  3949. }
  3950. }
  3951. rectermcd = removeChar(rectermcd, "."); //점을 제거
  3952. rectermcd = insertChar(rectermcd, ".", 3); // 3개 단위로 점을 입력
  3953. if(!utlf_isNull(rectermcd)){
  3954. ds_data_recitem.filter("degnitemlevlcd == '0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3955. ds_data_recitem.setColumn(0, "rectermcd", rectermcd);
  3956. ds_data_recitem.filter("");
  3957. }
  3958. if(!utlf_isNull(rectermnm)){
  3959. ds_data_recitem.filter("degnitemlevlcd == '0000960.0000960' && rowno == '"+i+"' && colno == '2'");
  3960. ds_data_recitem.setColumn(0, "rectermnm", rectermnm);
  3961. ds_data_recitem.filter("");
  3962. }
  3963. }
  3964. }
  3965. //2012/12/05 End
  3966. var stmt = "";
  3967. //일반진단서, 정신진단서
  3968. if( formcd == "0000000890" || formcd == "1100010592" ){
  3969. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0008224'"), "reccnts"); //향후 치료의견
  3970. fDoSepProfPage(stmt, 47);
  3971. }
  3972. //2012/11/26 Start 일반 진단(소견)서 일경우에는 90으로 조정
  3973. if(formcd == "1100012297"){
  3974. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0008224'"), "reccnts"); //향후 치료의견
  3975. fDoSepProfPage(stmt);
  3976. }
  3977. //2012/11/26 End
  3978. // 2013.12.04 CYW Start 의뢰회송서
  3979. if(formcd == "1300014808"){
  3980. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0008224'"), "reccnts"); //향후 치료의견
  3981. fDoSepProfPage(stmt);
  3982. }
  3983. // 2013.12.04 CYW End
  3984. //일반진단서(영문)
  3985. if(formcd == "0000001442"){
  3986. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0008224'"), "reccnts"); //향후 치료의견
  3987. fDoSepProfPage(stmt, 90);
  3988. }
  3989. //소견서
  3990. if(formcd == "0000001499"){
  3991. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0007168'"), "reccnts"); //내용
  3992. fDoSepProfPage(stmt, 47);
  3993. }
  3994. //소견서(영문)
  3995. if(formcd == "0000001501"){
  3996. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0007168'"), "reccnts"); //내용
  3997. fDoSepProfPage(stmt, 90);
  3998. }
  3999. //전원소견서, 응급실전원소견서,회송서
  4000. if(srcformcd == "0000002536" || formcd == "1100012259" || formcd == "0000003129" || formcd == "1100011620" || formcd == "1600018117"){
  4001. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0010597'"), "reccnts"); //내용
  4002. fDoSepProfPage(stmt, 47);
  4003. }
  4004. //2012/05/07 Start
  4005. //진료의뢰서
  4006. // 2016.07.12 1600017534 의료급여의뢰서 추가
  4007. if(formcd == "0900005340" || formcd == "1700020559" || formcd == "1600017534"){
  4008. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0001213'"), "reccnts"); //내용
  4009. fDoSepProfPage(stmt, 47);
  4010. }
  4011. //2012/05/07 End
  4012. //투석환자 전원소견서, 투약력, 기타투약 컬럼
  4013. //2008. 1. 15 오지훈
  4014. if(formcd == "0000000618"){
  4015. // ds_main_contents.clear();
  4016. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0001112'"), "reccnts"); //투약력
  4017. stmt2 = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0014933'"), "reccnts"); //기타투약
  4018. fDoSepProfPageExtn(stmt, stmt2, "drug", "etcdrug");
  4019. }
  4020. //수술확인서
  4021. //2009. 2. 17 오지훈
  4022. if(formcd == "0000001457"){
  4023. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemno=='72'"), "reccnts"); //수술내역
  4024. fDoSepProfPage(stmt, 90, "ds_main_content1");
  4025. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemno=='20'"), "reccnts"); //내용
  4026. fDoSepProfPage(stmt, 90, "ds_main_content2");
  4027. }
  4028. //외래 진료확인서
  4029. if(formcd == "0000001312" || formcd == "0000002639"){
  4030. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0005910'"), "reccnts"); //치료기간
  4031. fDoSepProfPage(stmt, 90, "ds_main_content1");
  4032. }
  4033. //향후치료비 추정서
  4034. //2009-09-24 오전 10:14:52 강지훈 추가
  4035. if(formcd == "0000001522" || formcd == "0800000403"){ // 2016.02.15 향후치료비 추정서(치과) 추가
  4036. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0006706'"), "reccnts"); //주치의 소견
  4037. fDoSepProfPage(stmt, 47);
  4038. }
  4039. // 요양급여 의뢰서
  4040. if(formcd == "1000007900"){
  4041. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0001213'"), "reccnts"); //향후 치료의견
  4042. fDoSepProfPage(stmt, 85);
  4043. }
  4044. //근로능력평가 진단서-20100608-kys
  4045. // knuh_20110803_수정_근로능력평가용 진단서 추가
  4046. if(formcd == "1000007215" || formcd == "1100011577"){
  4047. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0001049'"), "reccnts"); //치료경과 내용
  4048. fDoSepProfPage(stmt, 47);
  4049. }
  4050. // 2016.08.08 의료급여회송서
  4051. if(formcd == "1400015254"){
  4052. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0010597'"), "reccnts");// 환자상태 및 진료소견
  4053. fDoSepProfPage(stmt);
  4054. }
  4055. // 2016.08.26 응급환자진료의뢰서
  4056. if(formcd == "1600018117"){
  4057. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0012043'"), "reccnts"); // 담당의사소견 기타
  4058. fDoSepProfPage(stmt);
  4059. }
  4060. // 2016.12.09 (장비공동이용)검사 의뢰서
  4061. if(formcd == "1600018709"){
  4062. stmt = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='0016650.0041819'"), "reccnts"); // 환자상태 및 진료소견
  4063. fDoSepProfPage(stmt, 47);
  4064. }
  4065. //2017.08.10 전원소견서 투약정보 및 수술정보 Text 변경
  4066. //2020.02.25 C진료의뢰서 투약정보 및 수술정보 Text 변경
  4067. if(srcformcd == "0000002536" || srcformcd == "2000025524"){
  4068. var tmpArr = ["0012063.0041892","0012063.0041817","0012063.0041816","0012063.0014611","0012063.0014609","0012063.0001224","0012063.0017732","0012063.0014174"];
  4069. // 처방명 기준
  4070. var totcnt = ds_data_recitem.getCaseCount("degnitemlevlcd=='"+tmpArr[2]+"'");
  4071. var recData = "";
  4072. for(var i = 0; i < totcnt; i++){
  4073. // 처방일자
  4074. var nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[0]+"' && rowno == '"+i+"' && colno == '0'");
  4075. var prcpdd = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4076. // 처방코드
  4077. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[1]+"' && rowno == '"+i+"' && colno == '1'");
  4078. var prcpcd = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4079. // 처방명
  4080. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[2]+"' && rowno == '"+i+"' && colno == '2'");
  4081. var prcpnm = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4082. // 수량
  4083. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[3]+"' && rowno == '"+i+"' && colno == '3'");
  4084. var prcpqty = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4085. // 단위
  4086. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[4]+"' && rowno == '"+i+"' && colno == '4'");
  4087. var prcpqtyunitnm = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4088. // 횟수
  4089. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[5]+"' && rowno == '"+i+"' && colno == '5'");
  4090. var prcptims = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4091. // 일수
  4092. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[6]+"' && rowno == '"+i+"' && colno == '6'");
  4093. var prcpdayno = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4094. // 용법
  4095. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[7]+"' && rowno == '"+i+"' && colno == '7'");
  4096. var drugmthdspccdnm = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4097. recData = recData + "[" + prcpdd + "] " + prcpnm + " " + prcpqty + prcpqtyunitnm + " x " + prcptims + " x " + prcpdayno + "days " + drugmthdspccdnm + "\n";
  4098. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '0012063' && rowno == '0' && colno == '-1'");
  4099. ds_data_recitem.setColumn(nFindRowExpr, "reccnts", recData);
  4100. }
  4101. // 2018.04.23 수술정보
  4102. var tmpArr = ["0016684.0000515","0016684.0000509","0016684.0018746"];
  4103. // 수술명 기준
  4104. var totcnt = ds_data_recitem.getCaseCount("degnitemlevlcd=='"+tmpArr[1]+"'");
  4105. var recData = "";
  4106. if( totcnt > 5 ) totcnt = 5;
  4107. for(var i = 0; i < totcnt; i++){
  4108. // 수술일자
  4109. var nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[0]+"' && rowno == '"+i+"' && colno == '0'");
  4110. var opdd = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4111. // 수술코드
  4112. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[2]+"' && rowno == '"+i+"' && colno == '2'");
  4113. var opcd = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4114. // 수술명
  4115. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '"+tmpArr[1]+"' && rowno == '"+i+"' && colno == '1'");
  4116. var opnm = utlf_transNullToEmpty(ds_data_recitem.getColumn(nFindRowExpr, "reccnts"));
  4117. //recData = recData + "[" + opdd + " | " + opcd + "] " + opnm + "\n";
  4118. if( i == 4 ){
  4119. recData = recData + "[" + opdd + "] " + opnm;
  4120. }else{
  4121. recData = recData + "[" + opdd + "] " + opnm + "\n";
  4122. }
  4123. nFindRowExpr = ds_data_recitem.findRowExpr("degnitemlevlcd == '0016684' && rowno == '0' && colno == '-1'");
  4124. ds_data_recitem.setColumn(nFindRowExpr, "reccnts", recData);
  4125. }
  4126. }
  4127. }
  4128. catch(e)
  4129. {
  4130. sysf_catchTrace(e);
  4131. }
  4132. }
  4133. /**
  4134. * @desc : 제증명 페이지 설정(출력시, 제증명 내용이 늘어지는 것을 막는다)
  4135. * @
  4136. * @param :
  4137. * @return :
  4138. * @author : 오지훈
  4139. * @---------------------------------------------------
  4140. */
  4141. function fDoSepProfPage(stmt, maxcnt, path, nodenm, nodenm2){///
  4142. if(utlf_isNull(path)){
  4143. path = "ds_main_contents";
  4144. }
  4145. if(utlf_isNull(nodenm)){
  4146. nodenm = "detail";
  4147. }
  4148. // if(this.objects[path] != null){
  4149. // this.objects[path].clear();
  4150. // }
  4151. dsf_createDs(path);
  4152. var detail = "";
  4153. var wordcnt = 0;
  4154. var rowcnt = 0;
  4155. if(!utlf_isNull(stmt)){//alert(stmt.length);
  4156. for(var i = 0; i < stmt.length ; i++){
  4157. if(stmt.charAt(i)=='\n'){ //Enter입력인 경우
  4158. dsf_makeValue(objects[path], nodenm, "string", detail,rowcnt);
  4159. detail = "";
  4160. wordcnt = 0;
  4161. rowcnt++;
  4162. }
  4163. if(stmt.charAt(i)!='\n' && stmt.charAt(i)!='\r'){
  4164. detail = detail.concat(stmt.charAt(i));
  4165. }
  4166. wordcnt++;
  4167. if(wordcnt == maxcnt){
  4168. dsf_makeValue(objects[path], nodenm, "string", detail,rowcnt); //model.makeValue(path + "[" + rowcnt + "]/" + nodenm, detail);
  4169. detail = "";
  4170. wordcnt = 0;
  4171. rowcnt++;
  4172. }
  4173. }
  4174. }
  4175. dsf_makeValue(objects[path], nodenm, "string", detail,rowcnt);
  4176. }
  4177. /**
  4178. * @desc :
  4179. * @
  4180. * @param :
  4181. * @return :
  4182. * @author : 오지훈
  4183. * @---------------------------------------------------
  4184. */
  4185. function fDoSepProfPageExtn(stmt, stmt2, nodenm, nodenm2){///
  4186. var path = "ds_main_contents";
  4187. // if(this.objects[path] != null){
  4188. // this.objects[path].clear();
  4189. // }
  4190. // if( !isValidObject(path))
  4191. dsf_createDs(path);
  4192. var detail = "";
  4193. var detail2= "";
  4194. var rowcnt = 0;
  4195. if(!utlf_isNull(stmt)){
  4196. for(var i = 0; i < stmt.length ; i++){
  4197. if(stmt.charAt(i)=='\n'){ //Enter입력인 경우
  4198. dsf_makeValue(objects[path], nodenm, "string", detail,rowcnt);
  4199. detail = "";
  4200. rowcnt++;
  4201. }
  4202. if(stmt.charAt(i)!='\n' && stmt.charAt(i)!='\r'){
  4203. detail = detail.concat(stmt.charAt(i));
  4204. }
  4205. }
  4206. dsf_makeValue(objects[path], nodenm, "string", detail,rowcnt);
  4207. rowcnt = 0;
  4208. for(var i = 0; i < stmt2.length ; i++){
  4209. if(stmt2.charAt(i)=='\n'){ //Enter입력인 경우
  4210. dsf_makeValue(objects[path], nodenm2, "string", detail2,rowcnt);
  4211. detail2 = "";
  4212. rowcnt++;
  4213. }
  4214. if(stmt2.charAt(i)!='\n' && stmt2.charAt(i)!='\r'){
  4215. detail2= detail2.concat(stmt2.charAt(i));
  4216. }
  4217. }
  4218. dsf_makeValue(objects[path], nodenm2, "string", detail2, rowcnt);
  4219. }
  4220. }
  4221. // 환자 의료보험 조회
  4222. // root/patinsuranceinfo
  4223. function fGetPatInsuranceInfo()
  4224. {///
  4225. var pid = ds_main_patinfo.getColumn(0,"pid");
  4226. var orddd = ds_main_patinfo.getColumn(0,"orddd");
  4227. if(!utlf_isNull(pid))
  4228. {
  4229. dsf_makeValue(ds_send_cond,"pid","string", pid);
  4230. dsf_makeValue(ds_send_cond,"orddd", "string", orddd);
  4231. ds_main_patinsuranceinfo.clearData();
  4232. var oParam = {};
  4233. oParam.id = "TRMMR02910";
  4234. oParam.service = "medirecapp.ExtnMediRec";
  4235. oParam.method = "reqGetPatInsuranceInfo";
  4236. oParam.inds = "req=ds_send_cond";
  4237. oParam.outds = "ds_main_patinsuranceinfo=patinsuranceinfo";
  4238. oParam.async = false;
  4239. tranf_submit(oParam);
  4240. var InsuranceInfoList = ds_main_patinsuranceinfo.rowcount;
  4241. if(InsuranceInfoList == 0)
  4242. {
  4243. dsf_makeValue(ds_send_cond,"pid","string", pid);
  4244. dsf_makeValue(ds_send_cond,"orddd", "string", utlf_getCurrentDate());
  4245. var oParam = {};
  4246. oParam.id = "TRMMR02910";
  4247. oParam.service = "medirecapp.ExtnMediRec";
  4248. oParam.method = "reqGetPatInsuranceInfo";
  4249. oParam.inds = "req=ds_send_cond";
  4250. oParam.outds = "ds_main_patinsuranceinfo=patinsuranceinfo";
  4251. oParam.async = false;
  4252. tranf_submit(oParam);
  4253. }
  4254. }
  4255. }
  4256. function fGetHospitalCode()
  4257. {///
  4258. var hospcd;
  4259. if(!utlf_isNull(ds_main_hospinfo.getColumnInfo("hospcd"))){
  4260. hospcd = ds_main_hospinfo.getColumn(0,"hospcd");
  4261. }
  4262. if(utlf_isNull(hospcd))
  4263. {
  4264. dsf_makeValue(ds_send_reqdata,"hardcdno", "string", "1112"); // 의료급여기관코드
  4265. ds_main_hardcdlist.clearData();
  4266. var oParam = {};
  4267. oParam.id = "TRMRF03104";
  4268. oParam.service = "formmngtapp.SetIndxMngt";
  4269. oParam.method = "reqGetEmrInfoTeamCd";
  4270. oParam.inds = "req=ds_send_reqdata";
  4271. oParam.outds = "ds_main_hardcdlist=hardcdlist";
  4272. oParam.async = false;
  4273. tranf_submit(oParam);
  4274. var hospcd = "";
  4275. if(ds_main_hardcdlist.rowcount > 0)
  4276. {
  4277. hospcd = ds_main_hardcdlist.getColumn(0,"trgtcd");
  4278. }
  4279. dsf_makeValue(ds_main_hospinfo,"hospcd","string", hospcd);
  4280. }
  4281. return hospcd;
  4282. }
  4283. function fSetItemDataByItemBaseCd(levelcd, basecd, itemval, targetRef)
  4284. {///
  4285. if(utlf_isNull(targetRef))
  4286. targetRef = "reccnts";
  4287. ds_data_recitem.filter("String(degnitemlevlcd).indexOf('" + levelcd + "') > -1 && String(degnitemcd).indexOf('" + basecd + "') > -1 ");
  4288. for(var i = 0; i < ds_data_recitem.getRowCount(); i++)
  4289. {
  4290. ds_data_recitem.setColumn(i, targetRef, itemval);
  4291. }
  4292. ds_data_recitem.filter("");
  4293. }
  4294. /**
  4295. * @desc : 응급환자 이송의뢰서 출력 기능
  4296. * @param :
  4297. * @return :
  4298. * @author : 2009-07-01 오전 9:13:34 강지훈
  4299. * @---------------------------------------------------
  4300. */
  4301. function fSetTranPrnt(){///
  4302. var rtn = grp_base.ivw_loader.lf_isModify();
  4303. if (rtn != "N")
  4304. {
  4305. sysf_messageBox("기록내용 중 수정된 내용이 있습니다. 저장 후", "C003");
  4306. btn_save.setFocus();
  4307. return;
  4308. }
  4309. lf_getHardCDList("N", 3801, null, ds_init_pidprntform);
  4310. lf_getHardCDList("N", 1, null, ds_init_eddeptcd);
  4311. var currow = ds_main_profhist.rowposition;
  4312. var ivwCtrl = grp_base.ivw_loader.components["ivw_base"];
  4313. var usernm = sysf_getUserName();
  4314. var instcd = sysf_getUserInfo("dutplceinstcd");
  4315. var pidPrntForm = ds_init_pidprntform.getColumn(0, "hardcd");
  4316. var pid = ds_main_patinfo.getColumn(0, "pid");
  4317. var orddeptcd = ds_init_eddeptcd.getColumn(0, "hardcd");
  4318. var formcd = "0900005742"; //이송의뢰서 OCR 서식코드
  4319. var rexid = "RFM0574200"; //이송의뢰서 rexpert ID
  4320. //서식지 정보 설정
  4321. ds_data_recitem.clearData();
  4322. ds_data_recitem.addRow();
  4323. grp_base.ivw_loader.lf_getGenFormData(); //기록데이터 취합
  4324. ds_data_recitem.copyData(grp_base.ivw_loader.ivw_base.ds_data_recitem); //서식지 정보 설정
  4325. //기관직인 이미지 세팅
  4326. var imgcd = "logoimage_"+sysf_getUserInfo("dutplceinstcd");
  4327. var logoimage = sysf_getURLprefix()+"/xpapps/IMAGES/emr/MR/"+imgcd+".png";
  4328. ds_data_docinfo.addColumn("sealimage", "string");
  4329. if(ds_data_docinfo.getRowCount() < 1){
  4330. ds_data_docinfo.addRow();
  4331. }
  4332. ds_data_docinfo.setColumn(0, "sealimage", logoimage);
  4333. var objImgeData = objExtCommon.encodeBase64(ds_data_docinfo.getColumn(0, "signdata"));
  4334. //TRMMR02911 submit 정보 setting
  4335. ds_send_barcodereq.clearData();
  4336. dsf_makeValue(ds_send_barcodereq,"pid","string", pid); //등록번호
  4337. dsf_makeValue(ds_send_barcodereq,"orddeptcd","string", orddeptcd); //부서코드
  4338. dsf_makeValue(ds_send_barcodereq,"instcd","string", instcd); //기관코드
  4339. dsf_makeValue(ds_send_barcodereq,"formcd","string", formcd); //이송의뢰서 서식코드
  4340. var oParam = {};
  4341. oParam.id = "TRMMR02911";
  4342. oParam.service = "medirecapp.ExtnMediRec";
  4343. oParam.method = "reqGetDocInfo";
  4344. oParam.inds = "req=ds_send_barcodereq";
  4345. oParam.outds = "ds_temp_docinfo=docinfo";
  4346. oParam.async = false;
  4347. oParam.callback = "cf_TRMMR02911";
  4348. tranf_submit(oParam);
  4349. //주민번호, 부서명 가져오기 위한 submit
  4350. if(arErrorCode.pop("TRMMR02911") > -1){
  4351. var seq = ds_temp_docinfo.getColumn(0, "seq");
  4352. var edcntctel = ds_temp_docinfo.getColumn(0, "edcntctel");
  4353. var indd = ds_main_patinfo.getColumn(0, "orddd");
  4354. ds_data_docinfo.clearData();
  4355. dsf_makeValue(ds_data_docinfo,"signimge","string", objImgeData); //서식서명이미지 설정
  4356. dsf_makeValue(ds_data_docinfo,"orddd","string", indd); //진료일
  4357. dsf_makeValue(ds_data_docinfo,"logurl","string", rptf_getImageURL("biglogo"+sysf_getUserInfo("dutplceinstcd"), "jpg")); //병원 로고
  4358. dsf_makeValue(ds_data_docinfo,"usernm","string", usernm); //출력자명
  4359. dsf_makeValue(ds_data_docinfo,"seq","string", seq); //바코드번호
  4360. dsf_makeValue(ds_data_docinfo,"orddeptabbr","string", ds_temp_docinfo.getColumn(0, "orddeptabbr")); //진료과 약어명
  4361. dsf_makeValue(ds_data_docinfo,"rrgstno1","string", ds_temp_docinfo.getColumn(0, "rrgstno1")); //주민번호앞자리
  4362. dsf_makeValue(ds_data_docinfo,"rrgstno2","string", ds_temp_docinfo.getColumn(0, "rrgstno2")); //주민번호뒷자리
  4363. dsf_makeValue(ds_data_docinfo,"curdd","string", utlf_getCurrentDate()); //현재 연월일
  4364. dsf_makeValue(ds_data_docinfo,"curtm","string", utlf_getCurrentTime()); //현재 시간
  4365. dsf_makeValue(ds_data_docinfo,"pidprntform","string", pidPrntForm); //서식 출력양식
  4366. dsf_makeValue(ds_data_docinfo,"edcntctel","string", edcntctel); //응급실 전화번호
  4367. //fDoMakeProfPrntInfo(ivwCtrl);
  4368. frmf_clearParameter("reportprintyn");
  4369. ////////////////////////////////////////////////////////////////////////확인필요 미리보기만 가능
  4370. var objDOM = rptf_createDOM(); // DOM 객체 설정
  4371. rptf_setNodeListToDOM(objDOM, "/root/main/recinfo/recitem", ds_data_recitem); // 데이터셋 1
  4372. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/sealimage",ds_data_docinfo.getColumn(0, "sealimage")); // 데이터셋 2
  4373. rptf_setValueToDOM(objDOM, "/root/hidden/docinfo/signimge", objImgeData); // 데이터셋 3
  4374. var objParam = new Object();
  4375. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  4376. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  4377. rptf_exeReportPreview30([rexid],[objParam], option);
  4378. ////////////////////////////////////////////////////////////////////////
  4379. if (frmf_getParameter("reportprintyn") == "Y"){ // 프린트 출력이 되고 창이 닫혔을 때
  4380. var pagecnt = frmf_getParameter("reportPageCount"); //출력장수(RPMNW03600)
  4381. //OCR정보를 저장하기 위한 parameter
  4382. var cretno = ds_main_patinfo.getColumn(0, "cretno");
  4383. var ordtype = ds_main_patinfo.getColumn(0, "ioflag");
  4384. var orddrid = ds_main_patinfo.getColumn(0, "orddrid");
  4385. var formfromdt = ds_temp_docinfo.getColumn(0, "formfromdt");
  4386. //OCR 정보 저장
  4387. if(!fSaveOCRIF(seq, pid, indd, cretno, ordtype, orddeptcd, orddrid, formcd, formfromdt, "", "", pagecnt)){
  4388. sysf_messageBox("통합기록조회 연동중 실패하였습니다.","C999");
  4389. return;
  4390. }
  4391. }
  4392. }
  4393. else{
  4394. sysf_messageBox("서식을 열 수", "I004");
  4395. return;
  4396. }
  4397. }
  4398. /**
  4399. * @desc : 환자의 보험유형에 따라 진료의뢰서 작성 제한 기능
  4400. * @param :
  4401. * @return :
  4402. * @author : 2009-07-03 오전 8:46 이경희
  4403. * @---------------------------------------------------
  4404. */
  4405. function fRestrictionform(profformcd)
  4406. {///
  4407. // 진료의뢰서인 경우 환자의 보험유형이 건강보험, 의료급여 1,2종이 아닌 경우 진료의뢰서를 작성하지 못하도록 함.
  4408. if(profformcd == "0900005340")
  4409. {
  4410. var insukind = ds_main_patinfo.getColumn(0, "insukind");
  4411. // 보험 공통코드군 P0008
  4412. /*
  4413. 11 건보
  4414. 21 의료급여1종
  4415. 22 의료급여2종
  4416. 31 자보
  4417. 41 산재
  4418. 42 공상
  4419. 51 일반
  4420. 61 외국인
  4421. 71 임상시험
  4422. 81 노인장기요양보험
  4423. */
  4424. var insunm = "";
  4425. switch(insukind)
  4426. {
  4427. case "11":
  4428. case "21":
  4429. case "22":
  4430. return true;
  4431. break;
  4432. case "31": insunm = "자보";
  4433. break;
  4434. case "41": insunm = "산재";
  4435. break;
  4436. case "42": insunm = "공상";
  4437. break;
  4438. case "51": insunm = "일반";
  4439. break;
  4440. case "61": insunm = "외국인";
  4441. break;
  4442. case "71": insunm = "임상시험";
  4443. break;
  4444. case "81": insunm = "노인장기요양보험";
  4445. break;
  4446. }
  4447. /*
  4448. var patnm = model.getValue("/root/main/patinfo/hngnm");
  4449. if(patnm == "")
  4450. patnm = "해당";
  4451. var msg = patnm + " 환자의 보험유형(" + insunm + ")으로는 진료의뢰서를 작성할 수";
  4452. var optmsg = "\n※진료의뢰서의 작성은 건강보험, 의료급여 1, 2종의 보험일때만 가능합니다.";
  4453. messageBox(msg, "I004", optmsg);
  4454. */
  4455. sysf_messageBox("진료의뢰서는 건강보험, 의료급여(1,2종)인 경우만 작성", "I006");
  4456. return false;
  4457. }
  4458. }
  4459. /***********************************************************************************************************
  4460. * Function : fSetChngHospInfo
  4461. * Description : 전원소견서(0000002536), 응급실 전원소견서(0000003129) 일때 전원의뢰정보가 있는 경우 셋팅해줌. 하드코드(8900) (2010.06.14. 이은영 추가)
  4462. * Argument : 01.pid
  4463. * : 02.formcd
  4464. * : 03.formrecseq
  4465. * retrun type :
  4466. * Creator : 종료된 서식으로 사용안함
  4467. ***********************************************************************************************************/
  4468. function fSetChngHospInfo(pid, formcd, formrecseq)
  4469. {
  4470. if (formrecseq != "0" && !utlf_isNull(formrecseq))
  4471. {
  4472. dsf_createDsRow("s_send_chnghospinfo", [{col:"instcd", type:"string", size:256, val:sysf_getUserInfo("dutplceinstcd")}
  4473. , {col:"pid", type:"string", size:256, val:pid}
  4474. , {col:"formcd", type:"string", size:256, val:formcd}
  4475. , {col:"formrecseq", type:"string", size:256, val:formrecseq}]);
  4476. dsf_createDs("ds_hidden_chnghospinfo");
  4477. var oParam = {};
  4478. oParam.id = "TRMMR02913";
  4479. oParam.service = "medirecapp.ExtnMediRec";
  4480. oParam.method = "reqGetChngHospInfo";
  4481. oParam.inds = "req=ds_send_chnghospinfo";
  4482. oParam.outds = "ds_hidden_chnghospinfo=chnghospinfo";
  4483. oParam.async = false;
  4484. oParam.callback = "cf_TRMMR02913";
  4485. tranf_submit(oParam);
  4486. if(arErrorCode.pop("TRMMR02913") > -1){
  4487. var coophospnm = ds_hidden_chnghospinfo.getColumn(0, "coophospnm");
  4488. var coopdrnm = ds_hidden_chnghospinfo.getColumn(0, "coopdrnm");
  4489. if (!utlf_isNull(coophospnm) || !utlf_isNull(coopdrnm)) {
  4490. var item_coophospnm = grp_base.ivw_loader.ivw_base.getFormItemValue("0016976.0016976");
  4491. var temp_coophospnm = item_coophospnm.reccnts;
  4492. var item_coopdrnm = grp_base.ivw_loader.ivw_base.getFormItemValue("0016976.0002730");
  4493. var temp_coopdrnm = item_coopdrnm.reccnts;
  4494. if (coophospnm != temp_coophospnm || coopdrnm != temp_coopdrnm) {
  4495. var msg = "";
  4496. msg = msg + "\n" + "---------------------------------------------------------------";
  4497. msg = msg + "\n" + "소견서에 등록된 정보입니다. ";
  4498. msg = msg + "\n" + "전원병원명 [" + temp_coophospnm + "] 확인자(전원병원) [" + temp_coopdrnm + "]";
  4499. msg = msg + "\n" + "---------------------------------------------------------------";
  4500. msg = msg + "\n" + "전원의뢰 정보입니다.";
  4501. msg = msg + "\n" + "전원의뢰병원 [" + coophospnm + "] 전원의뢰의사 [" + coopdrnm + "]";
  4502. msg = msg + "\n" + "---------------------------------------------------------------";
  4503. msg = msg + "\n" + "전원병원명과 확인자(전원병원)가 전원의뢰 정보로 변경되었습니다.";
  4504. msg = msg + "\n" + "저장 후 발행하십시오.";
  4505. msg = msg + "\n" + "---------------------------------------------------------------";
  4506. sysf_messageBox(msg, "I");
  4507. // 변경된 내용 셋팅해주기..
  4508. item_coophospnm.reccnts = coophospnm;
  4509. grp_base.ivw_loader.ivw_base.setFormItemValue("0016976.0016976", item_coophospnm);
  4510. item_coopdrnm.reccnts =coopdrnm;
  4511. grp_base.ivw_loader.ivw_base.setFormItemValue("0016976.0002730", item_coopdrnm);
  4512. }
  4513. }
  4514. }
  4515. dsf_deleteDs("ds_send_chnghospinfo");
  4516. dsf_deleteDs("ds_hidden_chnghospinfo");
  4517. }
  4518. }
  4519. function fSaveChk(){///
  4520. //sysf_trace(grp_base.ivw_loader.ds_data_formmast.getColumn(0, "langflag"));
  4521. var chk = "true";
  4522. //var formcd = ivw_loader.ivw_base.model.getValue("/root/main/forminfo/formmast/formcd");
  4523. var formcd = grp_base.ivw_loader.ds_data_formmast.getColumn(0, "formcd");
  4524. var srcformcd = grp_base.ivw_loader.ds_data_formmast.getColumn(0, "srcformcd");
  4525. //회송서
  4526. if ( srcformcd == "0000002536" ) {
  4527. var diagnm = grp_base.ivw_loader.ivw_base.ds_data_grd_73.getColumn(0, "진단명");
  4528. if (utlf_isNull(diagnm)) {
  4529. sysf_messageBox("진단명이 입력되지 않았습니다","I");
  4530. return "false";
  4531. }
  4532. }
  4533. //진료의뢰서
  4534. if ( srcformcd == "0900005340" || srcformcd == "1700020559") {
  4535. var diagnm = grp_base.ivw_loader.ivw_base.ds_data_grd_13.getColumn(0, "진단명");
  4536. if (utlf_isNull(diagnm)) {
  4537. sysf_messageBox("진단명이 입력되지 않았습니다","I");
  4538. return "false";
  4539. }
  4540. }
  4541. //제증명 이력에서 저장시 화면체크(20140724 이윤주)
  4542. if (grp_base.swc_prof.tabindex == 2 ) {
  4543. var selectedrow = ds_main_profhist.rowposition;
  4544. var profcertseq = ds_main_profhist.getColumn(selectedrow, "profcertseq");
  4545. var yearseqno = ds_main_profhist.getColumn(selectedrow, "yearseqno");
  4546. if (utlf_isNull(yearseqno)) {
  4547. //발행번호가 없을시 현시점의 발행여부를 확인한다
  4548. dsf_makeValue(ds_send_reqdata,"profcertseq", "string", profcertseq);
  4549. var oParam = {};
  4550. oParam.id = "TRMMR05504";
  4551. oParam.service = "medirecapp.ExtnMediRec";
  4552. oParam.method = "reqGetYearseqnoYN";
  4553. oParam.inds = "req=ds_send_reqdata";
  4554. oParam.outds = "ds_hidden_balyn=balyn";
  4555. oParam.async = false;
  4556. tranf_submit(oParam);
  4557. var balyncnt = ds_hidden_balyn.getColumn(0, "cnt");
  4558. //화면이 old
  4559. if (balyncnt != 0) {
  4560. sysf_messageBox("화면을 재조회 하신후 진행하시기 바랍니다","I999");
  4561. return "false";
  4562. }
  4563. }
  4564. //[20150625009] 기출력된 제증명 수정후 신규서식으로 저장시 오류수정 요청
  4565. var orddoctid = ds_main_profhist.getColumn(selectedrow, "issid");
  4566. var sUserid = sysf_getUserInfo("userid");
  4567. // 직군이 의사, 발행연번호가 존재하고 발행자와 로그인한 사용자와의 정보가 다를경우 로그인한 사용자의 정보를 설정
  4568. if(!utlf_isNull(yearseqno) && orddoctid != sUserid && formcd != "0000001539" && utlf_transNullToEmpty(sysf_getUserInfo("jobkindcd")).substring(0,2) == "03")
  4569. {
  4570. //var langflag = ivw_loader.ivw_base.model.getValue("/root/main/forminfo/formmast/langflag");
  4571. var langflag = grp_base.ivw_loader.ds_data_formmast.getColumn(0, "langflag");
  4572. //drid = sysf_getUserId();
  4573. //drnm = sysf_getUserInfo("usernm");
  4574. //drengnm = sysf_getUserInfo("userengnm");
  4575. //deptnm = sysf_getUserInfo("dutplcenm");
  4576. //deptengnm = sysf_getUserInfo("deptengnm");
  4577. //licnsno = sysf_getUserInfo("licnsno");
  4578. //medispclno = sysf_getUserInfo("medispclno");
  4579. var itemvalue = new ITEMVAL();
  4580. itemvalue.reccnts = sysf_getUserInfo("licnsno");
  4581. lf_setItemDataByItemBaseCd("0016651.0007593", "0007593" , itemvalue); //의사면허번호1 : 0007593
  4582. lf_setItemDataByItemBaseCd("0016651.0035714", "0035714" , itemvalue); //의사면허번호2 : 0035714
  4583. itemvalue.reccnts = sysf_getUserInfo("medispclno");
  4584. lf_setItemDataByItemBaseCd("0016651.0017053", "0017053" , itemvalue); //전문의 번호
  4585. if(langflag == "EN"){ //영문서식인 경우 영문명 설정
  4586. itemvalue.reccnts = sysf_getUserInfo("userengnm");
  4587. lf_setItemDataByItemBaseCd("0016651.0000940", "0000940", itemvalue); //의사성명1 : 0000940
  4588. lf_setItemDataByItemBaseCd("0016651.0035716", "0035716", itemvalue); //의사성명2 : 0035716
  4589. lf_setItemDataByItemBaseCd("0035716", "0035716", itemvalue); //의사성명3 : 0035716 (임시)
  4590. itemvalue.reccnts = sysf_getUserInfo("deptengnm");
  4591. lf_setItemDataByItemBaseCd("0000965", "0000965", itemvalue); //진료과 : 0000965
  4592. itemvalue.reccnts = sysf_getUserId();
  4593. lf_setItemDataByItemBaseCd("0012706.0016979", "0016979", itemvalue); //작성자 : 0012706.0016979
  4594. }else{
  4595. itemvalue.reccnts = sysf_getUserInfo("usernm");
  4596. lf_setItemDataByItemBaseCd("0016651.0000940", "0000940", itemvalue); //의사성명1 : 0000940
  4597. lf_setItemDataByItemBaseCd("0016651.0035716", "0035716", itemvalue); //의사성명2 : 0035716
  4598. lf_setItemDataByItemBaseCd("0035716", "0035716", itemvalue); //의사성명3 : 0035716 (임시)
  4599. itemvalue.reccnts = sysf_getUserInfo("dutplcenm");
  4600. lf_setItemDataByItemBaseCd("0000965", "0000965", itemvalue); //진료과 : 0000965
  4601. itemvalue.reccnts = sysf_getUserId();
  4602. lf_setItemDataByItemBaseCd("0012706.0016979", "0016979", itemvalue); //작성자 : 0012706.0016979
  4603. }
  4604. }
  4605. }
  4606. //사망확인서 or 시체검안서
  4607. if(formcd=="0000001314" ||formcd=="0000002841" ){
  4608. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemno=='9'");
  4609. var bal = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts");
  4610. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4611. if (!utlf_isNull(bal)){
  4612. if (bal.length == 12){
  4613. // 2011년 12월 25일 12시 25분
  4614. var bal = bal.substr(0,4)+"년 "+bal.substr(4,2)+"월 "+bal.substr(6,2)+"일 "+bal.substr(8,2)+"시 "+bal.substr(10,2)+"분";
  4615. }
  4616. if (bal.length < 21) {
  4617. sysf_messageBox("발병일시가 정확하게 입력되지 안았습니다.\n작성 예(2011년 12월 25일 12시 25분)", "I");
  4618. chk="false";
  4619. return chk;
  4620. }
  4621. }
  4622. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemno=='10'");
  4623. var deathdate = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts");
  4624. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4625. if (!utlf_isNull(deathdate)){
  4626. if (deathdate.length == 12){
  4627. // 2011년 12월 25일 12시 25분
  4628. var deathdate = deathdate.substr(0,4)+"년 "+deathdate.substr(4,2)+"월 "+deathdate.substr(6,2)+"일 "+deathdate.substr(8,2)+"시 "+deathdate.substr(10,2)+"분";
  4629. }
  4630. if (deathdate.length< 21){
  4631. sysf_messageBox("사망일시가 정확하게 입력되지 안았습니다.\n작성 예(2011년 12월 25일 12시 25분)", "I");
  4632. chk="false";
  4633. return chk;
  4634. }
  4635. var currentdate = utlf_getCurrentDate()+utlf_getCurrentTime();
  4636. currentdate = currentdate.substr(0,12);
  4637. deathdate = deathdate.substr(0,4)+deathdate.substr(6,2)+deathdate.substr(10,2)+deathdate.substr(14,2)+deathdate.substr(18,2);
  4638. if (deathdate > currentdate) {
  4639. sysf_messageBox("사망일시가 현 시각보다 늦을 수는 없습니다","I");
  4640. chk="false";
  4641. return chk;
  4642. }
  4643. }
  4644. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemno=='47'");
  4645. var badate = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts");
  4646. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4647. if (!utlf_isNull(badate)){
  4648. if (badate.length == 12){
  4649. // 2011년 12월 25일 12시 25분
  4650. var badate = badate.substr(0,4)+"년 "+badate.substr(4,2)+"월 "+badate.substr(6,2)+"일 "+badate.substr(8,2)+"시 "+badate.substr(10,2)+"분";
  4651. }
  4652. if (badate.length < 21){
  4653. sysf_messageBox("사고 발생일시가 정확하게 입력되지 안았습니다.\n작성 예(2011년 12월 25일 12시 25분)", "I");
  4654. chk="false";
  4655. return chk;
  4656. }
  4657. }
  4658. //2012/06/22 Start
  4659. if(formcd=="0000001314"){
  4660. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemlevlcd=='0001209.0000929'");
  4661. var juminbunho = utlf_transNullToEmpty(grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts"));
  4662. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4663. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemlevlcd=='0001209.0001037'");
  4664. var birthday = utlf_transNullToEmpty(grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts"));
  4665. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4666. var jumin = juminbunho.substring(0,6);
  4667. var birth = birthday.substring(2,8);
  4668. if(jumin != birth){
  4669. var check=sysf_messageBox("주민번호 앞자리와 실제 생년월일이 다릅니다.\n계속 진행", "S001", ""); //예:6 아니오:7 취소:2
  4670. if(check=="6"){
  4671. chk="true";
  4672. }else if(check=="7"){
  4673. chk="false";
  4674. return chk;
  4675. }else if(check=="2"){
  4676. chk="false";
  4677. }
  4678. }
  4679. return chk;
  4680. }
  4681. //2012/06/22 End
  4682. }
  4683. //전원소견서
  4684. if(srcformcd=="0000002536"){
  4685. if(!fTransChk() ) {
  4686. sysf_messageBox("당월 동일과 또는 재원중에 발행이력이 있으니 진료의뢰서로 작성 하시기 바랍니다! 문의:진료협력센터","I");
  4687. return "false";
  4688. }
  4689. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemno=='126'");
  4690. var hospname = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts");
  4691. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4692. if (!utlf_isNull(hospname)){
  4693. if (hospname.length < 3){
  4694. sysf_messageBox("전원 병원명은 세글자 이상이어야 합니다.", "I");
  4695. chk="false";
  4696. return chk;
  4697. }
  4698. }
  4699. }
  4700. //응급실 전원소견서
  4701. if(formcd=="1100011620"){
  4702. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemno=='134'");
  4703. var hospname = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts");
  4704. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4705. if (!utlf_isNull(hospname)){
  4706. if (hospname.length < 3){
  4707. sysf_messageBox("전원 병원명은 세글자 이상이어야 합니다.", "I");
  4708. chk="false";
  4709. return chk;
  4710. }
  4711. }
  4712. }
  4713. // 2014.03.17 cyw 제증명 일반진단서 입력시, 비고란 길이 체크. 해당 너비 초과하지 않도록!!----------------------------------------
  4714. if( formcd == "1100012297"){
  4715. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("degnitemcd == '0000381001' && degnitemkind == 'MTX'");
  4716. if( grp_base.ivw_loader.ivw_base.ds_data_recitem.rowcount > 0 ){
  4717. var reccnts = utlf_transNullToEmpty(grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(0, "reccnts"));
  4718. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4719. var reccntarry = reccnts.split("\n");
  4720. var reccntcnt = reccntarry.length-1;
  4721. // Enter 키값이 없을경우 문장의 길이 체크
  4722. if( reccntcnt == 0 ){
  4723. if(reccntarry[0].length > 175 ){
  4724. sysf_messageBox("비고란의 글자수가 초과되었으니 위칸(소견란)을 이용하시기 바랍니다. ( 문의 : 원무팀 제증명 담당 )","I");
  4725. chk="false"; return chk;
  4726. }
  4727. }else{
  4728. // 각 행의 길이 체크
  4729. if( reccntcnt > 4 ){ // Enter키값이 5개 이상일 경우
  4730. sysf_messageBox("비고란의 글자수가 초과되었으니 위칸(소견란)을 이용하시기 바랍니다. ( 문의 : 원무팀 제증명 담당 )","I"); chk="false"; return chk;
  4731. }else{
  4732. var calcvalue = 0;
  4733. for( var i = 0 ; i <= reccntcnt; i++ ){
  4734. calcvalue = calcvalue + reccntarry[i].length;
  4735. }
  4736. if( calcvalue > 140 ) {
  4737. sysf_messageBox("비고란의 글자수가 초과되었으니 위칸(소견란)을 이용하시기 바랍니다. ( 문의 : 원무팀 제증명 담당 )","I");
  4738. chk="false";
  4739. return chk;
  4740. }
  4741. }
  4742. }
  4743. }else{
  4744. grp_base.ivw_loader.ivw_base.ds_data_recitem.filter("");
  4745. }
  4746. }
  4747. //---------------------------------------------------------------------------------------------------------------------------------
  4748. // 2016.06.17 회송(전원)소견서 진단명 없을경우 제어[요청번호:20160617006]
  4749. if( lf_CheckPerPrint(formcd) == "Y" ) {
  4750. var nGrdCnt = grp_base.ivw_loader.ivw_base.ds_data_grd_73.rowcount;
  4751. var sComment = "";
  4752. for( var i=0; i<nGrdCnt; i++ ){
  4753. var diagcd = grp_base.ivw_loader.ivw_base.ds_data_grd_73.getColumn(i, "진단코드");
  4754. var diagnm = grp_base.ivw_loader.ivw_base.ds_data_grd_73.getColumn(i, "진단명");
  4755. if( i!=0 && utlf_isNull( diagcd ) && utlf_isNull( diagnm ) ){
  4756. continue;
  4757. }else if( utlf_isNull( diagcd ) ){
  4758. sComment = "진단코드";
  4759. break;
  4760. }else if( utlf_isNull( diagnm ) ){
  4761. sComment = "진단명";
  4762. break;
  4763. }
  4764. }
  4765. if( !utlf_isNull( sComment ) ){
  4766. sysf_messageBox("진단명 " + (i+1) + "행 " + sComment + " 입력바랍니다.", "I");
  4767. chk="false";
  4768. return chk;
  4769. }
  4770. if( nGrdCnt < 1 ){
  4771. sysf_messageBox("진단명은 필수입력입니다.", "I");
  4772. chk="false";
  4773. return chk;
  4774. }
  4775. }
  4776. //2012/01/25
  4777. //모든 제증명의 발행일
  4778. /*
  4779. var y=utlf_getCurrentDate().substring(0, 4);
  4780. var m=utlf_getCurrentDate().substring(4, 6);
  4781. var d=utlf_getCurrentDate().substring(6, 8);
  4782. var current_date=y+"-"+m+"-"+d;
  4783. */
  4784. var current_date = utlf_getCurrentDate();
  4785. var balreccnts = grp_base.ivw_loader.ivw_base.ds_data_recitem.findRowExpr("degnitemcd == '0004499002'");
  4786. var sCurrentDate = grp_base.ivw_loader.ivw_base.ds_data_recitem.getColumn(balreccnts, "reccnts");
  4787. if( !utlf_isNull(sCurrentDate) && sCurrentDate.indexOf("-") > -1 ){
  4788. sCurrentDate = sCurrentDate.replace(/-/g,"");
  4789. }
  4790. if( (sCurrentDate != current_date)&&(!utlf_isNull(sCurrentDate)) ){
  4791. var check=sysf_messageBox("발행일이 과거 일자입니다. 계속 진행", "S001", ""); //예:6 아니오:7 취소:2
  4792. if(check=="6"){
  4793. chk="true";
  4794. }else if(check=="7"){
  4795. chk="false";
  4796. return chk;
  4797. }else if(check=="2"){
  4798. chk="false";
  4799. return chk;
  4800. }
  4801. }
  4802. }
  4803. function fIsOkGoal(rechistseq){
  4804. var chk = "false";
  4805. dsf_makeValue(ds_send_reqdata,"rechistseq", "string", rechistseq);
  4806. ds_goal_cnt.clearData();
  4807. var oParam = {};
  4808. oParam.id = "TRMMR02916";
  4809. oParam.service = "medirecapp.ExtnMediRec";
  4810. oParam.method = "reqGetIsGoalChange";
  4811. oParam.inds = "req=ds_send_reqdata";
  4812. oParam.outds = "ds_goal_cnt=cnt";
  4813. oParam.async = false;
  4814. tranf_submit(oParam);
  4815. var cnt = ds_goal_cnt.getColumn(0, "cnt");
  4816. if (cnt > 0 ) {
  4817. chk = "true";
  4818. }
  4819. return chk;
  4820. }
  4821. function fgetGoal(rechistseq){
  4822. dsf_makeValue(ds_send_reqdata,"rechistseq", "string", rechistseq);
  4823. ds_goal.clearData();
  4824. var oParam = {};
  4825. oParam.id = "TRMMR02917";
  4826. oParam.service = "medirecapp.ExtnMediRec";
  4827. oParam.method = "reqGetGoal";
  4828. oParam.inds = "req=ds_send_reqdata";
  4829. oParam.outds = "ds_goal=val";
  4830. oParam.async = false;
  4831. tranf_submit(oParam);
  4832. }
  4833. //일반 진단(소견)서에서 진단 기간을 당겨올 수 있도록 하는 로직 추가
  4834. var inptinfo_flag=false;
  4835. function fInptInfo(){///
  4836. dsf_makeValue(ds_send_inptinfo,"pid", "string", ds_main_patinfo.getColumn(0, "pid"));
  4837. //환자의 입원기록이 있는지 확인(최근 1년간)
  4838. var oParam = {};
  4839. oParam.id = "TRMMR02918";
  4840. oParam.service = "medirecapp.ExtnMediRec";
  4841. oParam.method = "reqGetInptInfo";
  4842. oParam.inds = "req=ds_send_inptinfo";
  4843. oParam.outds = "ds_temp_inptinfo=item";
  4844. oParam.async = false;
  4845. tranf_submit(oParam);
  4846. if(ds_temp_inptinfo.getColumn(0, "chkyn")=='Y'){ // 1년 이내에 입원이력이 있을 경우만 처리
  4847. var check=sysf_messageBox("환자의 입원 이력을 선택 할 경우 작성된 모든 내용이 삭제됩니다. \n그래도", "Q003", ""); //예:6 아니오:7 취소:2
  4848. if(check=="6"){
  4849. frmf_setParameter("SMMMR08300_pid", ds_main_patinfo.getColumn(0, "pid"));
  4850. frmf_modal("SMMMR08300", "SMMMR08300", "", "", 1, 0, 0, "", "", "", "", "", "M");
  4851. // 입원이력을 선택했을 경우 모든 기록아이템 초기화
  4852. if(!utlf_isNull(frmf_getParameter("SMMMR08300_param"))){
  4853. inptinfo_flag=true;
  4854. fChosProflist();
  4855. }
  4856. }else if(check=="7"){
  4857. return;
  4858. }else if(check=="2"){
  4859. return;
  4860. }
  4861. }else{
  4862. sysf_messageBox(ds_main_patinfo.getColumn(0, "hngnm") + "님은 최근 1년간 입원 또는 응급으로 내원하신 적이", "I004");
  4863. return;
  4864. }
  4865. }
  4866. // 아이뷰어의 크기 조절
  4867. function fiviewSize(param){
  4868. if(param=="expand"){
  4869. grp_base.swc_prof.position.width = 967;
  4870. //grp_base.swc_prof.case3.grd_profhistlist.position.width = 964;
  4871. grp_base.ivw_loader.position.left = 972;
  4872. grp_base.line2.position.left = 972;
  4873. //grp_base.ivw_loader.position.width = 218;
  4874. }else if(param=="normal"){
  4875. grp_base.swc_prof.position.width = 375;
  4876. //grp_base.swc_prof.case3.grd_profhistlist.position.width = 372;
  4877. grp_base.ivw_loader.position.left = 380;
  4878. grp_base.line2.position.left = 380;
  4879. //grp_base.ivw_loader.position.width = 810;
  4880. //grp_base.ivw_loader.ivw_base.position.width = 805;
  4881. }
  4882. }
  4883. /****************************************************************************************
  4884. * Function : ImageSave
  4885. * Description : 2013.12.06 제증명 발행시, 서식을 이미지로 저장
  4886. * Argument : 01. formcd : 서식코드
  4887. * : 02. rexid : 출력ID
  4888. * retrun type : N/A
  4889. * Creator :
  4890. ****************************************************************************************/
  4891. function ImageSave(formcd, rexid )
  4892. {
  4893. sysf_trace(":::: ImageSave " + formcd + " " + rexid + " ::::");
  4894. //var fso;
  4895. var jpgpath;
  4896. var count;
  4897. var cretno;
  4898. var pathidimg;
  4899. var pathidrecord;
  4900. var instcd;
  4901. var treatno;
  4902. var formcode;
  4903. var cuserid;
  4904. var userid;
  4905. var dutplcecd;
  4906. var dutplceinstcd;
  4907. var localpath;
  4908. var localfullpath = "";
  4909. var imgpaths ="";
  4910. var imgpath ="";
  4911. var wavpaths ="";
  4912. var wavpath ="";
  4913. var pid;
  4914. var ordtype;
  4915. var orddd;
  4916. var flag;
  4917. var checkdatas;
  4918. var checkdata;
  4919. var checkdataval;
  4920. var checkid;
  4921. var checkvalue;
  4922. var ocrtag;
  4923. var cdate;
  4924. var ctime;
  4925. var cdateyyyymm;
  4926. var cdatedd;
  4927. var pagecnt;
  4928. // var instance = document.models(0).instances(0);
  4929. var orddrid;
  4930. var orddeptcd;
  4931. var formfromdt;
  4932. var depthngnm;
  4933. var imgcnt = 0;
  4934. var imgpath_head = lgv_Foldernm_MMR02900 + "\\";
  4935. // var server = '192.168.100.194';
  4936. // var port = '2500';
  4937. // var user = 'user';
  4938. var server = ds_main_ltp_img.getColumn(0, "ltpindexserver"); //model.getValue("/root/main/ltp/img/ltpindexserver");
  4939. var port = ds_main_ltp_img.getColumn(0, "ltpindexport"); //model.getValue("/root/main/ltp/img/ltpindexport");
  4940. var user = ds_main_ltp_img.getColumn(0, "ltpindexuser"); //model.getValue("/root/main/ltp/img/ltpindexuser");
  4941. if (LTPInit1(server, port, user) == false)
  4942. {
  4943. alert("파일서버가 열려있지않거나 접속 할 수 없습니다.")
  4944. close();
  4945. //return;
  4946. }
  4947. for( var i = 0; i < 10; i++ ){
  4948. imgpath = imgpath_head + rexid + i + ".jpg";
  4949. if(objExtCommon.IsFileExist(imgpath)){
  4950. imgcnt++;
  4951. }
  4952. }
  4953. dsf_createDs("ds_hidden_paget");
  4954. orddd = ds_main_result_pathistlist.getColumn(0, "orddd");
  4955. var oParam = {};
  4956. oParam.id = "TRMPL04308";
  4957. oParam.service = "imgemrapp.ImgemrBase";
  4958. oParam.method = "reqGetOcrTreatInfo";
  4959. oParam.inds = "req=ds_send_ocrtreat";
  4960. oParam.outds = "ds_hidden_paget=getOcrTreatInfo";
  4961. oParam.async = false;
  4962. tranf_submit(oParam);
  4963. // imgpath = imgpaths.split("|"); //저장된 패스 여러장일경우 구분자 '|' 로잘라줘야함
  4964. // pagecnt = imgpath.length-1;
  4965. dsf_createDsRow("ds_main_paget", [{col:"cdate", type:"string", size:256, val:"null"}
  4966. , {col:"instcd", type:"string", size:256, val:ds_send_ocrtreat.getColumn(0, "instcd")}
  4967. , {col:"pathid", type:"string", size:256, val:ds_main_ltpindexinfo.getColumn(0, "pathid")}
  4968. , {col:"treatno", type:"string", size:256, val:ds_hidden_paget.getColumn(0, "treatno")}
  4969. , {col:"formcode", type:"string", size:256, val:ds_send_ocrtreat.getColumn(0, "formcd")}
  4970. , {col:"cuserid", type:"string", size:256, val:ds_send_ocrtreat.getColumn(0, "cuser")}
  4971. ]);
  4972. cuserid = ds_send_ocrtreat.getColumn(0, "cuser");
  4973. pid = ds_send_ocrtreat.getColumn(0, "pid");
  4974. //patname = ds_main_treat.getColumn(0, "patname");
  4975. ordtype = ds_send_ocrtreat.getColumn(0, "class");
  4976. orddd = ds_send_ocrtreat.getColumn(0, "indate");
  4977. orddrid = ds_send_ocrtreat.getColumn(0, "orddrid");
  4978. orddeptcd = ds_send_ocrtreat.getColumn(0, "orddeptcd");
  4979. cretno = ds_send_ocrtreat.getColumn(0, "cretno");
  4980. treatno = ds_main_paget.getColumn(0, "treatno");
  4981. formcode = ds_send_ocrtreat.getColumn(0, "formcd");
  4982. instcd = ds_send_ocrtreat.getColumn(0, "instcd");
  4983. if(!utlf_isNull(ds_send_ocrtreat.getColumnInfo("flag"))){
  4984. flag = ds_send_ocrtreat.getColumn(0, "flag");
  4985. }else{
  4986. flag = "";
  4987. }
  4988. pathidimg = ds_main_ltp_img.getColumn(0, "pathid");
  4989. pathidrecord = ds_main_ltp_record.getColumn(0, "pathid"); //model.getValue("/root/main/ltp/record/pathid");
  4990. formfromdt = ds_send_ocrtreat.getColumn(0, "formfromdt");
  4991. //depthngnm1 = ds_main_treat.getColumn(0, "depthngnm1"); //model.getValue("/root/main/treat/depthngnm1");-----
  4992. dutplcecd = sysf_getUserInfo("dutplcecd");
  4993. dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  4994. ocrtag = ds_send_ocrtreat.getColumn(0, "ocrtag");
  4995. cdateyyyymm = utlf_getCurrentDate() + utlf_getCurrentTime().substr(0, 6);
  4996. //cmr 저장
  4997. imgpath = "";
  4998. var sSaveData = "status▦pathid▦cdate▦cuserid▦filesize▦extension▦instcd▦treatno▦formcode▦pid▦orddd▦class▦ocrtag▦flag▦cretno▦page▦orddeptcd▩";
  4999. for (count = 0; count < imgcnt; count++)
  5000. {
  5001. imgpath = imgpath_head + rexid + count + ".jpg" ;
  5002. pageno = ds_hidden_paget.getColumn(0, "pageno"); //model.getValue("/root/hidden/paget/pageno");
  5003. //ssave data 를 장수대로 만들어주면됨
  5004. sSaveData += "d▦" + pathidimg + "▦" + cdate ;
  5005. sSaveData += "▦" + cuserid + "▦" + fso.GetFile(imgpath).Size ;
  5006. sSaveData += "▦" + "jpg" + "▦" + instcd + "▦" + treatno + "▦" + formcode ;
  5007. sSaveData += "▦" + pid + "▦" + orddd + "▦" + ordtype ;
  5008. sSaveData += "▦" + ocrtag + "▦" + flag + "▦" + cretno + "▦" + count + "▦" + orddeptcd + "▩" ;
  5009. }
  5010. if( imgcnt == 0 ){
  5011. //ssave data 를 장수대로 만들어주면됨
  5012. imgpath = imgpath_head + rexid + ".jpg";
  5013. var nSize = 0;
  5014. if(objExtCommon.IsFileExist(imgpath)){
  5015. nSize = fso.GetFile(imgpath).Size;
  5016. }else{
  5017. trace("::::: File Not Exist : " + imgpath + " :::::");
  5018. }
  5019. sSaveData += "d▦" + pathidimg + "▦" + cdate ;
  5020. sSaveData += "▦" + cuserid + "▦" + nSize ;
  5021. sSaveData += "▦" + "jpg" + "▦" + instcd + "▦" + treatno + "▦" + formcode ;
  5022. sSaveData += "▦" + pid + "▦" + orddd + "▦" + ordtype ;
  5023. sSaveData += "▦" + ocrtag + "▦" + flag + "▦" + cretno + "▦" + "1" + "▦" + orddeptcd + "▩" ;
  5024. }
  5025. //ocr 저장
  5026. var sOcrData = "ocrtag▦pid▦ordtype▦orddd▦cretno▦orddrid▦orddeptcd▦formcd▦formfromdt▦fstprntdt▦fstprntdeptcd▦fstprntid▦updtdt▦updtdeptcd▦updtuserid▦diagnm▦opnm▦eocryn▦pagecnt▩";
  5027. sOcrData += ocrtag + "▦" + pid + "▦" + ordtype + "▦" + orddd + "▦" + cretno ;
  5028. sOcrData += "▦" + orddrid + "▦" + orddeptcd + "▦" + formcode + "▦" + formfromdt;
  5029. sOcrData += "▦" + cdateyyyymm + "▦" + dutplcecd + "▦" + cuserid + "▦" + cdateyyyymm;
  5030. sOcrData += "▦" + dutplcecd + "▦" + cuserid + "▦" + "" + "▦" + "";
  5031. sOcrData += "▦" + "Y" + "▦" + imgcnt + "▩" ;
  5032. dsf_createDs("ds_data_savedata");
  5033. dsf_createDs("ds_data_ocrdata");
  5034. dsf_setCSVToDs("ds_data_savedata",sSaveData);
  5035. dsf_setCSVToDs("ds_data_ocrdata",sOcrData);
  5036. var imgpaths = "";
  5037. for (count = 0; count < imgcnt; count++)
  5038. {
  5039. imgpath = imgpath_head + rexid + count + ".jpg" ;
  5040. if( count == 1 ){
  5041. imgpaths = imgpath ;
  5042. } else{
  5043. imgpaths = imgpaths + "|" + imgpath;
  5044. }
  5045. }
  5046. if( imgcnt == 0 ){
  5047. imgpath = imgpath_head + rexid + ".jpg" ;
  5048. imgpaths = imgpath;
  5049. }
  5050. dsf_setTypeFormat(ds_data_savedata, "cretno:INT");
  5051. dsf_setTypeFormat(ds_data_ocrdata, "cretno:INT");
  5052. var oParam = {};
  5053. oParam.id = "TXMPL03304";
  5054. oParam.service = "imgemrapp.ImgemrBase";
  5055. oParam.method = "reqIntCertPagetInfo";
  5056. oParam.inds = "req=ds_data_savedata ocrdata=ds_data_ocrdata";
  5057. oParam.outds = "ds_main_paget=pageno";
  5058. oParam.async = false;
  5059. oParam.callback = "cf_TXMPL03304";
  5060. tranf_submit(oParam);
  5061. if(arErrorCode.pop("TXMPL03304") > -1){
  5062. if (ImageFilePut(imgpaths) == false)
  5063. {
  5064. alert("이미지파일 저장실패");
  5065. filetransfail(imgpaths)
  5066. //insert 된 ocr 정보 삭제
  5067. dsf_createDsRow("ds_send_ocrhistory", [{col:"ocrtag", type:"string", size:256, val:ocrtag}
  5068. , {ocl:"delflag", type:"string", size:256, val:1}]);
  5069. var oParam = {};
  5070. oParam.id = "TXMPL03303";
  5071. oParam.service = "imgemrapp.ImgemrBase";
  5072. oParam.method = "reqDelOcrHistory";
  5073. oParam.inds = "req=ds_send_ocrhistory";
  5074. oParam.outds = "";
  5075. oParam.async = false;
  5076. tranf_submit(oParam);
  5077. dsf_deleteDs("ds_send_ocrhistory");
  5078. return;
  5079. }
  5080. } else {
  5081. sysf_messageBox("제증명 저장실패", "I000");
  5082. dsf_createDsRow("ds_send_ocrhistory", [{col:"ocrtag", type:"string", size:256, val:ocrtag}
  5083. , {ocl:"delflag", type:"string", size:256, val:1}]);
  5084. var oParam = {};
  5085. oParam.id = "TXMPL03303";
  5086. oParam.service = "imgemrapp.ImgemrBase";
  5087. oParam.method = "reqDelOcrHistory";
  5088. oParam.inds = "req=ds_send_ocrhistory";
  5089. oParam.outds = "";
  5090. oParam.async = false;
  5091. tranf_submit(oParam);
  5092. dsf_deleteDs("ds_send_ocrhistory");
  5093. }
  5094. dsf_deleteDs("ds_data_savedata");
  5095. dsf_deleteDs("ds_dsta_ocrdata");
  5096. dsf_deleteDs("ds_send_ocrtreat");
  5097. dsf_deleteDs("ds_hidden_paget");
  5098. sysf_trace(":::: ImageSave END ::::");
  5099. }
  5100. function LTPInit1(server, port, user)
  5101. {///
  5102. if(f_ltp.IsOnline)
  5103. {
  5104. }
  5105. else
  5106. {
  5107. f_ltp.Server = server;
  5108. f_ltp.Port = 2500;
  5109. f_ltp.Account = user;
  5110. if(f_ltp.Connect())
  5111. {
  5112. }
  5113. else
  5114. {
  5115. alert('LTP 데몬과의 접속이 실패하였습니다.');
  5116. return false;
  5117. }
  5118. }
  5119. }
  5120. function LTP_Init()
  5121. {///
  5122. ds_send_ltp.setColumn(0, "activeA", "A"); // 이미지저장b
  5123. ds_send_ltp.setColumn(0, "activeR", "R"); // 체크 , 가이드 xml 파일
  5124. ds_send_ltp.setColumn(0, "activeC", "C"); // 디자인 , 헤더푸터 파일
  5125. ds_send_ltp.setColumn(0, "activeV", "V"); // 음성녹음 저장
  5126. var oParam = {}; // ltp정보
  5127. oParam.id = "TRMPL03307";
  5128. oParam.service = "imgemrapp.ImgemrBase";
  5129. oParam.method = "reqGetltpindexInfo";
  5130. oParam.inds = "req=ds_send_ltp";
  5131. oParam.outds = "ds_main_ltpindexinfo=ltpindexinfo";
  5132. oParam.async = false;
  5133. tranf_submit(oParam);
  5134. ds_main_ltp_img.setColumn(0, "ltpindexserver",ds_main_ltpindexinfo.getColumn(0, "ipaddress"));
  5135. ds_main_ltp_img.setColumn(0, "ltpindexport","2500");
  5136. ds_main_ltp_img.setColumn(0, "ltpindexuser",ds_main_ltpindexinfo.getColumn(0, "ftpuser"));
  5137. ds_main_ltp_img.setColumn(0, "ltpindexpath",ds_main_ltpindexinfo.getColumn(0, "localpath"));
  5138. ds_main_ltp_img.setColumn(0, "pathid",ds_main_ltpindexinfo.getColumn(0, "pathid"));
  5139. ds_main_ltp_validata.setColumn(0, "ltpindexserver",ds_main_ltpindexinfo.getColumn(1, "ipaddress"));
  5140. ds_main_ltp_validata.setColumn(0, "ltpindexport","2500");
  5141. ds_main_ltp_validata.setColumn(0, "ltpindexuser",ds_main_ltpindexinfo.getColumn(1, "ftpuser"));
  5142. ds_main_ltp_validata.setColumn(0, "ltpindexpath",ds_main_ltpindexinfo.getColumn(1, "localpath"));
  5143. ds_main_ltp_validata.setColumn(0, "pathid",ds_main_ltpindexinfo.getColumn(1, "pathid"));
  5144. ds_main_ltp_resource.setColumn(0, "ltpindexserver",ds_main_ltpindexinfo.getColumn(2, "ipaddress"));
  5145. ds_main_ltp_resource.setColumn(0, "ltpindexport","2500");
  5146. ds_main_ltp_resource.setColumn(0, "ltpindexuser",ds_main_ltpindexinfo.getColumn(2, "ftpuser"));
  5147. ds_main_ltp_resource.setColumn(0, "ltpindexpath",ds_main_ltpindexinfo.getColumn(2, "localpath"));
  5148. ds_main_ltp_resource.setColumn(0, "pathid",ds_main_ltpindexinfo.getColumn(2, "pathid"));
  5149. ds_main_ltp_record.setColumn(0, "ltpindexserver",ds_main_ltpindexinfo.getColumn(3, "ipaddress"));
  5150. ds_main_ltp_record.setColumn(0, "ltpindexport","2500");
  5151. ds_main_ltp_record.setColumn(0, "ltpindexuser",ds_main_ltpindexinfo.getColumn(3, "ftpuser"));
  5152. ds_main_ltp_record.setColumn(0, "ltpindexpath",ds_main_ltpindexinfo.getColumn(3, "localpath"));
  5153. ds_main_ltp_record.setColumn(0, "pathid",ds_main_ltpindexinfo.getColumn(3, "pathid"));
  5154. }
  5155. function ImageFilePut(imgpaths)
  5156. {
  5157. var dirname;
  5158. var fullpath;
  5159. var dirfull;
  5160. var count;
  5161. var pagecnt;
  5162. var imgpath;
  5163. var flag;
  5164. //var fso;
  5165. //fso = new ActiveXObject("Scripting.FileSystemObject");
  5166. imgpath = imgpaths.split("|"); //저장된 패스 여러장일경우 구분자 '|' 로잘라줘야함
  5167. pagecnt = imgpath.length;
  5168. for (count = 0; count < pagecnt; count++)
  5169. {
  5170. pageno = ds_main_paget.getColumn(count, "pageno").toString(); //model.getValue("/root/main/paget[" + (count+1) +"]/pageno");
  5171. //sysf_trace("pageno "+ pageno);
  5172. //sysf_trace("pageno.length -4 "+ pageno.length -4);
  5173. dir = pageno.substr(pageno.length-4 , pageno.length );
  5174. dirfull = ds_main_ltp_img.getColumn(0,"ltpindexpath") + "\\" + dir; //model.getValue("/root/main/ltp/img/ltpindexpath") + "\\" + dir;
  5175. fullpath = dirfull + "\\" + pageno + ".jpg";
  5176. flag = LTPFilePut(fullpath,imgpath[count])
  5177. //z:\ACTIVE_ENC\M\IMAGE\1172\99001172.jpg
  5178. //c:\report\RFM0131200.jpeg
  5179. if (flag == false)
  5180. {
  5181. return false;
  5182. }
  5183. else if(flag == true)
  5184. {
  5185. if(objExtCommon.IsFileExist(imgpath[count]))
  5186. {
  5187. objExtCommon.DeleteFile(imgpath[count], true);
  5188. }
  5189. }
  5190. }
  5191. return flag;
  5192. }
  5193. function filetransfail(imgpaths)
  5194. {
  5195. var bDelData = "status▦pageno▩";
  5196. imgpath = imgpaths.split("|"); //저장된 패스 여러장일경우 구분자 '|' 로잘라줘야함
  5197. pagecnt = imgpath.length-1;
  5198. for (count = 0; count < pagecnt; count++)
  5199. {
  5200. pageno = ds_main_paget.getColumn(count, "pageno"); //model.getValue("/root/main/paget[" + (count+1) +"]/pageno");
  5201. bDelData += "d▦" + pageno + "▩";
  5202. }
  5203. dsf_createDsRow("ds_send_delimage", [{col:"pageno", type:"string", size:256, val:bDelData}]);
  5204. var oParam = {};
  5205. oParam.id = "TXMPL03317";
  5206. oParam.service = "imgemrapp.ImgemrBase";
  5207. oParam.method = "reqDelChartpaget";
  5208. oParam.inds = "req=ds_send_delimage";
  5209. oParam.outds = "";
  5210. oParam.async = false;
  5211. tranf_submit(oParam);
  5212. dsf_deleteDs("ds_send_delimage");
  5213. }
  5214. function fSendRecInfoToSMMMO00100(pSaveflag){///
  5215. if(utlf_transNullToEmpty(sysf_getUserInfo("jobkindcd")).substring(0,2) == "03"){
  5216. if(frmf_isPopup()){
  5217. if(pSaveflag == "I"){
  5218. if(ds_hidden_procpconfiag.getColumn(0, "answcnt") == "001"){
  5219. var pamInfoNode = "ds_main_paminfo";
  5220. var pid = ds_main_paminfo.getColumn(0, "pid");
  5221. var cretno = ds_main_paminfo.getColumn(0, "cretno");
  5222. var orddd = ds_main_paminfo.getColumn(0, "orddd");
  5223. if(utlf_isNull(orddd)){
  5224. orddd = ds_main_paminfo.getColumn(0, "indd");
  5225. }
  5226. var wd = opener.frmf_findPopup("SMMMO00100");
  5227. if(!utlf_isNull(wd)){
  5228. var formcd = "";
  5229. var formnm = "";
  5230. var titleNm = "제증명 작성";
  5231. var swindex = grp_base.swc_prof.tabindex;
  5232. var gridrow = ds_send.getColumn(0, "certimgrownum");
  5233. if( grp_base.swc_prof.tabindex == 0 ){
  5234. formcd = ds_main_profform_list.getColumn(ds_main_profform_list.rowposition, "formcd");
  5235. } else if( grp_base.swc_prof.tabindex == 1 ){
  5236. formcd = ds_main_favorlist_list.getColumn(ds_main_favorlist_list.rowposition, "formcd");
  5237. } else if( grp_base.swc_prof.tabindex == 2 ){
  5238. formcd = ds_main_profhist.getColumn(ds_main_profhist.rowposition, "formcd");
  5239. }
  5240. if(!utlf_isNull(formcd) || (!utlf_isNull(gridrow) && gridrow > -1)){
  5241. switch(swindex){
  5242. case 0 :
  5243. var nFindRow = ds_main_profform_list.findRow("formcd", formcd);
  5244. formnm = "(" + utlf_transNullToEmpty(ds_main_profform_list.getColumn(nFindRow, "formnm")) + ")";
  5245. break;
  5246. case 1 :
  5247. var nFindRow = ds_main_favorlist_list.findRow("formcd", formcd);
  5248. formnm = "(" + utlf_transNullToEmpty(ds_main_favorlist_list.getColumn(nFindRow, "formnm")) + ")";
  5249. break;
  5250. case 2 :
  5251. if(!utlf_isNull(gridrow) && gridrow > -1){
  5252. formnm = "(" + utlf_transNullToEmpty(ds_main_profhist.getColumn(gridrow, "formnm")) + ")";
  5253. }else{
  5254. if(!utlf_isNull(formcd)){
  5255. var nFindRow = ds_main_profhist.findRow("formcd", formcd);
  5256. formnm = "(" + utlf_transNullToEmpty(ds_main_profhist.getColumn(nFindRow, "formnm")) + ")";
  5257. }else{
  5258. formnm = "";
  5259. }
  5260. }
  5261. break;
  5262. default : formnm = "";
  5263. break;
  5264. }
  5265. }else{
  5266. formnm = "";
  5267. }
  5268. if( !utlf_isNull(formnm ) ){
  5269. formnm = titleNm + formnm;
  5270. }else{
  5271. formnm = titleNm;
  5272. }
  5273. wd.fSetAutoPrcpInfo(pid, cretno, orddd, formnm );
  5274. }
  5275. }
  5276. }
  5277. }
  5278. }
  5279. }
  5280. /*************************************************************************************************************
  5281. * Function : lf_ivw_loader_setting
  5282. * Description : 서식 로더 내 컨트롤 설정
  5283. * Argument :
  5284. * retrun type :
  5285. * Creator :
  5286. ************************************************************************************************************/
  5287. function lf_ivw_loader_setting() {
  5288. grp_base.ivw_loader.grup_titl.visible = false;
  5289. //grp_base.ivw_loader.Static01.position.right = grp_base.ivw_loader.grup_titl.position.right;
  5290. grp_base.ivw_loader.Static01.position.top = grp_base.ivw_loader.grup_titl.position.top;
  5291. grp_base.ivw_loader.Static01.position.bottom = grp_base.ivw_loader.grup_btn.position.bottom;//grp_base.ivw_loader.position.bottom;
  5292. grp_base.ivw_loader.ivw_base.position.left = 0;
  5293. //grp_base.ivw_loader.ivw_base.position.right = grp_base.ivw_loader.grup_titl.position.right;
  5294. grp_base.ivw_loader.ivw_base.position.top = grp_base.ivw_loader.grup_titl.position.top;
  5295. grp_base.ivw_loader.ivw_base.position.bottom = grp_base.ivw_loader.grup_btn.position.bottom;
  5296. grp_base.ivw_loader.lf_btnVisible(false); // 버튼 visible/hidden
  5297. }
  5298. /*************************************************************************************************************
  5299. * Function : lf_CheckPrintOCR
  5300. * Description : 전원(회송)의뢰서 개인정보 이용동의서 출력여부
  5301. * Argument :
  5302. * retrun type :
  5303. * Creator :
  5304. ************************************************************************************************************/
  5305. function lf_CheckPrintOCR(){
  5306. var nRow = ds_main_profhist.rowposition;
  5307. var nPid = ds_main_profhist.getColumn(nRow, "pid");
  5308. var nOrddd = ds_main_profhist.getColumn(nRow, "orddd");
  5309. var nCretno = ds_main_profhist.getColumn(nRow, "cretno");
  5310. var nIoflag = ds_main_profhist.getColumn(nRow, "ioflag");
  5311. // 구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  5312. if( !isValidObject("ds_init_prncd") ){
  5313. dsf_createDs("ds_init_prncd");
  5314. lf_reqHardCodeInfo(ds_init_prncd, "5604");
  5315. }
  5316. var nFindRow = ds_init_prncd.findRow("cdseqno", "3");
  5317. var nFormcd = ds_init_prncd.getColumn(nFindRow, "hardcd");
  5318. // Step1. 기준일자 : 2016501(반납확인일 기준)
  5319. dsf_createDsRow("ds_cond_TRMMR02921", [{col:"pid", type:"STRING", size:256, val:nPid}
  5320. , {col:"formcd", type:"STRING", size:256, val:nFormcd}]);
  5321. dsf_createDs("ds_data_TRMMR02921", [{col:"perprintyn", type:"STRING", size:256}]);
  5322. var oParam = {};
  5323. oParam.id = "TRMMR02921";
  5324. oParam.service = "medirecapp.ExtnMediRec";
  5325. oParam.method = "reqGetPerPrintYn";
  5326. oParam.inds = "req=ds_cond_TRMMR02921";
  5327. oParam.outds = "ds_data_TRMMR02921=item";
  5328. oParam.async = false;
  5329. //oParam.callback = "cf_TRMMR02921";
  5330. tranf_submit(oParam);
  5331. var sPerprintyn = ds_data_TRMMR02921.getColumn(0, "perprintyn");
  5332. if( sPerprintyn == "N" ){
  5333. // 코드조회
  5334. var arrParam = [{dsNm: "ds_init_PAM_PK018list", cdGrpId: "PK018"}]
  5335. pamfGetCodeList(arrParam, "false");
  5336. // Step2. 개인정보동의서 출력
  5337. var sOcrType = "O";
  5338. var sClientIp = objExtCommon.getIPAddress();
  5339. if (ds_init_PAM_PK018list.getColumn(ds_init_PAM_PK018list.findRow("cdid", sClientIp), "cdnm") == "Y"){
  5340. sOcrType = "S";
  5341. }
  5342. //개인정보이용동의서 출력
  5343. fPerPrintOCR(nFormcd, nPid, nOrddd, nCretno, nIoflag, sOcrType);
  5344. }
  5345. dsf_deleteDs("ds_cond_TRMMR02921");
  5346. dsf_deleteDs("ds_data_TRMMR02921");
  5347. }
  5348. /*************************************************************************************************************
  5349. * Function : lf_getPerSignData
  5350. * Description : 전원(회송)의뢰서 제증명 서명 정보 조회
  5351. * Argument :
  5352. * retrun type :
  5353. * Creator :
  5354. ************************************************************************************************************/
  5355. function lf_getPerSignData(){
  5356. var nRow = ds_main_profhist.rowposition;
  5357. var nPid = ds_main_profhist.getColumn(nRow, "pid");
  5358. var nProfcertseq = ds_main_profhist.getColumn(nRow, "profcertseq");
  5359. dsf_createDsRow("ds_cond_TRMMR06502", [{col:"pid", type:"string", size:256, val:nPid}
  5360. , {col:"profcertseq", type:"string", size:256, val:nProfcertseq}]);
  5361. dsf_createDs("ds_persigntemp_memo_memo");
  5362. var oParam = {};
  5363. oParam.id = "TRMMR06502";
  5364. oParam.service = "medirecapp.ExtnMediRec";
  5365. oParam.method = "reqGetIssProfCertHistMemo";
  5366. oParam.inds = "req=ds_cond_TRMMR06502";
  5367. oParam.outds = "ds_persigntemp_memo_memo=memo";
  5368. oParam.async = false;
  5369. tranf_submit(oParam);
  5370. dsf_deleteDs("ds_cond_TRMMR06502");
  5371. }
  5372. /*************************************************************************************************************
  5373. * Function : lf_getPerSignData
  5374. * Description : 전원(회송)의뢰서 실행여부 리턴
  5375. * Argument : 01.nFormcd - 서식코드
  5376. * retrun type : Y / N
  5377. * Creator :
  5378. ************************************************************************************************************/
  5379. function lf_CheckPerPrint(nFormcd){
  5380. var nCheckPerPrint = "N";
  5381. if( nFormcd == "0000002536" ){
  5382. nCheckPerPrint = "Y";
  5383. }
  5384. return nCheckPerPrint;
  5385. }
  5386. /*************************************************************************************************************
  5387. * Function : lf_SetPrePrntInfo
  5388. * Description : 출력정보 저장하기 위한 설정
  5389. * Argument : 01.nPrntflag : 10 - 미리보기, 20 - 빈서식출력(유), 30 - 빈서식출력(무)
  5390. * retrun type : N/A
  5391. ************************************************************************************************************/
  5392. function lf_SetPrePrntInfo(nPrntflag){
  5393. dsf_createDs("ds_preprntinfo");
  5394. ds_preprntinfo.assign(ds_main_profhist);
  5395. ds_preprntinfo.clearData();
  5396. ds_preprntinfo.addRow();
  5397. var currow = ds_main_profhist.rowposition;
  5398. ds_preprntinfo.copyRow(0, ds_main_profhist, currow);
  5399. ds_preprntinfo.addColumn("prntflag", "string");
  5400. ds_preprntinfo.setColumn(0, "prntflag", nPrntflag);
  5401. }
  5402. /*************************************************************************************************************
  5403. * Function : cbf_SetPrePrntInfo
  5404. * Description : 출력정보 저장
  5405. * Argument : N/A
  5406. * retrun type : N/A
  5407. ************************************************************************************************************/
  5408. function cbf_SetPrePrntInfo(){
  5409. if( ds_preprntinfo.rowcount > 0 ){
  5410. ds_preprntinfo.setColumn(0, "prntcnt" , 1);
  5411. ds_preprntinfo.setColumn(0, "prntuserid" , sysf_getUserInfo("userid"));
  5412. ds_preprntinfo.setColumn(0, "prntdeptcd" , sysf_getUserInfo("dutplcecd"));
  5413. ds_preprntinfo.setColumn(0, "prntdt" , utlf_getCurrentDate() + utlf_getCurrentTime());
  5414. ds_preprntinfo.setColumn(0, "fstrgstrid" , sysf_getUserInfo("userid"));
  5415. ds_preprntinfo.setColumn(0, "fstrgstdt" , utlf_getCurrentDate() + utlf_getCurrentTime());
  5416. ds_preprntinfo.setColumn(0, "lastupdtrid" , sysf_getUserInfo("userid"));
  5417. ds_preprntinfo.setColumn(0, "lastupdtdt" , utlf_getCurrentDate() + utlf_getCurrentTime());
  5418. var oParam = {};
  5419. oParam.id = "TXMMR02911";
  5420. oParam.service = "medirecapp.ExtnMediRec";
  5421. oParam.method = "reqSetProfPreviewPrintInfo";
  5422. oParam.inds = "prof=ds_preprntinfo";
  5423. oParam.outds = "";
  5424. oParam.async = false;
  5425. //oParam.callback = "cf_TXMMR02911";
  5426. tranf_submit(oParam);
  5427. }
  5428. }
  5429. function fTransChk() {
  5430. var pid = ds_main_patinfo.getColumn(0,"pid");
  5431. var orddeptcd = ds_main_patinfo.getColumn(0,"orddeptcd");
  5432. var orddd = ds_main_patinfo.getColumn(0,"orddd");
  5433. var cretno = ds_main_patinfo.getColumn(0,"cretno");
  5434. // 입원환자 회송서 발행 기준변경(요청번호 : 20200113014)
  5435. dsf_createDsRow("ds_send_trans", [ {col:"pid", type:"string", size:256, val:pid}
  5436. , {col:"orddeptcd", type:"string", size:256, val:orddeptcd}
  5437. , {col:"orddd", type:"string", size:256, val:orddd}
  5438. , {col:"cretno", type:"string", size:256, val:cretno}]);
  5439. dsf_createDs("ds_result_trans", [{col:"cnt", type:"string", size:256}]);
  5440. var oParam = {};
  5441. oParam.id = "TRANS";
  5442. oParam.service = "medirecapp.ExtnMediRec";
  5443. oParam.method = "reqGetTransYN";
  5444. oParam.inds = "req=ds_send_trans";
  5445. oParam.outds = "ds_result_trans=cntlist";
  5446. oParam.async = false;
  5447. //oParam.callback = "cf_TRMMR02912";
  5448. tranf_submit(oParam);
  5449. var cnt = ds_result_trans.getColumn(0,"cnt");
  5450. if(cnt > 0){
  5451. return false;
  5452. }
  5453. return true;
  5454. }
  5455. /**
  5456. * 단어에 특정 문자 제거
  5457. *
  5458. * @param
  5459. * word 단어
  5460. * ch 문자
  5461. */
  5462. function removeChar(word, ch){
  5463. var temp = "";
  5464. var res = "";
  5465. if(!utlf_isNull(word)){
  5466. var len = word.length;
  5467. for(i = 0; i < len; i++){
  5468. temp = word.charAt(i);
  5469. if(temp == ch){
  5470. continue;
  5471. }else{
  5472. res += temp;
  5473. }
  5474. }
  5475. }
  5476. return res;
  5477. }
  5478. /**
  5479. * 단어에 step간격 특정 문자 삽입
  5480. *
  5481. * @param
  5482. * word 단어
  5483. * ch 문자
  5484. * step 간격
  5485. */
  5486. function insertChar(word, ch, step){
  5487. var temp = "";
  5488. var res = "";
  5489. var cnt = 0;
  5490. var len = word.length;
  5491. for(i = 0; i < len; i++){
  5492. cnt++;
  5493. temp = word.charAt(i);
  5494. if(cnt % step == 0 && cnt != len){
  5495. temp = temp + ch;
  5496. }
  5497. res += temp;
  5498. }
  5499. return res;
  5500. }
  5501. function fPerPrntOCR()
  5502. {
  5503. var mon = 1;
  5504. var currow = ds_main_profhist.rowposition;
  5505. if(currow < 0) return;
  5506. var formcd = ds_main_profhist.getColumn(currow,"formcd");
  5507. var pid = ds_main_profhist.getColumn(currow,"pid");
  5508. var ordtype = ds_main_profhist.getColumn(currow,"ioflag");
  5509. var orddd = ds_main_profhist.getColumn(currow,"orddd");
  5510. var cretno = ds_main_profhist.getColumn(currow,"cretno");
  5511. dsf_createDs("ds_hardlist");
  5512. lf_getHardCDList("N", 6913, 0 , ds_hardlist);
  5513. var row = ds_hardlist.findRow("hardcd", formcd);
  5514. if ( row < 0 ) return;
  5515. var calcscorcd = ds_hardlist.getColumn(row, "hardcdnm");
  5516. //var calcscorcd = utlf_transNullToEmpty(ds_hardlist.lookup("hardcd", formcd, "hardcdnm"));
  5517. dsf_createDs("ds_send_ocrprnt");
  5518. dsf_makeValue(ds_send_ocrprnt, "pid", "string", pid);
  5519. dsf_makeValue(ds_send_ocrprnt, "orddd", "string", orddd);
  5520. dsf_makeValue(ds_send_ocrprnt, "cretno", "string", cretno);
  5521. dsf_makeValue(ds_send_ocrprnt, "ordtype", "string", ordtype);
  5522. dsf_makeValue(ds_send_ocrprnt, "calcscorcd", "string", calcscorcd+"▦");
  5523. dsf_makeValue(ds_send_ocrprnt, "disflag", "string", "calcscor");
  5524. var objArg = new Object();
  5525. objArg.arg_ds_main_temp_calcscor = ds_send_ocrprnt;
  5526. frmf_modal("SPMRF04500","SPMRF04500",objArg,"",mon,1,1,"","","","","","M");
  5527. }
  5528. function lf_yexplain()
  5529. {
  5530. var parammsg = "B@연명의료설명@YEON01";
  5531. if( !utlf_isNull(parammsg) ){
  5532. frmf_setParameter("SPMQR06000_param", parammsg); // 파라미터 설정
  5533. frmf_modal("SPMQR06000", "SPMQR06000", null, null, null, null, null, null, null, null, null, null, "M");
  5534. }
  5535. }
  5536. function lf_SetMedispclInfo(nFlag)
  5537. {
  5538. if(utlf_isNull(nFlag) || nFlag instanceof Button){
  5539. nFlag = "INIT";
  5540. }
  5541. var nFormcd = "";
  5542. if( nFlag == "INIT" ){
  5543. var div_loader = null;
  5544. if( this.name == "FPMRZ01000"){
  5545. div_loader = this.components["ivw_loader"];
  5546. }else{
  5547. div_loader = grp_base.components["ivw_loader"];
  5548. }
  5549. if( utlf_isNull(div_loader) ) return;
  5550. nFormcd = div_loader.ds_data_formmast.getColumn(0, "formcd");
  5551. }else{
  5552. nFormcd = ds_main_profhist.getColumn(ds_main_profhist.rowposition,"formcd");
  5553. }
  5554. if( nFormcd != "1800020640"
  5555. && nFormcd != "1800020642"
  5556. && nFormcd != "1800020643"
  5557. && nFormcd != "1800020644"
  5558. && nFormcd != "1900023303"
  5559. && nFormcd != "1900025203"
  5560. ){
  5561. return false;
  5562. }
  5563. // 1. 임종과정에 있는 환자 판단서
  5564. // 2019.03.27 추가 연명의료계획을 위한 말기환자 판단서
  5565. // 성명, 전문과목, 의료기관, 인증번호 순서
  5566. var aDegnitemlevlcd = ["0012050.0041552", "0012050.0012052", "0012050.0012054", "0012050.0035715"];
  5567. var aDegnitemcd = ["0041552", "0012052", "0012054", "0035715"];
  5568. if( nFormcd == "1900025203" // 3-2. 환자의사 확인서(사전연명의료의향서)-의사능력없는경우
  5569. || nFormcd == "1800020643" // 4. 환자의사 확인서(환자가족 진술)
  5570. || nFormcd == "1800020644" ){ // 5. 친권자 및 환자가족 의사 확인서
  5571. aDegnitemlevlcd = ["0013232.0013233", "0013232.0013235", "0013232.0013234", "0013232.0013236"];
  5572. aDegnitemcd = ["0013233", "0013235", "0013234", "0013236"];
  5573. }
  5574. if( nFlag == "INIT" ){
  5575. var drid = "";
  5576. var drnm = "";
  5577. var deptnm = "";
  5578. var licnsno = "";
  5579. var medispclno = "";
  5580. var instnm = "";
  5581. if( nFormcd == "1800020640" || nFormcd == "1900023303" ){
  5582. drid = sysf_getUserId();
  5583. drnm = sysf_getUserInfo("usernm");
  5584. deptnm = sysf_getUserInfo("dutplcenm");
  5585. licnsno = sysf_getUserInfo("licnsno")
  5586. medispclno = sysf_getUserInfo("medispclno");
  5587. instnm = sysf_getUserInfo("dutplceinstnm");
  5588. }else{
  5589. var objArg = new Object();
  5590. objArg.plgv_sSearchCondition = "usernm";
  5591. objArg.plgv_sSearchTerm = "";
  5592. objArg.plgv_sUserfromdd = "";
  5593. objArg.plgv_sUsertodd = "";
  5594. objArg.plgv_sDutinstcd = "";
  5595. objArg.plgv_sDutunitcd = "";
  5596. var rtnobj = frmf_modal("SPZSU10100", "SPZSU10100", objArg, null, null, null, null, null, null, null, null, null, "P");
  5597. if( utlf_isNull(rtnobj.userInfo))
  5598. {
  5599. return;
  5600. }
  5601. var userinfo = (rtnobj.userInfo).split("|");
  5602. var srchuserid = userinfo[2];
  5603. var srchusernm = userinfo[3];
  5604. instnm = userinfo[4];
  5605. if( !utlf_isNull(srchuserid) ){
  5606. dsf_createDsRow("ds_cond_docinfo", [{col:"userid", val:srchuserid}]);
  5607. dsf_createDs("ds_data_frm_docinfo");
  5608. var oParam = {};
  5609. oParam.id = "TRMRF01216";
  5610. oParam.service = "formmngtapp.FormIfMngt";
  5611. oParam.method = "reqGetDocInfo";
  5612. oParam.inds = "req=ds_cond_docinfo";
  5613. oParam.outds = "ds_data_frm_docinfo=drinfo";
  5614. oParam.async = false;
  5615. oParam.callback = "cf_TRMRF01216";
  5616. tranf_submit(oParam);
  5617. if(arErrorCode.pop("TRMRF01216") < 0 || utlf_isNull(ds_data_frm_docinfo.getColumn(0, "orddrid")))
  5618. {
  5619. alert("의사정보를 가져오는데 실패하였습니다.");
  5620. return;
  5621. }
  5622. drid = ds_data_frm_docinfo.getColumn(0, "orddrid");
  5623. drnm = ds_data_frm_docinfo.getColumn(0, "orddrnm");
  5624. deptnm = ds_data_frm_docinfo.getColumn(0, "orddepthngnm");
  5625. licnsno = ds_data_frm_docinfo.getColumn(0, "licnsno"); //전문의 자격면허번호
  5626. medispclno = ds_data_frm_docinfo.getColumn(0, "medispclno"); //전문의 면허번호
  5627. }
  5628. }
  5629. var itemvalue = new ITEMVAL();
  5630. // 전문의 성명
  5631. itemvalue.reccnts = drnm;
  5632. lf_setItemDataByItemBaseCd(aDegnitemlevlcd[0], aDegnitemcd[0], itemvalue);
  5633. // 전문의 전문과목
  5634. itemvalue.reccnts = deptnm;
  5635. lf_setItemDataByItemBaseCd(aDegnitemlevlcd[1], aDegnitemcd[1], itemvalue);
  5636. // 소속 의료기관 0012050.0012054
  5637. itemvalue.reccnts = instnm;
  5638. lf_setItemDataByItemBaseCd(aDegnitemlevlcd[2], aDegnitemcd[2], itemvalue);
  5639. // 전문의 자격인증번호
  5640. itemvalue.reccnts = medispclno;
  5641. lf_setItemDataByItemBaseCd(aDegnitemlevlcd[3], aDegnitemcd[3], itemvalue);
  5642. }else if( nFlag == "IMG" ){
  5643. var medispclno = ds_data_recitem.getColumn(ds_data_recitem.findRowExpr("degnitemlevlcd=='"+aDegnitemlevlcd[3]+"'"), "reccnts");
  5644. if( utlf_isNull(medispclno) ) return false;
  5645. dsf_createDsRow("ds_cond_medispclinfo", [{col:"medispclno", type:"string", size:256, val:medispclno}]);
  5646. dsf_createDs("ds_data_medispclinfo");
  5647. // 전문의 서명이미지 조회
  5648. var oParam = {};
  5649. oParam.id = "TRMRF01205";
  5650. oParam.service = "formmngtapp.FormIfMngt";
  5651. oParam.method = "reqGetMediSpclSignImge";
  5652. oParam.inds = "req=ds_cond_medispclinfo";
  5653. oParam.outds = "ds_data_medispclinfo=docinfo";
  5654. oParam.async = false;
  5655. //oParam.callback = "cf_TRMRF01205";
  5656. tranf_submit(oParam);
  5657. if( ds_data_medispclinfo.rowcount > 0 )
  5658. return true;
  5659. else
  5660. return false;
  5661. }
  5662. }
  5663. function lf_fhoisongchk(formcd,srcformcd) {
  5664. if ( srcformcd == "0000002536") {
  5665. if (formcd == "1700019854" ) {
  5666. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160");
  5667. var gbn = itemVal.rectermcd ;
  5668. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160.0012159.0012164");
  5669. var relation = itemVal.reccnts ;
  5670. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160.0012159.0012162");
  5671. var fname = itemVal.reccnts ;
  5672. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012160.0012159.0012163");
  5673. }else if (formcd == "1700019834" ) {
  5674. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165");
  5675. var gbn = itemVal.rectermcd ;
  5676. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165.0012164.0005964");
  5677. var relation = itemVal.reccnts ;
  5678. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165.0012164.0012166");
  5679. var fname = itemVal.reccnts ;
  5680. var itemVal = grp_base.ivw_loader.ivw_base.getFormItemValue("0012165.0012164.0012167");
  5681. var phone = itemVal.reccnts ;
  5682. }
  5683. if (utlf_isNull(gbn)) {
  5684. sysf_messageBox("환자(또는 가족) 입력 후 진행해주십시오.", "C999");
  5685. return false;
  5686. }
  5687. //가족
  5688. if (gbn == "0021027001") {
  5689. if( utlf_isNull(relation) ){
  5690. sysf_messageBox("관계 입력 후 진행해 주십시오.", "C999");
  5691. return false;
  5692. }
  5693. if( utlf_isNull(fname) ){
  5694. sysf_messageBox("이름 입력 후 진행해 주십시오.", "C999");
  5695. return false;
  5696. }
  5697. if( utlf_isNull(phone) ){
  5698. sysf_messageBox("전화번호 입력 후 진행해 주십시오.", "C999");
  5699. return false;
  5700. }
  5701. }
  5702. }
  5703. return true;
  5704. }
  5705. function fPrntOCR() {
  5706. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  5707. var pid = ds_main_patinfo.getColumn(0,"pid");
  5708. var cretno = ds_main_patinfo.getColumn(0,"cretno");
  5709. var orddd = ds_main_patinfo.getColumn(0,"orddd");
  5710. var orddeptcd = ds_main_patinfo.getColumn(0,"orddeptcd");
  5711. var formcd = frmf_getParameter("SPMRI09010_formcd");
  5712. frmf_setParameter("formcd",formcd);
  5713. frmf_setParameter("pid",pid);
  5714. frmf_setParameter("orddd",orddd);
  5715. frmf_setParameter("cretno",cretno);
  5716. frmf_setParameter("ordtype",ioflag);
  5717. frmf_open("SSMRF03700", "SSMRF03700", null, null, null, null, null, null, null, null, null, null, "M");
  5718. }
  5719. function fMakePrcp() {
  5720. dsf_deleteDs("ds_prcp_existyn");
  5721. dsf_deleteDs("ds_prcp_result");
  5722. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  5723. var pid = ds_main_patinfo.getColumn(0,"pid");
  5724. var cretno = ds_main_patinfo.getColumn(0,"cretno");
  5725. var orddd = ds_main_patinfo.getColumn(0,"orddd");
  5726. var orddeptcd = ds_main_patinfo.getColumn(0,"orddeptcd");
  5727. var ioflag = ds_main_patinfo.getColumn(0,"ioflag");
  5728. var ib_issprcp = false;
  5729. if(utlf_isNull(pid)) return;
  5730. if ( ioflag == "S" || ioflag == "O" || ioflag == "D" ) {
  5731. sysf_messageBox("병동(응급실 포함) 재원만 진행 가능합니다","I");
  5732. return;
  5733. }
  5734. var prcpcds = frmf_getParameter("SPMRI09010_prcpcds");
  5735. var prcp_array = prcpcds.split("▦");
  5736. dsf_createDs("ds_prcp_existyn");
  5737. dsf_createDs("ds_prcp_result");
  5738. for (var i = 0; i < prcp_array.length; i++) {
  5739. ib_issprcp = false;
  5740. dsf_makeValue(ds_main_patinfo,"prcpcd","string",prcp_array[i]);
  5741. var oParam = {};
  5742. oParam.id = "reqGetExistYeonPrcp";
  5743. oParam.service = "emrreclib.ComnFormRec";
  5744. oParam.method = "reqGetExistYeonPrcp";
  5745. oParam.inds = "req=ds_main_patinfo";
  5746. oParam.outds = "ds_prcp_existyn=list";
  5747. oParam.async = false;
  5748. //oParam.callback = "cf_exeYeonMakePrcp";
  5749. tranf_submit(oParam);
  5750. if(arErrorCode.pop("reqGetExistYeonPrcp") < 0){
  5751. sysf_messageBox("에러","I");
  5752. return;
  5753. }
  5754. if ("Y" == ds_prcp_existyn.getColumn(0,"existyn")) {
  5755. if (prcp_array[i] == "IA701") {
  5756. sysf_messageBox(prcp_array[i]+" 우리병원에서 해당 처방을 발행한 이력이 있습니다. 해당처방은 발행되지 않습니다","I" );
  5757. ib_issprcp = false;
  5758. } else {
  5759. if (6 == sysf_messageBox(prcp_array[i]+" 처방이 이미 발행되었습니다. 추가로 발행 하시겠습니까?","Q")) {
  5760. ib_issprcp = true;
  5761. }
  5762. }
  5763. }
  5764. else {
  5765. ib_issprcp = true;
  5766. }
  5767. if (ib_issprcp) {
  5768. var oParam = {};
  5769. oParam.id = "exeYeonMakePrcp";
  5770. oParam.service = "emrreclib.ComnFormRec";
  5771. oParam.method = "exeYeonMakePrcp";
  5772. oParam.inds = "req=ds_main_patinfo";
  5773. oParam.outds = "ds_prcp_result=list";
  5774. oParam.async = false;
  5775. //oParam.callback = "cf_exeYeonMakePrcp";
  5776. tranf_submit(oParam);
  5777. if(arErrorCode.pop("exeYeonMakePrcp") < 0){
  5778. sysf_messageBox("에러","I");
  5779. return;
  5780. }
  5781. }
  5782. }
  5783. if (ds_prcp_result.rowcount > 0) sysf_messageBox("정상적으로 진행되었습니다.","I");
  5784. }
  5785. function cf_exeYeonMakePrcp(sSvcId, nErrorCode, sErrorMsg) {
  5786. arErrorCode.push(sSvcId, nErrorCode);
  5787. if(nErrorCode < 0) return;
  5788. utlf_addLog("***** cf_exeYeonMakePrcp *****");
  5789. }
  5790. function fYeonSendMsg() {
  5791. var pid = ds_main_patinfo.getColumn(0,"pid");
  5792. var hngnm = ds_main_patinfo.getColumn(0,"hngnm");
  5793. if(utlf_isNull(pid)) return;
  5794. var msg = pid+" "+hngnm+" 환자 연명관련 판단서 빠른 작성 부탁드립니다";
  5795. dsf_createDsRow("ds_msgdata", [{col:"msgcnts", val:msg} // 메시지
  5796. , {col:"calltype", val:"msgcall"} // 호출형태 : msg - 메시지만, call - 호출만, msgcall - 메시지 + 호출
  5797. ]);
  5798. var objArg = new Object();
  5799. objArg.arg_ds_msgdata = ds_msgdata;
  5800. frmf_modalInternal("msgbox", "com_hismainxp::form_msgbox.xfdl", objArg, null, null, null, null, null, null, null, null, null, "P");
  5801. }
  5802. function fYeonList() {
  5803. var pid = ds_main_patinfo.getColumn(0, "pid");
  5804. var hngnm = ds_main_patinfo.getColumn(0, "hngnm");
  5805. if(utlf_isNull(pid)) return;
  5806. frmf_setParameter("SPMRI09005_PARAM1", "" );
  5807. frmf_setParameter("SPMRI09005_PARAM2", pid );
  5808. frmf_setParameter("SPMRI09005_PARAM3", hngnm );
  5809. frmf_modal("SPMRI09005", "SPMRI09005", null, null, null, null, null, null, null, null, null, null, "M");
  5810. }
  5811. /***********************************************************************************************************
  5812. * Function : fSetChngAmblInfo
  5813. * Description : 응급환자진료의뢰서를 제증명이력에서 선택 시, 전원전입환자 일지에 입력되어있는 데이터로 보여주도록 요청함.
  5814. 1) [요청번호: 20190827026] 전원전입환자 일지에 '구급차번호, 동승인력' 데이터가 있고 응급환자진료의뢰서와 값이
  5815. 다른 경우 환자일지 정보로 보여줌.
  5816. 2) [요청번호: 20200130011] 진료의뢰서에 '이송병원선정방법, 전원병원 수용결정자' 값이 없고 환자일지에 값이 있으면
  5817. 환자일지의 값으로 보여줌.
  5818. 하드코드 : 100015
  5819. * Argument : 01.pid
  5820. * Creator : 금정화
  5821. ***********************************************************************************************************/
  5822. function fSetChngAmblInfo(pid)
  5823. {
  5824. var indd = grp_base.ivw_loader.ds_data_formrec.getColumn(0, "orddd");
  5825. var cretno = grp_base.ivw_loader.ds_data_formrec.getColumn(0, "cretno");
  5826. dsf_createDsRow("ds_send_chngamblinfo", [{col:"instcd", type:"string", size:256, val:sysf_getUserInfo("dutplceinstcd")}
  5827. , {col:"pid", type:"string", size:256, val:pid}
  5828. , {col:"indd", type:"string", size:256, val:indd}
  5829. , {col:"cretno", type:"string", size:256, val:cretno}]);
  5830. dsf_createDs("ds_hidden_chngamblinfo", [{col:"ambno", type:"string", size:256}
  5831. , {col:"thp0", type:"string", size:256}
  5832. , {col:"thdp_cdnm", type:"string", size:256}
  5833. , {col:"deci_cdnm", type:"string", size:256}]);
  5834. var oParam = {};
  5835. oParam.id = "GetChngAmblInfo";
  5836. oParam.service = "medirecapp.ExtnMediRec";
  5837. oParam.method = "reqGetChngAmblInfo";
  5838. oParam.inds = "req=ds_send_chngamblinfo";
  5839. oParam.outds = "ds_hidden_chngamblinfo=chngamblinfo";
  5840. oParam.async = false;
  5841. oParam.callback = "cf_GetChngAmblInfo";
  5842. tranf_submit(oParam);
  5843. if(arErrorCode.pop("GetChngAmblInfo") > -1){
  5844. sysf_trace("****** GetChngAmblInfo 실행 완료 ******");
  5845. var vhckind_nm = "";
  5846. var vhckind_cd = "0025627001";
  5847. // 1. 요청번호: 20190827026 (응급환자진료의뢰서와 전원전입 일지 내용이 다르면 일지 내용으로 보여줌)
  5848. var ambno = dsf_getColumnNullToEmpty(ds_hidden_chngamblinfo, 0, "ambno") // 차량번호
  5849. var thp0_nm = dsf_getColumnNullToEmpty(ds_hidden_chngamblinfo, 0, "thp0") // 동승 응급의료 종사자
  5850. var thp0_cd = "";
  5851. if (!utlf_isNull(ambno) || !utlf_isNull(thp0_nm)) {
  5852. var item_vhckind = grp_base.ivw_loader.ivw_base.getFormItemValue("0017380"); // 이송 구급차
  5853. var temp_vhckind = item_vhckind.rectermnm;
  5854. var item_ambno = grp_base.ivw_loader.ivw_base.getFormItemValue("0000146"); // 차량번호
  5855. var temp_ambno = item_ambno.reccnts;
  5856. var item_thp0 = grp_base.ivw_loader.ivw_base.getFormItemValue("0017280"); // 동승 응급의료 종사자
  5857. var temp_thp0 = item_thp0.rectermnm;
  5858. // 이송 구급차 항목에 들어갈 아이템명을을 코드로 찾기.
  5859. if(!utlf_isNull(ambno)){
  5860. var rowidx1 = grp_base.ivw_loader.ivw_base.ds_data_V_0003220003.findRowExpr("termbasecd=='" + vhckind_cd + "'")
  5861. vhckind_nm = grp_base.ivw_loader.ivw_base.ds_data_V_0003220003.getColumn(rowidx1, "valitemnm");
  5862. }
  5863. /*else{
  5864. vhckind_nm = temp_vhckind;
  5865. ambno = temp_ambno;
  5866. }*/
  5867. if (ambno != temp_ambno || thp0_nm != temp_thp0) {
  5868. /*
  5869. var msg = "";
  5870. msg = msg + "\n" + "※구급차량번호와 동승인력 항목이 [전원환자일지] 정보로 변경됩니다.";
  5871. msg = msg + "\n" + "★반드시 저장 후 발행하십시오.★";
  5872. msg = msg + "\n\n";
  5873. msg = msg + "\n" + "<응급환자 진료의뢰서>-------------------------------------------------";
  5874. msg = msg + "\n";
  5875. msg = msg + "\n" + "이송차량 [" + temp_vhckind + "] 구급차량번호 [" + temp_ambno + "] 동승인력 [" + temp_thp0 + "]";
  5876. msg = msg + "\n";
  5877. msg = msg + "\n" + "<전원환자일지>--------------------------------------------------------";
  5878. msg = msg + "\n";
  5879. msg = msg + "\n" + "이송차량 [" + vhckind_nm + "] 구급차량번호 [" + ambno + "] 동승인력 [" + thp0_nm + "]";
  5880. msg = msg + "\n";
  5881. msg = msg + "\n" + "----------------------------------------------------------------------";
  5882. sysf_messageBox(msg, "I");
  5883. */
  5884. // 변경된 내용 셋팅해주기
  5885. if(!utlf_isNull(ambno)){
  5886. item_vhckind.rectermcd = vhckind_cd;
  5887. item_vhckind.rectermnm = vhckind_nm;
  5888. grp_base.ivw_loader.ivw_base.setFormItemValue("0017380", item_vhckind);
  5889. item_ambno.reccnts = ambno;
  5890. grp_base.ivw_loader.ivw_base.setFormItemValue("0000146", item_ambno);
  5891. }
  5892. // 동승응급의료 종사자 항목에 들어갈 아이템코드를 아이템명으로 찾기.
  5893. var rowidx2 = grp_base.ivw_loader.ivw_base.ds_data_V_0003221002.findRowExpr("valitemnm=='" + thp0_nm + "'")
  5894. thp0_cd = grp_base.ivw_loader.ivw_base.ds_data_V_0003221002.getColumn(rowidx2, "termbasecd");
  5895. item_thp0.rectermnm = thp0_nm;
  5896. item_thp0.rectermcd = thp0_cd;
  5897. grp_base.ivw_loader.ivw_base.setFormItemValue("0017280", item_thp0);
  5898. }
  5899. }
  5900. // 2. 요청번호: 20200130011 (응급환자진료의뢰서의 해당 데이터가 없을 경우 전원전입 일지 데이터를 보여줌)
  5901. var thdp_cdnm = dsf_getColumnNullToEmpty(ds_hidden_chngamblinfo, 0, "thdp_cdnm") // 전원전입 일지 데이터 (이송병원선정방법)
  5902. var deci_cdnm = dsf_getColumnNullToEmpty(ds_hidden_chngamblinfo, 0, "deci_cdnm") // 전원전입 일지 데이터 (전원병원 수용결정자)
  5903. var item_thdp = grp_base.ivw_loader.ivw_base.getFormItemValue("0042347"); // 기록 데이터 (이송병원선정방법)
  5904. var temp_thdp = item_thdp.rectermnm;
  5905. var item_deci = grp_base.ivw_loader.ivw_base.getFormItemValue("0042359"); // 기록 데이터 (전원병원 수용결정자)
  5906. var temp_deci = item_deci.rectermnm;
  5907. // 이송병원선정방법
  5908. if(utlf_isNull(temp_thdp) && !utlf_isNull(thdp_cdnm)){
  5909. var rowidx = grp_base.ivw_loader.ivw_base.ds_data_V_0003429003.findRowExpr("valitemnm=='" + thdp_cdnm + "'")
  5910. var thdp_cd = grp_base.ivw_loader.ivw_base.ds_data_V_0003429003.getColumn(rowidx, "termbasecd");
  5911. item_thdp.rectermnm = thdp_cdnm;
  5912. item_thdp.rectermcd = thdp_cd;
  5913. grp_base.ivw_loader.ivw_base.setFormItemValue("0042347", item_thdp);
  5914. }
  5915. // 전원병원 수용결정자
  5916. if(utlf_isNull(temp_deci) && !utlf_isNull(deci_cdnm)){
  5917. var rowidx = grp_base.ivw_loader.ivw_base.ds_data_V_0003430002.findRowExpr("valitemnm=='" + deci_cdnm + "'")
  5918. var deci_cd = grp_base.ivw_loader.ivw_base.ds_data_V_0003430002.getColumn(rowidx, "termbasecd");
  5919. item_deci.rectermnm = deci_cdnm;
  5920. item_deci.rectermcd = deci_cd;
  5921. grp_base.ivw_loader.ivw_base.setFormItemValue("0042359", item_deci);
  5922. }
  5923. }
  5924. //dsf_deleteDs("ds_send_chngamblinfo");
  5925. //dsf_deleteDs("ds_hidden_chngamblinfo");
  5926. }
  5927. /*************************************************************************************************************
  5928. * Function : lf_checkCondition
  5929. * Description : 제증명관리 화면에서 서식로더 호출할 경우, 기록 저장 직전에 알림성 팝업 띄우는 함수.
  5930. * Argument :
  5931. * retrun type :
  5932. * Creator :
  5933. ************************************************************************************************************/
  5934. function lf_checkCondition(signedYn){
  5935. // (산재) 장해진단서 인증저장 시 체크항목
  5936. var formcd = grp_base.ivw_loader.ds_data_formrec.getColumn(0, "srcformcd");
  5937. if(signedYn == "Y"){
  5938. if(formcd == "1200012960"){
  5939. var msgStr = "";
  5940. // 9번 항목(동통 등 신경증상) 영구에 체크한 경우 메시지 팝업.
  5941. var itemval = grp_base.ivw_loader.ivw_base.getFormItemValue("0026537");
  5942. if(itemval.rectermcd == "0014974001"){
  5943. //sysf_messageBox("(산재) 국소부위 동통(신경장애) 소견서 작성 부탁드립니다.", "I");
  5944. msgStr += "\n(산재) 국소부위 동통(신경장애) 소견서 작성 부탁드립니다.";
  5945. }
  5946. // 안과에서 작성한 경우 메시지 팝업.
  5947. var deptcd = sysf_getUserInfo("dutplcecd");
  5948. if(deptcd == "2120000000"){ // 안과
  5949. //sysf_messageBox("(산재) 눈 장애 소견서 작성 부탁드립니다.", "I");
  5950. msgStr += "\n(산재) 눈 장애 소견서 작성 부탁드립니다.";
  5951. }
  5952. if(msgStr != ""){
  5953. sysf_messageBox("\< 알 림 \>" + msgStr, "I");
  5954. }
  5955. }
  5956. }
  5957. }
  5958. ]]></Script>