Copy of SMPIJ00300.xjs 191 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[// =================================================================================================
  3. // - 2009.04.27 Creation JHP
  4. //==================================================================================================
  5. /* --------------------------------------------------------------------------------------------------
  6. Fucntion Name || Description
  7. -----------------------------------------------------------------------------------------------------
  8. 2009.07.23 JHP
  9. 심사화면 환자 메세지 여부확인: fGetPatMsgYn
  10. 환자기준 전송메세지작성 : fPatJudgPatMsgTrsm
  11. 처방기준 전송메세지작성 : fOrderJudgPatMsgTrsm
  12. 해당건 환자 전체 메세지 보기 : fJudgPatMsgTrsmRef
  13. 2009.08.13 JHP
  14. 처방사유조회 : fPrcpResnRef
  15. 환자번호 첫자리 문자인경우 환자번호로 인식 fChkPidWordNumber
  16. */
  17. // 수정이력 :
  18. // 20090811 수정추가 JHP, 변경요청 858 재원심사에서 계산처방 조회시 진료과는 전체로 넘겨야함. 하여 기존 것. 주석, 빈값 넘김으로 수정
  19. // 20090811 수정추가 JHP, 변경요청 858 재원심사에서 계산처방 조회시 진료과는 전체로 넘겨야함. 진료과별 의사를 보기때문에 의사도 일단 전체로 해놓음.
  20. // 20090817 수정추가 JHP, 수정요청 계산처방시행조회 화면 edicd 조회조건에 존재하기에 추가함. 없으면 singlenode 에러남.
  21. var VAL_today = utlf_getCurrentDate();
  22. var VAL_fromdd = VAL_today.toDate().getAddDate(-6,"M").getDateFormat("YYYYMM");
  23. var VAL_userid = sysf_getUserId();
  24. var VAL_usernm = sysf_getUserName();
  25. function fOpenSMPIS00500Detail() {
  26. dsf_makeValue( ds_hidden_smpis00500_cond, "patunitsrch", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  27. dsf_makeValue( ds_hidden_smpis00500_cond, "code", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  28. dsf_makeValue( ds_hidden_smpis00500_cond, "datecond", "string", "");
  29. dsf_makeValue( ds_hidden_smpis00500_cond, "fromdd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  30. dsf_makeValue( ds_hidden_smpis00500_cond, "todd", "string", ds_main_item1_iteminfo.getColumn(0, "dschdd"));
  31. dsf_makeValue( ds_hidden_smpis00500_cond, "ioflag", "string", "I");
  32. dsf_makeValue( ds_hidden_smpis00500_cond, "orddeptcd", "string", "");
  33. dsf_makeValue( ds_hidden_smpis00500_cond, "orddrid", "string", "");
  34. dsf_makeValue( ds_hidden_smpis00500_cond, "codecond", "string", "");
  35. dsf_makeValue( ds_hidden_smpis00500_cond, "judgrid", "string", "");
  36. dsf_makeValue( ds_hidden_smpis00500_cond, "cancer", "string", "");
  37. dsf_makeValue( ds_hidden_smpis00500_cond, "large", "string", "");
  38. dsf_makeValue( ds_hidden_smpis00500_cond, "middle", "string", "");
  39. dsf_makeValue( ds_hidden_smpis00500_cond, "small", "string", "");
  40. dsf_makeValue( ds_hidden_smpis00500_cond, "edicd", "string", "");
  41. // frmf_modal("SMPIS00500", "SMPIS00500", "ds_hidden_smpis00500_cond""-"ds_send"", "", "1", "10", "10", "", "", "", "", "", "M");
  42. }
  43. function fOpenSMPIS00600Detail() {
  44. fOpenSMPIS00600Call("false");
  45. }
  46. function fOpenSMPIS00600Detail2() {
  47. fOpenSMPIS00600Call("true");
  48. }
  49. function fOpenSMPIS00600Call(cutonly) {
  50. dsf_makeValue( ds_hidden_smpis00600_cond, "patunitsrch", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  51. dsf_makeValue( ds_hidden_smpis00600_cond, "code", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  52. dsf_makeValue( ds_hidden_smpis00600_cond, "clamym", "string", "");
  53. dsf_makeValue( ds_hidden_smpis00600_cond, "clamymfrom", "string", VAL_fromdd);
  54. dsf_makeValue( ds_hidden_smpis00600_cond, "clamdgfrom", "string", "");
  55. dsf_makeValue( ds_hidden_smpis00600_cond, "clamymto", "string", VAL_today);
  56. dsf_makeValue( ds_hidden_smpis00600_cond, "clamdgto", "string", "");
  57. dsf_makeValue( ds_hidden_smpis00600_cond, "clamflag", "string", "");
  58. dsf_makeValue( ds_hidden_smpis00600_cond, "ioflag", "string", "I");
  59. dsf_makeValue( ds_hidden_smpis00600_cond, "insukind", "string", ds_main_item1_iteminfo.getColumn(0, "insukindcd"));
  60. dsf_makeValue( ds_hidden_smpis00600_cond, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  61. dsf_makeValue( ds_hidden_smpis00600_cond, "orddrid", "string", ds_main_item1_iteminfo.getColumn(0, "medispclid"));
  62. dsf_makeValue( ds_hidden_smpis00600_cond, "cutonly", "string", cutonly);
  63. frmf_modal("SMPIS00600", "SMPIS00600", "ds_hidden_smpis00600_cond""-"ds_send"", "", "1", "10", "10", "", "", "", "", "", "M");
  64. }
  65. /* 환자기준 전송메세지작성, JHP. 2009.07.16 */
  66. function fPatJudgPatMsgTrsm() {
  67. if (!utlf_isNull(ds_main_item1_iteminfo.getColumn(0, "pid"))) {
  68. fMsgTrsmMakeNode("P");
  69. } else {
  70. sysf_messageBox("기본정보가 ", "I004");
  71. }
  72. //model.refresh();
  73. frmf_modal("SPPIZ01900_심사환자메세지작성", "", "ds_tmp_msgtrsm_info""-"ds_main_patinfo"", "", "", "400", "300", "", "", "", "", "", "M");
  74. ds_tmp_msgtrsm.clearData();
  75. }
  76. /* 처방기준 전송메세지작성, JHP. 2009.07.16 */
  77. function fOrderJudgPatMsgTrsm() {
  78. if (!utlf_isNull(ds_main_item1_iteminfo.getColumn(0, "pid"))) {
  79. if(grd_ordlist.row <= 0){
  80. return;
  81. }
  82. fMsgTrsmMakeNode("O");
  83. } else {
  84. sysf_messageBox("기본정보가 ", "I004");
  85. }
  86. //model.refresh();
  87. frmf_modal("SPPIZ01900_심사환자메세지작성", "", "ds_tmp_msgtrsm_info""-"ds_main_patinfo"", "", "", "400", "300", "", "", "", "", "", "M");
  88. ds_tmp_msgtrsm.clearData();
  89. }
  90. function fMsgTrsmMakeNode(kindflag) {
  91. // 인스턴스생성
  92. dsf_makeValue( ds_tmp_msgtrsm_info, "instcd", "string", "");
  93. dsf_makeValue( ds_tmp_msgtrsm_info, "msgwrtedd", "string", VAL_today);
  94. dsf_makeValue( ds_tmp_msgtrsm_info, "msgwrteno", "string", "");
  95. dsf_makeValue( ds_tmp_msgtrsm_info, "msgwrtehistno", "string", "");
  96. dsf_makeValue( ds_tmp_msgtrsm_info, "histstat", "string", "Y");
  97. dsf_makeValue( ds_tmp_msgtrsm_info, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  98. dsf_makeValue( ds_tmp_msgtrsm_info, "orddd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  99. dsf_makeValue( ds_tmp_msgtrsm_info, "cretno", "string", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  100. dsf_makeValue( ds_tmp_msgtrsm_info, "mskind", "string", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  101. dsf_makeValue( ds_tmp_msgtrsm_info, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  102. dsf_makeValue( ds_tmp_msgtrsm_info, "orddrid", "string", ds_main_item1_iteminfo.getColumn(0, "medispclid"));
  103. dsf_makeValue( ds_tmp_msgtrsm_info, "orddrnm", "string", ds_main_item1_iteminfo.getColumn(0, "medispclnm"));
  104. dsf_makeValue( ds_tmp_msgtrsm_info, "ordtype", "string", "I");
  105. dsf_makeValue( ds_tmp_msgtrsm_info, "ordqty", "string", 0);
  106. dsf_makeValue( ds_tmp_msgtrsm_info, "ordtims", "string", 0);
  107. dsf_makeValue( ds_tmp_msgtrsm_info, "orddays", "string", 0);
  108. dsf_makeValue( ds_tmp_msgtrsm_info, "rgstrid", "string", "-");
  109. dsf_makeValue( ds_tmp_msgtrsm_info, "rgstdd", "string", "-");
  110. dsf_makeValue( ds_tmp_msgtrsm_info, "rgsttm", "string", "-");
  111. dsf_makeValue( ds_tmp_msgtrsm_info, "sendphone", "string", "");
  112. dsf_makeValue( ds_tmp_msgtrsm_info, "anybodyyn", "string", "N");
  113. dsf_makeValue( ds_tmp_msgtrsm_info, "sendflag", "string", "O");
  114. dsf_makeValue( ds_tmp_msgtrsm_info, "senddate", "string", "");
  115. dsf_makeValue( ds_tmp_msgtrsm_info, "sendid", "string", VAL_userid);
  116. dsf_makeValue( ds_tmp_msgtrsm_info, "deliveid", "string", "-");
  117. dsf_makeValue( ds_tmp_msgtrsm_info, "recvdate", "string", "");
  118. dsf_makeValue( ds_tmp_msgtrsm_info, "recvid", "string", "");
  119. dsf_makeValue( ds_tmp_msgtrsm_info, "recvcnfmyn", "string", "N");
  120. dsf_makeValue( ds_tmp_msgtrsm_info, "recvcnfmid", "string", VAL_userid);
  121. dsf_makeValue( ds_tmp_msgtrsm_info, "sendmsg", "string", "");
  122. dsf_makeValue( ds_tmp_msgtrsm_info, "recvmsg", "string", "");
  123. dsf_makeValue( ds_tmp_msgtrsm_info, "fstrgstrid", "string", "");
  124. dsf_makeValue( ds_tmp_msgtrsm_info, "fstrgstdt", "string", "");
  125. dsf_makeValue( ds_tmp_msgtrsm_info, "lastupdtrid", "string", "");
  126. dsf_makeValue( ds_tmp_msgtrsm_info, "lastupdtdt", "string", "");
  127. if (kindflag == "P") {
  128. dsf_makeValue( ds_tmp_msgtrsm_info, "kindflag", "string", kindflag);
  129. dsf_makeValue( ds_tmp_msgtrsm_info, "grupcalcscorcd", "string", "-");
  130. dsf_makeValue( ds_tmp_msgtrsm_info, "snglcalcscorcd", "string", "-");
  131. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpdd", "string", "-");
  132. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpno", "string", 0);
  133. dsf_makeValue( ds_tmp_msgtrsm_info, "prcppayflag", "string", "-");
  134. } else if (kindflag == "O") {
  135. dsf_makeValue( ds_tmp_msgtrsm_info, "kindflag", "string", kindflag); // 처방기준 'O', chk
  136. dsf_makeValue( ds_tmp_msgtrsm_info, "grupcalcscorcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("grupcalcscorcd"))); //chk
  137. dsf_makeValue( ds_tmp_msgtrsm_info, "snglcalcscorcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));; //chk
  138. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpdd", "string", ""); // 서버단에서 조회하여 가져와야함. chk(입원만)
  139. dsf_makeValue( ds_tmp_msgtrsm_info, "prcpno", "string", ""); // 서버단에서 조회하여 가져와야함. chk(입원만)
  140. dsf_makeValue( ds_tmp_msgtrsm_info, "prcppayflag", "string", ""); // 서버단에서 조회하여 가져와야함. chk (입원만)
  141. }
  142. }
  143. // 환자 전체 메세지 내용 조회하여 하나씩 보기.
  144. function fJudgPatMsgTrsmRef(){
  145. dsf_makeValue( ds_tmp_msgtrsm_info, "refyn", "string", "Y");
  146. dsf_makeValue( ds_tmp_msgtrsm_info, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  147. dsf_makeValue( ds_tmp_msgtrsm_info, "orddd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1"));
  148. dsf_makeValue( ds_tmp_msgtrsm_info, "cretno", "string", ds_main_item1_iteminfo.getColumn(0, "cretno"));
  149. dsf_makeValue( ds_tmp_msgtrsm_info, "mskind", "string", ds_main_item1_iteminfo.getColumn(0, "mskind"));
  150. dsf_makeValue( ds_tmp_msgtrsm_info, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  151. dsf_makeValue( ds_tmp_msgtrsm_info, "orddrid", "string", ds_main_item1_iteminfo.getColumn(0, "medispclid"));
  152. dsf_makeValue( ds_tmp_msgtrsm_info, "ordtype", "string", "I");
  153. frmf_modal("SMPIJ02600_메세지현황", "", "ds_tmp_msgtrsm_info""-"ds_init_openchk"", "", "", "100", "100", "", "", "", "", "", "M");
  154. ds_tmp_msgtrsm.clearData();
  155. }
  156. // 처방사유조회
  157. // history.. 진료에 있는화면 기본조건으로 팝업사용..YS(윤샘)요청
  158. function fPrcpResnRef(){
  159. // 세션값 받기
  160. dsf_makeValue( ds_tmp_prcpresnref_info, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid")); // 등록번호
  161. dsf_makeValue( ds_tmp_prcpresnref_info, "fromdd", "string", ds_main_item1_iteminfo.getColumn(0, "indd1")); // 처방시작일 default indd
  162. dsf_makeValue( ds_tmp_prcpresnref_info, "todd", "string", ds_main_item1_iteminfo.getColumn(0, "dschdd")); // 처방종료일 default dschdd
  163. dsf_makeValue( ds_tmp_prcpresnref_info, "orddeptcd", "string", "-"); // 진료과 : 주진료과
  164. dsf_makeValue( ds_tmp_prcpresnref_info, "orddrid", "string", "-"); // 주치의 : default "-"
  165. dsf_makeValue( ds_tmp_prcpresnref_info, "mainjudgid", "string", "-"); // 심사자 : 현재심사자
  166. dsf_makeValue( ds_tmp_prcpresnref_info, "prcpcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("grupcalcscorcd"))); // 수가코드 : 그룹코드
  167. dsf_makeValue( ds_tmp_prcpresnref_info, "insukind", "string", ds_main_item1_iteminfo.getColumn(0, "insukindcd")); // 보험유형 : 환자보험유형
  168. dsf_makeValue( ds_tmp_prcpresnref_info, "ioflag", "string", "I"); // 내원유형 : default "-"
  169. dsf_makeValue( ds_tmp_prcpresnref_info, "resncd", "string", "FF"); // 사유구분 : default "FF" 중복처방
  170. dsf_makeValue( ds_tmp_prcpresnref_info, "popup", "string", "judg"); // 팝업사용처구분 : judg(심사)
  171. frmf_modal("SPMMO19000_중복처방사유조회", "", "ds_tmp_prcpresnref_info""-"ds_tmp_prcpresnref_info"", "", "", "400", "300", "", "", "", "", "", "M");
  172. ds_tmp_prcpresnref.clearData();
  173. }
  174. // 환자번호 문자 숫자 여부 판단. (isNaN 숫자가아닐경우 true, isFinite 숫자일경우 true)
  175. // 성가환자번호중 첫글자가 문자인경우가 있어서 판단함.
  176. // 현재 재원메인은 적용안함. 대상자조회만 따로 화면에 적용함.
  177. function fChkPidWordNumber(pid)
  178. {
  179. if( typeof( this ) == "undefined" ) return false;
  180. if( this.length == 0 ) return false;
  181. var thisSting = pid.toString();
  182. var firstpid = "";
  183. for( var i=0; i < thisSting.length; i++ ){
  184. var thisNumber = thisSting.substring( i, i+1 );
  185. // 숫자가 아니면
  186. if( isNaN( thisNumber ) ) firstpid = firstpid + 'W';
  187. // 숫자면
  188. if( isNaN( thisNumber ) == false ) firstpid = firstpid + 'N';
  189. // 공백이면 FALSE 리턴
  190. if( " " == thisNumber ) firstpid = firstpid + 'L';
  191. }
  192. var firstpidYN = firstpid.substring( 0, 2 );
  193. // 첫번째 두번째 글자 여부
  194. // 문자숫자, 숫자숫자 : pid로 판단 : true
  195. // 문자문자, 숫자문자 : 글자로 판단 : false
  196. // 그외 : 글자로 판단 : false
  197. if ( firstpidYN == "WN"){ return true}
  198. else if ( firstpidYN == "NN"){ return true}
  199. else if ( firstpidYN == "WW"){ return false}
  200. else if ( firstpidYN == "NW"){ return false}
  201. else { return false }
  202. }
  203. // 처방 Grid 마우스 오른쪽 "처방주석입력"
  204. function fOrderGridInsertCmt() {
  205. var rdounitflag = ds_send.getColumn(0, "unitflag");
  206. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  207. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  208. var rows = grd_clcjlist.rows;
  209. if (rdounitflag == "M") {
  210. // 줄단위로 셋팅하고 처리
  211. model.setValue(rdo_unitflag.attribute("ref"), "J");
  212. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  213. grd_clcjlist.rebuild();
  214. // 단위에 에 따라 해당 행있는 특정코드 콤보 재설정
  215. for (var i=1; i< rows; i++) {
  216. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  217. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  218. if (status != "") {
  219. grd_clcjlist.rowStatus(i) = status;
  220. }
  221. if (unitflag == "M") {
  222. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M'' and cdid != 'MX999']";
  223. } else if (unitflag == "J") {
  224. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  225. }
  226. }
  227. }
  228. ds_hidden_sppij00500_rslt.clearData(); // SPPIJ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  229. ds_hidden_sppij00500_cond.clearData();
  230. for (var k=0; k < grd_ordlist.selectedRows; k++ ) {
  231. var row = grd_ordlist.selectedRow(k);
  232. var edicd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("edicd"));
  233. var calcscorcd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("snglcalcscorcd"));
  234. if (edicd) {
  235. } else {
  236. sysf_messageBox("EDI코드가 없는 경우 해당 줄단위 특정내역이", "I004"); ///EDI코드가 없는 경우 해당 줄단위 특정내역이 없습니다.
  237. return;
  238. }
  239. }
  240. var rowcnt = 1;
  241. var setrow = 0;
  242. for (var k=0; k < grd_ordlist.selectedRows; k++ ) {
  243. var row = grd_ordlist.selectedRow(k);
  244. var edicd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("edicd"));
  245. var calcscorcd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("snglcalcscorcd"));
  246. if (rows == 1) {
  247. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  248. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  249. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  250. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  251. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  252. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  253. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  254. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  255. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  256. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "X(700)");
  257. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  258. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  259. } else if (getNodesetCount(grd_clcjlist.nodeset+"[calcscorcd='"+calcscorcd+"']") == 0) {
  260. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  261. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  262. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  263. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  264. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  265. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  266. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  267. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  268. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  269. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "X(700)");
  270. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  271. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  272. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  273. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  274. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", edicd);
  275. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", "J");
  276. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "I");
  277. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", "JX999");
  278. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  279. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  280. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", "");
  281. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", "X(700)");
  282. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", "");
  283. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", calcscorcd);
  284. rowcnt = rowcnt+1;
  285. } else {
  286. for (var i=1; i<rows; i++) {
  287. var clcjedicd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd"));
  288. var spclcd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd"));
  289. if ( edicd == clcjedicd) {
  290. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  291. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  292. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  293. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd")));
  294. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("detldesc")));
  295. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  296. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  297. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  298. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("remfact")));
  299. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  300. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", "J")
  301. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  302. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  303. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("calcscorcd")));
  304. rowcnt = rowcnt+1;
  305. // 특정내역 상세 화면에 보여줄 특정내역 선택
  306. setrow = i;
  307. }
  308. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  309. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  310. if ( ds_main_list4_clcjlist.getColumn(setrow, "spclcd")) == "JX999" ) {
  311. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  312. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  313. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "U");
  314. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclcd")));
  315. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  316. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("detldesc")));
  317. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclspec")));
  318. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("remfact")));
  319. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", setrow);
  320. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("calcscorcd")));
  321. } else {
  322. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  323. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  324. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  325. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  326. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  327. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "특정내역의 구분코드가 없는 경우에는 기타 줄번호(확장 번호)단위의 기타내역에 기재");
  328. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  329. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "X(700)");
  330. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  331. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  332. }
  333. }
  334. }
  335. }
  336. ds_hidden_sppij00500_rslt.clearData();
  337. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIJ00500_특정내역상세관리.xrw
  338. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  339. // 처리 건수
  340. if (rsltcnt > 0) {
  341. for(var i=rsltcnt; i>0; i--) {
  342. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  343. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  344. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  345. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  346. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  347. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  348. var newremfact = model.getValue("ds_hidden_sppij00500_rslt_list["+ i +"]_remfact ");
  349. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  350. var newdcalcscorcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "calcscorcd");
  351. var oldspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclcd");
  352. var oldspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclspec");
  353. // 특정코드 추가인 경우
  354. if (flag == "I") {
  355. var clcjrow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  356. grd_clcjlist.insertRow(clcjrow++, true,false,false);
  357. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("pid")) = ds_send.getColumn(0, "pid");
  358. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("indd")) = ds_send.getColumn(0, "indd");
  359. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("cretno")) = ds_send.getColumn(0, "cretno");
  360. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("fromdd")) = ds_send.getColumn(0, "fromdd");
  361. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("mskind")) = ds_send.getColumn(0, "mskind");
  362. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("unitflag")) = "J";
  363. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("edicd")) = edicd;
  364. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  365. //grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  366. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  367. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("remfact")) = newremfact;
  368. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  369. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("calcscorcd")) = newdcalcscorcd
  370. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclmemoflag")) = "E";
  371. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("status")) = "3";
  372. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  373. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  374. rowcnt = eval(rowcnt) + 1;
  375. for (var j = 1; j < rowcnt; j++) {
  376. //for (var j = 1; j < grd_ordlist.rows; j++) {
  377. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  378. if (edicd == clcjedicd) {
  379. ds_main_list2.setColumn( j , "text", "*");
  380. //
  381. //model.refresh();
  382. 최적화 문제로 변경 - 20080731 박창원
  383. //model.refreshpart("ds_main_list2_iscllist_text");
  384. }
  385. }
  386. // 특정코드 변경인 경우
  387. } else if (flag == "U") {
  388. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  389. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  390. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  391. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  392. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  393. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("calcscorcd")) = newdcalcscorcd;
  394. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  395. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  396. }
  397. //
  398. //model.refresh();
  399. 최적화 문제로 변경 - 20080731 박창원
  400. model.refreshpart("ds_main_list4_clcjlist");
  401. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  402. if (oldspclcd != newspclcd || oldspclspec != newspclspec || grd_clcjlist.rowstatus(row) == 4) {
  403. var rowstatus = grd_clcjlist.rowstatus(rownum);
  404. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  405. } else {
  406. grd_clcjlist.rowstatus(rownum) = 2; // 2 : update 상태로 stat를 변경한다.
  407. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "2";
  408. }
  409. }
  410. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  411. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  412. rowcnt = eval(rowcnt) + 1;
  413. for (var j = 1; j < rowcnt; j++) {
  414. //for (var j = 1; j < grd_ordlist.rows; j++) {
  415. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  416. if (edicd == clcjedicd) {
  417. ds_main_list2.setColumn( j , "text", "*");
  418. //
  419. //model.refresh();
  420. 최적화 문제로 변경 - 20080731 박창원
  421. model.refreshpart("ds_main_list2_iscllist_text");
  422. }
  423. }
  424. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  425. model.refreshpart("ds_hidden_item1_message");
  426. // 특정코드 삭제인 경우
  427. } else if (flag == "D" && rownum != "" ) {
  428. var cnt = 0;
  429. for (var j = 1; j < grd_clcjlist.rows; j++) {
  430. var clcjedicd = ds_main_list4_clcjlist.getColumn(j, "edicd");
  431. if (edicd == clcjedicd) {
  432. if (grd_clcjlist.rowstatus(j) != 4) {
  433. cnt++;
  434. }
  435. }
  436. }
  437. if (cnt > 0) {
  438. } else {
  439. grd_ordlist.valueMatrix(row, grd_ordlist.colref("text")) = "";
  440. //model.resetInstanceNode("ds_main_list2_iscllist["+ row +"]_text");
  441. }
  442. // 특정내역 Grid에서 삭제
  443. var rowstatus = grd_clcjlist.rowstatus(rownum);
  444. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  445. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  446. } else { // 0 : new, 2 : update
  447. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  448. }
  449. grd_clcjlist.row = rownum;
  450. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  451. rowcnt = eval(rowcnt) + 1;
  452. for (var j = 1; j < rowcnt; j++) {
  453. //for (var j = 1; j < grd_ordlist.rows; j++) {
  454. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  455. if (edicd == clcjedicd) {
  456. ds_main_list2.setColumn( j , "text", "");
  457. //
  458. //model.refresh();
  459. 최적화 문제로 변경 - 20080731 박창원
  460. model.refreshpart("ds_main_list2_iscllist_text");
  461. }
  462. }
  463. } // 특정 코드 상태 따른 if end
  464. } // for end
  465. var rdounitflag = ds_send.getColumn(0, "unitflag");
  466. if (rdounitflag == "-") {
  467. for (var i=1; i<grd_clcjlist.rows; i++) {
  468. var delstatus = grd_clcjlist.rowStatus(i);
  469. var delspclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  470. if (delstatus == 1 || delstatus == 3) { // 0 : new, 3 : insert & new
  471. if (delspclspec == "") {
  472. grd_clcjlist.deleteItem(i);
  473. }
  474. }
  475. }
  476. // 입력행 추가
  477. fSpclGridInsertRow();
  478. } else if (rdounitflag == "M") {
  479. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'M']";
  480. grd_clcjlist.rebuild();
  481. } else if (rdounitflag == "J") {
  482. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  483. grd_clcjlist.rebuild();
  484. }
  485. for (var i=1; i<grd_clcjlist.rows; i++) {
  486. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  487. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  488. if (status != "") {
  489. grd_clcjlist.rowStatus(i) = status;
  490. }
  491. if (unitflag == "M") {
  492. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  493. } else if (unitflag == "J") {
  494. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  495. }
  496. }
  497. //fSaveClcjList();
  498. } // 처리 건수 if end
  499. //
  500. //model.refresh();
  501. 최적화 문제로 변경 - 20080731 박창원
  502. }
  503. //재원심사 인적사항, 보험내역, 상병, 금액내역을 갖고 온다.
  504. function fGetItemInfo(paramFlag){
  505. // 읽기전용을 위한 변수
  506. var readonly = ds_send.getColumn(0, "readonly");
  507. // 오픈일자를 가져옴 - 하드코딩 제거 20090302 박창원, 의정부,여의도,성가,빈센트를 위해서 예외작업함 나중에 제거필요
  508. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  509. fSpclGridInsertRow();
  510. // 20080811 자동으로 상병줄추가 제외하기로함
  511. fDiagGridInsertRow();
  512. //응급 6시간 미만 체크를 위하여 넣어 둔다.
  513. var ordtype = ds_main_item1_iteminfo.getColumn(0, "ordtype");
  514. var brateflag = ds_main_item1_iteminfo.getColumn(0, "brateflag");
  515. ds_send.setColumn( 0, "ordtype",ordtype);
  516. ds_send.setColumn( 0, "brateflag",brateflag);
  517. //본인부담율이 20%가 아닌 경우 상단정보에 보조유형정보를 붉은 색으로 표시해준다.
  518. var insukind = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  519. var payownbrate = ds_main_item1_iteminfo.getColumn(0, "ownrate");
  520. // 마이그레이션 환자는 조회만 되게 한다. - 20080819 박창원
  521. var mig = ds_main_item1_iteminfo.getColumn(0, "mig");
  522. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  523. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  524. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  525. var dschdclrtyn = ds_main_item1_iteminfo.getColumn(0, "dschdclrtyn");
  526. // AS-IS 데이터가 비정상적인 액팅이 되었을때 alert - 20081013 박창원 - 한시적 루틴
  527. var abnormalactingyn = ds_main_item1_iteminfo.getColumn(0, "abnormalactingyn");
  528. var abnormalexip = ds_main_item1_iteminfo.getColumn(0, "abnormalexip");
  529. var abnormaliscl = ds_main_item1_iteminfo.getColumn(0, "abnormaliscl");
  530. var indate = ds_main_item1_iteminfo.getColumn(0, "indd1");
  531. var spcdrugyn = ds_main_item1_iteminfo.getColumn(0, "spcdrugyn") ;
  532. var dcuc = ds_main_item1_iteminfo.getColumn(0, "dcuc");
  533. // 명단위, 줄단위에 따라 특정코드 콤보 리스트 변경 및 특정코드에 해당하는 상세설명 적용
  534. var p0117list = instance1.selectSingleNode("ds_init_P0117list");
  535. for (var i=0; i<grd_clcjlist.rows; i++) {
  536. var unitflag = ds_main_list4_clcjlist.getColumn(i, "unitflag");
  537. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  538. if (unitflag == "M") {
  539. if (p0117list != null) {
  540. var p0117 = p0117list.childNodes;
  541. for (var j = 1; j <= p0117.length; j++) {
  542. var cdid = ds_init_P0117list_P0117.getColumn(j, "cdid");
  543. if (cdid == spclcd) {
  544. ds_main_list4.setColumn( i , "detldesc", ds_init_P0117list_P0117.getColumn(j, "detldesc"));
  545. j = p0117.length + 1;
  546. }
  547. }
  548. }
  549. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  550. } else if (unitflag == "J") {
  551. if (p0117list != null) {
  552. var p0117 = p0117list.childNodes;
  553. for (var j = 1; j <= p0117.length; j++) {
  554. var cdid = ds_init_P0117list_P0117.getColumn(j, "cdid");
  555. if (cdid == spclcd) {
  556. ds_main_list4.setColumn( i , "detldesc", ds_init_P0117list_P0117.getColumn(j, "detldesc"));
  557. j = p0117.length + 1;
  558. }
  559. }
  560. }
  561. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  562. }
  563. }
  564. }
  565. // 처방내역을 갖고 온다.
  566. function fGetIsclList_FromTo(){
  567. //ds_send.clearData(); ds_send.addRow();
  568. var ordfromdd = ds_send.getColumn(0, "ordfromdd");
  569. var ordtodd = ds_send.getColumn(0, "ordtodd");
  570. //처방조회 시작일자와 종료일자가 없는 경우 보험내역 시작 종료일로 셋팅해 준다.
  571. if(ordfromdd == ""){
  572. ds_send.setColumn( 0, "ordfromdd", ds_send.getColumn(0, "fromdd"));
  573. }
  574. if(ordtodd == ""){
  575. ds_send.setColumn( 0, "ordtodd", ds_send.getColumn(0, "todd"));
  576. }
  577. if(ipt_pid.text.length >0) {
  578. var row = grd_ordlist.row;
  579. ds_main_list2_iscllist.clearData();
  580. //grd_ordlist.refresh();
  581. // submit("TRPIJ00302");
  582. var oParam = {};
  583. oParam.id = "TRPIJ00302";
  584. oParam.service = "bfjudgapp.InHospJudg";
  585. oParam.method = "reqGetInHospJudgIscl";
  586. oParam.inds = "req=ds_";
  587. oParam.outds = "ds_=iscllist";
  588. oParam.async = false;
  589. oParam.callback = "cf_TRPIJ00302";
  590. tranf_submit(oParam);
  591. /*
  592. function cf_TRPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  593. if(nErrorCode < 0) return;
  594. }
  595. function cf_TRPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  596. arErrorCode.push(sSvcId, nErrorCode);
  597. }
  598. arErrorCode.pop("TRPIJ00302") > -1
  599. arErrorCode.pop("TRPIJ00302") < 0
  600. */
  601. //
  602. //model.refresh();
  603. 최적화 문제로 대체
  604. //model.refreshpart("ds_main_list2_iscllist");
  605. grd_ordlist.row = row;
  606. grd_ordlist.topRow = row - 3;
  607. //처방조회 옵션에 항목구분에 처방이 있는 것만 Bold로 보여준다.
  608. fSetItemBold();
  609. } else {
  610. sysf_messageBox("환자번호를","C001");
  611. return;
  612. }
  613. }
  614. // 진료비 계산내역을 갖고 온다.
  615. function fGetCalc(){
  616. if(ipt_pid.text.length >0)
  617. {
  618. ds_main_item2_itemcalc.clearData(); ds_main_item2_itemcalc.addRow();
  619. var totalsumflag = ds_send.getColumn(0, "totalsumflag");
  620. if(!totalsumflag){
  621. ds_send.setColumn( 0, "totalsumflag","N");
  622. }
  623. // submit("TRPIJ00303");
  624. var oParam = {};
  625. oParam.id = "TRPIJ00303";
  626. oParam.service = "bfjudgapp.InHospJudg";
  627. oParam.method = "reqGetInHospJudgCalc";
  628. oParam.inds = "req=ds_";
  629. oParam.outds = "ds_=itemcalc";
  630. oParam.async = false;
  631. oParam.callback = "cf_TRPIJ00303";
  632. tranf_submit(oParam);
  633. /*
  634. function cf_TRPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  635. if(nErrorCode < 0) return;
  636. }
  637. function cf_TRPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  638. arErrorCode.push(sSvcId, nErrorCode);
  639. }
  640. arErrorCode.pop("TRPIJ00303") > -1
  641. arErrorCode.pop("TRPIJ00303") < 0
  642. */
  643. if(!totalsumflag){
  644. ds_send.setColumn( 0, "totalsumflag","");
  645. }
  646. }else
  647. {
  648. //sysf_messageBox("환자번호를","C001");
  649. return;
  650. }
  651. }
  652. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  653. //상병처리 관련 코딩 시작 //
  654. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  655. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "상병순서 위로"
  656. function fDiagSeqUp() {
  657. var rowstatus = grd_diaglist.rowstatus(grd_diaglist.row);
  658. if (rowstatus == 4) { // 4 : delete
  659. return;
  660. }
  661. var diagseq = parseInt(ds_main_list3_diaglist.getColumn(grd_diaglist.row, "seqno"))); // 선택된 줄의 NO
  662. if (diagseq > 1) { // 첫번째 줄이 아닌 경우
  663. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", --diagseq);
  664. if (rowstatus == 0 || rowstatus == 2) {
  665. grd_diaglist.rowstatus(grd_diaglist.row) = 2; // 2 : update
  666. }
  667. // 바로 위 상병순서와 중복되는 경우
  668. var nextrow = grd_diaglist.row - 1;
  669. var nextdiagseq = ds_main_list3_diaglist.getColumn(nextrow, "seqno"));
  670. if (diagseq == nextdiagseq) {
  671. ds_main_list3.setColumn( nextrow , "seqno", ++diagseq);
  672. // rowstatus = grd_diaglist.rowstatus(nextrow);
  673. // if (rowstatus == 0 || rowstatus == 2) {
  674. // grd_diaglist.rowstatus(nextrow) = 2; // 2 : update
  675. // }
  676. }
  677. fSortDiagNo();
  678. }
  679. }
  680. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "상병순서 아래로"
  681. function fDiagSeqDown() {
  682. var rowstatus = grd_diaglist.rowstatus(grd_diaglist.row);
  683. if (rowstatus == 4) { // 4 : delete
  684. return;
  685. }
  686. // 삭제 상태가 아닌 마지막 줄을 찾는다.
  687. var lastRow = grd_diaglist.rows - 1;
  688. for (var i = 1; i < grd_diaglist.rows; i++) {
  689. if (grd_diaglist.rowstatus(i) == 4) { // delete
  690. lastRow = i - 1;
  691. i = grd_diaglist.rows;
  692. }
  693. }
  694. var diagseq = parseInt(ds_main_list3_diaglist.getColumn(grd_diaglist.row, "seqno"))); // 선택된 줄의 NO
  695. if (diagseq < lastRow) { // 마지막 줄이 아닌 경우
  696. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", ++diagseq);
  697. if (rowstatus == 0 || rowstatus == 2) {
  698. grd_diaglist.rowstatus(grd_diaglist.row) = 2; // 2 : update
  699. }
  700. // 바로 아래 상병순서와 중복되는 경우
  701. var nextrow = grd_diaglist.row + 1;
  702. var nextdiagseq = ds_main_list3_diaglist.getColumn(nextrow, "seqno"));
  703. if (diagseq == nextdiagseq) {
  704. ds_main_list3.setColumn( nextrow , "seqno", --diagseq);
  705. }
  706. fSortDiagNo();
  707. }
  708. }
  709. // "상병순서 위로_아래로" 순서 변경 후에 상병 순서 NO에 따라 sorting 작업
  710. function fSortDiag() {
  711. var maxRow = parseInt(grd_diaglist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다
  712. grd_diaglist.sort(1, 1, maxRow, 1) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1
  713. //
  714. //model.refresh();
  715. 최적화문제로 대체 20080731 박창원
  716. model.refreshpart("ds_main_list3_diaglist");
  717. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  718. grd_diaglist.gridToInstance();
  719. }
  720. // "상병순서 위로_아래로" 순서 변경 후에 상병 순서 NO에 따라 sorting 작업
  721. function fSortDiagNo2() {
  722. var delcnt = 0;
  723. for (var i = 1; i < grd_diaglist.rows; i++) {
  724. grd_diaglist.rowHidden(i) = false;
  725. }
  726. var cldino = 1;
  727. for (var i = 1; i < grd_diaglist.rows; i++) {
  728. ds_main_list3.setColumn( i , "seqno", i);
  729. rowstatus = grd_diaglist.rowstatus(i);
  730. }
  731. var maxRow = parseInt(grd_diaglist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다
  732. grd_diaglist.sort(1, grd_diaglist.colRef("seqno"), maxRow , grd_diaglist.colRef("seqno")) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1 / col = 3 : no
  733. if (delcnt > 0) {
  734. grd_diaglist.sort(1, grd_diaglist.colRef("seqno"), maxRow - delcnt, grd_diaglist.colRef("seqno")) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1 / col = 3 : no
  735. }
  736. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  737. grd_diaglist.gridToInstance();
  738. var rowstatus;
  739. for (var i = 1; i < grd_diaglist.rows; i++) {
  740. rowstatus = grd_diaglist.rowstatus(i);
  741. if (rowstatus > 3) { // 삭제상태
  742. grd_diaglist.rowHidden(i) = true;
  743. } else {
  744. grd_diaglist.rowHidden(i) = false;
  745. }
  746. }
  747. }
  748. function fSortDiagNo() {
  749. var maxRow = parseInt(grd_diaglist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다
  750. grd_diaglist.sort(1, 1, maxRow, 1) = "asc"; // 타이틀을 제외한 data 부분의 첫 줄의 row = 1
  751. //
  752. //model.refresh();
  753. 최적화문제로 대체 20080731 박창원
  754. model.refreshpart("ds_main_list3");
  755. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  756. grd_diaglist.gridToInstance();
  757. //루핑을 돌면서 순번을 맞춰주고, 모두 insert모드로 바꿔준다.
  758. //상병은 History를 남기지 않고 그냥 모두 삭제 후 다시 insert로 처리한다.
  759. //상병 순번이 key라서 update로 하면 바뀐 seq입력시 기존것이 아직 안바뀌었으면 Dup에러 발생함으로.
  760. for(i =1; i<grd_diaglist.rows;i++){
  761. ds_main_list3.setColumn( i , "seqno", i);
  762. grd_diaglist.rowstatus(i) = 1;
  763. }
  764. }
  765. function fDiagGridAddRow(addyn, selectyn) {
  766. var iInsertRow = 0;
  767. if (grd_diaglist.rows == 1 || addyn == "Y") {
  768. iInsertRow = grd_diaglist.row;
  769. grd_diaglist.addRow(false, false);
  770. } else {
  771. iInsertRow = grd_diaglist.row;
  772. grd_diaglist.insertRow(iInsertRow, "below", false,false);
  773. }
  774. var nowRow = 0;
  775. nowRow = grd_diaglist.row;
  776. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", grd_diaglist.row);
  777. // 청구과, 진료개시일은 주상병을 기준으로 부여한다.
  778. var clamdeptcd = ds_main_list3_diaglist.getColumn(0, "orddeptcd");
  779. if (clamdeptcd == "") { // 주상병의 진료과가 입력되지 않은 경우 인적사항의 청구과를 입력한다.
  780. clamdeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  781. }
  782. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_orddeptcd", clamdeptcd);
  783. var ordfromdd = model.getValue("ds_main_list3//diaglist_ordfromdd");
  784. if (ordfromdd) {
  785. ds_main.setColumn( 0, "list3//diaglist["+ grd_diaglist.row +"]_ordfromdd", ordfromdd);
  786. } else {
  787. ds_main.setColumn( 0, "list3//diaglist["+ grd_diaglist.row +"]_ordfromdd", ds_main_item1_iteminfo.getColumn(0, "indd"));
  788. }
  789. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_toot", "-");
  790. // 상병이력조회에서 호출된 경우가 아니면
  791. if (selectyn != "Y") {
  792. fSortDiagNo2(true);
  793. }
  794. // edit mode 설정위한것임 절대 지우지 말것.
  795. //grd_diaglist.refresh();
  796. if (addyn != "Y") {
  797. grd_diaglist.row = nowRow;
  798. grd_diaglist.col = grd_diaglist.colRef("diagcd");
  799. grd_diaglist.dispatch("onentercell");
  800. }
  801. }
  802. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 추가"
  803. function fDiagGridInsertRow() {
  804. // 2008.03.06 박지욱 추가 (상병의 진료개시일은 중간청구최종시작일자, 중간청구등록이 없으면 입원일자 세팅)
  805. ds_hidden_mdlclamrgst.clearData();
  806. dsf_makeValue( ds_hidden, "mdlclamrgst", "string", "" );
  807. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  808. var deptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  809. //속도개선 plet2 상병리스트에서 마지막 날짜를 가져오도록.
  810. //submit("TRPIJ00313");
  811. var fromdd = model.getXPathValue("ds_main_list3_diaglist[last()]_ordfromdd");
  812. if (fromdd == "") {
  813. var indd = ds_send.getColumn(0, "ordfromdd");
  814. fromdd = indd;
  815. }
  816. // 삭제 상태가 아닌 마지막 줄을 찾는다.
  817. var diagrow = grd_diaglist.rows - grd_diaglist.fixedRows; // 상병 Grid 가장 마지막 줄에 추가한다.
  818. grd_diaglist.insertRow(diagrow++, true,false,false);
  819. ds_main_list3.setColumn( diagrow , "seqno", diagrow);
  820. ds_main_list3.setColumn( diagrow , "ordfromdd", fromdd); // 진료개시일
  821. ds_main_list3.setColumn( diagrow , "orddeptcd", deptcd); // 진료과
  822. fSortDiagNo();
  823. // 행추가 시 맨 밑에 행이 보일 수 있드록 추가 ( 2007.10.09 김건기 )
  824. grd_diaglist.bottomRow = grd_diaglist.rows;
  825. // 행추가 후 상병코드 컬럼으로 포커스 이동 ( 2007.10.09 김건기 )
  826. grd_diaglist.setFocus();
  827. // edit mode 설정위한것임 절대 지우지 말것.
  828. //grd_diaglist.refresh();
  829. grd_diaglist.row = diagrow;
  830. grd_diaglist.col = grd_diaglist.colref("diagcd");
  831. //grd_diaglist.dispatch("onentercell");
  832. //grd_diaglist.editCell();
  833. }
  834. // 상병 다섯줄 추가
  835. function fDiagGridInsertRow5() { // 20080826 박창원 추가
  836. // 2008.03.06 박지욱 추가 (상병의 진료개시일은 중간청구최종시작일자, 중간청구등록이 없으면 입원일자 세팅)
  837. ds_hidden_mdlclamrgst.clearData();
  838. dsf_makeValue( ds_hidden, "mdlclamrgst", "string", "" );
  839. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  840. var deptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  841. var fromdd = model.getXPathValue("ds_main_list3_diaglist[last()]_ordfromdd");
  842. if (fromdd == "") {
  843. var indd = ds_send.getColumn(0, "ordfromdd");
  844. fromdd = indd;
  845. }
  846. for (var i = 1; i <= 5; i++) {
  847. var lastRow = grd_diaglist.rows - 1;
  848. var diagrow = lastRow; // 상병 Grid 가장 마지막 줄에 추가한다.
  849. grd_diaglist.insertRow(diagrow++, true,false,false);
  850. ds_main_list3.setColumn( diagrow , "seqno", diagrow);
  851. ds_main_list3.setColumn( diagrow , "ordfromdd", fromdd); // 진료개시일
  852. ds_main_list3.setColumn( diagrow , "orddeptcd", deptcd); // 진료과
  853. }
  854. fSortDiagNo();
  855. // 행추가 시 맨 밑에 행이 보일 수 있드록 추가 ( 2007.10.09 김건기 )
  856. grd_diaglist.topRow = grd_diaglist.rows - 6;
  857. // 행추가 후 상병코드 컬럼으로 포커스 이동 ( 2007.10.09 김건기 )
  858. grd_diaglist.setFocus();
  859. grd_diaglist.row = diagrow - 5;
  860. grd_diaglist.col = grd_diaglist.colref("diagcd");
  861. grd_diaglist.dispatch("onentercell");
  862. grd_diaglist.editCell();
  863. }
  864. // 상병 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 삭제"
  865. function fDiagGridDeleteRow() {
  866. //상병은 삭제시 무조건 삭제를 날려 버린다.
  867. for( var i = 0; i < grd_diaglist.selectedRows; i++ ){
  868. var cRrow = grd_diaglist.selectedRow(i);
  869. grd_diaglist.rowstatus(cRrow) = 4; // 4 : delete 상태로 stat를 변경한다.
  870. }
  871. var tmp = grd_diaglist.rows;
  872. for(var k = tmp; k >= 0;k--){
  873. if(grd_diaglist.rowstatus(k) == "4"){
  874. grd_diaglist.deleteRow(k, false);
  875. }
  876. }
  877. //
  878. //model.refresh();
  879. 최적회 때문에 20080731 박창원
  880. model.refreshpart("ds_main_list3_diaglist");
  881. fSortDiagNo();
  882. }
  883. // 상병코드 조회 팝업
  884. function fSearchDiageCode() {
  885. var row = grd_diaglist.row;
  886. var diagcd = ds_main_list3_diaglist.getColumn(row, "diagcd"));
  887. ds_hidden_sppiz00400_rslt.clearData();
  888. // 상병 Data가 2007년 이후로 설정되어 있으므로 임시로 현재 날짜를 넘긴다.
  889. //dsf_makeValue( ds_hidden_sppiz00400_cond, "basedd", "string", ds_main_item1_clbs.getColumn(0, "clamdd"));
  890. ds_hidden_sppiz00400_cond.clearData(); ds_hidden_sppiz00400_cond.addRow();
  891. dsf_makeValue( ds_hidden_sppiz00400_cond, "basedd", "string", VAL_today); // (dateHelper.js) 현재날짜 반환
  892. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagcd", "string", diagcd);
  893. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagnm", "string", "" );
  894. dsf_makeValue( ds_hidden_sppiz00400_cond, "selectedrdodiagkind", "string", "1");
  895. if(diagcd){
  896. // submit("TRPIJ00308",false); // 입력된 상병코드로 emr.mrtmicd10 테이블을 조회한다.
  897. var oParam = {};
  898. oParam.id = "TRPIJ00308";
  899. oParam.service = "aftjudgapp.OutAftJudg";
  900. oParam.method = "reqGetSickAndWounded";
  901. oParam.inds = "req=ds_";
  902. oParam.outds = "ds_=rslt";
  903. oParam.async = false;
  904. oParam.callback = "cf_TRPIJ00308";
  905. tranf_submit(oParam);
  906. /*
  907. function cf_TRPIJ00308(sSvcId, nErrorCode, sErrorMsg) {
  908. if(nErrorCode < 0) return;
  909. }
  910. function cf_TRPIJ00308(sSvcId, nErrorCode, sErrorMsg) {
  911. arErrorCode.push(sSvcId, nErrorCode);
  912. }
  913. arErrorCode.pop("TRPIJ00308") > -1
  914. arErrorCode.pop("TRPIJ00308") < 0
  915. */
  916. var rsltList = instance1.selectSingleNode("ds_hidden_sppiz00400");
  917. if (rsltList != null && rsltList.childNodes.length == 1) {
  918. // 조회된 결과가 1건이면
  919. fSetDiagCdNm();
  920. } else {
  921. // 조회된 결과가 없거나 여러 건이면
  922. // 상병코드 조회를 위해 SPPIZ00400_상병코드조회.xrw 를 호출한다.
  923. fSearchSPPIZ00400();
  924. }
  925. } else {
  926. // 상병코드 입력 없이 상병명 선택 시
  927. fSearchSPPIZ00400();
  928. }
  929. }
  930. // 상병코드 조회를 위해 SPPIZ00400_상병코드조회.xrw 를 호출한다.
  931. function fSearchSPPIZ00400() {
  932. ds_hidden_sppiz00400_rslt.clearData();
  933. dsf_makeValue( ds_hidden_sppiz00400_rslt, "diagcd", "string", "" );
  934. dsf_makeValue( ds_hidden_sppiz00400_rslt, "diaghngnm", "string", "" );
  935. dsf_makeValue( ds_hidden_sppiz00400_rslt, "diagengnm", "string", "" );
  936. ds_hidden_sppiz00400_cond.clearData(); ds_hidden_sppiz00400_cond.addRow();
  937. dsf_makeValue( ds_hidden_sppiz00400_cond, "basedd", "string", VAL_today); // (dateHelper.js) 현재날짜 반환
  938. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagcd", "string", ds_main_list3_diaglist.getColumn(grd_diaglist.row, "diagcd")));
  939. dsf_makeValue( ds_hidden_sppiz00400_cond, "diagnm", "string", "" );
  940. dsf_makeValue( ds_hidden_sppiz00400_cond, "selectedrdodiagkind", "string", "3"); // 사용자가 직접검색하여 입력 할수 있도록 임의의 값(3)을 넣어줌
  941. frmf_modal("SPPIZ00400", "SPPIZ00400", "ds_hidden_sppiz00400_cond""-"ds_init"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00400_상병코드조회.xrw
  942. }
  943. // [SPPIZ00400_상병코드조회.xrw 에서 호출] 상병조회 팝업에서 상병을 더블클릭 했을경우 상병 그리드에 반영
  944. function fSetDiagCdNm() {
  945. var diagcd = ds_hidden_sppiz00400_rslt.getColumn(0, "diagcd");
  946. var diaghngnm = ds_hidden_sppiz00400_rslt.getColumn(0, "diaghngnm");
  947. var diagengnm = ds_hidden_sppiz00400_rslt.getColumn(0, "diagengnm");
  948. var spclcd = ds_hidden_sppiz00400_rslt.getColumn(0, "spclcd");
  949. var currRow = grd_diaglist.row;
  950. //20090810 JHP 수정추가. 상병 조회팝업에서 상병조회 후 적용하려고 할때 인스턴스 증가(행추가)하여 적용시킨다.
  951. if(grd_diaglist.row <= 0){
  952. fDiagGridInsertRow();
  953. grd_diaglist.endEditCell();
  954. }else{
  955. var chkdiagcd = ds_main_list3_diaglist.getColumn(currRow, "diagcd"));
  956. var chkdiagnm = ds_main_list3_diaglist.getColumn(currRow, "diagnm"));
  957. if((chkdiagcd != "" || chkdiagcd != " " || chkdiagcd != null) &&
  958. (chkdiagnm == "" || chkdiagnm == " " || chkdiagnm == null)){
  959. ;
  960. }else if((chkdiagcd != "" || chkdiagcd != " " || chkdiagcd != null) &&
  961. (chkdiagnm != "" || chkdiagnm != " " || chkdiagnm != null)){
  962. ;
  963. }else{
  964. fDiagGridInsertRow();
  965. grd_diaglist.endEditCell();
  966. }
  967. }
  968. if (diagcd) {
  969. grd_diaglist.endEditCell();
  970. ds_main_list3.setColumn( currRow , "diagcd", diagcd);
  971. }
  972. if (diaghngnm) {
  973. ds_main_list3.setColumn( currRow , "diagnm", diaghngnm);
  974. }
  975. if(diagengnm){
  976. ds_main_list3.setColumn( currRow , "diagengnm", diagengnm);
  977. }
  978. if(spclcd){
  979. ds_main_list3.setColumn( currRow , "vcode", spclcd);
  980. }
  981. var chk_key = ds_main_list3_diaglist.getColumn(currRow, "pid"));
  982. //신규로 불러온 입력되는 경우는 Insert시 key값이 없으므로 기본 정보에서 읽어다 넣어 준다.
  983. if(chk_key){
  984. return;
  985. }else{
  986. //Pid
  987. ds_main_list3.setColumn( currRow , "pid",ds_send.getColumn(0, "pid"));
  988. //Indd
  989. ds_main_list3.setColumn( currRow , "indd",ds_send.getColumn(0, "indd"));
  990. //Cretno
  991. ds_main_list3.setColumn( currRow , "cretno",ds_send.getColumn(0, "cretno"));
  992. //fromdd
  993. ds_main_list3.setColumn( currRow , "fromdd",ds_send.getColumn(0, "fromdd"));
  994. //mskind
  995. ds_main_list3.setColumn( currRow , "mskind",ds_send.getColumn(0, "mskind"));
  996. //drinptyn
  997. ds_main_list3.setColumn( currRow , "drinptyn","N");
  998. //addflag
  999. ds_main_list3.setColumn( currRow , "addflag","Y");
  1000. if(grd_diaglist.row >1){
  1001. //orddeptcd
  1002. ds_main_list3.setColumn( currRow , "orddeptcd",ds_main_list3_diaglist.getColumn(1, "orddeptcd"));
  1003. //ordfromdd
  1004. ds_main_list3.setColumn( currRow , "ordfromdd",ds_main_list3_diaglist.getColumn(1, "ordfromdd"));
  1005. }
  1006. //저장후 빈행을 추가해 준다.
  1007. //20080811 자동으로 줄추가 되는 기능 제외
  1008. fDiagGridInsertRow();
  1009. }
  1010. //
  1011. //model.refresh();
  1012. 최적화 문제로 대체 20080731 박창원
  1013. model.refreshpart("ds_main_list3_diaglist");
  1014. }
  1015. function fChangeRate() {
  1016. grp_changeownbrate.visible = true;
  1017. }
  1018. function fUpdDiag() {
  1019. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  1020. if(chk){
  1021. //fGetIsclList
  1022. fRefreshDiag(); // 특정 환자에 대한 전상병 내역을 조회한다.
  1023. // 20080811 제외하기로함(상병줄추가(자동)
  1024. //fDiagGridInsertRow();
  1025. }
  1026. }
  1027. function fChangeRate1() {
  1028. // 6시간 미만 환자는 입원에만 해당하는 요율을 적용할 수 없다. - 20081105 박창원
  1029. var suppkind = cmb_suppkindlist.value;
  1030. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  1031. var suppkindcd = ds_main_item1_iteminfo.getColumn(0, "suppkindcd");
  1032. //20090325 차상위 2종추가 - 박창원
  1033. if (sixtimyn == "Y" && (suppkind == "05" || suppkind == "08" || suppkind == "09" || suppkind == "31" || suppkind == "39" || suppkind == "41" || suppkind == "42" || suppkind == "43")) {
  1034. sysf_messageBox("6시간 미만환자는 입원에만 적용되는 보조유형으로 변경을","E001");
  1035. grp_changeownbrate.visible = false;
  1036. return;
  1037. }
  1038. // 6세미만, 신생아는 조건에 맞지 않으면 Block - 20090103 박창원
  1039. if (suppkind == "08" || suppkind == "31" || suppkind == "41")
  1040. var age = parseInt(ds_main_item1_iteminfo.getColumn(0, "age"));
  1041. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1042. var insukindcd = ds_main_item1_iteminfo.getColumn(0, "insukindcd");
  1043. var inpath = ds_main_item1_iteminfo.getColumn(0, "inpath");
  1044. var orddeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  1045. var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  1046. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  1047. var babyyn ="N";
  1048. var end6yn = "N";
  1049. var brthdd = "20" + rrgstno.substr(0,6);
  1050. var readonly = ds_send.getColumn(0, "readonly");
  1051. // 신생아를 구별지음
  1052. if (rrgstno.substr(7,1) == "3" || rrgstno.substr(7,1) == "4" || rrgstno.substr(7,1) == "7" || rrgstno.substr(7,1) == "8") {
  1053. var interval = utlf_getDateInterval(brthdd,indd);
  1054. if (interval < "28") {
  1055. babyyn = "Y";
  1056. }
  1057. }
  1058. // 6세미만 생일 여부를 판단함
  1059. if ((rrgstno.substr(7,1) == "3" || rrgstno.substr(7,1) == "4") && age <= 6) {
  1060. if (age == 6) {
  1061. if (brthdd >= VAL_today) {
  1062. end6yn = "Y";
  1063. }
  1064. } else if (age == 6){
  1065. if (brthdd < VAL_today) {
  1066. end6yn = "N";
  1067. }
  1068. } else if(age < 6) {
  1069. end6yn = "Y";
  1070. } else if (age > 6) {
  1071. end6yn ="N";
  1072. }
  1073. }
  1074. var reqdeptno = model.getValue("ds_hidden_list2_dept[deptcd='"+orddeptcd+"']reqdeptno");
  1075. if (sixtimyn == "N" && babyyn == "Y" &&age == 0 && indd >= "20080101" && reqdeptno == "11" && (insukindcd == "11" || insukindcd == "21" || insukindcd == "22")) {
  1076. if (suppkind != "31") {
  1077. sysf_messageBox("신생아 조건에 맞지 않아 변경을","E001");
  1078. grp_changeownbrate.visible = false;
  1079. return;
  1080. }
  1081. }
  1082. if (sixtimyn == "N" && end6yn == "Y" && babyyn == "N" && age <= 6 && reqdeptno == "11" && (insukindcd == "11" || insukindcd == "21" || insukindcd == "22")) {
  1083. if (suppkind != "08" && suppkind != "41") { // 20090325 차상위 2종 조건 추가 - 박창원
  1084. if (suppkind != "31") {
  1085. sysf_messageBox("6세미만 조건에 맞지 않아 변경을","E001");
  1086. grp_changeownbrate.visible = false;
  1087. return;
  1088. }
  1089. }
  1090. }
  1091. var msg = sysf_messageBox("선택하신 요율을 적용","S001");
  1092. if(msg !=6){
  1093. return;
  1094. }else{
  1095. Insuchange(suppkind);
  1096. }
  1097. }
  1098. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1099. //상병조회버튼에 대한 처리 //
  1100. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1101. // 수가 조회
  1102. function fSetSrchCalcScorCdPop(){
  1103. ds_hidden_smpic00100_cond.setColumn( 0, "calcscorcd", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  1104. ds_hidden_smpic00100_cond.setColumn( 0, "judgflag", "Y");
  1105. frmf_modal("SMPIC00100", "SMPIC00100", "ds_hidden_smpic00100_cond""-"ds_temp_item6"", "", "1", "150", "150", "", "", "", "", "", "M");
  1106. }
  1107. // 보험인정기준관리 화면 호출 20091105 수정추가 JHP 요청번호 : 5874
  1108. function fSetSrchInsuRcogBaseMngt(){
  1109. // 1. 보험인정기준관리 해당 코드 인지 확인
  1110. ds_hidden_send.clearData();
  1111. dsf_makeValue( ds_hidden_send, "insurcogbasemngtresult", "string", "" );
  1112. dsf_makeValue( ds_hidden_send_insurcogbasemngtlist, "snglcalcscorcd", "string", grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  1113. // submit("TRPIJ00317",false);
  1114. var oParam = {};
  1115. oParam.id = "TRPIJ00317";
  1116. oParam.service = "bfjudgapp.InHospJudg";
  1117. oParam.method = "reqInsuRcogBaseMngtValue";
  1118. oParam.inds = "req=ds_";
  1119. oParam.outds = "ds_=insurcogbasemngtresult";
  1120. oParam.async = false;
  1121. oParam.callback = "cf_TRPIJ00317";
  1122. tranf_submit(oParam);
  1123. /*
  1124. function cf_TRPIJ00317(sSvcId, nErrorCode, sErrorMsg) {
  1125. if(nErrorCode < 0) return;
  1126. }
  1127. function cf_TRPIJ00317(sSvcId, nErrorCode, sErrorMsg) {
  1128. arErrorCode.push(sSvcId, nErrorCode);
  1129. }
  1130. arErrorCode.pop("TRPIJ00317") > -1
  1131. arErrorCode.pop("TRPIJ00317") < 0
  1132. */
  1133. // 2. 맞으면 화면 콜 아니면 메세지
  1134. if(ds_hidden_send_insurcogbasemngtresult.getColumn(0, "value") > 0){
  1135. frmf_open("SMPIB00400", "ddd", ""-"", "", "", "", "", "", "", "", "", "", "M");
  1136. }else{
  1137. // 존재하지 않습니다.
  1138. sysf_messageBox("해당코드의 보험인정기준 등록내역이 존재하지","I011");
  1139. }
  1140. }
  1141. // 보험인정기준관리 화면 호출 20091105 수정추가 JHP 요청번호 : 5874 호출함수. - 미사용
  1142. function getOpenInsuRcogBaseMngtChk(){
  1143. var temp = getChildWindow("ddd");
  1144. var nodecnt = 0;
  1145. var xPathFunction = "count(ds_main_h_limi_limi)";
  1146. while (nodecnt == 0)
  1147. {
  1148. nodecnt = temp.model.getXPathValue(xPathFunction);
  1149. if (nodecnt >= 500){
  1150. temp.sysf_messageBox("해당코드 인정기준을 확인합니다.","I002");
  1151. temp.ds_main_right_h_limt_limt.setColumn( 0, "limt_calcscorcd" ,grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colRef("snglcalcscorcd")));
  1152. temp.ipt_calcscorcd.dispatch("onkeypress");
  1153. //temp.model.refresh();
  1154. break;
  1155. }
  1156. }
  1157. }
  1158. // 약품편람 호출 - 20080930 박창원
  1159. function fOpenDrugDic() {
  1160. frmf_open("SMADB01900", "bbb", ""-"", "", "", "", "", "", "", "", "", "", "M");
  1161. var temp = getChildWindow("bbb");
  1162. // 필터링 할 경우 row값을 제대로 못 가져와서 valueMatrix로 변경함. 2012.02.16 LEJ
  1163. temp.ds_hidden_receivedata.setColumn( 0, "srchdrugcd", grd_ordlist.valueMatrix(grd_ordlist.row,grd_ordlist.colRef("snglcalcscorcd")));
  1164. }
  1165. // 의약품정보 호출 - 20080930 박창원
  1166. function fOpenDruginfo() {
  1167. frmf_open("SMADB00100", "ccc", ""-"", "", "", "", "", "", "", "", "", "", "M");
  1168. var temp = getChildWindow("ccc");
  1169. temp.ds_send_srchinfo.setColumn( 0, "srchcd", grd_ordlist.valueMatrix(grd_ordlist.row,grd_ordlist.colRef("snglcalcscorcd")));
  1170. }
  1171. // 환자단위 메시지 전송
  1172. function fSendMsgPat() {
  1173. dsf_makeValue( ds_temp, "opentab", "string", "pmsg");
  1174. zmifOpenMessagePopup("ds_temp"); // root_temp_opentab 에 receivemsg (받은메세지함) 값을 주고 오픈한다.
  1175. }
  1176. // 처방단위 메시지 전송
  1177. function fSendMsgOrder() {
  1178. dsf_makeValue( ds_temp, "opentab", "string", "pmsg");
  1179. zmifOpenMessagePopup("ds_temp"); // root_temp_opentab 에 pmsg (환자메세지작성창) 값을 주고 오픈한다.
  1180. }
  1181. // 특정 환자에 대한 청구상병을 조회한다.
  1182. function fGetClamDiagHistList() {
  1183. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  1184. // 심사대상자의 등록번호를 조건으로 하여 전체 청구 상병이력을 조회한다.
  1185. ds_hidden_smpiz00100_cond.setColumn( 0, "pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  1186. ds_hidden_smpiz00100_cond.setColumn( 0, "ordfromdd", ds_main_item1_iteminfo.getColumn(0, "indd"));
  1187. ds_hidden_smpiz00100_cond.setColumn( 0, "ordtodd", ds_main_item1_iteminfo.getColumn(0, "dschdd"));
  1188. ds_hidden_smpiz00100_cond.setColumn( 0, "srchflag", "pam"); // 검색구분 Radio : 청구
  1189. frmf_modal("SMPIZ00100", "SMPIZ00100", "ds_hidden_smpiz00100_cond""-"ds_init"", "", "", "10", "10", "", "", "", "", "", "M"); // SMPIZ00100_외래입원상병이력조회.xrw
  1190. //
  1191. //model.refresh();
  1192. 최적화 문제로 20080731 박창원
  1193. var rsltNode = instance1.selectSingleNode("ds_hidden_smpiz00100_rslt");
  1194. var originpid = ds_main_item1_iteminfo.getColumn(0, "pid");
  1195. if (rsltNode != null) {
  1196. for (var i = 1; i <= rsltNode.childNodes.length; i++) {
  1197. var diagcd = ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagcd");
  1198. var isSame = false;
  1199. for (var j = grd_diaglist.fixedRows; j < grd_diaglist.rows; j++) {
  1200. if (diagcd == ds_main_list3_diaglist.getColumn(j, "diagcd")) {
  1201. // 동일한 상병이 존재하는 경우
  1202. isSame = true;
  1203. j = grd_diaglist.rows;
  1204. }
  1205. }
  1206. // 동일한 상병이 없는 경우
  1207. if (isSame == false) {
  1208. grd_diaglist.addRow(false,true);
  1209. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  1210. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1211. var cretno = ds_main_item1_iteminfo.getColumn(0, "cretno");
  1212. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  1213. var mskind = ds_main_item1_iteminfo.getColumn(0, "mskind");
  1214. var ruleoutyn = ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagkindcd");
  1215. if(ruleoutyn == "C"){
  1216. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_ruleoutyn", "false");
  1217. }else{
  1218. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_ruleoutyn", "true");
  1219. }
  1220. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_pid", pid);
  1221. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_indd", indd);
  1222. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_cretno", cretno);
  1223. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_fromdd", fromdd);
  1224. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_mskind", mskind);
  1225. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_addflag", "Y");
  1226. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_drinptyn", "N");
  1227. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_seqno", grd_diaglist.row);
  1228. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_diagcd", ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagcd"));
  1229. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_diagnm", ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diaghngnm"));
  1230. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_diagengnm", ds_hidden_smpiz00100_rslt_diag.getColumn(i, "diagengnm"));
  1231. // 청구과, 진료개시일은 주상병을 기준으로 부여한다.
  1232. var clamdeptcd = ds_main_list3_diaglist.getColumn(0, "orddeptcd");
  1233. if (clamdeptcd == "") { // 주상병의 진료과가 입력되지 않은 경우 인적사항의 진료과를 입력한다.
  1234. clamdeptcd = ds_main_item1_iteminfo.getColumn(0, "orddeptcd");
  1235. }
  1236. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_orddeptcd", clamdeptcd);
  1237. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_ordfromdd", ds_main_list3_diaglist.getColumn(0, "ordfromdd"));
  1238. ds_main_list3.setColumn( 0, "diaglist["+ grd_diaglist.row +"]_toot", "-");
  1239. }
  1240. }
  1241. fSortDiagNo(true);
  1242. }
  1243. }
  1244. }
  1245. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1246. //상병처리 관련 코딩 끝 //
  1247. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1248. // 처방조회부, 처방 Grid용 Group의 컨트롤 크기를 설정한다.
  1249. function fSetOrderControlSize() {
  1250. if(grp_calc.attribute("top") == "305"){
  1251. //기존위치에 +200한 위치, 처방그리드는 사이즈 +200
  1252. grp_calc.attribute("top") = "105";
  1253. grp_calc.attribute("height") = "640";
  1254. grd_ordlist.attribute("height") = "518";
  1255. cap_paylimamt.attribute("top") = "595";
  1256. opt_paylimamt.attribute("top") = "620";
  1257. swt_spclmemo.visible = "false";
  1258. grd_diaglist.visible = "false";
  1259. }else{
  1260. grp_calc.attribute("top") = "305";
  1261. grp_calc.attribute("height") = "440";
  1262. grd_ordlist.attribute("height") = "318";
  1263. cap_paylimamt.attribute("top") = "395";
  1264. opt_paylimamt.attribute("top") = "420";
  1265. swt_spclmemo.visible = "true";
  1266. grd_diaglist.visible = "true";
  1267. }
  1268. }
  1269. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1270. //처장 Filter 관련 코딩 끝 //
  1271. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1272. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1273. //특정내역 관련 코딩 //
  1274. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1275. // 특정 환자에 대해 그동안 작성된 심사자메모, 청구메모 내역을 조회한다.
  1276. function fGetMemoHistList() {
  1277. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  1278. ds_hidden_sppiz00300_rslt.clearData();
  1279. dsf_makeValue( ds_hidden_sppiz00300_cond, "pid", "string", ds_main_item1_iteminfo.getColumn(0, "pid"));
  1280. dsf_makeValue( ds_hidden_sppiz00300_cond, "orddeptcd", "string", ds_main_item1_iteminfo.getColumn(0, "orddeptcd"));
  1281. dsf_makeValue( ds_hidden_sppiz00300_cond, "ioflag", "string", "I");
  1282. dsf_makeValue( ds_hidden_sppiz00300_cond, "refterm", "string", "2");
  1283. dsf_makeValue( ds_hidden_sppiz00300_cond, "anofildinclyn", "string", "Y");
  1284. dsf_makeValue( ds_hidden_sppiz00300_cond, "fromdd", "string", "");
  1285. dsf_makeValue( ds_hidden_sppiz00300_cond, "todd", "string", "");
  1286. frmf_modal("SPPIZ00300", "SPPIZ00300", "ds_hidden_sppiz00300_cond""-"ds_init"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00300_메모이력조회.xrw
  1287. var SelectMemo = instance1.selectSingleNode("ds_hidden_sppiz00300_rslt");
  1288. if (SelectMemo != null) {
  1289. var choimemo = ds_hidden_sppiz00300_rslt.getColumn(0, "choimemo").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  1290. var choiedicd = ds_hidden_sppiz00300_rslt.getColumn(0, "edicd");
  1291. if (choimemo) {
  1292. ds_hidden_sppiz00300_rslt.setColumn( 0, "choimemo", choimemo);
  1293. var destRef = ds_hidden_sppiz00300_rslt.getColumn(0, "destRef");
  1294. if (destRef == "judgmemo") { // 심사메모로 전달
  1295. var judgmemo = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  1296. if (judgmemo) { // 기존 심사메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  1297. ds_main_item1_iteminfo.setColumn( 0, "judgrmk", judgmemo +" \n"+ choimemo);
  1298. } else {
  1299. if (choiedicd) { // 처방별 메모를 전달하는 경우임
  1300. // 동일한 EDI 코드가 있을 경우만 추가
  1301. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  1302. rowcnt = eval(rowcnt) + 1;
  1303. //for (var j = 1; j < grd_ordlist.rows; j++) {
  1304. for (var j = 1; j < rowcnt; j++) {
  1305. var clodedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  1306. if (choiedicd == clodedicd) {
  1307. ds_main_item1_iteminfo.setColumn( 0, "judgrmk", choimemo);
  1308. j = grd_ordlist.rows;
  1309. }
  1310. }
  1311. } else {
  1312. ds_main_item1_iteminfo.setColumn( 0, "judgrmk", choimemo);
  1313. }
  1314. }
  1315. model.toggle("case_judgrmemo"); // 해당 tab 으로 토글시킨다.
  1316. }
  1317. else if (destRef == "edimemo") { // 청구메모로 전달
  1318. var edimemo = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  1319. if (edimemo) { // 기존 청구메모가 공백이 아닌 경우 선택된 메모를 심사화면 메모 뒤에 덧붙인다.
  1320. ds_main_item1_iteminfo.setColumn( 0, "edirmk", edimemo +" \n"+ choimemo);
  1321. } else {
  1322. if (choiedicd) { // 처방별 메모를 전달하는 경우임
  1323. // 동일한 EDI 코드가 있을 경우 * 표시
  1324. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  1325. rowcnt = eval(rowcnt) + 1;
  1326. //for (var j = 1; j < grd_ordlist.rows; j++) {
  1327. for (var j = 1; j < rowcnt; j++) {
  1328. var clodedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  1329. if (choiedicd == clodedicd) {
  1330. ds_main_item1_iteminfo.setColumn( 0, "edirmk", choimemo);
  1331. //j = grd_ordlist.rows;
  1332. j = rowcnt;
  1333. }
  1334. }
  1335. } else {
  1336. ds_main_item1_iteminfo.setColumn( 0, "edirmk", choimemo);
  1337. }
  1338. }
  1339. model.toggle("case_ediclammemo"); // 해당 tab 으로 토글시킨다.
  1340. }
  1341. else if (destRef == "prcpmemo") { // 처방별 주석로 전달
  1342. // 동일한 EDI 코드가 있을 경우 * 표시
  1343. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  1344. rowcnt = eval(rowcnt) + 1;
  1345. for (var j = 1; j < rowcnt; j++) {
  1346. //for (var j = 1; j < grd_ordlist.rows; j++) {
  1347. var iscledicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  1348. if (choiedicd == iscledicd) {
  1349. ds_main_list2.setColumn( j , "text", "*");
  1350. }
  1351. }
  1352. for (var i=1; i<grd_clcjlist.rows; i++) {
  1353. var edicd = ds_main_list4_clcjlist.getColumn(i, "edicd");
  1354. var spclspec = ds_main_list4_clcjlist.getColumn(i, "spclspec");
  1355. if (choiedicd == edicd) {
  1356. var ans = sysf_messageBox("등록된 메모가 있습니다. 기존 내역에 추가할 경우 예(Yes)\n 새로운 내역으로 변경하시려면 아니오(No) 선택하여 주십시요", "S003"); ///수정사항이 있습니다. 저장하시려면 예(Yes)\n변경하시려면 아니오(No)
  1357. if (ans == 6) { // 6: yes
  1358. // 'JX999' 코드를 추가한다.
  1359. fSpclGridInsertRow(); // 특정내역 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 추가"
  1360. var clsprow = grd_ordlist.row;
  1361. ds_main_list4.setColumn( clsprow , "unitflag", "J");
  1362. ds_main_list4.setColumn( clsprow , "edicd", choiedicd);
  1363. ds_main_list4.setColumn( clsprow , "spclcd", "JX999");
  1364. ds_main_list4.setColumn( clsprow , "spclcdnm", "JX999 기타내역");
  1365. ds_main_list4.setColumn( clsprow , "spclspec", spclspec + "\n"+ choimemo);
  1366. ds_main_list4.setColumn( clsprow , "remfact", "X(700)");
  1367. return;
  1368. }
  1369. else if (ans == 7) { // 7:no
  1370. ds_main_list4.setColumn( i , "spclspec", choimemo);
  1371. return ;
  1372. }
  1373. else if (ans == 2) { // 2:cancel
  1374. return ;
  1375. }
  1376. }
  1377. }
  1378. // 신규로 특정 내역을 추가하는 경우
  1379. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  1380. rowcnt = eval(rowcnt) + 1;
  1381. for (var j = 1; j < rowcnt; j++) {
  1382. //for (var j = 1; j < grd_ordlist.rows; j++) {
  1383. var iscledicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  1384. if (choiedicd == iscledicd) {
  1385. // 'JX999' 코드를 추가한다.
  1386. fSpclGridInsertRow(); // 특정내역 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 추가"
  1387. var clsprow = grd_clsphist.row;
  1388. ds_main_list4.setColumn( clsprow , "unitflag", "J");
  1389. ds_main_list4.setColumn( clsprow , "edicd", choiedicd);
  1390. ds_main_list4.setColumn( clsprow , "spclcd", "JX999");
  1391. ds_main_list4.setColumn( clsprow , "spclcdnm", "JX999 기타내역");
  1392. ds_main_list4.setColumn( clsprow , "spclspec", spclspec + "\n"+ choimemo);
  1393. ds_main_list4.setColumn( clsprow , "remfact", "X(700)");
  1394. return;
  1395. }
  1396. }
  1397. }
  1398. //model.refresh();
  1399. }
  1400. }
  1401. }
  1402. }
  1403. // 특정내역 중 MT015, MT016 내역을 조회하여 "소명자료" Btn (첨부물 자료관리) Popup 화면에 표시한다.
  1404. function fGetAttachedDataList() {
  1405. if(ds_main_item1_iteminfo.getColumn(0, "patnm")){
  1406. //ds_hidden_sppiz00200_cond_clsp.clearData();
  1407. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "rowstat","");
  1408. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "unitflag","");
  1409. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclcd","");
  1410. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclspec", "");
  1411. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "initedilnno", "");
  1412. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "calcscorcd", "");
  1413. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "seqno", "");
  1414. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclformat","");
  1415. // 특정내역 Grid에서 "행 삭제"한 경우 MT015 / MT016 자료를 표시하지 않도록 하는 기능 필요함
  1416. // (작성할 것!!!!!!!!!!!!!!!!!!!!!!!)
  1417. for (var i = 1; i < grd_clcjlist.rows; i++) {
  1418. var tmp = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  1419. if(tmp == "MT015" || tmp == "MT016"){
  1420. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "rowstat","-");
  1421. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "unitflag","M");
  1422. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclcd", ds_main_list4_clcjlist.getColumn(i, "spclcd"));
  1423. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclspec", ds_main_list4_clcjlist.getColumn(i, "spclspec"));
  1424. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "initedilnno", grd_clcjlist.row);
  1425. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "calcscorcd", ds_main_list4_clcjlist.getColumn(i, "edicd"));
  1426. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "seqno", "1");
  1427. ds_hidden_sppiz00200_cond_clsp.setColumn( 0, "spclformat", ds_main_list4_clcjlist.getColumn(i, "remfact"));
  1428. }
  1429. }
  1430. frmf_modal("SPPIZ00200", "SPPIZ00200", ""-"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00200_첨부물자료관리.xrw
  1431. fDisplayAttachedDataList()
  1432. fCheckSpclSpecData();
  1433. }
  1434. }
  1435. // "소명자료" Btn (첨부물 자료관리) Popup 화면에서 특정내역 중 MT015, MT016 정보가 입력된 환자인지를 확인한다.
  1436. // 특정내역 MT004가 입력된 환자인지 체크한다.
  1437. function fDisplayAttachedDataList() {
  1438. var isAttachedDataList = false;
  1439. var cSrcNode = instance1.selectSingleNode("ds_hidden_sppiz00200_rslt_clsp");
  1440. if (cSrcNode == null) { // 특정내역이 없는 경우임
  1441. return;
  1442. }
  1443. if (ds_hidden_sppiz00200_rslt_clsp.getColumn(0, "unitflag") == "") { // "취소" 선택시에 버튼 색이 변경되지 않도록
  1444. return;
  1445. }
  1446. var cSrcChildNodeList = cSrcNode.childNodes;
  1447. for (var i = 1; i <= cSrcChildNodeList.length; i++) {
  1448. var spclcd = ds_hidden_sppiz00200_rslt_clsp.getColumn(i, "spclcd");
  1449. if (spclcd == "MT015" || spclcd == "MT016") {
  1450. var rowstat = ds_hidden_sppiz00200_rslt_clsp.getColumn(i, "rowstat")
  1451. if (rowstat != 'D') {
  1452. var spclspec = ds_hidden_sppiz00200_rslt_clsp.getColumn(i, "spclspec");
  1453. if (spclspec) {
  1454. isAttachedDataList = true;
  1455. }
  1456. // 특정내역 Grid 에서 해당 내용을 삽입 또는 수정한다.
  1457. if (rowstat == "I") { // 삽입
  1458. fSpclGridInsertRow();
  1459. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_spclcd", spclcd);
  1460. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_spclspec", spclspec);
  1461. if (spclcd == "MT015") {
  1462. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_remfact", "X(2)");
  1463. } else {
  1464. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_remfact", "X(200)");
  1465. }
  1466. } else if (rowstat == "U") { // 수정
  1467. for (var j = 1; j < grd_clcjlist.rows; j++) {
  1468. var gridspclcd = ds_main_list4_clcjlist.getColumn(j, "spclcd");
  1469. var gridspclspec = ds_main_list4_clcjlist.getColumn(j, "spclspec");
  1470. var gridrowstatus = grd_clcjlist.rowstatus(j);
  1471. if (gridspclcd == spclcd) {
  1472. ds_main_list4.setColumn( j , "spclspec", spclspec);
  1473. if (gridrowstatus == 1 || gridrowstatus == 3) { // 1 : insert, 3 : insert & new
  1474. } else {
  1475. grd_clcjlist.rowstatus(j) = 2; // 2 : update 상태로 stat를 변경한다.
  1476. }
  1477. }
  1478. }
  1479. }
  1480. } else { // 삭제
  1481. // 특정내역 Grid 에서 해당 내용을 삭제한다.
  1482. for (var j = 1; j < grd_clcjlist.rows; j++) {
  1483. var gridspclcd = ds_main_list4_clcjlist.getColumn(j, "spclcd");
  1484. var gridspclspec = ds_main_list4_clcjlist.getColumn(j, "spclspec");
  1485. var gridrowstatus = grd_clcjlist.rowstatus(j);
  1486. if (gridspclcd == spclcd) {
  1487. if (gridrowstatus == 1 || gridrowstatus == 3) { // 1 : insert, 3 : insert & new
  1488. grd_clcjlist.deleteRow(j, false); // 해당 라인을 Grid에서 삭제한다.
  1489. } else { // 0 : new, 2 : update
  1490. grd_clcjlist.rowstatus(j) = 4; // 4 : delete 상태로 stat를 변경한다.
  1491. }
  1492. }
  1493. }
  1494. }
  1495. }
  1496. }
  1497. if (isAttachedDataList) {
  1498. btn_attData.attribute("class") = "btn5_letter4";
  1499. btn_attData.attribute("color") = "#cc3333";
  1500. } else {
  1501. btn_attData.attribute("class") = "btn2_letter4";
  1502. }
  1503. }
  1504. //줄단위 추가
  1505. function fSpclGridInsertRow() {
  1506. // 특정내역 Grid 상에서 직접 행을 추가하는 경우 : 명세서단위 특정내역만을 추가할 수 있다.
  1507. // 줄단위 특정내역의 경우, 처방 Grid에서 'T' 컬럼을 더블클릭하여 특정내역 상세관리 Popup을 통해 입력한다.
  1508. var clcjrow = 0;
  1509. if(grd_clcjlist.rows > 1){
  1510. clcjrow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  1511. var chkdata = ds_main_list4_clcjlist.getColumn(clcjrow, "spclcd"));
  1512. if(chkdata == ""){
  1513. return;
  1514. }
  1515. }
  1516. grd_clcjlist.insertRow(clcjrow++, true,false,false);
  1517. grd_clcjlist.cellComboNodeset(clcjrow,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  1518. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_pid", ds_send.getColumn(0, "pid"));
  1519. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_indd", ds_send.getColumn(0, "indd"));
  1520. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_cretno", ds_send.getColumn(0, "cretno") );
  1521. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_fromdd", ds_send.getColumn(0, "fromdd"));
  1522. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_mskind", ds_send.getColumn(0, "mskind"));
  1523. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_unitflag", "M");
  1524. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_spclmemoflag","E" );
  1525. ds_main_list4.setColumn( 0, "clcjlist[" + (grd_clcjlist.rows - 1) + "]_status", "3");
  1526. grd_clcjlist.row = grd_clcjlist.rows;
  1527. grd_clcjlist.rowstatus(grd_clcjlist.row) = 1;
  1528. // grd_clcjlist.gridToInstance(); 최적화문제로 주석처리 - 20081015 박창원
  1529. }
  1530. // 특정내역 Grid 마우스 오른쪽 버튼 클릭시 팝업 메뉴 "행 삭제"
  1531. function fSpclGridDeleteRow() {
  1532. var rowstatus = grd_clcjlist.rowstatus(grd_clcjlist.row);
  1533. for( var i = grd_clcjlist.selectedRows; i >= 0 ; i-- ){
  1534. var cRrow = grd_clcjlist.selectedRow(i);
  1535. if (rowstatus == 4) { // 4 : delete
  1536. return;
  1537. }
  1538. else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  1539. grd_clcjlist.deleteRow(cRrow, false); // 해당 라인을 Grid에서 삭제한다.
  1540. } else { // 0 : new, 2 : update
  1541. ds_main_list4.setColumn( 0, "clcjlist[" + grd_clcjlist.row + "]_status", 4);
  1542. grd_clcjlist.rowstatus(cRrow) = 4; // 4 : delete 상태로 stat를 변경한다.
  1543. }
  1544. }
  1545. fCheckSpclSpecData();
  1546. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  1547. //fSetOrdSpclTxt();
  1548. //
  1549. //model.refresh();
  1550. 최적화 문제로 대체 20080731 박창원
  1551. model.refreshpart("ds_main_list2_iscllist");
  1552. model.refreshpart("ds_main_list4_clcjlist");
  1553. }
  1554. // 특정내역 Grid 에서 선택한 줄단위 특정내역을 조회하고, 명세서단위 특정내역을 수정_입력한다.
  1555. function fSetDocRefLnSpclSpec(){
  1556. ds_hidden_sppij00500_rslt.clearData(); // SPPIJ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  1557. ds_hidden_sppij00500_cond_list.clearData();
  1558. ds_hidden_sppij00500_cond.clearData(); ds_hidden_sppij00500_cond.addRow();
  1559. var row = grd_clcjlist.row;
  1560. var rows = grd_clcjlist.rows;
  1561. var edicd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("edicd"));
  1562. var oldspclcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclcd"));
  1563. var oldspclcdnm = "";
  1564. var oldspclspec = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclspec"));
  1565. var oldremfact = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("remfact"));
  1566. var olddetldesc = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("detldesc"));
  1567. //줄단위 명단위 특정내역 구분.
  1568. var unitflag = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("unitflag"));
  1569. var calcscorcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("calcscorcd"));
  1570. // pid,indd추가 결과조회 팝업호출을 위하여 - 20080922 박창원
  1571. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  1572. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1573. var rowcnt = 1;
  1574. var setrow =0 ;
  1575. if(unitflag == "J"){
  1576. if (edicd ) {
  1577. for (var i=1; i<rows; i++) {
  1578. var grdedicd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd"));
  1579. if ( edicd == grdedicd) {
  1580. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  1581. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  1582. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  1583. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd")));
  1584. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  1585. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  1586. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  1587. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("detldesc")));
  1588. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("remfact")));
  1589. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag")));
  1590. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  1591. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  1592. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  1593. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("calcscorcd")));
  1594. if (row == i) {
  1595. setrow = i;
  1596. }
  1597. rowcnt = rowcnt+1;
  1598. }
  1599. }
  1600. ds_hidden_sppij00500_cond.setColumn( 0, "pid", pid);
  1601. ds_hidden_sppij00500_cond.setColumn( 0, "indd", indd);
  1602. ds_hidden_sppij00500_cond.setColumn( 0, "flag", "U");
  1603. ds_hidden_sppij00500_cond.setColumn( 0, "edicd", edicd);
  1604. ds_hidden_sppij00500_cond.setColumn( 0, "spclcd", oldspclcd);
  1605. ds_hidden_sppij00500_cond.setColumn( 0, "spclcdnm", oldspclcdnm);
  1606. ds_hidden_sppij00500_cond.setColumn( 0, "detldesc", olddetldesc);
  1607. ds_hidden_sppij00500_cond.setColumn( 0, "spclspec", oldspclspec);
  1608. ds_hidden_sppij00500_cond.setColumn( 0, "remfact", oldremfact);
  1609. ds_hidden_sppij00500_cond.setColumn( 0, "rownum", setrow);
  1610. ds_hidden_sppij00500_cond.setColumn( 0, "unitflag", "J");
  1611. ds_hidden_sppij00500_cond.setColumn( 0, "calcscorcd", calcscorcd);
  1612. //var unitflag = ds_main_list4_clcjlist.getColumn(row, "unitflag"));
  1613. var unitflag = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("unitflag"))
  1614. // 삭제상태인 경우 처방Grid에서 입력,수정은 가능하지만 특정내역Grid에서는 편집할 수 없다.
  1615. var rowstatus = grd_clcjlist.rowstatus(row);
  1616. if (rowstatus == 4) { // 4 : delete
  1617. sysf_messageBox("삭제된 특정내역은 수정할 수", "I004"); ///삭제된 특정내역은 수정할 수 없습니다.
  1618. return;
  1619. }
  1620. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIJ00500_특정내역상세관리.xrw
  1621. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  1622. // 처리 건수
  1623. if (rsltcnt > 0) {
  1624. for(var i=rsltcnt; i>0; i--) {
  1625. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  1626. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  1627. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  1628. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  1629. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  1630. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  1631. var newremfact = ds_hidden_sppij00500_rslt_list.getColumn(i, "remfact");
  1632. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  1633. oldspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclcd");
  1634. oldspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclspec");
  1635. // 특정코드 추가인 경우
  1636. if (flag == "I") {
  1637. var clsprow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  1638. grd_clcjlist.insertRow(clsprow++, true,false,false);
  1639. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("unitflag")) = unitflag;
  1640. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  1641. //grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  1642. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  1643. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("remfact")) = newremfact;
  1644. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  1645. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("edicd")) = edicd;
  1646. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("status")) = "3";
  1647. // 특정코드 변경인 경우
  1648. } else if (flag == "U") {
  1649. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("unitflag")) = unitflag;
  1650. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  1651. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  1652. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  1653. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  1654. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  1655. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("edicd")) = edicd;
  1656. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  1657. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  1658. }
  1659. //model.refresh();
  1660. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  1661. if (oldspclcd != newspclcd || oldspclspec != newspclspec || grd_clcjlist.rowstatus(row) == 4) {
  1662. var rowstatus = grd_clcjlist.rowstatus(rownum);
  1663. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  1664. } else {
  1665. grd_clcjlist.rowstatus(rownum) = 2; // 2 : update 상태로 stat를 변경한다.
  1666. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "2";
  1667. }
  1668. }
  1669. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  1670. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  1671. rowcnt = eval(rowcnt) + 1;
  1672. for (var j = 1; j < rowcnt; j++) {
  1673. //for (var j = 1; j < grd_ordlist.rows; j++) {
  1674. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  1675. if (edicd == clcjedicd) {
  1676. if(newspclcd == "JX999"){
  1677. ds_main_list2.setColumn( j , "text", "#");
  1678. }else{
  1679. ds_main_list2.setColumn( j , "text", "*");
  1680. }
  1681. //
  1682. //model.refresh();
  1683. 최적화 문제로 대체 20080731 박창원
  1684. model.refreshpart("ds_main_list2_iscllist");
  1685. }
  1686. }
  1687. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  1688. // 특정코드 삭제인 경우
  1689. } else if (flag == "D" && rownum != "" ) {
  1690. // 특정내역 Grid에서 삭제
  1691. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  1692. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  1693. } else { // 0 : new, 2 : update
  1694. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  1695. }
  1696. // 처방Grid에서도 해당 줄단위 특정내역의 삭제 처리를 한다.
  1697. // 줄번호가 부여된 줄단위 특정내역이 삭제된 경우, 처방Grid의 'T' 컬럼의 "*" 를 삭제한다.
  1698. //var clcjedicd = ds_main_list4_clcjlist.getColumn(rownum, "edicd")); //root_main_list4_clcjlist_edicd
  1699. var clcjedicd = grd_clcjlist.valueMatrix( rownum,grd_clcjlist.colRef("edicd"));
  1700. if (clcjedicd) {
  1701. var isSameLn = false;
  1702. for (var j = 1; j < grd_clcjlist.rows; j++) {
  1703. if (grd_clcjlist.rowstatus(j) != 4) {
  1704. isSameLn = true; // 같은 줄번호에 여러개의 특정내역이 있는 경우임
  1705. }
  1706. }
  1707. }
  1708. if (isSameLn == false) { // 동일한 줄번호의 특정내역이 없는 경우
  1709. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  1710. rowcnt = eval(rowcnt) + 1;
  1711. for (var j = 1; j < rowcnt; j++) {
  1712. //for (var j = 1; j < grd_ordlist.rows; j++) {
  1713. var iscldicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  1714. if (clcjedicd == iscldicd) {
  1715. model.resetInstanceNode("ds_main_list2_iscllist["+ j +"]_text");
  1716. //
  1717. //model.refresh();
  1718. 최적화 문제로 대체 20080731 박창원
  1719. model.refreshpart("ds_main_list2_iscllist");
  1720. }
  1721. }
  1722. }
  1723. } // 특정코드 비교 if
  1724. } // end for
  1725. var rdounitflag = ds_send.getColumn(0, "unitflag");
  1726. if (rdounitflag == "-") {
  1727. for (var i=1; i<grd_clcjlist.rows; i++) {
  1728. var delstatus = grd_clcjlist.rowStatus(i);
  1729. var delspclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  1730. if (delstatus == 1 || delstatus == 3) { // 0 : new, 3 : insert & new
  1731. if (delspclspec == "") {
  1732. grd_clcjlist.deleteItem(i);
  1733. }
  1734. }
  1735. }
  1736. // 입력행 추가
  1737. fSpclGridInsertRow();
  1738. } else if (rdounitflag == "M") {
  1739. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'M']";
  1740. grd_clcjlist.rebuild();
  1741. } else if (rdounitflag == "J") {
  1742. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  1743. grd_clcjlist.rebuild();
  1744. }
  1745. for (var i=1; i<grd_clcjlist.rows; i++) {
  1746. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  1747. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  1748. if (status != "") {
  1749. grd_clcjlist.rowStatus(i) = status;
  1750. }
  1751. if (unitflag == "M") {
  1752. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M'and cdid != 'MX999']";
  1753. } else if (unitflag == "J") {
  1754. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J' ]";
  1755. }
  1756. }
  1757. } // 처리 건수
  1758. } else {
  1759. sysf_messageBox("EDI코드가 없는 경우 해당 줄단위 특정내역이", "I004"); ///EDI코드가 없는 경우 해당 줄단위 특정내역이 없습니다.
  1760. }
  1761. //명단위 특정내역으르 클릭한경우(unitflag =="M") 또는 빈칸을 클릭한경우는 명단위 특정내역으로 구분한다. 2007.09.23 박도형
  1762. }else{
  1763. ds_hidden_sppij00500_rslt.clearData(); // SPPIZ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  1764. ds_hidden_sppij00500_cond.clearData(); ds_hidden_sppij00500_cond.addRow();
  1765. var edicd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("edicd"));
  1766. var spclcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclcd"));
  1767. var spclcdnm = "";
  1768. var spclspec = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("spclspec"));
  1769. var remfact = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("remfact"));
  1770. var detldesc = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("detldesc"));
  1771. //줄단위 명단위 특정내역 구분.
  1772. var unitflag = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("unitflag"));
  1773. var calcscorcd = grd_clcjlist.valueMatrix(row, grd_clcjlist.colRef("calcscorcd"));
  1774. ds_hidden_sppij00500_cond.setColumn( 0, "pid", pid);
  1775. ds_hidden_sppij00500_cond.setColumn( 0, "indd", indd);
  1776. ds_hidden_sppij00500_cond.setColumn( 0, "edicd", edicd);
  1777. ds_hidden_sppij00500_cond.setColumn( 0, "spclcd", spclcd);
  1778. ds_hidden_sppij00500_cond.setColumn( 0, "spclcdnm", spclcdnm);
  1779. ds_hidden_sppij00500_cond.setColumn( 0, "remfact", remfact);
  1780. ds_hidden_sppij00500_cond.setColumn( 0, "spclspec", spclspec);
  1781. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "M");
  1782. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  1783. // 명단위도 기존 입력된 내역까지 다 보낸다. 2008.01.04 박지욱
  1784. var rowcnt = 1;
  1785. for (var i=1; i<grd_clcjlist.rows; i++) {
  1786. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  1787. var spclcd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd"));
  1788. if (unitflag == "M" && grd_clcjlist.rowstatus(i) != 4 && spclcd != "") {
  1789. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  1790. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  1791. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  1792. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd")));
  1793. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  1794. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcdnm")));
  1795. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  1796. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("detldesc")));
  1797. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("remfact")));
  1798. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag")));
  1799. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  1800. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd")));
  1801. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec")));
  1802. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", calcscorcd);
  1803. if (row == i) {
  1804. setrow = i;
  1805. }
  1806. rowcnt = rowcnt+1;
  1807. }
  1808. }
  1809. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M");
  1810. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  1811. // 처리 건수
  1812. if (rsltcnt > 0) {
  1813. for(var i=rsltcnt; i>0; i--) {
  1814. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  1815. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  1816. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  1817. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  1818. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  1819. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  1820. var newremfact = ds_hidden_sppij00500_rslt_list.getColumn(i, "remfact");
  1821. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  1822. // 특정코드 추가인 경우
  1823. if (flag == "I") {
  1824. var clsprow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  1825. grd_clcjlist.insertRow(clsprow++, true,false,false);
  1826. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("unitflag")) = unitflag;
  1827. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  1828. //grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  1829. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  1830. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("remfact")) = newremfact;
  1831. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  1832. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("edicd")) = edicd;
  1833. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("status")) = "3";
  1834. // pid, indd, cretno, fromdd, mskind, spclmemoflag, seqno 세팅
  1835. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("pid")) = ds_send.getColumn(0, "pid");
  1836. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("indd")) = ds_send.getColumn(0, "indd");
  1837. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("cretno")) = ds_send.getColumn(0, "cretno");
  1838. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("fromdd")) = ds_send.getColumn(0, "fromdd");
  1839. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("mskind")) = ds_send.getColumn(0, "mskind");
  1840. grd_clcjlist.valueMatrix(clsprow, grd_clcjlist.colRef("spclmemoflag")) = "E";
  1841. // 특정코드 변경인 경우
  1842. } else if (flag == "U") {
  1843. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("unitflag")) = unitflag;
  1844. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  1845. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  1846. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  1847. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  1848. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  1849. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("edicd")) = edicd;
  1850. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  1851. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  1852. }
  1853. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  1854. // 특정코드 삭제인 경우
  1855. } else if (flag == "D" && rownum != "" ) {
  1856. // 특정내역 Grid에서 삭제
  1857. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  1858. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  1859. } else { // 0 : new, 2 : update
  1860. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  1861. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "4";
  1862. }
  1863. }
  1864. }
  1865. // 그리드 정렬 & 한줄추가
  1866. //fSortSpclNo();
  1867. //fSaveClcjList();
  1868. } // 처리건수
  1869. }
  1870. }
  1871. // 처방 행 삭제 or 삭제취소 후에 특정내역 sorting 작업
  1872. function fSortSpclNo() {
  1873. // 빈 줄을 삭제한다.
  1874. for (var i = 1; i < grd_clcjlist.rows; i++) {
  1875. var rowstatus = grd_clcjlist.rowstatus(i);
  1876. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  1877. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  1878. if (spclcd == "") {
  1879. // 줄을 삭제한다.
  1880. grd_clcjlist.deleteRow(i, false);
  1881. i--;
  1882. }
  1883. }
  1884. }
  1885. // JS010(특정코드:야간가산)의 hhmm이 야간(18~09시)가 아니면 특정내역 Grid에 빨간색으로 표시
  1886. for(var i = 1; i < grd_clcjlist.rows; i++) {
  1887. grd_clcjlist.rowStyle(i, "data", "color") = "#000000";
  1888. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  1889. var spclspec = ds_main_list4_clcjlist.getColumn(i, "spclspec");
  1890. if (spclcd == "JS010") {
  1891. var js010chk = false;
  1892. if (spclspec.length >= 12) {
  1893. var ccyymmddhhmm = spclspec.substr(0, 12);
  1894. if (utlf_isValidDateTime(ccyymmddhhmm, "YYYYMMDDhhmm")) { // (dateHelper.js) 유효한 날짜, 시간 인지 점검
  1895. var hhmm = parseInt(spclspec.substr(8, 4), 10); // '09' 와 같은 형식으로 입력한 경우 -> 9로 처리
  1896. if (hhmm >= 1800 || hhmm < 900) {
  1897. js010chk = true;
  1898. }
  1899. }
  1900. }
  1901. if (js010chk == false) {
  1902. grd_clcjlist.rowStyle(i, "data", "color") = "#ff3333"; // ff3333=붉은색
  1903. }
  1904. }
  1905. }
  1906. grd_clcjlist.colsort(grd_clcjlist.colRef("unitflag")) = "desc";
  1907. grd_clcjlist.colsort(grd_clcjlist.colRef("edicd")) = "asc";
  1908. grd_clcjlist.colsort(grd_clcjlist.colRef("spclcd")) = "asc";
  1909. grd_clcjlist.colsort(grd_clcjlist.colRef("status")) = "desc";
  1910. var maxRow = parseInt(grd_clcjlist.rows) - 1; // rows는 타이틀부분 부터 개수를 센다.
  1911. var maxCol = parseInt(grd_clcjlist.cols) - 1;
  1912. grd_clcjlist.sort(grd_clcjlist.fixedRows, grd_clcjlist.fixedCols, maxRow, maxCol) = "usersort";
  1913. // Sort 된 Grid 상의 Data 순서와 Instance Node 상의 Data 순서를 동일하게 맞춰준다.
  1914. grd_clcjlist.gridToInstance();
  1915. // 빈줄 추가
  1916. fSpclGridInsertRow();
  1917. }
  1918. function fSetLnUnitSpclcjec() { // 'T' 필드 더블클릭시 호출한다.
  1919. var rdounitflag = ds_send.getColumn(0, "unitflag");
  1920. // pid,indd추가 결과조회 팝업호출을 위하여 - 20080922 박창원
  1921. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  1922. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  1923. if (rdounitflag == "M") {
  1924. // 줄단위로 셋팅하고 처리
  1925. rdo_unitflag.value = "J";
  1926. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  1927. grd_clcjlist.rebuild();
  1928. // 단위에 필터에 따라 해당 행있는 특정코드 콤보 재설정
  1929. for (var i=1; i<grd_clcjlist.rows; i++) {
  1930. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  1931. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  1932. if (status != "") {
  1933. grd_clcjlist.rowStatus(i) = status;
  1934. }
  1935. if (unitflag == "M") {
  1936. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M'' and cdid != 'MX999']";
  1937. } else if (unitflag == "J") {
  1938. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  1939. }
  1940. }
  1941. }
  1942. var row = grd_ordlist.row;
  1943. var rows = grd_clcjlist.rows;
  1944. ds_hidden_sppij00500_rslt.clearData(); // SPPIJ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  1945. ds_hidden_sppij00500_cond.clearData();
  1946. // 처방 Grid에서 줄번호가 부여된 경우
  1947. //var edicd = ds_main_list2_iscllist.getColumn(row, "edicd"));
  1948. var edicd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("edicd"));
  1949. var calcscorcd = grd_ordlist.valueMatrix(row, grd_ordlist.colref("snglcalcscorcd")); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  1950. var rowcnt = 1;
  1951. var setrow = 0;
  1952. if (edicd) {
  1953. if (rows == 1) {
  1954. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  1955. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  1956. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  1957. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", indd);
  1958. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  1959. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  1960. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  1961. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  1962. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "");
  1963. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  1964. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "");
  1965. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  1966. } else {
  1967. for (var i=1; i<rows; i++) {
  1968. var clcjcalcscorcd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("calcscorcd"));
  1969. var clcjedicd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd"));
  1970. var spclcd = grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd"));
  1971. if ( edicd == clcjedicd) {
  1972. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "flag", "U");
  1973. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("calcscorcd"))); // 수정추가 JHP 특정내역에 수가코드 추가하기. 20090423
  1974. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "edicd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("edicd")));
  1975. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "detldesc", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("detldesc")));
  1976. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  1977. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclcdnm", "");
  1978. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "spclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  1979. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "remfact", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("remfact")));
  1980. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "rownum", i);
  1981. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "unitflag", "J")
  1982. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclcd", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclcd")));
  1983. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "oldspclspec", grd_clcjlist.valueMatrix( i,grd_clcjlist.colRef("spclspec")));
  1984. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "pid", pid);
  1985. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "indd", indd);
  1986. ds_hidden_sppij00500_cond_list.setColumn( rowcnt, "calcscorcd", "");
  1987. rowcnt = rowcnt+1;
  1988. // 특정내역 상세 화면에 보여줄 특정내역 선택
  1989. setrow = i;
  1990. }
  1991. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", calcscorcd);
  1992. dsf_makeValue( ds_hidden_sppij00500_cond, "edicd", "string", edicd);
  1993. dsf_makeValue( ds_hidden_sppij00500_cond, "unitflag", "string", "J");
  1994. if ( setrow != 0 ) {
  1995. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  1996. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  1997. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "U");
  1998. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclcd")));
  1999. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  2000. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("detldesc")));
  2001. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("spclspec")));
  2002. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", grd_clcjlist.valueMatrix(setrow,grd_clcjlist.colRef("remfact")));
  2003. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", setrow);
  2004. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", "");
  2005. } else {
  2006. dsf_makeValue( ds_hidden_sppij00500_cond, "pid", "string", pid);
  2007. dsf_makeValue( ds_hidden_sppij00500_cond, "indd", "string", indd);
  2008. dsf_makeValue( ds_hidden_sppij00500_cond, "flag", "string", "I");
  2009. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcd", "string", "JX999");
  2010. dsf_makeValue( ds_hidden_sppij00500_cond, "spclcdnm", "string", "");
  2011. dsf_makeValue( ds_hidden_sppij00500_cond, "detldesc", "string", "");
  2012. dsf_makeValue( ds_hidden_sppij00500_cond, "spclspec", "string", "");
  2013. dsf_makeValue( ds_hidden_sppij00500_cond, "remfact", "string", "");
  2014. dsf_makeValue( ds_hidden_sppij00500_cond, "rownum", "string", "");
  2015. dsf_makeValue( ds_hidden_sppij00500_cond, "calcscorcd", "string", "");
  2016. }
  2017. }
  2018. }
  2019. ds_hidden_sppij00500_rslt.clearData();
  2020. frmf_modal("SPPIJ00500", "SPPIJ00500", "ds_hidden_sppij00500""-"ds_hidden_clcj"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIJ00500_특정내역상세관리.xrw
  2021. var rsltcnt = ds_hidden_sppij00500_rslt_list.rowcount;
  2022. // 처리 건수
  2023. if (rsltcnt > 0) {
  2024. for(var i=rsltcnt; i>0; i--) {
  2025. var flag = ds_hidden_sppij00500_rslt_list.getColumn(i, "flag");
  2026. var rownum = ds_hidden_sppij00500_rslt_list.getColumn(i, "rownum");
  2027. var calcscorcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "calcscorcd");
  2028. var edicd = ds_hidden_sppij00500_rslt_list.getColumn(i, "edicd");
  2029. var newspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcd");
  2030. var newspclcdnm = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclcdnm");
  2031. var newspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "spclspec");
  2032. var newremfact = model.getValue("ds_hidden_sppij00500_rslt_list["+ i +"]_remfact ");
  2033. var newdetldesc = ds_hidden_sppij00500_rslt_list.getColumn(i, "detldesc");
  2034. var oldspclcd = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclcd");
  2035. var oldspclspec = ds_hidden_sppij00500_rslt_list.getColumn(i, "oldspclspec");
  2036. // 특정코드 추가인 경우
  2037. if (flag == "I") {
  2038. var clcjrow = grd_clcjlist.rows - 1; // 특정내역 Grid 가장 마지막 줄에 추가한다.
  2039. grd_clcjlist.insertRow(clcjrow++, true,false,false);
  2040. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("pid")) = ds_send.getColumn(0, "pid");
  2041. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("indd")) = ds_send.getColumn(0, "indd");
  2042. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("cretno")) = ds_send.getColumn(0, "cretno");
  2043. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("fromdd")) = ds_send.getColumn(0, "fromdd");
  2044. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("mskind")) = ds_send.getColumn(0, "mskind");
  2045. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("unitflag")) = "J";
  2046. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("calcscorcd")) = calcscorcd;
  2047. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("edicd")) = edicd;
  2048. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcd")) = newspclcd;
  2049. //grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  2050. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclspec")) = newspclspec;
  2051. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("remfact")) = newremfact;
  2052. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  2053. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("spclmemoflag")) = "E";
  2054. grd_clcjlist.valueMatrix(clcjrow, grd_clcjlist.colRef("status")) = "3";
  2055. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  2056. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2057. rowcnt = eval(rowcnt) + 1;
  2058. for (var j = 1; j < rowcnt; j++) {
  2059. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2060. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2061. if (edicd == clcjedicd) {
  2062. ds_main_list2.setColumn( j , "text", "*");
  2063. //
  2064. //model.refresh();
  2065. 최적화 문제로 20080731 박창원
  2066. }
  2067. }
  2068. // 특정코드 변경인 경우
  2069. } else if (flag == "U") {
  2070. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcd")) = newspclcd;
  2071. //grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclcdnm")) = newspclcdnm;
  2072. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("spclspec")) = newspclspec;
  2073. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("remfact")) = newremfact;
  2074. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("detldesc")) = newdetldesc;
  2075. if ( grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) != "3") {
  2076. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "0";
  2077. }
  2078. //model.refresh();
  2079. // 특정코드, 특정내역이 변경되었거나 삭제된 특정코드를 조회하여 "확인"을 선택한 경우
  2080. if (oldspclcd != newspclcd || oldspclspec != newspclspec || grd_clcjlist.rowstatus(row) == 4) {
  2081. var rowstatus = grd_clcjlist.rowstatus(rownum);
  2082. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  2083. } else {
  2084. grd_clcjlist.rowstatus(rownum) = 2; // 2 : update 상태로 stat를 변경한다.
  2085. grd_clcjlist.valueMatrix(rownum, grd_clcjlist.colRef("status")) = "2";
  2086. }
  2087. }
  2088. // 처방Grid에서도 해당 줄단위 특정내역의 'T' 컬럼의 "*" 를 표시한다.
  2089. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2090. rowcnt = eval(rowcnt) + 1;
  2091. for (var j = 1; j < rowcnt; j++) {
  2092. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2093. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2094. if (edicd == clcjedicd) {
  2095. ds_main_list2.setColumn( j , "text", "*");
  2096. //
  2097. //model.refresh();
  2098. 최적화 문제로 20080731 박창원
  2099. }
  2100. }
  2101. ds_hidden_item1.setColumn( 0, "message", "특정코드 - "+ newspclcd +" / 특정내역 : "+ newspclspec +" / 기재형식 : "+ newremfact);
  2102. // 특정코드 삭제인 경우
  2103. } else if (flag == "D" && rownum != "" ) {
  2104. var cnt = 0;
  2105. for (var j = 1; j < grd_clcjlist.rows; j++) {
  2106. var clcjedicd = ds_main_list4_clcjlist.getColumn(j, "edicd");
  2107. if (edicd == clcjedicd) {
  2108. if (grd_clcjlist.rowstatus(j) != 4) {
  2109. cnt++;
  2110. }
  2111. }
  2112. }
  2113. if (cnt > 0) {
  2114. } else {
  2115. grd_ordlist.valueMatrix(row, grd_ordlist.colref("text")) = "";
  2116. //model.resetInstanceNode("ds_main_list2_iscllist["+ row +"]_text");
  2117. }
  2118. // 특정내역 Grid에서 삭제
  2119. var rowstatus = grd_clcjlist.rowstatus(rownum);
  2120. if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  2121. grd_clcjlist.deleteRow(rownum, false); // 해당 라인을 Grid에서 삭제한다.
  2122. } else { // 0 : new, 2 : update
  2123. grd_clcjlist.rowstatus(rownum) = 4; // 4 : delete 상태로 stat를 변경한다.
  2124. }
  2125. grd_clcjlist.row = rownum;
  2126. var rowcnt = ds_main_list2_iscllist.rowcount; // 필터
  2127. rowcnt = eval(rowcnt) + 1;
  2128. for (var j = 1; j < rowcnt; j++) {
  2129. //for (var j = 1; j < grd_ordlist.rows; j++) {
  2130. var clcjedicd = ds_main_list2_iscllist.getColumn(j, "edicd");
  2131. if (edicd == clcjedicd) {
  2132. ds_main_list2.setColumn( j , "text", "");
  2133. //
  2134. //model.refresh();
  2135. 최적화 문제로 20080731 박창원
  2136. }
  2137. }
  2138. } // 특정 코드 상태 따른 if end
  2139. } // for end
  2140. var rdounitflag = ds_send.getColumn(0, "unitflag");
  2141. if (rdounitflag == "-") {
  2142. for (var i=1; i<grd_clcjlist.rows; i++) {
  2143. var delstatus = grd_clcjlist.rowStatus(i);
  2144. var delspclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  2145. if (delstatus == 1 || delstatus == 3) { // 0 : new, 3 : insert & new
  2146. if (delspclspec == "") {
  2147. grd_clcjlist.deleteItem(i);
  2148. }
  2149. }
  2150. }
  2151. // 입력행 추가
  2152. fSpclGridInsertRow();
  2153. } else if (rdounitflag == "M") {
  2154. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'M']";
  2155. grd_clcjlist.rebuild();
  2156. } else if (rdounitflag == "J") {
  2157. grd_clcjlist.attribute("nodeset") = "ds_main_list4_clcjlist[unitflag = 'J']";
  2158. grd_clcjlist.rebuild();
  2159. }
  2160. for (var i=1; i<grd_clcjlist.rows; i++) {
  2161. var unitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  2162. var status = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("status"));
  2163. if (status != "") {
  2164. grd_clcjlist.rowStatus(i) = status;
  2165. }
  2166. if (unitflag == "M") {
  2167. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'M' and cdid != 'MX999']";
  2168. } else if (unitflag == "J") {
  2169. grd_clcjlist.cellComboNodeset(i,3) = "ds_init_P0117list_P0117[minval = 'J']";
  2170. }
  2171. }
  2172. } // 처리 건수 if end
  2173. //
  2174. //model.refresh();
  2175. 최적화 문제로 대체 20080731 박창원
  2176. model.refreshpart("ds_main_list2_iscllist");
  2177. model.refreshpart("ds_main_list4_clcjlist");
  2178. } else {
  2179. sysf_messageBox("EDI코드가 없는 경우 해당 줄단위 특정내역이", "I004"); ///EDI코드가 없는 경우 해당 줄단위 특정내역이 없습니다.
  2180. }
  2181. }
  2182. function fGetStageTNM(){
  2183. ds_hidden_smpij02000_rslt.clearData(); // SMPIZ02000_환자별암병기분류조회 에서 선택된 결과가 copyNode되는 경로임
  2184. ds_hidden_smpij02000_cond.clearData(); ds_hidden_smpij02000_cond.addRow();
  2185. ds_hidden_smpij02000_cond.setColumn( 0, "pid", ds_main_item1_iteminfo.getColumn(0, "pid"));
  2186. ds_hidden_smpij02000_cond.setColumn( 0, "insuflag", "");
  2187. frmf_modal("SMPIJ02000", "SMPIJ02000", "ds_hidden_smpij02000_cond""-"ds_send_list01"", "", "", "10", "10", "", "", "", "", "", "M");
  2188. }
  2189. //심사자 메모 팝업 갱신
  2190. function fSetJudgMemoRefresh(){
  2191. //model.refresh();
  2192. var memo = ds_hidden_sppiz00700_rslt.getColumn(0, "memo");
  2193. var tmp = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  2194. if(tmp){
  2195. tmp = tmp + " ";
  2196. }
  2197. ds_main_item1_iteminfo.setColumn( 0, "judgrmk",tmp + memo);
  2198. //
  2199. //model.refresh();
  2200. 최적화 문제로 대체 20080731 박창원
  2201. //model.refresh();
  2202. }
  2203. //EDI 메모 팝업 갱신
  2204. function fSetEdiMemoRefresh(){
  2205. var memo = ds_hidden_sppiz00700_rslt.getColumn(0, "memo");
  2206. var tmp = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  2207. if(tmp){
  2208. tmp = tmp + " ";
  2209. }
  2210. ds_main_item1_iteminfo.setColumn( 0, "edirmk",tmp + memo);
  2211. //
  2212. //model.refresh();
  2213. 최적화 문제로 대체 20080731 박창원
  2214. //model.refresh();
  2215. }
  2216. //확인코드(JT001) 줄단위 특정내역 입력
  2217. function fCnfmCdInsert(){
  2218. var trgtManWindow = getChildWindow("SPPIJ00500");
  2219. //var edicd = ds_main_list2_iscllist.getColumn(grd_ordlist.row, "edicd"));
  2220. var edicd = grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colref("edicd"));
  2221. var selectededicd = "";
  2222. var row = 0;
  2223. ds_hidden_sppij00500_rslt.clearData(); // SPPIZ00500_특정내역상세관리 에서 선택된 결과가 copyNode되는 경로임
  2224. ds_hidden_sppij00500_cond.clearData(); ds_hidden_sppij00500_cond.addRow();
  2225. if(edicd){
  2226. for (var i = 1; i < grd_clcjlist.rows; i++) {
  2227. if(edicd == ds_main_list4_clcjlist.getColumn(i, "edicd")){
  2228. ds_hidden_sppij00500_cond.setColumn( 0, "edicd", ds_main_list4_clcjlist.getColumn(i, "edicd"));
  2229. ds_hidden_sppij00500_cond.setColumn( 0, "spclcd", ds_main_list4_clcjlist.getColumn(i, "spclcd"));
  2230. ds_hidden_sppij00500_cond.setColumn( 0, "remfact", ds_main_list4_clcjlist.getColumn(i, "remfact"));
  2231. ds_hidden_sppij00500_cond.setColumn( 0, "spclspec", ds_main_list4_clcjlist.getColumn(i, "spclspec"));
  2232. ds_hidden_sppij00500_cond.setColumn( 0, "row", i);
  2233. selectededicd = edicd;
  2234. row = i;
  2235. }
  2236. }
  2237. //이미 등록된 확인코드가 있는경우
  2238. if(selectededicd){
  2239. ds_hidden_sppij00500_cond.setColumn( 0, "unitflag", "J");
  2240. var chk = ds_hidden_sppij00500_cond.getColumn(0, "spclcd");
  2241. if(chk == "JT001"){
  2242. ds_hidden_sppiz01100_rslt.clearData();
  2243. dsf_makeValue( ds_hidden_sppiz01100_cond, "code", "string", ds_hidden_sppij00500_cond.getColumn(0, "spclspec"));
  2244. dsf_makeValue( ds_hidden_sppiz01100, "edicd", "string", edicd);
  2245. frmf_modal("SPPIZ01100", "SPPIZ01100", "ds_hidden_sppiz01100""-"ds_init_sppiz01100"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ01100_확인코드조회
  2246. if (instance1.selectSingleNode("ds_hidden_sppiz01100_rslt")) {
  2247. ds_main_list4.setColumn( row , "spclspec", ds_hidden_sppiz01100_rslt.getColumn(0, "code"));
  2248. //Combo 줄단위 코드로 셋팅
  2249. grd_clcjlist.cellComboNodeset(row,3) = "ds_init_P0117list_P0117[minval = 'J']";
  2250. grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colref("cnfmcd")) = ds_hidden_sppiz01100_rslt.getColumn(0, "code");
  2251. //model.refresh();
  2252. fSpclGridInsertRow() ;
  2253. }
  2254. }
  2255. //등록된 확인코드가 없으면 신규로 발생시켜준다.
  2256. }else{
  2257. ds_hidden_sppiz01100_rslt.clearData();
  2258. dsf_makeValue( ds_hidden_sppiz01100_cond, "code", "string", "");
  2259. frmf_modal("SPPIZ01100", "SPPIZ01100", "ds_hidden_sppiz01100""-"ds_init_sppiz01100"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ01100_확인코드조회
  2260. if (instance1.selectSingleNode("ds_hidden_sppiz01100_rslt")) {
  2261. fSpclGridInsertRow() ;
  2262. var row = grd_clcjlist.rows - 1;
  2263. //Combo 줄단위 코드로 셋팅
  2264. grd_clcjlist.cellComboNodeset(row,3) = "ds_init_P0117list_P0117[minval = 'J']";
  2265. ds_main_list4.setColumn( row , "edicd", edicd);
  2266. ds_main_list4.setColumn( row , "spclcd", "JT001");
  2267. ds_main_list4.setColumn( row , "unitflag","J");
  2268. ds_main_list4.setColumn( row , "spclmemoflag","E" );
  2269. ds_main_list4.setColumn( row , "remfact", "X(5)");
  2270. ds_main_list4.setColumn( row , "spclspec", ds_hidden_sppiz01100_rslt.getColumn(0, "code"));
  2271. grd_ordlist.valueMatrix(grd_ordlist.row, grd_ordlist.colref("cnfmcd")) = ds_hidden_sppiz01100_rslt.getColumn(0, "code");
  2272. //ds_main_list2.setColumn( 0, "iscllist[" + grd_ordlist.row + "]_cnfmcd",ds_hidden_sppiz01100_rslt.getColumn(0, "code"));
  2273. fSpclGridInsertRow() ;
  2274. }
  2275. }
  2276. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  2277. //fSetOrdSpclTxt();
  2278. }
  2279. }
  2280. ///////////////////////////////////////////////////////////////////////////
  2281. //특정내역 관련 코딩 종료 //
  2282. ///////////////////////////////////////////////////////////////////////////
  2283. ///////////////////////////////////////////////////////////////////////////
  2284. // 조합기호(ipt_cmpyno)를 입력하면 해당 조합명칭을 조회한다.
  2285. function fGetCmpyNm() {
  2286. /*var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  2287. rrgstno = rrgstno.replace("-","");
  2288. //보험증번호 조회(보험자격조회)
  2289. var parm = rrgstno + "▦" + //주민번호
  2290. ds_main_item1_iteminfo.getColumn(0, "patnm") + "▦" + //이름
  2291. ds_main_item1_iteminfo.getColumn(0, "indd") + "▦";//진료일자
  2292. frmf_setParameter("SPPMC03700_PARM",parm);
  2293. frmf_setParameter("SPPMC03700_RTN","");
  2294. frmf_modal("SPPMC03700", "SPPMC03700", ""-"", "", "1", "400", "400", "", "", "", "", "", "M"); */
  2295. }
  2296. //보조유형이 바뀌는경우
  2297. function fSetPatSuppRate() {
  2298. // 보조유형ID과 요율%로 combo 의 value
  2299. // 보조유형NM과 요율%로 combo 의 label
  2300. //cmb_suppkind.choices.itemset.attribute("nodeset") = "ds_main_item4_insu[suppkind = '"+ cmb_suppkind.value +"']";
  2301. var suppkindcd = ds_main_item4_insu.getColumn(0, "suppkind");
  2302. var payownbrate = ds_main_item4_insu.getColumn(0, "ownbrate");
  2303. ds_main_item1_iteminfo.setColumn( 0, "suppkindcd", suppkindcd);
  2304. ds_main_item1_iteminfo.setColumn( 0, "ownrate", payownbrate);
  2305. if(payownbrate == "20"){
  2306. opt_suppkind.attribute("class") = "output_fix";
  2307. }else{
  2308. opt_suppkind.attribute("color") = "#ff0066";
  2309. }
  2310. //
  2311. //model.refresh();
  2312. 최적화 문제로 대체 20080731 박창원
  2313. model.refreshpart("ds_main_item1_iteminfo");
  2314. }
  2315. ///////////////////////////////////////////////////////////////////////////
  2316. //처방 관련 코딩 시작 //
  2317. ///////////////////////////////////////////////////////////////////////////
  2318. //처방조회 옵션에 항목구분에 처방이 있는 것만 Bold로 보여준다.
  2319. //이건 처음에 로드했을때 한번만 도는것이라서 따로 분리하여 만듬. 2007.09.09 박도형
  2320. // 최적화 문제로 else if를 사용하여 수정 - 20081017 박창원
  2321. function fSetItemBold(){
  2322. rdo_ordfilflag.item(0).attribute("font-weight") = "bold"; // "전체" 항목은 default 로 굵게 표시한다.
  2323. //우선 초기화를 한다.
  2324. rdo_ordfilflag.item(1).attribute("font-weight") = "normal";
  2325. rdo_ordfilflag.item(2).attribute("font-weight") = "normal";
  2326. rdo_ordfilflag.item(3).attribute("font-weight") = "normal";
  2327. rdo_ordfilflag.item(4).attribute("font-weight") = "normal";
  2328. rdo_ordfilflag.item(5).attribute("font-weight") = "normal";
  2329. rdo_ordfilflag.item(6).attribute("font-weight") = "normal";
  2330. rdo_ordfilflag.item(7).attribute("font-weight") = "normal";
  2331. rdo_ordfilflag.item(8).attribute("font-weight") = "normal";
  2332. rdo_ordfilflag.item(9).attribute("font-weight") = "normal";
  2333. rdo_ordfilflag.item(10).attribute("font-weight") = "normal";
  2334. rdo_ordfilflag.item(11).attribute("font-weight") = "normal";
  2335. // 처방 조회부 항목구분 Radio에서 해당 처방이 있는 item을 굵게 표시한다.
  2336. var item1 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 01 + "'", "item1"); //항목구분 에 Bold처리하기 위한 체크
  2337. var item2 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 02 + "'", "item1");
  2338. var item3 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 03 + "'", "item1");
  2339. var item4 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 04 + "'", "item1");
  2340. var item5 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 05 + "'", "item1");
  2341. var item6 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 06 + "'", "item1");
  2342. var item7 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 07 + "'", "item1");
  2343. var item8 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 08 + "'", "item1");
  2344. var item9 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 09 + "'", "item1");
  2345. var item10 = ds_main_list2_iscllist.lookupExpr("item1 == '" + 10 + "'", "item1");
  2346. var itemSS = ds_main_list2_iscllist.lookupExpr("item1 == '" + SS + "'", "item1");
  2347. if (item1 == "01") {
  2348. rdo_ordfilflag.item(1).attribute("font-weight") = "bold";
  2349. }
  2350. if (item2 == "02") {
  2351. rdo_ordfilflag.item(2).attribute("font-weight") = "bold";
  2352. }
  2353. if (item3 == "03") {
  2354. rdo_ordfilflag.item(3).attribute("font-weight") = "bold";
  2355. }
  2356. if (item4 == "04") {
  2357. rdo_ordfilflag.item(4).attribute("font-weight") = "bold";
  2358. }
  2359. if (item5 == "05") {
  2360. rdo_ordfilflag.item(5).attribute("font-weight") = "bold";
  2361. }
  2362. if (item6 == "06") {
  2363. rdo_ordfilflag.item(6).attribute("font-weight") = "bold";
  2364. }
  2365. if (item7 == "07") {
  2366. rdo_ordfilflag.item(7).attribute("font-weight") = "bold";
  2367. }
  2368. if (item8 == "08") {
  2369. rdo_ordfilflag.item(8).attribute("font-weight") = "bold";
  2370. }
  2371. if (item9 == "09") {
  2372. rdo_ordfilflag.item(9).attribute("font-weight") = "bold";
  2373. }
  2374. if (item10 == "10") {
  2375. rdo_ordfilflag.item(10).attribute("font-weight") = "bold";
  2376. }
  2377. if (itemSS == "SS") {
  2378. rdo_ordfilflag.item(11).attribute("font-weight") = "bold";
  2379. }
  2380. }
  2381. // 항목별소계
  2382. function fSetItemSubTotal() {
  2383. grd_ordlist.rebuildStyle();
  2384. grd_ordlist.rebuild();
  2385. // ****************************************************************************************************************
  2386. // 항목별 소계 subtotal 김상진 20101122
  2387. // ****************************************************************************************************************
  2388. // #ffff0| 밝은노랑
  2389. // #d9e3fe 옅은파랑
  2390. // #eeddff 옅은보라
  2391. // #b9fcf8 밝은하늘
  2392. // #cefcfa 옅은하늘
  2393. var grdobj = document.controls.item("grd_ordlist");
  2394. if (model.getValue(chk_showsubtotal.attribute("ref")) == "Y") {
  2395. var col_hngnm = grdobj.colRef("hngnm");
  2396. var col_item1 = grdobj.colRef("item1");
  2397. var subtot_style = "background-color:#cefcfa; color:#0000ff;font-weight:bold;"
  2398. var subtot_fromat = "format:(-)#,###; roundmode:round; roundposition:0"
  2399. grdobj.subtotalposition= "below";
  2400. grdobj.subtotal("sum", col_item1, grdobj.colRef("hospaddamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  2401. grdobj.subtotal("sum", col_item1, grdobj.colRef("specamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  2402. grdobj.subtotal("sum", col_item1, grdobj.colRef("totordamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  2403. grdobj.subtotal("sum", col_item1, grdobj.colRef("calcamt"),subtot_fromat, subtot_style, col_hngnm, col_hngnm, true);
  2404. var srchnm = "";
  2405. var fild1 = "0";
  2406. var rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_item1, true, true);
  2407. while( rowno > 0){
  2408. var fild1 = "0";
  2409. fild1 = grd_ordlist.valueMatrix(rowno, col_hngnm);
  2410. if(fild1 == "01"){
  2411. grd_ordlist.valueMatrix(rowno, col_hngnm) = "진찰료 소계";
  2412. }else if(fild1== "02"){
  2413. grd_ordlist.valueMatrix(rowno, col_hngnm) = "입원료 소계";
  2414. }else if(fild1 == "03"){
  2415. grd_ordlist.valueMatrix(rowno, col_hngnm) = "투약료 소계";
  2416. }else if(fild1 == "04"){
  2417. grd_ordlist.valueMatrix(rowno, col_hngnm) = "주사료 소계";
  2418. }else if(fild1 == "05"){
  2419. grd_ordlist.valueMatrix(rowno, col_hngnm) = "마취료 소계";
  2420. }else if(fild1 == "06"){
  2421. grd_ordlist.valueMatrix(rowno, col_hngnm) = "이학료 소계";
  2422. }else if(fild1 == "07"){
  2423. grd_ordlist.valueMatrix(rowno, col_hngnm) = "정신료 소계";
  2424. }else if(fild1 == "08"){
  2425. grd_ordlist.valueMatrix(rowno, col_hngnm) = "수술료 소계";
  2426. }else if(fild1 == "09"){
  2427. grd_ordlist.valueMatrix(rowno, col_hngnm) = "검사료 소계";
  2428. }else if(fild1 == "10"){
  2429. grd_ordlist.valueMatrix(rowno, col_hngnm) = "방사선 소계";
  2430. }else if(fild1 == "SS"){
  2431. grd_ordlist.valueMatrix(rowno, col_hngnm) = "특수 소계";
  2432. }
  2433. rowno = grdobj.findRow(srchnm, rowno + 1,col_item1,true,true);
  2434. }
  2435. }
  2436. }
  2437. //범례 색깔을 표시한다.
  2438. function fSetColorSpclJudgOrder() {
  2439. //일단 수정변경 : 20090915 : JHP 필터기능으로 숨김기능이 제어가 되어서 for문을 돌릴때 i의 제어가 어렵다 하여 datagrid의 rows로 for문을 돌리는걸로 변경한다.
  2440. if (model.getValue(chk_showitemcoloryn.attribute("ref")) == "Y") {
  2441. fSetOrderColorByEdiitem();
  2442. }
  2443. //Color 표시 범례
  2444. //1. 문제처방 : #fcd2c1
  2445. //2. 선별심사 : #ffe79d
  2446. //3. 선별심사 + 문제처방 : #7BE6B7
  2447. //4. 야간, 공휴가산 : #ffff00(밝은노랑)
  2448. //선별심사, 문제처방 체크 (기왕증, CP보다 우선시 한다. -심사자가 기왕증 ,CP여부를 확인하고 문제처방을 한경우 임으로)
  2449. var grdobj = document.controls.item("grd_ordlist");
  2450. var col_hngnm = grdobj.colRef("hngnm");
  2451. var col_probordyn = grdobj.colRef("probordyn");
  2452. var srchnm = "Y";
  2453. var spcljudgyn = "";
  2454. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_probordyn, true, true);
  2455. while( rowno > 0){
  2456. grd_ordlist.setCellProprty("body", rowno, "background", "#fcd2c1"); grd_ordlist.setCellProperty("body", rowno, "background2", "#fcd2c1");
  2457. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_probordyn, true, true);
  2458. }
  2459. var col_spcljudgyn = grdobj.colRef("spcljudgyn");
  2460. var probordyn = "";
  2461. var rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_spcljudgyn, true, true);
  2462. while( rowno > 0){
  2463. grd_ordlist.setCellProprty("body", rowno, "background", "#ffe79d"); grd_ordlist.setCellProperty("body", rowno, "background2", "#ffe79d");
  2464. probordyn = grdobj.valueMatrix(rowno, col_probordyn);
  2465. if (probordyn == "Y"){ //둘다 체크된경우
  2466. grd_ordlist.setCellProprty("body", rowno, "background", "#7BE6B7"); grd_ordlist.setCellProperty("body", rowno, "background2", "#7BE6B7");
  2467. }
  2468. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_spcljudgyn, true, true);
  2469. }
  2470. // 야간가산(산정의미 두번째 "1'), 공휴가산(산정의미 두번째자리 "5")
  2471. var col_estmmeancd = grdobj.colRef("estmmeancd");
  2472. var col_pay100 = grdobj.colRef("pay100");
  2473. srchnm = "1";
  2474. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  2475. while( rowno > 0){
  2476. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == "1" ){
  2477. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  2478. }
  2479. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  2480. }
  2481. // 야간가산(산정의미 두번째 "1'), 공휴가산(산정의미 두번째자리 "5")
  2482. srchnm = "5";
  2483. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_estmmeancd, false, false);
  2484. while( rowno > 0){
  2485. if ( grdobj.valueMatrix(rowno,col_estmmeancd).substr(1, 1) == "5" ){
  2486. grdobj.cellStyle("background-color", rowno, col_estmmeancd, rowno, col_pay100) = "#ffff00";
  2487. }
  2488. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_estmmeancd, false, false);
  2489. }
  2490. //DRG 수술구분
  2491. var col_drgopyn = grdobj.colRef("drgopyn");
  2492. srchnm = "Y";
  2493. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_drgopyn, true, true);
  2494. while( rowno > 0){
  2495. grdobj.cellStyle("background-color", rowno, col_pay100, rowno, col_pay100) = "#fec34d";
  2496. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_drgopyn, true, true);
  2497. }
  2498. // 급여구분 본인부담, 일반 색깔구분
  2499. var col_calcpayflag = grdobj.colRef("calcpayflag");
  2500. srchnm = "1";
  2501. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_calcpayflag, true, true);
  2502. while( rowno > 0){
  2503. grdobj.cellStyle("background-color", rowno, col_calcpayflag, rowno, col_calcpayflag) = "#00ff00";
  2504. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_calcpayflag, true, true);
  2505. }
  2506. srchnm = "2";
  2507. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_calcpayflag, true, true);
  2508. while( rowno > 0){
  2509. var pynpy = grdobj.valueMatrix(rowno,grdobj.colRef("pynpy"));
  2510. if (pynpy != 0) {
  2511. grdobj.cellStyle("background-color", rowno, col_calcpayflag, rowno, col_calcpayflag) = "#ccccff";
  2512. } else {
  2513. grdobj.cellStyle("background-color", rowno, col_calcpayflag, rowno, col_calcpayflag) = "#ff99cc";
  2514. }
  2515. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_calcpayflag, true, true);
  2516. }
  2517. // 외래 필수심사 품목 표기
  2518. var col_bfjudgyn = grdobj.colRef("bfjudgyn");
  2519. srchnm = "Y";
  2520. rowno = grdobj.findRow(srchnm,grdobj.fixedrows ,col_bfjudgyn, true, true);
  2521. while( rowno > 0){
  2522. grdobj.cellStyle("background-color", rowno, col_hngnm, rowno, col_hngnm) = "#f7a08b";
  2523. rowno = grdobj.findRow(srchnm,rowno + 1 ,col_bfjudgyn, true, true);
  2524. }
  2525. var spclcnt = grd_clcjlist.rows;
  2526. var col_edicd = grdobj.colRef("edicd");
  2527. var spclcd = "";
  2528. var spclspec = "";
  2529. var spcledicd = "";
  2530. var spclunitflag = "";
  2531. for (var i = 0; i < spclcnt; i++) {
  2532. spclcd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclcd"));
  2533. spclspec = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("spclspec"));
  2534. spcledicd = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("edicd"));
  2535. spclunitflag = grd_clcjlist.valueMatrix(i, grd_clcjlist.colRef("unitflag"));
  2536. if (spclunitflag == 'J') { // 줄단위 특정내역인 경우만 적용한다. (2015.03.30 LEJ)
  2537. rowno = grdobj.findRow(spcledicd,grdobj.fixedrows ,col_edicd, true, true);
  2538. while( rowno > 0){
  2539. if(spclcd == "JT001"){
  2540. grdobj.valueMatrix(rowno,grdobj.colRef("cnfmcd")) = spclspec;
  2541. }else{
  2542. grdobj.valueMatrix(rowno,grdobj.colRef("text")) = "*";
  2543. }
  2544. rowno = grdobj.findRow(spcledicd,rowno + 1 ,col_edicd, true, true);
  2545. }
  2546. }
  2547. }
  2548. }
  2549. //특정내역이 있는 처방에 'T'필드에 *표를 해준다.
  2550. function fSetOrdSpclTxt(){
  2551. var cSrcNode = instance1.selectSingleNode("ds_main_list2_iscllist");
  2552. if (cSrcNode == null) { // 특정내역이 없는 경우임
  2553. return;
  2554. }
  2555. var rowcnt = ds_main_list2_iscllist.rowcount;
  2556. rowcnt = eval(rowcnt) + 1;
  2557. // grd_clcjlist.findRow 로 변경(최적화문제) - 20081017 박창원
  2558. for (var i = 1; i < rowcnt ; i++) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  2559. var edicd = ds_main_list2_iscllist.getColumn(i, "edicd");
  2560. var spcl = grd_clcjlist.rows;
  2561. ds_main_list2.setColumn( i , "text", "");
  2562. if(spcl > 0){
  2563. if (edicd != "") {
  2564. var row = grd_clcjlist.findRow(edicd, 0, grd_clcjlist.colRef("edicd"), false, true);
  2565. if ( row > 0 ) {
  2566. var spclcd = ds_main_list4_clcjlist.getColumn(row, "spclcd"));
  2567. var spclspec = ds_main_list4_clcjlist.getColumn(row, "spclspec"));
  2568. var spcledicd = ds_main_list4_clcjlist.getColumn(row, "spcledicd"));
  2569. if(edicd == spcledicd){
  2570. if(spclcd == "JT001"){
  2571. ds_main_list2.setColumn( i , "cnfmcd", spclspec);
  2572. }else{
  2573. ds_main_list2.setColumn( i , "text", "*");
  2574. }
  2575. }
  2576. }
  2577. }
  2578. }
  2579. }
  2580. //grd_ordlist.refresh();
  2581. }
  2582. // 처방 치식 입력
  2583. function fOrderToothInput() {
  2584. var row = grd_ordlist.mouseRow;
  2585. ds_hidden_sppiz00600_cond.setColumn( 0, "pid", ds_main_item1_clbs.getColumn(0, "pid"));
  2586. ds_hidden_sppiz00600_cond.setColumn( 0, "toot", ds_main_list2_clod.getColumn(row, "toot")));
  2587. ds_hidden_sppiz00600_rslt.clearData(); // SPPIZ00600_상병및처방별치식 에서 선택된 결과가 copyNode되는 경로임
  2588. frmf_modal("SPPIZ00600", "SPPIZ00600", "ds_hidden_sppiz00600_cond""-"ds_hidden_cond"", "", "", "10", "10", "", "", "", "", "", "M"); // SPPIZ00600_상병및처방별치식.xrw
  2589. var tootSelect = instance1.selectSingleNode("ds_hidden_sppiz00600_rslt");
  2590. if (tootSelect != null) { // 취소를 누른 경우를 제외시킴
  2591. var toot = ds_hidden_sppiz00600_rslt.getColumn(0, "toot");
  2592. ds_main_list3.setColumn( row , "toothYN", ds_hidden_sppiz00600_rslt.getColumn(0, "toothYN"));
  2593. ds_main_list3.setColumn( row , "toot", toot);
  2594. //model.refresh();
  2595. if (ds_hidden_sppiz00600_cond.getColumn(0, "toot") != toot) { // 치식번호가 변경된 경우
  2596. var diagstatus = grd_diaglist.rowstatus(row);
  2597. if (diagstatus == 0 || diagstatus == 2) { // 0 : new, 2 : update
  2598. grd_diaglist.rowstatus(row) = 2; // 2 : update
  2599. }
  2600. }
  2601. }
  2602. }
  2603. ///////////////////////////////////////////////////////////////////////////
  2604. //처방 관련 코딩 끝 //
  2605. ///////////////////////////////////////////////////////////////////////////
  2606. function fSaveAll(){
  2607. ds_send_item1.setColumn( 0, "iteminfo",getNodeListCSV(instance1.selectNodes("ds_main_item1_iteminfo")));
  2608. //상병은 전체 삭제 날리고 다시 insert시킨다.
  2609. //빈데이터를 삭제한다.
  2610. var rowcnt = grd_diaglist.rows;
  2611. for (var i = rowcnt; i > 0; i--) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  2612. var diagcd = ds_main_list3_diaglist.getColumn(i, "diagcd");
  2613. if(diagcd == ""){
  2614. grd_diaglist.deleteRow(i, false);
  2615. }else{
  2616. grd_diaglist.rowstatus(i) = 3;
  2617. }
  2618. }
  2619. var updtdiag = getGridUpdateData(grd_diaglist);
  2620. if(updtdiag) {
  2621. ds_send.setColumn( 0, "diaglist",grd_diaglist.getUpdateData());
  2622. }
  2623. if (btn_save.disabled == false) {
  2624. //빈데이터를 삭제한다.
  2625. for (var i = 1; i < grd_clcjlist.rows; i++) { // Grid 필터링 이후 Grid 상에 표시된 특정내역 개수만큼 돌면서
  2626. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  2627. if(spclcd == ""){
  2628. var rowstatus = grd_clcjlist.rowstatus(i);
  2629. if (rowstatus == 4) { // 4 : delete
  2630. return;
  2631. }
  2632. else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  2633. grd_clcjlist.deleteRow(i, false); // 해당 라인을 Grid에서 삭제한다.
  2634. } else { // 0 : new, 2 : update
  2635. grd_clcjlist.rowstatus(i) = 4; // 4 : delete 상태로 stat를 변경한다.
  2636. }
  2637. }
  2638. }
  2639. var updtclcj = getGridUpdateData(grd_clcjlist);
  2640. if(updtclcj) {
  2641. ds_send.setColumn( 0, "clcjlist",grd_clcjlist.getUpdateData());
  2642. //if ( submit("TXPIJ00303") ) {
  2643. //삭제였던 특정내역은 그리드에서 지워 버린다.
  2644. for (var d = grd_clcjlist.rows; d > 0 ; d--) {
  2645. var delstatus = grd_clcjlist.rowstatus(d);
  2646. if(delstatus == 4){
  2647. grd_clcjlist.deleteRow(d, false); // 해당 라인을 Grid에서 삭제한다.
  2648. }
  2649. }
  2650. grd_clcjlist.clearStatus();
  2651. // }
  2652. }
  2653. //저장후 빈행을 추가해 준다.
  2654. fSpclGridInsertRow() ;
  2655. }
  2656. //특정내역 처리
  2657. var judgrmk = ds_main_item1_iteminfo.getColumn(0, "judgrmk");
  2658. var edirmk = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  2659. var tstrmk = ds_main_item1_iteminfo.getColumn(0, "tstrmk");
  2660. var dumprmk = ds_main_item1_iteminfo.getColumn(0, "dumprmk");
  2661. // var tmpedirmk = strTrim(edirmk);
  2662. ds_main_list5.clearData();
  2663. if(judgrmk){
  2664. fSetJudgEDIMemo(judgrmk, "Y");
  2665. }
  2666. if(edirmk){
  2667. fSetJudgEDIMemo(edirmk, "N");
  2668. }
  2669. if(tstrmk){
  2670. fSetJudgEDIMemo(tstrmk, "T");
  2671. }
  2672. if(dumprmk){
  2673. fSetJudgEDIMemo(dumprmk, "D");
  2674. }
  2675. ds_send.setColumn( 0, "spclspec",getNodeListCSV(instance1.selectNodes("ds_main_list5_judgrmk")));
  2676. // submit("TXPIJ00309",false);
  2677. var oParam = {};
  2678. oParam.id = "TXPIJ00309";
  2679. oParam.service = "bfjudgapp.InHospJudg";
  2680. oParam.method = "reqExeSaveAll";
  2681. oParam.inds = "req=ds_ diagreq=ds_ clcjreq=ds_ spclreq=ds_";
  2682. oParam.outds = "ds_=vcode ds_=rareessc ds_=chkesscedi ds_=getdschcalccheck ds_=drginfo";
  2683. oParam.async = false;
  2684. oParam.callback = "cf_TXPIJ00309";
  2685. tranf_submit(oParam);
  2686. /*
  2687. function cf_TXPIJ00309(sSvcId, nErrorCode, sErrorMsg) {
  2688. if(nErrorCode < 0) return;
  2689. }
  2690. function cf_TXPIJ00309(sSvcId, nErrorCode, sErrorMsg) {
  2691. arErrorCode.push(sSvcId, nErrorCode);
  2692. }
  2693. arErrorCode.pop("TXPIJ00309") > -1
  2694. arErrorCode.pop("TXPIJ00309") < 0
  2695. */
  2696. }
  2697. //상병리스트를 저장한다.
  2698. function fSaveDiagList(){
  2699. //상병은 전체 삭제 날리고 다시 insert시킨다.
  2700. //빈데이터를 삭제한다.
  2701. var rowcnt = grd_diaglist.rows;
  2702. for (var i = rowcnt; i > 0; i--) { // Grid 필터링 이후 Grid 상에 표시된 처방 개수만큼 돌면서
  2703. var diagcd = ds_main_list3_diaglist.getColumn(i, "diagcd");
  2704. if(diagcd == ""){
  2705. grd_diaglist.deleteRow(i, false);
  2706. }else{
  2707. grd_diaglist.rowstatus(i) = 3;
  2708. }
  2709. }
  2710. var updtdiag = getGridUpdateData(grd_diaglist);
  2711. if(updtdiag) {
  2712. ds_send.setColumn( 0, "diaglist",grd_diaglist.getUpdateData());
  2713. // if ( submit("TXPIJ00302",false) ) {
  2714. var oParam = {};
  2715. oParam.id = "TXPIJ00302";
  2716. oParam.service = "bfjudgapp.InHospJudg";
  2717. oParam.method = "reqExeSaveDiag";
  2718. oParam.inds = "req=ds_ iteminfo=ds_";
  2719. oParam.outds = "";
  2720. oParam.async = false;
  2721. oParam.callback = "cf_TXPIJ00302";
  2722. tranf_submit(oParam);
  2723. /*
  2724. function cf_TXPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  2725. if(nErrorCode < 0) return;
  2726. }
  2727. function cf_TXPIJ00302(sSvcId, nErrorCode, sErrorMsg) {
  2728. arErrorCode.push(sSvcId, nErrorCode);
  2729. }
  2730. arErrorCode.pop("TXPIJ00302") > -1
  2731. arErrorCode.pop("TXPIJ00302") < 0
  2732. */
  2733. }
  2734. }
  2735. model.refreshpart("ds_main_list3_diaglist");
  2736. }
  2737. //특정내역을 저장 한다.
  2738. function fSaveClcjList(){
  2739. if (btn_save.disabled == false) {
  2740. //빈데이터를 삭제한다.
  2741. for (var i = 1; i < grd_clcjlist.rows; i++) { // Grid 필터링 이후 Grid 상에 표시된 특정내역 개수만큼 돌면서
  2742. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  2743. if(spclcd == ""){
  2744. var rowstatus = grd_clcjlist.rowstatus(i);
  2745. if (rowstatus == 4) { // 4 : delete
  2746. return;
  2747. }
  2748. else if (rowstatus == 1 || rowstatus == 3) { // 1 : insert, 3 : insert & new
  2749. grd_clcjlist.deleteRow(i, false); // 해당 라인을 Grid에서 삭제한다.
  2750. } else { // 0 : new, 2 : update
  2751. grd_clcjlist.rowstatus(i) = 4; // 4 : delete 상태로 stat를 변경한다.
  2752. }
  2753. }
  2754. }
  2755. var updtclcj = getGridUpdateData(grd_clcjlist);
  2756. if(updtclcj) {
  2757. ds_send.setColumn( 0, "clcjlist",grd_clcjlist.getUpdateData());
  2758. // if ( submit("TXPIJ00303",false) ) {
  2759. var oParam = {};
  2760. oParam.id = "TXPIJ00303";
  2761. oParam.service = "bfjudgapp.InHospJudg";
  2762. oParam.method = "reqExeSaveClcj";
  2763. oParam.inds = "req=ds_";
  2764. oParam.outds = "";
  2765. oParam.async = false;
  2766. oParam.callback = "cf_TXPIJ00303";
  2767. tranf_submit(oParam);
  2768. /*
  2769. function cf_TXPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  2770. if(nErrorCode < 0) return;
  2771. }
  2772. function cf_TXPIJ00303(sSvcId, nErrorCode, sErrorMsg) {
  2773. arErrorCode.push(sSvcId, nErrorCode);
  2774. }
  2775. arErrorCode.pop("TXPIJ00303") > -1
  2776. arErrorCode.pop("TXPIJ00303") < 0
  2777. */
  2778. //삭제였던 특정내역은 그리드에서 지워 버린다.
  2779. for (var d = grd_clcjlist.rows; d > 0 ; d--) {
  2780. var delstatus = grd_clcjlist.rowstatus(d);
  2781. if(delstatus == 4){
  2782. grd_clcjlist.deleteRow(d, false); // 해당 라인을 Grid에서 삭제한다.
  2783. }
  2784. }
  2785. grd_clcjlist.clearStatus();
  2786. }
  2787. }
  2788. //저장후 빈행을 추가해 준다.
  2789. fSpclGridInsertRow() ;
  2790. }
  2791. }
  2792. //퇴원마감 취소 처리
  2793. function fJudgEndCancel(){
  2794. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","A");
  2795. // if (submit("TXPIJ00301",false)) {
  2796. var oParam = {};
  2797. oParam.id = "TXPIJ00301";
  2798. oParam.service = "bfjudgapp.InHospJudg";
  2799. oParam.method = "reqExeSaveInpt";
  2800. oParam.inds = "req=ds_";
  2801. oParam.outds = "";
  2802. oParam.async = false;
  2803. oParam.callback = "cf_TXPIJ00301";
  2804. tranf_submit(oParam);
  2805. /*
  2806. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  2807. if(nErrorCode < 0) return;
  2808. }
  2809. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  2810. arErrorCode.push(sSvcId, nErrorCode);
  2811. }
  2812. arErrorCode.pop("TXPIJ00301") > -1
  2813. arErrorCode.pop("TXPIJ00301") < 0
  2814. */
  2815. // submit("TXPIJ03203",false);
  2816. var oParam = {};
  2817. oParam.id = "TXPIJ03203";
  2818. oParam.service = "bfjudgapp.DRGJudgList";
  2819. oParam.method = "reqExeDelDrgCreateMasterInfo";
  2820. oParam.inds = "req=ds_";
  2821. oParam.outds = "";
  2822. oParam.async = false;
  2823. oParam.callback = "cf_TXPIJ03203";
  2824. tranf_submit(oParam);
  2825. /*
  2826. function cf_TXPIJ03203(sSvcId, nErrorCode, sErrorMsg) {
  2827. if(nErrorCode < 0) return;
  2828. }
  2829. function cf_TXPIJ03203(sSvcId, nErrorCode, sErrorMsg) {
  2830. arErrorCode.push(sSvcId, nErrorCode);
  2831. }
  2832. arErrorCode.pop("TXPIJ03203") > -1
  2833. arErrorCode.pop("TXPIJ03203") < 0
  2834. */
  2835. fSetItemInfoSetting();
  2836. return 1;
  2837. } else {
  2838. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","B");
  2839. fSetItemInfoSetting();
  2840. return 0;
  2841. }
  2842. }
  2843. //Link 연결 팝업
  2844. function fLinkPopMenu(trgtWindow, cond, send){
  2845. var trgtManWindow = getChildWindow(trgtWindow);
  2846. if (trgtManWindow == null) {
  2847. frmf_open("trgtWindow ", "trgtWindow", "cond"-"send", "", "", "10", "10", "", "", "", "", "", "M");
  2848. } else {
  2849. activateChild(trgtWindow);
  2850. //model.refresh();
  2851. }
  2852. }
  2853. // 치식 팝업용 데이타 생성
  2854. function fSetToothPop(row, flag) {
  2855. ds_hidden_sppiz00600_cond_list.clearData();
  2856. dsf_makeValue( ds_hidden_sppiz00600_cond, "list", "string", "" );
  2857. // 상병
  2858. var cntdiag = ds_main_list3_diaglist.rowcount;
  2859. // 처방
  2860. var cntiscl = ds_main_list2_iscllist.rowcount;
  2861. var cd = "";
  2862. var cdnm = "";
  2863. var orddd = "";
  2864. var toot = "";
  2865. var rowcnt = 1;
  2866. for (i=1; i<=cntdiag; i++) {
  2867. cd = ds_main_list3_diaglist.getColumn(i, "diagcd");
  2868. cdnm = ds_main_list3_diaglist.getColumn(i, "diagnm");
  2869. orddd = ds_main_list3_diaglist.getColumn(i, "ordfromdd");
  2870. toot = ds_main_list3_diaglist.getColumn(i, "toot");
  2871. estmcls = ds_main_list2_iscllist.getColumn(i, "estmcls"); //20100318 정승우 의정부 오류로 추가
  2872. if (cd != "") {
  2873. if ((toot != "-" && toot != "") || estmcls == "U") {
  2874. var milktoothstr = "ABCDE000";
  2875. var subTootStr = "";
  2876. for (var inx = 0; inx < 32; inx++) {
  2877. var tootnum = toot.substr(inx,1);
  2878. if (tootnum == "*") { // 선택된 영구치의 경우 1~8 사이 숫자로 표시한다.
  2879. if (inx < 8) {
  2880. subTootStr += (8 - inx);
  2881. }
  2882. else if (inx > 7 && inx < 16) {
  2883. subTootStr += (inx - 7);
  2884. }
  2885. else if (inx > 15 && inx < 24) {
  2886. subTootStr += (24 - inx);
  2887. } else {
  2888. subTootStr += (inx - 23);
  2889. }
  2890. } else if (tootnum == "#") { // 선택된 유치의 경우 A~E 사이 알파벳으로 표시한다.
  2891. if (inx < 8) {
  2892. subTootStr += milktoothstr.charAt(7 - inx);
  2893. }
  2894. else if (inx > 7 && inx < 16) {
  2895. subTootStr += milktoothstr.charAt(inx - 8);
  2896. }
  2897. else if (inx > 15 && inx < 24) {
  2898. subTootStr += milktoothstr.charAt(23 - inx);
  2899. } else {
  2900. subTootStr += milktoothstr.charAt(inx - 24);
  2901. }
  2902. } else { // if (tootnum == "0") 선택되지 않은 경우 공백으로 처리한다.
  2903. subTootStr += " ";
  2904. }
  2905. }
  2906. //치식 표기를 설정한다.
  2907. if (row == i && flag == "1" ) {
  2908. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  2909. } else {
  2910. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "false");
  2911. }
  2912. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "상병");
  2913. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  2914. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  2915. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", subTootStr.substr(0, 8));
  2916. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", subTootStr.substr(8, 8));
  2917. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", subTootStr.substr(16, 8));
  2918. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", subTootStr.substr(24, 8));
  2919. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  2920. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", toot);
  2921. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  2922. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "pid", "");
  2923. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "indd", "");
  2924. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cretno", "");
  2925. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "instcd", "");
  2926. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "execdd", "");
  2927. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcseqno", "");
  2928. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcscorseqno", "");
  2929. rowcnt = rowcnt+1;
  2930. } else {
  2931. if (row == i && flag == "1" ) {
  2932. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  2933. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "상병");
  2934. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  2935. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  2936. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", "");
  2937. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", "");
  2938. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", "");
  2939. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", "");
  2940. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  2941. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", "");
  2942. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  2943. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "pid", "");
  2944. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "indd", "");
  2945. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cretno", "");
  2946. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "instcd", "");
  2947. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "execdd", "");
  2948. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcseqno", "");
  2949. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "calcscorseqno", "");
  2950. rowcnt = rowcnt+1;
  2951. }
  2952. }
  2953. } // if cd != ""
  2954. } // for end
  2955. for (i=1; i<=cntiscl; i++) {
  2956. cd = ds_main_list2_iscllist.getColumn(i, "snglcalcscorcd");
  2957. cdnm = ds_main_list2_iscllist.getColumn(i, "hngnm");
  2958. orddd = ds_main_list2_iscllist.getColumn(i, "ordfromdd");
  2959. toot = ds_main_list2_iscllist.getColumn(i, "tootfact");
  2960. estmcls = ds_main_list2_iscllist.getColumn(i, "estmcls");
  2961. if ((toot != "-" && toot != "") || estmcls == "U") {
  2962. var milktoothstr = "ABCDE000";
  2963. var subTootStr = "";
  2964. var tmpStr = "";
  2965. for (var inx = 0; inx < 32; inx++) {
  2966. var tootnum = toot.substr(inx,1);
  2967. if (tootnum == "*") { // 선택된 영구치의 경우 1~8 사이 숫자로 표시한다.
  2968. if (inx < 8) {
  2969. subTootStr += (8 - inx);
  2970. }
  2971. else if (inx > 7 && inx < 16) {
  2972. subTootStr += (inx - 7);
  2973. }
  2974. else if (inx > 15 && inx < 24) {
  2975. subTootStr += (24 - inx);
  2976. } else {
  2977. subTootStr += (inx - 23);
  2978. }
  2979. } else if (tootnum == "#") { // 선택된 유치의 경우 A~E 사이 알파벳으로 표시한다.
  2980. if (inx < 8) {
  2981. subTootStr += milktoothstr.charAt(7 - inx);
  2982. }
  2983. else if (inx > 7 && inx < 16) {
  2984. subTootStr += milktoothstr.charAt(inx - 8);
  2985. }
  2986. else if (inx > 15 && inx < 24) {
  2987. subTootStr += milktoothstr.charAt(23 - inx);
  2988. } else {
  2989. subTootStr += milktoothstr.charAt(inx - 24);
  2990. }
  2991. } else { // if (tootnum == "0") 선택되지 않은 경우 공백으로 처리한다.
  2992. subTootStr += " ";
  2993. }
  2994. }
  2995. //치식 표기를 설정한다.
  2996. if (row == i && flag == "2" ) {
  2997. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  2998. } else {
  2999. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "false");
  3000. }
  3001. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "처방");
  3002. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  3003. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  3004. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", subTootStr.substr(0, 8));
  3005. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", subTootStr.substr(8, 8));
  3006. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", subTootStr.substr(16, 8));
  3007. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", subTootStr.substr(24, 8));
  3008. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  3009. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", toot);
  3010. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  3011. rowcnt = rowcnt+1;
  3012. } else {
  3013. if (row == i && flag == "2" ) {
  3014. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "chos", "true");
  3015. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "flag", "처방");
  3016. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cd", cd);
  3017. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "cdnm", cdnm);
  3018. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightupper", "");
  3019. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftupper", "");
  3020. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "rightlower", "");
  3021. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "leftlower", "");
  3022. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "orddd", orddd);
  3023. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "toot", "");
  3024. ds_hidden_sppiz00600_cond_list_toothapplist.setColumn( rowcnt, "row", i);
  3025. rowcnt = rowcnt+1;
  3026. }
  3027. }
  3028. }
  3029. }
  3030. // 치식 팝어에 받은 데이타
  3031. function fGetToothPop() {
  3032. var tootSelectcnt = ds_hidden_sppiz00600_rslt_list.rowcount;
  3033. var flag = "";
  3034. var row = "";
  3035. var toot = "";
  3036. tootSelectcnt = eval(tootSelectcnt) + 1;
  3037. for (var i=1; i<tootSelectcnt; i++) {
  3038. flag = ds_hidden_sppiz00600_rslt_list.getColumn(i, "flag");
  3039. row = ds_hidden_sppiz00600_rslt_list.getColumn(i, "row");
  3040. var rlsttoot = ds_hidden_sppiz00600_rslt_list.getColumn(i, "toot");
  3041. var rlsttoot1 = ds_hidden_sppiz00600_rslt_list.getColumn(i, "toot1");
  3042. if (rlsttoot == "") {
  3043. rlsttoot = "-";
  3044. }
  3045. if (rlsttoot1 == "") {
  3046. rlsttoot1 = "-";
  3047. }
  3048. if (flag == "1") {
  3049. toot = ds_main_list3_diaglist.getColumn(row, "toot"));
  3050. ds_main_list3.setColumn( row , "toot", rlsttoot);
  3051. ds_main_list3.setColumn( row , "toot1", rlsttoot1);
  3052. if (rlsttoot != toot) { // 치식번호가 변경된 경우
  3053. var diagstatus = grd_diaglist.rowstatus(row);
  3054. if (diagstatus == 0 || diagstatus == 2) { // 0 : new, 2 : update
  3055. grd_diaglist.rowstatus(row) = 2; // 2 : update
  3056. }
  3057. }
  3058. }
  3059. }
  3060. }
  3061. // 변경된 퇴원확정여부, 심사상태 flag를 대상자조회화면에 보여준다. (2008.01.28 박지욱 추가)
  3062. function fSetChildStat() {
  3063. //model.refresh();
  3064. // 대상자조회화면에 심사상태를 업데이트 보여주도록 한다. (2008. 01. 28 박지욱 추가, 심사상태와 퇴원확정여부, 최종심사자, 심사일자 변경)
  3065. var trgtManWindow = getChildWindow("SMPIJ00200"); // SMPIJ00600_입원재원심사대상자조회.xrw
  3066. if (trgtManWindow != null) {
  3067. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat"); // 심사상태
  3068. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn"); // 퇴원확정여부
  3069. var selectedRow = trgtManWindow.ds_hidden.getColumn(0, "selectedRow");
  3070. var row = parseInt(selectedRow);
  3071. if (row > 0) {
  3072. trgtManWindow.ds_main_list1.setColumn( row , "dschjudgprcsstat", dschjudgprcsstat);
  3073. trgtManWindow.ds_main_list1.setColumn( row , "dschnotiyn", dschnotiyn);
  3074. trgtManWindow.ds_main_list1.setColumn( row , "lastjudgendid", VAL_usernm);
  3075. trgtManWindow.ds_main_list1.setColumn( row , "lastjudgdt", VAL_today);
  3076. }
  3077. }
  3078. // 끝
  3079. }
  3080. // grid 타이틀 컬럼 정보
  3081. function getOrderInfoOfCol(grdid){
  3082. var refdata = ""; // ref
  3083. var sizedata = ""; // size
  3084. var grdobj = document.controls.item(grdid);
  3085. var totcol = grdobj.cols;
  3086. for(var i = 0; i < totcol; i++){
  3087. var refval = grdobj.colAttribute(i, "ref");
  3088. refdata += refval + "^";
  3089. var sizeval = grdobj.colWidth(i);
  3090. sizedata += sizeval + "^";
  3091. }
  3092. refdata = refdata.substring(0 , refdata.length-1);
  3093. sizedata = sizedata.substring(0, sizedata.length-1);
  3094. var scrnid = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grdid + "'", "scrnid");
  3095. var compscnts = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + grdid + "'", "compscnts");
  3096. if (scrnid == "") {
  3097. ds_send_listval_uuee.setColumn( 0, "flag","I");
  3098. } else {
  3099. ds_send_listval_uuee.setColumn( 0, "flag","U");
  3100. }
  3101. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  3102. ds_send_listval_uuee.setColumn( 0, "compsnm",grdid.toString());
  3103. ds_send_listval_uuee.setColumn( 0, "compscnts",refdata);
  3104. ds_send_listval_uuee.setColumn( 0, "compsrefcnts","-");
  3105. ds_send_listval_uuee.setColumn( 0, "compssizecnts",sizedata);
  3106. // if ( submit("TXPIJ00402") ) {
  3107. var oParam = {};
  3108. oParam.id = "TXPIJ00402";
  3109. oParam.service = "bfjudgapp.InHospJudgDetl";
  3110. oParam.method = "reqExeSaveUuee";
  3111. oParam.inds = "req=ds_";
  3112. oParam.outds = "ds_=uuee";
  3113. oParam.async = false;
  3114. oParam.callback = "cf_TXPIJ00402";
  3115. tranf_submit(oParam);
  3116. /*
  3117. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  3118. if(nErrorCode < 0) return;
  3119. }
  3120. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  3121. arErrorCode.push(sSvcId, nErrorCode);
  3122. }
  3123. arErrorCode.pop("TXPIJ00402") > -1
  3124. arErrorCode.pop("TXPIJ00402") < 0
  3125. */
  3126. sysf_messageBox("사용자 환경 저장이","I002");
  3127. }
  3128. }
  3129. // grid 타이틀 컬럼 정보
  3130. function getOrderInfoOfRdo(rdoid){
  3131. var refdata = ""; // ref
  3132. var sizedata = ""; // size
  3133. var scrnid = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + rdoid + "'", "scrnid");
  3134. var compscnts = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + rdoid + "'", "compscnts");
  3135. var calcamtflag = ds_hidden_list1_isclcond.getColumn(0, "calcamtflag")
  3136. if (scrnid == "") {
  3137. ds_send_listval_uuee.setColumn( 0, "flag","I");
  3138. } else {
  3139. ds_send_listval_uuee.setColumn( 0, "flag","U");
  3140. }
  3141. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  3142. ds_send_listval_uuee.setColumn( 0, "compsnm",rdoid);
  3143. ds_send_listval_uuee.setColumn( 0, "compscnts",(calcamtflag.length == 0 ? "-" : calcamtflag));
  3144. ds_send_listval_uuee.setColumn( 0, "compsrefcnts", "-");
  3145. ds_send_listval_uuee.setColumn( 0, "compssizecnts","-");
  3146. // if ( submit("TXPIJ00402") ) {
  3147. var oParam = {};
  3148. oParam.id = "TXPIJ00402";
  3149. oParam.service = "bfjudgapp.InHospJudgDetl";
  3150. oParam.method = "reqExeSaveUuee";
  3151. oParam.inds = "req=ds_";
  3152. oParam.outds = "ds_=uuee";
  3153. oParam.async = false;
  3154. oParam.callback = "cf_TXPIJ00402";
  3155. tranf_submit(oParam);
  3156. /*
  3157. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  3158. if(nErrorCode < 0) return;
  3159. }
  3160. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  3161. arErrorCode.push(sSvcId, nErrorCode);
  3162. }
  3163. arErrorCode.pop("TXPIJ00402") > -1
  3164. arErrorCode.pop("TXPIJ00402") < 0
  3165. */
  3166. //sysf_messageBox("사용자 환경 저장이","I002");
  3167. }
  3168. }
  3169. function getOrderInfoOfChk(chkid){
  3170. var scrnid = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chkid + "'", "scrnid");
  3171. var compscnts = ds_hidden_listval_uuee.lookupExpr("compsnm == '" + chkid + "'", "compscnts");
  3172. var chkval = model.getValue("ds_hidden_list1_isclcond/" + chkid.replace("chk_",""));
  3173. if (scrnid == "") {
  3174. ds_send_listval_uuee.setColumn( 0, "flag","I");
  3175. } else {
  3176. ds_send_listval_uuee.setColumn( 0, "flag","U");
  3177. }
  3178. ds_send_listval_uuee.setColumn( 0, "scrnid","SMPIJ00300");
  3179. ds_send_listval_uuee.setColumn( 0, "compsnm",chkid);
  3180. ds_send_listval_uuee.setColumn( 0, "compscnts",(chkval.length == 0 ? "N" : chkval));
  3181. ds_send_listval_uuee.setColumn( 0, "compsrefcnts", "-");
  3182. ds_send_listval_uuee.setColumn( 0, "compssizecnts","-");
  3183. // if ( submit("TXPIJ00402") ) {
  3184. var oParam = {};
  3185. oParam.id = "TXPIJ00402";
  3186. oParam.service = "bfjudgapp.InHospJudgDetl";
  3187. oParam.method = "reqExeSaveUuee";
  3188. oParam.inds = "req=ds_";
  3189. oParam.outds = "ds_=uuee";
  3190. oParam.async = false;
  3191. oParam.callback = "cf_TXPIJ00402";
  3192. tranf_submit(oParam);
  3193. /*
  3194. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  3195. if(nErrorCode < 0) return;
  3196. }
  3197. function cf_TXPIJ00402(sSvcId, nErrorCode, sErrorMsg) {
  3198. arErrorCode.push(sSvcId, nErrorCode);
  3199. }
  3200. arErrorCode.pop("TXPIJ00402") > -1
  3201. arErrorCode.pop("TXPIJ00402") < 0
  3202. */
  3203. //sysf_messageBox("사용자 환경 저장이","I002");
  3204. }
  3205. }
  3206. // 중간청구등록 화면에서 조회된 환자가 중간 청구 등록이 된 경우.
  3207. function fSetMidregist(midcflag) {
  3208. btn_midregist.enable = true;
  3209. if(midcflag == "Y"){
  3210. btn_midregist.attribute("class") = "btn2_letter6";
  3211. btn_midregist.attribute("color") = "#ff0066";
  3212. btn_midregistyn.enable = false;
  3213. btn_midcomplete.enable = true;
  3214. btn_midcancel.enable = true;
  3215. } else {
  3216. btn_midregist.attribute("class") = "btn2_letter6";
  3217. btn_midregistyn.attribute("class") = "btn2_letter6";
  3218. btn_midregistyn.enable = true;
  3219. btn_midcomplete.enable = false;
  3220. btn_midcancel.enable = false;
  3221. }
  3222. }
  3223. // SPPIZ00700_심사Comment조회.xrw 호출(심사자메모,EDI메모)
  3224. function fGetJudgEdiComment(memoflag, memocls) {
  3225. ds_hidden_sppiz00700_rslt.clearData(); ds_hidden_sppiz00700_rslt.addRow();
  3226. ds_hidden_sppiz00700_cond.clearData(); ds_hidden_sppiz00700_cond.addRow();
  3227. ds_hidden_sppiz00700_cond.setColumn( 0, "memoflag", memoflag);
  3228. ds_hidden_sppiz00700_cond.setColumn( 0, "memocls", memocls);
  3229. frmf_modal("SPPIZ00700", "SPPIZ00700", "ds_hidden_sppiz00700""-"ds_send_sppiz00700"", "", "", "10", "10", "", "", "", "", "", "M");
  3230. }
  3231. //평가메모 관련 팝업창세팅
  3232. function fSetTstMemoRefresh(){
  3233. var memo = ds_hidden_sppiz00700_rslt.getColumn(0, "memo");
  3234. var tmp = ds_main_item1_iteminfo.getColumn(0, "edirmk");
  3235. if(tmp){
  3236. tmp = tmp + " ";
  3237. }
  3238. ds_main_item1_iteminfo.setColumn( 0, "tstrmk",tmp + memo);
  3239. //
  3240. //model.refresh();
  3241. 최적화 문제로 대체 20080731 박창원
  3242. //model.refresh();
  3243. }
  3244. //중간청구등록
  3245. function fmidregist() {
  3246. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3247. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  3248. if(chk){
  3249. if(ipt_pid.text.length >1){
  3250. if(indd.length>1){
  3251. //var trgtManWindow = getChildWindow("SMPIJ01100");
  3252. var trgtManWindow = getChildWindow("SMPIJ02300");
  3253. var patunitsrch1 = ds_main_item1_iteminfo.getColumn(0, "pid").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  3254. // 2008.01.23 박지욱 수정 (중간청구등록화면에 넘겨주는 데이터 추가 - pid, indd)
  3255. ds_hidden_midclam.clearData();
  3256. dsf_makeValue( ds_hidden_midclam, "pid", "string", patunitsrch1);
  3257. dsf_makeValue( ds_hidden_midclam, "indd", "string", ds_main_item1_iteminfo.getColumn(0, "indd"));
  3258. if (trgtManWindow == null) {
  3259. frmf_open("SMPIJ02300", "SMPIJ02300", "ds_hidden_midclam""-"ds_hidden_midclam"", "", "", "10", "10", "", "", "", "", "", "M");
  3260. } else {
  3261. activateChild("SMPIJ02300");
  3262. trgtManWindow.javascript.fGetMidClamList();
  3263. }
  3264. //model.refresh();
  3265. }
  3266. }
  3267. }
  3268. }
  3269. //분할제외등록
  3270. function fmidregistyn() {
  3271. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3272. if(chk){
  3273. var midregistyn = ds_main_item1_iteminfo.getColumn(0, "midregistyn");
  3274. if (midregistyn == "Y") {
  3275. // if (submit("TXPIJ00307", false)) {
  3276. var oParam = {};
  3277. oParam.id = "TXPIJ00307";
  3278. oParam.service = "bfjudgapp.InHospJudg";
  3279. oParam.method = "reqSetDivClamExpt";
  3280. oParam.inds = "req=ds_";
  3281. oParam.outds = "ds_=result";
  3282. oParam.async = false;
  3283. oParam.callback = "cf_TXPIJ00307";
  3284. tranf_submit(oParam);
  3285. /*
  3286. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  3287. if(nErrorCode < 0) return;
  3288. }
  3289. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  3290. arErrorCode.push(sSvcId, nErrorCode);
  3291. }
  3292. arErrorCode.pop("TXPIJ00307") > -1
  3293. arErrorCode.pop("TXPIJ00307") < 0
  3294. */
  3295. btn_midregist.attribute("class") = "btn2_letter6";
  3296. btn_midregist.enable = true;
  3297. btn_midregistyn.attribute("class") = "btn2_letter6";
  3298. //btn_midregistyn.attribute("color") = "#ff0066";
  3299. ds_main_item1_iteminfo.setColumn( 0, "midregistyn", "N");
  3300. sysf_messageBox("분할제외 등록 취소가","I002");
  3301. }
  3302. } else {
  3303. // if (submit("TXPIJ00307"), false) {
  3304. var oParam = {};
  3305. oParam.id = "TXPIJ00307";
  3306. oParam.service = "bfjudgapp.InHospJudg";
  3307. oParam.method = "reqSetDivClamExpt";
  3308. oParam.inds = "req=ds_";
  3309. oParam.outds = "ds_=result";
  3310. oParam.async = false;
  3311. oParam.callback = "cf_TXPIJ00307";
  3312. tranf_submit(oParam);
  3313. /*
  3314. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  3315. if(nErrorCode < 0) return;
  3316. }
  3317. function cf_TXPIJ00307(sSvcId, nErrorCode, sErrorMsg) {
  3318. arErrorCode.push(sSvcId, nErrorCode);
  3319. }
  3320. arErrorCode.pop("TXPIJ00307") > -1
  3321. arErrorCode.pop("TXPIJ00307") < 0
  3322. */
  3323. btn_midregist.attribute("class") = "btn2_letter6";
  3324. btn_midregist.enable = false;
  3325. btn_midregistyn.attribute("class") = "btn2_letter6";
  3326. btn_midregistyn.attribute("color") = "#ff0066";
  3327. ds_main_item1_iteminfo.setColumn( 0, "midregistyn", "Y");
  3328. sysf_messageBox("분할제외 등록이","I002");
  3329. }
  3330. }
  3331. }
  3332. }
  3333. //애기_엄마
  3334. function fbabymother() {
  3335. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3336. if(chk){
  3337. var readonly = ds_send.getColumn(0, "readonly");
  3338. // 6시간 미만 환자일 경우 Block - 20081005 박창원
  3339. var sixtimyn = ds_main_item1_iteminfo.getColumn(0, "sixtimyn");
  3340. // open일관련 적용 - 20090302 - 하드코딩 제거,확산병원 데이터 미등록 때문에 예외처리함
  3341. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  3342. // 이력 그리드내에서 보조유형이 09(자연분만) 있는 경우 이미 면제기간이 적용된 경우
  3343. // 분만신생아관리 화면에서 면제기간적용 버튼 비활성화 (2008.01.29 박지욱 추가)
  3344. var fromdd = "";
  3345. var todd = "";
  3346. var seqno = ds_main_item1_iteminfo.getColumn(0, "seqno");
  3347. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  3348. var dschnotidt = ds_main_item1_iteminfo.getColumn(0, "dschnotidt");
  3349. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  3350. var cfe = ds_main_item1_iteminfo.getColumn(0, "cfe");
  3351. for (var i = 1; i < grd_insuhistory.rows; i++) {
  3352. var suppkind = ds_main_list1_insulist.getColumn(i, "suppkind");
  3353. if (suppkind == "09" || suppkind == "42") {
  3354. fromdd = ds_main_list1_insulist.getColumn(i, "fromdd");
  3355. todd = ds_main_list1_insulist.getColumn(i, "dschnotidt");
  3356. seqno = ds_main_list1_insulist.getColumn(i, "seqno");
  3357. }
  3358. }
  3359. ds_hidden_sppiz01200_cond.setColumn( 0, "pid",ds_main_item1_iteminfo.getColumn(0, "pid"));
  3360. ds_hidden_sppiz01200_cond.setColumn( 0, "indd",indd);
  3361. ds_hidden_sppiz01200_cond.setColumn( 0, "cretno",ds_main_item1_iteminfo.getColumn(0, "cretno"));
  3362. ds_hidden_sppiz01200_cond.setColumn( 0, "mskind",ds_main_item1_iteminfo.getColumn(0, "mskind"));
  3363. ds_hidden_sppiz01200_cond.setColumn( 0, "brateflag",ds_main_item1_iteminfo.getColumn(0, "brateflag"));
  3364. ds_hidden_sppiz01200_cond.setColumn( 0, "brthdd",ds_main_item1_iteminfo.getColumn(0, "brthdd"));
  3365. ds_hidden_sppiz01200_cond.setColumn( 0, "dschnotidt",dschnotidt);
  3366. ds_hidden_sppiz01200_cond.setColumn( 0, "dschnotiyn",dschnotiyn);
  3367. ds_hidden_sppiz01200_cond.setColumn( 0, "calcbasedd", '-');
  3368. ds_hidden_sppiz01200_cond.setColumn( 0, "seqno", seqno);
  3369. ds_hidden_sppiz01200_cond.setColumn( 0, "cfe", cfe);
  3370. // 심사마감이나 퇴원한 환자는 면제일자적용이나 해제를 시킬 수 없다. - 20080924 박창원
  3371. // 기존에는 심사마감이나 퇴원여부를 인스턴스에서 가져오던 것을 실시간 체크로 변경 - 20080927 박창원
  3372. // if (!submit("TRPIJ00315", false)) {
  3373. var oParam = {};
  3374. oParam.id = "TRPIJ00315";
  3375. oParam.service = "bfjudgapp.InHospJudg";
  3376. oParam.method = "reqNotiDschStat";
  3377. oParam.inds = "req=ds_";
  3378. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3379. oParam.async = false;
  3380. oParam.callback = "cf_TRPIJ00315";
  3381. tranf_submit(oParam);
  3382. /*
  3383. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3384. if(nErrorCode < 0) return;
  3385. }
  3386. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3387. arErrorCode.push(sSvcId, nErrorCode);
  3388. }
  3389. arErrorCode.pop("TRPIJ00315") > -1
  3390. arErrorCode.pop("TRPIJ00315") < 0
  3391. */
  3392. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3393. return;
  3394. }
  3395. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  3396. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  3397. // 중간청구 여부를 판단해서 블로킹 - 20081017 박창원
  3398. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  3399. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  3400. if (lastmdlclamdd > fromdd && lastmdlclamdd > opendd && lastmdlclamdd != "" ) {
  3401. ds_hidden_sppiz01200_cond.setColumn( 0, "saveyn","Y");
  3402. }
  3403. if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E" || indschacptstat == "D" || readonly == "Y") {
  3404. ds_hidden_sppiz01200_cond.setColumn( 0, "saveyn","Y");
  3405. } else {
  3406. ds_hidden_sppiz01200_cond.setColumn( 0, "saveyn","N");
  3407. }
  3408. // fromdd 와 todd 에 값이 있으면 면제기간 적용된 환자임을 알려주는 flag 세팅
  3409. if (fromdd != "" && todd != "") {
  3410. ds_hidden_sppiz01200_cond.setColumn( 0, "disyn","Y");
  3411. } else {
  3412. ds_hidden_sppiz01200_cond.setColumn( 0, "disyn","N");
  3413. }
  3414. if (sixtimyn == "Y") {
  3415. sysf_messageBox("6시간 미만 상태 입니다. 자연분만 요율을 설정(저장) ","E001");
  3416. }
  3417. ds_hidden_sppiz01200_cond.setColumn( 0, "fromdd",fromdd);
  3418. ds_hidden_sppiz01200_cond.setColumn( 0, "todd",todd);
  3419. var trgtManWindow = getChildWindow("SPPIZ01200");
  3420. if (trgtManWindow == null) {
  3421. frmf_open("SPPIZ01200", "SPPIZ01200", "ds_hidden_sppiz01200_cond""-"ds_hidden_sppiz01200_cond"", "", "", "10", "10", "", "", "", "", "", "M");
  3422. } else {
  3423. activateChild("SPPIZ01200");
  3424. //model.refresh();
  3425. }
  3426. }
  3427. }
  3428. //수술(유)
  3429. function foperdiag() {
  3430. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3431. if(chk){
  3432. var trgtManWindow = getChildWindow("SPPIZ01300");
  3433. var indd = ds_main_item1_iteminfo.getColumn(0, "indd1");
  3434. ds_hidden_sppiz01300_cond.setColumn( 0, "pid",ds_main_item1_iteminfo.getColumn(0, "pid"));
  3435. ds_hidden_sppiz01300_cond.setColumn( 0, "indd",indd);
  3436. ds_hidden_sppiz01300_cond.setColumn( 0, "cretno",ds_main_item1_iteminfo.getColumn(0, "cretno"));
  3437. if (trgtManWindow == null) {
  3438. frmf_open("SPPIZ01300", "SPPIZ01300", "ds_hidden_sppiz01300_cond""-"ds_send_data1"", "", "", "10", "10", "", "", "", "", "", "M");
  3439. } else {
  3440. activateChild("SPPIZ01300");
  3441. //model.refresh();
  3442. }
  3443. }
  3444. }
  3445. //중간마감취소
  3446. function fmidcancel() {
  3447. //20091126 JHP 수정추가
  3448. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3449. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  3450. var ans = 0;
  3451. if(chk){
  3452. if(ipt_pid.text.length >1){
  3453. if(indd.length>1){
  3454. var trgtManWindow = getChildWindow("SMPID10100");
  3455. var patunitsrch1 = ds_main_item1_iteminfo.getColumn(0, "pid").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  3456. // 2008.01.23 박지욱 수정 (중간청구등록화면에 넘겨주는 데이터 추가 - pid, indd)
  3457. ds_hidden_midclam.clearData();
  3458. dsf_makeValue( ds_hidden_midclam, "pid", "string", patunitsrch1);
  3459. dsf_makeValue( ds_hidden_midclam, "indd", "string", ds_main_item1_iteminfo.getColumn(0, "indd"));
  3460. if (trgtManWindow == null) {
  3461. ans = sysf_messageBox("심사 취소 할 경우", "S001");
  3462. if (ans == 6) {
  3463. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  3464. // if (!submit("TRPIJ00315", false)) {
  3465. var oParam = {};
  3466. oParam.id = "TRPIJ00315";
  3467. oParam.service = "bfjudgapp.InHospJudg";
  3468. oParam.method = "reqNotiDschStat";
  3469. oParam.inds = "req=ds_";
  3470. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3471. oParam.async = false;
  3472. oParam.callback = "cf_TRPIJ00315";
  3473. tranf_submit(oParam);
  3474. /*
  3475. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3476. if(nErrorCode < 0) return;
  3477. }
  3478. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3479. arErrorCode.push(sSvcId, nErrorCode);
  3480. }
  3481. arErrorCode.pop("TRPIJ00315") > -1
  3482. arErrorCode.pop("TRPIJ00315") < 0
  3483. */
  3484. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3485. return;
  3486. }
  3487. if (fGetDrgOpenPopup("O") == false) {
  3488. return false;
  3489. }
  3490. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","A");
  3491. // if (submit("TXPIJ00301", false)) {
  3492. var oParam = {};
  3493. oParam.id = "TXPIJ00301";
  3494. oParam.service = "bfjudgapp.InHospJudg";
  3495. oParam.method = "reqExeSaveInpt";
  3496. oParam.inds = "req=ds_";
  3497. oParam.outds = "";
  3498. oParam.async = false;
  3499. oParam.callback = "cf_TXPIJ00301";
  3500. tranf_submit(oParam);
  3501. /*
  3502. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3503. if(nErrorCode < 0) return;
  3504. }
  3505. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3506. arErrorCode.push(sSvcId, nErrorCode);
  3507. }
  3508. arErrorCode.pop("TXPIJ00301") > -1
  3509. arErrorCode.pop("TXPIJ00301") < 0
  3510. */
  3511. }
  3512. }
  3513. } else {
  3514. ans = sysf_messageBox("심사 취소 할 경우", "S001");
  3515. if (ans == 6) {
  3516. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  3517. // if (!submit("TRPIJ00315", false)) {
  3518. var oParam = {};
  3519. oParam.id = "TRPIJ00315";
  3520. oParam.service = "bfjudgapp.InHospJudg";
  3521. oParam.method = "reqNotiDschStat";
  3522. oParam.inds = "req=ds_";
  3523. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3524. oParam.async = false;
  3525. oParam.callback = "cf_TRPIJ00315";
  3526. tranf_submit(oParam);
  3527. /*
  3528. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3529. if(nErrorCode < 0) return;
  3530. }
  3531. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3532. arErrorCode.push(sSvcId, nErrorCode);
  3533. }
  3534. arErrorCode.pop("TRPIJ00315") > -1
  3535. arErrorCode.pop("TRPIJ00315") < 0
  3536. */
  3537. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3538. return;
  3539. }
  3540. if (fGetDrgOpenPopup("O") == false) {
  3541. return false;
  3542. }
  3543. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","A");
  3544. // submit("TXPIJ00301",false);
  3545. var oParam = {};
  3546. oParam.id = "TXPIJ00301";
  3547. oParam.service = "bfjudgapp.InHospJudg";
  3548. oParam.method = "reqExeSaveInpt";
  3549. oParam.inds = "req=ds_";
  3550. oParam.outds = "";
  3551. oParam.async = false;
  3552. oParam.callback = "cf_TXPIJ00301";
  3553. tranf_submit(oParam);
  3554. /*
  3555. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3556. if(nErrorCode < 0) return;
  3557. }
  3558. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3559. arErrorCode.push(sSvcId, nErrorCode);
  3560. }
  3561. arErrorCode.pop("TXPIJ00301") > -1
  3562. arErrorCode.pop("TXPIJ00301") < 0
  3563. */
  3564. }
  3565. }
  3566. //model.refresh();
  3567. }
  3568. }
  3569. }
  3570. }
  3571. //특정내역
  3572. function fspclData() {
  3573. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3574. if(chk){
  3575. var rrgstno = ds_main_item1_iteminfo.getColumn(0, "rrgstno");
  3576. rrgstno = rrgstno.replace("-","");
  3577. ds_send.setColumn( 0, "rrgstno",rrgstno);
  3578. ds_send.setColumn( 0, "dschdd",ds_main_item1_iteminfo.getColumn(0, "dschdd"));
  3579. var fromdd = ds_send.getColumn(0, "fromdd");
  3580. // v191, v192, v193 값을 넣기 위한 vcode
  3581. ds_send.setColumn( 0, "vcode", ds_hidden_item1.getColumn(0, "vcode"));
  3582. // if (submit("TRPIJ00310")) {
  3583. var oParam = {};
  3584. oParam.id = "TRPIJ00310";
  3585. oParam.service = "bfjudgapp.InHospJudg";
  3586. oParam.method = "reqGetSpclCdList";
  3587. oParam.inds = "req=ds_";
  3588. oParam.outds = "ds_=clcjlist";
  3589. oParam.async = false;
  3590. oParam.callback = "cf_TRPIJ00310";
  3591. tranf_submit(oParam);
  3592. /*
  3593. function cf_TRPIJ00310(sSvcId, nErrorCode, sErrorMsg) {
  3594. if(nErrorCode < 0) return;
  3595. }
  3596. function cf_TRPIJ00310(sSvcId, nErrorCode, sErrorMsg) {
  3597. arErrorCode.push(sSvcId, nErrorCode);
  3598. }
  3599. arErrorCode.pop("TRPIJ00310") > -1
  3600. arErrorCode.pop("TRPIJ00310") < 0
  3601. */
  3602. ds_main_list4.copyData(ds_hidden_list4);
  3603. //grd_clcjlist.dispatch("xforms-value-changed");
  3604. //
  3605. //model.refresh();
  3606. 최적화 문제로 대체 20080731 박창원
  3607. model.refreshpart("ds_main_list4");
  3608. for(var i = 1; i < grd_clcjlist.rows; i++) {
  3609. var spclcd = ds_main_list4_clcjlist.getColumn(i, "spclcd");
  3610. ds_main_list4.setColumn( i , "fromdd", fromdd);
  3611. if (spclcd == "" ) {
  3612. grd_clcjlist.deleteRow(i, false);
  3613. }
  3614. }
  3615. for(var i = 1; i < grd_clcjlist.rows; i++) {
  3616. var status = ds_main_list4_clcjlist.getColumn(i, "status");
  3617. if(status == "3"){
  3618. grd_clcjlist.rowstatus(i) = 1;
  3619. }
  3620. }
  3621. // 그리드 정렬 + 빈줄 추가
  3622. fSortSpclNo();
  3623. // 행추가
  3624. // fSpclGridInsertRow();
  3625. }
  3626. }
  3627. }
  3628. //퇴원마감취소
  3629. function fdschclosecancel() {
  3630. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3631. var tmpnotiyn;
  3632. var notichngflag = "N";
  3633. // 퇴원 마감 취소시 퇴원수납이 되었는지 실시한 확인 후 진행한다.
  3634. // 마감에서부터 취소사이에 수납에서 퇴원수납이 되었는데 마감취소가 되는 상황이 발생되지 않기 위함
  3635. // 퇴원수납이 된경우에는 대상자 조회 호면을 refresh 하고
  3636. // 메인화면의 심사상태를 'A' 미심상태로 하고 메인화면을 다시 로드- 20080927 박창원
  3637. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  3638. // if (!submit("TRPIJ00315", false)) {
  3639. var oParam = {};
  3640. oParam.id = "TRPIJ00315";
  3641. oParam.service = "bfjudgapp.InHospJudg";
  3642. oParam.method = "reqNotiDschStat";
  3643. oParam.inds = "req=ds_";
  3644. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3645. oParam.async = false;
  3646. oParam.callback = "cf_TRPIJ00315";
  3647. tranf_submit(oParam);
  3648. /*
  3649. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3650. if(nErrorCode < 0) return;
  3651. }
  3652. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3653. arErrorCode.push(sSvcId, nErrorCode);
  3654. }
  3655. arErrorCode.pop("TRPIJ00315") > -1
  3656. arErrorCode.pop("TRPIJ00315") < 0
  3657. */
  3658. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3659. return;
  3660. }
  3661. var indschacptstat = ds_main_item11_endcnclstat.getColumn(0, "indschacptstat");
  3662. if (indschacptstat == 'D') {
  3663. sysf_messageBox("이미 퇴원처리가 된 환자입니다. 마감취소 ", "E001");
  3664. // 무조건 대상자 조회 화면을 refresh
  3665. var trgtManWindow = getChildWindow("SMPIJ00200");
  3666. trgtManWindow.javascript.fGetInBfJudgTrgtManList();
  3667. trgtManWindow.javascript.fCountPat();
  3668. //trgtManWindow.model.refresh();
  3669. fGetItemInfo();
  3670. return;
  3671. }
  3672. if(chk){
  3673. var receiptyn = ds_main_item1_iteminfo.getColumn(0, "receiptyn");
  3674. var dschnotiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  3675. var dschdclrtyn = ds_main_item11_endcnclstat.getColumn(0, "dschdclrtyn");
  3676. var dschjudgprcsstat = ds_main_item11_endcnclstat.getColumn(0, "dschjudgprcsstat");
  3677. if (receiptyn != "" && dschnotiyn == "Y") {
  3678. sysf_messageBox("퇴원(가퇴원) 수납이 되었으므로 마감취소를","E001");
  3679. } else if (receiptyn == "" && (dschnotiyn == "Y" || ( dschjudgprcsstat == 'G' && dschdclrtyn == 'Y' ))) {
  3680. //DRG 상세 마감 취소 팝업
  3681. if (fGetDrgOpenPopup("O") == false) {
  3682. return false;
  3683. }
  3684. if ( dschnotiyn == "Y" ) {
  3685. // var msg = sysf_messageBox("간호의 퇴원확정여부도 함께 취소","S001");
  3686. // if(msg == 6){
  3687. // if (indschacptstat == "T") { // 가퇴원 블로킹 추가 - 20081005 박창원
  3688. // var msg1 = sysf_messageBox("가퇴원 상태에서는 간호확정 취소가 불가합니다. 계속진행","S001");
  3689. // if (msg1 != 6) {
  3690. // return;
  3691. // }
  3692. // } else {
  3693. // ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn","Z");
  3694. // }
  3695. // }else if(msg == 2){
  3696. // return;
  3697. // }
  3698. }
  3699. if (fJudgEndCancel()) {
  3700. if(fSaveCalcAmt("D")) {
  3701. } else {
  3702. sysf_messageBox("마감취소 처리가 되지","E007");
  3703. return 0;
  3704. }
  3705. } else {
  3706. sysf_messageBox("마감취소 처리가 되지","E007");
  3707. return 0;
  3708. }
  3709. if(ds_main_item1_iteminfo.getColumn(0, "dschnotiyn") == "Z"){
  3710. ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn","N");
  3711. notichngflag = "Y";
  3712. }
  3713. fJudgEndClear();
  3714. }
  3715. }
  3716. }
  3717. //종료
  3718. function fClear() {
  3719. // 심사상태를 미심상태로 바꾸고 대상자 조회를 리프레쉬 - 20081004 박창원
  3720. // 심사상태를 실시간 체크하여 심사상태가 심사중일때만 업데이트 되게 함 - 20081008 박창원
  3721. // if (!submit("TRPIJ00315", false)) {
  3722. var oParam = {};
  3723. oParam.id = "TRPIJ00315";
  3724. oParam.service = "bfjudgapp.InHospJudg";
  3725. oParam.method = "reqNotiDschStat";
  3726. oParam.inds = "req=ds_";
  3727. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3728. oParam.async = false;
  3729. oParam.callback = "cf_TRPIJ00315";
  3730. tranf_submit(oParam);
  3731. /*
  3732. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3733. if(nErrorCode < 0) return;
  3734. }
  3735. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3736. arErrorCode.push(sSvcId, nErrorCode);
  3737. }
  3738. arErrorCode.pop("TRPIJ00315") > -1
  3739. arErrorCode.pop("TRPIJ00315") < 0
  3740. */
  3741. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다.기본데이터 이상이나 시스템 오류입니다.관리자 문의 후", "C003");
  3742. return;
  3743. }
  3744. // 혹시모르는 종료버튼 클릭시 간호퇴원확정 취소를 막기위해 적용 - 20081008 박창원
  3745. var realnotiyn = ds_main_item11_endcnclstat.getColumn(0, "dschnotiyn");
  3746. var notiyn = ds_main_item1_iteminfo.getColumn(0, "dschnotiyn");
  3747. var readonly = ds_send.getColumn(0, "readonly");
  3748. if (notiyn == "Z") {
  3749. ds_main_item1_iteminfo.setColumn( 0, "dschnotiyn", realnotiyn);
  3750. }
  3751. var dschjudgprcsstat = ds_main_item11_endcnclstat.getColumn(0, "dschjudgprcsstat");
  3752. if (dschjudgprcsstat == "B" && readonly != "Y") {
  3753. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","Z");
  3754. // submit("TXPIJ00301");
  3755. var oParam = {};
  3756. oParam.id = "TXPIJ00301";
  3757. oParam.service = "bfjudgapp.InHospJudg";
  3758. oParam.method = "reqExeSaveInpt";
  3759. oParam.inds = "req=ds_";
  3760. oParam.outds = "";
  3761. oParam.async = false;
  3762. oParam.callback = "cf_TXPIJ00301";
  3763. tranf_submit(oParam);
  3764. /*
  3765. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3766. if(nErrorCode < 0) return;
  3767. }
  3768. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3769. arErrorCode.push(sSvcId, nErrorCode);
  3770. }
  3771. arErrorCode.pop("TXPIJ00301") > -1
  3772. arErrorCode.pop("TXPIJ00301") < 0
  3773. */
  3774. }
  3775. // 2. 화면 클리어 (공통)
  3776. fJudgEndClear();
  3777. }
  3778. //중간청구마감
  3779. function fMidcomplete() {
  3780. // 20091126 JHP 수정추가
  3781. var chk = ds_main_item1_iteminfo.getColumn(0, "patnm");
  3782. var indd = ds_main_item1_iteminfo.getColumn(0, "indd");
  3783. var ans = 0;
  3784. if(chk){
  3785. if(ipt_pid.text.length >1){
  3786. if(indd.length>1){
  3787. // if (!submit("TRPIJ00319", false )) {
  3788. var oParam = {};
  3789. oParam.id = "TRPIJ00319";
  3790. oParam.service = "bfjudgapp.InHospJudg";
  3791. oParam.method = "reqNoActYn";
  3792. oParam.inds = "req=ds_";
  3793. oParam.outds = "ds_=noactyn";
  3794. oParam.async = false;
  3795. oParam.callback = "cf_TRPIJ00319";
  3796. tranf_submit(oParam);
  3797. /*
  3798. function cf_TRPIJ00319(sSvcId, nErrorCode, sErrorMsg) {
  3799. if(nErrorCode < 0) return;
  3800. }
  3801. function cf_TRPIJ00319(sSvcId, nErrorCode, sErrorMsg) {
  3802. arErrorCode.push(sSvcId, nErrorCode);
  3803. }
  3804. arErrorCode.pop("TRPIJ00319") > -1
  3805. arErrorCode.pop("TRPIJ00319") < 0
  3806. */
  3807. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3808. return;
  3809. }
  3810. var noactyn = ds_main_item16_noactyn.getColumn(0, "noactyn");
  3811. if (noactyn == 'Y') {
  3812. frmf_modal("SPPIJ00900", "SPPIJ00900", "ds_main_item1_iteminfo_pid""-"ds_send_send_pid_pid"", "", "", "10", "10", "", "", "", "", "", "M");
  3813. }
  3814. var trgtManWindow = getChildWindow("SMPID10100");
  3815. var patunitsrch1 = ds_main_item1_iteminfo.getColumn(0, "pid").getTrim(); // (stringHelper.js) 문자열 앞뒤에 있는 공백 제거
  3816. // 2008.01.23 박지욱 수정 (중간청구등록화면에 넘겨주는 데이터 추가 - pid, indd)
  3817. ds_hidden_midclam.clearData();
  3818. dsf_makeValue( ds_hidden_midclam, "pid", "string", patunitsrch1);
  3819. dsf_makeValue( ds_hidden_midclam, "indd", "string", ds_main_item1_iteminfo.getColumn(0, "indd"));
  3820. if (trgtManWindow == null) {
  3821. ans = sysf_messageBox("심사 마감 할 경우", "S001");
  3822. if (ans == 6) {
  3823. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  3824. // if (!submit("TRPIJ00315", false )) {
  3825. var oParam = {};
  3826. oParam.id = "TRPIJ00315";
  3827. oParam.service = "bfjudgapp.InHospJudg";
  3828. oParam.method = "reqNotiDschStat";
  3829. oParam.inds = "req=ds_";
  3830. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3831. oParam.async = false;
  3832. oParam.callback = "cf_TRPIJ00315";
  3833. tranf_submit(oParam);
  3834. /*
  3835. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3836. if(nErrorCode < 0) return;
  3837. }
  3838. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3839. arErrorCode.push(sSvcId, nErrorCode);
  3840. }
  3841. arErrorCode.pop("TRPIJ00315") > -1
  3842. arErrorCode.pop("TRPIJ00315") < 0
  3843. */
  3844. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3845. return;
  3846. }
  3847. if (fGetDrgOpenPopup("O") == false) {
  3848. return false;
  3849. }
  3850. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","C");
  3851. // if (submit("TXPIJ00301")) {
  3852. var oParam = {};
  3853. oParam.id = "TXPIJ00301";
  3854. oParam.service = "bfjudgapp.InHospJudg";
  3855. oParam.method = "reqExeSaveInpt";
  3856. oParam.inds = "req=ds_";
  3857. oParam.outds = "";
  3858. oParam.async = false;
  3859. oParam.callback = "cf_TXPIJ00301";
  3860. tranf_submit(oParam);
  3861. /*
  3862. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3863. if(nErrorCode < 0) return;
  3864. }
  3865. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3866. arErrorCode.push(sSvcId, nErrorCode);
  3867. }
  3868. arErrorCode.pop("TXPIJ00301") > -1
  3869. arErrorCode.pop("TXPIJ00301") < 0
  3870. */
  3871. frmf_open("SMPID10100", "SMPID10100", "ds_hidden_midclam""-"ds_hidden_midclam"", "", "", "10", "10", "", "", "", "", "", "M");
  3872. }
  3873. } else {
  3874. }
  3875. } else {
  3876. ans = sysf_messageBox("심사 마감 할 경우", "S001");
  3877. if (ans == 6) {
  3878. dsf_makeValue( ds_send, "checkyn", "string", "Y");
  3879. // if (!submit("TRPIJ00315", false)) {
  3880. var oParam = {};
  3881. oParam.id = "TRPIJ00315";
  3882. oParam.service = "bfjudgapp.InHospJudg";
  3883. oParam.method = "reqNotiDschStat";
  3884. oParam.inds = "req=ds_";
  3885. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3886. oParam.async = false;
  3887. oParam.callback = "cf_TRPIJ00315";
  3888. tranf_submit(oParam);
  3889. /*
  3890. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3891. if(nErrorCode < 0) return;
  3892. }
  3893. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3894. arErrorCode.push(sSvcId, nErrorCode);
  3895. }
  3896. arErrorCode.pop("TRPIJ00315") > -1
  3897. arErrorCode.pop("TRPIJ00315") < 0
  3898. */
  3899. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3900. return;
  3901. }
  3902. if (fGetDrgOpenPopup("O") == false) {
  3903. return false;
  3904. }
  3905. ds_main_item1_iteminfo.setColumn( 0, "dschjudgprcsstat","C");
  3906. // if (submit("TXPIJ00301")) {
  3907. var oParam = {};
  3908. oParam.id = "TXPIJ00301";
  3909. oParam.service = "bfjudgapp.InHospJudg";
  3910. oParam.method = "reqExeSaveInpt";
  3911. oParam.inds = "req=ds_";
  3912. oParam.outds = "";
  3913. oParam.async = false;
  3914. oParam.callback = "cf_TXPIJ00301";
  3915. tranf_submit(oParam);
  3916. /*
  3917. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3918. if(nErrorCode < 0) return;
  3919. }
  3920. function cf_TXPIJ00301(sSvcId, nErrorCode, sErrorMsg) {
  3921. arErrorCode.push(sSvcId, nErrorCode);
  3922. }
  3923. arErrorCode.pop("TXPIJ00301") > -1
  3924. arErrorCode.pop("TXPIJ00301") < 0
  3925. */
  3926. activateChild("SMPID10100");
  3927. trgtManWindow.javascript.fGetMidClamList();
  3928. }
  3929. } else {
  3930. activateChild("SMPID10100");
  3931. trgtManWindow.javascript.fGetMidClamList();
  3932. }
  3933. }
  3934. //model.refresh();
  3935. }
  3936. }
  3937. }
  3938. }
  3939. //중간청구마감
  3940. function fAccept() {
  3941. // 심사마감이나 퇴원한 환자는 요율변경을 할 수 없다. - 20080924 박창원
  3942. // 기존에는 심사마감이나 퇴원여부를 인스턴스에서 가져오던 것을 실시간 체크로 변경 - 20080927 박창원
  3943. // if (!submit("TRPIJ00315", false)) {
  3944. var oParam = {};
  3945. oParam.id = "TRPIJ00315";
  3946. oParam.service = "bfjudgapp.InHospJudg";
  3947. oParam.method = "reqNotiDschStat";
  3948. oParam.inds = "req=ds_";
  3949. oParam.outds = "ds_=endcnclstat ds_=recal ds_=drginfo";
  3950. oParam.async = false;
  3951. oParam.callback = "cf_TRPIJ00315";
  3952. tranf_submit(oParam);
  3953. /*
  3954. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3955. if(nErrorCode < 0) return;
  3956. }
  3957. function cf_TRPIJ00315(sSvcId, nErrorCode, sErrorMsg) {
  3958. arErrorCode.push(sSvcId, nErrorCode);
  3959. }
  3960. arErrorCode.pop("TRPIJ00315") > -1
  3961. arErrorCode.pop("TRPIJ00315") < 0
  3962. */
  3963. sysf_messageBox("실시간 환자상태 체크에 실패 했습니다. 시스템 오류입니다.관리자 문의 후", "C003");
  3964. return;
  3965. }
  3966. // 오픈일 적용 - 20090302 박창원 - 하드코딩 제거 - 확산병원은 자료가 구축되어 있지 않기 때문에 오픈전까지 예외처리
  3967. var opendd = ds_main_item1_iteminfo.getColumn(0, "opendd");
  3968. var indschacptstat = ds_main_item1_iteminfo.getColumn(0, "indschacptstat");
  3969. var dschjudgprcsstat = ds_main_item1_iteminfo.getColumn(0, "dschjudgprcsstat");
  3970. // 중간청구, 읽기전옹 여부를 판단해서 블로킹 - 20081017 박창원
  3971. var lastmdlclamdd = ds_main_item1_iteminfo.getColumn(0, "lastmdlclamdd");
  3972. var fromdd = ds_main_item1_iteminfo.getColumn(0, "fromdd");
  3973. var readonly = ds_send.getColumn(0, "readonly");
  3974. if (lastmdlclamdd > fromdd && lastmdlclamdd > "20081003" && lastmdlclamdd != "" ) {
  3975. sysf_messageBox("중간청구 등록이 되어있습니다. 요율을 변경","E001");
  3976. grp_changeownbrate.visible = false;
  3977. return;
  3978. } else if (readonly == "Y") {
  3979. sysf_messageBox("읽기전용 모드에서는 요율을 변경","E001");
  3980. grp_changeownbrate.visible = false;
  3981. return;
  3982. } else if (indschacptstat == "D") {
  3983. sysf_messageBox("이미 퇴원한 환자입니다. 요율을 변경","E001");
  3984. grp_changeownbrate.visible = false;
  3985. return;
  3986. } else if (dschjudgprcsstat == "C" || dschjudgprcsstat == "E") {
  3987. sysf_messageBox("이미 마감된 환자입니다. 요율을 변경","E001");
  3988. grp_changeownbrate.visible = false;
  3989. return;
  3990. }
  3991. fChangeRate1();
  3992. }
  3993. //병용금기확인
  3994. function fUseincombinationtaboo() {
  3995. // 20091126 수정추가 JHP 병용금기내역 확인
  3996. var prcsyn = sysf_messageBox("병용금기확인시 계산내역에 따라 일부 시간이 지연될수 있습니다.\n\n","Q003");
  3997. if(prcsyn == "6"){
  3998. var pid = ds_main_item1_iteminfo.getColumn(0, "pid");
  3999. if(pid == "" || pid == null || pid == " "){
  4000. }else{
  4001. // submit("TRPIJ00318");
  4002. var oParam = {};
  4003. oParam.id = "TRPIJ00318";
  4004. oParam.service = "bfjudgapp.InHospJudg";
  4005. oParam.method = "reqGetUseInCombinationTaboo";
  4006. oParam.inds = "req=ds_";
  4007. oParam.outds = "ds_=list";
  4008. oParam.async = false;
  4009. oParam.callback = "cf_TRPIJ00318";
  4010. tranf_submit(oParam);
  4011. /*
  4012. function cf_TRPIJ00318(sSvcId, nErrorCode, sErrorMsg) {
  4013. if(nErrorCode < 0) return;
  4014. }
  4015. function cf_TRPIJ00318(sSvcId, nErrorCode, sErrorMsg) {
  4016. arErrorCode.push(sSvcId, nErrorCode);
  4017. }
  4018. arErrorCode.pop("TRPIJ00318") > -1
  4019. arErrorCode.pop("TRPIJ00318") < 0
  4020. */
  4021. var nodecnt = ds_hidden_useincombinationtaboo_list.rowcount;
  4022. if(nodecnt > 1){
  4023. var seeyn = sysf_messageBox("병용금기내역이 존재합니다. 확인","Q005");
  4024. if(seeyn == "6"){
  4025. grp_taboo.attribute("left") = "420px";
  4026. grp_taboo.attribute("top") = "525px";
  4027. grp_taboo.attribute("width") = "508px";
  4028. grp_taboo.attribute("height") = "199px";
  4029. grp_taboo.visible = true;
  4030. }else{
  4031. }
  4032. }else{
  4033. sysf_messageBox("병용금기내역이 존재하지 ","I011");
  4034. }
  4035. }
  4036. }
  4037. }
  4038. function fOpenSPPIJ03800(){
  4039. var cond = "ds_hidden_SPPIJ03800_cond";
  4040. var ref = "ds_main_item1_iteminfo";
  4041. var send = "ds_send";
  4042. model.makevalue(cond+"_pid", model.getValue(ref+"_pid"));
  4043. model.makevalue(cond+"_cretno", model.getValue(ref+"_cretno"));
  4044. model.makevalue(cond+"_orddd", model.getValue(ref+"_fromdd"));
  4045. model.makevalue(cond+"_ordtodd", model.getValue(ref+"_todd"));
  4046. fLinkPopMenu("SPPIJ03800", cond, send, "modal");
  4047. }
  4048. ]]></Script>