SMMNW4810.js 152 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787
  1. /*
  2. (SMMNW04810.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. - Desc : 통증관리기록및 통증관리 팝업이미지 에서 사용하는 스크립트
  6. */
  7. /******************************************************************************************************************************************************/
  8. /****************************************************** 통증관리기록에서 사용하는 펑션 시작************************************************************/
  9. /******************************************************************************************************************************************************/
  10. var xCondPath = "/root/cond"; // 조회조건 xPath
  11. var xBedsoreGridPath = "/root/main/detlgrup/detlgruplist" // 그리드 xPath
  12. var xClsListBKPath = "/root/hidden/main/detlgrup/detlgruplist"; // 그리드 hidden xPath
  13. var xPamInfoPath = '/root/temp/paminfo'
  14. var erPatPidPath = "/root/cond/patientnm";
  15. var gpidPath = "/root/temp/cond/settingpatient/settingpatientlist"
  16. var gcurrentpid = "";
  17. var xChartHeaderListPath = "/root/main/chartheaderlist";
  18. var xTMSettingListPath = "/root/temp/clincobsrecinfo/tmsettinglist";
  19. //var xPamInfoPath = "/root/main/paminfo/pamlist"; // 환자정보
  20. var xPrcpInfoPath1 = "/root/main/searchinfo/prcplist1"; // 처방정보(fromdd)
  21. var xPrcpInfoPath2 = "/root/main/searchinfo/prcplist2"; // 처방정보(fromdd+1)
  22. var xPrcpInfoPath3 = "/root/main/searchinfo/prcplist3"; // 처방정보(fromdd+2)
  23. var xPrcpInfoPath4 = "/root/main/searchinfo/prcplist4"; // 처방정보(fromdd+3)--> srchdd
  24. var xPainInfoPath1 = "/root/main/searchinfo/painlist1"; //통증정보(fromdd)
  25. var xPainInfoPath2 = "/root/main/searchinfo/painlist2"; //통증정보(fromdd+1)
  26. var xPainInfoPath3 = "/root/main/searchinfo/painlist3"; //통증정보(fromdd+2)
  27. var xPainInfoPath4 = "/root/main/searchinfo/painlist4"; //통증정보(fromdd+3)--> srchdd
  28. var xTotPainInfoPath = "/root/main/searchinfo/totpainlist"; //통증조회(그래프를 그리기 위한 4일간의 모든 통증기록)
  29. var xTPRInfoPath = "/root/main/searchinfo/tprlist"; //TPR vs조회
  30. var xChkObsPartInfoPath = "/root/main/searchinfo/obspartlist"; //통증부위--> 그래프 체크박스에 나타낼 통증부위
  31. var xPainCountInfoPath = "/root/main/searchinfo/paincount"; //점수가7점이상이 3회이상인경우
  32. var sHeader = new Array();
  33. var sFormerHeader = new Array();
  34. var sPid = ""; // 환자번호
  35. var sIndd = ""; // 입원일자
  36. var sCretNo = ""; // 환자 일자별 일련번호
  37. var sInstcd = ""; // 기관코드
  38. var sIOFlag = ""; // 입원/외래 구분
  39. var sWardCD = ""; // 병동코드
  40. var sRoomCD = ""; // 병실코드
  41. var sJobKindCD = ""; // 직급코드
  42. var sIndschacptstat = "";
  43. var sDschdd = "";
  44. var sChartItem = new Array();
  45. var sLineColor = new Array();
  46. //var sLineColor = new Array(0xcc88dd , 0xff0000 , 0x00ff00 , 0x0000ff , 0x4400cc , 0x6688ff , 0x888822 , 0xff8822 , 0xffff00, 0x88ffff, 0xe5f3c2, 0x6699ff );
  47. var sCheckColor = new Array("#cc88dd" , "#ffff00" , "#6688ff", "#88ffff" , "#00ff00" , "#ff0000" , "#ff88bb" , "#888822" , "#ff8822" ,"#777777", "#aa3399" , "#ccff44","#ccffbb");
  48. var sPatNm = "";
  49. var sSexAge = "";
  50. var sDutplcecd = "";
  51. var sOrdDeptcd = "";
  52. var sMedispclid = "";
  53. var sUserFlag = "";
  54. var sUserDeptCd = "";
  55. var sUserId = "";
  56. //통합기록조회
  57. var ViewFunc = "sign"; //sign : 기록인증용, view : view인증용
  58. //가정간호 parameter를 global variable로 선언
  59. var HC_homecarecd = '';
  60. var HC_ioflag = '';
  61. var HC_isHomeCare = '';
  62. //응급의료센터 관련 변수_경북대 (2011.03.16 Ahn)
  63. var eERDEPTCD = "";
  64. var eERFLAG = "";
  65. var eSECTIONCD = "";
  66. //경북대 기록지 구분용 _ 2011.03.17 (ahn)
  67. var eRECFLAG = "erPain"; // 통증관리기록
  68. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  69. //+++++++++++++++++++++++++++++++++++++++++++ 조회관련 펑션 모음 시작 ++++++++++++++++++++++++++++++++++++++++++++++//
  70. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  71. /**
  72. * @group :
  73. * @ver : 2007.09. 06
  74. * : 2008.05.28 dhkim 수정
  75. * @by : 정찬성
  76. * @----------------------------------------------------------------------------------------------------------------------------------------------------
  77. * @type : function
  78. * @access : public
  79. * @desc : 화면을 초기화한다. 화면로딩이 끝난 시점에 호출된다.
  80. * @param :
  81. * @return :
  82. * @----------------------------------------------------------------------------------------------------------------------------------------------------
  83. */
  84. function finit(){
  85. model.makeValue("/root/send/cdgpid", "T30");
  86. submit("TRMNW04001");
  87. //사용자 직급구분에 따른 화면 제어 플래그 설정
  88. sJobKindCD = getUserInfo("jobkindcd"); // 직급코드
  89. sUserDeptCd = getUserInfo("dutplcecd");
  90. sUserId = getUserInfo("userid");
  91. //---------(20101204) 경북대
  92. //추가
  93. //var sJobKindCD = getUserInfo("jobkindcd"); // 직급코드
  94. var ssflag = "";
  95. if( sJobKindCD.substring(0, 2) == "03"){
  96. ssflag = "Y";
  97. }else{
  98. ssflag = "N";
  99. }
  100. //----------------------------
  101. //응급의료센터 부서코드 추출_ 경북대 (2011.03.16 Ahn)
  102. model.makeValue("/root/send/cdgrupid", "'002'");
  103. model.makeValue("/root/send/srchdd" , getCurrentDate()); // 조회기준일자
  104. if(submit("TRMNW00001", false)){
  105. eERDEPTCD = model.getvalue("/root/code/codeinfo/codelist[cdgrupid='002']/cdid");
  106. }
  107. //원본:의사의 경우만
  108. //if(sJobKindCD == "0330" || sJobKindCD == "0310" ){
  109. if(ssflag=="Y") {
  110. //---------(20101204) 경북대
  111. grp_search.visible = true;
  112. grp_save.visible = false;
  113. chk_nextyn.visible = false;
  114. //grp_data.disabled = true;
  115. }else{
  116. grp_search.visible = false;
  117. grp_save.visible = true;
  118. chk_nextyn.visible = true;
  119. }
  120. /*
  121. // 간호하드코딩 테이블 조회_20090816(ByKHJ)
  122. var pCode = "'077'"; // 조회할 CdGrupID 코드정보(기관코드조회)
  123. var pDate = getCurrentDate(); // 조회기준일자
  124. fGetNursHardCdInfo(pCode, pDate);
  125. if ( model.getValue("/root/code/codeinfo/codelist[supcdid='01']/cdid") == getUserInfo("dutplceinstcd") ){
  126. grd_detlgrup.colHidden(grd_detlgrup.colRef("paingb")) = false;
  127. setParameter("SPMNW04800_PARAM9SHOW","Y");
  128. }else{
  129. grd_detlgrup.colHidden(grd_detlgrup.colRef("paingb")) = true;
  130. }
  131. */
  132. //조회조건을 세팅한다.
  133. model.removenode('/root/cond');
  134. model.makeNode('/root/cond/wardcd');
  135. model.makeNode('/root/cond/roomcd');
  136. model.makeNode('/root/cond/patientnm');
  137. model.makeNode('/root/cond/pid');
  138. // 응급실 구역정보 추가
  139. model.makeNode('/root/cond/zonecd');
  140. model.makeNode('/root/cond/nextyn');
  141. //병동 조회
  142. if(!submit('TRMNW04705')){
  143. messageBox('화면 초기화를', 'E009');
  144. return;
  145. }
  146. //상단정보를 가져온다.
  147. var isOpener = fSetPatInfo();
  148. fpatinfoset();
  149. model.makeValue(rdo_stdradio.attribute("ref"), "2" ); // 종료전(최근입력만) 선택
  150. if(sIndschacptstat == "D"){ // 퇴원환자는 퇴원일자 기준
  151. model.makeValue(ipt_genrdd.attribute("ref"), sDschdd);
  152. }else{
  153. model.makeValue(ipt_genrdd.attribute("ref"), getCurrentDate()); // 기준일에 현재날짜(디폴트)
  154. }
  155. model.makeValue(ipt_genrtm.attribute("ref"), getCurrentDateTime().substring(9,13)); // 기준시간 셋팅
  156. //가정간호 parameter 세팅
  157. if(checkOpener()){
  158. HC_isHomeCare = fSetHomeCareParamter();
  159. }
  160. //상단정보가 있으면 바로 조회
  161. if(isOpener || HC_isHomeCare){
  162. // fSearch();
  163. fSearchRecInfo();
  164. //조회후 그리드의 발생부위, 발생일자를 머지
  165. fMergeGenrAreaDD();
  166. }else{
  167. model.setValue("/root/cond/wardcd", getUserInfo("dutplcecd"));
  168. // 응급실인 경우 (2011.03.16 Ahn)
  169. fGetWardChngInfo("N");
  170. //병실정보 조회
  171. fSearchRoomcd();
  172. model.setFocus("cmb_roomcd");
  173. if(eERFLAG == "Y"){
  174. cmb_roomcd.value = model.getValue("/root/roomcdgrup/roomcdgruplist[1]/roomcd");
  175. //선택한 병실에 해당하는 환자리스트 조회
  176. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value);
  177. model.setFocus("cmb_erpat");
  178. }
  179. }
  180. var pFlag = null;
  181. var flag = 'SMMNW04800';
  182. fGetSettingPatientList(pFlag,flag);
  183. if(model.getValue("/root/cond/pid")!=""){
  184. if(getNodesetCount("/root/temp/cond/settingpatient/settingpatientlist") > 0){
  185. model.setValue(cmb_mypatlist.attribute('ref'), model.getValue("/root/cond/pid"));
  186. cmb_mypatlist.refresh();
  187. }
  188. }
  189. fSearchGrape("4days");
  190. }
  191. /**
  192. * @ver : 2008.06.12
  193. * @author : dhkim
  194. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  195. * @type : function
  196. * @access : public
  197. * @param :
  198. * @return : true/false (true는 가정간호 parameter정상 세팅/ false는 리턴)
  199. * @desc : 가정간호의 parameter를 넘겨받은 경우에는 조회조건에 parameter값을 setting한다.
  200. * 입원의 경우에는 병동, 병실정보, 등록번호, 환자명을 조회영역에 세팅한다.
  201. * 외래의 경우에는 병동, 병실정보 및 중증도점수 조회영역을 hidden시키고 등록번호, 환자명을 조회영역에 세팅한다.
  202. * [가정간호에서 받아오는 parameter]
  203. * - homecarecd : 3090100000 (가정간호를 구분하기 위한 부서코드)
  204. * - ioflag : I/O (I:입원, O:외래)
  205. * - pid : 등록번호
  206. * - hngnm : 환자명
  207. * - wardcd : 병동코드
  208. * - roomcd : 병실코드
  209. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  210. */
  211. function fSetHomeCareParamter(){
  212. //가정간호 parameter를 가져온다.
  213. model.removenode('/root/hidden/homecareparam');
  214. model.makenode('/root/hidden/homecareparam');
  215. HC_homecarecd = opener.javascript.getParameter('homecarecd');//'3090100000';//'3090100000';//
  216. HC_ioflag = opener.javascript.getParameter('ioflag');//'O';//'I';//
  217. var pid = opener.javascript.getParameter('pid'); //'551121110';//'11524296';//
  218. var hngnm = opener.javascript.getParameter('hngnm'); //'김미연';//'이상월';//
  219. var wardcd = opener.javascript.getParameter('wardcd');//'';//'3050107000';//
  220. var roomcd = opener.javascript.getParameter('roomcd');//'';//'4003';//
  221. //외래/입원의 경우에 따라 조회영역을 visible/hidden처리
  222. fHiddenRoomWard(HC_ioflag);
  223. //가정간호구분자가 널이면 리턴
  224. if(HC_homecarecd != null && HC_homecarecd != ''){
  225. if(pid == null || pid == ''){
  226. messageBox('필수정보가 없으므로 기록을 조회할 수', 'I004');
  227. return false;
  228. }else{
  229. if(HC_ioflag == 'O'){
  230. //환자명 combonode, input pid set
  231. model.removenode('/root/patientgrup/patientgruplist');
  232. model.makeValue('/root/patientgrup/patientgruplist/patientnm', hngnm);
  233. model.makeValue('/root/patientgrup/patientgruplist/pid' , pid);
  234. model.setValue(cmb_patientnm.attribute('ref') , pid);
  235. model.setValue(ipt_pid.attribute('ref') , pid);
  236. model.refresh();
  237. }else if(HC_ioflag == 'I'){
  238. //pid를 가지고 병실, 병동 정보를 찾는다.
  239. fSetWardRoomPidInfo(wardcd, roomcd, pid);
  240. }
  241. return true;
  242. }
  243. }else{
  244. return false;
  245. }
  246. }
  247. /**
  248. * @ver : 2008.06.12
  249. * @author : dhkim
  250. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  251. * @type : function
  252. * @access : public
  253. * @param : ioflag I/O (I:입원, O:외래)
  254. * @return :
  255. * @desc : 입원의 경우에는 병동, 병실정보, 등록번호, 환자명을 조회영역에 visible.
  256. * 외래의 경우에는 병동, 병실정보 및 중증도점수 조회영역을 hidden.
  257. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  258. */
  259. function fHiddenRoomWard(ioflag){
  260. if(ioflag == 'O'){
  261. ctn_ward.attribute('visibility') = 'hidden';
  262. cmb_wardcd.attribute('visibility') = 'hidden';
  263. ctn_room.attribute('visibility') = 'hidden';
  264. cmb_roomcd.attribute('visibility') = 'hidden';
  265. ctn_searchflag.attribute('style') = 'top:14px;';
  266. rdo_stdradio.attribute('style') = 'top:14px;';
  267. }else{
  268. ctn_ward.attribute('visibility') = 'visible';
  269. cmb_wardcd.attribute('visibility') = 'visible';
  270. ctn_room.attribute('visibility') = 'visible';
  271. cmb_roomcd.attribute('visibility') = 'visible';
  272. ctn_searchflag.attribute('style') = 'top:40px;';
  273. rdo_stdradio.attribute('style') = 'top:40px;';
  274. }
  275. }
  276. /**
  277. * @ver : 2008.06.12
  278. * @author : dhkim
  279. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  280. * @type : function
  281. * @access : public
  282. * @param : wardcd 병동코드
  283. * @param : roomcd 병실코드
  284. * @param : pid 등록번호
  285. * @return :
  286. * @desc : pid를 가지고 병실, 병동 정보를 찾아서 조회영역에 병동, 병실, 환자명, 등록번호를 세팅한다.
  287. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  288. */
  289. function fSetWardRoomPidInfo(wardcd, roomcd, pid, zoneflag){
  290. cmb_wardcd.value = wardcd; //병동코드 세팅
  291. fSearchRoomcd(wardcd); //병동에 해당되는 병실조회
  292. cmb_roomcd.value = roomcd; //병실코드 세팅
  293. fGetWardChngInfo("N");
  294. // 응급실일 경우 응급실 환자 조회 (2011.03.16 ahn)
  295. if(eERFLAG == "Y"){
  296. fGetCareComPatList(wardcd, roomcd, cmb_zone.value, eRECFLAG);
  297. // 해당 환자의 section 정보로 재설정
  298. var sectioncd = model.getValue("/root/patientgrup/patientgruplist[pid='" + pid + "']/zonecd");
  299. if(zoneflag== "Chg"){
  300. //model.setValue("/root/cond/zonecd", "-");
  301. model.setValue("/root/cond/zonecd", (sectioncd=="") ? "-" : sectioncd);
  302. cmb_zone.dispatch("xforms-value-changed");
  303. }else if(zoneflag== "NoChg"){
  304. model.setValue("/root/cond/zonecd", eSECTIONCD);
  305. cmb_zone.dispatch("xforms-value-changed");
  306. }
  307. cmb_erpat.value = pid;
  308. }else{
  309. fSearchPatInfo(wardcd, roomcd); //병실에 해당되는 환자조회
  310. }
  311. //퇴원환자의 경우 환자이름에 조회되지 않으므로 콤보아이템을 추가
  312. if ( isNull(model.getValue("/root/patientgrup/patientgruplist[pid='"+pid+"']/patientnm")) ){
  313. addComboItem( "cmb_patientnm", getPatientInfoDetail('hngnm'), pid, "above" );
  314. model.setValue(cmb_patientnm.attribute('ref'), pid);
  315. model.makeValue("/root/patientgrup/patientgruplist[1]/indd", getPatientInfoDetail('indd'));
  316. model.makeValue("/root/patientgrup/patientgruplist[1]/cretno", getPatientInfoDetail('cretno'));
  317. model.makeValue("/root/patientgrup/patientgruplist[1]/orddeptcd", getPatientInfoDetail('orddeptcd'));
  318. model.makeValue("/root/patientgrup/patientgruplist[1]/orddrid", getPatientInfoDetail('medispclid'));
  319. model.makeValue("/root/patientgrup/patientgruplist[1]/ordtype", getPatientInfoDetail('ioflag'));
  320. cmb_patientnm.disabled = true;
  321. }else{
  322. // 응급실일 경우 응급실 환자 조회 (2011.03.16 ahn)
  323. if(eERFLAG == "Y"){
  324. cmb_erpat.value = pid;
  325. }else{
  326. cmb_patientnm.value = pid; //등록번호 세팅
  327. cmb_patientnm.disabled = false;
  328. }
  329. }
  330. ipt_pid.value = pid; //등록번호 세팅
  331. }
  332. /**
  333. * @ver : 2008.06.12
  334. * @author : dhkim
  335. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  336. * @type : function
  337. * @access : public
  338. * @param : pid - 등록번호
  339. * @return :
  340. * @desc : 등록번호만 입력된 상태일때는 병동, 병실정보를 알수 없으므로
  341. * 해당 등록번호의 환자의 병동정보를 조회해온다.
  342. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  343. */
  344. function fGetPidWardInfo(pid, zoneflag){
  345. if(pid != null && pid != ''){
  346. model.removenode('/root/send');
  347. model.removenode('/root/main/patinfo');
  348. model.makeValue('/root/send/pid', model.getValue('/root/cond/pid'));
  349. if ( getPatientInfoDetail('indschacptstat') == "D"
  350. || getPatientInfoDetail('indschacptstat') == "T" ){
  351. model.makeValue('/root/send/indd', getPatientInfoDetail('indd'));
  352. }
  353. if(!submit('TRMNW04707', "false")){
  354. messageBox('환자정보 조회를', 'E009');
  355. return;
  356. }else{
  357. cmb_wardcd.refresh();
  358. var wardcd = model.getValue('/root/main/patinfo/patinfolist/wardcd'); //병동코드,
  359. var roomcd = model.getValue('/root/main/patinfo/patinfolist/roomcd'); //병실코드
  360. var pid = model.getValue('/root/main/patinfo/patinfolist/pid'); //등록번호
  361. //가정간호의 경우는 상단정보가 아닌 parameter에서 받아온다
  362. if(HC_isHomeCare){
  363. wardcd = opener.javascript.getParameter('wardcd');
  364. roomcd = opener.javascript.getParameter('roomcd');
  365. pid = opener.javascript.getParameter('pid');
  366. }
  367. //pid를 가지고 병실, 병동 정보를 찾는다.
  368. fSetWardRoomPidInfo(wardcd, roomcd, pid, zoneflag);
  369. }
  370. if(model.getValue("/root/cond/pid")!=""){
  371. if(getNodesetCount("/root/temp/cond/settingpatient/settingpatientlist") > 0){
  372. model.setValue(cmb_mypatlist.attribute('ref'), model.getValue("/root/cond/pid"));
  373. cmb_mypatlist.refresh();
  374. }
  375. }
  376. }
  377. }
  378. /**
  379. * @group :
  380. * @ver : 2008.05.27
  381. * @by : dhkim
  382. * @------------------------------------------------------------------------------------------------------------------------------------------------
  383. * @type : function
  384. * @access : public
  385. * @desc : 상단정보를 세팅한다.
  386. * @param :
  387. * @return : true/false - 상단정보 있을때 true, 없을때 false
  388. * @------------------------------------------------------------------------------------------------------------------------------------------------
  389. */
  390. function fSetPatInfo(){
  391. var xPamInfoPath = '/root/temp/paminfo'
  392. var node = getPatientInfoDetails(xPamInfoPath) ;
  393. var pid = ''; var hngnm = ''; var wardcd = ''; var roomcd = '';
  394. // 응급실 구역정보 (2011.03.16 ahn)
  395. var sectioncd = "";
  396. var isOpener = false;
  397. if(checkOpener()){
  398. pid = getPatientInfoDetail('pid');
  399. hngnm = getPatientInfoDetail('hngnm');
  400. wardcd = getPatientInfoDetail('wardcd');
  401. roomcd = getPatientInfoDetail('roomcd');
  402. sectioncd = getPatientInfoDetail('sectioncd'); // 응급실 구역정보 (2011.03.16 ahn)
  403. if(pid != null && pid != ''){
  404. isOpener = true;
  405. }
  406. }
  407. if(pid != '' && hngnm != '' && wardcd != '' && roomcd != ''){
  408. // 응급실일 경우 (2011.03.16 Ahn)
  409. //alert(sectioncd);
  410. fGetWardChngInfo("Y", wardcd, sectioncd);
  411. //콤보에서 끌고 오기 위한 병실, 환자정보 조회
  412. fSearchRoomcd(wardcd);
  413. if(eERFLAG == "Y"){ // 응급실 환자 조회 (2011.03.15 Ahn)
  414. fGetCareComPatList(wardcd, roomcd, cmb_zone.value);
  415. }else{
  416. fSearchPatInfo(wardcd, roomcd);
  417. }
  418. //상단정보를 세팅
  419. model.setValue(cmb_wardcd.attribute('ref'), wardcd);
  420. model.setValue(cmb_roomcd.attribute('ref'), roomcd);
  421. //퇴원환자의 경우 환자이름에 조회되지 않으므로 콤보아이템을 추가
  422. if ( isNull(model.getValue("/root/patientgrup/patientgruplist[pid='"+pid+"']/patientnm")) ){
  423. addComboItem( "cmb_patientnm", getPatientInfoDetail('hngnm'), pid, "above" );
  424. model.setValue(cmb_patientnm.attribute('ref'), pid);
  425. model.makeValue("/root/patientgrup/patientgruplist[1]/indd", getPatientInfoDetail('indd'));
  426. model.makeValue("/root/patientgrup/patientgruplist[1]/cretno", getPatientInfoDetail('cretno'));
  427. model.makeValue("/root/patientgrup/patientgruplist[1]/orddeptcd", getPatientInfoDetail('orddeptcd'));
  428. model.makeValue("/root/patientgrup/patientgruplist[1]/orddrid", getPatientInfoDetail('medispclid'));
  429. model.makeValue("/root/patientgrup/patientgruplist[1]/ordtype", getPatientInfoDetail('ioflag'));
  430. cmb_patientnm.disabled = true;
  431. }else{
  432. model.setValue(cmb_patientnm.attribute('ref'), pid);
  433. cmb_patientnm.disabled = false;
  434. }
  435. model.setValue(ipt_pid.attribute('ref'), pid);
  436. }
  437. model.refresh();
  438. return isOpener;
  439. }
  440. /**
  441. * @group :
  442. * @ver : 2008.05.27
  443. * @by : dhkim
  444. * @------------------------------------------------------------------------------------------------------------------------------------------------
  445. * @type : function
  446. * @access : public
  447. * @desc : 병동코드에 해당되는 병실정보 조회
  448. * @param :
  449. * @return :
  450. * @------------------------------------------------------------------------------------------------------------------------------------------------
  451. */
  452. function fSearchRoomcd(wardcd){
  453. //병실정보 clear
  454. model.setValue('/root/cond/roomcd', '');
  455. model.removenode('/root/roomcdgrup');
  456. //해당 병실 환자정보 clear
  457. model.setValue('/root/cond/patientnm', '');
  458. model.setValue('/root/cond/pid', '');
  459. model.removenode('/root/patientgrup');
  460. cmb_patientnm.disabled = false;
  461. //선택한 병동에 해당되는 병실 조회
  462. if(wardcd == null || wardcd == ''){
  463. wardcd = model.getValue("/root/cond/wardcd");
  464. model.removenode(xPamInfoPath);
  465. fInitTopInfo();
  466. }
  467. fGetCareComRoomList(wardcd);
  468. }
  469. /**
  470. * @group :
  471. * @ver : 2008.05.27
  472. * @by : dhkim
  473. * @------------------------------------------------------------------------------------------------------------------------------------------------
  474. * @type : function
  475. * @access : public
  476. * @desc : 병실코드에 해당되는 환자정보 조회
  477. * @param :
  478. * @return :
  479. * @------------------------------------------------------------------------------------------------------------------------------------------------
  480. */
  481. function fSearchPatInfo(wardcd, roomcd){
  482. //해당 병실 환자정보 clear
  483. model.setValue('/root/cond/patientnm', '');
  484. model.setValue('/root/cond/pid', '');
  485. model.removenode('/root/patientgrup');
  486. //선택한 병동, 병실에 해당되는 환자 조회
  487. if(wardcd == null || wardcd == ''){
  488. wardcd = model.getValue('/root/cond/wardcd');
  489. cmb_patientnm.disabled = false;
  490. model.removenode(xPamInfoPath);
  491. fInitTopInfo();
  492. }
  493. if(roomcd == null || roomcd == '')
  494. roomcd = model.getValue('/root/cond/roomcd');
  495. fGetCareComPatList(wardcd, roomcd);
  496. model.refresh();
  497. }
  498. /**
  499. * @group :
  500. * @ver : 2007.09.06
  501. * : 2008.05.28 dhkim 수정
  502. * @by : 정찬성
  503. * @------------------------------------------------------------------------------------------------------------------------------------------------
  504. * @type : function
  505. * @access : public
  506. * @desc : 조회버튼
  507. * @param :
  508. * @return :
  509. * @------------------------------------------------------------------------------------------------------------------------------------------------
  510. */
  511. function fSearch(zoneflag){
  512. var pid = model.getValue(cmb_patientnm.attribute('ref'));
  513. if(pid == ''){
  514. pid = model.getValue(ipt_pid.attribute('ref'));
  515. }else{
  516. //병실내 환자정보 선택시 환자등록번호 setting
  517. model.setValue(ipt_pid.attribute('ref'), pid);
  518. model.refresh();
  519. }
  520. //부위 추가시 등록번호 필수
  521. if(pid == "") {
  522. messageBox("등록번호를 ","C001");
  523. model.setfocus("ipt_pid");
  524. return false;
  525. }else{
  526. //가정간호에서 팝업을 띄운 외래 환자의 경우엔 skip한다.
  527. if(!HC_isHomeCare || (HC_isHomeCare && HC_ioflag == 'I')){
  528. //등록번호에 해당되는 병동, 병실정보를 조회한다.
  529. fGetPidWardInfo(pid, zoneflag);
  530. }
  531. }
  532. fSearchRecInfo();
  533. //조회후 그리드의 발생부위, 발생일자를 머지
  534. fMergeGenrAreaDD();
  535. fSearchGrape("4days");
  536. return true;
  537. }
  538. function fSearchRecInfo() {
  539. //조회조건값 세팅
  540. var pid = model.getValue("/root/cond/pid");
  541. model.makeValue("/root/send/pid", model.getValue("/root/cond/pid")); //등록번호
  542. model.makeValue("/root/send/indd", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd")); //등록번호
  543. model.makeValue("/root/send/cretno", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno")); //등록번호
  544. model.makeValue("/root/send/genrdd", model.getValue("/root/cond/genrdd")); //기준일자(발생일자)
  545. model.makeValue("/root/send/genrtm", model.getValue("/root/cond/genrtm")); //기준시간(발생시간)
  546. model.makeValue("/root/send/stdradio", model.getValue("/root/cond/stdradio")); //조회조건의라디오(전체/종료전(전체)/종료전(최근입력만))
  547. //통증관리 기록 조회
  548. model.removenode('/root/main/detlgrup');
  549. if(submit('TRMNW04802')){
  550. //그리드변경시 update상태파악위한 노드백업
  551. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  552. }
  553. }
  554. /**
  555. * @group :
  556. * @ver : 2008.05.28
  557. * @by : dhkim
  558. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  559. * @type : function
  560. * @access : public
  561. * @desc : 조회후 발생부위, 방향,원인 가 같으면 머지한다.
  562. * @param :
  563. * @return :
  564. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  565. */
  566. function fMergeGenrAreaDD(){
  567. grd_detlgrup.mergeCol(grd_detlgrup.colRef("obspartnm")) = true;
  568. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cause")) = true;
  569. grd_detlgrup.mergeCol(grd_detlgrup.colRef("direcnm")) = true;
  570. grd_detlgrup.mergeCol(grd_detlgrup.colRef("flag")) = false;
  571. grd_detlgrup.mergeCol(grd_detlgrup.colRef("recdd")) = false;
  572. grd_detlgrup.mergeCol(grd_detlgrup.colRef("rectm")) = false;
  573. grd_detlgrup.mergeCol(grd_detlgrup.colRef("symptomid")) = false;
  574. grd_detlgrup.mergeCol(grd_detlgrup.colRef("freq")) = false;
  575. grd_detlgrup.mergeCol(grd_detlgrup.colRef("paingb")) = false;
  576. grd_detlgrup.mergeCol(grd_detlgrup.colRef("paingbid")) = false;
  577. grd_detlgrup.mergeCol(grd_detlgrup.colRef("term")) = false;
  578. // 기간 정보 추가
  579. grd_detlgrup.mergeCol(grd_detlgrup.colRef("termtm")) = false;
  580. grd_detlgrup.mergeCol(grd_detlgrup.colRef("termth")) = false;
  581. grd_detlgrup.mergeCol(grd_detlgrup.colRef("termdd")) = false;
  582. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt")) = false;
  583. grd_detlgrup.mergeCol(grd_detlgrup.colRef("resn")) = false;
  584. grd_detlgrup.mergeCol(grd_detlgrup.colRef("arbitration")) = false;
  585. grd_detlgrup.mergeCol(grd_detlgrup.colRef("valu")) = false;
  586. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pid")) = false;
  587. grd_detlgrup.mergeCol(grd_detlgrup.colRef("instcd")) = false;
  588. grd_detlgrup.mergeCol(grd_detlgrup.colRef("obsrecseq")) = false;
  589. grd_detlgrup.mergeCol(grd_detlgrup.colRef("direcid")) = false;
  590. grd_detlgrup.mergeCol(grd_detlgrup.colRef("causeid")) = false;
  591. grd_detlgrup.mergeCol(grd_detlgrup.colRef("symptom")) = false;
  592. grd_detlgrup.mergeCol(grd_detlgrup.colRef("grupcd")) = false;
  593. grd_detlgrup.mergeCol(grd_detlgrup.colRef("sel")) = false;
  594. grd_detlgrup.mergeCol(grd_detlgrup.colRef("obspartid")) = false;
  595. grd_detlgrup.mergeCol(grd_detlgrup.colRef("freqid")) = false;
  596. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pntid")) = false;
  597. grd_detlgrup.mergeCol(grd_detlgrup.colRef("lastupdtrid")) = false;
  598. grd_detlgrup.mergeCol(grd_detlgrup.colRef("tool")) = false;
  599. grd_detlgrup.mergeCol(grd_detlgrup.colRef("toolid")) = false;
  600. //약물중재, 비약물중재 컬럼추가_20110414_SMY
  601. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt1")) = false;
  602. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt2")) = false;
  603. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt3")) = false;
  604. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt4")) = false;
  605. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt5")) = false;
  606. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps1")) = false;
  607. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps2")) = false;
  608. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps3")) = false;
  609. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps4")) = false;
  610. grd_detlgrup.mergeCol(grd_detlgrup.colRef("drugarbt")) = false;
  611. grd_detlgrup.mergeCol(grd_detlgrup.colRef("nondrugarbt")) = false;
  612. grd_detlgrup.mergeCol(grd_detlgrup.colRef("nondrugarbtid"))= false;
  613. }
  614. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  615. //+++++++++++++++++++++++++++++++++++++++++++ 조회관련 펑션 모음 끝 ++++++++++++++++++++++++++++++++++++++++++++++//
  616. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  617. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  618. //+++++++++++++++++++++++++++++++ 욕창관련 팝업호출관련 펑션모음 시작 ++++++++++++++++++++++++++++++++++++++++++++++//
  619. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  620. /////////////////팝업 오픈 시작////////////////////
  621. /**
  622. * @group :
  623. * @ver : 2008.05.28
  624. * @by : dhkim
  625. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  626. * @type : function
  627. * @access : public
  628. * @desc : 첨부파일팝업을 호출
  629. * @param :
  630. * @return :
  631. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  632. */
  633. function fOpenFilePopup(){
  634. var iRow = grd_detlgrup.row;
  635. var cdColIdx = 0;
  636. var mergeyn = 0;
  637. var pid = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/pid');
  638. var obsrecseq = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obsrecseq');
  639. var grupcd = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/grupcd');
  640. var stat = '';
  641. for(var i = 2 ; i < grd_detlgrup.rows; i++){
  642. stat = model.getValue(xBedsoreGridPath + '[' + (i - 1) + ']/stat');
  643. if(stat != '-'){
  644. return;
  645. }
  646. }
  647. if(obsrecseq != ''){
  648. setParameter('pid', pid);
  649. setParameter('grupcd', grupcd);
  650. setParameter('obsrecseq', obsrecseq);
  651. modal('SPMNW04703', 100, 100);
  652. fSearch();
  653. }else{
  654. return ;
  655. }
  656. }
  657. /**
  658. * @group :
  659. * @ver : 2008.08.08
  660. * @by : dhkim
  661. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  662. * @desc : undermining팝업 호출
  663. * @type : function
  664. * @access : public
  665. * @param :
  666. * @return :
  667. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  668. */
  669. function fPopupUndermining(){
  670. var iRow = grd_detlgrup.row;
  671. var cdColIdx = 0;
  672. var mergeyn = 0;
  673. var pid = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/pid');
  674. var obsrecseq = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obsrecseq');
  675. var grupcd = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/grupcd');
  676. var stat = '';
  677. for(var i = 2 ; i < grd_detlgrup.rows; i++){
  678. stat = model.getValue(xBedsoreGridPath + '[' + (i - 1) + ']/stat');
  679. if(stat != '-'){
  680. return;
  681. }
  682. }
  683. if(obsrecseq != ''){
  684. setParameter('pid', pid);
  685. setParameter('grupcd', grupcd);
  686. setParameter('obsrecseq', obsrecseq);
  687. modal('SPMNW04701', 100, 100);
  688. fSearch();
  689. }else{
  690. return ;
  691. }
  692. }
  693. /**
  694. * @group :
  695. * @ver : 2008.05.28
  696. * @by : dhkim
  697. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  698. * @type : function
  699. * @access : public
  700. * @desc : 욕창발생부위 팝업호출
  701. * @param :
  702. * @return :
  703. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  704. */
  705. function fPopupBedSoreImg(){
  706. var iRow = grd_detlgrup.row;
  707. var iCol = grd_detlgrup.col;
  708. var obsrecseq = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/obsrecseq");
  709. //팝업창에 부위 값이 있으면 기존값 셋팅
  710. //이미저장되어있으면 수정하지 못하도록 확인버튼을 막아주는 flag를 set한다.
  711. if(grd_detlgrup.textmatrix(iRow,2) != ""){
  712. setParameter("partall", grd_detlgrup.textmatrix(iRow,3));
  713. if(obsrecseq > 0){
  714. setParameter('editable', 'f');
  715. }
  716. }else{
  717. setParameter('editable', 't');
  718. }
  719. // 환자 기록부분 선택 팝업
  720. modal("SMMNW04701",1, event.screenX-200, event.screenY+50); //이미지호출
  721. //팝업에서 아무것도 선택하지 않고 close를 눌렀을때..
  722. if( getParameter("returnnull") == "close" ){
  723. return ;
  724. } else {
  725. //욕창발생부위 값을 grid에 set
  726. var retStr = getParameter('retStr');
  727. model.setValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obspartnm', retStr);
  728. //그리드 상태값 변경
  729. var stat = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat");
  730. if(stat != "i") {
  731. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat","u");
  732. } else {
  733. //욕창발생부위의 추가시 해당 부위에 대해
  734. //동일한 발생부위+발생일자+발생시간+원인의 '종료'가 없으면
  735. //그 부위를 추가할수 없도록 메세지 리턴
  736. if(grd_detlgrup.rows > 3){
  737. var returnArr = fIsExistEndData(grd_detlgrup.row, true);
  738. if(returnArr[3] != null && !returnArr[3]){
  739. messageBox('선택하신 발생부위는 이미 등록되어 있으며, 종료된 사정이 아니므로 재등록 하실 수 ', 'I004');
  740. model.setValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obspartnm', '');
  741. model.refresh();
  742. return ;
  743. }
  744. }
  745. }
  746. }
  747. }
  748. /**
  749. * @group :
  750. * @ver : 2008.05.28
  751. * @by : dhkim
  752. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  753. * @desc : 통증기준자료팝업 호출
  754. * @type : function
  755. * @access : public
  756. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  757. */
  758. function fPopupBedSoreData(iRow){
  759. //alert("팝업 테스트");
  760. // Main Data -> popup 으로
  761. //--------------------------------------------------------------
  762. // Update or Insert 확인 (Parameter= Upflag)
  763. //--------------------------------------------------------------
  764. setParameter("Upflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/lastupdtrid"));//기록자
  765. setParameter("Gubnflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/flag")); //구분
  766. var part = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartid") ; //통증부위ID
  767. setParameter("SPMNW04800_PARAM1", part);
  768. var partnm= model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartnm") ; //통증부위명
  769. setParameter("SPMNW04800_PARAMOBSDATA",partnm);
  770. setParameter("SPMNW04800_ETC",model.getValue("/root/main/etc/partnm"));
  771. var part2 = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcid") ; //방향ID
  772. setParameter("SPMNW04800_PARAM2", part2);
  773. var partnm2=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcnm") ; //방향명
  774. setParameter("SPMNW04800_PARAMDIRDATA",partnm2);
  775. setParameter("SPMNW04800_ETC2",model.getValue("/root/main/etc/catenm"));
  776. var part3=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/causeid") ; //원인ID
  777. setParameter("SPMNW04800_PARAM3", part3);
  778. setParameter("SPMNW04800_ETC3",model.getValue("/root/main/etc/sympnm"));
  779. var partnm4=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cause") ; //원인명
  780. setParameter("SPMNW04800_PARAMCAUDATA", partnm4);
  781. var part5=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptomid") ; //통증양상ID
  782. setParameter("SPMNW04800_PARAM4", part5);
  783. var partnm6=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptom") ; //통증양상명칭
  784. setParameter("SPMNW04800_PARAMSYMDATA", partnm6);
  785. var part7=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freqid") ; //빈도ID
  786. setParameter("SPMNW04800_PARAM5", part7);
  787. var partnm8=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freq") ; //빈도
  788. setParameter("SPMNW04800_PARAMFREQDATA", partnm8);
  789. var part11=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/toolid") ; //사정도구ID
  790. setParameter("SPMNW04800_PARAM7", part11);
  791. var partnm12=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/tool") ; //사정도구
  792. setParameter("SPMNW04800_PARAMTOOLDATA", partnm12);
  793. var part9=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pntid") ; //통증점수ID
  794. setParameter("SPMNW04800_PARAM6", part9);
  795. var partnm10=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt") ; //통증점수
  796. setParameter("SPMNW04800_PARAMPNTDATA", partnm10);
  797. var part9=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/paingbid") ; //통증발생구분ID
  798. setParameter("SPMNW04800_PARAM9", part9);
  799. if(iRow >1 && part11!="" && model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/stat") =="i"){ //동일 통증 부위에 대한 기록내역 있는 경우 이전 사정도구 default check
  800. var part11_1 =model.getValue("/root/main/detlgrup/detlgruplist" + "[" + (iRow-1) + "]/toolid") ; //사정도구ID
  801. setParameter("SPMNW04800_PARAM7", part11_1);
  802. }
  803. //비약물중재 추가_20110418_SMY
  804. var part17 = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbtid") ; //비약물중재ID
  805. setParameter("SPMNW04800_PARAM17", part17);
  806. var partnm18=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbt") ; //비약물중재명
  807. setParameter("SPMNW04800_PARAMNONDRUGDATA",partnm18);
  808. setParameter("SPMNW04800_ETC4",model.getValue("/root/main/etc/nondrugnm"));
  809. //통증점수상세추가_20110418_SMY
  810. var partptn1=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt1") ;
  811. setParameter("SPMNW04800_PARAMPNT1DATA", partptn1);
  812. var partptn2=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt2") ;
  813. setParameter("SPMNW04800_PARAMPNT2DATA", partptn2);
  814. var partptn3=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt3") ;
  815. setParameter("SPMNW04800_PARAMPNT3DATA", partptn3);
  816. var partptn4=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt4") ;
  817. setParameter("SPMNW04800_PARAMPNT4DATA", partptn4);
  818. var partptn5=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt5") ;
  819. setParameter("SPMNW04800_PARAMPNT5DATA", partptn5);
  820. //통증점수cnps상세추가_20150202
  821. var partcnps1=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps1") ;
  822. setParameter("SPMNW04800_PARAMCNPS1DATA", partcnps1);
  823. var partcnps2=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps2") ;
  824. setParameter("SPMNW04800_PARAMCNPS2DATA", partcnps2);
  825. var partcnps3=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps3") ;
  826. setParameter("SPMNW04800_PARAMCNPS3DATA", partcnps3);
  827. var partcnps4=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps4") ;
  828. setParameter("SPMNW04800_PARAMCNPS4DATA", partcnps4);
  829. var termtm=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termtm") ;
  830. setParameter("SPMNW04800_PARAMTERMTMDATA", termtm);
  831. var termth=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termth") ;
  832. setParameter("SPMNW04800_PARAMTERMTHDATA", termth);
  833. var termdd=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termdd") ;
  834. setParameter("SPMNW04800_PARAMTERMDDDATA", termdd);
  835. modal("SPMNW04802",1, event.screenX-200, event.screenY+50); //기준자료호출
  836. // popup Data--> Main Data
  837. var flg = getParameter("SMMNW04800_PARAM");
  838. //alert("flg : " + flg);
  839. if(flg == "Y") {
  840. // 통증부위
  841. var part1 = getParameter("SMMNW04800_PARAM1");
  842. model.setValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartnm", part1);
  843. var part2 = getParameter("SMMNW04800_PARAM2");
  844. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartid", part2);
  845. // 통증방향
  846. var part3=getParameter("SMMNW04800_PARAM3");
  847. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcnm", part3);
  848. var part4=getParameter("SMMNW04800_PARAM4");
  849. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcid", part4);
  850. //통증원인
  851. var part5=getParameter("SMMNW04800_PARAM5");
  852. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cause", part5);
  853. var part6=getParameter("SMMNW04800_PARAM6");
  854. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/causeid", part6);
  855. //양상
  856. var part7=getParameter("SMMNW04800_PARAM7");
  857. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptom", part7);
  858. var part8=getParameter("SMMNW04800_PARAM8");
  859. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptomid", part8);
  860. //빈도
  861. var part9=getParameter("SMMNW04800_PARAM9");
  862. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freq", part9);
  863. var part10=getParameter("SMMNW04800_PARAM10");
  864. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freqid", part10);
  865. //점수
  866. var part11=getParameter("SMMNW04800_PARAM11");
  867. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt", part11);
  868. var part12=getParameter("SMMNW04800_PARAM12");
  869. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pntid", part12);
  870. //통증발생구분
  871. var part13=getParameter("SMMNW04800_PARAM13");
  872. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/paingb", part13);
  873. var part14=getParameter("SMMNW04800_PARAM14");
  874. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/paingbid", part14);
  875. //사정도구
  876. var part15=getParameter("SMMNW04800_PARAM15");
  877. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/tool", part15);
  878. var part16=getParameter("SMMNW04800_PARAM16");
  879. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/toolid", part16);
  880. //비약물중재 추가_20110418_SMY
  881. var part17=getParameter("SMMNW04800_PARAM17");
  882. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbt", part17);
  883. var part18=getParameter("SMMNW04800_PARAM18");
  884. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbtid", part18);
  885. //통증점수상세추가_20110418_SMY
  886. var partptn1=getParameter("SMMNW04800_PARAMPnt1");
  887. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt1", partptn1);
  888. var partptn2=getParameter("SMMNW04800_PARAMPnt2");
  889. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt2", partptn2);
  890. var partptn3=getParameter("SMMNW04800_PARAMPnt3");
  891. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt3", partptn3);
  892. var partptn4=getParameter("SMMNW04800_PARAMPnt4");
  893. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt4", partptn4);
  894. var partptn5=getParameter("SMMNW04800_PARAMPnt5");
  895. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt5", partptn5);
  896. var partcnps1=getParameter("SMMNW04800_PARAMCNPS1");
  897. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps1", partcnps1);
  898. var partcnps2=getParameter("SMMNW04800_PARAMCNPS2");
  899. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps2", partcnps2);
  900. var partcnps3=getParameter("SMMNW04800_PARAMCNPS3");
  901. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps3", partcnps3);
  902. var partcnps4=getParameter("SMMNW04800_PARAMCNPS4");
  903. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps4", partcnps4);
  904. var parttermtm=getParameter("SMMNW04800_PARAMTERMTM");
  905. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termtm", parttermtm);
  906. var parttermth=getParameter("SMMNW04800_PARAMTERMTH");
  907. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termth", parttermth);
  908. var parttermdd=getParameter("SMMNW04800_PARAMTERMDD");
  909. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termdd", parttermdd);
  910. var partetc=getParameter("SMMNW04800_ETC");
  911. model.makeValue("/root/main/etc/partnm",partetc);
  912. var partetc2=getParameter("SMMNW04800_ETC2");
  913. model.makeValue("/root/main/etc/catenm",partetc2);
  914. var partetc3=getParameter("SMMNW04800_ETC3");
  915. model.makeValue("/root/main/etc/sympnm",partetc3);
  916. var partetc4=getParameter("SMMNW04800_ETC4");
  917. model.makeValue("/root/main/etc/nondrugnm",partetc4);
  918. //----------------------------------------------------------------------
  919. var upchk=getParameter("SMMNW04800_PARAUPFLAG");
  920. if (upchk!='') {
  921. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat","u");
  922. }
  923. //------------------------------------------
  924. }
  925. }
  926. /////////////////팝업데이터 세팅 시작////////////////////
  927. /**
  928. * @group :
  929. * @ver : 2008.08.08
  930. * @by : dhkim
  931. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  932. * @desc :
  933. * cause, causeid,
  934. * stage, stageid,
  935. * color, colorid,
  936. * state, stateid,
  937. * amount, amountid,
  938. * symptom, symptomid,
  939. * dressing, dressingid
  940. * @type : function
  941. * @access : public
  942. * @param :
  943. * @return :
  944. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  945. */
  946. function fSetPopupData(iRow, str) {
  947. var cd;
  948. var nm = '';
  949. // cd = model.getValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str + 'id');//기존저장되어있던 코드값 ;
  950. // nm = model.getValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str); //기존저장되어있던 명칭값 ;
  951. cd = model.getValue(xBedsoreGridPath+'['+(iRow)+']/' + str + 'id');//기존저장되어있던 코드값 ;
  952. nm = model.getValue(xBedsoreGridPath+'['+(iRow)+']/' + str); //기존저장되어있던 명칭값 ;
  953. if(cd != '') {
  954. setParameter(str + "cdnm", "");
  955. setParameter(str + "cd", "");
  956. setParameter(str + "cdid", cd);
  957. //기타가 선택되어진 상태일때 freetext를 파라메터로 set한다.
  958. /** if(nm.indexOf('기타') > -1){
  959. var etcStr = nm.split(')')[0].split('(')[1];
  960. setParameter(str + 'EtcExist', true);
  961. setParameter(str + 'EtcStr', etcStr);
  962. }
  963. if(str == "dressing") {
  964. setParameter("dressingStr", nm);
  965. }
  966. */
  967. }
  968. }
  969. /**
  970. * 원인, 기저부, 상처감염증상,dressing 공통 팝업의 선택결과를 그리드에 세팅
  971. */
  972. function fGetPopupData(iRow, str, retClosParam) {
  973. var retCDParam = '';
  974. var retNMParam = '';
  975. if(retClosParam != "close"){
  976. if(model.getValue(xBedsoreGridPath +"[" + (iRow-1) + "]/stat") != "i") {
  977. model.setValue(xBedsoreGridPath +"[" + (iRow-1) + "]/stat","u");
  978. }
  979. retNMParam = getParameter(str + "cdnm");
  980. retCDParam = getParameter(str +"cd");
  981. } else {
  982. return ;
  983. }
  984. if(str == "stage" || str=="state" || str=="amount") {
  985. model.setValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str, retCDParam) ;
  986. } else {
  987. model.setValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str, retNMParam);
  988. model.setValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str + 'id', retCDParam) ;
  989. }
  990. clearParameter(str + "cdnm");
  991. clearParameter(str + "cd");
  992. clearParameter(str + "cdid");
  993. clearParameter(str + "Str");
  994. clearParameter(str + "etcExist");
  995. clearParameter(str + "etcStr");
  996. }
  997. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  998. //+++++++++++++++++++++++++++++++ 팝업호출관련 펑션모음 종료 ++++++++++++++++++++++++++++++++++++++++++++++//
  999. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1000. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1001. //++++++++++++++++++++++++++++++++++++++++ 저장 관련 펑션 모음 시작 ++++++++++++++++++++++++++++++++++++++++++++++//
  1002. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1003. /**
  1004. * @group :
  1005. * @ver : 2008.05.28
  1006. * @by : dhkim
  1007. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1008. * @type : function
  1009. * @access : public
  1010. * @desc : 저장하기전에 유효성을 체크한다.
  1011. * @param :
  1012. * @return :
  1013. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1014. */
  1015. function fIsValid(){
  1016. //그리드 저장데이터 존재여부 체크(default rows = 2)
  1017. if(grd_detlgrup.rows < 2){
  1018. messageBox("저장할 내역이","I004");
  1019. return false;
  1020. }
  1021. //수정 데이터 존재여부 체크
  1022. var sflag = '';
  1023. for(var i = 1; i < grd_detlgrup.rows; i++){
  1024. sflag = getArrayData(grd_detlgrup.getupdatedataAll("i"), i, 0);
  1025. if(sflag == ''){
  1026. messageBox("신규등록/수정사항이","I004");
  1027. return false;
  1028. }
  1029. }
  1030. for(var i = 1 ; i < grd_detlgrup.rows; i++ ){
  1031. //발생부위 입력여부 체크
  1032. if( model.getValue(xBedsoreGridPath + "[" + (i) + "]/obspartnm") == ""
  1033. || model.getValue(xBedsoreGridPath + "[" + (i) + "]/obspartnm").length <= 0 ) {
  1034. messageBox("통증발생부위는","I003");
  1035. return false;
  1036. }
  1037. if ( getPatientInfoDetail('dschdd') < "99991231"
  1038. && model.getValue(xBedsoreGridPath + "[" + (i) + "]/recdd") > getPatientInfoDetail('dschdd') ){
  1039. messageBox((i) + "번째에 사정일자는 퇴원일 "+getPatientInfoDetail('dschdd')+" 이전이어야 합니다" ,"I007");
  1040. return false;
  1041. }
  1042. //필드값 필수입력여부 체크
  1043. var valiStr = '';
  1044. valiStr += model.getValue(xBedsoreGridPath + '[' + (i) + ']/direcnm'); //방향
  1045. valiStr += model.getValue(xBedsoreGridPath + '[' + (i) + ']/causenm'); //원인
  1046. valiStr += model.getValue(xBedsoreGridPath + '[' + (i) + ']/direcnm'); //원인
  1047. if(valiStr == ''){
  1048. messageBox((i) + "번째에 항목을 1개 이상","C002");
  1049. return false;
  1050. }
  1051. // 16.11.03_사정도구, 통증점수 필수항목 지정_AYS
  1052. if( model.getValue(xBedsoreGridPath + '[' + (i) + ']/tool') == '-'
  1053. || model.getValue(xBedsoreGridPath + '[' + (i) + ']/tool') == ''
  1054. || model.getValue(xBedsoreGridPath + '[' + (i) + ']/pnt') == '-'
  1055. || model.getValue(xBedsoreGridPath + '[' + (i) + ']/pnt') == '') {
  1056. messageBox((i) + "번째 열에 사정도구, 통증점수는 필요항목 입니다.","C");
  1057. return false;
  1058. }
  1059. }
  1060. return true;
  1061. }
  1062. /**
  1063. * @group :
  1064. * @ver :
  1065. * :
  1066. * @by :
  1067. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1068. * @type : function
  1069. * @access : public
  1070. * @desc : 통증기록 저장
  1071. * @param :
  1072. * @return :not used
  1073. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1074. */
  1075. function fSave(){
  1076. if(fIsValid()){
  1077. //저장여부 메세지박스
  1078. if(messageBox("","Q002") != 6)
  1079. return false;
  1080. model.removenode("/root/send/savedata");
  1081. model.makeValue("/root/send/savedata/detlgrup", grd_detlgrup.getupdatedataAll('i'));
  1082. model.makeValue("/root/send/savedata/pid", model.getValue("/root/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1083. if(submit("TXMNW04710")){
  1084. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  1085. fSearch();
  1086. }
  1087. }
  1088. }
  1089. var SIGN_ROW = 0;//for돌때 해당 그리드만 인증데이터로 만들어주기 위해 global variable로 선언
  1090. //인증저장
  1091. function fSignSave(){
  1092. if(fIsValid()){
  1093. var pid = model.getValue("/root/cond/pid");
  1094. var orddd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd");
  1095. var cretno = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno");
  1096. var orddeptcd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddeptcd");
  1097. var orddrid = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddrid");
  1098. var signno = ''; //model.getValue("/root/main/endsummary/endsummaryrecord/signno");
  1099. //var flaglab=model.getValue("/root/main/detlgrup/detlgruplist/
  1100. // 저장 데이터 세팅
  1101. model.removenode("/root/send/savedata");
  1102. //alert( grd_detlgrup.getupdatedataAll('i'));
  1103. model.makeValue("/root/send/savedata/detlgrup", grd_detlgrup.getupdatedataAll('i'));
  1104. //model.makeValue("/root/send/savedata/pid", pid);
  1105. model.refresh();
  1106. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  1107. ViewFunc = "sign";
  1108. //for를 돌면서 각 기록정보의 노드를 복사 한다.
  1109. for(var i = 1; i < grd_detlgrup.rows; i++){
  1110. SIGN_ROW = (i);
  1111. signno = model.getValue(xBedsoreGridPath + '[' + (i) + ']/signno');
  1112. // 인증 로직 호출
  1113. if(Sign.signprocess() == true){
  1114. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
  1115. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1116. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", orddd); // 입원일자(입원,응급)/진료일자(외래)
  1117. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
  1118. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
  1119. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1120. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1121. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1122. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1123. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1124. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "0000001590"); // 각 기록지별 서식코드(0000001590 - 통증간호기록)
  1125. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
  1126. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
  1127. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1128. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1129. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1130. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/screenid", getScreenID());
  1131. //model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/flag", );
  1132. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N");
  1133. } else {
  1134. return ;
  1135. }
  1136. }
  1137. //약물중재 데이터 저장_20110422_SMY
  1138. //model.makeValue("/root/send/savedata/painprcpinfo", model.getValue("/root/main/painprcpinfo"));
  1139. if(submit("TXMNW04810")){
  1140. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  1141. fMakeViewData();
  1142. fSearch("NoChg");
  1143. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  1144. if(eERFLAG == "Y"){
  1145. fgetSelectPid(cmb_erpat);
  1146. }else{
  1147. //-------(20110228) 경북대
  1148. //alert("0");
  1149. fgetSelectPid(cmb_mypatlist);
  1150. //alert("1");
  1151. //-------(20110228) 경북대
  1152. }
  1153. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  1154. var pFlag = null;
  1155. var flag = 'SMMNW04800';
  1156. if(nextyn == "Y") {
  1157. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  1158. if(eERFLAG == "Y"){
  1159. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  1160. fNextSelectErPat(cmb_erpat);
  1161. cmb_erpat.refresh();
  1162. } else{
  1163. //-------(20110228) 경북대
  1164. //alert("3");
  1165. //내환자 조회-간호일지용
  1166. //debugger;
  1167. if (gcurrentpid != "") {
  1168. fGetSettingPatientList(pFlag,flag); //--테스트완료 , XRW를 변경하면됨
  1169. //alert("4");
  1170. var posi = fgetSelectPidNext();
  1171. //alert("5/"+ posi);
  1172. fsetSelectPidNext(cmb_mypatlist,posi);
  1173. //alert("6");
  1174. cmb_mypatlist.refresh();
  1175. }
  1176. }
  1177. } else {
  1178. if(eERFLAG == "Y"){
  1179. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  1180. fNextSelectErPat(cmb_erpat);
  1181. cmb_erpat.refresh();
  1182. } else {
  1183. if (gcurrentpid != "") {
  1184. fGetSettingPatientList(pFlag,flag); //--테스트완료 , XRW를 변경하면됨
  1185. cmb_mypatlist.dispatch("xforms-value-changed");
  1186. }
  1187. }
  1188. }
  1189. }
  1190. }
  1191. }
  1192. // 인증데이터 만들기.
  1193. function fMake_SignData(){
  1194. if (ViewFunc == "sign"){
  1195. // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
  1196. Sign.addnode("/root/cond" );
  1197. Sign.addnode("/root/main/detlgrup/detlgruplist[" + SIGN_ROW + "]");
  1198. Sign.addnode("/root/main/sriusgrup");
  1199. Sign.addnode("/root/main/patinfo/patinfolist");
  1200. var xDeltGrupPath = Sign.XPATH_SIGNINFO + "/detlgruplist[" + SIGN_ROW + "]";
  1201. var flag;
  1202. var stage;
  1203. var state;
  1204. var amount;
  1205. var underangle;
  1206. //구분
  1207. flag = model.getValue(xDeltGrupPath + "/flag");
  1208. if(flag != "") {
  1209. model.setValue(xDeltGrupPath + "/flag", grd_detlgrup.labelMatrix(SIGN_ROW, grd_detlgrup.colRef("flag")));
  1210. }
  1211. }else if (ViewFunc == "view"){
  1212. // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
  1213. Sign.addnode("/root/cond");
  1214. Sign.addnode("/root/viewinfo/viewdetlgrup");
  1215. Sign.addnode("/root/main/sriusgrup");
  1216. Sign.addnode("/root/main/patinfo/patinfolist");
  1217. var xViewDeltGrupPath = Sign.XPATH_SIGNINFO + "/viewdetlgrup";
  1218. var flag;
  1219. for(var i = 1 ; i <= getNodesetCount(xViewDeltGrupPath + "/detlgruplist"); i++) {
  1220. flag = model.getValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag");
  1221. //구분
  1222. if(flag != "") {
  1223. if(flag == "00"){
  1224. model.setValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag", "초기평가");
  1225. }else if(flag == "01"){
  1226. model.setValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag", "재평가");
  1227. }else if(flag == "99"){
  1228. model.setValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag", "종료");
  1229. }
  1230. }
  1231. }
  1232. }
  1233. }
  1234. function fMakeViewData(){
  1235. var pid = model.getValue("/root/cond/pid");
  1236. var indd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd");
  1237. var cretno = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno");
  1238. var orddeptcd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddeptcd");
  1239. var orddrid = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddrid");
  1240. var signno = '';
  1241. //조회조건값 세팅
  1242. model.removenode("/root/send");
  1243. model.makeValue("/root/send/pid", model.getValue("/root/cond/pid")); //등록번호
  1244. model.makeValue("/root/send/indd", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd")); //등록번호
  1245. model.makeValue("/root/send/cretno", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno")); //등록번호
  1246. model.makeValue("/root/send/genrdd", model.getValue("/root/cond/genrdd")); //기준일자(발생일자)
  1247. model.makeValue("/root/send/genrtm", model.getValue("/root/cond/genrtm")); //기준시간(발생시간)
  1248. model.makeValue("/root/send/stdradio", '0'); //조회조건의라디오(전체/종료전(전체)/종료전(최근입력만))
  1249. //통증관리 기록 조회
  1250. model.removenode("/root/main/patinfolist");
  1251. model.removenode("/root/main/detlgrup");
  1252. if(submit('TRMNW04808')){
  1253. // 인증 로직 호출
  1254. ViewFunc = "view";
  1255. if (Sign.signprocess() == true){
  1256. model.makeValue("/root/send/savedata/pid", pid); // 등록번호
  1257. model.makeValue("/root/send/savedata/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1258. model.makeValue("/root/send/savedata/orddd", indd); // 입원일자(입원,응급)/진료일자(외래)
  1259. model.makeValue("/root/send/savedata/signno", signno); // 서명번호
  1260. model.makeValue("/root/send/savedata/cretno" , cretno); // 생성번호
  1261. model.makeValue("/root/send/savedata/recdd", model.getValue("/root/viewinfo/viewdetlgrup/detlgruplist/signrecddmax")); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1262. model.makeValue("/root/send/savedata/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1263. model.makeValue("/root/send/savedata/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1264. model.makeValue("/root/send/savedata/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1265. model.makeValue("/root/send/savedata/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1266. model.makeValue("/root/send/savedata/formcd", "0000001590"); // 각 기록지별 서식코드(0000001590 통증관리(상처)기록)
  1267. model.makeValue("/root/send/savedata/orddeptcd", orddeptcd); // 진료부서코드
  1268. model.makeValue("/root/send/savedata/orddrid" , orddrid); // 진료의사ID
  1269. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1270. model.makeValue("/root/send/savedata/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1271. model.makeValue("/root/send/savedata/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1272. model.makeValue("/root/send/savedata/screenid" , getScreenID());
  1273. model.makeValue("/root/send/savedata/dispyn", "Y");
  1274. } else {
  1275. return ;
  1276. }
  1277. if(submit("TXMNW04813")){
  1278. var chkViewData = model.getValue("/root/temp/SignData/SignInfo/viewdetlgrup/detlgruplist/obspartnm");
  1279. if (chkViewData==""){
  1280. // if(submit("TXMNW04814")) {//TXMNW04813에서 뷰용데이타 모두 지우고 나서 최근기록일자로 insert함.
  1281. // }
  1282. } else {
  1283. }
  1284. }
  1285. //model.removeNodeset("/root/viewinfo"); //***********************************
  1286. //model.makeNode("/root/viewinfo"); //**********************************
  1287. }
  1288. }
  1289. /**
  1290. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1291. * @type : function
  1292. * @access : public
  1293. * @desc :
  1294. * @param :
  1295. * @return : returnArr[0] compareStr string 선택한 '발생부위+발생일자+발생시간+원인'을 그리드의 반복문과 비교한다.
  1296. * returnArr[1] compRow int 반복문 내에서 compareStr과 같은 string의 첫번째 인덱스(발생부위의 가장 하위 row index찾기 위한 초기값)
  1297. * returnArr[2] isAss boolean 해당발생부위의 사정기록 존재여부
  1298. * returnArr[3] isEnd boolean 해당발생부위의 종료기록 존재여부
  1299. * returnArr[4] pid string 등록번호(set parameter)
  1300. * returnArr[5] grupcd string 그룹코드(set parameter)
  1301. * returnArr[6] obspartnm string 발생부위(set parameter)
  1302. * returnArr[7] genrdd string 발생일자(set parameter)
  1303. * returnArr[8] genrtm string 발생시간(set parameter)
  1304. * returnArr[9] cause string 원인 (set parameter)
  1305. * returnArr[10] causeid string 원인코드(set parameter)
  1306. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1307. */
  1308. function fDel(){
  1309. //삭제할 항목이 선택되었는지 여부를 체크
  1310. var delFlag = false;//체크박스 체크여부
  1311. var sel = ''; //체크박스(true/false)
  1312. var stat = ''; //그리드상태(i/u/d)
  1313. var flag = ''; //등록구분 (등록/사정/종료)
  1314. var fileCnt = 0; //첨부파일등록된 갯수
  1315. var returnArr, isEnd, isAss;
  1316. var checkStr; //체크값 (발생부위 + 발생일자 + 발생시간 + 원인)
  1317. var isSvrDel = false;//db에 저장된 데이터 삭제시
  1318. //20080930 retMsg추가
  1319. var retMsg = messageBox('선택하신 통증기록을', 'Q001');
  1320. //20080930 인증추가
  1321. var pid = model.getValue(xBedsoreGridPath + "/pid");
  1322. var orddd = model.getValue(xBedsoreGridPath + "/orddd");
  1323. var cretno = model.getValue(xBedsoreGridPath + "/cretno");
  1324. var orddeptcd = model.getValue(xBedsoreGridPath + "/orddeptcd");
  1325. var orddrid = model.getValue(xBedsoreGridPath + "/orddrid");
  1326. var signno = '';//model.getValue("/root/main/endsummary/endsummaryrecord/signno");
  1327. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  1328. for(var i = 1; i < grd_detlgrup.rows; i++){
  1329. sel = model.getValue(xBedsoreGridPath + "[" + (i) + "]/sel");
  1330. stat = model.getValue(xBedsoreGridPath + "[" + (i) + "]/stat");
  1331. flag = model.getValue(xBedsoreGridPath + "[" + (i) + "]/flag");
  1332. fileCnt = model.getValue(xBedsoreGridPath + "[" + (i) + "]/addfile");
  1333. SIGN_ROW = (i); //20080930
  1334. if(sel == 'true'){
  1335. delFlag = true;
  1336. if(stat == 'i'){
  1337. //체크한 항목이 행추가 (stat:i)상태인 경우 그리드에서 바로 삭제
  1338. grd_detlgrup.deleteRow(i);
  1339. }else{
  1340. isSvrDel = true;
  1341. //종료가 존재하는지 여부를 배열로 리턴
  1342. returnArr = fIsExistEndData(i);
  1343. isAss = returnArr[2];
  1344. isEnd = returnArr[3];
  1345. checkStr = i + '¿' + returnArr[6] + returnArr[13] + returnArr[14] + returnArr[9];
  1346. if(flag == '00' && isAss){
  1347. //선택한 체크박스가 등록상태이고, 해당 발생부위에 사정기록이 존재할때
  1348. //사정기록까지 삭제하겠냐는 메세지 호출해 확인 누르면 해당 그룹 모두 체크 취소누르면 선택 해제
  1349. if(messageBox('선택하신 통증 부위 "'+returnArr[6]+'"의 초기 기록을 삭제하시면 모든 기록이 함께 삭제됩니다.', 'Q001') == 6){
  1350. fCheckSamePart(checkStr);
  1351. }
  1352. }else{
  1353. //상태값을 'd'로 변경
  1354. model.setValue(xBedsoreGridPath + "[" + (i) + "]/stat", 'd');
  1355. grd_detlgrup.addStatus(i, 'delete');
  1356. //20080930 인증추가
  1357. signno = model.getValue(xBedsoreGridPath + '[' + (i) + ']/signno');
  1358. // 인증 로직 호출
  1359. ViewFunc = "sign";
  1360. if(Sign.signprocess() == true){
  1361. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
  1362. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1363. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", orddd); // 입원일자(입원,응급)/진료일자(외래)
  1364. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
  1365. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
  1366. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1367. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1368. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1369. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1370. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1371. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "0000001670"); // 각 기록지별 서식코드(0000001670 - 통증 간호기록)
  1372. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
  1373. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
  1374. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1375. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1376. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1377. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N");
  1378. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/screenid", getScreenID());
  1379. } else {
  1380. return ;
  1381. }
  1382. }
  1383. }
  1384. }
  1385. }
  1386. //선택한 항목이 없을때
  1387. if(!delFlag){
  1388. messageBox('삭제할 항목을', 'C002');
  1389. return;
  1390. }
  1391. //삭제하기전 첨부파일이 있으면 함께 삭제된다는 메세지 출력
  1392. //db에 저장되어 있던 데이터 삭제시(isSvrDel== true)
  1393. //20080930 retMsg추가
  1394. if(isSvrDel == true && retMsg == 7){
  1395. return;
  1396. }
  1397. //삭제 서브미션 호출
  1398. model.removenode("/root/send/savedata");
  1399. model.makeValue("/root/send/savedata/detlgrup", grd_detlgrup.getupdatedata('delete'));
  1400. model.makeValue("/root/send/savedata/pid", model.getValue("/root/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1401. if(submit("TXMNW04810")){
  1402. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  1403. fMakeViewData();
  1404. fSearch("NoChg");
  1405. }
  1406. }
  1407. //선택한 발생부위에 해당되는 모든 그룹을 체크(true)로 변경
  1408. function fCheckSamePart(checkStr){
  1409. var _chkArr = checkStr.split('¿');
  1410. var sRow = _chkArr[0];
  1411. var chkStr = _chkArr[1];
  1412. var _chkStr = '';
  1413. var pid = model.getValue(xBedsoreGridPath + "/pid");
  1414. var orddd = model.getValue(xBedsoreGridPath + "/orddd");
  1415. var cretno = model.getValue(xBedsoreGridPath + "/cretno");
  1416. var orddeptcd = model.getValue(xBedsoreGridPath + "/orddeptcd");
  1417. var orddrid = model.getValue(xBedsoreGridPath + "/orddrid");
  1418. var signno = '';
  1419. for(var i = sRow; i < grd_detlgrup.rows; i++){
  1420. _chkStr = model.getValue(xBedsoreGridPath+ '[' + i + ']/obspartnm');
  1421. _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrdd');
  1422. _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrtm');
  1423. _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/cause');
  1424. if(chkStr == _chkStr){
  1425. model.setValue(xBedsoreGridPath + "[" + i + "]/stat", 'd');
  1426. model.setValue(xBedsoreGridPath + "[" + i + "]/sel", 'true');
  1427. grd_detlgrup.addStatus(i, 'delete');
  1428. //--------------------------------------------------------------
  1429. // model.setValue(xBedsoreGridPath + "[" + (i) + "]/stat", 'd');
  1430. // grd_detlgrup.addStatus(i, 'delete');
  1431. //20080930 인증추가
  1432. signno = model.getValue(xBedsoreGridPath + '[' + (i) + ']/signno');
  1433. // 인증 로직 호출
  1434. ViewFunc = "sign";
  1435. if(Sign.signprocess() == true){
  1436. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
  1437. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1438. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", orddd); // 입원일자(입원,응급)/진료일자(외래)
  1439. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
  1440. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
  1441. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1442. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1443. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1444. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1445. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1446. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "0000001670"); // 각 기록지별 서식코드(0000001670 - 통증 간호기록)
  1447. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
  1448. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
  1449. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1450. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1451. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1452. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N");
  1453. } else {
  1454. return ;
  1455. }
  1456. }
  1457. //--------------------------------------------------------------
  1458. }
  1459. model.refresh();
  1460. }
  1461. //체크 해제하면 update상태를 select상태로 변경한다.
  1462. function fChangeStatus(selRow){
  1463. var isChk = model.getValue(xBedsoreGridPath + "[" + (selRow) + "]/sel");
  1464. if(isChk == 'false'){
  1465. model.setValue(xBedsoreGridPath + "[" + (selRow) + "]/stat", '-');
  1466. grd_detlgrup.removeStatus(selRow, 'update');
  1467. }
  1468. }
  1469. /**
  1470. * @group :
  1471. * @ver : 2007.09.27
  1472. * : 2008.05.28 dhkim 수정
  1473. * @by : 정찬성
  1474. * @---------------------------------------------------
  1475. * @type : function
  1476. * @access : public
  1477. * @desc : 발생부위추가
  1478. * @param :
  1479. * @return :
  1480. * @---------------------------------------------------
  1481. */
  1482. function fAddGenArea(){
  1483. //통증발생부위 추가시 등록번호 필수
  1484. if(model.getValue(ipt_pid.attribute('ref')) == "") {
  1485. messageBox("등록번호를 ","C001");
  1486. model.setfocus("ipt_pid");
  1487. return;
  1488. }
  1489. //발생부위 추가전에 그리드에 row가 없으면 조회후 추가
  1490. if(grd_detlgrup.rows == 1){
  1491. if(!fSearch("NoChg") || model.getValue(ipt_pid.attribute('ref')) == ''){
  1492. messageBox('등록번호를', 'C001');
  1493. return;
  1494. }
  1495. }
  1496. var iRows = grd_detlgrup.rows;
  1497. var iRow = grd_detlgrup.row;
  1498. grd_detlgrup.addRow();
  1499. // 후에 수정해야 할 부분..
  1500. if(iRows < 2){
  1501. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/grupcd","00000001");
  1502. } else if(iRows > 1){
  1503. //grupcd만드는 부분인데.. 별의미없는 것 같음..-_-;;;
  1504. var sRowCnt = grd_detlgrup.rows-grd_detlgrup.fixedrows;
  1505. /* grupcd 현재 화면의 최대값 가져오기 시작 */
  1506. var retVal = "" ;
  1507. for(var i=1; i<= sRowCnt; i++){
  1508. if(model.getValue(xBedsoreGridPath+"["+i+"]/grupcd") ) {
  1509. saveyn = 1 ;
  1510. }
  1511. retVal = Math.max(retVal,model.getValue(xBedsoreGridPath+"["+i+"]/grupcd"));
  1512. }
  1513. retVal = retVal + 1 ;
  1514. retVal = String(retVal) ;
  1515. retVal = fLpad(retVal,8,0);// grupcd 8자리 나머지는 0 으로 매꿈
  1516. /* grupcd 현재 화면의 최대값 가져오기 끝 */
  1517. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/grupcd",retVal);
  1518. }
  1519. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat", "i");
  1520. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pid", model.getValue(ipt_pid.attribute('ref')));
  1521. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/flag", "00");
  1522. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/recdd", getCurrentDate());
  1523. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/rectm", getCurrentDateTime().substring(9,13));
  1524. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/genrdd", getCurrentDate());
  1525. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/genrtm", getCurrentDateTime().substring(9,13));
  1526. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/obspartnm", '-');
  1527. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/direcnm", '-');
  1528. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cause", '-');
  1529. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/symptomid", '-');
  1530. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/freq", '-');
  1531. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/freqid", '-');
  1532. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/term", '-');
  1533. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt", '-');
  1534. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pntid", '-');
  1535. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/resn", '-');
  1536. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/arbitration", '-');
  1537. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/valu", '-');
  1538. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/direcid", '-');
  1539. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/causeid", '-');
  1540. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/symptom", '-');
  1541. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/obspartid", '-');
  1542. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/tool", '-');
  1543. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/toolid", '-');
  1544. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/paingb", '-');
  1545. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/recrnm", getUserName());
  1546. //통증점수상세컬럼 추가_20110414_SMY
  1547. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt1", '-');
  1548. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt2", '-');
  1549. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt3", '-');
  1550. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt4", '-');
  1551. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt5", '-');
  1552. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps1", '-');
  1553. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps2", '-');
  1554. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps3", '-');
  1555. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps4", '-');
  1556. //약물중재, 비약물중재컬럼 분리추가_20110414_SMY
  1557. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/drugarbt", '-');
  1558. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/nondrugarbt", '-');
  1559. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/nondrugarbtid", '-');
  1560. grd_detlgrup.colDisabled(grd_detlgrup.colRef("flag")) = true;
  1561. model.refresh();
  1562. }
  1563. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1564. //++++++++++++++++++++++++++++++++++++++++ 저장 관련 펑션 모음 끝 +++++++++++++++++++++++++++++++++++++++++++++++//
  1565. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1566. /**
  1567. * @group :
  1568. * @ver : 2007.09. 06
  1569. * @by : 정찬성
  1570. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1571. * @type : function
  1572. * @access : public
  1573. * @desc : 왼쪽 자리수 채우기
  1574. * @param :
  1575. * @return :
  1576. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1577. */
  1578. // Left 빈자리 만큼 padStr 을 붙인다.
  1579. function fLpad(src, len, padStr){
  1580. var retStr = "";
  1581. var padCnt = Number(len) - String(src).length;
  1582. for(var i=0;i<padCnt;i++)
  1583. retStr += String(padStr);
  1584. return retStr+src;
  1585. }
  1586. /**
  1587. * @group :
  1588. * @ver : 2007.04.04
  1589. * 2008.06.04 dhkim 수정
  1590. * @by : 정찬성
  1591. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1592. * @type : function
  1593. * @access : public
  1594. * @desc : 그리드내의 mousedown 이벤트 발생시 호출
  1595. * @param :
  1596. * @return :
  1597. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1598. */
  1599. function fMouseDownGridRow(){
  1600. var iDetlGrupRow = grd_detlgrup.row;
  1601. // right Button Click
  1602. if(event.button == 3){
  1603. //데이터 행이 존재할때
  1604. if(grd_detlgrup.rows > grd_detlgrup.fixedrows && grd_detlgrup.isCell(event.target) && grd_detlgrup.mouseRow >= grd_detlgrup.fixedrows){
  1605. window.setPopupMenu(true, "/root/hidden/detlgrup_sameinflevl_popmenu/menu", "name", "func", false);
  1606. }else{
  1607. window.setPopupMenu(false);
  1608. }
  1609. }
  1610. }
  1611. /**
  1612. * @group :
  1613. * @ver : 2007.04.02
  1614. * : 2008.05.28 dhkim 수정
  1615. * @by : 정찬성
  1616. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1617. * @type : function
  1618. * @access : public
  1619. * @desc : 욕창그리드의 xforms-value-changed이벤트 발생시 호출된다.
  1620. * @param :
  1621. * @return :
  1622. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1623. */
  1624. function fChangedGridCol(){
  1625. // var sDetlGrupRow = (grd_detlgrup.row-1);
  1626. var sDetlGrupRow = (grd_detlgrup.row);
  1627. var sDetlGrupBKRow=0;
  1628. var iRow = grd_detlgrup.row;
  1629. var iCol = grd_detlgrup.col;
  1630. // var stat = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat");
  1631. var stat = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat");
  1632. //데이터 변경시 그리드 상태값(stat)을 u상태로 변경한다.
  1633. //sdm
  1634. if(stat == "-"){
  1635. //그리드의 stat update를 위한 비교할 hidden nodelist의 idx찾기
  1636. var obsrecseq = model.getValue(xBedsoreGridPath+"["+sDetlGrupRow+"]/obsrecseq");
  1637. for(var i=1; i<= getNodesetCount(xClsListBKPath); i++){
  1638. if(model.getValue(xClsListBKPath+"["+i+"]/obsrecseq") == obsrecseq){
  1639. sDetlGrupBKRow = i;
  1640. break;
  1641. }
  1642. }
  1643. //체크박스 선택 아닐때 조회해서 hidden에 담아둔 nodelist와 변경된 그리드의 nodelist의 stat를 비교하여 수정상태로 바꿔준다.
  1644. // if(iCol != 9){// 선택시 stat 값 변경 않기
  1645. if(iCol != grd_detlgrup.colRef("sel")) {
  1646. var preUpdatedStr = instance1.selectSingleNode(xClsListBKPath+"["+sDetlGrupBKRow+"]").xml;
  1647. var updatedStr = instance1.selectSingleNode(xBedsoreGridPath+"["+sDetlGrupRow+"]").xml;
  1648. if(updatedStr != preUpdatedStr){
  1649. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat","u");
  1650. }
  1651. //var preUnderAngle = model.getValue(xClsListBKPath+"["+sDetlGrupBKRow+"]/underangle");
  1652. //var updateUnerAngle = model.getValue(xBedsoreGridPath+"["+ sDetlGrupRow +"]/underangle");
  1653. //if(preUnderAngle != updateUnerAngle) {
  1654. // model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat2","u");
  1655. //}
  1656. }
  1657. }
  1658. }
  1659. /**
  1660. * @group :
  1661. * @ver : 2007.09.27
  1662. * : 2008.05.28 dhkim 수정
  1663. * @by : 정찬성
  1664. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1665. * @type : function
  1666. * @access : public
  1667. * @desc : 선택한 부위가 종료된 것이 있으면 종료할 수 없다는 메세지를 출력한다.
  1668. * 선택한 부위가 평가된 것이 없으면 종료할 수 없다는 메세지를 출력한다.
  1669. * 발생부위가 등록/평가만 있으면 해당 발생부위 하위에
  1670. * 구분을 종료로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가한다.
  1671. * @param :
  1672. * @return :
  1673. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1674. */
  1675. function fAddSameLevlItemEnd(){
  1676. fAddSameLevlItem(true);
  1677. return ;
  1678. }
  1679. /**
  1680. * @group :
  1681. * @ver : 2008.05.28
  1682. * @by : dhkim
  1683. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1684. * @type : function
  1685. * @access : public
  1686. * @param : selEndMenu - true이면 오른쪽 메뉴에서 종료를 선택한 상태, false이면 사정을 선택한 상태
  1687. * @return :
  1688. * @desc : 선택한 부위가 종료된 것이 있으면 사정할수 없다는 메세지를 출력한다.
  1689. * 발생부위가 등록/사정만 있으면 해당 발생부위 하위에
  1690. * 구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가한다.
  1691. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1692. */
  1693. function fAddSameLevlItem(selEndMenu){//오른쪽 메뉴에서 사정또는 종료 선택시
  1694. var msgStr = '재평가기록';
  1695. if(selEndMenu){
  1696. msgStr = '종료기록';
  1697. }
  1698. //종료또는 사정기록 존재여부를 리턴받는다.
  1699. var returnArr = fIsExistEndData(grd_detlgrup.row);
  1700. var compareStr = returnArr[0];
  1701. var compRow = returnArr[1];
  1702. var isAss = returnArr[2];
  1703. var isEnd = returnArr[3];
  1704. //종료기록이 있으면 입력할수 없다는 메세지 출력후 리턴
  1705. if(isEnd){
  1706. messageBox('선택하신 부위는 이미 종료된 기록이 있으므로 다시 '+ msgStr +' 하실 수', 'I004');
  1707. return;
  1708. }
  1709. //종료메뉴 선택시 사정기록이 없으면 메세지 출력후 리턴
  1710. if(selEndMenu && !isAss){
  1711. messageBox('선택하신 부위는 평가기록이 없으므로 ' + msgStr + ' 하실 수', 'I004');
  1712. return;
  1713. }
  1714. caption1.value="";
  1715. //해당 발생부위 가장 하위의 그리드에 insertRow을 하기 위해 발생부위 가장 하위row index를 찾는다.
  1716. var addLastRow = 0;
  1717. var _compareStr;
  1718. for(var i = compRow; i < grd_detlgrup.rows; i++){
  1719. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm'); //통증부위명
  1720. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/direcnm') ; //방향명
  1721. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause') ; //원인명
  1722. if(compareStr != _compareStr){
  1723. addLastRow= ( i <= 1 ? grd_detlgrup.row+1 : i-1 );
  1724. break;
  1725. }
  1726. }
  1727. //발생부위가 초기평가/재평가만 있으면 해당 발생부위 하위에 재평가 추가
  1728. //구분을 재평가으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
  1729. if(addLastRow == 0 || addLastRow == grd_detlgrup.rows){
  1730. addLastRow = grd_detlgrup.rows;
  1731. grd_detlgrup.addRow();
  1732. }else{
  1733. grd_detlgrup.insertRow(addLastRow);
  1734. }
  1735. //그리드에 통증부위, 방향, 원인 set한다.
  1736. fSetInsertValue(addLastRow, selEndMenu, returnArr);
  1737. grd_detlgrup.colDisabled(grd_detlgrup.colRef("flag")) = true;;
  1738. model.refresh();
  1739. }
  1740. /**
  1741. * @group :
  1742. * @ver : 2008.05.28
  1743. * @by : dhkim
  1744. * @---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1745. * @type : function
  1746. * @access : public
  1747. * @param : selRow - 선택한 row 인덱스
  1748. * @param : updatePartChk - 통증관리 부위선택시 평가종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
  1749. * @return : returnArr(10) - 배열로 리턴한다.
  1750. * @desc : 선택한 발생부위의 기록에 재평가 또는 종료가 존재하는지 여부를 배열로 리턴한다
  1751. * Array idx value type description
  1752. * --------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1753. * returnArr[0] compareStr string 선택한 '발생부위+발생일자+발생시간+원인'을 그리드의 반복문과 비교한다.
  1754. * returnArr[1] compRow int 반복문 내에서 compareStr과 같은 string의 첫번째 인덱스(발생부위의 가장 하위 row index찾기 위한 초기값)
  1755. * returnArr[2] isAss boolean 해당발생부위의 재평가기록 존재여부
  1756. * returnArr[3] isEnd boolean 해당발생부위의 종료기록 존재여부
  1757. * returnArr[4] pid string 등록번호(set parameter)
  1758. * returnArr[5] grupcd string 그룹코드(set parameter)
  1759. * returnArr[6] obspartnm string 발생부위(set parameter)
  1760. * returnArr[7] direcnm string 방향명(set parameter) //genrdd 발생일자(set parameter)
  1761. * returnArr[8] causenm string 원인명(set parameter) //genrtm 발생시간(set parameter)
  1762. * -- returnArr[9] cause string 원인 (set parameter)
  1763. * -- returnArr[10] causeid string 원인코드(set parameter)
  1764. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1765. */
  1766. function fIsExistEndData(selRow, updatePartChk){
  1767. //발생부위에 대해 종료된 사정인 경우 메세지 출력
  1768. var compareStr, _compareStr, _flag;//비교값 str
  1769. var compRow = 0;
  1770. var isAss ; //사정기록 존재여부
  1771. var isEnd ; //종료기록 존재여부
  1772. var returnArr = new Array(8);
  1773. //선택한 발생부위 비교값
  1774. // var pid = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/pid');
  1775. // var grupcd = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/grupcd');
  1776. // var obspartnm = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/obspartnm');
  1777. // var genrdd = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/direcnm');
  1778. // var genrtm = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/cause');
  1779. var pid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/pid');
  1780. var grupcd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/grupcd');
  1781. var obspartnm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/obspartnm'); //통증부위
  1782. var obspartid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/obspartid'); //통증부위id
  1783. var direcnm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/direcnm'); // 방향
  1784. var direcid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/direcid'); //방향id
  1785. var cause = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/cause'); //원인
  1786. var causeid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/causeid'); //원인id
  1787. var genrdd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrdd');
  1788. var genrtm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrtm');
  1789. //----------------------------------------------------------------------------------------
  1790. //통증관리부위선택시 평가종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
  1791. if(updatePartChk){
  1792. compareStr = obspartnm;
  1793. }else{
  1794. // compareStr = obspartnm + genrdd + genrtm + cause;
  1795. compareStr = obspartnm + direcnm + cause ;
  1796. }
  1797. var obsrecseq = 0;
  1798. //선택한 compareStr과 그리드내의 모든 _compareStr을 비교한다.
  1799. for(var i = 1; i < grd_detlgrup.rows; i++){
  1800. if(selRow != i){
  1801. // _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm');
  1802. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/obspartnm');
  1803. //통증부위선택시 평가종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
  1804. if(!updatePartChk){
  1805. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i) + ']/direcnm');
  1806. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i) + ']/cause');
  1807. // _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause');
  1808. }
  1809. }
  1810. if(compareStr == _compareStr){
  1811. compRow = i;
  1812. _flag = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/flag');
  1813. if(_flag == '99'){//등록구분이 종료(99)
  1814. isEnd = true;
  1815. obsrecseq = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/obsrecseq');
  1816. break;
  1817. }else if(_flag == '01'){//등록구분이 재평가(01)
  1818. isAss = true;
  1819. obsrecseq = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/obsrecseq');
  1820. }else{
  1821. isEnd = false;
  1822. isAss = false;
  1823. }
  1824. }
  1825. }
  1826. //배열을 리턴한다.
  1827. returnArr[0] = compareStr;
  1828. returnArr[1] = compRow;
  1829. returnArr[2] = isAss;
  1830. returnArr[3] = isEnd;
  1831. returnArr[4] = pid ;
  1832. returnArr[5] = grupcd ;
  1833. returnArr[6] = obspartnm ;
  1834. returnArr[7] = direcnm ; //genrdd;
  1835. returnArr[8] = direcid ; //genrdd;
  1836. returnArr[9] = cause ; //genrtm;
  1837. returnArr[10] = causeid ;
  1838. returnArr[11] = obspartid ;
  1839. returnArr[12] = obsrecseq ;
  1840. returnArr[13] = genrdd ;
  1841. returnArr[14] = genrtm ;
  1842. return returnArr;
  1843. }
  1844. /**
  1845. * @group :
  1846. * @ver : 2008.05.28
  1847. * @by : dhkim
  1848. * @----------------------------------------------------------------------------------------------------------------------------------------------
  1849. * @type : function
  1850. * @access : public
  1851. * @param :
  1852. * @return :
  1853. * @desc : 구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
  1854. * @----------------------------------------------------------------------------------------------------------------------------------------------
  1855. */
  1856. function fSetInsertValue(addLastRow, selEndMenu, returnArr){
  1857. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stat', 'i');
  1858. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pid', returnArr[4]);
  1859. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/grupcd', returnArr[5]);
  1860. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/obspartnm', returnArr[6]);
  1861. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/direcnm', returnArr[7]);
  1862. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/direcid', returnArr[8]);
  1863. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cause', returnArr[9]);
  1864. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/causeid', returnArr[10]);
  1865. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/obspartid', returnArr[11]);
  1866. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/obsrecseq', returnArr[12]);
  1867. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrdd', returnArr[13]);
  1868. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrtm', returnArr[14]);
  1869. model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recdd", getCurrentDate());
  1870. model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/rectm", getCurrentDateTime().substring(9,13));
  1871. //------------------------------------------------------------------------------------------
  1872. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/symptomid', '-'); //통증양상
  1873. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/symptom', '-');
  1874. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/freq', '-');
  1875. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/freqid', '-');
  1876. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/term', '-');
  1877. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt', '-');
  1878. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pntid', '-');
  1879. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/resn', '-');
  1880. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/arbitration','-');
  1881. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/valu', '-');
  1882. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/tool', '-');
  1883. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/toolid', '-');
  1884. //----------------------------------------------------------------------------------------
  1885. model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recrnm", getUserName());
  1886. //약물중재, 비약물중재 컬럼추가_20110414_SMY
  1887. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt1', '-');
  1888. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt2', '-');
  1889. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt3', '-');
  1890. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt4', '-');
  1891. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt5', '-');
  1892. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps1', '-');
  1893. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps2', '-');
  1894. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps3', '-');
  1895. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps4', '-');
  1896. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/drugarbt', '-');
  1897. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/nondrugarbt', '-');
  1898. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/nondrugarbtid', '-');
  1899. if(!selEndMenu)
  1900. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/flag', '01');//사정
  1901. else
  1902. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/flag', '99');//종료
  1903. }
  1904. function fAddSameLevlItem111(isEnd){
  1905. var msgStr = '사정기록';
  1906. if(isEnd){
  1907. msgStr = '종료기록';
  1908. }
  1909. //발생부위에 대해 종료된 사정인 경우 메세지 출력
  1910. var compareStr, _compareStr, _flag;//비교값 str
  1911. var pid = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/pid');
  1912. var grupcd = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/grupcd');
  1913. var obspartnm = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/obspartnm');
  1914. var genrdd = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/genrdd');
  1915. var genrtm = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/genrtm');
  1916. var cause = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/cause');
  1917. var causeid = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/causeid');
  1918. var compRow = 0;
  1919. var isAss = false;//사정기록 존재여부
  1920. //선택한 발생부위 비교값
  1921. compareStr = obspartnm + genrdd + genrtm + cause;
  1922. //종료기록이 있으면 메세지 출력후 리턴
  1923. for(var i = 2; i < grd_detlgrup.rows; i++){
  1924. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm');
  1925. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrdd');
  1926. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrtm');
  1927. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause');
  1928. if(compareStr == _compareStr){
  1929. compRow = i;
  1930. _flag = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/flag');
  1931. if(_flag == '99'){
  1932. messageBox('선택하신 부위는 이미 종료된 기록이므로 다시 '+ msgStr +' 하실 수', 'I004');
  1933. return;
  1934. }else if(_flag == '01'){
  1935. isAss = true;
  1936. }
  1937. }
  1938. }
  1939. //종료메뉴 선택시 사정기록이 없으면 메세지 출력후 리턴
  1940. if(isEnd && !isAss){
  1941. messageBox('선택하신 부위는 사정기록이 없으므로 ' + msgStr + ' 하실 수', 'I004');
  1942. return;
  1943. }
  1944. //해당 발생부위 가장 하위 row index찾기
  1945. var addLastRow = 0;
  1946. for(var i = compRow; i < grd_detlgrup.rows; i++){
  1947. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm');
  1948. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrdd');
  1949. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrtm');
  1950. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause');
  1951. if(compareStr != _compareStr){
  1952. addLastRow = i;
  1953. break;
  1954. }
  1955. }
  1956. //발생부위가 등록/사정만 있으면 해당 발생부위 하위에 사정 추가
  1957. //구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
  1958. if(addLastRow == 0){
  1959. addLastRow = grd_detlgrup.rows;
  1960. grd_detlgrup.addRow();
  1961. }else{
  1962. grd_detlgrup.insertRow(addLastRow);
  1963. }
  1964. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/stat', 'i');
  1965. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/pid', pid);
  1966. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/grupcd', grupcd);
  1967. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/obspartnm', obspartnm);
  1968. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/genrdd', genrdd);
  1969. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/genrtm', genrtm);
  1970. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/cause', cause);
  1971. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/causeid', causeid);
  1972. model.setValue(xBedsoreGridPath+ "[" + (addLastRow-1) + "]/recdd", getCurrentDate());
  1973. model.setValue(xBedsoreGridPath+ "[" + (addLastRow-1) + "]/rectm", getCurrentDateTime().substring(9,13));
  1974. if(!isEnd)
  1975. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/flag', '01');//사정
  1976. else
  1977. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/flag', '99');//종료
  1978. model.refresh();
  1979. }
  1980. /**
  1981. * @group :
  1982. * @ver : 2011.03.16
  1983. * @by : 안도영
  1984. * @---------------------------------------------------
  1985. * @type : function
  1986. * @access : public
  1987. * @desc : 구역정보 조회 (응급실인 경우)
  1988. * @param :
  1989. * @param :
  1990. * @return :
  1991. * @---------------------------------------------------
  1992. */
  1993. function fGetWardChngInfo(initFlag, wardCd, sectionCd){
  1994. if(initFlag=="Y") {
  1995. var sWardCD = wardCd;
  1996. }
  1997. else{
  1998. var sWardCD = model.getValue("/root/cond/wardcd");
  1999. }
  2000. if ( sWardCD == eERDEPTCD) {
  2001. eERFLAG = "Y";
  2002. }else{
  2003. eERFLAG = "";
  2004. }
  2005. //응급실인 경우 구역정보 추가조회
  2006. if(eERFLAG == "Y"){ // 응급실
  2007. fGetZoneList();
  2008. //copyNodeset("/root/temp2/zoneinfo", "/root/temp/zoneinfo");
  2009. ctn_room.attribute("text") = "구 역 :";
  2010. cmb_roomcd.visible = "false";
  2011. cmb_erpat.visible = "true";
  2012. cmb_patientnm.visible = "false";
  2013. cmb_zone.visible = "true";
  2014. //cmb_mypatlist.visible = "false";
  2015. //cap_mypatlist.visible = "false";
  2016. ipt_pid.attribute("left") = 755; // 위치 변경
  2017. ipt_pid.attribute("top") = 15;
  2018. btn_patSearch.attribute("left") = 830; // 위치 변경
  2019. btn_patSearch.attribute("top") = 16; // 위치 변경
  2020. cap_mypatlist.attribute("left") = 645;
  2021. cap_mypatlist.attribute("top") = 40;
  2022. cmb_mypatlist.attribute("left") = 755;
  2023. cmb_mypatlist.attribute("top") = 40;
  2024. if(initFlag=="Y"){ // 처음 상단 정보로 화면 열릴 때
  2025. model.setValue("/root/cond/zonecd", (sectionCd == "") ? "-" : sectionCd);
  2026. }else{
  2027. model.setValue("/root/cond/zonecd", "-"); // 'All'로 default
  2028. }
  2029. }else{
  2030. ctn_room.attribute("text") = "병 실 :";
  2031. cmb_roomcd.visible = "true";
  2032. cmb_erpat.visible = "false";
  2033. cmb_patientnm.visible = "true"
  2034. cmb_zone.visible = "false";
  2035. //cmb_mypatlist.visible = "true";
  2036. //cap_mypatlist.visible = "true";
  2037. ipt_pid.attribute("left") = 669; // 기존 위치
  2038. ipt_pid.attribute("top") = 15;
  2039. btn_patSearch.attribute("left") = 747; // 기존 위치
  2040. btn_patSearch.attribute("top") = 16;
  2041. cap_mypatlist.attribute("left") = 770;
  2042. cap_mypatlist.attribute("top") = 15;
  2043. cmb_mypatlist.attribute("left") = 880;
  2044. cmb_mypatlist.attribute("top") = 15;
  2045. model.setValue("/root/cond/zonecd", "");
  2046. }
  2047. ctn_room.refresh();
  2048. cmb_zone.refresh();
  2049. cmb_roomcd.refresh();
  2050. cmb_erpat.refresh();
  2051. cmb_patientnm.refresh();
  2052. }
  2053. /**
  2054. * @group :
  2055. * @ver : 2011.04.19
  2056. * @by : SMY
  2057. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2058. * @desc : 약물중재 클릭시 처방리스트 팝업 호출
  2059. * @type : function
  2060. * @access : public
  2061. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2062. */
  2063. function fPopupPrcpData(iRow){
  2064. // Main Data -> popup 으로
  2065. //--------------------------------------------------------------
  2066. // Update or Insert 확인 (Parameter= Upflag)
  2067. //--------------------------------------------------------------
  2068. setParameter("Upflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/lastupdtrid"));//기록자
  2069. setParameter("Gubnflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/flag")); //구분
  2070. var param_recdd = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/recdd"); //사정일자
  2071. setParameter("SPMNW13900_PARAM_RECDD", param_recdd);
  2072. var param_pid = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pid");
  2073. setParameter("SPMNW13900_PARAM_PID", param_pid);
  2074. var param_indd = getPatientInfoDetail('indd');
  2075. setParameter("SPMNW13900_PARAM_INDD", param_indd);
  2076. var param_cretno = getPatientInfoDetail('cretno');
  2077. setParameter("SPMNW13900_PARAM_CRETNO", param_cretno);
  2078. //var param_painprcpinfo = model.getValue("/root/main/painprcpinfo"); //통증처방기준자료
  2079. // setParameter("SPMNW13900_PARAM_PAINPRCPINFO", param_painprcpinfo);
  2080. // 통증관리기록순번 추가
  2081. var param_obsrecseq = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obsrecseq");
  2082. setParameter("SPMNW13900_PARAM_OBSRECSEQ", param_obsrecseq);
  2083. // 그룹코드 추가
  2084. var param_grupcd = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/grupcd");
  2085. setParameter("SPMNW13900_PARAM_GRUPCD", param_grupcd);
  2086. //modal("SPMNW13900",1, event.screenX-200, event.screenY+50); //처방리스트호출
  2087. window.load("../xrw/SPMNW13900_통증관리처방기준자료팝업.xrw","modal", "SPMNW13900", "left: event.screenX-200; top:event.screenY+50; sysmenu:hidden;");
  2088. var flg = getParameter("SMMNW04800_PARAM");
  2089. if(flg == "Y") {
  2090. var param_painprcpinfo = getParameter("SPMNW13900_PARAMPainPrcpInfo");
  2091. //model.setValue("/root/main/painprcpinfo", param_painprcpinfo);
  2092. model.setValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/painprcpinfo", param_painprcpinfo);
  2093. var param_painprcpnm = getParameter("SPMNW13900_PARAMPainPrcpNm");
  2094. model.setValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/drugarbt", param_painprcpnm);
  2095. var upchk=getParameter("SPMNW13900_PARAUPFLAG");
  2096. if (upchk!='') {
  2097. model.setValue(xBedsoreGridPath+"["+(iRow)+"]/stat","u");
  2098. }
  2099. }
  2100. }
  2101. function fSearch2(zoneflag){
  2102. var pid = model.getValue(cmb_mypatlist.attribute('ref'));
  2103. if(pid == ''){
  2104. pid = model.getValue(ipt_pid.attribute('ref'));
  2105. }else{
  2106. //병실내 환자정보 선택시 환자등록번호 setting
  2107. model.setValue(ipt_pid.attribute('ref'), pid);
  2108. model.refresh();
  2109. }
  2110. //부위 추가시 등록번호 필수
  2111. if(pid == "") {
  2112. messageBox("등록번호를 ","C001");
  2113. model.setfocus("ipt_pid");
  2114. return false;
  2115. }else{
  2116. //가정간호에서 팝업을 띄운 외래 환자의 경우엔 skip한다.
  2117. if(!HC_isHomeCare || (HC_isHomeCare && HC_ioflag == 'I')){
  2118. //등록번호에 해당되는 병동, 병실정보를 조회한다.
  2119. fGetPidWardInfo(pid, zoneflag);
  2120. }
  2121. }
  2122. fSearchRecInfo();
  2123. //조회후 그리드의 발생부위, 발생일자를 머지
  2124. fMergeGenrAreaDD();
  2125. return true;
  2126. }
  2127. /* -----(20110228) 경북대 ------------------------ */
  2128. // 현재 위치 인지하기
  2129. function fgetSelectPid(sobj){
  2130. //현재위치찾기
  2131. //alert("sobj.value:" + sobj.value);
  2132. if (sobj.value != "") {
  2133. gcurrentpid = sobj.value;
  2134. } else {
  2135. gcurrentpid = "";
  2136. }
  2137. //alert("gcurrentpid:" + gcurrentpid);
  2138. }
  2139. // 이전 저장위치이전 다음으로 조회시키기
  2140. function fgetSelectPidNext(){
  2141. var tempPid = "";
  2142. var sposition = 0;
  2143. if ( gcurrentpid != "") {
  2144. for(i = 1; i <= getNodesetCount(gpidPath); i++ ) {
  2145. tempPid = model.getValue(gpidPath + "["+ i +"]/pid");
  2146. //alert(gcurrentpid + "/" + tempPid);
  2147. //gcurrentpid 전역변수
  2148. if (gcurrentpid == tempPid) {
  2149. sposition = i;
  2150. break;
  2151. //i = getNodesetCount(gpidPath) + 1;
  2152. }
  2153. }
  2154. }
  2155. return sposition;
  2156. }
  2157. function fNextSelectErPat(sobj){
  2158. var tempPid = "";
  2159. var sPosition = 0;
  2160. if ( gcurrentpid != "") {
  2161. for(i = 1; i <= getNodesetCount(erPatPidPath); i++ ) {
  2162. tempPid = model.getValue(erPatPidPath + "["+ i +"]/pid");
  2163. if (gcurrentpid == tempPid) {
  2164. sPosition = i;
  2165. break;
  2166. }
  2167. }
  2168. }
  2169. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  2170. if(nextyn == "Y") {
  2171. if(sPosition == getNodesetCount(erPatPidPath)){
  2172. sobj.select(0); // 마지막 환자인 경우 처음 환자로 재 선택
  2173. }else{
  2174. sobj.select(sPosition);
  2175. }
  2176. } else {
  2177. sobj.select(sPosition-1);
  2178. }
  2179. }
  2180. // 재설정하기
  2181. function fsetSelectPidNext(sobj,sposition){
  2182. // 중환자실 환자인 경우 저장 후 현재 환자 재선택 (2011.03.25 Ahn)
  2183. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  2184. var sWardCD = model.getValue("/root/cond/wardcd");
  2185. if(fIsICUPatient(sWardCD)){
  2186. sobj.select(parseInt(sposition)-1);
  2187. }else{
  2188. if ( getNodesetCount(gpidPath) >= sposition ) {
  2189. if(nextyn == "Y") {
  2190. sobj.select(sposition);
  2191. } else {
  2192. sobj.select(sposition-1);
  2193. }
  2194. //alert("1");
  2195. } else {
  2196. //콤보믄 0부터시작
  2197. //instance는 1부터시작
  2198. sobj.select(0);
  2199. //alert("2");
  2200. }
  2201. }
  2202. }
  2203. /**
  2204. * @author : dhkim
  2205. * @create : 20080827
  2206. * @desc : 해당환자가 중환자실 환자인가?
  2207. * @return : boolean (true/false)
  2208. */
  2209. function fIsICUPatient(wardcd){
  2210. var ret = false;//icu 환자인지 여부 디폴트
  2211. /*
  2212. for(var i = 0; i < icuArr.length ; i++){
  2213. if(wardcd == icuArr[i]){
  2214. ret = true;
  2215. return true;
  2216. }
  2217. }
  2218. */
  2219. //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
  2220. for(i = 1; i <= getNodesetCount("/root/tmp/icucdgrup/icucdgruplist"); i++){
  2221. if(wardcd == model.getValue("/root/tmp/icucdgrup/icucdgruplist[" + i + "]/wardcd")
  2222. && model.getValue("/root/tmp/icucdgrup/icucdgruplist[" + i + "]/clsflag") == '4'){
  2223. ret = true;
  2224. return true;
  2225. }
  2226. }
  2227. return ret;
  2228. }
  2229. /***********************************************************************************************************************************************************/
  2230. /****************************************************** 기록에서 사용하는 펑션 종료 ************************************************************/
  2231. /***********************************************************************************************************************************************************/
  2232. /**
  2233. * @group :
  2234. * @ver : 2008.10.14
  2235. * @by : 양천덕
  2236. * @---------------------------------------------------
  2237. * @type : function
  2238. * @access : public
  2239. * @desc : 사용자별 조회 조건 변경
  2240. * @param :
  2241. * @return :
  2242. * @---------------------------------------------------
  2243. */
  2244. /*
  2245. function fSettingUserTypeSrch(pFlag){
  2246. if( pFlag == "1"){
  2247. grp_outpatinfo.visible = false;
  2248. grp_oderinpatinfo.visible = false;
  2249. grp_inpatinfo.visible = true;
  2250. }else{
  2251. grp_outpatinfo.visible = false;
  2252. grp_oderinpatinfo.visible = true;
  2253. grp_inpatinfo.visible = false;
  2254. }
  2255. }
  2256. */
  2257. /**
  2258. * @group :
  2259. * @ver : 2008.10.14
  2260. * @by : 양천덕
  2261. * @---------------------------------------------------
  2262. * @type : function
  2263. * @access : public
  2264. * @desc : 사용자별 조회 조건 변경
  2265. * @param :
  2266. * @return :
  2267. * @---------------------------------------------------
  2268. */
  2269. /*
  2270. function fChangUserTypeSrch(pFlag){
  2271. fTPRviewInit();
  2272. //fSettingUserTypeSrch(pFlag);
  2273. var sSettingId1 = "-";
  2274. var sSettingId2 = "-";
  2275. if( pFlag == "1"){
  2276. fGetWardChngInfo("Y", "", ""); // 병동 조회조건으로 초기화
  2277. //병동코드 조회
  2278. fGetCareComWardList();
  2279. //내환자 조회
  2280. fGetSettingPatientList();
  2281. fGetCareComRoomList(sUserDeptCd);
  2282. model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist", sUserDeptCd);
  2283. cmb_wardlist.refresh();
  2284. }else{
  2285. //진료과 정보 조회
  2286. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/temp/cond/deptgrup/deptgruplist" , "D"); //부서코드 콤보
  2287. //---------(20101204) 경북대
  2288. //추가
  2289. var ssflag = "";
  2290. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  2291. //경북대가 아니면
  2292. if( sJobKindCD == "0330" || sJobKindCD == "0310"){
  2293. ssflag = "Y";
  2294. }else{
  2295. ssflag = "N";
  2296. }
  2297. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  2298. //경북대이면 03%로 체크한다.
  2299. if( sJobKindCD.substring(0, 2) == "03"){
  2300. ssflag = "Y";
  2301. }else{
  2302. ssflag = "N";
  2303. }
  2304. }
  2305. //원본:의사의 경우만
  2306. //if(sJobKindCD == "0330" || sJobKindCD == "0310"){
  2307. if(ssflag=="Y") {
  2308. //---------(20101204) 경북대
  2309. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/cond/doctlist/medispcl" , sUserDeptCd, "0330", "", "M");
  2310. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/cond/doctlist/atdoct", sUserDeptCd, "0330", "", "A");
  2311. addComboInstance("/root/temp/cond/doctlist/medispcl", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  2312. addComboInstance("/root/temp/cond/doctlist/atdoct", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
  2313. if(model.getValue("/root/temp/cond/doctlist/medispcl/usercombo[ userid='"+ sUserId+"']/userid") != ""){
  2314. sSettingId1 = sUserId
  2315. }
  2316. if(model.getValue("/root/temp/cond/doctlist/atdoct/usercombo[ userid='"+ sUserId+"']/userid") != ""){
  2317. sSettingId2 = sUserId
  2318. }
  2319. fGetCareComDeptPatList(sUserDeptCd, sSettingId1 , sSettingId2, model.getValue("/root/init/mypatsrchflag"));
  2320. model.setValue("/root/temp/cond/deptgrup/deptgruplist/dept", sUserDeptCd);
  2321. model.setValue("/root/temp/cond/doctlist/medispcl/usercombo", sSettingId1);
  2322. model.setValue("/root/temp/cond/doctlist/atdoct/usercombo", sSettingId2);
  2323. cmb_deptlist.refresh();
  2324. cmb_medispcllist.refresh();
  2325. cmb_atdoctlist.refresh();
  2326. }else{
  2327. model.setValue("/root/temp/cond/deptgrup/deptgruplist/dept", "-");
  2328. model.removenodeset("/root/temp/cond/doctlist/medispcl/usercombo");
  2329. model.removenodeset("/root/temp/cond/doctlist/atdoct/usercombo");
  2330. }
  2331. }
  2332. }
  2333. */
  2334. /**
  2335. * @group :
  2336. * @ver : 2008.09.01
  2337. * @by : 양천덕
  2338. * @---------------------------------------------------
  2339. * @type : function
  2340. * @access : public
  2341. * @desc : 초기 param 존재 하지 않을 경우 환자 선택화면 설정
  2342. * @param :
  2343. * @return :
  2344. * @---------------------------------------------------
  2345. */
  2346. function fSettingPamInfo(pFlag){
  2347. model.setValue(xCondPath+"/recdd",getCurrentDate());
  2348. fChangUserTypeSrch(pFlag);
  2349. }
  2350. /**
  2351. * @group :
  2352. * @ver : 2007.07.11
  2353. * @by : 이은영
  2354. * @---------------------------------------------------
  2355. * @type : function
  2356. * @access : public
  2357. * @desc : 이전/이후 날짜 Setting
  2358. * @param :
  2359. * @return :
  2360. * @---------------------------------------------------
  2361. */
  2362. function fDateCalc(pFlag, pVWFlag, pTerm){
  2363. switch(pVWFlag){
  2364. case "24hours" :
  2365. model.setValue(xCondPath+"/recdd",getDateCalc(model.getValue(xCondPath+"/genrdd"),1,pFlag));
  2366. break;
  2367. case "4days" :
  2368. model.setValue(xCondPath+"/recdd",getDateCalc(model.getValue(xCondPath+"/genrdd"),4,pFlag));
  2369. break;
  2370. }
  2371. ipt_4daysrecdd.refresh();
  2372. }
  2373. /**
  2374. * @group :
  2375. * @ver : 2007.07.11
  2376. * @by : 이은영
  2377. * @---------------------------------------------------
  2378. * @type : function
  2379. * @access : public
  2380. * @desc : 화면 전환
  2381. * @param :
  2382. * @return :
  2383. * @---------------------------------------------------
  2384. */
  2385. function fChageView(pFlag){
  2386. model.setValue(xCondPath+"/vwctrl_button", pFlag);
  2387. switch(pFlag){
  2388. // case "24hours" :
  2389. // model.toggle("case_24hoursstnd");
  2390. // //그래프 체크박스 숨김,보임 설정
  2391. // if(model.getValue(xCondPath+"/vwctrl_24hours") == "A"){
  2392. // grp_chkbox.visible = true;
  2393. // }else{
  2394. // grp_chkbox.visible = false;
  2395. // }
  2396. //
  2397. // chk_hourschartinfo.visible = true;
  2398. // chk_dayschartinfo.visible = false;
  2399. // obj_4dayschart.visible = false;
  2400. // obj_24hourschart.visible = true;
  2401. // btn_4daysvw.visible = true;
  2402. // btn_24hoursvw.visible = false;
  2403. // grd_timelist24hours.visible = true;
  2404. // grd_timelist.visible = false;
  2405. // grp_hide.visible = true;
  2406. // model.setValue(xCondPath+"/hourschartinfo","1 2 3 4");
  2407. // break;
  2408. case "4days" :
  2409. // model.toggle("case_4daysstnd");
  2410. //그래프 체크박스 숨김,보임 설정
  2411. // if(model.getValue(xCondPath+"/vwctrl_4days") == "A"){
  2412. // grp_chkbox.visible = true;
  2413. // }else{
  2414. // grp_chkbox.visible = false;
  2415. // }
  2416. // chk_hourschartinfo.visible = false;
  2417. // chk_dayschartinfo.visible = true;
  2418. obj_4dayschart.visible = true;
  2419. // obj_24hourschart.visible = false;
  2420. // btn_4daysvw.visible = false;
  2421. // btn_24hoursvw.visible = true;
  2422. // grd_timelist24hours.visible = false;
  2423. grd_timelist.visible = true;
  2424. // grp_hide.visible = false;
  2425. // model.setValue(xCondPath+"/dayschartinfo","1 2 3 4");
  2426. break;
  2427. }
  2428. }
  2429. /**
  2430. * @group :
  2431. * @ver : 2008.07.30
  2432. * @by : 양천덕
  2433. * @---------------------------------------------------
  2434. * @type : function
  2435. * @access : public
  2436. * @desc :
  2437. * @param : 화면 초기화
  2438. * @return :
  2439. * @---------------------------------------------------
  2440. */
  2441. /*
  2442. function fTPRviewInit(){
  2443. if(getNodesetCount("/root/temp/cond/patientgrup") < 1){
  2444. return;
  2445. }
  2446. fInitTopInfo();
  2447. model.removenode("/root/main/searchinfo");
  2448. model.removeNode("/root/temp/cond/patientgrup");
  2449. grd_timelist.caption = "";
  2450. fMakeChart("init4days");
  2451. if(getNodesetCount("/root/main/patinfo") > 0){
  2452. model.makeValue("/root/main/patinfo/patinfolist/pid", "");
  2453. model.makeValue("/root/main/patinfo/patinfolist/indd", "");
  2454. model.makeValue("/root/main/patinfo/patinfolist/cretno", "");
  2455. model.makeValue("/root/main/patinfo/patinfolist/ordtype", "");
  2456. model.makeValue("/root/main/patinfo/patinfolist/indschacptstat", "");
  2457. model.makeValue("/root/main/patinfo/patinfolist/dschdd", "");
  2458. model.makeValue("/root/main/patinfo/patinfolist/eroutdd", "");
  2459. model.makeValue("/root/main/patinfo/patinfolist/patnm", "");
  2460. model.makeValue("/root/main/patinfo/patinfolist/sexage", "");
  2461. model.makeValue("/root/main/patinfo/patinfolist/wardcd", "");
  2462. model.makeValue("/root/main/patinfo/patinfolist/roomcd", "");
  2463. }
  2464. sPid == "";
  2465. sIndd == "";
  2466. sCretNo == "";
  2467. sInstcd == "";
  2468. sIOFlag == "";
  2469. sWardCD == "";
  2470. sRoomCD == "";
  2471. sIndschacptstat == "";
  2472. sDschdd == "";
  2473. sOrdDeptcd == "";
  2474. sMedispclid == "";
  2475. model.makeValue(xCondPath+"/pid", "");
  2476. //fChkTgtPatInfo("disable");
  2477. }
  2478. */
  2479. /**
  2480. * @group :
  2481. * @ver : 2008.07.02
  2482. * @by : 양천덕
  2483. * @---------------------------------------------------
  2484. * @type : function
  2485. * @access : public
  2486. * @desc :
  2487. * @param : 환자 선택 여부확인
  2488. * @return :
  2489. * @---------------------------------------------------
  2490. */
  2491. function fChkTgtPatInfo(pFlag){
  2492. switch(pFlag){
  2493. case "disable":
  2494. btn_4dayrefresh.disabled = true;
  2495. btn_4daysvwctrl.disabled = true;
  2496. // btn_24hoursvw.disabled = true;
  2497. btn_4daybefore.disabled = true;
  2498. btn_4dayafter.disabled = true;
  2499. break;
  2500. case "able":
  2501. btn_4dayrefresh.disabled = false;
  2502. btn_4daysvwctrl.disabled = false;
  2503. // btn_24hoursvw.disabled = false;
  2504. btn_4daybefore.disabled = false;
  2505. btn_4dayafter.disabled = false;
  2506. break;
  2507. }
  2508. }
  2509. /**
  2510. * @group :
  2511. * @ver : 2008.04.28
  2512. * @by : 양천덕
  2513. * @---------------------------------------------------
  2514. * @type : function
  2515. * @access : public
  2516. * @desc : 환자 선택시 상단정보 변경
  2517. * @param :
  2518. * @return :
  2519. * @---------------------------------------------------
  2520. */
  2521. function fSetParam(pFlag, pIndex){
  2522. if(getNodesetCount("/root/main/paminfo/pamlist") > 0){
  2523. model.removenodeset("root/main/paminfo/pamlist");
  2524. }
  2525. var sOrdtype = "";
  2526. var sPid = "";
  2527. var sIndd = "";
  2528. var sCretno = "";
  2529. var sInstcd = "";
  2530. var param = "";
  2531. if(pFlag == "SrchPat"){
  2532. sOrdtype = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/ordtype" );
  2533. sPid = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/pid" );
  2534. sIndd = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/indd" );
  2535. sCretno = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/cretno" );
  2536. sInstcd = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/instcd" );
  2537. cmb_mypatlist.value = "";
  2538. }else if(pFlag == "SettingPat"){
  2539. sOrdtype = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/ordtype" );
  2540. sPid = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/pid" );
  2541. sIndd = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/indd" );
  2542. sCretno = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/cretno" );
  2543. sInstcd = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/instcd" );
  2544. }
  2545. param = sOrdtype + "▦"
  2546. + sPid + "▦"
  2547. + sIndd + "▦"
  2548. + sCretno + "▦"
  2549. + sInstcd + "▦"
  2550. + "▦" ;
  2551. setParameter("condparam", param);
  2552. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2553. if(pFlag == "SrchPat"){
  2554. fInitialize("patinit");
  2555. }else if(pFlag == "SettingPat"){
  2556. fInitialize("reset");
  2557. }
  2558. }
  2559. /**
  2560. * @group :
  2561. * @ver : 2007.07.11
  2562. * @by : 이은영
  2563. * @---------------------------------------------------
  2564. * @type : function
  2565. * @access : public
  2566. * @desc : 시작일자 계산
  2567. * @param :
  2568. * @return :
  2569. * @---------------------------------------------------
  2570. */
  2571. function fCalStartDate(pDate, pTimeFlag){
  2572. var sStartDT = pDate.toDate("YYYYMMDDhhmmss");
  2573. var sTime = "";
  2574. var sRemainder = 0;
  2575. if(pTimeFlag != 1 ){
  2576. sRemainder = eval(pDate.substr(10,2))%pTimeFlag;
  2577. }
  2578. sStartDT.setMinutes(sStartDT.getMinutes()-sRemainder);
  2579. return sStartDT;
  2580. }
  2581. /**
  2582. * @group :
  2583. * @ver : 2007.07.11
  2584. * @by : 이은영
  2585. * @---------------------------------------------------
  2586. * @type : function
  2587. * @access : public
  2588. * @desc : 그리드 크기 조절(펼치기/ 접기)
  2589. * @param :
  2590. * @return :
  2591. * @---------------------------------------------------
  2592. */
  2593. function fControlGridSize(pFlag){
  2594. switch(pFlag){
  2595. // case "24hours" : // 24시간 화면
  2596. // if(model.getValue(xCondPath+"/vwctrl_24hours") == "A"){ // 펼치기
  2597. // btn_24hoursvwctrl.value = "접기";
  2598. // model.setValue(xCondPath+"/vwctrl_24hours","I");
  2599. // document.all.item("obj_24hourschart").visible = false;
  2600. // document.all.item("obj_24hourschart").refresh();
  2601. // //grd_24hoursheader.visible = false;
  2602. //
  2603. // grp_chkbox.visible = false;
  2604. // chk_hourschartinfo.visible = false;
  2605. // chk_dayschartinfo.visible = false;
  2606. //
  2607. //
  2608. // }else{
  2609. // btn_24hoursvwctrl.value = "펼치기";
  2610. // model.setValue(xCondPath+"/vwctrl_24hours","A");
  2611. // document.all.item("obj_24hourschart").visible = true;
  2612. // document.all.item("obj_24hourschart").refresh();
  2613. // //grd_24hoursheader.visible = true;
  2614. // chk_hourschartinfo.visible = true;
  2615. //
  2616. // grp_chkbox.visible = true;
  2617. // chk_hourschartinfo.visible = true;
  2618. // chk_dayschartinfo.visible = false;
  2619. //
  2620. // }
  2621. // btn_24hoursvwctrl.refresh();
  2622. // //fCreateHeader(pFlag);
  2623. // break;
  2624. case "4days" : // 4일기준 화면
  2625. if(model.getValue(xCondPath+"/vwctrl_4days") == "A"){ // 펼치기
  2626. //btn_4daysvwctrl.value = "접기";
  2627. model.setValue(xCondPath+"/vwctrl_4days","I");
  2628. document.all.item("obj_4dayschart").visible = false;
  2629. document.all.item("obj_4dayschart").refresh();
  2630. //grd_4dayschartheader.visible = false;
  2631. // grp_chkbox.visible = false;
  2632. // chk_hourschartinfo.visible = false;
  2633. // chk_dayschartinfo.visible = false;
  2634. }else{
  2635. //btn_4daysvwctrl.value = "펼치기";
  2636. model.setValue(xCondPath+"/vwctrl_4days","A");
  2637. document.all.item("obj_4dayschart").visible = true;
  2638. document.all.item("obj_4dayschart").refresh();
  2639. //grd_4dayschartheader.visible = true;
  2640. chk_dayschartinfo.visible = true;
  2641. // grp_chkbox.visible = true;
  2642. // chk_hourschartinfo.visible = false;
  2643. // chk_dayschartinfo.visible = true;
  2644. }
  2645. //btn_4daysvwctrl.refresh();
  2646. //fCreateHeader(pFlag);
  2647. break;
  2648. }
  2649. }
  2650. /**
  2651. * @group :
  2652. * @ver : 2007.08.14
  2653. * @by : 이은영
  2654. * @---------------------------------------------------
  2655. * @type : function
  2656. * @access : public
  2657. * @desc : 차트 생성
  2658. * @param :
  2659. * @return :
  2660. * @---------------------------------------------------
  2661. */
  2662. function fMakeChart(pFlag){
  2663. var Obj_Chart = null;
  2664. var Obj_CheckBox = null;
  2665. var sColCnt = 0;
  2666. var sRecRslt = "";
  2667. var sRecRslt1 = "";
  2668. var sChartInfo = "";
  2669. var sRecDD = "";
  2670. var sRecTM = "";
  2671. var sRecTM4 = "";
  2672. var sRecRsltArr = new Array();
  2673. var sRecRslt1Arr = new Array();
  2674. var iArrSize = 0;
  2675. var iChartPos = 0;
  2676. var idx=0;
  2677. var grdRecTM1="";
  2678. var grdRecTM2="";
  2679. var grdRecDD="";
  2680. var iArrSize = 0;
  2681. var iSeriCnt = 0;
  2682. var iToolsCnt=0;
  2683. var sRecRsltHint = "";
  2684. var typecd = 1;
  2685. var sChartToolId = "";
  2686. var sChartItemcd = "";
  2687. var cnt = 0;
  2688. switch(pFlag){
  2689. case "4days" :
  2690. Obj_Chart = obj_4dayschart;
  2691. Obj_CheckBox = chk_dayschartinfo;
  2692. obj_4dayschart.ClearChart();
  2693. sChartInfo = model.getValue(xCondPath+"/dayschartinfo").split(" ");
  2694. //obj_4dayschart.RemoveAllSeries();
  2695. //obj_4dayschart.Axis.RemoveAllCustom();
  2696. //margin 값 정하기
  2697. obj_4dayschart.Panel.MarginTop = 2;
  2698. obj_4dayschart.Panel.MarginLeft = 1.5;
  2699. obj_4dayschart.Panel.MarginRight = 0;
  2700. obj_4dayschart.Panel.MarginBottom = -6;
  2701. // obj_4dayschart.Axis.Bottom.TickLength = 16;
  2702. //하단축 칸 수 정하기와 눈금 없애기
  2703. obj_4dayschart.Axis.Bottom.SetMinMax (0,16); //4일 동안 좌표를 표현 (하루는 DivPerDay만큼 나눠짐)
  2704. obj_4dayschart.Axis.Bottom.Increment = 1;
  2705. obj_4dayschart.Axis.Bottom.MinorTickCount = 5;
  2706. sColCnt = 16;
  2707. iArrSize = 6;
  2708. break;
  2709. }
  2710. Obj_Chart.Axis.Bottom.AxisPen.Color = 0x000000;
  2711. Obj_Chart.Axis.Bottom.Labels.Font.Color = 0xffffff; //Obj_Chart.Panel.Color; //하단 축 눈금 명칭 색을 바탕색으로 하여 보이지 않게 처리
  2712. Obj_Chart.Header.Visible = false;
  2713. Obj_Chart.Aspect.View3D = 0; //2d 로 표현하기
  2714. Obj_Chart.Zoom.Enable = false; // zoom 사용하지 않기
  2715. Obj_Chart.Scroll.Enable = false; // scroll 사용하지 않기
  2716. Obj_Chart.Legend.Visible = false; // 그래프 참조 박스 띄우지 않기
  2717. Obj_Chart.Panel.Gradient.Visible = true; // 페널에 그라디언트 적용
  2718. Obj_Chart.Panel.Gradient.StartColor = 0xffffff;
  2719. Obj_Chart.Panel.Gradient.EndColor=0xffffff;
  2720. Obj_Chart.Environment.MouseWheelScroll = false;
  2721. var cus_axis1 = Obj_Chart.Axis.AddCustom(false);
  2722. Obj_Chart.Axis.Custom(0).AxisPen.Color = 0x0000ff;
  2723. Obj_Chart.Axis.Custom(0).Title.Font.Size = 8;
  2724. Obj_Chart.Axis.Custom(0).Title.Font.Bold = true;
  2725. Obj_Chart.Axis.Custom(0).Title.Angle = 90;
  2726. Obj_Chart.Axis.Custom(0).PositionPercent = 0;
  2727. Obj_Chart.Axis.Custom(0).StartPosition = 0;
  2728. Obj_Chart.Axis.Custom(0).EndPosition = 100;
  2729. Obj_Chart.Axis.Custom(0).Automatic = false;
  2730. Obj_Chart.Axis.Custom(0).Maximum = 10;
  2731. Obj_Chart.Axis.Custom(0).Minimum = 0;
  2732. Obj_Chart.Axis.Custom(0).Increment = 1;
  2733. iSeriCnt = Obj_CheckBox.length;
  2734. //시간구분선이 생기도록 임의의 널값을 그래프 X축에 세팅
  2735. Obj_Chart.AddSeries(0);//포인트 - Series 4
  2736. Obj_Chart.Series(0).asLine.ClickableLine = 0;//라인을 지나갈때 tool이 먹히게 할지(1) 말지(0)
  2737. Obj_Chart.Series(0).Depth = 1;
  2738. Obj_Chart.Series(0).VerticalAxisCustom = cus_axis1;
  2739. for( var cnt = 0 ; cnt < sColCnt ; cnt++){
  2740. Obj_Chart.Series(0).AddNull("null");
  2741. }
  2742. Obj_Chart.Series(0).asLine.LinePen.Width = 2;
  2743. Obj_Chart.Series(0).asLine.Pointer.Visible = true;
  2744. Obj_Chart.Series(0).asLine.Pointer.Style = 1;
  2745. Obj_Chart.Series(0).asLine.ClickableLine = 0;//라인을 지나갈때 tool이 먹히게 할지(1) 말지(0)
  2746. for(var i = 1 ; i <= Obj_CheckBox.length && !isNull(model.getValue(xChkObsPartInfoPath+"[1]/obspartid")) ; i++){
  2747. sChartItem[i-1] = model.getValue(xChkObsPartInfoPath+"[" + i + "]/obspartid");
  2748. Obj_CheckBox.item(i-1).attribute("background-color") = sCheckColor[i-1];
  2749. if ( Obj_Chart.Tools.Count == 0 ){
  2750. Obj_Chart.Tools.Add(8);
  2751. Obj_Chart.Tools.Items(0).asMarksTip.MouseAction = 0;
  2752. Obj_Chart.Tools.Items(0).asMarksTip.Style = 2;//9:y값 x값 0:x값 2:Label
  2753. Obj_Chart.Tools.Items(0).asMarksTip.Delay = 10;
  2754. Obj_Chart.Tools.Items(0).asMarksTip.Series = 4;
  2755. }
  2756. if ( Obj_CheckBox.item(i-1).selected ){
  2757. switch(pFlag){
  2758. case "4days" :
  2759. for( var idx = 1 ; idx <= getNodesetCount(xTotPainInfoPath) ; idx++ ){
  2760. Obj_Chart.AddSeries(0);//포인트 - Series 4
  2761. if ( sChartItem[i-1] == model.getValue(xTotPainInfoPath+"["+idx+"]/obspartid")){
  2762. Obj_Chart.Series(typecd).VerticalAxisCustom = cus_axis1;
  2763. Obj_Chart.Series(typecd).Color = sLineColor[i-1];
  2764. Obj_Chart.Series(typecd).asLine.LinePen.Width = 2;
  2765. Obj_Chart.Series(typecd).asLine.Pointer.Visible = true;
  2766. Obj_Chart.Series(typecd).Depth = i+1;
  2767. if(model.getValue(xTotPainInfoPath+"["+idx+"]/toolid")=="81"){
  2768. Obj_Chart.Series(typecd).asLine.Pointer.Style = 0;
  2769. }else if(model.getValue(xTotPainInfoPath+"["+idx+"]/toolid")=="83"){
  2770. Obj_Chart.Series(typecd).asLine.Pointer.Style = 1;
  2771. }else if(model.getValue(xTotPainInfoPath+"["+idx+"]/toolid")=="84"){
  2772. Obj_Chart.Series(typecd).asLine.Pointer.Style = 2;
  2773. }else if(model.getValue(xTotPainInfoPath+"["+idx+"]/toolid")=="85"){
  2774. Obj_Chart.Series(typecd).asLine.Pointer.Style = 7;
  2775. }
  2776. if ( Obj_CheckBox.item(i-1).selected ){
  2777. sRecRslt = model.getValue(xTotPainInfoPath+"["+ idx +"]/pnt");
  2778. sRecDD = model.getValue(xTotPainInfoPath+"["+ idx +"]/recdd");
  2779. sRecTM = model.getValue(xTotPainInfoPath+"["+ idx +"]/rectm").substring(0,2);
  2780. for( var iCol = 0 ; iCol < sColCnt ; iCol++ ){
  2781. if ( iCol < (sColCnt-1) ){
  2782. grdRecTM1 = getArrayData(grd_timelist.caption,0,iCol,"|","^").substring(0,2);
  2783. grdRecTM2 = getArrayData(grd_timelist.caption,0,iCol+1,"|","^").substring(0,2);
  2784. } else {
  2785. grdRecTM1 = getArrayData(grd_timelist.caption,0,iCol,"|","^").substring(0,2);
  2786. grdRecTM2 = "07";
  2787. }
  2788. if ( sRecDD+sRecTM >= sHeader[1][iCol]+ grdRecTM1
  2789. && sRecDD+sRecTM < sHeader[1][iCol+1]+ grdRecTM2 ){
  2790. if( !isNull(sRecRslt) && fIsNumber(sRecRslt) == true){
  2791. sRecTM4 = model.getValue(xTotPainInfoPath+"["+ idx +"]/rectm").substring(2,4);
  2792. var pos= eval(iCol) + (eval(eval(sRecTM)-eval(grdRecTM1))/iArrSize) + (eval(eval(sRecTM4)-eval("00"))/(iArrSize*60)) ;
  2793. sRecRsltHint = "부위 : "+model.getValue(xTotPainInfoPath+"["+ idx +"]/obspartnm")
  2794. +"("+ model.getValue(xTotPainInfoPath+"["+ idx +"]/direcnm") +")"
  2795. +"\n사정시간 : "+ model.getValue(xTotPainInfoPath+"["+ idx +"]/recdd").substring(0,4)+"-"+model.getValue(xTotPainInfoPath+"["+ idx +"]/recdd").substring(4,6)+"-"+model.getValue(xTotPainInfoPath+"["+ idx +"]/recdd").substring(6,8)+" "+ model.getValue(xTotPainInfoPath+"["+ idx +"]/rectm").substring(0,2)+":"+ model.getValue(xTotPainInfoPath+"["+ idx +"]/rectm").substring(2,4)
  2796. +"\n사정도구 : "+ model.getValue(xTotPainInfoPath+"["+ idx +"]/tool")
  2797. +"\n약물중재 : "+ model.getValue(xTotPainInfoPath+"["+ idx +"]/drugarbt")
  2798. +"\n비약물중재 : "+ model.getValue(xTotPainInfoPath+"["+ idx +"]/nondrugarbt");
  2799. Obj_Chart.Series(typecd).AddXY (pos, eval(sRecRslt), sRecRsltHint, sLineColor[i-1]);
  2800. }
  2801. }
  2802. }
  2803. }
  2804. sChartToolId = model.getValue(xTotPainInfoPath+"[" + idx + "]/toolid");
  2805. sChartItemcd = model.getValue(xTotPainInfoPath+"[" + idx + "]/obspartid");
  2806. if(model.getValue(xTotPainInfoPath+"["+(idx+1)+"]/toolid") != ""){
  2807. if(sChartItemcd != model.getValue(xTotPainInfoPath+"["+(idx+1)+"]/obspartid") || sChartToolId != model.getValue(xTotPainInfoPath+"["+(idx+1)+"]/toolid")){
  2808. typecd++;
  2809. }
  2810. obj_4dayschart.Panel.MarginLeft = 1.0;
  2811. }
  2812. }
  2813. }
  2814. break;
  2815. }
  2816. }
  2817. }
  2818. }
  2819. /**
  2820. * @group :
  2821. * @ver : 2007.07.21
  2822. * @by : 양천덕
  2823. * @---------------------------------------------------
  2824. * @type : function
  2825. * @access : public
  2826. * @desc : 문자여부 확인
  2827. * @param : str : 값
  2828. * @return : true / false
  2829. * @---------------------------------------------------
  2830. */
  2831. function fIsNumber(str) {
  2832. str += ''; // 문자열로 변환
  2833. str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
  2834. if (str == '' || isNaN(str)) return false;
  2835. return true;
  2836. }
  2837. /**
  2838. * @group :
  2839. * @ver : 2007.08.16
  2840. * @by : 이은영
  2841. * @---------------------------------------------------
  2842. * @type : function
  2843. * @access : public
  2844. * @desc : 그리드 Header 생성
  2845. * @param :
  2846. * @return :
  2847. * @---------------------------------------------------
  2848. */
  2849. function fCreateHeader(pFlag){
  2850. var sRecDD = "";
  2851. //var sChartCapNm = "";
  2852. var sGridCapNm = "";
  2853. var sTimeFlag = 0;
  2854. var sCDay = new Array();
  2855. var sDayInfo = "";
  2856. var iDayRow = 0;
  2857. var sDayCountInfo = "";
  2858. var sDateList = "";
  2859. var idx=0;
  2860. sHeader[1] = new Array();
  2861. var sCaption = "07:00^13:00^19:00^01:00^07:00^13:00^19:00^01:00^07:00^13:00^19:00^01:00^07:00^13:00^19:00^01:00";
  2862. var sCaption24="07:00^08:00^09:00^10:00^11:00^12:00^13:00^14:00^15:00^16:00^17:00^18:00^19:00^20:00^21:00^22:00^23:00^24:00^01:00^02:00^03:00^04:00^05:00^06:00";
  2863. switch(pFlag){
  2864. case "4days" :
  2865. var sStartDD = getDateCalc(model.getValue(xCondPath+"/genrdd"),3,"-");
  2866. for( idx = 1 ; idx <= grd_timelist.cols ; idx++ ){
  2867. sRecDD = getDateCalc(sStartDD,idx/4,"+");
  2868. sHeader[1][idx-1] = sRecDD;
  2869. }
  2870. sHeader[1][idx]=getDateCalc(model.getValue(xCondPath+"/recdd"),1,"+")
  2871. for(var iRow=1; iRow<=1; iRow++){
  2872. for(var iCol=0; iCol<grd_timelist.cols; iCol++){
  2873. if(iRow == 1){
  2874. sGridCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  2875. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  2876. }
  2877. if(iCol != grd_timelist.cols){
  2878. sGridCapNm += "^";
  2879. }
  2880. }
  2881. }
  2882. grd_timelist.caption = sCaption + "|" + sGridCapNm;
  2883. break;
  2884. case "24hours" :
  2885. var sStartDD = model.getValue(xCondPath+"/recdd");
  2886. for( var idx = 0 ; idx < grd_timelist24hours.cols ; idx++ ){
  2887. sHeader[1][idx] = sStartDD;
  2888. }
  2889. for(var iRow=1; iRow<=1; iRow++){
  2890. for(var iCol=0; iCol<grd_timelist24hours.cols; iCol++){
  2891. if(iRow == 1){
  2892. sGridCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  2893. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  2894. }
  2895. if(iCol != grd_timelist24hours.cols){
  2896. sGridCapNm += "^";
  2897. }
  2898. }
  2899. }
  2900. grd_timelist24hours.caption = sCaption24 + "|" + sGridCapNm;
  2901. break; }
  2902. }
  2903. /**
  2904. * @group :
  2905. * @ver : 2007.08.16
  2906. * @by : 이은영
  2907. * @---------------------------------------------------
  2908. * @type : function
  2909. * @access : public
  2910. * @desc : 임상관찰 기록 조회
  2911. * @param :
  2912. * @return :
  2913. * @---------------------------------------------------
  2914. */
  2915. function fSearchGrape(pFlag){
  2916. /*
  2917. if(model.getValue("/root/main/patinfo/patinfolist/pid") == ""){
  2918. messageBox("환자를 선택하십시요","I");
  2919. return;
  2920. }
  2921. */
  2922. model.setValue(xCondPath+"/vwctrl_button",pFlag)
  2923. model.removenode("/root/send");
  2924. model.makeValue("/root/send/pid", sPid);
  2925. model.makeValue("/root/send/indd", sIndd);
  2926. model.makeValue("/root/send/cretno", sCretNo);
  2927. model.makeValue("/root/send/instcd", sInstcd);
  2928. model.makeValue("/root/send/ioflag", sIOFlag);
  2929. model.makeValue("/root/send/srchdd", model.getValue(xCondPath+"/genrdd") );
  2930. model.makeValue("/root/send/fromdd", getDateCalc(model.getValue(xCondPath+"/genrdd"),3,'-') );
  2931. model.makeValue("/root/send/todd", model.getValue(xCondPath+"/genrdd") );
  2932. model.makeValue("/root/send/vwctrl_button", model.getValue(xCondPath+"/vwctrl_button") );
  2933. if(submit("TRMNR08401")){
  2934. fCreateHeader(pFlag);
  2935. fSettingCheckBox(pFlag);
  2936. fMakeChart(pFlag);
  2937. fChageView(pFlag);
  2938. if ( getSystemCd().substring(0,3) == "DEV" ){
  2939. fMessageAlert(xPainCountInfoPath);
  2940. }
  2941. }
  2942. model.refresh();
  2943. }
  2944. /**
  2945. * @group :
  2946. * @ver : 2007.08.16
  2947. * @by :
  2948. * @---------------------------------------------------
  2949. * @type : function
  2950. * @access : public
  2951. * @desc : 점수가7점이상이 3회이상인경우 메시지 팝업
  2952. * @param :
  2953. model.makeValue("/root/send/pid", sPid);
  2954. model.makeValue("/root/send/indd", sIndd);
  2955. model.makeValue("/root/send/cretno", sCretNo);
  2956. model.makeValue("/root/send/vwctrl_button", "dr" );
  2957. * @return :
  2958. * @---------------------------------------------------
  2959. */
  2960. function fMessageAlert(destPath){
  2961. if ( model.getValue(destPath+"/cntpnt") == "Y" ){
  2962. var rtnmsg = messageBox("7점이상의 통증이 3회이상 존재합니다 " ,"Q011");
  2963. if ( rtnmsg == 6 ){
  2964. submit("TXMNR08401");//메시지팝업 확인일시 업데이트
  2965. }
  2966. }
  2967. }
  2968. /**
  2969. * @group :
  2970. * @ver : 2007.08.16
  2971. * @by : 이은영
  2972. * @---------------------------------------------------
  2973. * @type : function
  2974. * @access : public
  2975. * @desc : 임상관찰 기록 조회
  2976. * @param :
  2977. * @return :
  2978. * @---------------------------------------------------
  2979. */
  2980. function fSettingCheckBox(pFlag){
  2981. switch(pFlag){
  2982. case "4days" :
  2983. var sDaysChart = "";
  2984. for( var idx = 0 ; idx < chk_dayschartinfo.length ; idx++){
  2985. if ( idx == 0 ) {
  2986. sDaysChart = chk_dayschartinfo.item(0).value;
  2987. } else {
  2988. sDaysChart += " " + chk_dayschartinfo.item(idx).value;
  2989. }
  2990. }
  2991. model.makeValue(xCondPath+"/dayschartinfo",sDaysChart);
  2992. chk_dayschartinfo.refresh();
  2993. break;
  2994. case "24hours" :
  2995. var s24HoursChart = "";
  2996. for( var idx = 0 ; idx < chk_hourschartinfo.length ; idx++){
  2997. if ( idx == 0 ) {
  2998. s24HoursChart = chk_hourschartinfo.item(0).value;
  2999. } else {
  3000. s24HoursChart += " " + chk_hourschartinfo.item(idx).value;
  3001. }
  3002. }
  3003. model.makeValue(xCondPath+"/hourschartinfo",s24HoursChart);
  3004. chk_hourschartinfo.refresh();
  3005. break; }
  3006. }
  3007. function fpatinfoset(){
  3008. for( var idx = 0 ; idx < sCheckColor.length ; idx++){
  3009. sLineColor[idx] = RgbToGraph(sCheckColor[idx]);
  3010. }
  3011. model.makeValue(xCondPath+"/vwctrl_button","4days");
  3012. sPid = model.getValue(xPamInfoPath+"/pid"); // 환자번호
  3013. sCretNo = model.getValue(xPamInfoPath+"/cretno"); // 환자 일자별 일련번호
  3014. sInstcd = model.getValue(xPamInfoPath+"/instcd"); // 기관코드
  3015. sIOFlag = model.getValue(xPamInfoPath+"/ioflag"); // 입원/외래 구분
  3016. sWardCD = model.getValue(xPamInfoPath+"/wardcd"); // 병동코드
  3017. sRoomCD = model.getValue(xPamInfoPath+"/roomcd"); // 병실코드
  3018. sIndschacptstat = model.getValue(xPamInfoPath+"/indschacptstat"); //입퇴원구분코드
  3019. sDschdd = model.getValue(xPamInfoPath+"/dschdd"); // 퇴원일자
  3020. sPatNm = model.getValue(xPamInfoPath+"/hngnm"); // 환자명
  3021. sSexAge = model.getValue(xPamInfoPath+"/sex") +"/"+ model.getValue(xPamInfoPath+"/age"); // 성별
  3022. sOrdDeptcd = model.getValue(xPamInfoPath+"/orddeptcd");
  3023. sMedispclid = model.getValue(xPamInfoPath+"/medispclid");
  3024. sSectioncd = model.getValue(xPamInfoPath+"/sectioncd"); // 응급실 구역정보 추가(2011.05.04 ahn)
  3025. if(sIOFlag == "O"){
  3026. sIndd = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
  3027. }else{
  3028. sIndd = model.getValue(xPamInfoPath+"/indd"); // 입원일자
  3029. }
  3030. model.makeValue(xCondPath+"/pid", sPid);
  3031. model.makeValue("/root/main/patinfo/patinfolist/pid", sPid);
  3032. model.makeValue("/root/main/patinfo/patinfolist/indd", sIndd);
  3033. model.makeValue("/root/main/patinfo/patinfolist/cretno", sCretNo);
  3034. model.makeValue("/root/main/patinfo/patinfolist/ordtype", sIOFlag);
  3035. model.makeValue("/root/main/patinfo/patinfolist/indschacptstat", sIndschacptstat);
  3036. model.makeValue("/root/main/patinfo/patinfolist/dschdd", sDschdd);
  3037. model.makeValue("/root/main/patinfo/patinfolist/wardcd", sWardCD);
  3038. model.makeValue("/root/main/patinfo/patinfolist/roomcd", sRoomCD);
  3039. model.makeValue("/root/main/patinfo/patinfolist/patnm", sPatNm);
  3040. model.makeValue("/root/main/patinfo/patinfolist/sexage", sSexAge);
  3041. model.makeValue("/root/main/patinfo/patinfolist/orddeptcd", sOrdDeptcd);
  3042. model.makeValue("/root/main/patinfo/patinfolist/medispclid", sMedispclid);
  3043. model.makeValue("/root/main/patinfo/patinfolist/sectioncd", sSectioncd); // 응급실 구역정보 추가(2011.05.04 ahn)
  3044. }
  3045. /**
  3046. * @group :
  3047. * @ver : 2011.03.16
  3048. * @by : 안도영
  3049. * @---------------------------------------------------
  3050. * @type : function
  3051. * @access : public
  3052. * @desc : 구역정보 조회 (응급실인 경우)
  3053. * @param :
  3054. * @param :
  3055. * @return :
  3056. * @---------------------------------------------------
  3057. */
  3058. /*
  3059. function fGetWardChngInfo(initFlag, wardCd, sectionCd){
  3060. if(initFlag=="Y") {
  3061. var sWardCD = wardCd;
  3062. }
  3063. else{
  3064. //var sWardCD = model.getValue("/root/cond/wardcd");
  3065. var sWardCD = cmb_wardlist.value;
  3066. }
  3067. if ( sWardCD == eERDEPTCD) {
  3068. eERFLAG = "Y";
  3069. }else{
  3070. eERFLAG = "";
  3071. }
  3072. //응급실인 경우 구역정보 추가조회
  3073. if(eERFLAG == "Y"){ // 응급실
  3074. fGetZoneList();
  3075. //copyNodeset("/root/temp2/zoneinfo", "/root/temp/zoneinfo");
  3076. caption7.attribute("text") = "구 역 :";
  3077. cmb_roomlist.visible = "false";
  3078. cmb_erpat.visible = "true";
  3079. cmb_patlist.visible = "false";
  3080. cmb_zone.visible = "true";
  3081. //ipt_pid.attribute("left") = 539; // 위치 변경
  3082. //ipt_pid.attribute("top") = 40;
  3083. //btn_patSearch.attribute("left") = 617; // 위치 변경
  3084. //btn_patSearch.attribute("top") = 41; // 위치 변경
  3085. caption9.visible = "false";
  3086. cmb_mypatlist.visible = "false";
  3087. if(initFlag=="Y"){ // 처음 상단 정보로 화면 열릴 때
  3088. model.setValue("/root/main/cond/zonecd", (sectionCd == "") ? "-" : sectionCd);
  3089. }else{
  3090. model.setValue("/root/main/cond/zonecd", "-"); // 'All'로 default
  3091. }
  3092. }else{
  3093. caption7.attribute("text") = "병 실 :";
  3094. cmb_roomlist.visible = "true";
  3095. cmb_erpat.visible = "false";
  3096. cmb_patlist.visible = "true"
  3097. cmb_zone.visible = "false";
  3098. //ipt_pid.attribute("left") = 669; // 기존 위치
  3099. //ipt_pid.attribute("top") = 15;
  3100. //btn_patSearch.attribute("left") = 747; // 기존 위치
  3101. //btn_patSearch.attribute("top") = 16;
  3102. caption9.visible = "true";
  3103. cmb_mypatlist.visible = "true";
  3104. model.setValue("/root/main/cond/zonecd", "");
  3105. }
  3106. //ctn_room.refresh();
  3107. cmb_zone.refresh();
  3108. cmb_roomlist.refresh();
  3109. cmb_erpat.refresh();
  3110. cmb_patlist.refresh();
  3111. }
  3112. */
  3113. function RgbToGraph(h) { return window.rgb(HexToR(h),HexToG(h),HexToB(h)) }
  3114. function HexToR(h) { return parseInt((cutHex(h)).substring(0,2),16) }
  3115. function HexToG(h) { return parseInt((cutHex(h)).substring(2,4),16) }
  3116. function HexToB(h) { return parseInt((cutHex(h)).substring(4,6),16) }
  3117. function cutHex(h) { return (h.charAt(0)=="#") ? h.substring(1,7) : h}