SMPEA00100_검사예약.xrw 210 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:my="http://www.comsquare.co.kr/example" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:cs="http://www.comsquare.co.kr/xforms">
  4. <xhtml:head>
  5. <xhtml:title>검사예약</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <init>
  10. <pseu>
  11. <pseulist>
  12. <pseuinfo>
  13. <cdid/>
  14. <cdnm/>
  15. <detldesc/>
  16. </pseuinfo>
  17. </pseulist>
  18. <roomlist>
  19. <roomgrp>
  20. <basesuppdeptcd/>
  21. <basecd/>
  22. <basecdflagdesc/>
  23. <basecdcnts/>
  24. </roomgrp>
  25. </roomlist>
  26. </pseu>
  27. <srchdeptlist>
  28. <deptinfo>
  29. <deptcd/>
  30. <deptnm/>
  31. </deptinfo>
  32. </srchdeptlist>
  33. <srchroomlist>
  34. <roominfo>
  35. <chk/>
  36. <roomcd/>
  37. <roomnm/>
  38. </roominfo>
  39. </srchroomlist>
  40. <stafflist>
  41. <P0127info>
  42. <cdid/>
  43. <cdnm/>
  44. </P0127info>
  45. </stafflist>
  46. <init_pam>
  47. <P6588list/>
  48. <P0130list/>
  49. </init_pam>
  50. </init>
  51. <main>
  52. <ptinfo>
  53. <hngnm/>
  54. <sex/>
  55. <age/>
  56. <rrgstno/>
  57. <hometel/>
  58. <mpphontel/>
  59. <addr/>
  60. <serdiagtodd/>
  61. <rareobsttodd/>
  62. <smsaprvyn/>
  63. <vip/>
  64. <privacy/>
  65. <no/>
  66. <request/>
  67. <requestetc/>
  68. <target/>
  69. <targetetc/>
  70. <type/>
  71. <typeetc/>
  72. <rmk/>
  73. <isolflag/>
  74. <isolinfo/>
  75. <creatine/>
  76. <hivflag/>
  77. </ptinfo>
  78. <ordlist>
  79. <ordinfo>
  80. <orddt/>
  81. <orddeptcd/>
  82. <depthngnm/>
  83. <orddrid/>
  84. <orddrnm/>
  85. <rsrvflag/>
  86. <rsrvflagnm/>
  87. <rcptflag/>
  88. </ordinfo>
  89. </ordlist>
  90. <tdrvlist>
  91. <tdrvinfo>
  92. <rsrvdt/>
  93. <rsrvtm/>
  94. <excuroomcd/>
  95. <excuroomnm/>
  96. <exectm/>
  97. <prcpcd/>
  98. <prcpnm/>
  99. <rsrvflag/>
  100. <prcpstatcd/>
  101. <rsrvrid/>
  102. <rsrvrnm/>
  103. </tdrvinfo>
  104. </tdrvlist>
  105. <ptcmtlist>
  106. <ptcmtinfo>
  107. <pid/>
  108. <cmtdd/>
  109. <usernm/>
  110. <lastupdtdt/>
  111. <patcmt/>
  112. <bf_patcmt/>
  113. </ptcmtinfo>
  114. </ptcmtlist>
  115. <exculist>
  116. <excuinfo>
  117. <chk/>
  118. <rsrvflagyn/>
  119. <roomcnt/>
  120. <rcptyn/>
  121. <prcpdd/>
  122. <rgsttm/>
  123. <orddeptcd/>
  124. <orddepthngnm/>
  125. <orddrid/>
  126. <orddrnm/>
  127. <specdrid/>
  128. <specdrnm/>
  129. <genrflag/>
  130. <hiflag/>
  131. <payflagnm/>
  132. <calcscorcd/>
  133. <prcpnm/>
  134. <excucdnm/>
  135. <suppdeptcd/>
  136. <suppdeptnm/>
  137. <basecdcnts/>
  138. <excuroom/>
  139. <excuroomnm/>
  140. <rsrvexcuroomposscd/>
  141. <rsrvexcuroompossnm/>
  142. <excuroomcd/>
  143. <examroomnm/>
  144. <bf_excuroomcd/>
  145. <rsrvdt/>
  146. <srchrsrvtm/>
  147. <bf_srchrsrvtm/>
  148. <excutm/>
  149. <calcamt/>
  150. <endtime/>
  151. <telrsrvyn/>
  152. <rsrvrem/>
  153. <bf_rsrvrem/>
  154. <lastupdtnm/>
  155. <rsrvplceflag/>
  156. <aftrcptinfo/>
  157. <rcptrsrvyn/>
  158. <prcptdayrcptyn/>
  159. <pid/>
  160. <orddd/>
  161. <indd/>
  162. <dschdd/>
  163. <cretno/>
  164. <actorddd/>
  165. <prcphopedd/>
  166. <prcpexecdeptcd/>
  167. <rgstdeptcd/>
  168. <rgstdepthngnm/>
  169. <roomcd/>
  170. <rgstrid/>
  171. <rgstridnm/>
  172. <execrid/>
  173. <prcpgenrflag/>
  174. <rsrvflag/>
  175. <execprcpstatcd/>
  176. <prcpkindcd/>
  177. <execprcpuniqno/>
  178. <excupartcd/>
  179. <prcpdelivefact/>
  180. <ioflag/>
  181. <reqhospcd/>
  182. <excucdrem/>
  183. <rsrvtmcntlyn/>
  184. <rsrvpsnnocntlyn/>
  185. <pacsnocretyn/>
  186. <eqmtifyn/>
  187. <emryn/>
  188. <glycosyn/>
  189. <glycoscure/>
  190. <glycostestyn/>
  191. <slepyn/>
  192. <bonedentestyn/>
  193. <rsrvexcupossyn/>
  194. <rsrvexmptmplcd/>
  195. <tmpldata/>
  196. <rsrvtmplcd/>
  197. <rsrvmultitmplcd/>
  198. <diag/>
  199. </excuinfo>
  200. </exculist>
  201. <fcexlist>
  202. <fcexinfo>
  203. <chk/>
  204. <pid/>
  205. <hngnm/>
  206. <sex/>
  207. <age/>
  208. <rrgstno1/>
  209. <rrgstno2/>
  210. <bdwt/>
  211. <bdht/>
  212. <hometel/>
  213. <mpphontel/>
  214. <rsrvflag/>
  215. <prcpdd/>
  216. <prcpdt/>
  217. <ioflag/>
  218. <orddeptcd/>
  219. <orddepthngnm/>
  220. <orddd/>
  221. <insukind/>
  222. <emryn/>
  223. <cretno/>
  224. <orddrid/>
  225. <orddrnm/>
  226. <choiordflag/>
  227. <specdrid/>
  228. <specdrnm/>
  229. <prcpgenrflag/>
  230. <calcscorcd/>
  231. <prcpnm/>
  232. <prcphistno/>
  233. <prcpno/>
  234. <execprcpuniqno/>
  235. <prcpkindcd/>
  236. <prcpclscd/>
  237. <prcpqty/>
  238. <execprcptims/>
  239. <inclprcpcd/>
  240. <statcd/>
  241. <execprcpstatcd/>
  242. <basesuppdeptcd/>
  243. <prcpexecdeptcd/>
  244. <suppdeptcd/>
  245. <suppdeptnm/>
  246. <rsrvexcuroomposscd/>
  247. <rsrvexcuroompossnm/>
  248. <excuroomcd/>
  249. <bf_excuroomcd/>
  250. <examroomnm/>
  251. <excutm/>
  252. <tmpldata/>
  253. <slepyn/>
  254. <excucdrem/>
  255. <prcpdelivefact/>
  256. <srchrsrvdt/>
  257. <bf_srchrsrvtm/>
  258. <rsrvdt/>
  259. <rsrvrid/>
  260. <rsrvrnm/>
  261. <actorddd/>
  262. <execdt/>
  263. <execrid1/>
  264. <execrnm/>
  265. <actcretno/>
  266. <rehbprcpcurepartnm/>
  267. <prcpdirecnm/>
  268. <rehbprcpcurefreqnm/>
  269. <execrem/>
  270. <basecd/>
  271. <eqmtifyn/>
  272. <pacsnocretyn/>
  273. <portprcpflag/>
  274. <centcd/>
  275. <wardcd/>
  276. <wardengabbr/>
  277. <roomcd/>
  278. <roomnm/>
  279. <carecnfmdd/>
  280. <prcphopedd/>
  281. <unrsrvexecyn/>
  282. <precureprcpflag/>
  283. <aftrcptinfo/>
  284. <rcptyn/>
  285. <rcptdd/>
  286. <rcptrsrvyn/>
  287. <rcptacptyn/>
  288. <execbaseflag/>
  289. <lrgcd/>
  290. <mdlcd/>
  291. <modality/>
  292. <rsrvexmptmplcd/>
  293. <clincstdycd/>
  294. <ordrsrvdt/>
  295. <rgstdeptcd/>
  296. <rgstrid/>
  297. </fcexinfo>
  298. </fcexlist>
  299. <anexlist>
  300. <anexinfo>
  301. <rsrvflagyn/>
  302. <rcptyn/>
  303. <prcpdd/>
  304. <orddeptnm/>
  305. <orddrnm/>
  306. <calcscorcd/>
  307. <prcpnm/>
  308. <excuroomnm/>
  309. <prcphopedd/>
  310. <srchrsrvtm/>
  311. <excutm/>
  312. <endtime/>
  313. <rsrvrem/>
  314. <execprcpuniqno/>
  315. <execprcpstatcd/>
  316. <execprcpstatnm/>
  317. <exectm/>
  318. </anexinfo>
  319. </anexlist>
  320. <rcptprcpinfo>
  321. <cnt/>
  322. </rcptprcpinfo>
  323. <excuroomlist>
  324. <excuroominfo>
  325. <excuroomcd/>
  326. <excuroomnm/>
  327. </excuroominfo>
  328. </excuroomlist>
  329. </main>
  330. <main2>
  331. <ddrvlist>
  332. <ddrvinfo>
  333. <rsrvdd/>
  334. <maxcnt/>
  335. <rsrvcnt/>
  336. <capaflag/>
  337. </ddrvinfo>
  338. </ddrvlist>
  339. </main2>
  340. <main3>
  341. <rmrvlist>
  342. <rmrvinfo>
  343. <ptacc/>
  344. <rsrvtm/>
  345. <excuroomcd/>
  346. <excuroomnm/>
  347. <stat/>
  348. <capa/>
  349. <tmrank/>
  350. <tmflag/>
  351. <pid/>
  352. <hngnm/>
  353. <age/>
  354. <prcpgenrflag/>
  355. <excutm/>
  356. <calcscorcd/>
  357. <excucdnm/>
  358. <rsrvstatcd/>
  359. <rsrvstatnm/>
  360. <orddeptcd/>
  361. <deptengabbr/>
  362. <orddrid/>
  363. <orddrnm/>
  364. <prcpdelivefact/>
  365. <rsrvrem/>
  366. <lastupdtdt/>
  367. <lastupdtrnm/>
  368. <execprcpuniqno/>
  369. </rmrvinfo>
  370. </rmrvlist>
  371. </main3>
  372. <send>
  373. <data>
  374. <rsrvplce/>
  375. <srchdeptcd/>
  376. <srchroomcd/>
  377. <pid/>
  378. <fromdd/>
  379. <todd/>
  380. <inptflag>Y</inptflag>
  381. <centflag/>
  382. <rsrvdd/>
  383. <suppdeptcd/>
  384. <excuroomcd/>
  385. <excucd/>
  386. <prtpid/>
  387. <srchdd/>
  388. <genrflag/>
  389. <totflag/>
  390. <excuroomcdarr/>
  391. <ftflag/>
  392. <statflag>C</statflag>
  393. </data>
  394. <stat>
  395. <suppdeptcd/>
  396. <excuroomcd/>
  397. <rsrvdd/>
  398. <rsrvtm/>
  399. </stat>
  400. <ptcmt>
  401. <pid/>
  402. <cmtdd/>
  403. <patcmt/>
  404. </ptcmt>
  405. <rsrv>
  406. </rsrv>
  407. <funcrsrv>
  408. <data/>
  409. <flag/>
  410. <pamifyn/>
  411. </funcrsrv>
  412. <temp>
  413. <srchflag/>
  414. <deptcd/>
  415. <roomcd/>
  416. </temp>
  417. <ptinfo>
  418. <pid/>
  419. <srchcond/>
  420. </ptinfo>
  421. <chng>
  422. <pid/>
  423. <execprcpuniqno/>
  424. <rsrvdeptcd/>
  425. <excuroomcd/>
  426. <examroomnm/>
  427. <rsrvdt/>
  428. <srchrsrvtm/>
  429. </chng>
  430. </send>
  431. <hidden>
  432. <dutlist>
  433. <dutinfo>
  434. <basedd/>
  435. <dutflag/>
  436. </dutinfo>
  437. </dutlist>
  438. <calendar>
  439. <year/>
  440. <month/>
  441. <weeklist>
  442. <list>
  443. <sun/>
  444. <mon/>
  445. <tue/>
  446. <wed/>
  447. <thu/>
  448. <fri/>
  449. <sat/>
  450. <sun_memo/>
  451. <mon_memo/>
  452. <tue_memo/>
  453. <wed_memo/>
  454. <thu_memo/>
  455. <fri_memo/>
  456. <sat_memo/>
  457. </list>
  458. </weeklist>
  459. </calendar>
  460. <grdcellcolor>
  461. <bfrow/>
  462. <bfcol/>
  463. <bfclr/>
  464. </grdcellcolor>
  465. <prtlist>
  466. <prtinfo/>
  467. </prtlist>
  468. <prcpcmt/>
  469. <statlist>
  470. <statinfo>
  471. <stat/>
  472. </statinfo>
  473. </statlist>
  474. <pseursrvinfo/>
  475. <roomgrp/>
  476. <dutplcenm/>
  477. <memoinfo>
  478. <diag/>
  479. <ptmemo/>
  480. <drflag>D</drflag>
  481. <drmemo/>
  482. </memoinfo>
  483. <multrsrv>
  484. <excuinfo/>
  485. </multrsrv>
  486. <popupmenu_rmrv>
  487. <item>
  488. <name>예약 맞바꾸기</name>
  489. <func>fChangeRsrv</func>
  490. </item>
  491. </popupmenu_rmrv>
  492. <smslist>
  493. <smsinfo>
  494. <orddeptcd/>
  495. <msgcnts/>
  496. </smsinfo>
  497. </smslist>
  498. </hidden>
  499. <temp>
  500. <ptcmtlist>
  501. <ptcmtinfo>
  502. <pid/>
  503. <cmtdd/>
  504. <patcmt/>
  505. <usernm/>
  506. <lastupdtdt/>
  507. </ptcmtinfo>
  508. </ptcmtlist>
  509. <ptcmt/>
  510. <rsrv/>
  511. <rsrvrtn>
  512. <rtninfo/>
  513. </rsrvrtn>
  514. <exculist/>
  515. <chngrslt>
  516. <rsltinfo>
  517. <count/>
  518. <rsltflag/>
  519. <rsltmsg/>
  520. </rsltinfo>
  521. </chngrslt>
  522. <exstlist>
  523. <exstinfo>
  524. <rowidx/>
  525. <prcpdt/>
  526. <orddept/>
  527. <prcpnm/>
  528. <suppdeptcd/>
  529. <suppdeptnm/>
  530. <excuroomcd/>
  531. <excuroomnm/>
  532. <rsrvdd/>
  533. <rsrvtm/>
  534. <stat/>
  535. </exstinfo>
  536. </exstlist>
  537. <alertmsg/>
  538. <pmsglist>
  539. <pmsginfo>
  540. <msg/>
  541. </pmsginfo>
  542. </pmsglist>
  543. <tmsum/>
  544. <endtm/>
  545. <smsresult>
  546. <temp>
  547. <succnt>
  548. <getV/>
  549. </succnt>
  550. </temp>
  551. </smsresult>
  552. </temp>
  553. <ctrl>
  554. <send>
  555. <rsrvinfo/>
  556. </send>
  557. <main>
  558. <ctrllist>
  559. <ctrlinfo>
  560. <rsrvplce/>
  561. <suppdeptcd/>
  562. <excuroomcd/>
  563. <excucd/>
  564. <ctrlseq/>
  565. <ctrldesc/>
  566. <ctrlyn/>
  567. </ctrlinfo>
  568. </ctrllist>
  569. </main>
  570. <temp>
  571. <ctrllist>
  572. <ctrlinfo/>
  573. </ctrllist>
  574. <termlist>
  575. <terminfo/>
  576. </termlist>
  577. </temp>
  578. <hidden>
  579. <excplist>
  580. <excpinfo>
  581. <userid/>
  582. </excpinfo>
  583. </excplist>
  584. <rsrvplce/>
  585. </hidden>
  586. </ctrl>
  587. </root>
  588. </instance>
  589. <submission id="TRPEA00100" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/hidden/dutlist/dutinfo"/>
  590. <submission id="TRPEA00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/main"/>
  591. <submission id="TRPEA00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/main2/ddrvlist/ddrvinfo"/>
  592. <submission id="TRPEA00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/main3/rmrvlist/rmrvinfo"/>
  593. <submission id="TRPEA00104" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/hidden/prtlist/prtinfo"/>
  594. <submission id="TRPEA00105" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/stat" replace="instance" resultref="/root/hidden/statlist/statinfo"/>
  595. <submission id="TRPEA00106" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/init/pseu"/>
  596. <submission id="TRPEA00107" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/init/srchdeptlist/deptinfo"/>
  597. <submission id="TRPEA00108" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/init/srchroomlist/roominfo"/>
  598. <submission id="TRPEA00110" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/init/stafflist/P0127info"/>
  599. <submission id="TRPEA00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/temp" resultref="/root/init/roomlist/roominfo"/>
  600. <submission id="TRPEA00210" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/ctrl/send/rsrvinfo" replace="instance" resultref="/root/ctrl/temp"/>
  601. <submission id="TRPEA00211" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/ctrl/hidden/excplist/excpinfo"/>
  602. <submission id="TRPEA00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/main"/>
  603. <submission id="TXPEA00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/ptcmt" replace="instance" resultref="/root/temp/ptcmtlist/ptcmtinfo"/>
  604. <submission id="TXPEA00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/chng" replace="instance" resultref="/root/temp/chngrslt/rsltinfo"/>
  605. <submission id="TXAEA02001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/rsrv" replace="instance" resultref="/root/temp/rsrvrtn/rtninfo"/>
  606. <submission id="TXAEA01101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/funcrsrv" replace="instance" resultref="/root/temp/rsrvrtn/rtninfo"/>
  607. <submission id="TRPAM00105" mediatype="application/x-www-form-urlencoded" method="post"/>
  608. <submission id="TRZSU00803" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/list"/>
  609. <submission id="TXZMI00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" replace="instance" resultref="/root/temp/smsresult/temp"/>
  610. <script type="javascript">
  611. <![CDATA[
  612. var PREV_RSRVREM = "";
  613. var EXCU_SEL_ROW = 0;
  614. var PREV_RMRV_ROW = -1;
  615. var PREV_RMRV_COL = -1;
  616. var RMRV_MOUSE_DOWN = false;
  617. var FUNC_FLAG = false;
  618. var FUNC_SEL_ROW = 0;
  619. // 예약처 설정
  620. function fSetRsrvPlce() {
  621. model.setValue("/root/send/data/rsrvplce", RSRV_PLCE);
  622. btn_temprsrv.visible = false;
  623. cmb_roomgrp.visible = false;
  624. if (RSRV_PLCE == "T") {
  625. model.setValue("/root/send/data/inptflag", "Y");
  626. btn_temprsrv.visible = true;
  627. cmb_roomgrp.visible = true;
  628. cap_title.value = "통합 검사 예약";
  629. //btn_excu.selected = true;
  630. //btn_excu.dispatch("DOMActivate");
  631. } else if (RSRV_PLCE == "O") {
  632. model.setValue("/root/send/data/inptflag", "N");
  633. cap_title.value = "외래 검사 예약";
  634. //btn_func.selected = true;
  635. //btn_func.dispatch("DOMActivate");
  636. } else if (RSRV_PLCE == "I") {
  637. model.setValue("/root/send/data/inptflag", "Y");
  638. cap_title.value = "입원 검사 예약";
  639. //btn_func.selected = true;
  640. //btn_func.dispatch("DOMActivate");
  641. } else if (RSRV_PLCE == "S") {
  642. model.setValue("/root/send/data/inptflag", "N");
  643. cap_title.value = "건진 검사 예약";
  644. //btn_excu.selected = true;
  645. //btn_excu.dispatch("DOMActivate");
  646. }
  647. }
  648. // 입력받은 날짜에 대한 달력 설정
  649. function fSetCalendar(pDate) {
  650. for (var i = 1; i <= 12; i++) {
  651. var btn = document.controls("btn_m" + ( i < 10 ? "0" + i : i ));
  652. if (i == Number(pDate.getDateFormat("MM"))) {
  653. btn.attribute("background-color") = "#daa7d9";
  654. //btn.attribute("background-color") = "#cdcdcd";
  655. } else {
  656. btn.attribute("background-color") = "#f0f0f0";
  657. //btn.attribute("background-color") = "#ffffff";
  658. }
  659. }
  660. pDate.setDate(1);
  661. var holFlag = false; // 공휴일 조회 여부
  662. if (model.getValue("/root/send/data/srchdd").substr(0, 6) != pDate.getDateFormat("YYYYMM")) {
  663. holFlag = true;
  664. }
  665. model.setValue("/root/send/data/srchdd", pDate.getDateFormat("YYYYMMDD"));
  666. model.setValue("/root/hidden/calendar/year", pDate.getDateFormat("YYYY"));
  667. model.setValue("/root/hidden/calendar/month", pDate.getDateFormat("MM"));
  668. opt_year.refresh();
  669. opt_month.refresh();
  670. grd_calendar.rebuildStyle();
  671. var path = "/root/hidden/calendar/weeklist/list";
  672. model.resetInstanceNode(path);
  673. var row = grd_calendar.fixedRows;
  674. var col = pDate.getDay();
  675. var days = pDate.getMonthDay();
  676. for (var i = 1; i <= days; i++) {
  677. model.makeValue(path + "[" + row + "]/" + grd_calendar.colAttribute(col, "ref"), i);
  678. model.makeValue(path + "[" + row + "]/" + grd_calendar.colAttribute(col + 7, "ref"), "");
  679. col++;
  680. if (col == 7) {
  681. col = 0;
  682. row++;
  683. }
  684. }
  685. grd_calendar.refresh();
  686. //공휴일 표시
  687. fSetDutFlag(pDate.getDateFormat("YYYYMM") + "01", holFlag);
  688. //가용인원표시
  689. if (model.getValue("/root/send/data/excuroomcdarr") != "") {
  690. fGetDayRsrvList();
  691. }
  692. // 오늘 날짜 배경색 설정
  693. fSetTodayColor();
  694. model.setValue("/root/hidden/grdcellcolor/bfrow", "");
  695. model.setValue("/root/hidden/grdcellcolor/bfcol", "");
  696. model.setValue("/root/hidden/grdcellcolor/bfclr", "");
  697. }
  698. function fSetDutFlag(pDate, srchFlag){
  699. if (srchFlag) {
  700. submit("TRPEA00100", false);
  701. }
  702. var startDay = pDate.toDate().getDay();
  703. var cnt = instance1.selectNodes("/root/hidden/dutlist/dutinfo").length;
  704. for (var i = 1; i <= cnt; i++) {
  705. var basedd = model.getValue("/root/hidden/dutlist/dutinfo[" + i + "]/basedd");
  706. var dutflag = model.getValue("/root/hidden/dutlist/dutinfo[" + i + "]/dutflag");
  707. var col = basedd.toDate().getDay();
  708. var row = Math.ceil( ( startDay + Number(basedd.substr(6, 2)) ) / 7 );
  709. if (dutflag == "8") { // 휴일
  710. grd_calendar.cellstyle("color", row, col) = "red";
  711. } else if (dutflag == "4") { // 토요일
  712. grd_calendar.cellstyle("color", row, col) = "blue";
  713. } else { // 평일
  714. grd_calendar.cellstyle("color", row, col) = "black";
  715. }
  716. }
  717. }
  718. // 오늘 날짜 배경색 설정
  719. function fSetTodayColor() {
  720. var curDate = getCurrentDate();
  721. var calDate = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month");
  722. // 설정된 달력에 오늘 날짜가 있는 경우만 실행
  723. if (curDate.substring(0, 6) != calDate) {
  724. return;
  725. }
  726. curDate = curDate.substring(6, 8);
  727. for (i = 0; i < grd_calendar.rows; i++) {
  728. for (j = 0; j < grd_calendar.cols; j++) {
  729. if (Number(curDate) == Number(grd_calendar.valueMatrix(i, j))) {
  730. grd_calendar.cellStyle("background-color", i, j) = "#95d4fb";
  731. grd_calendar.cellStyle("background-color", i, j + 7) = "#95d4fb";
  732. break;
  733. }
  734. }
  735. }
  736. }
  737. // 지정한 날짜 배경색 설정
  738. function fSetSelColor() {
  739. var bfRow = model.getValue("/root/hidden/grdcellcolor/bfrow");
  740. var bfCol = model.getValue("/root/hidden/grdcellcolor/bfcol");
  741. var bfClr = model.getValue("/root/hidden/grdcellcolor/bfclr");
  742. if (bfRow != "") {
  743. grd_calendar.cellStyle("background-color", Number(bfRow), Number(bfCol)) = bfClr;
  744. grd_calendar.cellStyle("background-color", Number(bfRow), Number(bfCol) + 7) = bfClr;
  745. }
  746. var row = grd_calendar.row;
  747. var col = grd_calendar.col;
  748. col = col >= 7 ? col - 7 : col;
  749. var clr = grd_calendar.cellStyle("background-color", row, col);
  750. model.setValue("/root/hidden/grdcellcolor/bfrow", row);
  751. model.setValue("/root/hidden/grdcellcolor/bfcol", col);
  752. model.setValue("/root/hidden/grdcellcolor/bfclr", clr);
  753. grd_calendar.cellStyle("background-color", row, col) = "#daa7d9";
  754. grd_calendar.cellStyle("background-color", row, col + 7) = "#daa7d9";
  755. }
  756. function fSetMonth(pMonth) {
  757. var sDate = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month") + "01";
  758. var dtDate = sDate.toDate().getAddDate(Number(pMonth) - Number(model.getValue("/root/hidden/calendar/month")), "M");
  759. fSetCalendar(dtDate);
  760. }
  761. function fGetExcuList(srchdd){
  762. fClearExcuInfo(srchdd);
  763. grd_excu.fixedcellischeck(0, grd_excu.colRef("chk")) = false;
  764. model.toggle("excu");
  765. grd_ord.rebuildStyle();
  766. grd_excu.rebuildStyle();
  767. if (!submit("TRPEA00101")) {
  768. return;
  769. }
  770. grd_room.refresh();
  771. grd_room.resizeCells();
  772. grd_ptcmt.refresh();
  773. grd_ptcmt.resizeCells();
  774. btn_savecmt.disabled = true;
  775. if (instance1.selectNodes("/root/main/ptcmtlist/ptcmtinfo").length > 0) {
  776. btn_delcmt.disabled = false;
  777. } else {
  778. btn_delcmt.disabled = true;
  779. }
  780. model.setValue("/root/temp/ptcmt", "");
  781. tar_ptcmt.refresh();
  782. // 진료 예약 내역 표시 설정
  783. var path = "/root/main/ordlist/ordinfo";
  784. cnt = instance1.selectNodes(path).length;
  785. for (var i = 1; i <= cnt; i++) {
  786. if (model.getValue(path + "[" + i + "]/rcptflag") == "V") { // 후불
  787. grd_ord.rowStyle(i, "data", "background-color") = "#ffffa0";
  788. } else if (model.getValue(path + "[" + i + "]/rcptflag") == "Y") { // 미수납
  789. grd_ord.rowStyle(i, "data", "background-color") = "#ffb450";
  790. }
  791. }
  792. // 검사 현황 표시 설정
  793. path = "/root/main/exculist/excuinfo";
  794. cnt = instance1.selectNodes(path).length;
  795. for (var i = 1; i <= cnt; i++) {
  796. // 예약 시간 변경 통제 여부에 따른 수기 예약 여부 설정
  797. // 현재 칠곡만 수기 예약 가능하도록 함
  798. if (getUserInfo("dutplceinstcd") == "032" || getUserId() == "PAM") {
  799. if (model.getValue(path + "[" + i + "]/rsrvtmcntlyn") == "Y") {
  800. grd_excu.isReadOnly(i, grd_excu.colRef("srchrsrvtm")) = true;
  801. } else {
  802. grd_excu.isReadOnly(i, grd_excu.colRef("srchrsrvtm")) = false;
  803. }
  804. }
  805. // 예약 여부에 따른 표시
  806. if (model.getValue(path + "[" + i + "]/rsrvflagyn") == "예약") { // 예약
  807. grd_excu.cellStyle("color", i, grd_excu.colRef("rsrvflagyn")) = "black";
  808. } else if (model.getValue(path + "[" + i + "]/rsrvflagyn") == "예약취소") { // 예약 취소
  809. grd_excu.cellStyle("color", i, grd_excu.colRef("rsrvflagyn")) = "blue";
  810. } else { // 미예약
  811. grd_excu.cellStyle("color", i, grd_excu.colRef("rsrvflagyn")) = "red";
  812. }
  813. // 수납 여부에 따른 표시
  814. var rcptstr = model.getValue(path + "[" + i + "]/rcptyn");
  815. if (model.getValue(path + "[" + i + "]/prcpgenrflag") == "I") {
  816. if (rcptstr == "수납") {
  817. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#000000";
  818. } else {
  819. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#ff0000";
  820. }
  821. } else {
  822. if (model.getValue(path + "[" + i + "]/aftrcptinfo") == "V") { // 이지패스
  823. grd_excu.cellStyle("background-color", i, grd_excu.colRef("rcptyn")) = "#ff5050";
  824. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#ffff00";
  825. rcptstr = "VIP";
  826. } else if (model.getValue(path + "[" + i + "]/aftrcptinfo") == "P") { // 처방당일 후수납
  827. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#ff9a00";
  828. rcptstr = "당일후수납";
  829. } else if (model.getValue(path + "[" + i + "]/aftrcptinfo") == "A") { // 미수납
  830. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#ff0000";
  831. } else { // 수납
  832. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#000000";
  833. }
  834. }
  835. grd_excu.tooltipText(i, grd_excu.colRef("rcptyn")) = rcptstr;
  836. // 검사 안내문이 있는 항목은 처방명 글자색을 변경
  837. if (model.getValue(path + "[" + i + "]/tmpldata") != "") {
  838. grd_excu.cellStyle("color", i, grd_excu.colRef("prcpnm")) = "blue";
  839. } else {
  840. grd_excu.cellStyle("color", i, grd_excu.colRef("prcpnm")) = "black";
  841. }
  842. }
  843. if (model.getValue("/root/main/rcptprcpinfo/cnt") != "0") {
  844. messageBox("미수납 검사 처방이 있습니다.\n처방을 확인해 주십시오.", "E999");
  845. }
  846. // 환자 정보 표시 설정
  847. if (model.getValue("/root/main/ptinfo/hngnm") != "") {
  848. // Creatine 수치에 따른 설정
  849. var creatine = model.getValue("/root/main/ptinfo/creatine");
  850. if (Number(creatine) >= 1.3) {
  851. grp_creatine.visible = true;
  852. } else {
  853. grp_creatine.visible = false;
  854. }
  855. // VIP 칼럼 설정
  856. if (model.getValue("/root/main/ptinfo/vip") != "N") {
  857. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("vip")) = "#ffff00";
  858. } else {
  859. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("vip")) = "#ffffff";
  860. }
  861. // 사생활 보호 칼럼 설정
  862. if (model.getValue("/root/main/ptinfo/privacy") == "Y") {
  863. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("privacy")) = "red";
  864. fShowPrivacyMsg();
  865. } else {
  866. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("privacy")) = "#ffffff";
  867. }
  868. // HIV 표시
  869. if (model.getValue("/root/main/ptinfo/hivflag") == "Y") {
  870. grd_pt.cellStyle("background-image", 1, grd_pt.colRef("hivflag")) = "../../../com/hismainweb/images/btn_top_infection0.gif";
  871. } else {
  872. grd_pt.cellStyle("background-image", 1, grd_pt.colRef("hivflag")) = "";
  873. }
  874. // 환자 조회시 중증이나 산정특례 만료일부터 6개월이내 환자 알림 기능
  875. var serdiagtodd = model.getValue("/root/main/ptinfo/serdiagtodd");
  876. if (serdiagtodd != "" ) {
  877. if (serdiagtodd.length == 8) {
  878. serdiagtodd = serdiagtodd.substr(0, 4) + "년 " + serdiagtodd.substr(4, 2) + "월 " + serdiagtodd.substr(6, 2) + "일";
  879. messageBox("중증 등록이 [ " + serdiagtodd + " ] 에 종료 예정입니다","E999");
  880. }
  881. }
  882. var rareobsttodd = model.getValue("/root/main/ptinfo/rareobsttodd");
  883. if (rareobsttodd != "" ) {
  884. if (rareobsttodd.length == 8) {
  885. rareobsttodd = rareobsttodd.substr(0, 4) + "년 " + rareobsttodd.substr(4, 2) + "월 " + rareobsttodd.substr(6, 2) + "일";
  886. messageBox("희귀 난치 등록이 [ " + rareobsttodd + " ] 에 종료 예정입니다","E999");
  887. }
  888. }
  889. if (model.getValue("/root/main/ptinfo/isolinfo") != "") {
  890. model.setValue("/root/main/ptinfo/isolflag", "주의");
  891. grd_pt.refresh();
  892. }
  893. }
  894. if (grd_excu.rows > 1) {
  895. grd_excu.row = 1;
  896. fSetExcuInfo();
  897. }
  898. }
  899. function fSetPtCmt(flag) {
  900. tar_ptcmt.visible = false;
  901. btn_savecmt.disabled = true;
  902. btn_delcmt.disabled = false;
  903. btn_addcmt.attribute("text") = "추가";
  904. model.setValue("/root/send/ptcmt/pid", model.getValue("/root/send/data/pid"));
  905. if (flag) { // 추가 & 수정
  906. model.setValue("/root/send/ptcmt/patcmt", model.getValue("/root/temp/ptcmt"));
  907. } else { // 삭제
  908. if (messageBox("선택 항목을 삭제하시겠습니까?", "Q999") != 6) {
  909. return;
  910. }
  911. model.setValue("/root/send/ptcmt/cmtdd", model.getValue("/root/main/ptcmtlist/ptcmtinfo[" + grd_ptcmt.row + 1 + "]/cmtdd"));
  912. model.setValue("/root/send/ptcmt/patcmt", "");
  913. }
  914. if (submit("TXPEA00101", false)) {
  915. model.removenode("/root/main/ptcmtlist");
  916. model.setValue("/root/temp/ptcmt", "");
  917. tar_ptcmt.refresh();
  918. var path = "/root/temp/ptcmtlist/ptcmtinfo";
  919. var cnt = instance1.selectNodes(path).length;
  920. for (var i = 1; i <= cnt; i++) {
  921. model.makeValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/pid", model.getValue(path + "[" + i + "]/pid"));
  922. model.makeValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/cmtdd", model.getValue(path + "[" + i + "]/cmtdd"));
  923. model.makeValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/usernm", model.getValue(path + "[" + i + "]/usernm"));
  924. model.makeValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/lastupdtdt", model.getValue(path + "[" + i + "]/lastupdtdt"));
  925. model.makeValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/patcmt", model.getValue(path + "[" + i + "]/patcmt"));
  926. model.makeValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/bf_patcmt", model.getValue(path + "[" + i + "]/patcmt"));
  927. }
  928. grd_ptcmt.refresh();
  929. grd_ptcmt.rebuildStyle();
  930. grd_ptcmt.resizeCells();
  931. btn_savecmt.disabled = true;
  932. if (cnt > 0) {
  933. btn_delcmt.disabled = false;
  934. } else {
  935. btn_delcmt.disabled = true;
  936. }
  937. if (flag) {
  938. messageBox("예약 전달 사항이 저장 되었습니다.", "I999");
  939. }
  940. }
  941. }
  942. function fGetFuncExcuList(srchdd){
  943. fClearFuncExcuInfo(srchdd);
  944. model.toggle("func");
  945. grd_ord.rebuildStyle();
  946. grd_fcex.rebuildStyle();
  947. // 조회 검사실 설정
  948. var cnt = instance1.selectNodes("/root/init/srchroomlist/roominfo").length;
  949. var roomstr = "";
  950. for (var i = 1; i <= cnt; i++) {
  951. if (model.getValue("/root/init/srchroomlist/roominfo[" + i + "]/chk") != "Y") {
  952. continue;
  953. }
  954. if (roomstr != "") {
  955. roomstr += "','";
  956. }
  957. roomstr += model.getValue("/root/init/srchroomlist/roominfo[" + i + "]/roomcd");
  958. }
  959. model.setValue("/root/send/data/srchroomcd", "'" + roomstr + "'");
  960. if (!submit("TRPEA00301")) {
  961. return;
  962. }
  963. grd_ptcmt.resizeCells();
  964. grd_room.resizeCells();
  965. /*
  966. if (model.getValue("/root/main/rcptprcpinfo/cnt") != "0") {
  967. messageBox("미수납 검사 처방이 있습니다.\n처방을 확인해 주십시오.", "E999");
  968. }
  969. */
  970. // 환자 정보 표시 설정
  971. if (model.getValue("/root/main/ptinfo/hngnm") != "") {
  972. // VIP 칼럼 설정
  973. if (model.getValue("/root/main/ptinfo/vip") != "N") {
  974. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("vip")) = "#ffff00";
  975. } else {
  976. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("vip")) = "#ffffff";
  977. }
  978. // 사생활 보호 칼럼 설정
  979. if (model.getValue("/root/main/ptinfo/privacy") == "Y") {
  980. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("privacy")) = "red";
  981. fShowPrivacyMsg();
  982. } else {
  983. grd_pt.cellStyle("background-color", 1, grd_pt.colRef("privacy")) = "#ffffff";
  984. }
  985. // 환자 조회시 중증이나 산정특례 만료일부터 6개월이내 환자 알림 기능
  986. var serdiagtodd = model.getValue("/root/main/ptinfo/serdiagtodd");
  987. if (serdiagtodd != "-" ) {
  988. if (serdiagtodd.length == 8) {
  989. serdiagtodd = serdiagtodd.substr(0, 4) + "년 " + serdiagtodd.substr(4, 2) + "월 " + serdiagtodd.substr(6, 2) + "일";
  990. messageBox("중증 등록이 [ " + serdiagtodd + " ] 에 종료 예정입니다","E999");
  991. }
  992. }
  993. var rareobsttodd = model.getValue("/root/main/ptinfo/rareobsttodd");
  994. if (rareobsttodd != "-" ) {
  995. if (rareobsttodd.length == 8) {
  996. rareobsttodd = rareobsttodd.substr(0, 4) + "년 " + rareobsttodd.substr(4, 2) + "월 " + rareobsttodd.substr(6, 2) + "일";
  997. messageBox("희귀 난치 등록이 [ " + rareobsttodd + " ] 에 종료 예정입니다","E999");
  998. }
  999. }
  1000. if (model.getValue("/root/main/ptinfo/isolinfo") != "") {
  1001. model.setValue("/root/main/ptinfo/isolflag", "주의");
  1002. grd_pt.refresh();
  1003. }
  1004. }
  1005. // 진료 예약 내역 표시 설정
  1006. var path = "/root/main/ordlist/ordinfo";
  1007. cnt = instance1.selectNodes(path).length;
  1008. for (var i = 1; i <= cnt; i++) {
  1009. if (model.getValue(path + "[" + i + "]/rcptflag") == "V") { // 후불
  1010. grd_ord.rowStyle(i, "data", "background-color") = "#ffffa0";
  1011. } else if (model.getValue(path + "[" + i + "]/rcptflag") == "Y") { // 미수납
  1012. grd_ord.rowStyle(i, "data", "background-color") = "#ffb450";
  1013. }
  1014. }
  1015. // 검사 현황 표시 설정
  1016. path = "/root/main/fcexlist/fcexinfo";
  1017. cnt = instance1.selectNodes(path).length;
  1018. for (var i = 1; i <= cnt; i++) {
  1019. // 예약 여부에 따른 표시
  1020. if (model.getValue(path + "[" + i + "]/rsrvflag") == "예약") { // 예약
  1021. grd_fcex.cellStyle("color", i, grd_fcex.colRef("rsrvflag")) = "black";
  1022. } else if (model.getValue(path + "[" + i + "]/rsrvflag") == "예약취소") { // 예약 취소
  1023. grd_fcex.cellStyle("color", i, grd_fcex.colRef("rsrvflag")) = "blue";
  1024. } else { // 미예약
  1025. grd_fcex.cellStyle("font-weight", i, grd_fcex.colRef("rsrvflag")) = "bold";
  1026. grd_fcex.cellStyle("color", i, grd_fcex.colRef("rsrvflag")) = "red";
  1027. }
  1028. // 수납 여부에 따른 표시
  1029. if (model.getValue(path + "[" + i + "]/rcptyn") == "Y") { // 수납
  1030. grd_fcex.cellStyle("color", i, grd_fcex.colRef("rcptyn")) = "black";
  1031. } else if (model.getValue(path + "[" + i + "]/rcptyn") == "N") { // 미수납
  1032. grd_fcex.cellStyle("font-weight", i, grd_fcex.colRef("rcptyn")) = "bold";
  1033. grd_fcex.cellStyle("color", i, grd_fcex.colRef("rcptyn")) = "red";
  1034. } else if (model.getValue(path + "[" + i + "]/rcptyn") == "P") { // 선처치
  1035. grd_fcex.cellStyle("font-weight", i, grd_fcex.colRef("rcptyn")) = "bold";
  1036. grd_fcex.cellStyle("color", i, grd_fcex.colRef("rcptyn")) = "blue";
  1037. }
  1038. // 검사 안내문이 있는 항목은 처방명 글자색을 변경
  1039. if (model.getValue(path + "[" + i + "]/tmpldata") != "") {
  1040. grd_fcex.cellStyle("color", i, grd_fcex.colRef("calcscorcd")) = "blue";
  1041. grd_fcex.cellStyle("color", i, grd_fcex.colRef("prcpnm")) = "blue";
  1042. } else {
  1043. grd_fcex.cellStyle("color", i, grd_fcex.colRef("calcscorcd")) = "black";
  1044. grd_fcex.cellStyle("color", i, grd_fcex.colRef("prcpnm")) = "black";
  1045. }
  1046. }
  1047. if (grd_fcex.rows > 1) {
  1048. grd_fcex.row = 1;
  1049. fSetFuncExcuInfo();
  1050. }
  1051. }
  1052. function fClearExcuInfo(srchdd) {
  1053. // 설정 행 초기화
  1054. EXCU_SEL_ROW = 0;
  1055. model.setValue("/root/send/data/suppdeptcd", "");
  1056. model.setValue("/root/send/data/excuroomcd", "");
  1057. // 검사실 목록 초기화
  1058. model.removenode("/root/main/excuroomlist");
  1059. model.makeNode("/root/main/excuroomlist");
  1060. grd_room.refresh();
  1061. fSetCalendar(srchdd.toDate());
  1062. // 검사실 예약 현황 초기화
  1063. model.removenode("/root/main3/rmrvlist");
  1064. model.makeNode("/root/main3/rmrvlist");
  1065. grd_rmrv.refresh();
  1066. model.setValue("/root/hidden/prcpcmt", "");
  1067. tar_prcpcmt.refresh();
  1068. tar_prcpcmt.attribute("background-color") = "#ffffff";
  1069. // 중복 예약 확인 내역 초기화
  1070. model.removenode("/root/temp/exstlist");
  1071. // 제어 내역 초기화
  1072. fInitRsrvCtrl();
  1073. // 총 소요 시간 및 예상 완료 시각 표시 초기화
  1074. model.setValue("/root/temp/tmsum", "");
  1075. model.setValue("/root/temp/endtm", "");
  1076. cap_tmsum.refresh();
  1077. cap_endtm.refresh();
  1078. }
  1079. function fClearFuncExcuInfo(srchdd) {
  1080. // 설정 행 초기화
  1081. FUNC_SEL_ROW = 0;
  1082. model.setValue("/root/send/data/suppdeptcd", "");
  1083. model.setValue("/root/send/data/excuroomcd", "");
  1084. // 검사실 목록 초기화
  1085. model.removenode("/root/main/excuroomlist");
  1086. model.makeNode("/root/main/excuroomlist");
  1087. grd_room.refresh();
  1088. fSetCalendar(srchdd.toDate());
  1089. // 검사실 예약 현황 초기화
  1090. model.removenode("/root/main3/rmrvlist");
  1091. model.makeNode("/root/main3/rmrvlist");
  1092. grd_rmrv.refresh();
  1093. model.setValue("/root/hidden/prcpcmt", "");
  1094. tar_prcpcmt.refresh();
  1095. tar_prcpcmt.attribute("background-color") = "#ffffff";
  1096. // 중복 예약 확인 내역 초기화
  1097. model.removenode("/root/temp/exstlist");
  1098. // 제어 내역 초기화
  1099. fInitRsrvCtrl();
  1100. }
  1101. // 검사 현황 선택에 따른 값 설정
  1102. function fSetExcuInfo() {
  1103. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  1104. for (var i = 1; i <= cnt; i++) {
  1105. if (i == grd_excu.row) {
  1106. grd_excu.rowStyle(i, "data", "background-color") = "#b7ffb7"; // 설정 행
  1107. } else if (model.getValue("/root/main/exculist/excuinfo[" + i + "]/chk") == "Y") {
  1108. grd_excu.rowStyle(i, "data", "background-color") = "#ececec"; // 선택 행
  1109. } else {
  1110. grd_excu.rowStyle(i, "data", "background-color") = "#ffffff"; // 비선택 행
  1111. }
  1112. if (model.getValue("/root/main/exculist/excuinfo[" + i + "]/aftrcptinfo") == "V") {
  1113. grd_excu.cellStyle("background-color", i, grd_excu.colRef("rcptyn")) = "#ff5050";
  1114. grd_excu.cellStyle("color", i, grd_excu.colRef("rcptyn")) = "#ffff00";
  1115. }
  1116. }
  1117. EXCU_SEL_ROW = grd_excu.row;
  1118. // 총 소요 시간 및 예상 완료 시각 표시
  1119. setExcuEndTime();
  1120. var path = "/root/main/exculist/excuinfo[" + grd_excu.row + "]/";
  1121. var suppdeptcd = model.getValue(path + "suppdeptcd");
  1122. if (btn_rmrvex.attribute("background-image") == "../../../com/commonweb/images/btn_send_right.gif") {
  1123. btn_rmrvex.attribute("background-image") = "../../../com/commonweb/images/btn_send_left.gif";
  1124. caption15.attribute("left") = line6.attribute("x1") = grd_rmrv.attribute("left") = "595px";
  1125. grd_rmrv.attribute("width") = "600px";
  1126. caption11.visible = caption1.visible = true;
  1127. if (RSRV_PLCE == "T") {
  1128. btn_temprsrv.visible = true;
  1129. }
  1130. }
  1131. if (!checkOpener()) {
  1132. fTopInfo();
  1133. }
  1134. fGetRsrvCtrlList(grd_excu, grd_excu.row);
  1135. // 수납 안내 안함
  1136. /*
  1137. if (model.getValue(path + "calcyn") == "N"
  1138. && model.getValue(path + "genrflag") != "S"
  1139. && model.getValue(path + "aftrcptinfo") != "V") {
  1140. messageBox("수납 후 예약하도록 안내바랍니다.", "E999");
  1141. }
  1142. */
  1143. // 발생구분 설정
  1144. model.setValue("/root/send/data/genrflag", model.getValue(path + "genrflag"));
  1145. // 수행부서 설정
  1146. model.setValue("/root/send/data/suppdeptcd", suppdeptcd);
  1147. // 예약일 설정
  1148. if (model.getValue(path + "srchrsrvtm") != "") {
  1149. model.setValue("/root/send/data/rsrvdd", model.getValue(path + "srchrsrvtm").substr(0, 8));
  1150. } else {
  1151. model.setValue("/root/send/data/rsrvdd", "");
  1152. }
  1153. // 검사실 목록 설정
  1154. model.resetInstanceNode("/root/main/excuroomlist/excuroominfo");
  1155. var roomNmArr = model.getValue(path + "rsrvexcuroompossnm").split("^");
  1156. var roomCdArr = ""; // 예약 가능 검사실 전체 조회를 위한 배열
  1157. for (var i = 0; i < roomNmArr.length; i++) {
  1158. var cd = roomNmArr[i].split("|")[0];
  1159. model.makeValue("/root/main/excuroomlist/excuroominfo[" + ( i + 1 ) + "]/excuroomcd", cd);
  1160. model.makeValue("/root/main/excuroomlist/excuroominfo[" + ( i + 1 ) + "]/excuroomnm", roomNmArr[i].split("|")[1]);
  1161. roomCdArr += ( i > 0 ? ",'" : "'" ) + cd + "'";
  1162. }
  1163. grd_room.refresh();
  1164. grd_room.resizeCells();
  1165. model.setValue("/root/send/data/excuroomcd", "");
  1166. grd_room.isSelected(grd_room.row) = false;
  1167. model.setValue("/root/send/data/excuroomcdarr", roomCdArr);
  1168. // 검사안내문 유무에 따른 설정
  1169. // 체크 박스에 의한 출력 기능 추가로 인해 일단 막아놓음
  1170. /*
  1171. if (model.getValue(path + "tmpldata") == "") {
  1172. btn_infoprt.disabled = true;
  1173. } else {
  1174. btn_infoprt.disabled = false;
  1175. }
  1176. */
  1177. // 처방 전달 사항 설정
  1178. var prcpcmt = model.getValue(path + "prcpdelivefact").replace(/(^\s*)|(\s*$)/gi, "");
  1179. model.setValue("/root/hidden/prcpcmt", prcpcmt);
  1180. tar_prcpcmt.refresh();
  1181. if (prcpcmt == "" || prcpcmt == "-") {
  1182. tar_prcpcmt.attribute("background-color") = "#ffffff";
  1183. } else {
  1184. tar_prcpcmt.attribute("background-color") = "#ffff78";
  1185. }
  1186. // 응급(긴급) 여부 설정
  1187. model.setValue("/root/send/data/ftflag", model.getValue(path + "ftflag"));
  1188. // 일자별 검사 현황 초기화
  1189. var srchdd = model.getValue("/root/send/data/srchdd");
  1190. fSetCalendar(srchdd.toDate());
  1191. // 검사실 예약 현황 초기화
  1192. model.removenode("/root/main3/rmrvlist");
  1193. model.makeNode("/root/main3/rmrvlist");
  1194. grd_rmrv.refresh();
  1195. // 당뇨 체크 안함
  1196. /*
  1197. if (model.getValue(path + "glycostestyn") == "Y"){
  1198. model.removenode("/root/hidden/popup/rsrvaddinfo");
  1199. model.makeValue("/root/hidden/popup/rsrvaddinfo/glycosyn", model.getValue(path + "glycosyn"));
  1200. model.makeValue("/root/hidden/popup/rsrvaddinfo/glycoscure", model.getValue(path + "glycoscure"));
  1201. model.makeValue("/root/hidden/popup/rsrvaddinfo/reqhospcd", model.getValue(path + "reqhospcd"));
  1202. model.makeValue("/root/hidden/popup/rsrvaddinfo/rsrvrem", model.getValue(path + "rsrvrem"));
  1203. model.makeValue("/root/hidden/popup/rsrvaddinfo/phone", model.getValue("/root/main/ptinfo/hometel"));
  1204. model.makeValue("/root/hidden/popup/rsrvaddinfo/rownum", 1);
  1205. model.makeValue("/root/hidden/popup/rsrvaddinfo/srchrsrvtm", model.getValue(path + "srchrsrvtm"));
  1206. model.removeNodeset("/root/main/subordlist/subordlist1");
  1207. modal("SPAEA05000", "", "200", "200", "SPAEA05000","/root/hidden/popup/rsrvaddinfo", "/root/hidden");
  1208. var glycosyn = model.getValue("/root/main/subordlist/subordlist1/glycosyn");
  1209. if (glycosyn == "") {
  1210. messageBox("해당 처방코드는 당뇨유무 체크가 필수 항목입니다", "E999", "");
  1211. return;
  1212. }
  1213. model.setValue(path + "glycosyn", model.getValue("/root/main/subordlist/subordlist1/glycosyn"));
  1214. model.setValue(path + "glycoscure", model.getValue("/root/main/subordlist/subordlist1/glycoscure"));
  1215. model.setValue(path + "reqhospcd", model.getValue("/root/main/subordlist/subordlist1/reqhospcd"));
  1216. model.setValue(path + "rsrvrem", model.getValue("/root/main/subordlist/subordlist1/rsrvrem"));
  1217. grd_excu.refresh();
  1218. }
  1219. */
  1220. }
  1221. function fSetFuncExcuInfo() {
  1222. var cnt = instance1.selectNodes("/root/main/fcexlist/fcexinfo").length;
  1223. for (var i = 1; i <= cnt; i++) {
  1224. if (i == grd_fcex.row) {
  1225. grd_fcex.rowStyle(i, "data", "background-color") = "#b7ffb7"; // 설정 행
  1226. } else if (model.getValue("/root/main/fcexlist/fcexinfo[" + i + "]/chk") == "Y") {
  1227. grd_fcex.rowStyle(i, "data", "background-color") = "#ececec"; // 선택 행
  1228. } else {
  1229. grd_fcex.rowStyle(i, "data", "background-color") = "#ffffff"; // 비선택 행
  1230. }
  1231. }
  1232. FUNC_SEL_ROW = grd_fcex.row;
  1233. if (!checkOpener()) {
  1234. fTopInfo();
  1235. }
  1236. var path = "/root/main/fcexlist/fcexinfo[" + grd_fcex.row + "]/";
  1237. // 예약일 설정
  1238. if (model.getValue(path + "srchrsrvdt") != "") {
  1239. model.setValue("/root/send/data/rsrvdd", model.getValue(path + "srchrsrvdt").substr(0, 8));
  1240. } else {
  1241. model.setValue("/root/send/data/rsrvdd", "");
  1242. }
  1243. // 수행부서 설정
  1244. model.setValue("/root/send/data/suppdeptcd", model.getValue(path + "suppdeptcd"));
  1245. // 검사실 목록 설정
  1246. model.resetInstanceNode("/root/main/excuroomlist/excuroominfo");
  1247. var roomNmArr = model.getValue(path + "rsrvexcuroompossnm").split("^");
  1248. for (var i = 0; i < roomNmArr.length; i++) {
  1249. model.makeValue("/root/main/excuroomlist/excuroominfo[" + ( i + 1 ) + "]/excuroomcd", roomNmArr[i].split("|")[0]);
  1250. model.makeValue("/root/main/excuroomlist/excuroominfo[" + ( i + 1 ) + "]/excuroomnm", roomNmArr[i].split("|")[1]);
  1251. }
  1252. grd_room.refresh();
  1253. grd_room.resizeCells();
  1254. model.setValue("/root/send/data/excuroomcd", "");
  1255. grd_room.isSelected(grd_room.row) = false;
  1256. // 검사안내문 유무에 따른 설정
  1257. /*
  1258. btn_infoprt.disabled = true;
  1259. if (model.getValue(path + "tmpldata") == "") {
  1260. btn_infoprt.disabled = true;
  1261. } else {
  1262. btn_infoprt.disabled = false;
  1263. }
  1264. */
  1265. // 처방 전달 사항 설정
  1266. var prcpcmt = model.getValue(path + "prcpdelivefact").replace(/(^\s*)|(\s*$)/gi, "");
  1267. model.setValue("/root/hidden/prcpcmt", prcpcmt);
  1268. tar_prcpcmt.refresh();
  1269. if (prcpcmt == "" || prcpcmt == "-") {
  1270. tar_prcpcmt.attribute("background-color") = "#ffffff";
  1271. } else {
  1272. tar_prcpcmt.attribute("background-color") = "#ffff78";
  1273. }
  1274. // 상병 정보 설정
  1275. model.setValue("/root/hidden/memoinfo/diag", model.getValue(path + "diag"));
  1276. tar_diag.refresh();
  1277. // 환자 전달 사항 설정
  1278. model.setValue("/root/hidden/memoinfo/ptmemo", model.getValue(path + "ptmemo"));
  1279. tar_ptmemo.refresh();
  1280. // 부서/검사실별 메모 설정
  1281. model.setValue("/root/hidden/memoinfo/drflag", "D");
  1282. rdo_drflag.refresh();
  1283. model.setValue("/root/hidden/memoinfo/drmemo", model.getValue(path + "deptmemo"));
  1284. tar_drmemo.refresh();
  1285. // 일자별 검사 현황 초기화
  1286. var srchdd = model.getValue("/root/send/data/srchdd");
  1287. fSetCalendar(srchdd.toDate());
  1288. // 검사실 예약 현황 초기화
  1289. model.removenode("/root/main3/rmrvlist");
  1290. model.makeNode("/root/main3/rmrvlist");
  1291. grd_rmrv.refresh();
  1292. }
  1293. function fSetExcuRoom(pTimeFlag) {
  1294. if (EXCU_SEL_ROW < 1) {
  1295. return;
  1296. }
  1297. switch1.attribute("height") = "190";
  1298. grd_excu.attribute("height") = grd_fcex.attribute("height") = grd_anex.attribute("height") = "185px";
  1299. btn_excuex.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  1300. if (!FUNC_FLAG) {
  1301. grd_excu.row = EXCU_SEL_ROW;
  1302. var path = "/root/main/exculist/excuinfo[" + grd_excu.row + "]/";
  1303. // 검사실 설정
  1304. /*
  1305. model.setValue(path + "excuroomcd", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd"));
  1306. model.setValue(path + "examroomnm", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomnm"));
  1307. grd_excu.refresh();
  1308. if (model.getValue(path + "excuroomcd") != model.getValue(path + "bf_excuroomcd")) {
  1309. grd_excu.cellStyle("color", EXCU_SEL_ROW, grd_excu.colRef("examroomnm")) = "#0000ff";
  1310. } else {
  1311. grd_excu.cellStyle("color", EXCU_SEL_ROW, grd_excu.colRef("examroomnm")) = "#000000";
  1312. }
  1313. */
  1314. model.setValue("/root/send/data/excuroomcd", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd"));
  1315. } else {
  1316. grd_fcex.row = FUNC_SEL_ROW;
  1317. var path = "/root/main/fcexlist/fcexinfo[" + grd_fcex.row + "]/";
  1318. // 검사실 설정
  1319. /*
  1320. model.setValue(path + "excuroomcd", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd"));
  1321. model.setValue(path + "examroomnm", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomnm"));
  1322. grd_fcex.refresh();
  1323. */
  1324. model.setValue("/root/send/data/excuroomcd", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd"));
  1325. }
  1326. // 검사실별 일별 현황 조회 기준 설정 적용
  1327. if (pTimeFlag) {
  1328. if (instance1.selectNodes("/root/init/init_pam/P0130list/P0130[cdid='" + model.getValue("/root/send/data/excuroomcd") + "']").length > 0) {
  1329. model.setValue("/root/send/data/statflag", "T");
  1330. } else {
  1331. model.setValue("/root/send/data/statflag", "C");
  1332. }
  1333. }
  1334. // 일자별 가용 현황
  1335. fGetDayRsrvList();
  1336. // 오늘 날짜 배경색 설정
  1337. fSetTodayColor();
  1338. // 검사실 예약 내역 초기화
  1339. model.removenode("/root/main3/rmrvlist");
  1340. model.makeNode("/root/main3/rmrvlist");
  1341. grd_rmrv.refresh();
  1342. if (!FUNC_FLAG) {
  1343. if (grd_room.row > 0) {
  1344. fGetRsrvCtrlList(grd_excu, grd_excu.row, model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd"));
  1345. } else {
  1346. fGetRsrvCtrlList(grd_excu, grd_excu.row);
  1347. }
  1348. }
  1349. }
  1350. // 예약일에 따른 가용 인원 표시
  1351. function fGetDayRsrvList() {
  1352. var startDay = ( model.getValue("/root/send/data/srchdd").substr(0, 6) + "01" ).toDate().getDay();
  1353. var cnt = instance1.selectNodes("/root/hidden/dutlist/dutinfo").length;
  1354. for (var i = 1; i <= cnt; i++) {
  1355. var basedd = model.getValue("/root/hidden/dutlist/dutinfo[" + i + "]/basedd");
  1356. var col = basedd.toDate().getDay();
  1357. var row = Math.ceil( ( startDay + Number(basedd.substr(6, 2)) ) / 7 );
  1358. grd_calendar.cellStyle("background-color", row, col) = "#ffffff";
  1359. grd_calendar.cellStyle("background-color", row, col + 7) = "#ffffff";
  1360. grd_calendar.valueMatrix(row, col + 7) = "";
  1361. }
  1362. submit("TRPEA00102");
  1363. var path = "/root/main2/ddrvlist/ddrvinfo";
  1364. cnt = instance1.selectNodes(path).length;
  1365. for (var i = 1; i <= cnt; i++) {
  1366. var rsrvdd = model.getValue(path + "[" + i + "]/rsrvdd");
  1367. var capacnt = model.getValue(path + "[" + i + "]/capacnt")
  1368. var idlecnt = model.getValue(path + "[" + i + "]/idlecnt");
  1369. var col = rsrvdd.toDate().getDay();
  1370. var row = Math.ceil( ( startDay + Number(rsrvdd.substr(6, 2)) ) / 7 );
  1371. capacnt = model.getValue("/root/send/data/statflag") == "C" ? capacnt : idlecnt;
  1372. grd_calendar.valueMatrix(row, col + 7) = "(" + capacnt + ")";
  1373. // 예약 가능 일자 표시
  1374. if (rsrvdd > getCurrentDate() && Number(capacnt) > 0) {
  1375. grd_calendar.cellStyle("background-color", row, col) = "#c4e693";
  1376. grd_calendar.cellStyle("background-color", row, col + 7) = "#c4e693";
  1377. }
  1378. }
  1379. }
  1380. function fGetRoomRsrvList() {
  1381. var path = !FUNC_FLAG ? "/root/main/exculist/excuinfo" : "/root/main/fcexlist/fcexinfo";
  1382. var cnt = instance1.selectNodes(path).length;
  1383. if (cnt < 1 || model.getValue(path + "/calcscorcd") == "") {
  1384. return;
  1385. }
  1386. var grd = !FUNC_FLAG ? grd_excu : grd_fcex;
  1387. if (grd.row < 1) {
  1388. return;
  1389. }
  1390. model.setValue("/root/send/data/suppdeptcd", model.getValue(path + "[" + grd.row + "]/suppdeptcd"));
  1391. model.setValue("/root/send/data/excuroomcd", model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd"));
  1392. var totflag = model.getValue("/root/send/data/totflag");
  1393. if (totflag != "Y" && model.getValue("/root/send/data/excuroomcd") == "") {
  1394. return;
  1395. }
  1396. grd_rmrv.rebuildStyle();
  1397. submit("TRPEA00103", false);
  1398. path = "/root/main3/rmrvlist/rmrvinfo";
  1399. cnt = instance1.selectNodes(path).length;
  1400. // 소요 시간 MERGE 해제 로직
  1401. for (var i = 1; i <= cnt; i++) {
  1402. model.makeValue(path + "[" + i + "]/mergestop", i);
  1403. }
  1404. grd_rmrv.refresh();
  1405. if (totflag == "Y") {
  1406. grd_rmrv.colHidden(grd_rmrv.colRef("excuroomnm")) = false;
  1407. } else {
  1408. grd_rmrv.colHidden(grd_rmrv.colRef("excuroomnm")) = true;
  1409. }
  1410. grd_rmrv.resizeCells();
  1411. PREV_RMRV_ROW = PREV_RMRV_COL = -1;
  1412. var srchdd = model.getValue("/root/send/data/srchdd");
  1413. var currdd = getCurrentDate();
  1414. var currtm = Number(getCurrentTime().substr(0, 4));
  1415. var setflag = false;
  1416. var tmflag = false;
  1417. for (var i = 1; i <= cnt; i++) {
  1418. var rsrvtm = model.getValue(path + "[" + i + "]/rsrvtm");
  1419. var stat = Number(model.getValue(path + "[" + i + "]/stat"));
  1420. var capa = Number(model.getValue(path + "[" + i + "]/capa"));
  1421. var excutm = model.getValue(path + "[" + i + "]/excutm");
  1422. if (stat > capa) { // 가용인원 초과
  1423. grd_rmrv.rowStyle(i, "data", "background-color") = "#ffd2d2";
  1424. }
  1425. // 검사 소요 시간 확인
  1426. if (excutm != "" && i <= cnt - 1) {
  1427. var rsrvdt = srchdd + rsrvtm;
  1428. var addtm = rsrvdt.toDate("YYYYMMDDhhmm").getAddDate(Number(excutm), "m").getDateFormat("hhmm");
  1429. for (var j = i + 1; j <= cnt; j++) {
  1430. var rsrvtm2 = model.getValue(path + "[" + j + "]/rsrvtm");
  1431. if (rsrvtm2 != rsrvtm && rsrvtm2 < addtm) {
  1432. model.setValue(path + "[" + j + "]/tmflag", "Y");
  1433. tmflag = true;
  1434. }
  1435. }
  1436. }
  1437. // 검사 시간 초과
  1438. if (model.getValue(path + "[" + i + "]/tmflag") == "Y") {
  1439. grd_rmrv.rowStyle(i, "data", "color") = "#ff0000";
  1440. }
  1441. // 응급 시각 표시
  1442. if (model.getValue(path + "[" + i + "]/ertmflag") == "Y") {
  1443. grd_rmrv.rowStyle(i, "data", "background-color") = "#ff0000";
  1444. grd_rmrv.rowStyle(i, "data", "color") = "#ffff00";
  1445. }
  1446. // 현재 시각에 맞춰 TopRow 설정
  1447. if (srchdd == currdd && Number(rsrvtm) >= currtm && !setflag) {
  1448. grd_rmrv.topRow = i;
  1449. setflag = true;
  1450. }
  1451. if (i == cnt && srchdd == currdd && !setflag) {
  1452. grd_rmrv.bottomRow = i;
  1453. setflag = true;
  1454. }
  1455. }
  1456. if (tmflag) {
  1457. grd_rmrv.refresh();
  1458. }
  1459. if (!setflag) {
  1460. grd_rmrv.topRow = 1;
  1461. }
  1462. if (srchdd >= currdd) {
  1463. for (var i = 1; i < grd_rmrv.rows ; i++ ) {
  1464. if(model.getValue("/root/main/ptinfo/hngnm") == model.getValue("/root/main3/rmrvlist/rmrvinfo[" + i + "]/hngnm")
  1465. && model.getValue("/root/send/data/pid") != model.getValue("/root/main3/rmrvlist/rmrvinfo[" + i + "]/pid") ) {
  1466. messageBox("동명이인 예약이 있습니다.", "E999");
  1467. break;
  1468. }
  1469. }
  1470. }
  1471. }
  1472. function fChkRoomTimeStat(suppdeptcd, excuroomcd, rsrvdd, rsrvtm, stat) {
  1473. model.setValue("/root/send/stat/suppdeptcd", suppdeptcd);
  1474. model.setValue("/root/send/stat/excuroomcd", excuroomcd);
  1475. model.setValue("/root/send/stat/rsrvdd", rsrvdd);
  1476. model.setValue("/root/send/stat/rsrvtm", rsrvtm);
  1477. submit("TRPEA00105", false);
  1478. var currstat = model.getValue("/root/hidden/statlist/statinfo/stat");
  1479. if (stat == currstat) {
  1480. return true;
  1481. } else {
  1482. var str = "[ " + rsrvtm.substr(0, 2) + ":" + rsrvtm.substr(2, 2) + " ] " + stat + " 건 ▶ " + currstat + " 건";
  1483. messageBox("해당 시각의 검사 현황이 변경되었습니다.\n\n" + str + "\n\n검사실 예약 현황이 다시 조회됩니다.", "E999");
  1484. fGetRoomRsrvList();
  1485. return false;
  1486. }
  1487. }
  1488. function fChkRoomTimeStatAll() {
  1489. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  1490. var sCnt = instance1.selectNodes("/root/temp/exstlist/exstinfo").length;
  1491. var flag = true;
  1492. for (var i = 1; i <= cnt; i++) {
  1493. if (!flag) {
  1494. break;
  1495. }
  1496. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  1497. if (model.getValue(path + "chk") != "Y") {
  1498. continue;
  1499. }
  1500. for (var j = 1; j <= sCnt; j++) {
  1501. if (model.getValue("/root/temp/exstlist/exstinfo[" + j + "]/rowidx") != i) {
  1502. continue;
  1503. }
  1504. model.setValue("/root/send/stat/suppdeptcd", model.getValue(path + "suppdeptcd"));
  1505. model.setValue("/root/send/stat/excuroomcd", model.getValue(path + "excuroomcd"));
  1506. var rsrvdt = model.getValue(path + "srchrsrvtm");
  1507. model.setValue("/root/send/stat/rsrvdd", rsrvdt.substr(0, 8));
  1508. model.setValue("/root/send/stat/rsrvtm", rsrvdt.substr(8, 4));
  1509. submit("TRPEA00105", false);
  1510. var currstat = model.getValue("/root/hidden/statlist/statinfo/stat");
  1511. var stat = model.getValue("/root/temp/exstlist/exstinfo[" + j + "]/stat");
  1512. var rsrvtm = model.getValue("/root/temp/exstlist/exstinfo[" + j + "]/rsrvtm");
  1513. if (rsrvdt.substr(8, 4) == rsrvtm && currstat != stat) {
  1514. var str = "[ " + model.getValue("/root/temp/exstlist/exstinfo[" + j + "]/rowidx") + " ] 번째 행의 예약 현황이 변경되었습니다.\n\n"
  1515. + "[ " + rsrvtm.substr(0, 2) + ":" + rsrvtm.substr(2, 2) + " ] " + stat + " 건 ▶ " + currstat + " 건\n\n"
  1516. + "해당 검사에 대한 예약 일시를 다시 설정한 후 예약해 주십시오.";
  1517. messageBox(str, "E999");
  1518. flag = false;
  1519. break;
  1520. }
  1521. }
  1522. }
  1523. return flag;
  1524. }
  1525. function fSetRmrvFocusRect() {
  1526. var scol = 0;
  1527. var ecol = 0;
  1528. var totflag = model.getValue("/root/send/data/totflag") == "Y" ? true : false;
  1529. if (PREV_RMRV_ROW > 0) {
  1530. if (PREV_RMRV_COL <= grd_rmrv.colRef("capa")) {
  1531. scol = grd_rmrv.colRef("rsrvtm");
  1532. ecol = grd_rmrv.colRef("capa");
  1533. if (totflag) {
  1534. var rsrvTm = model.getValue("/root/main3/rmrvlist/rmrvinfo[" + PREV_RMRV_ROW + "]/rsrvtm");
  1535. var tmBeginRow = 0;
  1536. var tmEndRow = 0;
  1537. var cnt = instance1.selectNodes("/root/main3/rmrvlist/rmrvinfo").length;
  1538. for (var i = 1; i <= cnt; i++) {
  1539. if (model.getValue("/root/main3/rmrvlist/rmrvinfo[" + i + "]/rsrvtm") == rsrvTm) {
  1540. if (tmBeginRow < 1) {
  1541. tmBeginRow = i;
  1542. }
  1543. if ( ( i < cnt && model.getValue("/root/main3/rmrvlist/rmrvinfo[" + ( i + 1 ) + "]/rsrvtm") != rsrvTm )
  1544. || ( i == cnt && tmBeginRow > 0 )) {
  1545. tmEndRow = i;
  1546. break;
  1547. }
  1548. }
  1549. }
  1550. grd_rmrv.cellStyle("border-style", tmBeginRow, scol, tmEndRow, ecol) = "solid";
  1551. grd_rmrv.cellStyle("border-color", tmBeginRow, scol, tmEndRow, ecol) = "#b0b0b0";
  1552. grd_rmrv.cellStyle("border-left-color", tmBeginRow, scol, tmEndRow, ecol) = "#ffffff";
  1553. grd_rmrv.cellStyle("border-left-width", tmBeginRow, scol, tmEndRow, ecol) = "1px";
  1554. grd_rmrv.cellStyle("border-top-width", tmBeginRow, scol, tmEndRow, ecol) = "0px";
  1555. grd_rmrv.cellStyle("border-right-width", tmBeginRow, scol, tmEndRow, ecol) = "1px";
  1556. grd_rmrv.cellStyle("border-bottom-width", tmBeginRow, scol, tmEndRow, ecol) = "1px";
  1557. }
  1558. } else if (PREV_RMRV_COL <= grd_rmrv.colRef("hngnm")) {
  1559. scol = grd_rmrv.colRef("pid");
  1560. ecol = grd_rmrv.colRef("hngnm");
  1561. } else {
  1562. scol = grd_rmrv.colRef("age");
  1563. ecol = grd_rmrv.cols - 1;
  1564. }
  1565. grd_rmrv.cellStyle("border-style", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "solid";
  1566. grd_rmrv.cellStyle("border-color", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "#b0b0b0";
  1567. grd_rmrv.cellStyle("border-left-color", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "#ffffff";
  1568. grd_rmrv.cellStyle("border-left-width", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "1px";
  1569. grd_rmrv.cellStyle("border-top-width", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "0px";
  1570. grd_rmrv.cellStyle("border-right-width", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "1px";
  1571. grd_rmrv.cellStyle("border-bottom-width", PREV_RMRV_ROW, scol, PREV_RMRV_ROW, ecol) = "1px";
  1572. }
  1573. var row = PREV_RMRV_ROW = grd_rmrv.mouseRow;
  1574. var col = PREV_RMRV_COL = grd_rmrv.mouseCol;
  1575. var color = "";
  1576. if (col <= grd_rmrv.colRef("capa")) {
  1577. scol = grd_rmrv.colRef("rsrvtm");
  1578. ecol = grd_rmrv.colRef("capa");
  1579. color = "crimson";
  1580. if (totflag) {
  1581. var rsrvTm = model.getValue("/root/main3/rmrvlist/rmrvinfo[" + row + "]/rsrvtm");
  1582. var tmBeginRow = 0;
  1583. var tmEndRow = 0;
  1584. var cnt = instance1.selectNodes("/root/main3/rmrvlist/rmrvinfo").length;
  1585. for (var i = 1; i <= cnt; i++) {
  1586. if (model.getValue("/root/main3/rmrvlist/rmrvinfo[" + i + "]/rsrvtm") == rsrvTm) {
  1587. if (tmBeginRow < 1) {
  1588. tmBeginRow = i;
  1589. }
  1590. if ( ( i < cnt && model.getValue("/root/main3/rmrvlist/rmrvinfo[" + ( i + 1 ) + "]/rsrvtm") != rsrvTm )
  1591. || ( i == cnt && tmBeginRow > 0 )) {
  1592. tmEndRow = i;
  1593. break;
  1594. }
  1595. }
  1596. }
  1597. grd_rmrv.cellStyle("border-style", tmBeginRow, scol, tmEndRow, scol) = "solid";
  1598. grd_rmrv.cellStyle("border-color", tmBeginRow, scol, tmEndRow, scol) = color;
  1599. grd_rmrv.cellStyle("border-left-width", tmBeginRow, scol, tmEndRow, scol) = "2px";
  1600. grd_rmrv.cellStyle("border-top-width", tmBeginRow, scol, tmEndRow, scol) = "2px";
  1601. grd_rmrv.cellStyle("border-right-width", tmBeginRow, scol, tmEndRow, scol) = "2px";
  1602. grd_rmrv.cellStyle("border-bottom-width", tmBeginRow, scol, tmEndRow, scol) = "3px";
  1603. grd_rmrv.cellStyle("border-style", row, scol, row, ecol) = "solid";
  1604. for (var i = scol + 1; i <= ecol; i++) {
  1605. grd_rmrv.cellStyle("border-left-color", row, i, row, i) = "#ffffff";
  1606. grd_rmrv.cellStyle("border-left-width", row, i, row, i) = "1px";
  1607. grd_rmrv.cellStyle("border-top-color", row, i, row, i) = color;
  1608. grd_rmrv.cellStyle("border-top-width", row, i, row, i) = "2px";
  1609. grd_rmrv.cellStyle("border-right-color", row, i, row, i) = i == ecol ? color : "#b0b0b0";
  1610. grd_rmrv.cellStyle("border-right-width", row, i, row, i) = i == ecol ? "3px" : "1px";
  1611. grd_rmrv.cellStyle("border-bottom-color", row, i, row, i) = color;
  1612. grd_rmrv.cellStyle("border-bottom-width", row, i, row, i) = "3px";
  1613. }
  1614. }
  1615. } else if (col <= grd_rmrv.colRef("hngnm")) {
  1616. scol = grd_rmrv.colRef("pid");
  1617. ecol = grd_rmrv.colRef("hngnm");
  1618. color = "#0000ff";
  1619. } else {
  1620. scol = grd_rmrv.colRef("age");
  1621. ecol = grd_rmrv.cols - 1;
  1622. color = "#646464";
  1623. }
  1624. if (totflag) {
  1625. return;
  1626. }
  1627. grd_rmrv.cellStyle("border-style", row, scol, row, ecol) = "solid";
  1628. for (var i = scol; i <= ecol; i++) {
  1629. if (i == scol) {
  1630. grd_rmrv.cellStyle("border-left-color", row, i, row, i) = color;
  1631. grd_rmrv.cellStyle("border-left-width", row, i, row, i) = "2px";
  1632. } else {
  1633. grd_rmrv.cellStyle("border-left-color", row, i, row, i) = "#ffffff";
  1634. grd_rmrv.cellStyle("border-left-width", row, i, row, i) = "1px";
  1635. }
  1636. grd_rmrv.cellStyle("border-top-color", row, i, row, i) = color;
  1637. grd_rmrv.cellStyle("border-top-width", row, i, row, i) = "2px";
  1638. grd_rmrv.cellStyle("border-right-color", row, i, row, i) = i == ecol ? color : "#b0b0b0";
  1639. grd_rmrv.cellStyle("border-right-width", row, i, row, i) = i == ecol ? "3px" : "1px";
  1640. grd_rmrv.cellStyle("border-bottom-color", row, i, row, i) = color;
  1641. grd_rmrv.cellStyle("border-bottom-width", row, i, row, i) = "3px";
  1642. }
  1643. }
  1644. function fCheckRsrv() {
  1645. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  1646. if (cnt < 1 || model.getValue("/root/main/exculist/excuinfo/calcscorcd") == "") {
  1647. messageBox("조회된 검사 내역이 없습니다.", "E999");
  1648. return;
  1649. }
  1650. var chkcnt = 0;
  1651. var prtflag = false;
  1652. var infoflag = false;
  1653. var modStr = "";
  1654. var msgCnt = 0;
  1655. var ovrCnt = 0;
  1656. grd_excu.row = EXCU_SEL_ROW;
  1657. for (var i = 1; i <= cnt; i++) {
  1658. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  1659. if (model.getValue(path + "chk") != "Y") {
  1660. continue;
  1661. }
  1662. chkcnt++;
  1663. if (model.getValue(path + "excuroomcd") == "") {
  1664. messageBox("[ " + i + " ] 번째 행의 검사실이 지정되지 않았습니다.", "E999");
  1665. return;
  1666. }
  1667. if (model.getValue(path + "srchrsrvtm") == "") {
  1668. messageBox("[ " + i + " ] 번째 행의 검사 시각이 설정되지 않았습니다.", "E999");
  1669. return;
  1670. }
  1671. // 중복 예약 확인
  1672. if (!fChkRoomTimeStatAll()) {
  1673. return;
  1674. }
  1675. var rsrvdd = model.getValue(path + "srchrsrvtm").substr(0, 8);
  1676. // 타검사 체크
  1677. var acnt = instance1.selectNodes("/root/main/anexlist/anexinfo").length;
  1678. for (var j = 1; j <= acnt; j++) {
  1679. if (model.getValue("/root/main/anexlist/anexinfo[" + j + "]/rsrvflagyn") == "예약") {
  1680. var chkdd = model.getValue("/root/main/anexlist/anexinfo[" + j + "]/srchrsrvtm").substr(0, 8);
  1681. if (rsrvdd == chkdd) {
  1682. if (messageBox("[ " + i + " ] 번째 행의 검사는 타검사에서 동일한 예약 일자가 존재합니다.", "Q003", "") == 6 ) {
  1683. break;
  1684. } else {
  1685. return;
  1686. }
  1687. }
  1688. }
  1689. }
  1690. // 변경 시간 확인
  1691. var bfdt = model.getValue(path + "bf_srchrsrvtm");
  1692. var rvdt = model.getValue(path + "srchrsrvtm");
  1693. if (model.getValue(path + "rsrvflagyn") == "예약") {
  1694. if (rvdt != bfdt) {
  1695. msgCnt++;
  1696. if (msgCnt > 7) {
  1697. ovrCnt++;
  1698. } else {
  1699. modStr += "[ " + i + " ] 번째 행의 예약 시간이 변경되었습니다.\r\n\r\n[ " + model.getValue(path + "prcpnm") + " ]\r\n\r\n"
  1700. + bfdt.substr(0, 4) + "-" + bfdt.substr(4, 2) + "-" + bfdt.substr(6, 2) + " " + bfdt.substr(8, 2) + ":" + bfdt.substr(10, 2)
  1701. + " → "
  1702. + rvdt.substr(0, 4) + "-" + rvdt.substr(4, 2) + "-" + rvdt.substr(6, 2) + " " + rvdt.substr(8, 2) + ":" + rvdt.substr(10, 2)
  1703. + "\r\n\r\n\r\n";
  1704. }
  1705. prtflag = true;
  1706. }
  1707. } else {
  1708. prtflag = true;
  1709. }
  1710. // 당뇨 체크 하지 않음
  1711. /*
  1712. if (model.getValue(path + "rsrvflagyn") != "예약"
  1713. && model.getValue(path + "glycostestyn") == "Y" && model.getValue(path + "glycosyn") == "") {
  1714. messageBox("해당 처방코드는 당뇨유무 체크가 필수 항목입니다", "E999", "");
  1715. return;
  1716. }
  1717. */
  1718. if (model.getValue(path + "tmpldata") != "") {
  1719. infoflag = true;
  1720. }
  1721. }
  1722. if (chkcnt < 1) {
  1723. messageBox("선택된 검사 내역이 없습니다.", "E999");
  1724. return;
  1725. }
  1726. if (ovrCnt > 0) {
  1727. modStr += "외 [ " + ovrCnt + " ] 건\r\n\r\n\r\n";
  1728. }
  1729. if (RSRV_PLCE == "S") { // 건진은 검사 안내문 및 예약 일정표 출력하지 않음
  1730. infoflag = false;
  1731. prtflag = false;
  1732. }
  1733. if (infoflag) {
  1734. var rslt = messageBox(modStr + "선택된 [ " + chkcnt + " ] 건 중 검사 안내문이 있는 검사가 있습니다.\n예약 후 검사 안내문을 출력하시겠습니까?", "S999", "\r\n예약을 취소하시려면 취소를 누르십시오.");
  1735. if (rslt == 6) { // 예
  1736. infoflag = true;
  1737. } else if (rslt == 7) { // 아니오
  1738. infoflag = false;
  1739. } else { // 취소
  1740. return;
  1741. }
  1742. } else if (messageBox(modStr + "선택된 [ " + chkcnt + " ] 건의 검사를 예약 하시겠습니까?", "Q999") != 6) {
  1743. return;
  1744. }
  1745. // 칠곡은 예약일정표 자동 출력 기능 사용하지 않음
  1746. if (getUserInfo("dutplceinstcd") == "032") {
  1747. prtflag = false;
  1748. }
  1749. if (fExecRsrv("rsrv")) {
  1750. if (infoflag) {
  1751. fInfoPrt();
  1752. }
  1753. if (prtflag) {
  1754. fRsrvPrt(model.getValue("/root/send/data/pid"));
  1755. }
  1756. fGetExcuList(model.getValue("/root/send/data/srchdd"));
  1757. model.setFocus("ipt_pid");
  1758. }
  1759. }
  1760. function fCheckFuncRsrv() {
  1761. var cnt = instance1.selectNodes("/root/main/fcexlist/fcexinfo").length;
  1762. if (cnt < 1 || model.getValue("/root/main/fcexlist/fcexinfo/calcscorcd") == "") {
  1763. messageBox("조회된 검사 내역이 없습니다.", "E999");
  1764. return;
  1765. }
  1766. var chkcnt = 0;
  1767. var prtflag = false;
  1768. var infoflag = false;
  1769. var modStr = "";
  1770. grd_fcex.row = FUNC_SEL_ROW;
  1771. for (var i = 1; i <= cnt; i++) {
  1772. var path = "/root/main/fcexlist/fcexinfo[" + i + "]/";
  1773. if (model.getValue(path + "chk") != "Y") {
  1774. continue;
  1775. }
  1776. chkcnt++;
  1777. if (model.getValue(path + "excuroomcd") == "") {
  1778. messageBox("[ " + i + " ] 번째 행의 검사실이 지정되지 않았습니다.", "E999");
  1779. return;
  1780. }
  1781. if (model.getValue(path + "srchrsrvdt") == "") {
  1782. messageBox("[ " + i + " ] 번째 행의 검사 시각이 설정되지 않았습니다.", "E999");
  1783. return;
  1784. }
  1785. if (Number(model.getValue(path + "execprcpstatcd")) > "230") {
  1786. messageBox("선택된 내역 중 실시된 처방이 있습니다. - [ " + i + " ] 번째 행", "E999");
  1787. return;
  1788. }
  1789. // 중복 예약 확인
  1790. // 일단 통합 예약에서만 확인함
  1791. /*
  1792. if (!fChkRoomTimeStatAll()) {
  1793. return;
  1794. }
  1795. */
  1796. // 변경 시간 확인
  1797. var bfdt = model.getValue(path + "bf_srchrsrvtm");
  1798. var rvdt = model.getValue(path + "srchrsrvdt");
  1799. if (model.getValue(path + "rsrvflag") == "예약") {
  1800. if (rvdt != bfdt) {
  1801. modStr += "[ " + i + " ] 번째 행의 예약 시간이 변경되었습니다.\r\n\r\n[ " + model.getValue(path + "prcpnm") + " ]\r\n\r\n"
  1802. + bfdt.substr(0, 4) + "-" + bfdt.substr(4, 2) + "-" + bfdt.substr(6, 2) + " " + bfdt.substr(8, 2) + ":" + bfdt.substr(10, 2)
  1803. + " → "
  1804. + rvdt.substr(0, 4) + "-" + rvdt.substr(4, 2) + "-" + rvdt.substr(6, 2) + " " + rvdt.substr(8, 2) + ":" + rvdt.substr(10, 2)
  1805. + "\r\n\r\n\r\n";
  1806. prtflag = true;
  1807. }
  1808. } else {
  1809. prtflag = true;
  1810. }
  1811. /*
  1812. if (model.getValue(path + "tmpldata") != "") {
  1813. infoflag = true;
  1814. }
  1815. */
  1816. }
  1817. if (chkcnt < 1) {
  1818. messageBox("선택된 검사 내역이 없습니다.", "E999");
  1819. return;
  1820. }
  1821. if (infoflag) {
  1822. var rslt = messageBox(modStr + "선택된 [ " + chkcnt + " ] 건 중 검사 안내문이 있는 검사가 있습니다.\n예약 후 검사 안내문을 출력하시겠습니까?", "S999", "\r\n예약을 취소하시려면 취소를 누르십시오.");
  1823. if (rslt == 6) { // 예
  1824. infoflag = true;
  1825. } else if (rslt == 7) { // 아니오
  1826. infoflag = false;
  1827. } else { // 취소
  1828. return;
  1829. }
  1830. } else if (messageBox(modStr + "선택된 [ " + chkcnt + " ] 건의 검사를 예약 하시겠습니까?", "Q999") != 6) {
  1831. return;
  1832. }
  1833. if (fExecFuncRsrv("rsrv")) {
  1834. if (infoflag) {
  1835. fFuncInfoPrt();
  1836. }
  1837. if (prtflag) {
  1838. fRsrvPrt(model.getValue("/root/main/fcexlist/fcexinfo[" + grd_fcex.row + "]/pid"));
  1839. }
  1840. fGetFuncExcuList(model.getValue("/root/send/data/srchdd"));
  1841. model.setFocus("ipt_pid");
  1842. }
  1843. }
  1844. function fExecRsrv(flag, row) {
  1845. var rCSV = "pid" + "▦"
  1846. + "excuroomcd" + "▦"
  1847. + "prcpdd" + "▦"
  1848. + "execprcpuniqno" + "▦"
  1849. + "rsrvflag" + "▦"
  1850. + "rsrvdt" + "▦"
  1851. + "srchrsrvtm" + "▦"
  1852. + "prcpkindcd" + "▦"
  1853. + "excupartcd" + "▦"
  1854. + "indd" + "▦"
  1855. + "actorddd" + "▦"
  1856. + "orddeptcd" + "▦"
  1857. + "orddrid" + "▦"
  1858. + "calcscorcd" + "▦"
  1859. + "execrid" + "▦"
  1860. + "rsrvrem" + "▦"
  1861. + "suppdeptcd" + "▦"
  1862. + "cnclcd" + "▦"
  1863. + "pacsnocretyn" + "▦"
  1864. + "rgsttm" + "▦"
  1865. + "rgstrid" + "▦"
  1866. + "prcpdelivefact" + "▦"
  1867. + "orddepthngnm" + "▦"
  1868. + "prcpnm" + "▦"
  1869. + "orddd" + "▦"
  1870. + "rgstdepthngnm" + "▦"
  1871. + "examroomnm" + "▦"
  1872. + "bf_srchrsrvtm" + "▦"
  1873. + "rsrvflagyn" + "▦"
  1874. + "prcpexecdeptcd" + "▦"
  1875. + "rsrvtmcntlyn" + "▦"
  1876. + "rsrvpsnnocntlyn" + "▦"
  1877. + "excuroom" + "▦"
  1878. + "telrsrvyn" + "▦"
  1879. + "eqmtifyn" + "▦"
  1880. + "glycosyn" + "▦"
  1881. + "glycoscure" + "▦"
  1882. + "reqhospcd" + "▦"
  1883. + "prcpgenrflag" + "▦"
  1884. + "rsrvtmplcd" + "▦"
  1885. + "emryn" + "▦"
  1886. + "timeyn" + "▦"
  1887. + "rsrvsuppdeptcd" + "▦"
  1888. + "prercptyn" + "▦"
  1889. + "rcptrsrvyn" + "▦"
  1890. + "prcptdayrcptyn" + "▩";
  1891. var rsrvdeptcd = getScreenPrestDeptCd() == "" ? getUserInfo("dutplcecd") : getScreenPrestDeptCd();
  1892. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  1893. for (var i = 1; i <= cnt; i++) {
  1894. if (row != null && i != row) {
  1895. continue;
  1896. }
  1897. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  1898. if (model.getValue(path + "chk") != "Y") {
  1899. continue;
  1900. }
  1901. var prercptyn = "N";
  1902. if (model.getValue(path + "aftrcptinfo") == "V" || // 후불 수납환자
  1903. model.getValue(path + "rcptyn") == "수납" || // 기수납자
  1904. model.getValue(path + "genrflag") == "S" || // 건진환자
  1905. model.getValue(path + "genrflag") == "I" || // 입원환자
  1906. model.getValue(path + "genrflag") == "E") { // 응급환자
  1907. prercptyn = "Y";
  1908. }
  1909. rCSV += model.getValue(path + "pid") + "▦" +
  1910. model.getValue(path + "excuroomcd") + "▦" +
  1911. model.getValue(path + "prcpdd") + "▦" +
  1912. model.getValue(path + "execprcpuniqno") + "▦" +
  1913. model.getValue(path + "rsrvflag") + "▦" +
  1914. model.getValue(path + "rsrvdt") + "▦" +
  1915. model.getValue(path + "srchrsrvtm") + "▦" +
  1916. model.getValue(path + "prcpkindcd") + "▦" +
  1917. model.getValue(path + "excupartcd") + "▦" +
  1918. model.getValue(path + "indd") + "▦" +
  1919. model.getValue(path + "actorddd") + "▦" +
  1920. model.getValue(path + "orddeptcd") + "▦" +
  1921. model.getValue(path + "orddrid") + "▦" +
  1922. model.getValue(path + "calcscorcd") + "▦" +
  1923. model.getValue(path + "execrid") + "▦" +
  1924. model.getValue(path + "rsrvrem") + "▦" +
  1925. model.getValue(path + "suppdeptcd") + "▦" +
  1926. "" + "▦" + // cnclresncd
  1927. model.getValue(path + "pacsnocretyn") + "▦" +
  1928. model.getValue(path + "rgsttm") + "▦" +
  1929. model.getValue(path + "rgstrid") + "▦" +
  1930. model.getValue(path + "prcpdelivefact") + "▦" +
  1931. model.getValue(path + "orddepthngnm") + "▦" +
  1932. model.getValue(path + "prcpnm") + "▦" +
  1933. model.getValue(path + "orddd") + "▦" +
  1934. model.getValue(path + "rgstdepthngnm") + "▦" +
  1935. model.getValue(path + "examroomnm") + "▦" +
  1936. model.getValue(path + "bf_srchrsrvtm") + "▦" +
  1937. model.getValue(path + "rsrvflagyn") + "▦" +
  1938. model.getValue(path + "prcpexecdeptcd") + "▦" +
  1939. model.getValue(path + "rsrvtmcntlyn") + "▦" +
  1940. model.getValue(path + "rsrvpsnnocntlyn") + "▦" +
  1941. model.getValue(path + "excuroom") + "▦" +
  1942. model.getValue(path + "telrsrvyn") + "▦" +
  1943. model.getValue(path + "eqmtifyn") + "▦" +
  1944. model.getValue(path + "glycosyn") + "▦" +
  1945. model.getValue(path + "glycoscure") + "▦" +
  1946. model.getValue(path + "reqhospcd") + "▦" +
  1947. model.getValue(path + "prcpgenrflag") + "▦" +
  1948. model.getValue(path + "rsrvtmplcd") + "▦" +
  1949. model.getValue(path + "emryn") + "▦" +
  1950. "N" + "▦" + // timeyn (시간 통제 여부)
  1951. rsrvdeptcd + "▦" +
  1952. prercptyn + "▦" +
  1953. model.getValue(path + "rcptrsrvyn") + "▦" + // 미수예약
  1954. model.getValue(path + "prcptdayrcptyn") + "▩"; //당일선수납
  1955. }
  1956. model.removeNode("/root/temp/rsrv");
  1957. model.makeNode("/root/temp/rsrv");
  1958. setCSVToNode("/root/temp/rsrv", rCSV);
  1959. instance1.selectSingleNode("/root/temp/rsrv").xml;
  1960. model.removenode("/root/send/rsrv");
  1961. model.makeNode("/root/send/rsrv");
  1962. model.copyNode("/root/send/rsrv", "/root/temp/rsrv");
  1963. model.makeValue("/root/send/rsrv/list/flag", flag);
  1964. model.makeValue("/root/send/rsrv/list/chkflag", "T"); // 통합예약
  1965. model.removenode("/root/temp/rsrvrtn");
  1966. model.makeNode("/root/temp/rsrvrtn/rtninfo");
  1967. return submit("TXAEA02001", false)
  1968. }
  1969. function fExecFuncRsrv(flag) {
  1970. var nodeList = instance1.selectNodes("/root/main/fcexlist/fcexinfo[chk='Y']");
  1971. var rCSV = getNodeListCSV(nodeList);
  1972. model.setValue("/root/send/funcrsrv/data", rCSV);
  1973. model.setValue("/root/send/funcrsrv/flag", flag);
  1974. model.setValue("/root/send/funcrsrv/pamifyn", "N"); // 향후 com.zbcmcode A0486 참조할 것
  1975. return submit("TXAEA01101", false);
  1976. }
  1977. function fTopInfo() {
  1978. var path = "";
  1979. if (!FUNC_FLAG) {
  1980. path = "/root/main/exculist/excuinfo[" + grd_excu.row + "]/";
  1981. } else {
  1982. path = "/root/main/fcexlist/fcexinfo[" + grd_fcex.row + "]/";
  1983. }
  1984. var patinfo = "S▦" + model.getValue(path + "prcpdd") + "▦" + model.getValue(path + "execprcpuniqno") + "▦" + getUserInfo("dutplcecd");
  1985. setParameter("condparam", patinfo);
  1986. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  1987. /*
  1988. var paminfo = getGlobalVariable("paminfo");
  1989. if (paminfo != "") {
  1990. model.removeNodeset("/root/paminfo");
  1991. model.makeNode("/root/paminfo");
  1992. setCSVToNode("/root/paminfo", paminfo);
  1993. }
  1994. */
  1995. }
  1996. function fRsrvPrt(pid) {
  1997. model.setValue("/root/send/data/prtpid", pid);
  1998. if (submit("TRPEA00104", false)) {
  1999. if (model.getValue("/root/hidden/prtlist/prtinfo/pid") != null) {
  2000. // 2015/08/12 출력물 수정위해 부서 코드 세팅(이정택)
  2001. var cnt = getNodesetCount("/root/hidden/prtlist/prtinfo");
  2002. for(var i=1; i<=cnt; i++){
  2003. model.makeValue("/root/hidden/prtlist/prtinfo[" + i + "]/dutplcecd", getUserInfo("dutplcecd"));
  2004. //2016/11/30 예약 일정표 출력물에 실제 담당자 전화번호가 찍히도록 프로그램 수정
  2005. if(getUserInfo("dutplceinstcd")=='031' && model.getValue("/root/hidden/prtlist/prtinfo[1]/rsrvtelno") != "" && i>1){
  2006. model.makeValue("/root/hidden/prtlist/prtinfo[" + i + "]/rsrvtelno", model.getValue("/root/hidden/prtlist/prtinfo[1]/rsrvtelno"));
  2007. }
  2008. //2016/11/30 예약 일정표 출력물에 실제 담당자 전화번호가 찍히도록 프로그램 수정
  2009. }
  2010. //exeReportPreview("RPPEA00101", "XMLSTR");
  2011. // 칠곡은 버튼 클릭시 바로 출력되도록 변경
  2012. if (getUserInfo("dutplceinstcd") == "032") {
  2013. exeReportPreview("RPPEA00102", "XMLSTR", "", "", "true", "", "", "", "", "true");
  2014. } else {
  2015. exeReportPreview("RPPEA00101", "XMLSTR");
  2016. }
  2017. }
  2018. }
  2019. }
  2020. function fInfoPrt() {
  2021. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  2022. var tmplArr = new Array();
  2023. var prtcnt = 0;
  2024. for (var i = 1; i <= cnt; i++) {
  2025. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  2026. if (i != EXCU_SEL_ROW && model.getValue(path + "chk") != "Y") { // 예약시 자동으로 검사 안내문을 출력하는 경우
  2027. continue;
  2028. }
  2029. var tmpldata = model.getValue(path + "tmpldata");
  2030. if (tmpldata == "") {
  2031. continue;
  2032. }
  2033. var flag = true;
  2034. for (var j = 0; j < tmplArr.length; j++) {
  2035. if (tmpldata == tmplArr[j]) {
  2036. flag = false;
  2037. break;
  2038. }
  2039. }
  2040. if (!flag) {
  2041. continue;
  2042. }
  2043. tmplArr[tmplArr.length] = tmpldata;
  2044. rtfviewer.OpenProgressBar(1);
  2045. var rsrvdt = model.getValue(path + "srchrsrvtm");
  2046. var prcpnm = model.getValue(path + "prcpnm");
  2047. var roomnm = model.getValue(path + "examroomnm");
  2048. var rcptyn = model.getValue(path + "rcptyn");
  2049. var vacntno = "";
  2050. var yyyy = rsrvdt.substr(0, 4);
  2051. var month = rsrvdt.substr(4, 2);
  2052. var dd = rsrvdt.substr(6, 2);
  2053. var hh = rsrvdt.substr(8, 2);
  2054. var mm = rsrvdt.substr(10, 2);
  2055. var week = rsrvdt.substr(0, 8).toDate().getDayOfWeek("K");
  2056. if (Number(hh) > 12) {
  2057. hh = "오후 " + String(Number(hh) - 12);
  2058. } else {
  2059. hh = "오전 " + hh;
  2060. }
  2061. var nextdd = ((rsrvdt.substr(0, 8)).toDate()).getAddDate(1).getDateFormat();
  2062. var yyyy2 = nextdd.substr(0, 4);
  2063. var month2 = nextdd.substr(4, 2);
  2064. var dd2 = nextdd.substr(6, 2);
  2065. rtfviewer.TextRtf = tmpldata;
  2066. rtfviewer.ReplaceRtfCode("pid", model.getValue("/root/send/data/pid"));
  2067. rtfviewer.ReplaceRtfCode("patnm", model.getValue("/root/main/ptinfo/hngnm"));
  2068. rtfviewer.ReplaceRtfCode("roomcd", roomnm + ( model.getValue(path + "slepyn") == "Y" ? " (수면)" : "" ));
  2069. rtfviewer.ReplaceRtfCode("year", yyyy);
  2070. rtfviewer.ReplaceRtfCode("month", month);
  2071. rtfviewer.ReplaceRtfCode("day", dd);
  2072. rtfviewer.ReplaceRtfCode("week", week);
  2073. rtfviewer.ReplaceRtfCode("hh", hh);
  2074. rtfviewer.ReplaceRtfCode("mm", mm);
  2075. rtfviewer.ReplaceRtfCode("age", model.getValue("/root/main/ptinfo/age"));
  2076. rtfviewer.ReplaceRtfCode("sex", model.getValue("/root/main/ptinfo/sex"));
  2077. rtfviewer.ReplaceRtfCode("orddeptcd", model.getValue(path + "orddepthngnm"));
  2078. rtfviewer.ReplaceRtfCode("orddrid", model.getValue(path + "orddrnm"));
  2079. rtfviewer.ReplaceRtfCode("excucdnm", model.getValue(path + "excucdnm"));
  2080. rtfviewer.ReplaceRtfCode("yr1", yyyy);
  2081. rtfviewer.ReplaceRtfCode("mn1", month);
  2082. rtfviewer.ReplaceRtfCode("dy1", dd);
  2083. rtfviewer.ReplaceRtfCode("yr2", yyyy2);
  2084. rtfviewer.ReplaceRtfCode("mn2", month2);
  2085. rtfviewer.ReplaceRtfCode("dy2", dd2);
  2086. rtfviewer.ReplaceRtfCode("hh2", "");
  2087. rtfviewer.ReplaceRtfCode("mm2", "");
  2088. rtfviewer.print();
  2089. rtfviewer.CloseProgressBar();
  2090. prtcnt++;
  2091. }
  2092. if (prtcnt < 1) {
  2093. messageBox("출력할 내역이 없습니다.", "E999");
  2094. }
  2095. }
  2096. function fFuncInfoPrt(row) {
  2097. var cnt = instance1.selectNodes("/root/main/fcexlist/fcexinfo").length;
  2098. var tmplArr = new Array();
  2099. var prtcnt = 0;
  2100. for (var i = 1; i <= cnt; i++) {
  2101. var path = "/root/main/fcexlist/fcexinfo[" + i + "]/";
  2102. if (i != FUNC_SEL_ROW && model.getValue(path + "chk") != "Y") { // 예약시 자동으로 검사 안내문을 출력하는 경우
  2103. continue;
  2104. }
  2105. var tmpldata = model.getValue(path + "tmpldata");
  2106. if (tmpldata == "") {
  2107. continue;
  2108. }
  2109. var flag = true;
  2110. for (var j = 0; j < tmplArr.length; j++) {
  2111. if (tmpldata == tmplArr[j]) {
  2112. flag = false;
  2113. break;
  2114. }
  2115. }
  2116. if (!flag) {
  2117. continue;
  2118. }
  2119. tmplArr[tmplArr.length] = tmpldata;
  2120. rtfviewer.OpenProgressBar(1);
  2121. var rsrvdt = model.getValue(path + "srchrsrvdt");
  2122. var prcpnm = model.getValue(path + "prcpnm");
  2123. var roomnm = model.getValue(path + "examroomnm");
  2124. var rcptyn = grd_fcex.labelMatrix(i, grd_fcex.colRef("rcptyn"));
  2125. var vacntno = "";
  2126. var yyyy = rsrvdt.substr(0, 4);
  2127. var mm = rsrvdt.substr(4, 2);
  2128. var dd = rsrvdt.substr(6, 2);
  2129. var hh = rsrvdt.substr(8, 2);
  2130. var mm = rsrvdt.substr(10, 2);
  2131. var week = rsrvdt.substr(0, 8).toDate().getDayOfWeek("K");
  2132. if (Number(hh) > 12) {
  2133. hh = "오후 " + String(Number(hh) - 12);
  2134. } else {
  2135. hh = "오전 " + hh;
  2136. }
  2137. var nextdd = ((rsrvdt.substr(0, 8)).toDate()).getAddDate(1).getDateFormat();
  2138. var yyyy2 = nextdd.substr(0, 4);
  2139. var mm2 = nextdd.substr(4, 2);
  2140. var dd2 = nextdd.substr(6, 2);
  2141. rtfviewer.TextRtf = tmpldata;
  2142. rtfviewer.ReplaceRtfCode("pid", model.getValue(path + "pid"));
  2143. rtfviewer.ReplaceRtfCode("patnm", model.getValue(path + "hngnm"));
  2144. rtfviewer.ReplaceRtfCode("roomcd", roomnm + ( model.getValue(path + "slepyn") == "Y" ? " (수면)" : "" ));
  2145. rtfviewer.ReplaceRtfCode("year", yyyy);
  2146. rtfviewer.ReplaceRtfCode("month", mm);
  2147. rtfviewer.ReplaceRtfCode("day", dd);
  2148. rtfviewer.ReplaceRtfCode("week", week);
  2149. rtfviewer.ReplaceRtfCode("hh", hh);
  2150. rtfviewer.ReplaceRtfCode("mm", mm);
  2151. rtfviewer.ReplaceRtfCode("age", model.getValue(path + "age"));
  2152. rtfviewer.ReplaceRtfCode("sex", model.getValue(path + "sex"));
  2153. rtfviewer.ReplaceRtfCode("orddeptcd", model.getValue(path + "orddepthngnm"));
  2154. rtfviewer.ReplaceRtfCode("orddrid", model.getValue(path + "orddrnm"));
  2155. rtfviewer.ReplaceRtfCode("excucdnm", model.getValue(path + "prcpnm"));
  2156. rtfviewer.ReplaceRtfCode("yr1", yyyy);
  2157. rtfviewer.ReplaceRtfCode("mn1", mm);
  2158. rtfviewer.ReplaceRtfCode("dy1", dd);
  2159. rtfviewer.ReplaceRtfCode("yr2", yyyy2);
  2160. rtfviewer.ReplaceRtfCode("mn2", mm2);
  2161. rtfviewer.ReplaceRtfCode("dy2", dd2);
  2162. rtfviewer.ReplaceRtfCode("hh2", "");
  2163. rtfviewer.ReplaceRtfCode("mm2", "");
  2164. rtfviewer.print();
  2165. rtfviewer.CloseProgressBar();
  2166. prtcnt++;
  2167. }
  2168. }
  2169. function fShowPrivacyMsg() {
  2170. var path = "/root/main/ptinfo/";
  2171. var msg = "요청자 : " + model.getValue(path + "request") + " " + model.getValue(path + "requestetc") + "\n"
  2172. + "요청대상 : " + model.getValue(path + "target") + " " + model.getValue(path + "targetetc") + "\n"
  2173. + "요청내용 : " + model.getValue(path + "type") + " " + model.getValue(path + "typeetc") + "\n"
  2174. + "비고 : " + model.getValue(path + "rmk") + "\n\n"
  2175. + "위 내용의 취급에 주의하십시오.";
  2176. messageBox(msg, "I999");
  2177. }
  2178. function fPseuRsrvInfo() {
  2179. var path = "/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/";
  2180. if (instance1.selectNodes("/root/init/pseu/pseulist/pseuinfo[cdid='" + model.getValue(path + "calcscorcd") + "']").length < 1) {
  2181. messageBox("해당 검사는 추가 검사 가능 항목이 아닙니다.", "E999");
  2182. return;
  2183. }
  2184. if (model.getValue(path + "rsrvflagyn") != "예약") {
  2185. messageBox("추가 검사 예약은 해당 검사 예약 후 가능합니다.", "E999");
  2186. return;
  2187. }
  2188. setParameter("menuparam", "");
  2189. setParameter("suppdeptcd", ""); // 임시 예약은 핵의학과로 고정
  2190. setParameter("excuroomgrp", model.getValue(path + "basecdcnts"));
  2191. model.makeValue("/root/hidden/pseursrvinfo/seq", "");
  2192. model.makeValue("/root/hidden/pseursrvinfo/menuparam", "R");
  2193. model.makeValue("/root/hidden/pseursrvinfo/instcd", getUserInfo("dutplceinstcd"));
  2194. model.makeValue("/root/hidden/pseursrvinfo/suppdeptcd", model.getValue(path + "suppdeptcd"));
  2195. model.makeValue("/root/hidden/pseursrvinfo/excuroomcd", model.getValue(path + "excuroomcd"));
  2196. model.makeValue("/root/hidden/pseursrvinfo/calcscorcd", model.getValue(path + "calcscorcd"));
  2197. model.makeValue("/root/hidden/pseursrvinfo/rsrvdt", model.getValue(path + "rsrvdt"));
  2198. model.makeValue("/root/hidden/pseursrvinfo/pid", model.getValue(path + "pid"));
  2199. model.makeValue("/root/hidden/pseursrvinfo/hngnm", model.getValue("/root/main/ptinfo/hngnm"));
  2200. model.makeValue("/root/hidden/pseursrvinfo/age", model.getValue("/root/main/ptinfo/age"));
  2201. model.makeValue("/root/hidden/pseursrvinfo/sex", model.getValue("/root/main/ptinfo/sex"));
  2202. var rrgstno = model.getValue("/root/main/ptinfo/rrgstno");
  2203. model.makeValue("/root/hidden/pseursrvinfo/rrgstno1", rrgstno.substr(0, 6));
  2204. model.makeValue("/root/hidden/pseursrvinfo/rrgstno2", rrgstno.substr(6, 1));
  2205. modal("SPAEA02201", "", "200", "200", "popup", "/root/hidden/pseursrvinfo", "/root/init/pseursrvinfo");
  2206. }
  2207. function fSetRsrvStyle(grd, flag, row) {
  2208. var scol = grd.colRef("examroomnm");
  2209. var ecol = !FUNC_FLAG ? grd.colRef("srchrsrvtm") : grd.colRef("srchrsrvdt");
  2210. if (flag) {
  2211. grd.cellStyle("color", row, ecol, row, ecol) = "#0000ff";
  2212. grd.cellStyle("border-style", row, scol, row, ecol) = "solid";
  2213. grd.cellStyle("font-weight", row, scol, row, ecol) = "bold";
  2214. grd.cellStyle("border-left-color", row, scol) = "crimson";
  2215. grd.cellStyle("border-left-width", row, scol) = "2px";
  2216. grd.cellStyle("border-top-color", row, scol) = "crimson";
  2217. grd.cellStyle("border-top-width", row, scol) = "2px";
  2218. grd.cellStyle("border-right-color", row, scol) = "#b0b0b0";
  2219. grd.cellStyle("border-right-width", row, scol) = "1px";
  2220. grd.cellStyle("border-bottom-color", row, scol) = "crimson";
  2221. grd.cellStyle("border-bottom-width", row, scol) = "3px";
  2222. grd.cellStyle("border-left-color", row, ecol) = "#b0b0b0";
  2223. grd.cellStyle("border-left-width", row, ecol) = "0px";
  2224. grd.cellStyle("border-top-color", row, ecol) = "crimson";
  2225. grd.cellStyle("border-top-width", row, ecol) = "2px";
  2226. grd.cellStyle("border-right-color", row, ecol) = "crimson";
  2227. grd.cellStyle("border-right-width", row, ecol) = "3px";
  2228. grd.cellStyle("border-bottom-color", row, ecol) = "crimson";
  2229. grd.cellStyle("border-bottom-width", row, ecol) = "3px";
  2230. } else {
  2231. grd.cellStyle("color", row, scol, row, scol) = "#000000";
  2232. grd.cellStyle("color", row, ecol, row, ecol) = "#ff0000";
  2233. grd.cellStyle("border-left-color", row, scol, row, ecol) = "#ffffff";
  2234. grd.cellStyle("border-left-width", row, scol, row, ecol) = "";
  2235. grd.cellStyle("border-top-color", row, scol, row, ecol) = "#ffffff";
  2236. grd.cellStyle("border-top-width", row, scol, row, ecol) = "";
  2237. grd.cellStyle("border-right-color", row, scol, row, ecol) = "#b0b0b0";
  2238. grd.cellStyle("border-right-width", row, scol, row, ecol) = "1px";
  2239. grd.cellStyle("border-bottom-color", row, scol, row, ecol) = "#b0b0b0";
  2240. grd.cellStyle("border-bottom-width", row, scol, row, ecol) = "1px";
  2241. }
  2242. }
  2243. function fChangeRsrv() {
  2244. RMRV_MOUSE_DOWN = false;
  2245. if (EXCU_SEL_ROW < 1) {
  2246. messageBox("선택된 검사 항목이 없습니다." ,"E999");
  2247. return;
  2248. }
  2249. var rsrvflagyn = model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/rsrvflagyn");
  2250. if (rsrvflagyn != "예약") {
  2251. messageBox("예약된 검사에 대해서만 맞바꾸기가 가능합니다.", "E999");
  2252. return;
  2253. }
  2254. if (model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/pid") == "") {
  2255. messageBox("해당 시각에는 맞바꿀 검사가 없습니다.", "E999");
  2256. return;
  2257. }
  2258. if (model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/rsrvstatnm") == "임시") {
  2259. messageBox("임시 예약된 검사와는 맞바꿀 수 없습니다.", "E999");
  2260. return;
  2261. }
  2262. var rsrvstatcd = model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/rsrvstatcd");
  2263. if (rsrvstatcd != "Y" && rsrvstatcd != "000" && rsrvstatcd != "440") {
  2264. messageBox("실시된 검사와는 맞바꿀 수 없습니다.", "E999");
  2265. return;
  2266. }
  2267. var ownRsrvdt = model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/bf_srchrsrvtm");
  2268. var tgtRsrvdt = model.getValue("/root/send/data/rsrvdd") + model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/rsrvtm");
  2269. // 과거 일자 여부 확인
  2270. if (tgtRsrvdt.substr(0, 8) < getCurrentDate()) {
  2271. messageBox("과거 일자는 변경할 수 없습니다", "E999");
  2272. return;
  2273. } else if (tgtRsrvdt.substr(0, 8) == getCurrentDate()
  2274. && Number(model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/rsrvtm")) < Number(getCurrentTime().substr(0, 4))) {
  2275. messageBox("과거 시각은 변경할 수 없습니다.", "E999");
  2276. return;
  2277. }
  2278. if (messageBox("[ 선택된 검사 ]\n\n"
  2279. + "■ " + model.getValue("/root/main/ptinfo/hngnm") + "\n"
  2280. + "■ " + model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/prcpnm") + "\n"
  2281. + "■ " + model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/bf_examroomnm") + "\n"
  2282. + "■ " + ownRsrvdt.toDate("YYYYMMDDhhmm").getDateFormat("YYYY-MM-DD hh:mm") + "\n\n\n"
  2283. + "[ 예약된 검사 ]\n\n"
  2284. + "■ " + model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/hngnm") + "\n"
  2285. + "■ " + model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/excucdnm") + "\n"
  2286. + "■ " + model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomnm") + "\n"
  2287. + "■ " + tgtRsrvdt.toDate("YYYYMMDDhhmm").getDateFormat("YYYY-MM-DD hh:mm") + "\n\n\n"
  2288. + "위의 각 검사의 예약 일시를 맞바꾸시겠습니까?", "Q999") != 6) {
  2289. return;
  2290. }
  2291. // 기존 예약 변경
  2292. model.setValue("/root/send/chng/pid", model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/pid"));
  2293. model.setValue("/root/send/chng/execprcpuniqno", model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/execprcpuniqno"));
  2294. model.setValue("/root/send/chng/rsrvdeptcd", getScreenPrestDeptCd() == "" ? getUserInfo("dutplcecd") : getScreenPrestDeptCd());
  2295. model.setValue("/root/send/chng/excuroomcd", model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/bf_excuroomcd"));
  2296. model.setValue("/root/send/chng/examroomnm", model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/bf_examroomnm"));
  2297. model.setValue("/root/send/chng/srchrsrvtm", ownRsrvdt);
  2298. model.setValue("/root/send/chng/rsrvdt", ownRsrvdt);
  2299. submit("TXPEA00102");
  2300. var flag = model.getValue("/root/temp/chngrslt/rsltinfo/rsltflag");
  2301. if (flag != "1") {
  2302. messageBox(model.getValue("/root/temp/chngrslt/rsltinfo/rsltmsg"), "E999");
  2303. return;
  2304. }
  2305. // 예약 일시 및 예약 선택 여부 값 입력
  2306. model.setValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/rsrvdt", tgtRsrvdt);
  2307. model.setValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/srchrsrvtm", tgtRsrvdt);
  2308. model.setValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/chk", "Y");
  2309. grd_excu.refresh();
  2310. var row = grd_excu.row;
  2311. fSetRsrvStyle(grd_excu, true, row);
  2312. // 중증 / 산정특례 종료일자 체크
  2313. var msg = "";
  2314. var todd = model.getValue("/root/main/ptinfo/serdiagtodd");
  2315. var rsrvdd = tgtRsrvdt.substr(0, 8);
  2316. var rsrvtm = tgtRsrvdt.substr(8, 4);
  2317. if (isValidDateTime(todd, "YYYYMMDD")) {
  2318. if (rsrvdd > todd) {
  2319. msg = "중증 종료 예정일 : " + todd.substr(0, 4) + "/" + todd.substr(4, 2) + "/" + todd.substr(6, 2);
  2320. }
  2321. }
  2322. todd = model.getValue("/root/main/ptinfo/rareobsttodd");
  2323. if (isValidDateTime(todd, "YYYYMMDD")) {
  2324. if (rsrvdd > todd) {
  2325. msg = msg == "" ? msg : msg + "\r\n";
  2326. msg += "희귀 난치 종료 예정일 : " + todd.substr(0, 4) + "/" + todd.substr(4, 2) + "/" + todd.substr(6, 2);
  2327. }
  2328. }
  2329. if (msg != "") {
  2330. msg = "중증 혹은 희귀 난치 자격 종료예정자입니다" + "\r\n\r\n"
  2331. + msg + "\r\n\r\n"
  2332. + "진료 당일의 자격이 변경될 가능성이 있음에 유의하시기 바랍니다.";
  2333. messageBox(msg, "E999");
  2334. }
  2335. if (fExecRsrv("rsrv", EXCU_SEL_ROW)) {
  2336. if (model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/tmpldata") != "") {
  2337. if (messageBox("선택된 검사는 검사 안내문이 있습니다.\n예약 후 검사 안내문을 출력하시겠습니까?", "Q999") == 6) {
  2338. fInfoPrt(EXCU_SEL_ROW);
  2339. }
  2340. }
  2341. fRsrvPrt(model.getValue("/root/send/data/pid"));
  2342. fGetExcuList(model.getValue("/root/send/data/rsrvdd"));
  2343. model.setFocus("ipt_pid");
  2344. }
  2345. }
  2346. function fSetPtCmtExt(collapse) {
  2347. if (collapse || btn_ptcmtex.attribute("background-image") == "../../../com/commonweb/images/btn_send_top.gif") {
  2348. sw_ptcmt.attribute("width") = "330px";
  2349. sw_ptcmt.attribute("height") = "135";
  2350. grd_ptcmt.attribute("width") = "330px";
  2351. grd_ptcmt.attribute("height") = "110px";
  2352. tar_ptcmt.attribute("width") = "310px";
  2353. tar_ptcmt.attribute("height") = "90px";
  2354. line9.attribute("x2") = "330px";
  2355. /*
  2356. btn_addcmt.attribute("left") = "175px";
  2357. btn_savecmt.attribute("left") = "218px";
  2358. btn_delcmt.attribute("left") = "261px";
  2359. btn_ptcmtex.attribute("left") = "304px";
  2360. */
  2361. grd_ptcmt.colHidden(grd_ptcmt.colRef("usernm")) = true;
  2362. grd_ptcmt.refresh();
  2363. grd_ptcmt.resizeCells();
  2364. btn_ptcmtex.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  2365. } else {
  2366. sw_ptcmt.attribute("width") = "730px";
  2367. sw_ptcmt.attribute("height") = "350px";
  2368. grd_ptcmt.attribute("width") = "730px";
  2369. grd_ptcmt.attribute("height") = "325px";
  2370. tar_ptcmt.attribute("width") = "710px";
  2371. tar_ptcmt.attribute("height") = "305px";
  2372. line9.attribute("x2") = "730px";
  2373. /*
  2374. btn_addcmt.attribute("left") = "575px";
  2375. btn_savecmt.attribute("left") = "618px";
  2376. btn_delcmt.attribute("left") = "661px";
  2377. btn_ptcmtex.attribute("left") = "704px";
  2378. */
  2379. grd_ptcmt.colHidden(grd_ptcmt.colRef("usernm")) = false;
  2380. grd_ptcmt.refresh();
  2381. grd_ptcmt.resizeCells();
  2382. btn_ptcmtex.attribute("background-image") = "../../../com/commonweb/images/btn_send_top.gif";
  2383. }
  2384. sw_ptcmt.refresh();
  2385. }
  2386. function fCheckRstrDay(rsrvdd) {
  2387. var msg = "";
  2388. var todd = model.getValue("/root/main/ptinfo/serdiagtodd");
  2389. if (isValidDateTime(todd, "YYYYMMDD")) {
  2390. if (rsrvdd > todd) {
  2391. msg = "중증 종료 예정일 : " + todd.substr(0, 4) + "/" + todd.substr(4, 2) + "/" + todd.substr(6, 2);
  2392. }
  2393. }
  2394. todd = model.getValue("/root/main/ptinfo/rareobsttodd");
  2395. if (isValidDateTime(todd, "YYYYMMDD")) {
  2396. if (rsrvdd > todd) {
  2397. msg = msg == "" ? msg : msg + "\r\n";
  2398. msg += "희귀 난치 종료 예정일 : " + todd.substr(0, 4) + "/" + todd.substr(4, 2) + "/" + todd.substr(6, 2);
  2399. }
  2400. }
  2401. if (msg != "") {
  2402. msg = "중증 혹은 희귀 난치 자격 종료예정자입니다" + "\r\n\r\n"
  2403. + msg + "\r\n\r\n"
  2404. + "진료 당일의 자격이 변경될 가능성이 있음에 유의하시기 바랍니다.";
  2405. messageBox(msg, "E999");
  2406. }
  2407. }
  2408. function fInit() {
  2409. if (!checkOpener()) {
  2410. delPatientInfos();
  2411. }
  2412. fSetPtCmtExt(true);
  2413. // 검사실 전체 체크 항목 해제
  2414. model.setValue("/root/send/data/totflag", "");
  2415. chk_totflag.refresh();
  2416. grd_srchroom.attribute("height") = "110px";
  2417. btn_roomex.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  2418. fClearExcuInfo(getCurrentDate());
  2419. grd_excu.fixedcellischeck(0, grd_excu.colRef("chk")) = false;
  2420. model.toggle("excu");
  2421. grd_ord.rebuildStyle();
  2422. grd_excu.rebuildStyle();
  2423. grd_pt.rebuildStyle();
  2424. model.resetInstanceNode("/root/main/ptinfo");
  2425. model.resetInstanceNode("/root/main/ordlist/ordinfo");
  2426. model.resetInstanceNode("/root/main/tdrvlist/tdrvinfo");
  2427. model.resetInstanceNode("/root/main/ptcmtlist/ptcmtinfo");
  2428. model.resetInstanceNode("/root/main/exculist/excuinfo");
  2429. model.resetInstanceNode("/root/main/fcexlist/fcexinfo");
  2430. model.resetInstanceNode("/root/main/anexlist/anexinfo");
  2431. model.resetInstanceNode("/root/main/rcptprcpinfo");
  2432. model.resetInstanceNode("/root/main2/ddrvlist/ddrvinfo");
  2433. grd_room.refresh();
  2434. grd_room.resizeCells();
  2435. grd_ptcmt.refresh();
  2436. grd_ptcmt.resizeCells();
  2437. btn_savecmt.disabled = true;
  2438. btn_delcmt.disabled = true;
  2439. model.setValue("/root/temp/ptcmt", "");
  2440. tar_ptcmt.refresh();
  2441. grp_creatine.visible = false;
  2442. model.setValue("/root/send/data/pid", "");
  2443. model.refresh();
  2444. model.setFocus("ipt_pid");
  2445. }
  2446. ]]>
  2447. </script>
  2448. <script type="javascript" ev:event="xforms-ready">
  2449. <![CDATA[
  2450. //원무공통코드 조회
  2451. pamfGetCodeList(new Array("P6588", "P0130"), new Array("/root/init/init_pam/P6588list", "/root/init/init_pam/P0130list"));
  2452. // ast.aebmcode
  2453. // A640 : 통합예약미예약처방예약시간셋팅여부 : N
  2454. // A660 : 통합예약입원조회여부 : Y
  2455. // T0001 : 치료코드 및 통합예약 예약제한 사번
  2456. grd_excu.fixedcellcheckbox(0, grd_excu.colRef("chk")) = true;
  2457. grp_msg.attribute("top") = "200px";
  2458. RSRV_PLCE = getScreenMenuParameter();
  2459. if (RSRV_PLCE == "null" || RSRV_PLCE == "") {
  2460. RSRV_PLCE = "T";
  2461. }
  2462. if (checkOpener()) {
  2463. var param = opener.javascript.getParameter("opener_parameter_id");
  2464. if (param != null && param != "") {
  2465. condarray = param.split("▦");
  2466. if (condarray.length > 1) {
  2467. model.setValue("/root/send/data/pid", condarray[0]);
  2468. RSRV_PLCE = condarray[1];
  2469. } else {
  2470. model.setValue("/root/send/data/pid", param);
  2471. }
  2472. } else {
  2473. var paminfo = getGlobalVariable("paminfo"); // 상단
  2474. if (paminfo != null && paminfo != "") {
  2475. model.removeNodeset("/root/paminfo");
  2476. model.makeNode("/root/paminfo");
  2477. setCSVToNode("/root/paminfo", paminfo);
  2478. var pid = model.getValue("/root/paminfo/list/pid");
  2479. model.setValue("/root/send/data/pid", pid);
  2480. }
  2481. }
  2482. }
  2483. fSetRsrvPlce();
  2484. model.setValue("/root/ctrl/hidden/rsrvplce", RSRV_PLCE);
  2485. cmb_rsrvplce.refresh();
  2486. // 캘린더 설정
  2487. fSetCalendar(getCurrentDate().toDate());
  2488. var srchdeptcd = ( getScreenPrestDeptCd() == "" || getScreenPrestDeptCd() == null ) ? getUserInfo("dutplcecd") : getScreenPrestDeptCd();
  2489. var srchdeptnm = getUserInfo("dutplcenm");
  2490. // 개발자용 부서 목록 조회
  2491. if (getUserId() == "PAM") {
  2492. cmb_rsrvplce.visible = true;
  2493. cmb_srchdept.visible = true;
  2494. btn_multirsrv.visible = true;
  2495. btn_rsrvstaff.visible = true;
  2496. submit("TRPEA00107");
  2497. } else {
  2498. model.makeValue("/root/init/srchdeptlist/deptinfo/deptcd", srchdeptcd);
  2499. model.makeValue("/root/init/srchdeptlist/deptinfo/deptnm", srchdeptnm);
  2500. }
  2501. model.setValue("/root/send/data/srchdeptcd", srchdeptcd);
  2502. model.setValue("/root/hidden/dutplcenm", srchdeptnm);
  2503. cap_dept.refresh();
  2504. cmb_srchdept.refresh();
  2505. grd_srchroom.fixedcellcheckbox(0, grd_srchroom.colRef("chk")) = true;
  2506. grd_srchroom.fixedcellischeck(0, grd_srchroom.colRef("chk")) = true;
  2507. // 부서에 해당하는 검사실 조회
  2508. submit("TRPEA00108");
  2509. model.setValue("/root/send/data/fromdd", getCurrentDate().toDate().getAddDate(-1, "Y").getDateFormat("YYYYMMDD"));
  2510. ipt_fromdd.refresh();
  2511. model.setValue("/root/send/data/todd", getCurrentDate());
  2512. ipt_todd.refresh();
  2513. // 제어 예외 대상 조회
  2514. submit("TRPEA00211", false);
  2515. // 통합 예약 담당 관리 기능 숨김 해제
  2516. for (var i = 1; i <= instance1.selectNodes("/root/ctrl/hidden/excplist/excpinfo").length; i++) {
  2517. if (getUserId() == model.getValue("/root/ctrl/hidden/excplist/excpinfo[" + i + "]/userid")) {
  2518. btn_rsrvstaff.visible = true;
  2519. break;
  2520. }
  2521. }
  2522. // 검사 현황 그리드 사이즈가 0인 칼럼들 숨김 설정
  2523. for (var i = 0; i < grd_excu.cols; i++) {
  2524. if (grd_excu.colWidth(i) == 0) {
  2525. grd_excu.colHidden(i) = true;
  2526. }
  2527. }
  2528. for (var i = 0; i < grd_fcex.cols; i++) {
  2529. if (grd_fcex.colWidth(i) == 0) {
  2530. grd_fcex.colHidden(i) = true;
  2531. }
  2532. }
  2533. for (var i = 0; i < grd_rmrv.cols; i++) {
  2534. if (grd_rmrv.colWidth(i) == 0) {
  2535. grd_rmrv.colHidden(i) = true;
  2536. }
  2537. }
  2538. // autoresize 그리드 최소 높이 설정
  2539. grd_room.rowHeightMin = 23;
  2540. grd_ctrl.rowHeightMin = 23;
  2541. grd_rmrv.rowHeightMin = 23;
  2542. grd_ptcmt.rowHeightMin = 23;
  2543. // 추가 검사 가능 코드 및 임시 예약 부서 조회
  2544. submit("TRPEA00106");
  2545. // 통합 예약 담당자 목록 조회
  2546. submit("TRPEA00110", false);
  2547. model.setFocus("ipt_pid");
  2548. if (model.getValue("/root/send/data/pid") != "") {
  2549. btn_search.dispatch("DOMActivate");
  2550. }
  2551. ]]>
  2552. </script>
  2553. </model>
  2554. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  2555. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  2556. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  2557. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  2558. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  2559. <script type="javascript" src="../../../pam/pamcomnweb/js/PAM.js"/>
  2560. <script type="javascript" src="../../../pam/pamcomnweb/js/PAM001.js"/>
  2561. <script type="javascript" src="../../../pam/pamexcuweb/js/SMPEA00200.js"/>
  2562. </xhtml:head>
  2563. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  2564. <caption id="cap_title" class="tit_1" style="left:0px; top:0px; width:115px; height:13px; ">
  2565. <![CDATA[검사 예약]]>
  2566. </caption>
  2567. <multilinegrid id="grd_calendar" nodeset="/root/hidden/calendar/weeklist/list" class="gridcalendar" autoresize="true" backcoloralternate="transparent" caption="일^월^화^수^목^금^토" colsep="^" colwidth="48, 47, 47, 47, 47, 47, 47" dataheight="20" extendlastcol="noscroll" focuscolor="transparent" rowsep="|" mergecellsfixedrows="bycolrec" style="left:260px; top:493px; width:330px; height:272px; border-left-width:1px; border-top-width:0px; border-right-width:1px; border-bottom-width:1px; border-style:solid; ">
  2568. <row>
  2569. <col class="color_sun" ref="sun" style="border-bottom-width:0px; "/>
  2570. <col ref="mon" style="border-bottom-width:0px; "/>
  2571. <col ref="tue" style="border-bottom-width:0px; "/>
  2572. <col ref="wed" style="border-bottom-width:0px; "/>
  2573. <col ref="thu" style="border-bottom-width:0px; "/>
  2574. <col ref="fri" style="border-bottom-width:0px; "/>
  2575. <col class="color_sat" ref="sat" style="border-bottom-width:0px; "/>
  2576. </row>
  2577. <row>
  2578. <col ref="sun_memo" style="border-top-width:0px; "/>
  2579. <col ref="mon_memo" style="border-top-width:0px; "/>
  2580. <col ref="tue_memo" style="border-top-width:0px; "/>
  2581. <col ref="wed_memo" style="border-top-width:0px; "/>
  2582. <col ref="thu_memo" style="border-top-width:0px; "/>
  2583. <col ref="fri_memo" style="border-top-width:0px; "/>
  2584. <col ref="sat_memo" style="border-top-width:0px; "/>
  2585. </row>
  2586. <script type="javascript" ev:event="onclick">
  2587. <![CDATA[
  2588. if (grd_calendar.row != 0) {
  2589. var row = grd_calendar.row;
  2590. var col = grd_calendar.col >= 7 ? grd_calendar.col - 7 : grd_calendar.col;
  2591. var dd = model.getValue("/root/hidden/calendar/weeklist/list[" + row + "]/" + grd_calendar.colAttribute(col, "ref"));
  2592. if (dd.length < 2) {
  2593. dd = "0" + dd;
  2594. }
  2595. var rsrvdd = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month") + dd
  2596. model.setValue("/root/send/data/rsrvdd", rsrvdd);
  2597. fSetSelColor();
  2598. if (!FUNC_FLAG) {
  2599. grd_excu.row = EXCU_SEL_ROW;
  2600. var excuroomcd = model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd")
  2601. fGetRsrvCtrlList(grd_excu, grd_excu.row, excuroomcd, rsrvdd);
  2602. } else {
  2603. grd_fcex.row = FUNC_SEL_ROW;
  2604. }
  2605. fGetRoomRsrvList();
  2606. }
  2607. ]]>
  2608. </script>
  2609. </multilinegrid>
  2610. <caption id="caption7" class="tit_2" style="left:335px; top:60px; width:105px; height:13px; color:#003366; ">진료 예약 내역</caption>
  2611. <caption id="caption8" class="tit_2" style="left:735px; top:60px; width:110px; height:13px; ">당일 검사 내역</caption>
  2612. <caption id="caption14" class="tit_2" style="left:1075px; top:200px; width:59px; height:13px; ">검사실</caption>
  2613. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:15px; width:275px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  2614. <caption id="caption17" class="search_name" style="left:5px; top:24px; width:91px; height:17px; ">등록번호 :</caption>
  2615. <line id="line13" class="line_4" style="x1:200px; y1:23px; x2:200px; y2:45px; "/>
  2616. <button id="btn_search" class="btn1_letter2" navindex="3" style="left:210px; top:22px; width:56px; height:22px; ">
  2617. <caption>조회</caption>
  2618. <script type="javascript" ev:event="DOMActivate">
  2619. <![CDATA[
  2620. if (!checkOpener()) {
  2621. delPatientInfos();
  2622. }
  2623. fSetPtCmtExt(true);
  2624. // 검사실 전체 체크 항목 해제
  2625. model.setValue("/root/send/data/totflag", "");
  2626. chk_totflag.refresh();
  2627. grd_srchroom.attribute("height") = "110px";
  2628. btn_roomex.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  2629. if (!FUNC_FLAG) { // 통합
  2630. if (ipt_pid.value == "" ) {
  2631. messageBox("환자번호를 ", "C001");
  2632. return;
  2633. }
  2634. model.copyNode("/root/temp/exculist", "/root/main/fcexlist");
  2635. fGetExcuList(getCurrentDate());
  2636. model.removenode("/root/main/fcexlist");
  2637. model.makeNode("/root/main/fcexlist");
  2638. model.copyNode("/root/main/fcexlist", "/root/temp/exculist");
  2639. model.removenode("/root/temp/exculist");
  2640. model.makeNode("/root/temp/exculist");
  2641. grd_fcex.refresh();
  2642. } else { // 과내
  2643. var fromdd = model.getValue("/root/send/data/fromdd");
  2644. var todd = model.getValue("/root/send/data/todd");
  2645. var pid = model.getValue("/root/send/data/pid");
  2646. var diff = getDateInterval(fromdd, todd, "dd") + 1;
  2647. if (model.getValue("/root/send/data/pid") == "" && diff > 7) {
  2648. messageBox("처방 조회 기간을 7일 이하로 수정하거나\n등록번호 입력 후 조회하십시오.", "E999");
  2649. return;
  2650. }
  2651. model.copyNode("/root/temp/exculist", "/root/main/exculist");
  2652. fGetFuncExcuList(getCurrentDate());
  2653. model.removenode("/root/main/exculist");
  2654. model.makeNode("/root/main/exculist");
  2655. model.copyNode("/root/main/exculist", "/root/temp/exculist");
  2656. model.removenode("/root/temp/exculist");
  2657. model.makeNode("/root/temp/exculist");
  2658. grd_excu.refresh();
  2659. }
  2660. if (model.getValue("/root/send/data/pid") != ""){
  2661. var child = getOpenWindow("SMMMO02500");
  2662. if (child != null) {
  2663. child.model.makeValue("/root/main/patinfolist/pid", model.getValue("/root/send/data/pid"));
  2664. setParameter("SMMMO02500_cond", model.getValue("/root/send/data/pid"));
  2665. child.javascript.fReqGetPatComnInfo("/root/send/reqdata", model.getValue("/root/send/data/pid"));
  2666. child.button1.selected = true;
  2667. child.model.toggle("case1");
  2668. child.model.copyNode("/root/main/patinfolist", "/root/main/srchinfo/patinfolist");
  2669. child.model.removeNodeset("/root/main/bfprcp/prcplist");
  2670. child.model.removeNodeset("/root/main/bfprcpday/bfprcpday");
  2671. child.grd_prcpdd.visible = false;
  2672. child.grd_bfprcplist.attribute("left") = 2;
  2673. child.grd_bfprcplist.attribute("width")= 1190;
  2674. child.model.refresh();
  2675. }
  2676. child = getOpenWindow("SMAEA00300");
  2677. if (child != null) {
  2678. child.model.makeValue("/root/send/srchpid", model.getValue("/root/send/data/pid"));
  2679. child.btn_sea.dispatch("DOMActivate");
  2680. child.model.refresh();
  2681. }
  2682. child = getOpenWindow("SMAEA04400");
  2683. if (child != null) {
  2684. child.model.makeValue("/root/send/pid", model.getValue("/root/send/data/pid"));
  2685. child.btn_sea.dispatch("DOMActivate");
  2686. child.model.refresh();
  2687. }
  2688. }
  2689. ]]>
  2690. </script>
  2691. </button>
  2692. <input id="ipt_pid" ref="/root/send/data/pid" class="input_search" navindex="1" style="left:98px; top:23px; width:70px; height:19px; font-weight:bold; ">
  2693. <script type="javascript" ev:event="onkeyup">
  2694. <![CDATA[
  2695. if (event.keyCode == "13") {
  2696. inputEnterKey("btn_search", "DOMActivate");
  2697. }
  2698. ]]>
  2699. </script>
  2700. </input>
  2701. <button id="btn_pid" class="icon_search" style="left:175px; top:24px; width:16px; height:16px; ">
  2702. <caption/>
  2703. <script type="javascript" ev:event="DOMActivate">
  2704. <![CDATA[
  2705. model.makeNode("/root/main/patinfo/patinfolist");
  2706. modal("SPPMC02500", "", "200", "200");
  2707. if (model.getValue("/root/main/popupendflag") != "cancel") {
  2708. model.setValue("/root/send/data/pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  2709. btn_search.dispatch("DOMActivate");
  2710. } else {
  2711. model.removenode("/root/main/patinfo");
  2712. }
  2713. ]]>
  2714. </script>
  2715. </button>
  2716. <datagrid id="grd_ord" nodeset="/root/main/ordlist/ordinfo" backcoloralternate="transparent" caption="진료일시^진료과^진료과^진료의^진료의^예약구분^예약구분^수납" colsep="^" colwidth="110, 0, 90, 0, 50, 0, 80, 55" extendlastcol="scroll" focuscolor="transparent" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="label" style="left:335px; top:80px; width:395px; height:110px; ">
  2717. <col ref="orddt" format="yyyy-mm-dd hh:mm" style="text-align:center; "/>
  2718. <col ref="orddeptcd"/>
  2719. <col ref="depthngnm" style="text-align:center; "/>
  2720. <col ref="orddrid"/>
  2721. <col ref="orddrnm" style="text-align:center; "/>
  2722. <col ref="rsrvflag"/>
  2723. <col ref="rsrvflagnm" style="text-align:center; "/>
  2724. <col disabled="true" ref="rcptflag" type="combo" style="text-align:center; ">
  2725. <choices>
  2726. <item>
  2727. <label>후불</label>
  2728. <value>V</value>
  2729. </item>
  2730. <item>
  2731. <label>접수</label>
  2732. <value>N</value>
  2733. </item>
  2734. <item>
  2735. <label>미수납</label>
  2736. <value>Y</value>
  2737. </item>
  2738. </choices>
  2739. </col>
  2740. </datagrid>
  2741. <datagrid id="grd_tdrv" nodeset="/root/main/tdrvlist/tdrvinfo" backcoloralternate="transparent" caption="시각^검사실^검사실^검사코드^검사명^예약구분^상태^예약자^예약자" colsep="^" colwidth="40, 0, 100, 0, 175, 0, 80, 0, 50" ellipsis="true" extendlastcol="scroll" focuscolor="transparent" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="label" style="left:735px; top:80px; width:460px; height:110px; ">
  2742. <col ref="rsrvtm" format="hh:nn" style="text-align:center; "/>
  2743. <col ref="excuroomcd"/>
  2744. <col ref="excuroomnm" style="text-align:center; "/>
  2745. <col ref="prcpcd"/>
  2746. <col ref="prcpnm"/>
  2747. <col ref="rsrvflag"/>
  2748. <col ref="prcpstatcd" style="text-align:center; "/>
  2749. <col ref="rsrvrid"/>
  2750. <col ref="rsrvrnm" style="text-align:center; "/>
  2751. </datagrid>
  2752. <datagrid id="grd_room" nodeset="/root/main/excuroomlist/excuroominfo" allowselection="false" autoresize="true" backcoloralternate="transparent" caption="검사실코드^검사실" colsep="^" colwidth="0,115" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="30" rowsep="|" selectionmode="byrow" style="left:1075px; top:220px; width:120px; height:165px; color:darkslategray; text-align:center; ">
  2753. <col ref="excuroomcd" visibility="hidden"/>
  2754. <col ref="excuroomnm" style="font-weight:bold; "/>
  2755. <script type="javascript" ev:event="onclick">
  2756. <![CDATA[
  2757. if (!grd_room.isCell(event.target) || grd_room.row < grd_room.fixedRows) {
  2758. return;
  2759. }
  2760. fSetExcuRoom(true);
  2761. ]]>
  2762. </script>
  2763. </datagrid>
  2764. <select id="chk_totflag" ref="/root/send/data/totflag" overflow="visible" appearance="full" style="left:1074px; top:389px; width:85px; height:15px; border-style:none; ">
  2765. <choices>
  2766. <item>
  2767. <label>검사실 전체</label>
  2768. <value>Y</value>
  2769. </item>
  2770. </choices>
  2771. <script type="javascript" ev:event="xforms-value-changed">
  2772. <![CDATA[
  2773. fSetExcuRoom(false);
  2774. ]]>
  2775. </script>
  2776. </select>
  2777. <group id="group2" scroll="auto" style="left:260px; top:437px; width:330px; height:55px; ">
  2778. <button id="btn_m01" style="left:4px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2779. <caption>1</caption>
  2780. <script type="javascript" ev:event="DOMActivate">
  2781. <![CDATA[
  2782. if (model.getValue("/root/hidden/calendar/month") !== "01") {
  2783. fSetMonth("01");
  2784. }
  2785. ]]>
  2786. </script>
  2787. </button>
  2788. <button id="btn_m02" style="left:31px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2789. <caption>2</caption>
  2790. <script type="javascript" ev:event="DOMActivate">
  2791. <![CDATA[
  2792. if (model.getValue("/root/hidden/calendar/month") !== "02") {
  2793. fSetMonth("02");
  2794. }
  2795. ]]>
  2796. </script>
  2797. </button>
  2798. <button id="btn_m03" style="left:58px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2799. <caption>3</caption>
  2800. <script type="javascript" ev:event="DOMActivate">
  2801. <![CDATA[
  2802. if (model.getValue("/root/hidden/calendar/month") !== "03") {
  2803. fSetMonth("03");
  2804. }
  2805. ]]>
  2806. </script>
  2807. </button>
  2808. <button id="btn_m04" style="left:85px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2809. <caption>4</caption>
  2810. <script type="javascript" ev:event="DOMActivate">
  2811. <![CDATA[
  2812. if (model.getValue("/root/hidden/calendar/month") !== "04") {
  2813. fSetMonth("04");
  2814. }
  2815. ]]>
  2816. </script>
  2817. </button>
  2818. <button id="btn_m05" style="left:112px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2819. <caption>5</caption>
  2820. <script type="javascript" ev:event="DOMActivate">
  2821. <![CDATA[
  2822. if (model.getValue("/root/hidden/calendar/month") !== "05") {
  2823. fSetMonth("05");
  2824. }
  2825. ]]>
  2826. </script>
  2827. </button>
  2828. <button id="btn_m06" style="left:139px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2829. <caption>6</caption>
  2830. <script type="javascript" ev:event="DOMActivate">
  2831. <![CDATA[
  2832. if (model.getValue("/root/hidden/calendar/month") !== "06") {
  2833. fSetMonth("06");
  2834. }
  2835. ]]>
  2836. </script>
  2837. </button>
  2838. <button id="btn_m07" style="left:166px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2839. <caption>7</caption>
  2840. <script type="javascript" ev:event="DOMActivate">
  2841. <![CDATA[
  2842. if (model.getValue("/root/hidden/calendar/month") !== "07") {
  2843. fSetMonth("07");
  2844. }
  2845. ]]>
  2846. </script>
  2847. </button>
  2848. <button id="btn_m08" style="left:193px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2849. <caption>8</caption>
  2850. <script type="javascript" ev:event="DOMActivate">
  2851. <![CDATA[
  2852. if (model.getValue("/root/hidden/calendar/month") !== "08") {
  2853. fSetMonth("08");
  2854. }
  2855. ]]>
  2856. </script>
  2857. </button>
  2858. <button id="btn_m09" style="left:220px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2859. <caption>9</caption>
  2860. <script type="javascript" ev:event="DOMActivate">
  2861. <![CDATA[
  2862. if (model.getValue("/root/hidden/calendar/month") !== "09") {
  2863. fSetMonth("09");
  2864. }
  2865. ]]>
  2866. </script>
  2867. </button>
  2868. <button id="btn_m10" style="left:247px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2869. <caption>10</caption>
  2870. <script type="javascript" ev:event="DOMActivate">
  2871. <![CDATA[
  2872. if (model.getValue("/root/hidden/calendar/month") !== "10") {
  2873. fSetMonth("10");
  2874. }
  2875. ]]>
  2876. </script>
  2877. </button>
  2878. <button id="btn_m11" style="left:274px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2879. <caption>11</caption>
  2880. <script type="javascript" ev:event="DOMActivate">
  2881. <![CDATA[
  2882. if (model.getValue("/root/hidden/calendar/month") !== "11") {
  2883. fSetMonth("11");
  2884. }
  2885. ]]>
  2886. </script>
  2887. </button>
  2888. <button id="btn_m12" style="left:301px; top:28px; width:25px; height:25px; font-weight:bold; text-align:center; background-color:#f0f0f0; border-color:gray; border-width:1px; border-style:solid; focus-rect:hidden; ">
  2889. <caption>12</caption>
  2890. <script type="javascript" ev:event="DOMActivate">
  2891. <![CDATA[
  2892. if (model.getValue("/root/hidden/calendar/month") !== "12") {
  2893. fSetMonth("12");
  2894. }
  2895. ]]>
  2896. </script>
  2897. </button>
  2898. <output id="opt_month" ref="/root/hidden/calendar/month" style="left:204px; top:5px; width:20px; height:19px; font-size:12pt; font-weight:bold; text-align:right; "/>
  2899. <caption id="caption24" style="left:154px; top:6px; width:15px; height:19px; ">년</caption>
  2900. <caption id="caption25" style="left:225px; top:6px; width:20px; height:19px; ">월</caption>
  2901. <button id="button31" style="left:175px; top:5px; width:20px; height:20px; font-weight:bold; text-align:center; background-color:#f0f0ff; border-color:gray; border-width:1px; border-style:solid; ">
  2902. <caption>
  2903. <![CDATA[>]]>
  2904. </caption>
  2905. <script type="javascript" ev:event="DOMActivate">
  2906. <![CDATA[
  2907. var date = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month") + "01";
  2908. var dDate = date.toDate().getAddDate(1, "Y");
  2909. fSetCalendar(dDate);
  2910. ]]>
  2911. </script>
  2912. </button>
  2913. <output id="opt_year" ref="/root/hidden/calendar/year" style="left:111px; top:5px; width:40px; height:19px; font-size:12pt; font-weight:bold; text-align:right; "/>
  2914. <select1 id="cmb_statflag" ref="/root/send/data/statflag" appearance="minimal" style="left:0px; top:5px; width:65px; height:19px; ">
  2915. <choices>
  2916. <item>
  2917. <label>건수별</label>
  2918. <value>C</value>
  2919. </item>
  2920. <item>
  2921. <label>시간별</label>
  2922. <value>T</value>
  2923. </item>
  2924. </choices>
  2925. <script type="javascript" ev:event="xforms-value-changed">
  2926. <![CDATA[
  2927. if (grd_room.row < grd_room.fixedRows) {
  2928. return;
  2929. }
  2930. fSetExcuRoom(false);
  2931. ]]>
  2932. </script>
  2933. </select1>
  2934. <button id="button36" style="left:80px; top:5px; width:20px; height:20px; font-weight:bold; text-align:center; background-color:#f0f0ff; border-color:gray; border-width:1px; border-style:solid; ">
  2935. <caption>
  2936. <![CDATA[<]]>
  2937. </caption>
  2938. <script type="javascript" ev:event="DOMActivate">
  2939. <![CDATA[
  2940. var date = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month") + "01";
  2941. var dDate = date.toDate().getAddDate(-1, "Y");
  2942. fSetCalendar(dDate);
  2943. ]]>
  2944. </script>
  2945. </button>
  2946. </group>
  2947. <button id="btn_legend_cal" class="btn2_letter2" style="left:544px; top:442px; width:42px; height:19px; ">
  2948. <caption>범례</caption>
  2949. <script type="javascript" ev:event="DOMActivate">
  2950. <![CDATA[
  2951. grp_legend_cal.visible = !grp_legend_cal.visible;
  2952. ]]>
  2953. </script>
  2954. </button>
  2955. <group id="grp_legend_cal" visibility="hidden" style="left:443px; top:468px; width:140px; height:140px; border-color:darkgray; border-style:solid; ">
  2956. <caption id="caption52" style="left:15px; top:15px; width:20px; height:20px; text-align:center; background-color:#95d4fb; border-color:#999999; border-style:solid; "/>
  2957. <caption id="caption53" style="left:15px; top:40px; width:20px; height:20px; text-align:center; background-color:#daa7d9; border-color:#999999; border-style:solid; "/>
  2958. <caption id="caption54" style="left:40px; top:15px; width:64px; height:20px; ">오늘</caption>
  2959. <caption id="caption55" style="left:40px; top:40px; width:59px; height:20px; ">선택일</caption>
  2960. <caption id="caption56" style="left:15px; top:65px; width:20px; height:20px; text-align:center; background-color:#c4e693; border-color:#999999; border-width:1; border-style:solid; "/>
  2961. <caption id="caption57" style="left:40px; top:65px; width:90px; height:20px; ">예약 가능일</caption>
  2962. <caption id="caption58" style="left:15px; top:90px; width:20px; height:20px; font-weight:bold; text-align:center; border-color:#999999; border-style:solid; ">가</caption>
  2963. <caption id="caption59" style="left:40px; top:90px; width:90px; height:20px; ">빈 시각 있음</caption>
  2964. <caption id="caption13" style="left:40px; top:110px; width:90px; height:20px; ">( 가용 초과 시 )</caption>
  2965. </group>
  2966. <button id="btn_excu" class="btn_sw" group="tab" selected="true" style="left:0px; top:193px; width:40px; height:22px; ">
  2967. <caption>통합</caption>
  2968. <script type="javascript" ev:event="DOMActivate">
  2969. <![CDATA[
  2970. FUNC_FLAG = false;
  2971. FUNC_SEL_ROW = 0;
  2972. model.setValue("/root/send/data/fromdd", getCurrentDate().toDate().getAddDate(-1, "Y").getDateFormat("YYYYMMDD"));
  2973. ipt_fromdd.refresh();
  2974. model.toggle("excu");
  2975. btn_excu.selected = true;
  2976. btn_func.selected = false;
  2977. btn_anot.selected = false;
  2978. model.toggle("ptcmt");
  2979. model.toggle("ctrl");
  2980. ]]>
  2981. </script>
  2982. </button>
  2983. <button id="btn_func" class="btn_sw" group="tab" selected="false" style="left:41px; top:193px; width:40px; height:22px; ">
  2984. <caption>과내</caption>
  2985. <script type="javascript" ev:event="DOMActivate">
  2986. <![CDATA[
  2987. FUNC_FLAG = true;
  2988. EXCU_SEL_ROW = 0;
  2989. //model.setValue("/root/send/data/fromdd", getCurrentDate().toDate().getAddDate(-7, "D").getDateFormat("YYYYMMDD"));
  2990. model.setValue("/root/send/data/fromdd", getCurrentDate());
  2991. ipt_fromdd.refresh();
  2992. model.toggle("func");
  2993. btn_excu.selected = false;
  2994. btn_func.selected = true;
  2995. btn_anot.selected = false;
  2996. model.toggle("srchroom");
  2997. model.toggle("memo");
  2998. ]]>
  2999. </script>
  3000. </button>
  3001. <button id="btn_anot" class="btn_sw" group="tab" selected="false" style="left:82px; top:193px; width:50px; height:22px; ">
  3002. <caption>타검사</caption>
  3003. <script type="javascript" ev:event="DOMActivate">
  3004. <![CDATA[
  3005. model.toggle("anot");
  3006. btn_excu.selected = false;
  3007. btn_func.selected = false;
  3008. btn_anot.selected = true;
  3009. ]]>
  3010. </script>
  3011. </button>
  3012. <button id="btn_srchprcp" class="btn2_letter4" style="left:718px; top:195px; width:64px; height:19px; ">
  3013. <caption>처방조회</caption>
  3014. <script type="javascript" ev:event="DOMActivate">
  3015. <![CDATA[
  3016. if (model.getValue("/root/send/data/pid") == "") {
  3017. messageBox("조회된 환자 정보가 없습니다.", "E999");
  3018. return;
  3019. }
  3020. var child = getOpenWindow("SMMMO02500");
  3021. if (child != null ) {
  3022. child.model.setValue("/root/main/patinfolist/pid", model.getValue("/root/send/data/pid"));
  3023. setParameter("SMMMO02500_cond", model.getValue("/root/send/data/pid"));
  3024. child.javascript.fReqGetPatComnInfo("/root/send/reqdata", model.getValue("/root/send/data/pid"));
  3025. child.button1.selected = true;
  3026. child.model.toggle("case1");
  3027. child.model.copyNode("/root/main/patinfolist", "/root/main/srchinfo/patinfolist");
  3028. child.model.removeNodeset("/root/main/bfprcp/prcplist");
  3029. child.model.removeNodeset("/root/main/bfprcpday/bfprcpday");
  3030. child.grd_prcpdd.visible = false;
  3031. child.grd_bfprcplist.attribute("left") = 2;
  3032. child.grd_bfprcplist.attribute("width") = 1190;
  3033. child.model.refresh();
  3034. } else {
  3035. setParameter("SMMMO02500_cond", model.getValue("/root/send/data/pid"));
  3036. open("SMMMO02500", "", "", "", "SMMMO02500", "/root/send/data/pid");
  3037. }
  3038. ]]>
  3039. </script>
  3040. </button>
  3041. <line id="line3" class="line_1" style="x1:735px; y1:75px; x2:1195px; y2:75px; "/>
  3042. <line id="line4" class="line_1" style="x1:335px; y1:75px; x2:730px; y2:75px; "/>
  3043. <line id="line2" class="line_1" style="x1:1075px; y1:215px; x2:1195px; y2:215px; "/>
  3044. <button id="button22" class="btn2_letter2" style="left:1153px; top:195px; width:42px; height:19px; ">
  3045. <caption>휴검</caption>
  3046. <script type="javascript" ev:event="DOMActivate">
  3047. <![CDATA[
  3048. var suppdeptcd = "";
  3049. var excuroomcd = "";
  3050. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3051. if (cnt > 0 && model.getValue("/root/main/exculist/excuinfo/calcscorcd") != "") {
  3052. suppdeptcd = model.getValue("/root/main/exculist/excuinfo[" + grd_excu.row + "]/suppdeptcd");
  3053. excuroomcd = model.getValue("/root/main/exculist/excuinfo[" + grd_excu.row + "]/excuroomcd");
  3054. }
  3055. if (instance1.selectNodes("/root/main/excuroomlist/excuroominfo").length > 0) {
  3056. excuroomcd = model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd");
  3057. }
  3058. model.makeValue("/root/send1/suppdeptcd", suppdeptcd);
  3059. model.makeValue("/root/send1/excuroomcd", excuroomcd);
  3060. model.makeValue("/root/send1/instance1", suppdeptcd);
  3061. open("SMAEA00700", "", "", "", "SMAEA00700", "/root/send1","/root/send1");
  3062. ]]>
  3063. </script>
  3064. </button>
  3065. <button id="btn_rsrv" class="btn4_letter2" style="left:1015px; top:412px; width:56px; height:22px; ">
  3066. <caption>예약</caption>
  3067. <script type="javascript" ev:event="DOMActivate">
  3068. <![CDATA[
  3069. if (!FUNC_FLAG) {
  3070. fCheckRsrv();
  3071. } else {
  3072. fCheckFuncRsrv();
  3073. }
  3074. ]]>
  3075. </script>
  3076. </button>
  3077. <button id="btn_cncl" class="btn4_letter2" style="left:1071px; top:412px; width:56px; height:22px; ">
  3078. <caption>취소</caption>
  3079. <script type="javascript" ev:event="DOMActivate">
  3080. <![CDATA[
  3081. if (!FUNC_FLAG) {
  3082. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3083. if (cnt < 1 || model.getValue("/root/main/exculist/excuinfo/calcscorcd") == "") {
  3084. messageBox("조회된 검사 내역이 없습니다.", "E999");
  3085. return;
  3086. }
  3087. var chkcnt = 0;
  3088. for (var i = 1; i <= cnt; i++) {
  3089. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  3090. if (model.getValue(path + "chk") != "Y") {
  3091. continue;
  3092. }
  3093. chkcnt++;
  3094. }
  3095. if (chkcnt < 1) {
  3096. messageBox("선택된 검사 내역이 없습니다.", "E999");
  3097. return;
  3098. }
  3099. if (messageBox("선택된 [ " + chkcnt + " ] 건의 예약을", "Q007") == 6) {
  3100. fExecRsrv("cncl");
  3101. // 검사예약 취소시 문자 전송(20160728)
  3102. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3103. for (var i = 1; i <= cnt; i++) {
  3104. if (model.getValue("/root/main/exculist/excuinfo[" + i + "]/chk") != "Y") {
  3105. continue;
  3106. } else {
  3107. var pid = ipt_pid.value;
  3108. var hngnm = grd_pt.valueMatrix(1, grd_pt.colRef("hngnm"));
  3109. var rsrvdt = model.getValue("/root/main/exculist/excuinfo[" + i + "]/rsrvdt");
  3110. var rsrvdd = rsrvdt.substr(0, 8);
  3111. var rsrvtm = rsrvdt.substr(8, 4);
  3112. var mpphontel = grd_pt.valueMatrix(1, grd_pt.colRef("mpphontel"));
  3113. var orddeptcd = model.getValue("/root/main/exculist/excuinfo[" + i + "]/orddeptcd");
  3114. var orddepthngnm = model.getValue("/root/main/exculist/excuinfo[" + i + "]/orddepthngnm");
  3115. var hosnm = "";
  3116. if (getUserInfo("dutplceinstcd") == "031") {
  3117. hosnm = "경북대병원";
  3118. } else if (getUserInfo("dutplceinstcd") == "032") {
  3119. hosnm = "칠곡경북대병원";
  3120. } else if (getUserInfo("dutplceinstcd") == "033") {
  3121. hosnm = "경북대치과병원";
  3122. }
  3123. var msgcnts = hosnm + " " + hngnm + "(" + pid + ")" + "님 " + rsrvdd.substr(4, 2)+"/"+rsrvdd.substr(6, 2)+" " + rsrvtm.substr(0, 2)+":" + rsrvtm.substr(2, 2)+" " + "검사예약이 취소되었습니다.";
  3124. /*
  3125. 01 : 외래예약취소시 문자발송여부
  3126. 02 : 외래예약 변경시 취소시 문자발송여부
  3127. 03 : 통합예약검사 예약 취소시 문자발송여부
  3128. 04 : 통합예약검사 예약 변경시 문자발송여부
  3129. */
  3130. var sms_send_yn = model.getValue("/root/init/init_pam/P6588list/P6588[cdid='03']/cdnm");
  3131. if (sms_send_yn == "Y") {
  3132. fSmsSend(msgcnts, pid, hngnm, mpphontel, orddeptcd, "03");
  3133. }
  3134. }
  3135. }
  3136. //검사예약 취소시 문자 전송(20160728)
  3137. fGetExcuList(model.getValue("/root/send/data/srchdd"));
  3138. model.setFocus("ipt_pid");
  3139. }
  3140. } else {
  3141. var cnt = instance1.selectNodes("/root/main/fcexlist/fcexinfo").length;
  3142. if (cnt < 1 || model.getValue("/root/main/fcexlist/fcexinfo/calcscorcd") == "") {
  3143. messageBox("조회된 검사 내역이 없습니다.", "E999");
  3144. return;
  3145. }
  3146. var chkcnt = 0;
  3147. for (var i = 1; i <= cnt; i++) {
  3148. var path = "/root/main/fcexlist/fcexinfo[" + i + "]/";
  3149. if (model.getValue(path + "chk") != "Y") {
  3150. continue;
  3151. }
  3152. chkcnt++;
  3153. }
  3154. if (chkcnt < 1) {
  3155. messageBox("선택된 검사 내역이 없습니다.", "E999");
  3156. return;
  3157. }
  3158. if (messageBox("선택된 [ " + chkcnt + " ] 건의 예약을", "Q007") == 6) {
  3159. fExecFuncRsrv("cncl");
  3160. fGetFuncExcuList(model.getValue("/root/send/data/srchdd"));
  3161. model.setFocus("ipt_pid");
  3162. }
  3163. }
  3164. ]]>
  3165. </script>
  3166. </button>
  3167. <button id="btn_infoprt" class="btn2_letter7" style="left:946px; top:195px; width:97px; height:19px; ">
  3168. <caption>검사안내문출력</caption>
  3169. <script type="javascript" ev:event="DOMActivate">
  3170. <![CDATA[
  3171. if (!FUNC_FLAG) {
  3172. /*
  3173. if (EXCU_SEL_ROW < 1) {
  3174. messageBox("검사 내역이 선택되지 않았습니다.", "E999");
  3175. return;
  3176. }
  3177. var path = "/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/";
  3178. if (model.getValue(path + "rsrvflagyn") == "미예약") {
  3179. messageBox("예약되지 않은 검사입니다. 예약 후 출력 가능합니다.", "E999");
  3180. return;
  3181. }
  3182. if (model.getValue(path + "tmpldata") == "") {
  3183. messageBox("등록된 예약 예문이 없습니다.", "E999");
  3184. return;
  3185. }
  3186. */
  3187. fInfoPrt();
  3188. } else {
  3189. fFuncInfoPrt();
  3190. }
  3191. ]]>
  3192. </script>
  3193. <hint>
  3194. <![CDATA[검사안내문이 있으면 처방명이 파란색 글씨로 표시됩니다.]]>
  3195. </hint>
  3196. </button>
  3197. <caption id="caption15" class="tit_2" style="left:595px; top:420px; width:75px; height:13px; ">예약 현황</caption>
  3198. <shape id="rectangle1" appearance="rectangle" style="left:849px; top:412px; width:165px; height:22px; background-color:#ececec; border-color:#999999; border-style:solid; "/>
  3199. <caption id="cap_tmsum" ref="/root/temp/tmsum" style="left:854px; top:414px; width:40px; height:18px; font-weight:bold; color:#b400b4; text-align:right; "/>
  3200. <caption id="caption5" style="left:897px; top:414px; width:30px; height:18px; ">소요</caption>
  3201. <caption id="cap_endtm" ref="/root/temp/endtm" style="left:934px; top:414px; width:40px; height:18px; font-weight:bold; color:#ff0000; text-align:right; "/>
  3202. <caption id="caption6" style="left:977px; top:414px; width:30px; height:18px; ">완료</caption>
  3203. <button id="btn_rsrvprt" class="btn2_letter7" style="left:848px; top:195px; width:97px; height:19px; ">
  3204. <caption>예약일정표출력</caption>
  3205. <script type="javascript" ev:event="DOMActivate">
  3206. <![CDATA[
  3207. var pid = "";
  3208. if (!FUNC_FLAG) {
  3209. pid = model.getValue("/root/send/data/pid");
  3210. if (pid == "") {
  3211. messageBox("조회된 환자가 없습니다.", "E999");
  3212. return;
  3213. }
  3214. } else {
  3215. if (FUNC_SEL_ROW < 1) {
  3216. messageBox("선택된 내역이 없습니다.", "E999");
  3217. return;
  3218. }
  3219. pid = model.getValue("/root/main/fcexlist/fcexinfo[" + FUNC_SEL_ROW + "]/pid");
  3220. }
  3221. fRsrvPrt(pid);
  3222. ]]>
  3223. </script>
  3224. </button>
  3225. <datagrid id="grd_pt" nodeset="/root/main/ptinfo" backcoloralternate="transparent" caption="이름^나이^성별^주민번호^집전화^휴대전화^주소^중증종료^희귀종료^SMS^VIP^사생활^일련번호^요청자^요청자기타^보호대상^보호대상기타^보호내용^보호내용기타^비고^HIV" colsep="^" colwidth="60, 35, 35, 90, 85, 85, 199, 80, 80, 35, 40, 50, 0, 0, 0, 0, 0, 0, 0, 0, 35" ellipsis="true" focuscolor="transparent" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="label" style="left:285px; top:5px; width:910px; height:46px; border-left-width:1; border-top-width:0; border-right-width:0; border-bottom-width:0; border-style:solid; ">
  3226. <col ref="hngnm" style="font-weight:bold; text-align:center; "/>
  3227. <col ref="age" style="text-align:center; "/>
  3228. <col disabled="true" ref="sex" type="combo" style="text-align:center; ">
  3229. <choices>
  3230. <item>
  3231. <label>남</label>
  3232. <value>M</value>
  3233. </item>
  3234. <item>
  3235. <label>여</label>
  3236. <value>F</value>
  3237. </item>
  3238. </choices>
  3239. </col>
  3240. <col ref="rrgstno" style="text-align:center; "/>
  3241. <col ref="hometel" style="text-align:center; "/>
  3242. <col ref="mpphontel" style="text-align:center; "/>
  3243. <col ref="addr" style="text-align:center; "/>
  3244. <col ref="serdiagtodd" format="yyyy-mm-dd" style="font-weight:bold; color:#ff0000; text-align:center; "/>
  3245. <col ref="rareobsttodd" format="yyyy-mm-dd" style="font-weight:bold; color:#ff0000; text-align:center; "/>
  3246. <col ref="smsaprvyn" style="text-align:center; "/>
  3247. <col disabled="true" ref="vip" type="combo" style="font-weight:bold; text-align:center; ">
  3248. <choices>
  3249. <item>
  3250. <label>감면</label>
  3251. <value>F</value>
  3252. </item>
  3253. <item>
  3254. <label>추천</label>
  3255. <value>R</value>
  3256. </item>
  3257. <item>
  3258. <label>후원</label>
  3259. <value>S</value>
  3260. </item>
  3261. <item>
  3262. <label>후불</label>
  3263. <value>V</value>
  3264. </item>
  3265. </choices>
  3266. </col>
  3267. <col disabled="true" ref="privacy" type="combo" style="font-weight:bold; color:#ffffa0; text-align:center; cursor:hand; ">
  3268. <choices>
  3269. <item>
  3270. <label>보호</label>
  3271. <value>Y</value>
  3272. </item>
  3273. </choices>
  3274. </col>
  3275. <col ref="no" visibility="hidden"/>
  3276. <col ref="request" visibility="hidden"/>
  3277. <col ref="requestetc" visibility="hidden"/>
  3278. <col ref="target" visibility="hidden"/>
  3279. <col ref="targetetc" visibility="hidden"/>
  3280. <col ref="type" visibility="hidden"/>
  3281. <col ref="typeetc" visibility="hidden"/>
  3282. <col ref="rmk" visibility="hidden"/>
  3283. <col disabled="true" ref="hivflag" type="combo" style="background-position:center; ">
  3284. <choices>
  3285. <item>
  3286. <label/>
  3287. <value>Y</value>
  3288. </item>
  3289. </choices>
  3290. </col>
  3291. <script type="javascript" ev:event="onclick">
  3292. <![CDATA[
  3293. if (!grd_pt.isCell(event.target) || grd_pt.row < grd_pt.fixedRows) {
  3294. return;
  3295. }
  3296. if (grd_pt.col == grd_pt.colRef("privacy") && model.getValue("/root/main/ptinfo/no") != "") {
  3297. fShowPrivacyMsg();
  3298. }
  3299. ]]>
  3300. </script>
  3301. </datagrid>
  3302. <caption id="caption1" class="tit_2" style="left:260px; top:420px; width:60px; height:13px; ">예약일</caption>
  3303. <line id="line7" class="line_1" style="x1:260px; y1:435px; x2:590px; y2:435px; "/>
  3304. <object id="rtfviewer" clsid="{a4bf7e18-5f67-4868-a726-eed421632374}" visibility="hidden" style="left:1175px; top:170px; width:15px; height:15px; "/>
  3305. <line id="line1" class="line_1" style="x1:0px; y1:435px; x2:255px; y2:435px; "/>
  3306. <caption id="caption11" class="tit_2" style="left:0px; top:420px; width:105px; height:14px; ">처방 전달 사항</caption>
  3307. <button id="btnHope" class="btn2_letter7" style="left:158px; top:415px; width:97px; height:19px; ">
  3308. <caption>처방희망일지정</caption>
  3309. <script type="javascript" ev:event="DOMActivate">
  3310. <![CDATA[
  3311. var pid = model.getValue("/root/send/data/pid");
  3312. if (pid == "") {
  3313. messageBox("조회된 환자가 없습니다.", "E999");
  3314. return;
  3315. }
  3316. setParameter("SPPEA00103_pid", model.getValue("/root/send/data/pid"));
  3317. modal("SPPEA00103");
  3318. ]]>
  3319. </script>
  3320. </button>
  3321. <textarea id="tar_prcpcmt" ref="/root/hidden/prcpcmt" scroll="autovscroll" editable="false" maxbyte="4000" style="left:0px; top:440px; width:255px; height:65px; font-weight:bold; text-align:center; vertical-align:middle; padding:3; "/>
  3322. <caption id="caption21" style="left:497px; top:55px; width:35px; height:19px; text-align:center; background-color:#ffffa0; border-color:#999999; border-style:solid; ">후불</caption>
  3323. <caption id="caption22" style="left:461px; top:55px; width:35px; height:19px; text-align:center; border-color:#999999; border-style:solid; ">접수</caption>
  3324. <caption id="caption23" style="left:533px; top:55px; width:45px; height:19px; text-align:center; background-color:#ffb450; border-color:#999999; border-style:solid; ">미수납</caption>
  3325. <button id="btn_weekrsrv" class="btn2_letter6" style="left:1109px; top:55px; width:86px; height:19px; ">
  3326. <caption>주간예약조회</caption>
  3327. <script type="javascript" ev:event="DOMActivate">
  3328. <![CDATA[
  3329. open("SMAEA00910", "", "", "", "SMAEA00910", "", "");
  3330. ]]>
  3331. </script>
  3332. </button>
  3333. <button id="btn_rsrvchng" class="btn2_letter6" style="left:1022px; top:55px; width:86px; height:19px; ">
  3334. <caption>예약변경조회</caption>
  3335. <script type="javascript" ev:event="DOMActivate">
  3336. <![CDATA[
  3337. open("SMAEA00800", "", "", "", "SMAEA00800", "/root/send/data/pid", "/root/send/pid");
  3338. ]]>
  3339. </script>
  3340. </button>
  3341. <caption id="caption26" style="left:144px; top:198px; width:52px; height:15px; font-weight:bold; ">처방일 :</caption>
  3342. <input id="ipt_fromdd" ref="/root/send/data/fromdd" class="input_search" inputtype="date" style="left:200px; top:195px; width:85px; height:19px; padding-top:2; ">
  3343. <script type="javascript" ev:event="xforms-value-changed">
  3344. <![CDATA[
  3345. if (model.getValue("/root/send/data/fromdd") < "20110101") {
  3346. messageBox("처방 조회 기간은 2011년 1월 1일 이전으로 설정할 수 없습니다.", "E999");
  3347. model.setValue("/root/send/data/fromdd", "20110101");
  3348. ipt_fromdd.refresh();
  3349. }
  3350. ]]>
  3351. </script>
  3352. </input>
  3353. <caption id="caption16" style="left:286px; top:198px; width:13px; height:15px; text-align:center; ">~</caption>
  3354. <input id="ipt_todd" ref="/root/send/data/todd" class="input_search" inputtype="date" style="left:299px; top:195px; width:85px; height:19px; padding-top:2; "/>
  3355. <group id="grp_creatine" visibility="hidden" style="left:395px; top:194px; width:115px; height:20px; background-color:#ffff00; border-color:#ff0000; border-style:solid; ">
  3356. <caption id="caption77" style="left:7px; top:2px; width:71px; height:15px; ">Creatinine :</caption>
  3357. <caption id="cap_creatine" ref="/root/main/ptinfo/creatine" style="left:80px; top:2px; width:30px; height:15px; font-weight:bold; color:#ff0000; ">0</caption>
  3358. </group>
  3359. <select1 id="cmb_roomgrp" ref="/root/hidden/roomgrp" appearance="minimal" itemcount="21" style="left:426px; top:415px; width:121px; height:19px; ">
  3360. <choices>
  3361. <itemset nodeset="/root/init/pseu/roomlist/roomgrp">
  3362. <label ref="basecdflagdesc"/>
  3363. <value ref="basecd"/>
  3364. </itemset>
  3365. </choices>
  3366. </select1>
  3367. <button id="btn_temprsrv" class="btn2_letter2" style="left:548px; top:415px; width:42px; height:19px; ">
  3368. <caption>임시</caption>
  3369. <script type="javascript" ev:event="DOMActivate">
  3370. <![CDATA[
  3371. setParameter("menuparam", "R");
  3372. setParameter("suppdeptcd", "2180000000"); // 임시 예약은 핵의학과로 고정
  3373. setParameter("excuroomgrp", model.getValue("/root/init/pseu/roomlist/roomgrp[basecd='" + model.getValue("/root/hidden/roomgrp") + "']/basecdcnts"));
  3374. modal("SPAEA02201", "", "200", "200", "popup", "", "");
  3375. ]]>
  3376. </script>
  3377. </button>
  3378. <button id="btn_legend_rmrv" class="btn2_letter2" style="left:806px; top:415px; width:42px; height:19px; ">
  3379. <caption>범례</caption>
  3380. <script type="javascript" ev:event="DOMActivate">
  3381. <![CDATA[
  3382. grp_legend_rmrv.visible = !grp_legend_rmrv.visible;
  3383. ]]>
  3384. </script>
  3385. </button>
  3386. <button id="btn_prcphist" class="btn2_letter4" style="left:892px; top:55px; width:64px; height:19px; ">
  3387. <caption>처방이력</caption>
  3388. <script type="javascript" ev:event="DOMActivate">
  3389. <![CDATA[
  3390. // 기본 핵의학과로 설정
  3391. var suppdeptcd = "2180000000";
  3392. /*
  3393. if (EXCU_SEL_ROW > 0) {
  3394. suppdeptcd = model.getValue("/root/main/exculist/excuinfo[" + EXCU_SEL_ROW + "]/suppdeptcd");
  3395. }
  3396. */
  3397. setParameter("SMPEA00100_suppdeptcd", suppdeptcd);
  3398. open("SMAEA00400", "1", "", "", "SMAEA00400", "/root/send/data/pid", "/root/send/pid");
  3399. ]]>
  3400. </script>
  3401. </button>
  3402. <button id="btn_addrsrv" class="btn2_letter4" style="left:783px; top:195px; width:64px; height:19px; ">
  3403. <caption>추가예약</caption>
  3404. <script type="javascript" ev:event="DOMActivate">
  3405. <![CDATA[
  3406. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3407. if (cnt < 1 || model.getValue("/root/main/exculist/excuinfo/calcscorcd") == "") {
  3408. messageBox("조회된 검사 내역이 없습니다.", "E999");
  3409. return;
  3410. }
  3411. if (EXCU_SEL_ROW < 1) {
  3412. messageBox("선택된 검사 내역이 없습니다.", "E999");
  3413. return;
  3414. }
  3415. fPseuRsrvInfo();
  3416. ]]>
  3417. </script>
  3418. </button>
  3419. <button id="btn_rsrvstat" class="btn2_letter4" style="left:957px; top:55px; width:64px; height:19px; ">
  3420. <caption>예약현황</caption>
  3421. <script type="javascript" ev:event="DOMActivate">
  3422. <![CDATA[
  3423. open("SMAEA00300", "", "", "", "SMAEA00300", "/root/send/data/pid", "/root/send/srchpid");
  3424. ]]>
  3425. </script>
  3426. </button>
  3427. <button id="btn_nhic" class="btn2_letter4" style="left:579px; top:55px; width:64px; height:19px; ">
  3428. <caption>자격조회</caption>
  3429. <script type="javascript" ev:event="DOMActivate">
  3430. <![CDATA[
  3431. if (model.getValue("/root/main/ptinfo/hngnm") == "") {
  3432. messageBox("조회된 환자가 없습니다.", "E999");
  3433. return;
  3434. }
  3435. var rrgstno = model.getValue("/root/main/ptinfo/rrgstno");
  3436. var hngnm = model.getValue("/root/main/ptinfo/hngnm");
  3437. var orddd = getCurrentDate();
  3438. // 예약일이 있으면 예약일로 설정
  3439. if (instance1.selectNodes("/root/main/exculist/excuinfo").length > 0 && grd_excu.row > 0
  3440. && model.getValue("/root/main/exculist/excuinfo[" + grd_excu.row + "]/srchrsrvtm").length >= 8) {
  3441. orddd = model.getValue("/root/main/exculist/excuinfo[" + grd_excu.row + "]/srchrsrvtm").substr(0, 8);
  3442. }
  3443. var cretno = "";
  3444. var ordtype = "O";
  3445. var dschdd = "";
  3446. var payownbamt = "";
  3447. var payinsubamt = "";
  3448. var pid = model.getValue("/root/send/data/pid");
  3449. var orddeptcd = "";
  3450. var ownbflag = "";
  3451. var nopyamt = "";
  3452. var pregdmndamt = "";
  3453. var suppkind = "";
  3454. var parm = rrgstno.substr(0, 6)
  3455. + rrgstno.substr(7, 7) + "▦"
  3456. + hngnm + "▦"
  3457. + orddd + "▦"
  3458. + cretno + "▦"
  3459. + ordtype + "▦"
  3460. + dschdd + "▦"
  3461. + payownbamt + "▦"
  3462. + payinsubamt + "▦"
  3463. + pid + "▦"
  3464. + orddeptcd + "▦"
  3465. + ownbflag + "▦"
  3466. + nopyamt + "▦"
  3467. + pregdmndamt + "▦"
  3468. + suppkind + "▦";
  3469. setParameter("SPPMC03900_PARM", parm);
  3470. modal("SPPMC03900", "1");
  3471. ]]>
  3472. </script>
  3473. </button>
  3474. <button id="btn_ptinfo" class="btn2_letter6" style="left:644px; top:55px; width:86px; height:19px; ">
  3475. <caption>환자정보수정</caption>
  3476. <script type="javascript" ev:event="DOMActivate">
  3477. <![CDATA[
  3478. model.setValue("/root/send/ptinfo/pid", model.getValue("/root/send/data/pid"));
  3479. model.setValue("/root/send/ptinfo/srchcond", "1");
  3480. open("SMPMC01400", "1", "", "", "SMPMC01400", "/root/send/ptinfo", "/root/hidden/source");
  3481. ]]>
  3482. </script>
  3483. </button>
  3484. <caption id="cap_dept" ref="/root/hidden/dutplcenm" style="left:130px; top:0px; width:145px; height:14px; font-weight:bold; color:darkmagenta; text-align:right; vertical-align:middle; "/>
  3485. <button id="btn_sms" class="btn2_letter2" style="left:849px; top:55px; width:42px; height:19px; ">
  3486. <caption>SMS</caption>
  3487. <script type="javascript" ev:event="DOMActivate">
  3488. <![CDATA[
  3489. open("SPCNS00500");
  3490. ]]>
  3491. </script>
  3492. </button>
  3493. <switch id="switch3" style="left:0px; top:515px; width:255px; height:250px; border-width:0; ">
  3494. <case id="ctrl" selected="true">
  3495. <line id="line8" class="line_1" style="x1:0px; y1:20px; x2:255px; y2:20px; "/>
  3496. <caption id="caption40" style="left:159px; top:1px; width:60px; height:19px; text-align:center; background-color:#ffdcdc; border-color:#999999; border-style:solid; ">통합예약</caption>
  3497. <caption id="caption3" style="left:220px; top:1px; width:35px; height:19px; text-align:center; background-color:#ebebff; border-color:#999999; border-style:solid; ">팝업</caption>
  3498. <caption id="caption37" class="tit_2" style="left:0px; top:5px; width:85px; height:13px; ">
  3499. <![CDATA[제어 내역]]>
  3500. <script type="javascript" ev:event="ondblclick">
  3501. <![CDATA[
  3502. open("SPPEA00200", "");
  3503. ]]>
  3504. </script>
  3505. </caption>
  3506. <caption id="caption38" style="left:87px; top:1px; width:35px; height:19px; text-align:center; border-color:#999999; border-style:solid; ">확인</caption>
  3507. <caption id="caption39" style="left:123px; top:1px; width:35px; height:19px; text-align:center; background-color:#ffffa0; border-color:#999999; border-style:solid; ">제어</caption>
  3508. <datagrid id="grd_ctrl" nodeset="/root/ctrl/main/ctrllist/ctrlinfo" autoresize="true" backcoloralternate="transparent" caption="예약처^수행부서^수행부서^검사실^검사실^검사코드^검사명^순번^제어^제어 내용" colsep="^" colwidth="0, 0, 0, 0, 0, 0, 0, 0, 0, 230" extendlastcol="scroll" focuscolor="transparent" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:25px; width:255px; height:225px; ">
  3509. <col ref="rsrvplce"/>
  3510. <col ref="suppdeptcd"/>
  3511. <col ref="suppdeptnm"/>
  3512. <col ref="excuroomcd"/>
  3513. <col ref="excuroomnm"/>
  3514. <col ref="excucd"/>
  3515. <col ref="excunm"/>
  3516. <col ref="ctrlseq" style="text-align:center; "/>
  3517. <col ref="ctrlyn" style="text-align:center; "/>
  3518. <col ref="ctrldesc" style="text-align:left; padding-left:2; padding-right:2; "/>
  3519. </datagrid>
  3520. </case>
  3521. <case id="memo" style="border-width:0; ">
  3522. <line id="line11" class="line_1" style="x1:0px; y1:15px; x2:255px; y2:15px; "/>
  3523. <caption id="caption20" class="tit_2" style="left:0px; top:85px; width:105px; height:14px; ">환자 전달 사항</caption>
  3524. <line id="line12" class="line_1" style="x1:0px; y1:100px; x2:255px; y2:100px; "/>
  3525. <textarea id="tar_drmemo" ref="/root/hidden/memoinfo/drmemo" scroll="autovscroll" maxbyte="4000" style="left:0px; top:190px; width:255px; height:60px; padding:3; "/>
  3526. <line id="line14" class="line_1" style="x1:0px; y1:185px; x2:255px; y2:185px; "/>
  3527. <select1 id="rdo_drflag" ref="/root/hidden/memoinfo/drflag" appearance="full" cellspacing="2" cols="2" overflow="visible" style="left:0px; top:169px; width:100px; height:15px; border-style:none; ">
  3528. <choices>
  3529. <item>
  3530. <label>부서</label>
  3531. <value>D</value>
  3532. </item>
  3533. <item>
  3534. <label>검사실</label>
  3535. <value>R</value>
  3536. </item>
  3537. </choices>
  3538. <script type="javascript" ev:event="xforms-value-changed">
  3539. <![CDATA[
  3540. if (FUNC_SEL_ROW < 1) {
  3541. return;
  3542. }
  3543. var flag = model.getValue("/root/hidden/memoinfo/drflag");
  3544. if (flag == "D") {
  3545. model.setValue("/root/hidden/memoinfo/drmemo", model.getValue("/root/main/fcexlist/fcexinfo[" + FUNC_SEL_ROW + "]/deptmemo"));
  3546. } else if (flag == "R") {
  3547. model.setValue("/root/hidden/memoinfo/drmemo", model.getValue("/root/main/fcexlist/fcexinfo[" + FUNC_SEL_ROW + "]/roommemo"));
  3548. }
  3549. tar_drmemo.refresh();
  3550. ]]>
  3551. </script>
  3552. </select1>
  3553. <textarea id="tar_ptmemo" ref="/root/hidden/memoinfo/ptmemo" scroll="autovscroll" maxbyte="4000" style="left:0px; top:105px; width:255px; height:60px; padding:3; "/>
  3554. <caption id="caption19" class="tit_2" style="left:0px; top:0px; width:85px; height:14px; ">상병 정보</caption>
  3555. <textarea id="tar_diag" ref="/root/hidden/memoinfo/diag" scroll="autovscroll" editable="false" maxbyte="4000" style="left:0px; top:20px; width:255px; height:60px; padding:3; "/>
  3556. <button id="btn_saveptmemo" class="btn2_letter2" style="left:213px; top:80px; width:42px; height:19px; ">
  3557. <caption>저장</caption>
  3558. </button>
  3559. <button id="btn_savedeptmemo" class="btn2_letter2" style="left:213px; top:165px; width:42px; height:19px; ">
  3560. <caption>저장</caption>
  3561. </button>
  3562. <caption id="caption27" style="left:105px; top:170px; width:50px; height:14px; font-weight:bold; ">MEMO</caption>
  3563. </case>
  3564. </switch>
  3565. <button id="btn_excuex" style="left:1044px; top:195px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_bottom.gif; focus-rect:hidden; ">
  3566. <caption/>
  3567. <script type="javascript" ev:event="DOMActivate">
  3568. <![CDATA[
  3569. if (btn_excuex.attribute("background-image") == "../../../com/commonweb/images/btn_send_bottom.gif") {
  3570. switch1.attribute("height") = "550px";
  3571. grd_excu.attribute("height") = grd_fcex.attribute("height") = grd_anex.attribute("height") = "545px";
  3572. btn_excuex.attribute("background-image") = "../../../com/commonweb/images/btn_send_top.gif";
  3573. } else {
  3574. switch1.attribute("height") = "190";
  3575. grd_excu.attribute("height") = grd_fcex.attribute("height") = grd_anex.attribute("height") = "185px";
  3576. btn_excuex.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  3577. }
  3578. ]]>
  3579. </script>
  3580. </button>
  3581. <button id="btn_rsrvstaff" class="btn2_letter5" visibility="hidden" style="left:703px; top:415px; width:75px; height:19px; ">
  3582. <caption>담당자관리</caption>
  3583. <script type="javascript" ev:event="DOMActivate">
  3584. <![CDATA[
  3585. open("SPPEA00102", "");
  3586. ]]>
  3587. </script>
  3588. </button>
  3589. <button id="btn_rmrvex" style="left:779px; top:415px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_left.gif; focus-rect:hidden; ">
  3590. <caption/>
  3591. <script type="javascript" ev:event="DOMActivate">
  3592. <![CDATA[
  3593. if (btn_rmrvex.attribute("background-image") == "../../../com/commonweb/images/btn_send_left.gif") {
  3594. btn_rmrvex.attribute("background-image") = "../../../com/commonweb/images/btn_send_right.gif";
  3595. caption15.attribute("left") = line6.attribute("x1") = grd_rmrv.attribute("left") = "0px";
  3596. grd_rmrv.attribute("width") = "1195px";
  3597. caption11.visible = caption1.visible = cmb_roomgrp.visible = btn_temprsrv.visible = btnHope.visible = false;
  3598. } else {
  3599. btn_rmrvex.attribute("background-image") = "../../../com/commonweb/images/btn_send_left.gif";
  3600. caption15.attribute("left") = line6.attribute("x1") = grd_rmrv.attribute("left") = "595px";
  3601. grd_rmrv.attribute("width") = "600px";
  3602. caption11.visible = caption1.visible = btnHope.visible = true;
  3603. if (RSRV_PLCE == "T") {
  3604. cmb_roomgrp.visible = btn_temprsrv.visible = true;
  3605. }
  3606. }
  3607. ]]>
  3608. </script>
  3609. </button>
  3610. <button id="btn_multirsrv" class="btn2_letter4" style="left:653px; top:195px; width:64px; height:19px; ">
  3611. <caption>멀티예약</caption>
  3612. <script type="javascript" ev:event="DOMActivate">
  3613. <![CDATA[
  3614. model.resetInstanceNode("/root/hidden/multrsrv/excuinfo");
  3615. var cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3616. var idx = 0;
  3617. for (var i = 1; i <= cnt; i++) {
  3618. if (model.getValue("/root/main/exculist/excuinfo[" + i + "]/chk") != "Y") {
  3619. continue;
  3620. }
  3621. idx++;
  3622. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/rowcnt", i);
  3623. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/prcpnm", model.getValue("/root/main/exculist/excuinfo[" + i + "]/prcpnm"));
  3624. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/suppdeptcd", model.getValue("/root/main/exculist/excuinfo[" + i + "]/suppdeptcd"));
  3625. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/genrflag", model.getValue("/root/main/exculist/excuinfo[" + i + "]/genrflag"));
  3626. if (model.getValue("/root/main/exculist/excuinfo[" + i + "]/rsrvflagyn") == "예약") {
  3627. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/excuroomcd", model.getValue("/root/main/exculist/excuinfo[" + i + "]/excuroomcd"));
  3628. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/examroomnm", model.getValue("/root/main/exculist/excuinfo[" + i + "]/examroomnm"));
  3629. } else {
  3630. var roomArr = model.getValue("/root/main/exculist/excuinfo[" + i + "]/rsrvexcuroompossnm").split("^");
  3631. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/excuroomcd", roomArr[0].split("|")[0]);
  3632. model.makeValue("/root/hidden/multrsrv/excuinfo[" + idx + "]/examroomnm", roomArr[0].split("|")[1]);
  3633. }
  3634. }
  3635. if (idx > 5){
  3636. messageBox("5개를 초과해서 처리할 수 없습니다.", "E999", "");
  3637. return;
  3638. }
  3639. if (idx > 0){
  3640. modal("SPPEA00101", "", "20", "100", "SPPEA00101", "/root/hidden/multrsrv", "/root/excu");
  3641. fGetRsrvCtrlList(grd_excu, EXCU_SEL_ROW);
  3642. } else {
  3643. messageBox("선택된 검사가 없습니다.", "E999");
  3644. }
  3645. ]]>
  3646. </script>
  3647. </button>
  3648. <button id="btn_legend_excu" class="btn2_letter2" style="left:545px; top:195px; width:42px; height:19px; ">
  3649. <caption>범례</caption>
  3650. <script type="javascript" ev:event="DOMActivate">
  3651. <![CDATA[
  3652. grp_legend_excu.visible = !grp_legend_excu.visible;
  3653. ]]>
  3654. </script>
  3655. </button>
  3656. <button id="btn_directsms" class="btn2_letter4" style="left:588px; top:195px; width:64px; height:19px; ">
  3657. <caption>문자전송</caption>
  3658. <script type="javascript" ev:event="DOMActivate">
  3659. <![CDATA[
  3660. model.resetInstanceNode("/root/hidden/smslist/smsinfo");
  3661. grd_sms.refresh();
  3662. var pid = model.getValue("/root/send/data/pid");
  3663. var hngnm = model.getValue("/root/main/ptinfo/hngnm");
  3664. var hosp = "";
  3665. if (getUserInfo("dutplceinstcd") == "031") {
  3666. hosp = "경북대병원";
  3667. } else if (getUserInfo("dutplceinstcd") == "032") {
  3668. hosp = "칠곡경북대병원";
  3669. } else if (getUserInfo("dutplceinstcd") == "033") {
  3670. hosp = "경북대치과병원";
  3671. }
  3672. var idx = 0;
  3673. for (var i = 1; i <= instance1.selectNodes("/root/main/exculist/excuinfo").length; i++) {
  3674. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  3675. if (model.getValue(path + "chk") != "Y") {
  3676. continue;
  3677. }
  3678. idx++;
  3679. model.makeValue("/root/hidden/smslist/smsinfo[" + idx + "]/orddeptcd", model.getValue(path + "orddeptcd"));
  3680. var rsrvdt = model.getValue(path + "srchrsrvtm");
  3681. var postyn = model.getValue(path + "aftrcptinfo");
  3682. var statcd = model.getValue(path + "execprcpstatcd");
  3683. var roomnm = model.getValue(path + "examroomnm").trim();
  3684. var deptcd = model.getValue(path + "orddeptcd");
  3685. var deptnm = model.getValue(path + "orddepthngnm");
  3686. var msg = hosp + " "
  3687. + hngnm
  3688. + "(" + pid + ")님 "
  3689. + rsrvdt.substr(4, 2) + "/" + rsrvdt.substr(6, 2)
  3690. + ( postyn != "V" && parseInt(statcd) < 230 ? " 수납후 방문 " : " 방문 " )
  3691. + rsrvdt.substr(8, 2) + ":" + rsrvdt.substr(10, 2) + " "
  3692. + roomnm;
  3693. model.makeValue("/root/hidden/smslist/smsinfo[" + idx + "]/msgcnts", msg);
  3694. }
  3695. grd_sms.refresh();
  3696. if (idx < 1) {
  3697. messageBox("선택된 내역이 없습니다.", "E999");
  3698. return;
  3699. }
  3700. grp_directsms.visible = true;
  3701. ]]>
  3702. </script>
  3703. </button>
  3704. <datagrid id="grd_rmrv" nodeset="/root/main3/rmrvlist/rmrvinfo" allowselection="false" autoresize="true" backcoloralternate="transparent" caption="누적^시각^검사실^검사실^현황^가용^tmflag^등록번호^이름^나이^구분^mergestop^소요^검사명^상태^상태^진료과^진료과^진료의^진료의^검사코드^처방전달사항^예약참고사항^예약일시^예약자" colsep="^" colwidth="30, 45, 0, 100, 30, 30, 0, 55, 50, 30, 35, 0, 30, 197, 0, 50, 0, 50, 0, 50, 90, 300, 200, 120, 50" ellipsis="true" fixedcols="1" focuscolor="transparent" frozencols="9" mergecells="byrestriccol" mergecellsfixedrows="bycolrec" rowsep="|" selectionmode="free" style="left:595px; top:440px; width:600px; height:325px; text-align:center; ">
  3705. <col ref="ptacc"/>
  3706. <col ref="rsrvtm" format="hh:nn" style="font-weight:bold; background-color:#ffffa0; "/>
  3707. <col ref="excuroomcd" visibility="hidden"/>
  3708. <col ref="excuroomnm" visibility="hidden" style="background-color:#ffffa0; "/>
  3709. <col ref="stat" style="font-weight:bold; background-color:#ffffa0; "/>
  3710. <col ref="capa" style="font-weight:bold; background-color:#ffffa0; "/>
  3711. <col ref="tmflag"/>
  3712. <col ref="pid" style="background-color:#f0f0ff; "/>
  3713. <col ref="hngnm" style="background-color:#f0f0ff; "/>
  3714. <col ref="age"/>
  3715. <col disabled="true" ref="prcpgenrflag" type="combo">
  3716. <choices>
  3717. <item>
  3718. <label>외래</label>
  3719. <value>O</value>
  3720. </item>
  3721. <item>
  3722. <label>입원</label>
  3723. <value>I</value>
  3724. </item>
  3725. <item>
  3726. <label>입원</label>
  3727. <value>D</value>
  3728. </item>
  3729. <item>
  3730. <label>응급</label>
  3731. <value>E</value>
  3732. </item>
  3733. <item>
  3734. <label>건진</label>
  3735. <value>S</value>
  3736. </item>
  3737. </choices>
  3738. </col>
  3739. <col ref="mergestop" visibility="hidden"/>
  3740. <col ref="excutm" style="font-weight:bold; color:#b400b4; "/>
  3741. <col ref="excucdnm" style="text-align:left; "/>
  3742. <col ref="rsrvstatcd" visibility="hidden"/>
  3743. <col ref="rsrvstatnm"/>
  3744. <col ref="orddeptcd"/>
  3745. <col ref="deptengabbr"/>
  3746. <col ref="orddrid"/>
  3747. <col ref="orddrnm"/>
  3748. <col ref="calcscorcd"/>
  3749. <col ref="prcpdelivefact" style="text-align:center; "/>
  3750. <col ref="rsrvrem" style="text-align:center; "/>
  3751. <col ref="lastupdtdt" format="yyyy-mm-dd hh:nn:ss"/>
  3752. <col ref="lastupdtrnm"/>
  3753. <script type="javascript" ev:event="ondblclick">
  3754. <![CDATA[
  3755. if (!grd_rmrv.isCell(event.target) || grd_rmrv.row < grd_rmrv.fixedRows || grd_rmrv.col == 0) {
  3756. return;
  3757. }
  3758. // 등록번호 더블 클릭시 해당 환자 조회
  3759. if (grd_rmrv.col == grd_rmrv.colRef("pid") || grd_rmrv.col == grd_rmrv.colRef("hngnm")) {
  3760. var pid = model.getValue("/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/pid");
  3761. if (pid != "") {
  3762. model.setValue("/root/send/data/pid", pid);
  3763. btn_search.dispatch("DOMActivate");
  3764. }
  3765. return;
  3766. }
  3767. // 시각, 현황, 가용, 소요 칼럼 더블 클릭시만 예약 시각 설정
  3768. if (grd_rmrv.col > grd_rmrv.colRef("pid")) {
  3769. return;
  3770. }
  3771. var grd = !FUNC_FLAG ? grd_excu : grd_fcex;
  3772. grd.row = !FUNC_FLAG ? EXCU_SEL_ROW : FUNC_SEL_ROW;
  3773. var excuPath = !FUNC_FLAG ? "/root/main/exculist/excuinfo[" + grd.row + "]/" : "/root/main/fcexlist/fcexinfo[" + grd.row + "]/";
  3774. if (!FUNC_FLAG && model.getValue(excuPath + "rsrvtmcntlyn") == "Y") {
  3775. messageBox("예약시간을 변경할 수 없는 검사/치료실입니다.", "E999", "");
  3776. return;
  3777. }
  3778. var rmrvPath = "/root/main3/rmrvlist/rmrvinfo[" + grd_rmrv.row + "]/";
  3779. // 가용 인원 확인
  3780. var stat = Number(model.getValue(rmrvPath + "stat"));
  3781. var capa = Number(model.getValue(rmrvPath + "capa"));
  3782. if (stat >= capa && messageBox("가용 인원을 초과하였습니다.\r\n예약을 진행하시겠습니까?", "Q999") != 6) {
  3783. return;
  3784. }
  3785. // 이전 검사 종료 시각 확인
  3786. var tmflag = model.getValue(rmrvPath + "tmflag");
  3787. if (tmflag == "Y" && messageBox("이전 검사가 아직 끝나지 않은 시각입니다!\r\n예약을 진행하시겠습니까?", "Q999") != 6) {
  3788. return;
  3789. }
  3790. var rsrvdd = model.getValue("/root/send/data/rsrvdd");
  3791. var rsrvtm = model.getValue(rmrvPath + "rsrvtm");
  3792. // 과거 일자 여부 확인
  3793. var currdd = getCurrentDate();
  3794. if (rsrvdd < currdd) {
  3795. messageBox("과거 일자는 예약할 수 없습니다", "E999");
  3796. return;
  3797. } else if (currdd == rsrvdd && Number(rsrvtm) < Number(getCurrentTime().substr(0, 4))) {
  3798. messageBox("과거 시각은 예약할 수 없습니다.", "E999");
  3799. return;
  3800. }
  3801. var rsrvdt = rsrvdd + rsrvtm;
  3802. var excutm = Number(model.getValue(excuPath + "excutm"));
  3803. var addtm = Number(rsrvdt.toDate("YYYYMMDDhhmm").getAddDate(excutm, "m").getDateFormat("hhmm"));
  3804. cnt = instance1.selectNodes("/root/main3/rmrvlist/rmrvinfo").length;
  3805. var flag = false;
  3806. for (var i = grd_rmrv.row + 1; i <= cnt; i++) {
  3807. var path = "/root/main3/rmrvlist/rmrvinfo[" + i + "]/";
  3808. var currtm = Number(model.getValue(path + "rsrvtm"));
  3809. // 다른 검사 시각 확인
  3810. if (!flag && addtm > currtm && Number(model.getValue(path + "stat")) >= Number(model.getValue(path + "capa"))) {
  3811. if (messageBox("소요 시간 내에 다른 검사가 있습니다.\r\n예약을 진행하시겠습니까?", "Q999") != 6) {
  3812. return;
  3813. } else {
  3814. flag = true;
  3815. break;
  3816. }
  3817. }
  3818. }
  3819. var nfsttm = 0; // 오후 첫번째 시각
  3820. for (var i = 1; i <= cnt; i++) {
  3821. var path = "/root/main3/rmrvlist/rmrvinfo[" + i + "]/";
  3822. var currtm = Number(model.getValue(path + "rsrvtm"));
  3823. // 오후 첫번째 시각 확인
  3824. if (currtm > 1200 && nfsttm == 0) {
  3825. nfsttm = currtm;
  3826. break;
  3827. }
  3828. }
  3829. // 점심 시간 여부 확인
  3830. if (rsrvtm < nfsttm && addtm > 1200) {
  3831. if (messageBox("소요 시간 내에 점심 시간이 있습니다.\r\n예약을 진행하시겠습니까?", "Q999") != 6) {
  3832. return;
  3833. }
  3834. }
  3835. // 연속 예약 확인 및 설정
  3836. var prcpdd = model.getValue(excuPath + "prcpdd");
  3837. var bf_excuroomcd = model.getValue(excuPath + "bf_excuroomcd");
  3838. cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3839. flag = false;
  3840. if (!FUNC_FLAG) { // 과내 검사는 연속 예약 기능 사용 안함
  3841. for (var i = 1; i <= cnt; i++) {
  3842. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  3843. if (i != grd_excu.row) {
  3844. if (model.getValue(path + "prcpdd") == prcpdd && model.getValue(path + "bf_excuroomcd") == bf_excuroomcd) {
  3845. if (messageBox("동일한 검사실의 검사 내역이 확인되었습니다.\n예약 시각을 연속으로 설정하시겠습니까?", "Q999") == 6) {
  3846. flag = true;
  3847. break;
  3848. } else {
  3849. break;
  3850. }
  3851. }
  3852. }
  3853. }
  3854. }
  3855. /*
  3856. var excuroomcd = model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomcd");
  3857. var examroomnm = model.getValue("/root/main/excuroomlist/excuroominfo[" + grd_room.row + "]/excuroomnm");
  3858. */
  3859. var excuroomcd = model.getValue(rmrvPath + "excuroomcd");
  3860. var examroomnm = model.getValue(rmrvPath + "excuroomnm");
  3861. // 중복 예약 확인
  3862. if (!fChkRoomTimeStat(model.getValue(excuPath + "suppdeptcd"), excuroomcd, rsrvdd, rsrvtm, stat)) {
  3863. return;
  3864. }
  3865. // 예약 현황 담아두기
  3866. // 예약 현황 그리드를 더블 클릭할 때는 선택된 검사에 대한 중복 예약 여부만 확인하고
  3867. // 이때 담아둔 현황들에 대해 예약 버튼 클릭시 전체 중복 예약 여부를 확인한다.
  3868. cnt = instance1.selectNodes("/root/temp/exstlist/exstinfo").length;
  3869. var setidx = 0;
  3870. for (var i = 1; i <= cnt; i++) {
  3871. if (model.getValue("/root/temp/exstlist/exstinfo[" + i + "]/rowidx") == grd.row) {
  3872. setidx = i;
  3873. break;
  3874. }
  3875. }
  3876. setidx = setidx == 0 ? cnt + 1 : setidx;
  3877. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/rowidx", grd.row);
  3878. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/prcpdt", prcpdd + model.getValue(excuPath + "rgsttm"));
  3879. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/orddept", model.getValue(excuPath + "orddepthngnm"));
  3880. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/prcpnm", model.getValue(excuPath + "prcpnm"));
  3881. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/suppdeptcd", model.getValue(excuPath + "suppdeptcd"));
  3882. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/suppdeptnm", model.getValue(excuPath + "suppdeptnm"));
  3883. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/excuroomcd", excuroomcd);
  3884. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/excuroomnm", examroomnm);
  3885. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/rsrvdd", rsrvdd);
  3886. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/rsrvtm", rsrvtm);
  3887. model.makeValue("/root/temp/exstlist/exstinfo[" + setidx + "]/stat", stat);
  3888. if (flag) {
  3889. // 연속 예약일 경우, 다른 검사 시각 및 점심 시간 여부 재 확인
  3890. excutm = 0;
  3891. for (var i = 1; i <= cnt; i++) {
  3892. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  3893. if (model.getValue(path + "prcpdd") == prcpdd && model.getValue(path + "bf_excuroomcd") == bf_excuroomcd) {
  3894. excutm += Number(model.getValue(path + "excutm"));
  3895. }
  3896. }
  3897. addtm = rsrvdt.toDate("YYYYMMDDhhmm").getAddDate(excutm, "m").getDateFormat("hhmm");
  3898. cnt = instance1.selectNodes("/root/main3/rmrvlist/rmrvinfo").length;
  3899. flag = false;
  3900. for (var i = grd_rmrv.row; i <= cnt; i++) {
  3901. var path = "/root/main3/rmrvlist/rmrvinfo[" + i + "]/";
  3902. var currtm = Number(model.getValue(path + "rsrvtm"));
  3903. // 다른 검사 시각 확인
  3904. if (!flag && addtm > currtm && Number(model.getValue(path + "stat")) >= Number(model.getValue(path + "capa"))) {
  3905. if (messageBox("소요 시간 내에 다른 검사가 있습니다.\r\n예약을 진행하시겠습니까?", "Q999") != 6) {
  3906. return;
  3907. } else {
  3908. flag = true;
  3909. }
  3910. }
  3911. }
  3912. // 점심 시간 여부 확인
  3913. if (rsrvtm < nfsttm && addtm > 1200) {
  3914. if (messageBox("소요 시간 내에 점심 시간이 있습니다.\r\n예약을 진행하시겠습니까?", "Q999") != 6) {
  3915. return;
  3916. }
  3917. }
  3918. // 연속 예약 시각 설정
  3919. cnt = instance1.selectNodes("/root/main/exculist/excuinfo").length;
  3920. var idx = "";
  3921. for (var i = 1; i <= cnt; i++) {
  3922. var path = "/root/main/exculist/excuinfo[" + i + "]/";
  3923. if (model.getValue(path + "prcpdd") == prcpdd && model.getValue(path + "bf_excuroomcd") == bf_excuroomcd) {
  3924. // 예약 일시 및 예약 선택 여부 값 입력
  3925. model.setValue(path + "excuroomcd", excuroomcd);
  3926. model.setValue(path + "examroomnm", examroomnm);
  3927. model.setValue(path + "rsrvdt", rsrvdt);
  3928. model.setValue(path + "srchrsrvtm", rsrvdt);
  3929. model.setValue(path + "chk", "Y");
  3930. grd_excu.refresh();
  3931. if (model.getValue(path + "excuroomcd") != model.getValue(path + "bf_excuroomcd")) {
  3932. grd_excu.cellStyle("color", i, grd_excu.colRef("examroomnm")) = "#0000ff";
  3933. } else {
  3934. grd_excu.cellStyle("color", i, grd_excu.colRef("examroomnm")) = "#000000";
  3935. }
  3936. if (i != EXCU_SEL_ROW) {
  3937. grd_excu.rowStyle(i, "data", "background-color") = "#ececec";
  3938. }
  3939. idx += ( idx != "" ? "," : "" ) + i;
  3940. excutm = Number(model.getValue(path + "excutm"));
  3941. rsrvdt = rsrvdt.toDate("YYYYMMDDhhmm").getAddDate(excutm, "m").getDateFormat("YYYYMMDDhhmm");
  3942. }
  3943. }
  3944. var scol = grd.colRef("examroomnm");
  3945. var ecol = !FUNC_FLAG ? grd.colRef("srchrsrvtm") : grd.colRef("srchrsrvdt");
  3946. var idxarr = idx.split(",");
  3947. for (var i = 0; i < idxarr.length; i++) {
  3948. grd_excu.cellStyle("color", idxarr[i], ecol, idxarr[i], ecol) = "#0000ff";
  3949. grd_excu.cellStyle("border-style", idxarr[i], scol, idxarr[i], ecol) = "solid";
  3950. grd_excu.cellStyle("border-left-color", idxarr[i], scol) = "crimson";
  3951. grd_excu.cellStyle("border-left-width", idxarr[i], scol) = "2px";
  3952. grd_excu.cellStyle("border-top-color", idxarr[i], scol) = "crimson";
  3953. grd_excu.cellStyle("border-top-width", idxarr[i], scol) = i == 0 ? "2px" : "1px";
  3954. grd_excu.cellStyle("border-right-color", idxarr[i], scol) = "#b0b0b0";
  3955. grd_excu.cellStyle("border-right-width", idxarr[i], scol) = "1px";
  3956. grd_excu.cellStyle("border-bottom-color", idxarr[i], scol) = "crimson";
  3957. grd_excu.cellStyle("border-bottom-width", idxarr[i], scol) = i == idxarr.length - 1 ? "3px" : "2px";
  3958. grd_excu.cellStyle("border-left-color", idxarr[i], ecol) = "#b0b0b0";
  3959. grd_excu.cellStyle("border-left-width", idxarr[i], ecol) = "0px";
  3960. grd_excu.cellStyle("border-top-color", idxarr[i], ecol) = "crimson";
  3961. grd_excu.cellStyle("border-top-width", idxarr[i], ecol) = i == 0 ? "2px" : "1px";
  3962. grd_excu.cellStyle("border-right-color", idxarr[i], ecol) = "crimson";
  3963. grd_excu.cellStyle("border-right-width", idxarr[i], ecol) = "3px";
  3964. grd_excu.cellStyle("border-bottom-color", idxarr[i], ecol) = "crimson";
  3965. grd_excu.cellStyle("border-bottom-width", idxarr[i], ecol) = i == idxarr.length - 1 ? "3px" : "2px";
  3966. }
  3967. } else {
  3968. // 예약 일시 및 예약 선택 여부 값 입력
  3969. model.setValue(excuPath + "excuroomcd", excuroomcd);
  3970. model.setValue(excuPath + "examroomnm", examroomnm);
  3971. if (excuroomcd != model.getValue(excuPath + "bf_excuroomcd")) {
  3972. grd.cellStyle("color", grd.row, grd.colRef("examroomnm")) = "#0000ff";
  3973. } else {
  3974. grd.cellStyle("color", grd.row, grd.colRef("examroomnm")) = "#000000";
  3975. }
  3976. model.setValue(excuPath + "rsrvdt", rsrvdt);
  3977. model.setValue(excuPath + ( !FUNC_FLAG ? "srchrsrvtm" : "srchrsrvdt" ), rsrvdt);
  3978. model.setValue(excuPath + "chk", "Y");
  3979. grd.refresh();
  3980. }
  3981. // 총 소요 시간 및 예상 완료 시각 표시
  3982. setExcuEndTime();
  3983. // 중증 / 산정특례 종료일자 체크
  3984. fCheckRstrDay(rsrvdd);
  3985. // 제어 내역 확인
  3986. if (!FUNC_FLAG) {
  3987. fGetRsrvCtrlList(grd, EXCU_SEL_ROW, excuroomcd);
  3988. }
  3989. ]]>
  3990. </script>
  3991. <script type="javascript" ev:event="onmousedown">
  3992. <![CDATA[
  3993. if (!grd_rmrv.isCell(event.target) || grd_rmrv.mouseRow == 0 || grd_rmrv.mouseCol == 0) {
  3994. return;
  3995. }
  3996. RMRV_MOUSE_DOWN = true;
  3997. fSetRmrvFocusRect();
  3998. if (FUNC_FLAG || RSRV_PLCE != "T") {
  3999. return;
  4000. }
  4001. setPopupMenu("grd_rmrv", false, "/root/hidden/popupmenu_rmrv/item", "name", "func");
  4002. ]]>
  4003. </script>
  4004. <script type="javascript" ev:event="onmousemove">
  4005. <![CDATA[
  4006. if (!grd_rmrv.isCell(event.target) || grd_rmrv.mouseRow == 0 || grd_rmrv.mouseCol == 0) {
  4007. RMRV_MOUSE_DOWN = false;
  4008. return;
  4009. }
  4010. if (!RMRV_MOUSE_DOWN) {
  4011. return;
  4012. }
  4013. fSetRmrvFocusRect();
  4014. ]]>
  4015. </script>
  4016. <script type="javascript" ev:event="onmouseup">
  4017. <![CDATA[
  4018. RMRV_MOUSE_DOWN = false;
  4019. ]]>
  4020. </script>
  4021. <script type="javascript" ev:event="DOMFocusOut">
  4022. <![CDATA[
  4023. if (FUNC_FLAG || RSRV_PLCE != "T") {
  4024. return;
  4025. }
  4026. initPopupMenu();
  4027. ]]>
  4028. </script>
  4029. </datagrid>
  4030. <group id="grp_legend_rmrv" visibility="hidden" style="left:874px; top:443px; width:140px; height:152px; border-color:darkgray; border-style:solid; ">
  4031. <caption id="caption48" style="left:15px; top:15px; width:20px; height:20px; text-align:center; background-color:#ffffa0; border-color:crimson; border-width:2; border-style:solid; "/>
  4032. <caption id="caption49" style="left:15px; top:40px; width:20px; height:20px; text-align:center; background-color:#f0f0ff; border-color:#0000ff; border-width:2; border-style:solid; "/>
  4033. <caption id="caption50" style="left:40px; top:15px; width:64px; height:20px; font-weight:bold; ">예약 설정</caption>
  4034. <caption id="caption51" style="left:40px; top:40px; width:59px; height:20px; font-weight:bold; ">환자 조회</caption>
  4035. <caption id="caption42" style="left:15px; top:65px; width:20px; height:20px; text-align:center; background-color:#ffd2d2; border-color:#999999; border-width:1; border-style:solid; "/>
  4036. <caption id="caption43" style="left:40px; top:65px; width:90px; height:20px; ">가용 인원 초과</caption>
  4037. <caption id="caption60" style="left:15px; top:90px; width:20px; height:20px; color:#ff0000; text-align:center; border-color:#999999; border-style:solid; ">가</caption>
  4038. <caption id="caption61" style="left:40px; top:90px; width:94px; height:20px; ">검사 시간 초과</caption>
  4039. <caption id="caption9" style="left:15px; top:115px; width:20px; height:20px; font-weight:bold; color:#ffff00; text-align:center; background-color:#ff0000; border-color:#999999; border-style:solid; ">가</caption>
  4040. <caption id="caption10" style="left:40px; top:115px; width:94px; height:20px; ">응급 예약 시각</caption>
  4041. </group>
  4042. <line id="line6" class="line_1" style="x1:595px; y1:435px; x2:1195px; y2:435px; "/>
  4043. <switch id="switch1" style="left:0px; top:215px; width:1070px; height:190px; border-width:0; ">
  4044. <case id="excu" selected="true" style="left:0px; top:0px; width:100.00%; height:100.00%; ">
  4045. <line id="line16" class="line_1" style="x1:0px; y1:0px; x2:1070px; y2:0px; "/>
  4046. <datagrid id="grd_excu" nodeset="/root/main/exculist/excuinfo" allowbigselection="false" backcoloralternate="transparent" caption="^예약^roomcnt^수납^처방일시^처방일시^진료과^진료과^처방의^처방의^지정의^지정의^구분^건진^급비^처방명^검사명^수행부서코드^검사실정보^검사실코드^검사실코드^수행가능부서^수행가능부서명^검사실코드^검사실^검사실^예약일시^예약일시^예약일시^소요^수납예정액^종료^전화예약^검사코드^수행부서^예약참고사항^예약참고사항^예약자^예약처^후수납^미수^선수납^등록번호^진료일^입원일^퇴원일^생성번호^실시일^처방희망일^처방실시부서코드^최초처방등록과코드^최초처방등록과명^병실^최초처방등록의사ID^최초처방등록의사ID^실시자ID^처방발생구분^처방발생구분^실시처방상태구분코드^처방종류구분코드^실시처방유일번호^부위코드^처방전달사항^원내/원외^의뢰병원코드^검사주의사항^예약시각변경통제여부^예약가용인원통제여부^PACS^CDIS^예약여부^당뇨^당뇨치료사항^당뇨검사^수면^골밀도^예약검사여부^예약예문코드^예약예문내용^예약예문코드^멀티예약예문코드^상병코드" colsep="^" colwidth="30, 50, 0, 50, 70, 35, 0, 90, 0, 50, 0, 50, 35, 0, 60, 205, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 120, 0, 30, 67, 40, 0, 90, 100, 300, 0, 50, 0, 45, 40, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 40, 40, 0, 40, 100, 55, 40, 50, 0, 0, 0, 0, 0, 100" ellipsis="true" focuscolor="transparent" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:0px; top:5px; width:1070px; height:185px; text-align:center; ">
  4047. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  4048. <col ref="rsrvflagyn" style="font-weight:bold; "/>
  4049. <col ref="roomcnt"/>
  4050. <col ref="rcptyn" style="font-weight:bold; "/>
  4051. <col ref="prcpdd" format="yyyy-mm-dd"/>
  4052. <col ref="rgsttm" format="hh:nn"/>
  4053. <col ref="orddeptcd"/>
  4054. <col ref="orddepthngnm"/>
  4055. <col ref="orddrid"/>
  4056. <col ref="orddrnm"/>
  4057. <col ref="specdrid"/>
  4058. <col ref="specdrnm"/>
  4059. <col disabled="true" ref="genrflag" type="combo">
  4060. <choices>
  4061. <item>
  4062. <label>외래</label>
  4063. <value>O</value>
  4064. </item>
  4065. <item>
  4066. <label>입원</label>
  4067. <value>I</value>
  4068. </item>
  4069. <item>
  4070. <label>입원</label>
  4071. <value>D</value>
  4072. </item>
  4073. <item>
  4074. <label>응급</label>
  4075. <value>E</value>
  4076. </item>
  4077. <item>
  4078. <label>건진</label>
  4079. <value>S</value>
  4080. </item>
  4081. </choices>
  4082. </col>
  4083. <col ref="hiflag"/>
  4084. <col ref="payflagnm"/>
  4085. <col ref="prcpnm" style="text-align:left; "/>
  4086. <col ref="excucdnm"/>
  4087. <col ref="suppdeptcd"/>
  4088. <col ref="basecdcnts"/>
  4089. <col ref="excuroom"/>
  4090. <col ref="excuroomnm"/>
  4091. <col ref="rsrvexcuroomposscd"/>
  4092. <col ref="rsrvexcuroompossnm"/>
  4093. <col ref="excuroomcd"/>
  4094. <col ref="examroomnm" style="font-weight:bold; "/>
  4095. <col ref="bf_excuroomcd"/>
  4096. <col ref="rsrvdt"/>
  4097. <col disabled="true" ref="srchrsrvtm" type="input" format="yyyy-mm-dd hh:nn" style="font-weight:bold; color:#ff0000; "/>
  4098. <col ref="bf_srchrsrvtm"/>
  4099. <col ref="excutm" style="font-weight:bold; color:#b400b4; "/>
  4100. <col ref="calcamt" format="(-)#,###" style="font-weight:bold; color:crimson; text-align:right; padding-right:2; "/>
  4101. <col ref="endtime" format="hh:nn"/>
  4102. <col ref="telrsrvyn"/>
  4103. <col ref="calcscorcd"/>
  4104. <col ref="suppdeptnm"/>
  4105. <col ref="rsrvrem" type="input" style="text-align:left; "/>
  4106. <col ref="bf_rsrvrem"/>
  4107. <col ref="lastupdtnm"/>
  4108. <col ref="rsrvplceflag"/>
  4109. <col ref="aftrcptinfo"/>
  4110. <col ref="rcptrsrvyn"/>
  4111. <col ref="prcptdayrcptyn"/>
  4112. <col ref="pid"/>
  4113. <col ref="orddd"/>
  4114. <col ref="indd"/>
  4115. <col ref="dschdd"/>
  4116. <col ref="cretno"/>
  4117. <col ref="actorddd"/>
  4118. <col ref="prcphopedd"/>
  4119. <col ref="prcpexecdeptcd"/>
  4120. <col ref="rgstdeptcd"/>
  4121. <col ref="rgstdepthngnm"/>
  4122. <col ref="roomcd"/>
  4123. <col ref="rgstrid"/>
  4124. <col ref="rgstridnm"/>
  4125. <col ref="execrid"/>
  4126. <col ref="prcpgenrflag"/>
  4127. <col ref="rsrvflag"/>
  4128. <col ref="execprcpstatcd"/>
  4129. <col ref="prcpkindcd"/>
  4130. <col ref="execprcpuniqno"/>
  4131. <col ref="excupartcd"/>
  4132. <col ref="prcpdelivefact"/>
  4133. <col ref="ioflag"/>
  4134. <col ref="reqhospcd"/>
  4135. <col ref="excucdrem" style="text-align:left; "/>
  4136. <col ref="rsrvtmcntlyn"/>
  4137. <col ref="rsrvpsnnocntlyn"/>
  4138. <col ref="pacsnocretyn"/>
  4139. <col ref="eqmtifyn"/>
  4140. <col ref="emryn"/>
  4141. <col ref="glycosyn"/>
  4142. <col ref="glycoscure" style="text-align:left; "/>
  4143. <col ref="glycostestyn"/>
  4144. <col ref="slepyn"/>
  4145. <col ref="bonedentestyn"/>
  4146. <col ref="rsrvexcupossyn"/>
  4147. <col ref="rsrvexmptmplcd"/>
  4148. <col ref="tmpldata"/>
  4149. <col ref="rsrvtmplcd"/>
  4150. <col ref="rsrvmultitmplcd"/>
  4151. <col ref="diag"/>
  4152. <script type="javascript" ev:event="onendedit">
  4153. <![CDATA[
  4154. var path = "/root/main/exculist/excuinfo[" + grd_excu.row + "]/";
  4155. if (grd_excu.col == grd_excu.colRef("rsrvrem") && model.getValue(path + "rsrvrem") != model.getValue(path + "bf_rsrvrem")) {
  4156. if (model.getValue(path + "chk") != "Y") {
  4157. model.setValue(path + "chk", "Y");
  4158. grd_excu.refresh();
  4159. if (grd_excu.row != EXCU_SEL_ROW) {
  4160. grd_excu.rowStyle(grd_excu.row, "data", "background-color") = "#ececec";
  4161. }
  4162. }
  4163. }
  4164. if (grd_excu.col == grd_excu.colRef("srchrsrvtm")) {
  4165. if (model.getValue(path + "srchrsrvtm") != model.getValue(path + "bf_srchrsrvtm")) {
  4166. if (!isValidDateTime(model.getValue(path + "srchrsrvtm"), "YYYYMMDDhhmm")) {
  4167. messageBox("예약일시를 정확히 입력해 주십시오.", "E999");
  4168. grd_excu.editCell();
  4169. return;
  4170. }
  4171. grd_excu.cellStyle("color", grd_excu.row, grd_excu.col) = "#0000ff";
  4172. if (model.getValue(path + "chk") != "Y") {
  4173. model.setValue(path + "chk", "Y");
  4174. grd_excu.refresh();
  4175. if (grd_excu.row != EXCU_SEL_ROW) {
  4176. grd_excu.rowStyle(grd_excu.row, "data", "background-color") = "#ececec";
  4177. }
  4178. }
  4179. fCheckRstrDay(model.getValue(path + "srchrsrvtm").substr(0, 8));
  4180. fGetRsrvCtrlList(grd_excu, grd_excu.row);
  4181. } else {
  4182. grd_excu.cellStyle("color", grd_excu.row, grd_excu.col) = "#ff0000";
  4183. }
  4184. }
  4185. if (model.getValue(path + "rsrvrem") == model.getValue(path + "bf_rsrvrem")
  4186. && model.getValue(path + "srchrsrvtm") == model.getValue(path + "bf_srchrsrvtm")) {
  4187. if (model.getValue(path + "chk") == "Y") {
  4188. model.setValue(path + "chk", "N");
  4189. grd_excu.refresh();
  4190. if (grd_excu.row != EXCU_SEL_ROW) {
  4191. grd_excu.rowStyle(grd_excu.row, "data", "background-color") = "#ffffff";
  4192. }
  4193. }
  4194. }
  4195. if (model.getValue(path + "aftrcptinfo") == "V") {
  4196. grd_excu.cellStyle("background-color", grd_excu.row, grd_excu.colRef("rcptyn")) = "#ff5050";
  4197. grd_excu.cellStyle("color", grd_excu.row, grd_excu.colRef("rcptyn")) = "#ffff00";
  4198. }
  4199. ]]>
  4200. </script>
  4201. <script type="javascript" ev:event="onmousedown">
  4202. <![CDATA[
  4203. if (!grd_excu.isCell(event.target) || grd_excu.mouseRow < 1) {
  4204. return;
  4205. }
  4206. if (grd_excu.mouseRow == EXCU_SEL_ROW) {
  4207. return;
  4208. }
  4209. if (grd_excu.mouseCol != grd_excu.colRef("chk")) {
  4210. return;
  4211. }
  4212. var path = "/root/main/exculist/excuinfo[" + grd_excu.mouseRow + "]/";
  4213. if (model.getValue(path + "chk") == "Y") {
  4214. grd_excu.rowStyle(grd_excu.mouseRow, "data", "background-color") = "#ffffff";
  4215. } else {
  4216. grd_excu.rowStyle(grd_excu.mouseRow, "data", "background-color") = "#ececec";
  4217. }
  4218. if (model.getValue(path + "aftrcptinfo") == "V") {
  4219. grd_excu.cellStyle("background-color", grd_excu.mouseRow, grd_excu.colRef("rcptyn")) = "#ff5050";
  4220. grd_excu.cellStyle("color", grd_excu.mouseRow, grd_excu.colRef("rcptyn")) = "#ffff00";
  4221. }
  4222. ]]>
  4223. </script>
  4224. <script type="javascript" ev:event="onclick">
  4225. <![CDATA[
  4226. if (!grd_excu.isCell(event.target)) {
  4227. return;
  4228. }
  4229. if (grd_excu.col == grd_excu.colRef("chk")) {
  4230. // 총 소요 시간 및 예상 완료 시각 표시
  4231. setExcuEndTime();
  4232. // 검사실과 예약일시가 모두 입력된 항목에 한해 제어 내역 확인
  4233. for (var i = 1; i <= instance1.selectNodes("/root/main/exculist/excuinfo").length; i++) {
  4234. if (model.getValue("/root/main/exculist/excuinfo[" + i + "]/excuroomcd") != ""
  4235. && model.getValue("/root/main/exculist/excuinfo[" + i + "]/srchrsrvtm") != "") {
  4236. fGetRsrvCtrlList(grd_excu, EXCU_SEL_ROW);
  4237. }
  4238. }
  4239. return;
  4240. }
  4241. if (grd_excu.col == grd_excu.colRef("rsrvrem")) {
  4242. grd_excu.editCell();
  4243. return;
  4244. }
  4245. if (grd_excu.row < 1) {
  4246. return;
  4247. }
  4248. if (!grd_excu.isReadOnly(grd_excu.row, grd_excu.col) && grd_excu.col == grd_excu.colRef("srchrsrvtm")) {
  4249. grd_excu.editCell();
  4250. return;
  4251. }
  4252. fSetExcuInfo();
  4253. ]]>
  4254. </script>
  4255. </datagrid>
  4256. </case>
  4257. <case id="func" style="left:0px; top:0px; width:100.00%; height:100.00%; ">
  4258. <line id="line17" class="line_1" style="x1:0px; y1:0px; x2:1070px; y2:0px; "/>
  4259. <datagrid id="grd_fcex" nodeset="/root/main/fcexlist/fcexinfo" allowbigselection="false" backcoloralternate="transparent" caption="선택^등록번호^이름^성별^나이^주민등록번호1^주민등록번호2^몸무게^키^집전화번호^휴대전화번호^구분^진료과코드^진료과^진료일^주유형코드^진료예약여부^생성번호^진료의ID^진료의^선택진료여부^선택의ID^선택의^구분^센터^병동코드^병동^병실코드^병실^처방일^처방일시^처방코드^처방이력번호^처방일련번호^처방일련번호^처방종류^처방분류코드^1일기준총수량^횟수^종속처방코드^처방상태^처방진행상태^예약^수행부서코드^실시부서코드^수행부서코드^수행부서^수행가능검사실^수행가능검사실명^검사실코드^검사실^예약일시^이전예약일시^예약일시^소요^검사안내문^수면여부^검사주의사항^처방전달사항^처방명^수납^수납일^예약자ID^예약자^실시일^실시일시^실시자ID^실시자^실시생성번호^치료부위^치료위치^치료빈도^실시참고사항^취소사유코드^CDIS연동정보^PACS연동정보^포터블처방구분(Y/N)^간호확인일^처방희망일^미예약처방여부^선처치^후수납^미수예약^미수접수^청구실시기준^대분류코드(검사실그룹코드)^중분류코드(부위코드)^modality^예약예문^임상과제코드^해당처방발행진료과의미래진료일시^최초등록부서^최초등록자ID" colsep="^" colwidth="30, 60, 50, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 50, 0, 0, 50, 30, 0, 0, 40, 0, 60, 0, 105, 85, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 50, 0, 0, 0, 0, 0, 0, 0, 110, 120, 0, 0, 0, 0, 0, 0, 0, 240, 50, 80, 0, 50, 0, 110, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0" ellipsis="true" focuscolor="transparent" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="true" style="left:0px; top:5px; width:1070px; height:185px; text-align:center; ">
  4260. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  4261. <col ref="pid"/>
  4262. <col ref="hngnm"/>
  4263. <col disabled="true" ref="sex" type="combo">
  4264. <choices>
  4265. <item>
  4266. <label>남</label>
  4267. <value>M</value>
  4268. </item>
  4269. <item>
  4270. <label>여</label>
  4271. <value>F</value>
  4272. </item>
  4273. </choices>
  4274. </col>
  4275. <col ref="age"/>
  4276. <col ref="rrgstno1"/>
  4277. <col ref="rrgstno2"/>
  4278. <col ref="bdwt"/>
  4279. <col ref="bdht"/>
  4280. <col ref="hometel"/>
  4281. <col ref="mpphontel"/>
  4282. <col ref="ioflag"/>
  4283. <col ref="orddeptcd"/>
  4284. <col ref="orddepthngnm"/>
  4285. <col ref="orddd"/>
  4286. <col ref="insukind"/>
  4287. <col ref="emryn"/>
  4288. <col ref="cretno"/>
  4289. <col ref="orddrid"/>
  4290. <col ref="orddrnm"/>
  4291. <col ref="choiordflag"/>
  4292. <col ref="specdrid"/>
  4293. <col ref="specdrnm"/>
  4294. <col disabled="true" ref="prcpgenrflag" type="combo">
  4295. <choices>
  4296. <item>
  4297. <label>외래</label>
  4298. <value>O</value>
  4299. </item>
  4300. <item>
  4301. <label>입원</label>
  4302. <value>I</value>
  4303. </item>
  4304. <item>
  4305. <label>입원</label>
  4306. <value>D</value>
  4307. </item>
  4308. <item>
  4309. <label>응급</label>
  4310. <value>E</value>
  4311. </item>
  4312. <item>
  4313. <label>건진</label>
  4314. <value>S</value>
  4315. </item>
  4316. </choices>
  4317. </col>
  4318. <col ref="centcd"/>
  4319. <col ref="wardcd"/>
  4320. <col ref="wardengabbr"/>
  4321. <col ref="roomcd"/>
  4322. <col ref="roomnm"/>
  4323. <col ref="prcpdd"/>
  4324. <col ref="prcpdt" format="yyyy-mm-dd hh:nn"/>
  4325. <col ref="calcscorcd"/>
  4326. <col ref="prcphistno"/>
  4327. <col ref="prcpno"/>
  4328. <col ref="execprcpuniqno"/>
  4329. <col ref="prcpkindcd"/>
  4330. <col ref="prcpclscd"/>
  4331. <col ref="prcpqty"/>
  4332. <col ref="execprcptims"/>
  4333. <col ref="inclprcpcd"/>
  4334. <col ref="statcd"/>
  4335. <col ref="execprcpstatcd"/>
  4336. <col ref="rsrvflag"/>
  4337. <col ref="basesuppdeptcd"/>
  4338. <col ref="prcpexecdeptcd"/>
  4339. <col ref="suppdeptcd"/>
  4340. <col ref="suppdeptnm"/>
  4341. <col ref="rsrvexcuroomposscd"/>
  4342. <col ref="rsrvexcuroompossnm"/>
  4343. <col ref="excuroomcd"/>
  4344. <col ref="examroomnm"/>
  4345. <col ref="srchrsrvdt" format="yyyy-mm-dd hh:nn"/>
  4346. <col ref="bf_srchrsrvtm"/>
  4347. <col ref="rsrvdt"/>
  4348. <col ref="excutm"/>
  4349. <col ref="tmpldata"/>
  4350. <col ref="slepyn"/>
  4351. <col ref="excucdrem"/>
  4352. <col ref="prcpdelivefact"/>
  4353. <col ref="prcpnm"/>
  4354. <col disabled="true" ref="rcptyn" type="combo">
  4355. <choices>
  4356. <item>
  4357. <label>수납</label>
  4358. <value>Y</value>
  4359. </item>
  4360. <item>
  4361. <label>미수납</label>
  4362. <value>N</value>
  4363. </item>
  4364. <item>
  4365. <label>선처치</label>
  4366. <value>P</value>
  4367. </item>
  4368. </choices>
  4369. </col>
  4370. <col ref="rcptdd" format="yyyy-mm-dd"/>
  4371. <col ref="rsrvrid"/>
  4372. <col ref="rsrvrnm"/>
  4373. <col ref="actorddd"/>
  4374. <col ref="execdt" format="yyyy-mm-dd hh:nn"/>
  4375. <col ref="execrid1"/>
  4376. <col ref="execrnm"/>
  4377. <col ref="actcretno"/>
  4378. <col ref="rehbprcpcurepartnm"/>
  4379. <col ref="prcpdirecnm"/>
  4380. <col ref="rehbprcpcurefreqnm"/>
  4381. <col ref="execrem"/>
  4382. <col ref="basecd"/>
  4383. <col ref="eqmtifyn"/>
  4384. <col ref="pacsnocretyn"/>
  4385. <col ref="portprcpflag"/>
  4386. <col ref="carecnfmdd"/>
  4387. <col ref="prcphopedd"/>
  4388. <col ref="unrsrvexecyn"/>
  4389. <col ref="precureprcpflag"/>
  4390. <col ref="aftrcptinfo"/>
  4391. <col ref="rcptrsrvyn"/>
  4392. <col ref="rcptacptyn"/>
  4393. <col ref="execbaseflag"/>
  4394. <col ref="lrgcd"/>
  4395. <col ref="mdlcd"/>
  4396. <col ref="modality"/>
  4397. <col ref="rsrvexmptmplcd"/>
  4398. <col ref="clincstdycd"/>
  4399. <col ref="ordrsrvdt"/>
  4400. <col ref="rgstdeptcd"/>
  4401. <col ref="rgstrid"/>
  4402. <script type="javascript" ev:event="onmousedown">
  4403. <![CDATA[
  4404. if (!grd_fcex.isCell(event.target) || grd_fcex.mouseRow < 1) {
  4405. return;
  4406. }
  4407. if (grd_fcex.mouseRow == FUNC_SEL_ROW) {
  4408. return;
  4409. }
  4410. if (grd_fcex.mouseCol != grd_fcex.colRef("chk")) {
  4411. return;
  4412. }
  4413. if (model.getValue("/root/main/fcexlist/fcexinfo[" + grd_fcex.mouseRow + "]/chk") == "Y") {
  4414. grd_fcex.rowStyle(grd_fcex.mouseRow, "data", "background-color") = "#ffffff";
  4415. } else {
  4416. grd_fcex.rowStyle(grd_fcex.mouseRow, "data", "background-color") = "#ececec";
  4417. }
  4418. ]]>
  4419. </script>
  4420. <script type="javascript" ev:event="onclick">
  4421. <![CDATA[
  4422. if (!grd_fcex.isCell(event.target) || grd_fcex.row < 1) {
  4423. return;
  4424. }
  4425. if (grd_fcex.col == grd_fcex.colRef("chk")) {
  4426. return;
  4427. }
  4428. if (event.ctrlKey) {
  4429. model.setValue("/root/send/data/pid", model.getValue("/root/main/fcexlist/fcexinfo[" + grd_fcex.row + "]/pid"));
  4430. ipt_pid.refresh();
  4431. btn_excu.dispatch("DOMActivate");
  4432. btn_search.dispatch("DOMActivate");
  4433. return;
  4434. }
  4435. fSetFuncExcuInfo();
  4436. ]]>
  4437. </script>
  4438. </datagrid>
  4439. </case>
  4440. <case id="anot">
  4441. <line id="line5" class="line_1" style="x1:0px; y1:0px; x2:1070px; y2:0px; "/>
  4442. <datagrid id="grd_anex" nodeset="/root/main/anexlist/anexinfo" allowselection="false" backcoloralternate="transparent" caption="예약^수납^처방일^진료과^처방의^처방코드^처방명^검사실^희망일^예약일시^소요^종료^처방일련번호^처방진행상태코드^상태^실시일시^예약참고사항" colsep="^" colwidth="50,50,75,100,50,0,235,120,0,110,35,40,0,0,80,110,300" ellipsis="true" mergecellsfixedrows="bycolrec" rowsep="|" tooltip="label" style="left:0px; top:5px; width:1070px; height:185px; text-align:center; ">
  4443. <col ref="rsrvflagyn"/>
  4444. <col ref="rcptyn"/>
  4445. <col ref="prcpdd" format="yyyy-mm-dd"/>
  4446. <col ref="orddeptnm"/>
  4447. <col ref="orddrnm"/>
  4448. <col ref="calcscorcd"/>
  4449. <col ref="prcpnm"/>
  4450. <col ref="excuroomnm"/>
  4451. <col ref="prcphopedd"/>
  4452. <col ref="srchrsrvtm" format="yyyy-mm-dd hh:nn"/>
  4453. <col ref="excutm"/>
  4454. <col ref="endtime" format="hh:nn"/>
  4455. <col ref="execprcpuniqno" visibility="hidden"/>
  4456. <col ref="execprcpstatcd" visibility="hidden"/>
  4457. <col ref="execprcpstatnm"/>
  4458. <col ref="exectm" format="yyyy-mm-dd hh:nn"/>
  4459. <col ref="rsrvrem" style="text-align:left; "/>
  4460. <script type="javascript" ev:event="onaftersort">
  4461. <![CDATA[
  4462. grd_anex.gridToInstance();
  4463. ]]>
  4464. </script>
  4465. </datagrid>
  4466. </case>
  4467. </switch>
  4468. <group id="grp_legend_excu" visibility="hidden" style="left:523px; top:213px; width:290px; height:205px; border-color:darkgray; border-style:solid; ">
  4469. <caption id="caption28" style="left:15px; top:15px; width:20px; height:20px; text-align:center; background-color:#a0ffa0; border-color:#999999; border-style:solid; "/>
  4470. <caption id="caption29" style="left:15px; top:40px; width:20px; height:20px; text-align:center; background-color:#ececec; border-color:#999999; border-style:solid; "/>
  4471. <caption id="caption2" style="left:40px; top:15px; width:208px; height:20px; ">설정 (검사실, 예약일, 예약 현황 연계)</caption>
  4472. <caption id="caption12" style="left:40px; top:40px; width:35px; height:20px; ">선택</caption>
  4473. <caption id="caption30" style="left:15px; top:95px; width:20px; height:20px; font-weight:bold; color:#ffff00; text-align:center; background-color:#ff5050; border-color:#999999; border-style:solid; ">가</caption>
  4474. <caption id="caption31" style="left:40px; top:95px; width:97px; height:20px; ">VIP (이지패스)</caption>
  4475. <caption id="caption32" style="left:15px; top:120px; width:20px; height:20px; font-weight:bold; color:#ff9a00; text-align:center; border-color:#999999; border-style:solid; ">가</caption>
  4476. <caption id="caption33" style="left:40px; top:120px; width:94px; height:20px; ">처방 당일 후수납</caption>
  4477. <caption id="caption34" style="left:15px; top:145px; width:20px; height:20px; font-weight:bold; color:#ff0000; text-align:center; border-color:#999999; border-style:solid; ">가</caption>
  4478. <caption id="caption35" style="left:40px; top:145px; width:50px; height:20px; ">미수납</caption>
  4479. <caption id="caption36" style="left:15px; top:170px; width:20px; height:20px; font-weight:bold; text-align:center; border-color:#999999; border-style:solid; ">가</caption>
  4480. <caption id="caption41" style="left:40px; top:170px; width:50px; height:20px; ">수납</caption>
  4481. <caption id="caption44" style="left:14px; top:72px; width:55px; height:20px; ">[ 수납 ]</caption>
  4482. <caption id="caption45" style="left:155px; top:72px; width:58px; height:20px; ">[ 처방명 ]</caption>
  4483. <caption id="caption46" style="left:155px; top:95px; width:20px; height:20px; font-weight:bold; color:#0000ff; text-align:center; border-color:#999999; border-style:solid; ">가</caption>
  4484. <caption id="caption47" style="left:180px; top:95px; width:90px; height:20px; ">검사안내문 있음</caption>
  4485. </group>
  4486. <group id="grp_directsms" visibility="hidden" style="left:355px; top:35px; width:500px; height:210px; background-color:#ffcc99; border-color:darkgray; border-style:solid; ">
  4487. <group id="group1" style="left:5px; top:5px; width:489px; height:199px; border-color:darkgray; border-style:solid; ">
  4488. <caption id="caption4" class="tit_2" style="left:5px; top:10px; width:85px; height:13px; ">문자 전송</caption>
  4489. <datagrid id="grd_sms" nodeset="/root/hidden/smslist/smsinfo" caption="진료과^문자 내용" colsep="^" colwidth="0^440" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:5px; top:30px; width:475px; height:134px; ">
  4490. <col ref="orddeptcd"/>
  4491. <col ref="msgcnts" type="input"/>
  4492. </datagrid>
  4493. <line id="line15" class="line_1" style="x1:5px; y1:25px; x2:480px; y2:25px; "/>
  4494. <button id="btn_sendsms" class="btn4_letter2" style="left:364px; top:169px; width:56px; height:22px; ">
  4495. <caption>전송</caption>
  4496. <script type="javascript" ev:event="DOMActivate">
  4497. <![CDATA[
  4498. if (messageBox("문자를 전송하시겠습니까?", "Q999") != 6) {
  4499. return;
  4500. }
  4501. var pid = model.getValue("/root/send/data/pid");
  4502. var hngnm = model.getValue("/root/main/ptinfo/hngnm");
  4503. var tel = model.getValue("/root/main/ptinfo/mpphontel");
  4504. for (var i = 1; i <= instance1.selectNodes("/root/hidden/smslist/smsinfo").length; i++) {
  4505. var msg = model.getValue("/root/hidden/smslist/smsinfo[" + i + "]/msgcnts");
  4506. var deptcd = model.getValue("/root/hidden/smslist/smsinfo[" + i + "]/orddeptcd");
  4507. fSmsSend(msg, pid, hngnm, tel, deptcd, "03");
  4508. }
  4509. messageBox("문자를 전송하였습니다.", "I999");
  4510. ]]>
  4511. </script>
  4512. </button>
  4513. <button id="btn_closesms" class="btn4_letter2" style="left:424px; top:169px; width:56px; height:22px; ">
  4514. <caption>닫기</caption>
  4515. <script type="javascript" ev:event="DOMActivate">
  4516. <![CDATA[
  4517. grp_directsms.visible = false;
  4518. ]]>
  4519. </script>
  4520. </button>
  4521. </group>
  4522. </group>
  4523. <switch id="sw_ptcmt" style="left:0px; top:55px; width:330px; height:135px; border-width:0; ">
  4524. <case id="ptcmt" selected="true">
  4525. <button id="btn_addcmt" class="btn2_letter2" style="left:175px; top:0px; width:42px; height:19px; focus-rect:hidden; ">
  4526. <caption>추가</caption>
  4527. <script type="javascript" ev:event="DOMActivate">
  4528. <![CDATA[
  4529. if (btn_addcmt.attribute("text") == "추가") {
  4530. if (instance1.selectNodes("/root/main/ptcmtlist/ptcmtinfo[cmtdd='" + getCurrentDate() + "']").length > 0) {
  4531. model.setValue("/root/temp/ptcmt", model.getValue("/root/main/ptcmtlist/ptcmtinfo[cmtdd='" + getCurrentDate() + "']/patcmt"));
  4532. } else if (model.getValue("/root/send/ptcmt/cmtdd") != getCurrentDate()) {
  4533. model.setValue("/root/temp/ptcmt", "");
  4534. }
  4535. tar_ptcmt.refresh();
  4536. model.setValue("/root/send/ptcmt/cmtdd", getCurrentDate());
  4537. btn_addcmt.attribute("text") = "닫기";
  4538. tar_ptcmt.visible = true;
  4539. btn_savecmt.disabled = false;
  4540. btn_delcmt.disabled = true;
  4541. model.setFocus("tar_ptcmt");
  4542. } else {
  4543. /*
  4544. var cnt = instance1.selectNodes("/root/main/ptcmtlist/ptcmtinfo").length;
  4545. for (var i = 1; i <= cnt; i++) {
  4546. if (model.getValue("/root/send/ptcmt/cmtdd") == model.getValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/cmtdd")) {
  4547. var currcmt = model.getValue("/root/temp/ptcmt");
  4548. model.setValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/patcmt", currcmt);
  4549. grd_ptcmt.refresh();
  4550. if (currcmt != model.getValue("/root/main/ptcmtlist/ptcmtinfo[" + i + "]/bf_patcmt")) {
  4551. grd_ptcmt.rowStyle(i - 1, "data", "color") = "#0000ff";
  4552. } else {
  4553. grd_ptcmt.rowStyle(i - 1, "data", "color") = "#000000";
  4554. }
  4555. grd_ptcmt.resizeCells();
  4556. break;
  4557. }
  4558. }
  4559. */
  4560. btn_addcmt.attribute("text") = "추가";
  4561. tar_ptcmt.visible = false;
  4562. btn_savecmt.disabled = true;
  4563. btn_delcmt.disabled = false;
  4564. }
  4565. ]]>
  4566. </script>
  4567. </button>
  4568. <button id="btn_savecmt" class="btn2_letter2" disabled="true" style="left:218px; top:0px; width:42px; height:19px; focus-rect:hidden; ">
  4569. <caption>저장</caption>
  4570. <script type="javascript" ev:event="DOMActivate">
  4571. <![CDATA[
  4572. if (model.getValue("/root/send/data/pid") == "") {
  4573. messageBox("조회된 환자가 없습니다.", "E999");
  4574. return;
  4575. }
  4576. fSetPtCmt(true);
  4577. ]]>
  4578. </script>
  4579. </button>
  4580. <button id="btn_ptcmtex" style="left:304px; top:0px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_bottom.gif; focus-rect:hidden; ">
  4581. <caption/>
  4582. <script type="javascript" ev:event="DOMActivate">
  4583. <![CDATA[
  4584. fSetPtCmtExt(false);
  4585. ]]>
  4586. </script>
  4587. </button>
  4588. <line id="line9" class="line_1" style="x1:0px; y1:20px; x2:330px; y2:20px; "/>
  4589. <datagrid id="grd_ptcmt" nodeset="/root/main/ptcmtlist/ptcmtinfo" allowselection="false" autoresize="true" backcoloralternate="transparent" colsep="^" colwidth="70, 50, 200" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:25px; width:330px; height:110px; ">
  4590. <col ref="cmtdd" format="yyyy-mm-dd" style="text-align:center; "/>
  4591. <col ref="usernm" visibility="hidden" style="text-align:center; "/>
  4592. <col ref="patcmt"/>
  4593. <script type="javascript" ev:event="ondblclick">
  4594. <![CDATA[
  4595. if (grd_ptcmt.row < 0) {
  4596. return;
  4597. }
  4598. model.setValue("/root/send/ptcmt/cmtdd", model.getValue("/root/main/ptcmtlist/ptcmtinfo[" + ( grd_ptcmt.row + 1 ) + "]/cmtdd"));
  4599. model.setValue("/root/temp/ptcmt", model.getValue("/root/main/ptcmtlist/ptcmtinfo[" + ( grd_ptcmt.row + 1 ) + "]/patcmt"));
  4600. tar_ptcmt.refresh();
  4601. btn_addcmt.attribute("text") = "닫기";
  4602. tar_ptcmt.visible = true;
  4603. btn_savecmt.disabled = false;
  4604. btn_delcmt.disabled = true;
  4605. model.setFocus("tar_ptcmt");
  4606. ]]>
  4607. </script>
  4608. </datagrid>
  4609. <caption id="caption75" class="tit_2" style="left:0px; top:5px; width:105px; height:13px; ">예약 전달 사항</caption>
  4610. <textarea id="tar_ptcmt" ref="/root/temp/ptcmt" visibility="hidden" scroll="autovscroll" imemode="hangul" maxbyte="4000" style="left:10px; top:35px; width:310px; height:90px; padding-left:10; padding-top:10; padding-right:20; padding-bottom:10; background-color:#ffffc2; border-color:#808080; "/>
  4611. <button id="btn_delcmt" class="btn2_letter2" disabled="true" style="left:261px; top:0px; width:42px; height:19px; focus-rect:hidden; ">
  4612. <caption>삭제</caption>
  4613. <script type="javascript" ev:event="DOMActivate">
  4614. <![CDATA[
  4615. if (model.getValue("/root/send/data/pid") == "") {
  4616. messageBox("조회된 환자가 없습니다.", "E999");
  4617. return;
  4618. }
  4619. if (grd_ptcmt.row < 0) {
  4620. messageBox("삭제할 내역이 선택되지 않았습니다.", "E999");
  4621. return;
  4622. }
  4623. fSetPtCmt(false);
  4624. ]]>
  4625. </script>
  4626. </button>
  4627. <select1 id="cmb_rsrvplce" ref="/root/ctrl/hidden/rsrvplce" visibility="hidden" appearance="minimal" style="left:119px; top:0px; width:55px; height:19px; ">
  4628. <choices>
  4629. <item>
  4630. <label>통합</label>
  4631. <value>T</value>
  4632. </item>
  4633. <item>
  4634. <label>외래</label>
  4635. <value>O</value>
  4636. </item>
  4637. <item>
  4638. <label>입원</label>
  4639. <value>I</value>
  4640. </item>
  4641. <item>
  4642. <label>건진</label>
  4643. <value>S</value>
  4644. </item>
  4645. </choices>
  4646. <script type="javascript" ev:event="xforms-value-changed">
  4647. <![CDATA[
  4648. RSRV_PLCE = model.getValue("/root/ctrl/hidden/rsrvplce");
  4649. fSetRsrvPlce();
  4650. ]]>
  4651. </script>
  4652. </select1>
  4653. </case>
  4654. <case id="srchroom">
  4655. <line id="line10" class="line_1" style="x1:0px; y1:20px; x2:330px; y2:20px; "/>
  4656. <caption id="caption76" class="tit_2" style="left:0px; top:5px; width:90px; height:14px; ">조회 검사실</caption>
  4657. <datagrid id="grd_srchroom" nodeset="/root/init/srchroomlist/roominfo" allowselection="false" backcoloralternate="transparent" caption="^검사실코드^검사실" colsep="^" colwidth="30, 0, 290" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:25px; width:330px; height:110px; ">
  4658. <col checkvalue="Y,N" ref="chk" type="checkbox"/>
  4659. <col ref="roomcd"/>
  4660. <col ref="roomnm"/>
  4661. <script type="javascript" ev:event="onclick">
  4662. <![CDATA[
  4663. if (!grd_srchroom.isCell(event.target) || grd_srchroom.row < 1 || grd_srchroom.col == grd_srchroom.colRef("chk")) {
  4664. return;
  4665. }
  4666. var chk = model.getValue("/root/init/srchroomlist/roominfo[" + grd_srchroom.row + "]/chk");
  4667. chk = chk == "Y" ? "N" : "Y";
  4668. model.setValue("/root/init/srchroomlist/roominfo[" + grd_srchroom.row + "]/chk", chk);
  4669. grd_srchroom.refresh();
  4670. ]]>
  4671. </script>
  4672. </datagrid>
  4673. <select1 id="cmb_srchdept" ref="/root/send/data/srchdeptcd" visibility="hidden" appearance="minimal" style="left:98px; top:0px; width:177px; height:19px; ">
  4674. <choices>
  4675. <itemset nodeset="/root/init/srchdeptlist/deptinfo">
  4676. <label ref="deptnm"/>
  4677. <value ref="deptcd"/>
  4678. </itemset>
  4679. </choices>
  4680. <script type="javascript" ev:event="xforms-value-changed">
  4681. <![CDATA[
  4682. model.setValue("/root/hidden/dutplcenm", cmb_srchdept.label);
  4683. cap_dept.refresh();
  4684. submit("TRPEA00108");
  4685. ]]>
  4686. </script>
  4687. </select1>
  4688. <button id="btn_roomex" style="left:304px; top:0px; width:26px; height:19px; background-image:../../../com/commonweb/images/btn_send_bottom.gif; focus-rect:hidden; ">
  4689. <caption/>
  4690. <script type="javascript" ev:event="DOMActivate">
  4691. <![CDATA[
  4692. if (btn_roomex.attribute("background-image") == "../../../com/commonweb/images/btn_send_bottom.gif") {
  4693. sw_ptcmt.attribute("height") = "350px";
  4694. grd_srchroom.attribute("height") = "325px";
  4695. btn_roomex.attribute("background-image") = "../../../com/commonweb/images/btn_send_top.gif";
  4696. } else {
  4697. sw_ptcmt.attribute("height") = "135";
  4698. grd_srchroom.attribute("height") = "110px";
  4699. btn_roomex.attribute("background-image") = "../../../com/commonweb/images/btn_send_bottom.gif";
  4700. }
  4701. ]]>
  4702. </script>
  4703. </button>
  4704. </case>
  4705. </switch>
  4706. <button id="btn_init" class="btn4_letter3" style="left:1127px; top:412px; width:68px; height:22px; ">
  4707. <caption>초기화</caption>
  4708. <script type="javascript" ev:event="DOMActivate">
  4709. <![CDATA[
  4710. if (messageBox("화면을 초기화 하시겠습니까?", "Q999") == 6) {
  4711. fInit();
  4712. }
  4713. ]]>
  4714. </script>
  4715. </button>
  4716. <group id="grp_msg" visibility="hidden" style="left:245px; top:440px; width:700px; height:320px; background-color:#e2e2e2; border-color:darkmagenta; border-width:5px; border-style:solid; ">
  4717. <textarea id="tar_alertmsg" ref="/root/temp/alertmsg" scroll="autovscroll" editable="false" style="left:14px; top:14px; width:662px; height:240px; font-family:맑은 고딕; font-size:16pt; font-weight:bold; text-align:left; vertical-align:middle; word-wrap:word; line-spacing:5; padding-left:10; background-color:#ffff64; border-color:gray; "/>
  4718. <caption id="cap_closemsg" style="left:309px; top:267px; width:80px; height:30px; font-size:12pt; font-weight:bold; text-align:center; background-color:#ffffff; border-color:gray; border-width:1; border-style:solid; cursor:hand; ">
  4719. <![CDATA[확인]]>
  4720. <script type="javascript" ev:event="onclick">
  4721. <![CDATA[
  4722. grp_msg.visible = false;
  4723. ]]>
  4724. </script>
  4725. <script type="javascript" ev:event="onmousedown">
  4726. <![CDATA[
  4727. cap_closemsg.attribute("left") = "311px";
  4728. cap_closemsg.attribute("top") = "269px";
  4729. cap_closemsg.attribute("background-color") = "#f0f0f0";
  4730. ]]>
  4731. </script>
  4732. <script type="javascript" ev:event="onmouseup">
  4733. <![CDATA[
  4734. cap_closemsg.attribute("left") = "309px";
  4735. cap_closemsg.attribute("top") = "267px";
  4736. cap_closemsg.attribute("background-color") = "#ffffff";
  4737. grp_msg.visible = false;
  4738. ]]>
  4739. </script>
  4740. </caption>
  4741. </group>
  4742. </xhtml:body>
  4743. </xhtml:html>