SMMNW4800.js 118 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742
  1. /*
  2. (SMMNW04800.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. //통합기록조회
  18. var ViewFunc = "sign"; //sign : 기록인증용, view : view인증용
  19. //가정간호 parameter를 global variable로 선언
  20. var HC_homecarecd = '';
  21. var HC_ioflag = '';
  22. var HC_isHomeCare = '';
  23. //응급의료센터 관련 변수_경북대 (2011.03.16 Ahn)
  24. var eERDEPTCD = "";
  25. var eERFLAG = "";
  26. var eSECTIONCD = "";
  27. //경북대 기록지 구분용 _ 2011.03.17 (ahn)
  28. var eRECFLAG = "erPain"; // 통증관리기록
  29. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  30. //+++++++++++++++++++++++++++++++++++++++++++ 조회관련 펑션 모음 시작 ++++++++++++++++++++++++++++++++++++++++++++++//
  31. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  32. /**
  33. * @group :
  34. * @ver : 2007.09. 06
  35. * : 2008.05.28 dhkim 수정
  36. * @by : 정찬성
  37. * @----------------------------------------------------------------------------------------------------------------------------------------------------
  38. * @type : function
  39. * @access : public
  40. * @desc : 화면을 초기화한다. 화면로딩이 끝난 시점에 호출된다.
  41. * @param :
  42. * @return :
  43. * @----------------------------------------------------------------------------------------------------------------------------------------------------
  44. */
  45. function finit(){
  46. model.makeValue("/root/send/cdgpid", "T30");
  47. submit("TRMNW04001");
  48. //사용자 직급구분에 따른 화면 제어 플래그 설정
  49. sJobKindCD = getUserInfo("jobkindcd"); // 직급코드
  50. sUserDeptCd = getUserInfo("dutplcecd");
  51. sUserId = getUserInfo("userid");
  52. //---------(20101204) 경북대
  53. //추가
  54. //var sJobKindCD = getUserInfo("jobkindcd"); // 직급코드
  55. var ssflag = "";
  56. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  57. //경북대가 아니면
  58. if( sJobKindCD == "0330" || sJobKindCD == "0310"){
  59. ssflag = "Y";
  60. }else{
  61. ssflag = "N";
  62. }
  63. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  64. //경북대이면 03%로 체크한다.
  65. if( sJobKindCD.substring(0, 2) == "03"){
  66. ssflag = "Y";
  67. }else{
  68. ssflag = "N";
  69. }
  70. }
  71. // 통증관련 설명문구 이원화('16.04.27_AYS 칠곡인증평가 관련 수정)
  72. if(getUserInfo("dutplceinstcd") == '032'){
  73. caption7.visible = true;
  74. caption10.visible = true;
  75. caption9.visible = true;
  76. //caption2.visible = false;
  77. //caption3.visible = false;
  78. //caption4.visible = false;
  79. }else{
  80. //caption2.visible = true;
  81. //caption3.visible = true;
  82. //caption4.visible = true;
  83. caption7.visible = false;
  84. caption10.visible = false;
  85. caption9.visible = false;
  86. }
  87. //----------------------------
  88. //응급의료센터 부서코드 추출_ 경북대 (2011.03.16 Ahn)
  89. model.makeValue("/root/send/cdgrupid", "'002'");
  90. model.makeValue("/root/send/srchdd" , getCurrentDate()); // 조회기준일자
  91. if(submit("TRMNW00001", false)){
  92. eERDEPTCD = model.getvalue("/root/code/codeinfo/codelist[cdgrupid='002']/cdid");
  93. }
  94. //원본:의사의 경우만
  95. //if(sJobKindCD == "0330" || sJobKindCD == "0310" ){
  96. if(ssflag=="Y") {
  97. //---------(20101204) 경북대
  98. grp_search.visible = true;
  99. grp_save.visible = false;
  100. //grp_data.disabled = true;
  101. }else{
  102. grp_search.visible = false;
  103. grp_save.visible = true;
  104. }
  105. /*
  106. // 간호하드코딩 테이블 조회_20090816(ByKHJ)
  107. var pCode = "'077'"; // 조회할 CdGrupID 코드정보(기관코드조회)
  108. var pDate = getCurrentDate(); // 조회기준일자
  109. fGetNursHardCdInfo(pCode, pDate);
  110. if ( model.getValue("/root/code/codeinfo/codelist[supcdid='01']/cdid") == getUserInfo("dutplceinstcd") ){
  111. grd_detlgrup.colHidden(grd_detlgrup.colRef("paingb")) = false;
  112. setParameter("SPMNW04800_PARAM9SHOW","Y");
  113. }else{
  114. grd_detlgrup.colHidden(grd_detlgrup.colRef("paingb")) = true;
  115. }
  116. */
  117. //조회조건을 세팅한다.
  118. model.removenode('/root/cond');
  119. model.makeNode('/root/cond/wardcd');
  120. model.makeNode('/root/cond/roomcd');
  121. model.makeNode('/root/cond/patientnm');
  122. model.makeNode('/root/cond/pid');
  123. // 응급실 구역정보 추가
  124. model.makeNode('/root/cond/zonecd');
  125. model.makeNode('/root/cond/nextyn');
  126. model.makeValue(rdo_stdradio.attribute("ref"), "2" ); // 종료전(최근입력만) 선택
  127. model.makeValue(ipt_genrdd.attribute("ref"), getCurrentDate()); // 기준일에 현재날짜(디폴트)
  128. model.makeValue(ipt_genrtm.attribute("ref"), getCurrentDateTime().substring(9,13)); // 기준시간 셋팅
  129. //병동 조회
  130. if(!submit('TRMNW04705')){
  131. messageBox('화면 초기화를', 'E009');
  132. return;
  133. }
  134. //그리드에 들어갈 공통코드리스트 조회
  135. // if(!submit("TRMNW04701")){
  136. // messageBox('화면 초기화를', 'E009');
  137. // return;
  138. // }
  139. //상단정보를 가져온다.
  140. var isOpener = fSetPatInfo();
  141. //가정간호 parameter 세팅
  142. if(checkOpener()){
  143. HC_isHomeCare = fSetHomeCareParamter();
  144. }
  145. //상단정보가 있으면 바로 조회
  146. if(isOpener || HC_isHomeCare){
  147. // fSearch();
  148. fSearchRecInfo();
  149. //조회후 그리드의 발생부위, 발생일자를 머지
  150. fMergeGenrAreaDD();
  151. }else{
  152. model.setValue("/root/cond/wardcd", getUserInfo("dutplcecd"));
  153. // 응급실인 경우 (2011.03.16 Ahn)
  154. fGetWardChngInfo("N");
  155. //병실정보 조회
  156. fSearchRoomcd();
  157. model.setFocus("cmb_roomcd");
  158. if(eERFLAG == "Y"){
  159. cmb_roomcd.value = model.getValue("/root/roomcdgrup/roomcdgruplist[1]/roomcd");
  160. //선택한 병실에 해당하는 환자리스트 조회
  161. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value);
  162. model.setFocus("cmb_erpat");
  163. }
  164. }
  165. var pFlag = null;
  166. var flag = 'SMMNW04800';
  167. fGetSettingPatientList_type4(pFlag,flag);
  168. if(model.getValue("/root/cond/pid")!=""){
  169. if(getNodesetCount("/root/temp/cond/settingpatient/settingpatientlist") > 0){
  170. model.setValue(cmb_mypatlist.attribute('ref'), model.getValue("/root/cond/pid"));
  171. cmb_mypatlist.refresh();
  172. }
  173. }
  174. }
  175. /**
  176. * @ver : 2008.06.12
  177. * @author : dhkim
  178. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  179. * @type : function
  180. * @access : public
  181. * @param :
  182. * @return : true/false (true는 가정간호 parameter정상 세팅/ false는 리턴)
  183. * @desc : 가정간호의 parameter를 넘겨받은 경우에는 조회조건에 parameter값을 setting한다.
  184. * 입원의 경우에는 병동, 병실정보, 등록번호, 환자명을 조회영역에 세팅한다.
  185. * 외래의 경우에는 병동, 병실정보 및 중증도점수 조회영역을 hidden시키고 등록번호, 환자명을 조회영역에 세팅한다.
  186. * [가정간호에서 받아오는 parameter]
  187. * - homecarecd : 3090100000 (가정간호를 구분하기 위한 부서코드)
  188. * - ioflag : I/O (I:입원, O:외래)
  189. * - pid : 등록번호
  190. * - hngnm : 환자명
  191. * - wardcd : 병동코드
  192. * - roomcd : 병실코드
  193. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  194. */
  195. function fSetHomeCareParamter(){
  196. //가정간호 parameter를 가져온다.
  197. model.removenode('/root/hidden/homecareparam');
  198. model.makenode('/root/hidden/homecareparam');
  199. HC_homecarecd = opener.javascript.getParameter('homecarecd');//'3090100000';//'3090100000';//
  200. HC_ioflag = opener.javascript.getParameter('ioflag');//'O';//'I';//
  201. var pid = opener.javascript.getParameter('pid'); //'551121110';//'11524296';//
  202. var hngnm = opener.javascript.getParameter('hngnm'); //'김미연';//'이상월';//
  203. var wardcd = opener.javascript.getParameter('wardcd');//'';//'3050107000';//
  204. var roomcd = opener.javascript.getParameter('roomcd');//'';//'4003';//
  205. //외래/입원의 경우에 따라 조회영역을 visible/hidden처리
  206. fHiddenRoomWard(HC_ioflag);
  207. //가정간호구분자가 널이면 리턴
  208. if(HC_homecarecd != null && HC_homecarecd != ''){
  209. if(pid == null || pid == ''){
  210. messageBox('필수정보가 없으므로 기록을 조회할 수', 'I004');
  211. return false;
  212. }else{
  213. if(HC_ioflag == 'O'){
  214. //환자명 combonode, input pid set
  215. model.removenode('/root/patientgrup/patientgruplist');
  216. model.makeValue('/root/patientgrup/patientgruplist/patientnm', hngnm);
  217. model.makeValue('/root/patientgrup/patientgruplist/pid' , pid);
  218. model.setValue(cmb_patientnm.attribute('ref') , pid);
  219. model.setValue(ipt_pid.attribute('ref') , pid);
  220. model.refresh();
  221. }else if(HC_ioflag == 'I'){
  222. //pid를 가지고 병실, 병동 정보를 찾는다.
  223. fSetWardRoomPidInfo(wardcd, roomcd, pid);
  224. }
  225. return true;
  226. }
  227. }else{
  228. return false;
  229. }
  230. }
  231. /**
  232. * @ver : 2008.06.12
  233. * @author : dhkim
  234. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  235. * @type : function
  236. * @access : public
  237. * @param : ioflag I/O (I:입원, O:외래)
  238. * @return :
  239. * @desc : 입원의 경우에는 병동, 병실정보, 등록번호, 환자명을 조회영역에 visible.
  240. * 외래의 경우에는 병동, 병실정보 및 중증도점수 조회영역을 hidden.
  241. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  242. */
  243. function fHiddenRoomWard(ioflag){
  244. if(ioflag == 'O'){
  245. ctn_ward.attribute('visibility') = 'hidden';
  246. cmb_wardcd.attribute('visibility') = 'hidden';
  247. ctn_room.attribute('visibility') = 'hidden';
  248. cmb_roomcd.attribute('visibility') = 'hidden';
  249. ctn_searchflag.attribute('style') = 'top:14px;';
  250. rdo_stdradio.attribute('style') = 'top:14px;';
  251. }else{
  252. ctn_ward.attribute('visibility') = 'visible';
  253. cmb_wardcd.attribute('visibility') = 'visible';
  254. ctn_room.attribute('visibility') = 'visible';
  255. cmb_roomcd.attribute('visibility') = 'visible';
  256. ctn_searchflag.attribute('style') = 'top:40px;';
  257. rdo_stdradio.attribute('style') = 'top:40px;';
  258. }
  259. }
  260. /**
  261. * @ver : 2008.06.12
  262. * @author : dhkim
  263. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  264. * @type : function
  265. * @access : public
  266. * @param : wardcd 병동코드
  267. * @param : roomcd 병실코드
  268. * @param : pid 등록번호
  269. * @return :
  270. * @desc : pid를 가지고 병실, 병동 정보를 찾아서 조회영역에 병동, 병실, 환자명, 등록번호를 세팅한다.
  271. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  272. */
  273. function fSetWardRoomPidInfo(wardcd, roomcd, pid, zoneflag){
  274. cmb_wardcd.value = wardcd; //병동코드 세팅
  275. fSearchRoomcd(wardcd); //병동에 해당되는 병실조회
  276. cmb_roomcd.value = roomcd; //병실코드 세팅
  277. fGetWardChngInfo("N");
  278. // 응급실일 경우 응급실 환자 조회 (2011.03.16 ahn)
  279. if(eERFLAG == "Y"){
  280. fGetCareComPatList(wardcd, roomcd, cmb_zone.value, eRECFLAG);
  281. // 해당 환자의 section 정보로 재설정
  282. var sectioncd = model.getValue("/root/patientgrup/patientgruplist[pid='" + pid + "']/zonecd");
  283. if(zoneflag== "Chg"){
  284. //model.setValue("/root/cond/zonecd", "-");
  285. model.setValue("/root/cond/zonecd", (sectioncd=="") ? "-" : sectioncd);
  286. cmb_zone.dispatch("xforms-value-changed");
  287. }else if(zoneflag== "NoChg"){
  288. model.setValue("/root/cond/zonecd", eSECTIONCD);
  289. cmb_zone.dispatch("xforms-value-changed");
  290. }
  291. cmb_erpat.value = pid;
  292. }else{
  293. fSearchPatInfo(wardcd, roomcd); //병실에 해당되는 환자조회
  294. }
  295. //퇴원환자의 경우 환자이름에 조회되지 않으므로 콤보아이템을 추가
  296. if ( isNull(model.getValue("/root/patientgrup/patientgruplist[pid='"+pid+"']/patientnm")) ){
  297. addComboItem( "cmb_patientnm", getPatientInfoDetail('hngnm'), pid, "above" );
  298. model.setValue(cmb_patientnm.attribute('ref'), pid);
  299. model.makeValue("/root/patientgrup/patientgruplist[1]/indd", getPatientInfoDetail('indd'));
  300. model.makeValue("/root/patientgrup/patientgruplist[1]/cretno", getPatientInfoDetail('cretno'));
  301. model.makeValue("/root/patientgrup/patientgruplist[1]/orddeptcd", getPatientInfoDetail('orddeptcd'));
  302. model.makeValue("/root/patientgrup/patientgruplist[1]/orddrid", getPatientInfoDetail('medispclid'));
  303. model.makeValue("/root/patientgrup/patientgruplist[1]/ordtype", getPatientInfoDetail('ioflag'));
  304. cmb_patientnm.disabled = true;
  305. }else{
  306. // 응급실일 경우 응급실 환자 조회 (2011.03.16 ahn)
  307. if(eERFLAG == "Y"){
  308. cmb_erpat.value = pid;
  309. }else{
  310. cmb_patientnm.value = pid; //등록번호 세팅
  311. cmb_patientnm.disabled = false;
  312. }
  313. }
  314. ipt_pid.value = pid; //등록번호 세팅
  315. }
  316. /**
  317. * @ver : 2008.06.12
  318. * @author : dhkim
  319. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  320. * @type : function
  321. * @access : public
  322. * @param : pid - 등록번호
  323. * @return :
  324. * @desc : 등록번호만 입력된 상태일때는 병동, 병실정보를 알수 없으므로
  325. * 해당 등록번호의 환자의 병동정보를 조회해온다.
  326. * @----------------------------------------------------------------------------------------------------------------------------------------------------------
  327. */
  328. function fGetPidWardInfo(pid, zoneflag){
  329. if(pid != null && pid != ''){
  330. model.removenode('/root/send');
  331. model.removenode('/root/main/patinfo');
  332. model.makeValue('/root/send/pid', model.getValue('/root/cond/pid'));
  333. if ( getPatientInfoDetail('indschacptstat') == "D"
  334. || getPatientInfoDetail('indschacptstat') == "T" ){
  335. model.makeValue('/root/send/indd', getPatientInfoDetail('indd'));
  336. }
  337. if(!submit('TRMNW04707', "false")){
  338. messageBox('환자정보 조회를', 'E009');
  339. return;
  340. }else{
  341. cmb_wardcd.refresh();
  342. var wardcd = model.getValue('/root/main/patinfo/patinfolist/wardcd'); //병동코드,
  343. var roomcd = model.getValue('/root/main/patinfo/patinfolist/roomcd'); //병실코드
  344. var pid = model.getValue('/root/main/patinfo/patinfolist/pid'); //등록번호
  345. //가정간호의 경우는 상단정보가 아닌 parameter에서 받아온다
  346. if(HC_isHomeCare){
  347. wardcd = opener.javascript.getParameter('wardcd');
  348. roomcd = opener.javascript.getParameter('roomcd');
  349. pid = opener.javascript.getParameter('pid');
  350. }
  351. //pid를 가지고 병실, 병동 정보를 찾는다.
  352. fSetWardRoomPidInfo(wardcd, roomcd, pid, zoneflag);
  353. }
  354. if(model.getValue("/root/cond/pid")!=""){
  355. if(getNodesetCount("/root/temp/cond/settingpatient/settingpatientlist") > 0){
  356. model.setValue(cmb_mypatlist.attribute('ref'), model.getValue("/root/cond/pid"));
  357. cmb_mypatlist.refresh();
  358. }
  359. }
  360. }
  361. }
  362. /**
  363. * @group :
  364. * @ver : 2008.05.27
  365. * @by : dhkim
  366. * @------------------------------------------------------------------------------------------------------------------------------------------------
  367. * @type : function
  368. * @access : public
  369. * @desc : 상단정보를 세팅한다.
  370. * @param :
  371. * @return : true/false - 상단정보 있을때 true, 없을때 false
  372. * @------------------------------------------------------------------------------------------------------------------------------------------------
  373. */
  374. function fSetPatInfo(){
  375. var xPamInfoPath = '/root/temp/paminfo'
  376. var node = getPatientInfoDetails(xPamInfoPath) ;
  377. var pid = ''; var hngnm = ''; var wardcd = ''; var roomcd = '';
  378. // 응급실 구역정보 (2011.03.16 ahn)
  379. var sectioncd = "";
  380. var isOpener = false;
  381. if(checkOpener()){
  382. pid = getPatientInfoDetail('pid');
  383. hngnm = getPatientInfoDetail('hngnm');
  384. wardcd = getPatientInfoDetail('wardcd');
  385. roomcd = getPatientInfoDetail('roomcd');
  386. sectioncd = getPatientInfoDetail('sectioncd'); // 응급실 구역정보 (2011.03.16 ahn)
  387. if(pid != null && pid != ''){
  388. isOpener = true;
  389. }
  390. }
  391. if(pid != '' && hngnm != '' && wardcd != '' && roomcd != ''){
  392. // 응급실일 경우 (2011.03.16 Ahn)
  393. //alert(sectioncd);
  394. fGetWardChngInfo("Y", wardcd, sectioncd);
  395. //콤보에서 끌고 오기 위한 병실, 환자정보 조회
  396. fSearchRoomcd(wardcd);
  397. if(eERFLAG == "Y"){ // 응급실 환자 조회 (2011.03.15 Ahn)
  398. fGetCareComPatList(wardcd, roomcd, cmb_zone.value);
  399. }else{
  400. fSearchPatInfo(wardcd, roomcd);
  401. }
  402. //상단정보를 세팅
  403. model.setValue(cmb_wardcd.attribute('ref'), wardcd);
  404. model.setValue(cmb_roomcd.attribute('ref'), roomcd);
  405. //퇴원환자의 경우 환자이름에 조회되지 않으므로 콤보아이템을 추가
  406. if ( isNull(model.getValue("/root/patientgrup/patientgruplist[pid='"+pid+"']/patientnm")) ){
  407. addComboItem( "cmb_patientnm", getPatientInfoDetail('hngnm'), pid, "above" );
  408. model.setValue(cmb_patientnm.attribute('ref'), pid);
  409. model.makeValue("/root/patientgrup/patientgruplist[1]/indd", getPatientInfoDetail('indd'));
  410. model.makeValue("/root/patientgrup/patientgruplist[1]/cretno", getPatientInfoDetail('cretno'));
  411. model.makeValue("/root/patientgrup/patientgruplist[1]/orddeptcd", getPatientInfoDetail('orddeptcd'));
  412. model.makeValue("/root/patientgrup/patientgruplist[1]/orddrid", getPatientInfoDetail('medispclid'));
  413. model.makeValue("/root/patientgrup/patientgruplist[1]/ordtype", getPatientInfoDetail('ioflag'));
  414. cmb_patientnm.disabled = true;
  415. }else{
  416. model.setValue(cmb_patientnm.attribute('ref'), pid);
  417. cmb_patientnm.disabled = false;
  418. }
  419. model.setValue(ipt_pid.attribute('ref'), pid);
  420. }
  421. model.refresh();
  422. return isOpener;
  423. }
  424. /**
  425. * @group :
  426. * @ver : 2008.05.27
  427. * @by : dhkim
  428. * @------------------------------------------------------------------------------------------------------------------------------------------------
  429. * @type : function
  430. * @access : public
  431. * @desc : 병동코드에 해당되는 병실정보 조회
  432. * @param :
  433. * @return :
  434. * @------------------------------------------------------------------------------------------------------------------------------------------------
  435. */
  436. function fSearchRoomcd(wardcd){
  437. //병실정보 clear
  438. model.setValue('/root/cond/roomcd', '');
  439. model.removenode('/root/roomcdgrup');
  440. //해당 병실 환자정보 clear
  441. model.setValue('/root/cond/patientnm', '');
  442. model.setValue('/root/cond/pid', '');
  443. model.removenode('/root/patientgrup');
  444. cmb_patientnm.disabled = false;
  445. //선택한 병동에 해당되는 병실 조회
  446. if(wardcd == null || wardcd == ''){
  447. wardcd = model.getValue("/root/cond/wardcd");
  448. model.removenode(xPamInfoPath);
  449. fInitTopInfo();
  450. }
  451. fGetCareComRoomList(wardcd);
  452. }
  453. /**
  454. * @group :
  455. * @ver : 2008.05.27
  456. * @by : dhkim
  457. * @------------------------------------------------------------------------------------------------------------------------------------------------
  458. * @type : function
  459. * @access : public
  460. * @desc : 병실코드에 해당되는 환자정보 조회
  461. * @param :
  462. * @return :
  463. * @------------------------------------------------------------------------------------------------------------------------------------------------
  464. */
  465. function fSearchPatInfo(wardcd, roomcd){
  466. //해당 병실 환자정보 clear
  467. model.setValue('/root/cond/patientnm', '');
  468. model.setValue('/root/cond/pid', '');
  469. model.removenode('/root/patientgrup');
  470. //선택한 병동, 병실에 해당되는 환자 조회
  471. if(wardcd == null || wardcd == ''){
  472. wardcd = model.getValue('/root/cond/wardcd');
  473. cmb_patientnm.disabled = false;
  474. model.removenode(xPamInfoPath);
  475. fInitTopInfo();
  476. }
  477. if(roomcd == null || roomcd == '')
  478. roomcd = model.getValue('/root/cond/roomcd');
  479. fGetCareComPatList(wardcd, roomcd);
  480. model.refresh();
  481. }
  482. /**
  483. * @group :
  484. * @ver : 2007.09.06
  485. * : 2008.05.28 dhkim 수정
  486. * @by : 정찬성
  487. * @------------------------------------------------------------------------------------------------------------------------------------------------
  488. * @type : function
  489. * @access : public
  490. * @desc : 조회버튼
  491. * @param :
  492. * @return :
  493. * @------------------------------------------------------------------------------------------------------------------------------------------------
  494. */
  495. function fSearch(zoneflag){
  496. var pid = model.getValue(cmb_patientnm.attribute('ref'));
  497. if(pid == ''){
  498. pid = model.getValue(ipt_pid.attribute('ref'));
  499. }else{
  500. //병실내 환자정보 선택시 환자등록번호 setting
  501. model.setValue(ipt_pid.attribute('ref'), pid);
  502. model.refresh();
  503. }
  504. //부위 추가시 등록번호 필수
  505. if(pid == "") {
  506. messageBox("등록번호를 ","C001");
  507. model.setfocus("ipt_pid");
  508. return false;
  509. }else{
  510. //가정간호에서 팝업을 띄운 외래 환자의 경우엔 skip한다.
  511. if(!HC_isHomeCare || (HC_isHomeCare && HC_ioflag == 'I')){
  512. //등록번호에 해당되는 병동, 병실정보를 조회한다.
  513. fGetPidWardInfo(pid, zoneflag);
  514. }
  515. }
  516. fSearchRecInfo();
  517. //조회후 그리드의 발생부위, 발생일자를 머지
  518. fMergeGenrAreaDD();
  519. return true;
  520. }
  521. function fSearchRecInfo() {
  522. //조회조건값 세팅
  523. var pid = model.getValue("/root/cond/pid");
  524. model.makeValue("/root/send/pid", model.getValue("/root/cond/pid")); //등록번호
  525. model.makeValue("/root/send/indd", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd")); //등록번호
  526. model.makeValue("/root/send/cretno", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno")); //등록번호
  527. model.makeValue("/root/send/genrdd", model.getValue("/root/cond/genrdd")); //기준일자(발생일자)
  528. model.makeValue("/root/send/genrtm", model.getValue("/root/cond/genrtm")); //기준시간(발생시간)
  529. model.makeValue("/root/send/stdradio", model.getValue("/root/cond/stdradio")); //조회조건의라디오(전체/종료전(전체)/종료전(최근입력만))
  530. //통증관리 기록 조회
  531. model.removenode('/root/main/detlgrup');
  532. if(submit('TRMNW04802')){
  533. //그리드변경시 update상태파악위한 노드백업
  534. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  535. }
  536. }
  537. /**
  538. * @group :
  539. * @ver : 2008.05.28
  540. * @by : dhkim
  541. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  542. * @type : function
  543. * @access : public
  544. * @desc : 조회후 발생부위, 방향,원인 가 같으면 머지한다.
  545. * @param :
  546. * @return :
  547. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  548. */
  549. function fMergeGenrAreaDD(){
  550. grd_detlgrup.mergeCol(grd_detlgrup.colRef("obspartnm")) = true;
  551. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cause")) = true;
  552. grd_detlgrup.mergeCol(grd_detlgrup.colRef("direcnm")) = true;
  553. grd_detlgrup.mergeCol(grd_detlgrup.colRef("flag")) = false;
  554. grd_detlgrup.mergeCol(grd_detlgrup.colRef("recdd")) = false;
  555. grd_detlgrup.mergeCol(grd_detlgrup.colRef("rectm")) = false;
  556. grd_detlgrup.mergeCol(grd_detlgrup.colRef("symptomid")) = false;
  557. grd_detlgrup.mergeCol(grd_detlgrup.colRef("freq")) = false;
  558. grd_detlgrup.mergeCol(grd_detlgrup.colRef("paingb")) = false;
  559. grd_detlgrup.mergeCol(grd_detlgrup.colRef("paingbid")) = false;
  560. grd_detlgrup.mergeCol(grd_detlgrup.colRef("term")) = false;
  561. grd_detlgrup.mergeCol(grd_detlgrup.colRef("term")) = false;
  562. // 기간 정보 추가
  563. grd_detlgrup.mergeCol(grd_detlgrup.colRef("termtm")) = false;
  564. grd_detlgrup.mergeCol(grd_detlgrup.colRef("termth")) = false;
  565. grd_detlgrup.mergeCol(grd_detlgrup.colRef("termdd")) = false;
  566. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt")) = false;
  567. grd_detlgrup.mergeCol(grd_detlgrup.colRef("resn")) = false;
  568. grd_detlgrup.mergeCol(grd_detlgrup.colRef("arbitration")) = false;
  569. grd_detlgrup.mergeCol(grd_detlgrup.colRef("valu")) = false;
  570. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pid")) = false;
  571. grd_detlgrup.mergeCol(grd_detlgrup.colRef("instcd")) = false;
  572. grd_detlgrup.mergeCol(grd_detlgrup.colRef("obsrecseq")) = false;
  573. grd_detlgrup.mergeCol(grd_detlgrup.colRef("direcid")) = false;
  574. grd_detlgrup.mergeCol(grd_detlgrup.colRef("causeid")) = false;
  575. grd_detlgrup.mergeCol(grd_detlgrup.colRef("symptom")) = false;
  576. grd_detlgrup.mergeCol(grd_detlgrup.colRef("grupcd")) = false;
  577. grd_detlgrup.mergeCol(grd_detlgrup.colRef("sel")) = false;
  578. grd_detlgrup.mergeCol(grd_detlgrup.colRef("obspartid")) = false;
  579. grd_detlgrup.mergeCol(grd_detlgrup.colRef("freqid")) = false;
  580. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pntid")) = false;
  581. grd_detlgrup.mergeCol(grd_detlgrup.colRef("lastupdtrid")) = false;
  582. grd_detlgrup.mergeCol(grd_detlgrup.colRef("tool")) = false;
  583. grd_detlgrup.mergeCol(grd_detlgrup.colRef("toolid")) = false;
  584. //약물중재, 비약물중재 컬럼추가_20110414_SMY
  585. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt1")) = false;
  586. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt2")) = false;
  587. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt3")) = false;
  588. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt4")) = false;
  589. grd_detlgrup.mergeCol(grd_detlgrup.colRef("pnt5")) = false;
  590. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps1")) = false;
  591. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps2")) = false;
  592. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps3")) = false;
  593. grd_detlgrup.mergeCol(grd_detlgrup.colRef("cnps4")) = false;
  594. grd_detlgrup.mergeCol(grd_detlgrup.colRef("drugarbt")) = false;
  595. grd_detlgrup.mergeCol(grd_detlgrup.colRef("nondrugarbt")) = false;
  596. grd_detlgrup.mergeCol(grd_detlgrup.colRef("nondrugarbtid"))= false;
  597. }
  598. /**
  599. * @group :
  600. * @ver : 2015.07.21
  601. * @by : dhkim
  602. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  603. * @type : function
  604. * @access : public
  605. * @desc : Duty별 통증기록 유무 내환자 세팅 환자 목록에 표기
  606. * @param :
  607. * @return :
  608. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  609. */
  610. function fGetSettingPatientList_type4(pFlag,flag){
  611. var sRefresh = "true";
  612. if( !isNull(pFlag)){
  613. sRefresh = pFlag
  614. }
  615. if(flag != null || flag != ""){
  616. model.makeValue("root/send/refCond/flag",flag);
  617. }
  618. if(submit("TRMNR00921", sRefresh)){
  619. }
  620. }
  621. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  622. //+++++++++++++++++++++++++++++++++++++++++++ 조회관련 펑션 모음 끝 ++++++++++++++++++++++++++++++++++++++++++++++//
  623. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  624. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  625. //+++++++++++++++++++++++++++++++ 욕창관련 팝업호출관련 펑션모음 시작 ++++++++++++++++++++++++++++++++++++++++++++++//
  626. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  627. /////////////////팝업 오픈 시작////////////////////
  628. /**
  629. * @group :
  630. * @ver : 2008.05.28
  631. * @by : dhkim
  632. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  633. * @type : function
  634. * @access : public
  635. * @desc : 첨부파일팝업을 호출
  636. * @param :
  637. * @return :
  638. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  639. */
  640. function fOpenFilePopup(){
  641. var iRow = grd_detlgrup.row;
  642. var cdColIdx = 0;
  643. var mergeyn = 0;
  644. var pid = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/pid');
  645. var obsrecseq = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obsrecseq');
  646. var grupcd = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/grupcd');
  647. var stat = '';
  648. for(var i = 2 ; i < grd_detlgrup.rows; i++){
  649. stat = model.getValue(xBedsoreGridPath + '[' + (i - 1) + ']/stat');
  650. if(stat != '-'){
  651. return;
  652. }
  653. }
  654. if(obsrecseq != ''){
  655. setParameter('pid', pid);
  656. setParameter('grupcd', grupcd);
  657. setParameter('obsrecseq', obsrecseq);
  658. modal('SPMNW04703', 100, 100);
  659. fSearch();
  660. }else{
  661. return ;
  662. }
  663. }
  664. /**
  665. * @group :
  666. * @ver : 2008.08.08
  667. * @by : dhkim
  668. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  669. * @desc : undermining팝업 호출
  670. * @type : function
  671. * @access : public
  672. * @param :
  673. * @return :
  674. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  675. */
  676. function fPopupUndermining(){
  677. var iRow = grd_detlgrup.row;
  678. var cdColIdx = 0;
  679. var mergeyn = 0;
  680. var pid = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/pid');
  681. var obsrecseq = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obsrecseq');
  682. var grupcd = model.getValue(xBedsoreGridPath + '[' + (iRow-1) + ']/grupcd');
  683. var stat = '';
  684. for(var i = 2 ; i < grd_detlgrup.rows; i++){
  685. stat = model.getValue(xBedsoreGridPath + '[' + (i - 1) + ']/stat');
  686. if(stat != '-'){
  687. return;
  688. }
  689. }
  690. if(obsrecseq != ''){
  691. setParameter('pid', pid);
  692. setParameter('grupcd', grupcd);
  693. setParameter('obsrecseq', obsrecseq);
  694. modal('SPMNW04701', 100, 100);
  695. fSearch();
  696. }else{
  697. return ;
  698. }
  699. }
  700. /**
  701. * @group :
  702. * @ver : 2008.05.28
  703. * @by : dhkim
  704. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  705. * @type : function
  706. * @access : public
  707. * @desc : 욕창발생부위 팝업호출
  708. * @param :
  709. * @return :
  710. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  711. */
  712. function fPopupBedSoreImg(){
  713. var iRow = grd_detlgrup.row;
  714. var iCol = grd_detlgrup.col;
  715. var obsrecseq = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/obsrecseq");
  716. //팝업창에 부위 값이 있으면 기존값 셋팅
  717. //이미저장되어있으면 수정하지 못하도록 확인버튼을 막아주는 flag를 set한다.
  718. if(grd_detlgrup.textmatrix(iRow,2) != ""){
  719. setParameter("partall", grd_detlgrup.textmatrix(iRow,3));
  720. if(obsrecseq > 0){
  721. setParameter('editable', 'f');
  722. }
  723. }else{
  724. setParameter('editable', 't');
  725. }
  726. // 환자 기록부분 선택 팝업
  727. modal("SMMNW04701",1, event.screenX-200, event.screenY+50); //이미지호출
  728. //팝업에서 아무것도 선택하지 않고 close를 눌렀을때..
  729. if( getParameter("returnnull") == "close" ){
  730. return ;
  731. } else {
  732. //욕창발생부위 값을 grid에 set
  733. var retStr = getParameter('retStr');
  734. model.setValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obspartnm', retStr);
  735. //그리드 상태값 변경
  736. var stat = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat");
  737. if(stat != "i") {
  738. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat","u");
  739. } else {
  740. //욕창발생부위의 추가시 해당 부위에 대해
  741. //동일한 발생부위+발생일자+발생시간+원인의 '종료'가 없으면
  742. //그 부위를 추가할수 없도록 메세지 리턴
  743. if(grd_detlgrup.rows > 3){
  744. var returnArr = fIsExistEndData(grd_detlgrup.row, true);
  745. if(returnArr[3] != null && !returnArr[3]){
  746. messageBox('선택하신 발생부위는 이미 등록되어 있으며, 종료된 사정이 아니므로 재등록 하실 수 ', 'I004');
  747. model.setValue(xBedsoreGridPath + '[' + (iRow-1) + ']/obspartnm', '');
  748. model.refresh();
  749. return ;
  750. }
  751. }
  752. }
  753. }
  754. }
  755. /**
  756. * @group :
  757. * @ver : 2008.05.28
  758. * @by : dhkim
  759. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  760. * @desc : 통증기준자료팝업 호출
  761. * @type : function
  762. * @access : public
  763. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  764. */
  765. function fPopupBedSoreData(iRow){
  766. // Main Data -> popup 으로
  767. //--------------------------------------------------------------
  768. // Update or Insert 확인 (Parameter= Upflag)
  769. //--------------------------------------------------------------
  770. setParameter("Upflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/lastupdtrid"));//기록자
  771. setParameter("Gubnflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/flag")); //구분
  772. var part = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartid") ; //통증부위ID
  773. setParameter("SPMNW04800_PARAM1", part);
  774. var partnm= model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartnm") ; //통증부위명
  775. setParameter("SPMNW04800_PARAMOBSDATA",partnm);
  776. setParameter("SPMNW04800_ETC",model.getValue("/root/main/etc/partnm"));
  777. var part2 = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcid") ; //방향ID
  778. setParameter("SPMNW04800_PARAM2", part2);
  779. var partnm2=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcnm") ; //방향명
  780. setParameter("SPMNW04800_PARAMDIRDATA",partnm2);
  781. setParameter("SPMNW04800_ETC2",model.getValue("/root/main/etc/catenm"));
  782. var part3=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/causeid") ; //원인ID
  783. setParameter("SPMNW04800_PARAM3", part3);
  784. setParameter("SPMNW04800_ETC3",model.getValue("/root/main/etc/sympnm"));
  785. var partnm4=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cause") ; //원인명
  786. setParameter("SPMNW04800_PARAMCAUDATA", partnm4);
  787. var part5=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptomid") ; //통증양상ID
  788. setParameter("SPMNW04800_PARAM4", part5);
  789. var partnm6=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptom") ; //통증양상명칭
  790. setParameter("SPMNW04800_PARAMSYMDATA", partnm6);
  791. var part7=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freqid") ; //빈도ID
  792. setParameter("SPMNW04800_PARAM5", part7);
  793. var partnm8=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freq") ; //빈도
  794. setParameter("SPMNW04800_PARAMFREQDATA", partnm8);
  795. var part11=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/toolid") ; //사정도구ID
  796. setParameter("SPMNW04800_PARAM7", part11);
  797. var partnm12=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/tool") ; //사정도구
  798. setParameter("SPMNW04800_PARAMTOOLDATA", partnm12);
  799. var part9=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pntid") ; //통증점수ID
  800. setParameter("SPMNW04800_PARAM6", part9);
  801. var partnm10=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt") ; //통증점수
  802. setParameter("SPMNW04800_PARAMPNTDATA", partnm10);
  803. var part9=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/paingbid") ; //통증발생구분ID
  804. setParameter("SPMNW04800_PARAM9", part9);
  805. if(iRow >1 && part11!="" && model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/stat") =="i"){ //동일 통증 부위에 대한 기록내역 있는 경우 이전 사정도구 default check
  806. var part11_1 =model.getValue("/root/main/detlgrup/detlgruplist" + "[" + (iRow-1) + "]/toolid") ; //사정도구ID
  807. setParameter("SPMNW04800_PARAM7", part11_1);
  808. }
  809. //비약물중재 추가_20110418_SMY
  810. var part17 = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbtid") ; //비약물중재ID
  811. setParameter("SPMNW04800_PARAM17", part17);
  812. var partnm18=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbt") ; //비약물중재명
  813. setParameter("SPMNW04800_PARAMNONDRUGDATA",partnm18);
  814. setParameter("SPMNW04800_ETC4",model.getValue("/root/main/etc/nondrugnm"));
  815. //통증점수상세추가_20110418_SMY
  816. var partptn1=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt1") ;
  817. setParameter("SPMNW04800_PARAMPNT1DATA", partptn1);
  818. var partptn2=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt2") ;
  819. setParameter("SPMNW04800_PARAMPNT2DATA", partptn2);
  820. var partptn3=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt3") ;
  821. setParameter("SPMNW04800_PARAMPNT3DATA", partptn3);
  822. var partptn4=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt4") ;
  823. setParameter("SPMNW04800_PARAMPNT4DATA", partptn4);
  824. var partptn5=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt5") ;
  825. setParameter("SPMNW04800_PARAMPNT5DATA", partptn5);
  826. //통증점수cnps상세추가_20150202
  827. var partcnps1=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps1") ;
  828. setParameter("SPMNW04800_PARAMCNPS1DATA", partcnps1);
  829. var partcnps2=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps2") ;
  830. setParameter("SPMNW04800_PARAMCNPS2DATA", partcnps2);
  831. var partcnps3=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps3") ;
  832. setParameter("SPMNW04800_PARAMCNPS3DATA", partcnps3);
  833. var partcnps4=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps4") ;
  834. setParameter("SPMNW04800_PARAMCNPS4DATA", partcnps4);
  835. var termtm=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termtm") ;
  836. setParameter("SPMNW04800_PARAMTERMTMDATA", termtm);
  837. var termth=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termth") ;
  838. setParameter("SPMNW04800_PARAMTERMTHDATA", termth);
  839. var termdd=model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termdd") ;
  840. setParameter("SPMNW04800_PARAMTERMDDDATA", termdd);
  841. modal("SPMNW04802",1, event.screenX-200, event.screenY+50); //기준자료호출
  842. // popup Data--> Main Data
  843. var flg = getParameter("SMMNW04800_PARAM");
  844. //alert("flg : " + flg);
  845. if(flg == "Y") {
  846. // 통증부위
  847. var part1 = getParameter("SMMNW04800_PARAM1");
  848. model.setValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartnm", part1);
  849. var part2 = getParameter("SMMNW04800_PARAM2");
  850. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obspartid", part2);
  851. // 통증방향
  852. var part3=getParameter("SMMNW04800_PARAM3");
  853. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcnm", part3);
  854. var part4=getParameter("SMMNW04800_PARAM4");
  855. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/direcid", part4);
  856. //통증원인
  857. var part5=getParameter("SMMNW04800_PARAM5");
  858. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cause", part5);
  859. var part6=getParameter("SMMNW04800_PARAM6");
  860. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/causeid", part6);
  861. //양상
  862. var part7=getParameter("SMMNW04800_PARAM7");
  863. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptom", part7);
  864. var part8=getParameter("SMMNW04800_PARAM8");
  865. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/symptomid", part8);
  866. //빈도
  867. var part9=getParameter("SMMNW04800_PARAM9");
  868. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freq", part9);
  869. var part10=getParameter("SMMNW04800_PARAM10");
  870. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/freqid", part10);
  871. //점수
  872. var part11=getParameter("SMMNW04800_PARAM11");
  873. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt", part11);
  874. var part12=getParameter("SMMNW04800_PARAM12");
  875. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pntid", part12);
  876. //통증발생구분
  877. var part13=getParameter("SMMNW04800_PARAM13");
  878. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/paingb", part13);
  879. var part14=getParameter("SMMNW04800_PARAM14");
  880. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/paingbid", part14);
  881. //사정도구
  882. var part15=getParameter("SMMNW04800_PARAM15");
  883. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/tool", part15);
  884. var part16=getParameter("SMMNW04800_PARAM16");
  885. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/toolid", part16);
  886. //비약물중재 추가_20110418_SMY
  887. var part17=getParameter("SMMNW04800_PARAM17");
  888. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbt", part17);
  889. var part18=getParameter("SMMNW04800_PARAM18");
  890. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/nondrugarbtid", part18);
  891. //통증점수상세추가_20110418_SMY
  892. var partptn1=getParameter("SMMNW04800_PARAMPnt1");
  893. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt1", partptn1);
  894. var partptn2=getParameter("SMMNW04800_PARAMPnt2");
  895. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt2", partptn2);
  896. var partptn3=getParameter("SMMNW04800_PARAMPnt3");
  897. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt3", partptn3);
  898. var partptn4=getParameter("SMMNW04800_PARAMPnt4");
  899. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt4", partptn4);
  900. var partptn5=getParameter("SMMNW04800_PARAMPnt5");
  901. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pnt5", partptn5);
  902. var partcnps1=getParameter("SMMNW04800_PARAMCNPS1");
  903. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps1", partcnps1);
  904. var partcnps2=getParameter("SMMNW04800_PARAMCNPS2");
  905. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps2", partcnps2);
  906. var partcnps3=getParameter("SMMNW04800_PARAMCNPS3");
  907. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps3", partcnps3);
  908. var partcnps4=getParameter("SMMNW04800_PARAMCNPS4");
  909. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/cnps4", partcnps4);
  910. var parttermtm=getParameter("SMMNW04800_PARAMTERMTM");
  911. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termtm", parttermtm);
  912. var parttermth=getParameter("SMMNW04800_PARAMTERMTH");
  913. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termth", parttermth);
  914. var parttermdd=getParameter("SMMNW04800_PARAMTERMDD");
  915. model.makeValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/termdd", parttermdd);
  916. var partetc=getParameter("SMMNW04800_ETC");
  917. model.makeValue("/root/main/etc/partnm",partetc);
  918. var partetc2=getParameter("SMMNW04800_ETC2");
  919. model.makeValue("/root/main/etc/catenm",partetc2);
  920. var partetc3=getParameter("SMMNW04800_ETC3");
  921. model.makeValue("/root/main/etc/sympnm",partetc3);
  922. var partetc4=getParameter("SMMNW04800_ETC4");
  923. model.makeValue("/root/main/etc/nondrugnm",partetc4);
  924. //----------------------------------------------------------------------
  925. var upchk=getParameter("SMMNW04800_PARAUPFLAG");
  926. if (upchk!='') {
  927. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat","u");
  928. }
  929. //------------------------------------------
  930. }
  931. }
  932. /////////////////팝업데이터 세팅 시작////////////////////
  933. /**
  934. * @group :
  935. * @ver : 2008.08.08
  936. * @by : dhkim
  937. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  938. * @desc :
  939. * cause, causeid,
  940. * stage, stageid,
  941. * color, colorid,
  942. * state, stateid,
  943. * amount, amountid,
  944. * symptom, symptomid,
  945. * dressing, dressingid
  946. * @type : function
  947. * @access : public
  948. * @param :
  949. * @return :
  950. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  951. */
  952. function fSetPopupData(iRow, str) {
  953. var cd;
  954. var nm = '';
  955. // cd = model.getValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str + 'id');//기존저장되어있던 코드값 ;
  956. // nm = model.getValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str); //기존저장되어있던 명칭값 ;
  957. cd = model.getValue(xBedsoreGridPath+'['+(iRow)+']/' + str + 'id');//기존저장되어있던 코드값 ;
  958. nm = model.getValue(xBedsoreGridPath+'['+(iRow)+']/' + str); //기존저장되어있던 명칭값 ;
  959. if(cd != '') {
  960. setParameter(str + "cdnm", "");
  961. setParameter(str + "cd", "");
  962. setParameter(str + "cdid", cd);
  963. //기타가 선택되어진 상태일때 freetext를 파라메터로 set한다.
  964. /** if(nm.indexOf('기타') > -1){
  965. var etcStr = nm.split(')')[0].split('(')[1];
  966. setParameter(str + 'EtcExist', true);
  967. setParameter(str + 'EtcStr', etcStr);
  968. }
  969. if(str == "dressing") {
  970. setParameter("dressingStr", nm);
  971. }
  972. */
  973. }
  974. }
  975. /**
  976. * 원인, 기저부, 상처감염증상,dressing 공통 팝업의 선택결과를 그리드에 세팅
  977. */
  978. function fGetPopupData(iRow, str, retClosParam) {
  979. var retCDParam = '';
  980. var retNMParam = '';
  981. if(retClosParam != "close"){
  982. if(model.getValue(xBedsoreGridPath +"[" + (iRow-1) + "]/stat") != "i") {
  983. model.setValue(xBedsoreGridPath +"[" + (iRow-1) + "]/stat","u");
  984. }
  985. retNMParam = getParameter(str + "cdnm");
  986. retCDParam = getParameter(str +"cd");
  987. } else {
  988. return ;
  989. }
  990. if(str == "stage" || str=="state" || str=="amount") {
  991. model.setValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str, retCDParam) ;
  992. } else {
  993. model.setValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str, retNMParam);
  994. model.setValue(xBedsoreGridPath+'['+(iRow-1)+']/' + str + 'id', retCDParam) ;
  995. }
  996. clearParameter(str + "cdnm");
  997. clearParameter(str + "cd");
  998. clearParameter(str + "cdid");
  999. clearParameter(str + "Str");
  1000. clearParameter(str + "etcExist");
  1001. clearParameter(str + "etcStr");
  1002. }
  1003. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1004. //+++++++++++++++++++++++++++++++ 팝업호출관련 펑션모음 종료 ++++++++++++++++++++++++++++++++++++++++++++++//
  1005. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1006. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1007. //++++++++++++++++++++++++++++++++++++++++ 저장 관련 펑션 모음 시작 ++++++++++++++++++++++++++++++++++++++++++++++//
  1008. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1009. /**
  1010. * @group :
  1011. * @ver : 2008.05.28
  1012. * @by : dhkim
  1013. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1014. * @type : function
  1015. * @access : public
  1016. * @desc : 저장하기전에 유효성을 체크한다.
  1017. * @param :
  1018. * @return :
  1019. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1020. */
  1021. function fIsValid(){
  1022. //그리드 저장데이터 존재여부 체크(default rows = 2)
  1023. if(grd_detlgrup.rows < 2){
  1024. messageBox("저장할 내역이","I004");
  1025. return false;
  1026. }
  1027. //수정 데이터 존재여부 체크
  1028. var sflag = '';
  1029. for(var i = 1; i < grd_detlgrup.rows; i++){
  1030. sflag = getArrayData(grd_detlgrup.getupdatedataAll("i"), i, 0);
  1031. if(sflag == ''){
  1032. messageBox("신규등록/수정사항이","I004");
  1033. return false;
  1034. }
  1035. }
  1036. for(var i = 1 ; i < grd_detlgrup.rows; i++ ){
  1037. //발생부위 입력여부 체크
  1038. if( model.getValue(xBedsoreGridPath + "[" + (i) + "]/obspartnm") == ""
  1039. || model.getValue(xBedsoreGridPath + "[" + (i) + "]/obspartnm").length <= 0 ) {
  1040. messageBox("통증발생부위는","I003");
  1041. return false;
  1042. }
  1043. if ( getPatientInfoDetail('dschdd') < "99991231"
  1044. && model.getValue(xBedsoreGridPath + "[" + (i) + "]/recdd") > getPatientInfoDetail('dschdd') ){
  1045. messageBox((i) + "번째에 사정일자는 퇴원일 "+getPatientInfoDetail('dschdd')+" 이전이어야 합니다" ,"I007");
  1046. return false;
  1047. }
  1048. //필드값 필수입력여부 체크
  1049. var valiStr = '';
  1050. valiStr += model.getValue(xBedsoreGridPath + '[' + (i) + ']/direcnm'); //방향
  1051. valiStr += model.getValue(xBedsoreGridPath + '[' + (i) + ']/causenm'); //원인
  1052. valiStr += model.getValue(xBedsoreGridPath + '[' + (i) + ']/direcnm'); //원인
  1053. if(valiStr == ''){
  1054. messageBox((i) + "번째에 항목을 1개 이상","C002");
  1055. return false;
  1056. }
  1057. // 16.11.03_사정도구, 통증점수 필수항목 지정_AYS
  1058. if( model.getValue(xBedsoreGridPath + '[' + (i) + ']/tool') == '-'
  1059. || model.getValue(xBedsoreGridPath + '[' + (i) + ']/tool') == ''
  1060. || model.getValue(xBedsoreGridPath + '[' + (i) + ']/pnt') == '-'
  1061. || model.getValue(xBedsoreGridPath + '[' + (i) + ']/pnt') == '') {
  1062. messageBox((i) + "번째 열에 사정도구, 통증점수는 필요항목 입니다.","C");
  1063. return false;
  1064. }
  1065. }
  1066. return true;
  1067. }
  1068. /**
  1069. * @group :
  1070. * @ver :
  1071. * :
  1072. * @by :
  1073. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1074. * @type : function
  1075. * @access : public
  1076. * @desc : 통증기록 저장
  1077. * @param :
  1078. * @return :not used
  1079. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1080. */
  1081. function fSave(){
  1082. if(fIsValid()){
  1083. //저장여부 메세지박스
  1084. if(messageBox("","Q002") != 6)
  1085. return false;
  1086. model.removenode("/root/send/savedata");
  1087. model.makeValue("/root/send/savedata/detlgrup", grd_detlgrup.getupdatedataAll('i'));
  1088. model.makeValue("/root/send/savedata/pid", model.getValue("/root/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1089. var pid_test = model.getValue("/root/cond/patientgrupInfo/patientgruplistInfo/pid");
  1090. alert(pid_test);
  1091. if(submit("TXMNW04710")){
  1092. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  1093. fSearch();
  1094. }
  1095. }
  1096. }
  1097. var SIGN_ROW = 0;//for돌때 해당 그리드만 인증데이터로 만들어주기 위해 global variable로 선언
  1098. //인증저장
  1099. function fSignSave(){
  1100. if(fIsValid()){
  1101. var pid = model.getValue("/root/cond/pid");
  1102. var orddd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd");
  1103. var cretno = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno");
  1104. var orddeptcd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddeptcd");
  1105. var orddrid = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddrid");
  1106. var signno = ''; //model.getValue("/root/main/endsummary/endsummaryrecord/signno");
  1107. //var flaglab=model.getValue("/root/main/detlgrup/detlgruplist/
  1108. // 저장 데이터 세팅
  1109. model.removenode("/root/send/savedata");
  1110. //alert( grd_detlgrup.getupdatedataAll('i'));
  1111. model.makeValue("/root/send/savedata/detlgrup", grd_detlgrup.getupdatedataAll('i'));
  1112. //model.makeValue("/root/send/savedata/pid", pid);
  1113. model.refresh();
  1114. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  1115. ViewFunc = "sign";
  1116. //for를 돌면서 각 기록정보의 노드를 복사 한다.
  1117. for(var i = 1; i < grd_detlgrup.rows; i++){
  1118. SIGN_ROW = (i);
  1119. signno = model.getValue(xBedsoreGridPath + '[' + (i) + ']/signno');
  1120. // 인증 로직 호출
  1121. if(Sign.signprocess() == true){
  1122. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
  1123. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1124. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", orddd); // 입원일자(입원,응급)/진료일자(외래)
  1125. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
  1126. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
  1127. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1128. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1129. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1130. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1131. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1132. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "0000001590"); // 각 기록지별 서식코드(0000001590 - 통증간호기록)
  1133. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
  1134. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
  1135. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1136. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1137. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1138. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/screenid", getScreenID());
  1139. //model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/flag", );
  1140. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N");
  1141. } else {
  1142. return ;
  1143. }
  1144. }
  1145. //약물중재 데이터 저장_20110422_SMY
  1146. //model.makeValue("/root/send/savedata/painprcpinfo", model.getValue("/root/main/painprcpinfo"));
  1147. if(submit("TXMNW04810")){
  1148. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  1149. fMakeViewData();
  1150. fSearch("NoChg");
  1151. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  1152. if(eERFLAG == "Y"){
  1153. fgetSelectPid(cmb_erpat);
  1154. }else{
  1155. //-------(20110228) 경북대
  1156. //alert("0");
  1157. fgetSelectPid(cmb_mypatlist);
  1158. //alert("1");
  1159. //-------(20110228) 경북대
  1160. }
  1161. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  1162. var pFlag = null;
  1163. var flag = 'SMMNW04800';
  1164. if(nextyn == "Y") {
  1165. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  1166. if(eERFLAG == "Y"){
  1167. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  1168. fNextSelectErPat(cmb_erpat);
  1169. cmb_erpat.refresh();
  1170. } else{
  1171. //-------(20110228) 경북대
  1172. //alert("3");
  1173. //내환자 조회-간호일지용
  1174. //debugger;
  1175. if (gcurrentpid != "") {
  1176. fGetSettingPatientList_type4(pFlag,flag); //--테스트완료 , XRW를 변경하면됨
  1177. //alert("4");
  1178. var posi = fgetSelectPidNext();
  1179. //alert("5/"+ posi);
  1180. fsetSelectPidNext(cmb_mypatlist,posi);
  1181. //alert("6");
  1182. cmb_mypatlist.refresh();
  1183. }
  1184. }
  1185. } else {
  1186. if(eERFLAG == "Y"){
  1187. fGetCareComPatList(cmb_wardcd.value, cmb_roomcd.value, cmb_zone.value, eRECFLAG);
  1188. fNextSelectErPat(cmb_erpat);
  1189. cmb_erpat.refresh();
  1190. } else {
  1191. if (gcurrentpid != "") {
  1192. fGetSettingPatientList_type4(pFlag,flag); //--테스트완료 , XRW를 변경하면됨
  1193. cmb_mypatlist.dispatch("xforms-value-changed");
  1194. }
  1195. }
  1196. }
  1197. }
  1198. }
  1199. }
  1200. // 인증데이터 만들기.
  1201. function fMake_SignData(){
  1202. if (ViewFunc == "sign"){
  1203. // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
  1204. Sign.addnode("/root/cond" );
  1205. Sign.addnode("/root/main/detlgrup/detlgruplist[" + SIGN_ROW + "]");
  1206. Sign.addnode("/root/main/sriusgrup");
  1207. Sign.addnode("/root/main/patinfo/patinfolist");
  1208. var xDeltGrupPath = Sign.XPATH_SIGNINFO + "/detlgruplist[" + SIGN_ROW + "]";
  1209. var flag;
  1210. var stage;
  1211. var state;
  1212. var amount;
  1213. var underangle;
  1214. //구분
  1215. flag = model.getValue(xDeltGrupPath + "/flag");
  1216. if(flag != "") {
  1217. model.setValue(xDeltGrupPath + "/flag", grd_detlgrup.labelMatrix(SIGN_ROW, grd_detlgrup.colRef("flag")));
  1218. }
  1219. }else if (ViewFunc == "view"){
  1220. // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
  1221. Sign.addnode("/root/cond");
  1222. Sign.addnode("/root/viewinfo/viewdetlgrup");
  1223. Sign.addnode("/root/main/sriusgrup");
  1224. Sign.addnode("/root/main/patinfo/patinfolist");
  1225. var xViewDeltGrupPath = Sign.XPATH_SIGNINFO + "/viewdetlgrup";
  1226. var flag;
  1227. for(var i = 1 ; i <= getNodesetCount(xViewDeltGrupPath + "/detlgruplist"); i++) {
  1228. flag = model.getValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag");
  1229. //구분
  1230. if(flag != "") {
  1231. if(flag == "00"){
  1232. model.setValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag", "초기평가");
  1233. }else if(flag == "01"){
  1234. model.setValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag", "재평가");
  1235. }else if(flag == "99"){
  1236. model.setValue(xViewDeltGrupPath + "/detlgruplist[" + i + "]/flag", "종료");
  1237. }
  1238. }
  1239. }
  1240. }
  1241. }
  1242. function fMakeViewData(){
  1243. var pid = model.getValue("/root/cond/pid");
  1244. var indd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd");
  1245. var cretno = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno");
  1246. var orddeptcd = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddeptcd");
  1247. var orddrid = model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/orddrid");
  1248. var signno = '';
  1249. //조회조건값 세팅
  1250. model.removenode("/root/send");
  1251. model.makeValue("/root/send/pid", model.getValue("/root/cond/pid")); //등록번호
  1252. model.makeValue("/root/send/indd", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/indd")); //등록번호
  1253. model.makeValue("/root/send/cretno", model.getValue("/root/patientgrup/patientgruplist[pid = '"+ pid +"']/cretno")); //등록번호
  1254. model.makeValue("/root/send/genrdd", model.getValue("/root/cond/genrdd")); //기준일자(발생일자)
  1255. model.makeValue("/root/send/genrtm", model.getValue("/root/cond/genrtm")); //기준시간(발생시간)
  1256. model.makeValue("/root/send/stdradio", '0'); //조회조건의라디오(전체/종료전(전체)/종료전(최근입력만))
  1257. //통증관리 기록 조회
  1258. model.removenode("/root/main/patinfolist");
  1259. model.removenode("/root/main/detlgrup");
  1260. if(submit('TRMNW04808')){
  1261. // 인증 로직 호출
  1262. ViewFunc = "view";
  1263. if (Sign.signprocess() == true){
  1264. model.makeValue("/root/send/savedata/pid", pid); // 등록번호
  1265. model.makeValue("/root/send/savedata/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1266. model.makeValue("/root/send/savedata/orddd", indd); // 입원일자(입원,응급)/진료일자(외래)
  1267. model.makeValue("/root/send/savedata/signno", signno); // 서명번호
  1268. model.makeValue("/root/send/savedata/cretno" , cretno); // 생성번호
  1269. model.makeValue("/root/send/savedata/recdd", model.getValue("/root/viewinfo/viewdetlgrup/detlgruplist/signrecddmax")); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1270. model.makeValue("/root/send/savedata/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1271. model.makeValue("/root/send/savedata/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1272. model.makeValue("/root/send/savedata/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1273. model.makeValue("/root/send/savedata/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1274. model.makeValue("/root/send/savedata/formcd", "0000001590"); // 각 기록지별 서식코드(0000001590 통증관리(상처)기록)
  1275. model.makeValue("/root/send/savedata/orddeptcd", orddeptcd); // 진료부서코드
  1276. model.makeValue("/root/send/savedata/orddrid" , orddrid); // 진료의사ID
  1277. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1278. model.makeValue("/root/send/savedata/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1279. model.makeValue("/root/send/savedata/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1280. model.makeValue("/root/send/savedata/screenid" , getScreenID());
  1281. model.makeValue("/root/send/savedata/dispyn", "Y");
  1282. } else {
  1283. return ;
  1284. }
  1285. if(submit("TXMNW04813")){
  1286. var chkViewData = model.getValue("/root/temp/SignData/SignInfo/viewdetlgrup/detlgruplist/obspartnm");
  1287. if (chkViewData==""){
  1288. // if(submit("TXMNW04814")) {//TXMNW04813에서 뷰용데이타 모두 지우고 나서 최근기록일자로 insert함.
  1289. // }
  1290. } else {
  1291. }
  1292. }
  1293. //model.removeNodeset("/root/viewinfo"); //***********************************
  1294. //model.makeNode("/root/viewinfo"); //**********************************
  1295. }
  1296. }
  1297. /**
  1298. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1299. * @type : function
  1300. * @access : public
  1301. * @desc :
  1302. * @param :
  1303. * @return : returnArr[0] compareStr string 선택한 '발생부위+발생일자+발생시간+원인'을 그리드의 반복문과 비교한다.
  1304. * returnArr[1] compRow int 반복문 내에서 compareStr과 같은 string의 첫번째 인덱스(발생부위의 가장 하위 row index찾기 위한 초기값)
  1305. * returnArr[2] isAss boolean 해당발생부위의 사정기록 존재여부
  1306. * returnArr[3] isEnd boolean 해당발생부위의 종료기록 존재여부
  1307. * returnArr[4] pid string 등록번호(set parameter)
  1308. * returnArr[5] grupcd string 그룹코드(set parameter)
  1309. * returnArr[6] obspartnm string 발생부위(set parameter)
  1310. * returnArr[7] genrdd string 발생일자(set parameter)
  1311. * returnArr[8] genrtm string 발생시간(set parameter)
  1312. * returnArr[9] cause string 원인 (set parameter)
  1313. * returnArr[10] causeid string 원인코드(set parameter)
  1314. * @------------------------------------------------------------------------------------------------------------------------------------------------
  1315. */
  1316. function fDel(){
  1317. //삭제할 항목이 선택되었는지 여부를 체크
  1318. var delFlag = false;//체크박스 체크여부
  1319. var sel = ''; //체크박스(true/false)
  1320. var stat = ''; //그리드상태(i/u/d)
  1321. var flag = ''; //등록구분 (등록/사정/종료)
  1322. var fileCnt = 0; //첨부파일등록된 갯수
  1323. var returnArr, isEnd, isAss;
  1324. var checkStr; //체크값 (발생부위 + 발생일자 + 발생시간 + 원인)
  1325. var isSvrDel = false;//db에 저장된 데이터 삭제시
  1326. //20080930 retMsg추가
  1327. var retMsg = messageBox('선택하신 통증기록을', 'Q001');
  1328. //20080930 인증추가
  1329. var pid = model.getValue(xBedsoreGridPath + "/pid");
  1330. var orddd = model.getValue(xBedsoreGridPath + "/orddd");
  1331. var cretno = model.getValue(xBedsoreGridPath + "/cretno");
  1332. var orddeptcd = model.getValue(xBedsoreGridPath + "/orddeptcd");
  1333. var orddrid = model.getValue(xBedsoreGridPath + "/orddrid");
  1334. var signno = '';//model.getValue("/root/main/endsummary/endsummaryrecord/signno");
  1335. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  1336. for(var i = 1; i < grd_detlgrup.rows; i++){
  1337. sel = model.getValue(xBedsoreGridPath + "[" + (i) + "]/sel");
  1338. stat = model.getValue(xBedsoreGridPath + "[" + (i) + "]/stat");
  1339. flag = model.getValue(xBedsoreGridPath + "[" + (i) + "]/flag");
  1340. fileCnt = model.getValue(xBedsoreGridPath + "[" + (i) + "]/addfile");
  1341. SIGN_ROW = (i); //20080930
  1342. if(sel == 'true'){
  1343. delFlag = true;
  1344. if(stat == 'i'){
  1345. //체크한 항목이 행추가 (stat:i)상태인 경우 그리드에서 바로 삭제
  1346. grd_detlgrup.deleteRow(i);
  1347. }else{
  1348. isSvrDel = true;
  1349. //종료가 존재하는지 여부를 배열로 리턴
  1350. returnArr = fIsExistEndData(i);
  1351. isAss = returnArr[2];
  1352. isEnd = returnArr[3];
  1353. checkStr = i + '¿' + returnArr[6] + returnArr[13] + returnArr[14] + returnArr[9];
  1354. if(flag == '00' && isAss){
  1355. //선택한 체크박스가 등록상태이고, 해당 발생부위에 사정기록이 존재할때
  1356. //사정기록까지 삭제하겠냐는 메세지 호출해 확인 누르면 해당 그룹 모두 체크 취소누르면 선택 해제
  1357. if(messageBox('선택하신 통증 부위 "'+returnArr[6]+'"의 초기 기록을 삭제하시면 모든 기록이 함께 삭제됩니다.', 'Q001') == 6){
  1358. fCheckSamePart(checkStr);
  1359. }
  1360. }else{
  1361. //상태값을 'd'로 변경
  1362. model.setValue(xBedsoreGridPath + "[" + (i) + "]/stat", 'd');
  1363. grd_detlgrup.addStatus(i, 'delete');
  1364. //20080930 인증추가
  1365. signno = model.getValue(xBedsoreGridPath + '[' + (i) + ']/signno');
  1366. // 인증 로직 호출
  1367. ViewFunc = "sign";
  1368. if(Sign.signprocess() == true){
  1369. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
  1370. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1371. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", orddd); // 입원일자(입원,응급)/진료일자(외래)
  1372. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
  1373. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
  1374. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1375. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1376. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1377. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1378. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1379. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "0000001670"); // 각 기록지별 서식코드(0000001670 - 통증 간호기록)
  1380. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
  1381. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
  1382. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1383. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1384. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1385. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N");
  1386. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/screenid", getScreenID());
  1387. } else {
  1388. return ;
  1389. }
  1390. }
  1391. }
  1392. }
  1393. }
  1394. //선택한 항목이 없을때
  1395. if(!delFlag){
  1396. messageBox('삭제할 항목을', 'C002');
  1397. return;
  1398. }
  1399. //삭제하기전 첨부파일이 있으면 함께 삭제된다는 메세지 출력
  1400. //db에 저장되어 있던 데이터 삭제시(isSvrDel== true)
  1401. //20080930 retMsg추가
  1402. if(isSvrDel == true && retMsg == 7){
  1403. return;
  1404. }
  1405. //삭제 서브미션 호출
  1406. model.removenode("/root/send/savedata");
  1407. model.makeValue("/root/send/savedata/detlgrup", grd_detlgrup.getupdatedata('delete'));
  1408. model.makeValue("/root/send/savedata/pid", model.getValue("/root/cond/patientgrupInfo/patientgruplistInfo/pid"));
  1409. if(submit("TXMNW04810")){
  1410. model.copyNode("/root/hidden/main/detlgrup", "/root/main/detlgrup");
  1411. fMakeViewData();
  1412. fSearch("NoChg");
  1413. }
  1414. }
  1415. //선택한 발생부위에 해당되는 모든 그룹을 체크(true)로 변경
  1416. function fCheckSamePart(checkStr){
  1417. var _chkArr = checkStr.split('¿');
  1418. var sRow = _chkArr[0];
  1419. var chkStr = _chkArr[1];
  1420. var _chkStr = '';
  1421. var pid = model.getValue(xBedsoreGridPath + "/pid");
  1422. var orddd = model.getValue(xBedsoreGridPath + "/orddd");
  1423. var cretno = model.getValue(xBedsoreGridPath + "/cretno");
  1424. var orddeptcd = model.getValue(xBedsoreGridPath + "/orddeptcd");
  1425. var orddrid = model.getValue(xBedsoreGridPath + "/orddrid");
  1426. var signno = '';
  1427. for(var i = sRow; i < grd_detlgrup.rows; i++){
  1428. _chkStr = model.getValue(xBedsoreGridPath+ '[' + i + ']/obspartnm');
  1429. _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrdd');
  1430. _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/genrtm');
  1431. _chkStr += model.getValue(xBedsoreGridPath+ '[' + i + ']/cause');
  1432. if(chkStr == _chkStr){
  1433. model.setValue(xBedsoreGridPath + "[" + i + "]/stat", 'd');
  1434. model.setValue(xBedsoreGridPath + "[" + i + "]/sel", 'true');
  1435. grd_detlgrup.addStatus(i, 'delete');
  1436. //--------------------------------------------------------------
  1437. // model.setValue(xBedsoreGridPath + "[" + (i) + "]/stat", 'd');
  1438. // grd_detlgrup.addStatus(i, 'delete');
  1439. //20080930 인증추가
  1440. signno = model.getValue(xBedsoreGridPath + '[' + (i) + ']/signno');
  1441. // 인증 로직 호출
  1442. ViewFunc = "sign";
  1443. if(Sign.signprocess() == true){
  1444. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/pid", pid); // 등록번호
  1445. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/certflag", "C"); // 인증여부( T : 임시저장, C : 인증저장)
  1446. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddd", orddd); // 입원일자(입원,응급)/진료일자(외래)
  1447. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signno", signno); // 서명번호
  1448. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/cretno" , cretno); // 생성번호
  1449. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recdd", getCurrentDate()); // 실제 기록이 이루어진 기록일자(통합기록에서 보여짐)
  1450. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/rectm", getCurrentTime()); // 실제 기록이 이루어진 기록시간(통합기록에서 보여짐)
  1451. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/recsaveflag" , "Y"); // 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
  1452. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signflag" , "02"); // 서명자료구분(01 : 진료, 02 : 간호, 20 : 가정간호)
  1453. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signgenrflag", "I"); // 외래/입원구분 (코드정의서 M0010 참조)
  1454. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/formcd", "0000001670"); // 각 기록지별 서식코드(0000001670 - 통증 간호기록)
  1455. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddeptcd", orddeptcd); // 진료부서코드
  1456. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/orddrid" , orddrid); // 진료의사ID
  1457. //미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  1458. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signbfcnts" , Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  1459. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/signaftcnts" , Sign.signedInfos[2]); // 공인인증 처리후 데이터
  1460. model.makeValue("/root/send/savedata/signlist[" +SIGN_ROW+ "]/dispyn", "N");
  1461. } else {
  1462. return ;
  1463. }
  1464. }
  1465. //--------------------------------------------------------------
  1466. }
  1467. model.refresh();
  1468. }
  1469. //체크 해제하면 update상태를 select상태로 변경한다.
  1470. function fChangeStatus(selRow){
  1471. var isChk = model.getValue(xBedsoreGridPath + "[" + (selRow) + "]/sel");
  1472. if(isChk == 'false'){
  1473. model.setValue(xBedsoreGridPath + "[" + (selRow) + "]/stat", '-');
  1474. grd_detlgrup.removeStatus(selRow, 'update');
  1475. }
  1476. }
  1477. /**
  1478. * @group :
  1479. * @ver : 2007.09.27
  1480. * : 2008.05.28 dhkim 수정
  1481. * @by : 정찬성
  1482. * @---------------------------------------------------
  1483. * @type : function
  1484. * @access : public
  1485. * @desc : 발생부위추가
  1486. * @param :
  1487. * @return :
  1488. * @---------------------------------------------------
  1489. */
  1490. function fAddGenArea(){
  1491. //통증발생부위 추가시 등록번호 필수
  1492. if(model.getValue(ipt_pid.attribute('ref')) == "") {
  1493. messageBox("등록번호를 ","C001");
  1494. model.setfocus("ipt_pid");
  1495. return;
  1496. }
  1497. //발생부위 추가전에 그리드에 row가 없으면 조회후 추가
  1498. if(grd_detlgrup.rows == 1){
  1499. if(!fSearch("NoChg") || model.getValue(ipt_pid.attribute('ref')) == ''){
  1500. messageBox('등록번호를', 'C001');
  1501. return;
  1502. }
  1503. }
  1504. var iRows = grd_detlgrup.rows;
  1505. var iRow = grd_detlgrup.row;
  1506. grd_detlgrup.addRow();
  1507. // 후에 수정해야 할 부분..
  1508. if(iRows < 2){
  1509. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/grupcd","00000001");
  1510. } else if(iRows > 1){
  1511. //grupcd만드는 부분인데.. 별의미없는 것 같음..-_-;;;
  1512. var sRowCnt = grd_detlgrup.rows-grd_detlgrup.fixedrows;
  1513. /* grupcd 현재 화면의 최대값 가져오기 시작 */
  1514. var retVal = "" ;
  1515. for(var i=1; i<= sRowCnt; i++){
  1516. if(model.getValue(xBedsoreGridPath+"["+i+"]/grupcd") ) {
  1517. saveyn = 1 ;
  1518. }
  1519. retVal = Math.max(retVal,model.getValue(xBedsoreGridPath+"["+i+"]/grupcd"));
  1520. }
  1521. retVal = retVal + 1 ;
  1522. retVal = String(retVal) ;
  1523. retVal = fLpad(retVal,8,0);// grupcd 8자리 나머지는 0 으로 매꿈
  1524. /* grupcd 현재 화면의 최대값 가져오기 끝 */
  1525. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/grupcd",retVal);
  1526. }
  1527. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat", "i");
  1528. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pid", model.getValue(ipt_pid.attribute('ref')));
  1529. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/flag", "00");
  1530. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/recdd", getCurrentDate());
  1531. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/rectm", getCurrentDateTime().substring(9,13));
  1532. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/genrdd", getCurrentDate());
  1533. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/genrtm", getCurrentDateTime().substring(9,13));
  1534. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/obspartnm", '-');
  1535. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/direcnm", '-');
  1536. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cause", '-');
  1537. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/symptomid", '-');
  1538. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/freq", '-');
  1539. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/freqid", '-');
  1540. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/term", '-');
  1541. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt", '-');
  1542. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pntid", '-');
  1543. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/resn", '-');
  1544. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/arbitration", '-');
  1545. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/valu", '-');
  1546. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/direcid", '-');
  1547. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/causeid", '-');
  1548. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/symptom", '-');
  1549. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/obspartid", '-');
  1550. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/tool", '-');
  1551. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/toolid", '-');
  1552. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/paingb", '-');
  1553. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/recrnm", getUserName());
  1554. //통증점수상세컬럼 추가_20110414_SMY
  1555. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt1", '-');
  1556. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt2", '-');
  1557. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt3", '-');
  1558. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt4", '-');
  1559. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/pnt5", '-');
  1560. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps1", '-');
  1561. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps2", '-');
  1562. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps3", '-');
  1563. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/cnps4", '-');
  1564. //약물중재, 비약물중재컬럼 분리추가_20110414_SMY
  1565. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/drugarbt", '-');
  1566. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/nondrugarbt", '-');
  1567. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/nondrugarbtid", '-');
  1568. grd_detlgrup.colDisabled(grd_detlgrup.colRef("flag")) = true;
  1569. model.refresh();
  1570. }
  1571. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1572. //++++++++++++++++++++++++++++++++++++++++ 저장 관련 펑션 모음 끝 +++++++++++++++++++++++++++++++++++++++++++++++//
  1573. //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  1574. /**
  1575. * @group :
  1576. * @ver : 2007.09. 06
  1577. * @by : 정찬성
  1578. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1579. * @type : function
  1580. * @access : public
  1581. * @desc : 왼쪽 자리수 채우기
  1582. * @param :
  1583. * @return :
  1584. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1585. */
  1586. // Left 빈자리 만큼 padStr 을 붙인다.
  1587. function fLpad(src, len, padStr){
  1588. var retStr = "";
  1589. var padCnt = Number(len) - String(src).length;
  1590. for(var i=0;i<padCnt;i++)
  1591. retStr += String(padStr);
  1592. return retStr+src;
  1593. }
  1594. /**
  1595. * @group :
  1596. * @ver : 2007.04.04
  1597. * 2008.06.04 dhkim 수정
  1598. * @by : 정찬성
  1599. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1600. * @type : function
  1601. * @access : public
  1602. * @desc : 그리드내의 mousedown 이벤트 발생시 호출
  1603. * @param :
  1604. * @return :
  1605. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1606. */
  1607. function fMouseDownGridRow(){
  1608. var iDetlGrupRow = grd_detlgrup.row;
  1609. // right Button Click
  1610. if(event.button == 3){
  1611. //데이터 행이 존재할때
  1612. if(grd_detlgrup.rows > grd_detlgrup.fixedrows && grd_detlgrup.isCell(event.target) && grd_detlgrup.mouseRow >= grd_detlgrup.fixedrows){
  1613. window.setPopupMenu(true, "/root/hidden/detlgrup_sameinflevl_popmenu/menu", "name", "func", false);
  1614. }else{
  1615. window.setPopupMenu(false);
  1616. }
  1617. }
  1618. }
  1619. /**
  1620. * @group :
  1621. * @ver : 2007.04.02
  1622. * : 2008.05.28 dhkim 수정
  1623. * @by : 정찬성
  1624. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1625. * @type : function
  1626. * @access : public
  1627. * @desc : 욕창그리드의 xforms-value-changed이벤트 발생시 호출된다.
  1628. * @param :
  1629. * @return :
  1630. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1631. */
  1632. function fChangedGridCol(){
  1633. // var sDetlGrupRow = (grd_detlgrup.row-1);
  1634. var sDetlGrupRow = (grd_detlgrup.row);
  1635. var sDetlGrupBKRow=0;
  1636. var iRow = grd_detlgrup.row;
  1637. var iCol = grd_detlgrup.col;
  1638. // var stat = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat");
  1639. var stat = model.getValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat");
  1640. //데이터 변경시 그리드 상태값(stat)을 u상태로 변경한다.
  1641. //sdm
  1642. if(stat == "-"){
  1643. //그리드의 stat update를 위한 비교할 hidden nodelist의 idx찾기
  1644. var obsrecseq = model.getValue(xBedsoreGridPath+"["+sDetlGrupRow+"]/obsrecseq");
  1645. for(var i=1; i<= getNodesetCount(xClsListBKPath); i++){
  1646. if(model.getValue(xClsListBKPath+"["+i+"]/obsrecseq") == obsrecseq){
  1647. sDetlGrupBKRow = i;
  1648. break;
  1649. }
  1650. }
  1651. //체크박스 선택 아닐때 조회해서 hidden에 담아둔 nodelist와 변경된 그리드의 nodelist의 stat를 비교하여 수정상태로 바꿔준다.
  1652. // if(iCol != 9){// 선택시 stat 값 변경 않기
  1653. if(iCol != grd_detlgrup.colRef("sel")) {
  1654. var preUpdatedStr = instance1.selectSingleNode(xClsListBKPath+"["+sDetlGrupBKRow+"]").xml;
  1655. var updatedStr = instance1.selectSingleNode(xBedsoreGridPath+"["+sDetlGrupRow+"]").xml;
  1656. if(updatedStr != preUpdatedStr){
  1657. model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row)+"]/stat","u");
  1658. }
  1659. //var preUnderAngle = model.getValue(xClsListBKPath+"["+sDetlGrupBKRow+"]/underangle");
  1660. //var updateUnerAngle = model.getValue(xBedsoreGridPath+"["+ sDetlGrupRow +"]/underangle");
  1661. //if(preUnderAngle != updateUnerAngle) {
  1662. // model.setValue(xBedsoreGridPath+"["+(grd_detlgrup.row-1)+"]/stat2","u");
  1663. //}
  1664. }
  1665. }
  1666. }
  1667. /**
  1668. * @group :
  1669. * @ver : 2007.09.27
  1670. * : 2008.05.28 dhkim 수정
  1671. * @by : 정찬성
  1672. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1673. * @type : function
  1674. * @access : public
  1675. * @desc : 선택한 부위가 종료된 것이 있으면 종료할 수 없다는 메세지를 출력한다.
  1676. * 선택한 부위가 평가된 것이 없으면 종료할 수 없다는 메세지를 출력한다.
  1677. * 발생부위가 등록/평가만 있으면 해당 발생부위 하위에
  1678. * 구분을 종료로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가한다.
  1679. * @param :
  1680. * @return :
  1681. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1682. */
  1683. function fAddSameLevlItemEnd(){
  1684. fAddSameLevlItem(true);
  1685. return ;
  1686. }
  1687. /**
  1688. * @group :
  1689. * @ver : 2008.05.28
  1690. * @by : dhkim
  1691. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1692. * @type : function
  1693. * @access : public
  1694. * @param : selEndMenu - true이면 오른쪽 메뉴에서 종료를 선택한 상태, false이면 사정을 선택한 상태
  1695. * @return :
  1696. * @desc : 선택한 부위가 종료된 것이 있으면 사정할수 없다는 메세지를 출력한다.
  1697. * 발생부위가 등록/사정만 있으면 해당 발생부위 하위에
  1698. * 구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가한다.
  1699. * @--------------------------------------------------------------------------------------------------------------------------------------------------------------
  1700. */
  1701. function fAddSameLevlItem(selEndMenu){//오른쪽 메뉴에서 사정또는 종료 선택시
  1702. var msgStr = '재평가기록';
  1703. if(selEndMenu){
  1704. msgStr = '종료기록';
  1705. }
  1706. //종료또는 사정기록 존재여부를 리턴받는다.
  1707. var returnArr = fIsExistEndData(grd_detlgrup.row);
  1708. var compareStr = returnArr[0];
  1709. var compRow = returnArr[1];
  1710. var isAss = returnArr[2];
  1711. var isEnd = returnArr[3];
  1712. //종료기록이 있으면 입력할수 없다는 메세지 출력후 리턴
  1713. if(isEnd){
  1714. messageBox('선택하신 부위는 이미 종료된 기록이 있으므로 다시 '+ msgStr +' 하실 수', 'I004');
  1715. return;
  1716. }
  1717. //종료메뉴 선택시 사정기록이 없으면 메세지 출력후 리턴
  1718. if(selEndMenu && !isAss){
  1719. messageBox('선택하신 부위는 평가기록이 없으므로 ' + msgStr + ' 하실 수', 'I004');
  1720. return;
  1721. }
  1722. caption1.value="";
  1723. //해당 발생부위 가장 하위의 그리드에 insertRow을 하기 위해 발생부위 가장 하위row index를 찾는다.
  1724. var addLastRow = 0;
  1725. var _compareStr;
  1726. for(var i = compRow; i < grd_detlgrup.rows; i++){
  1727. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm'); //통증부위명
  1728. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/direcnm') ; //방향명
  1729. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause') ; //원인명
  1730. if(compareStr != _compareStr){
  1731. addLastRow= ( i <= 1 ? grd_detlgrup.row+1 : i-1 );
  1732. break;
  1733. }
  1734. }
  1735. //발생부위가 초기평가/재평가만 있으면 해당 발생부위 하위에 재평가 추가
  1736. //구분을 재평가으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
  1737. if(addLastRow == 0 || addLastRow == grd_detlgrup.rows){
  1738. addLastRow = grd_detlgrup.rows;
  1739. grd_detlgrup.addRow();
  1740. }else{
  1741. grd_detlgrup.insertRow(addLastRow);
  1742. }
  1743. //그리드에 통증부위, 방향, 원인 set한다.
  1744. fSetInsertValue(addLastRow, selEndMenu, returnArr);
  1745. grd_detlgrup.colDisabled(grd_detlgrup.colRef("flag")) = true;;
  1746. model.refresh();
  1747. }
  1748. /**
  1749. * @group :
  1750. * @ver : 2008.05.28
  1751. * @by : dhkim
  1752. * @---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1753. * @type : function
  1754. * @access : public
  1755. * @param : selRow - 선택한 row 인덱스
  1756. * @param : updatePartChk - 통증관리 부위선택시 평가종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
  1757. * @return : returnArr(10) - 배열로 리턴한다.
  1758. * @desc : 선택한 발생부위의 기록에 재평가 또는 종료가 존재하는지 여부를 배열로 리턴한다
  1759. * Array idx value type description
  1760. * --------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1761. * returnArr[0] compareStr string 선택한 '발생부위+발생일자+발생시간+원인'을 그리드의 반복문과 비교한다.
  1762. * returnArr[1] compRow int 반복문 내에서 compareStr과 같은 string의 첫번째 인덱스(발생부위의 가장 하위 row index찾기 위한 초기값)
  1763. * returnArr[2] isAss boolean 해당발생부위의 재평가기록 존재여부
  1764. * returnArr[3] isEnd boolean 해당발생부위의 종료기록 존재여부
  1765. * returnArr[4] pid string 등록번호(set parameter)
  1766. * returnArr[5] grupcd string 그룹코드(set parameter)
  1767. * returnArr[6] obspartnm string 발생부위(set parameter)
  1768. * returnArr[7] direcnm string 방향명(set parameter) //genrdd 발생일자(set parameter)
  1769. * returnArr[8] causenm string 원인명(set parameter) //genrtm 발생시간(set parameter)
  1770. * -- returnArr[9] cause string 원인 (set parameter)
  1771. * -- returnArr[10] causeid string 원인코드(set parameter)
  1772. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1773. */
  1774. function fIsExistEndData(selRow, updatePartChk){
  1775. //발생부위에 대해 종료된 사정인 경우 메세지 출력
  1776. var compareStr, _compareStr, _flag;//비교값 str
  1777. var compRow = 0;
  1778. var isAss ; //사정기록 존재여부
  1779. var isEnd ; //종료기록 존재여부
  1780. var returnArr = new Array(8);
  1781. //선택한 발생부위 비교값
  1782. // var pid = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/pid');
  1783. // var grupcd = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/grupcd');
  1784. // var obspartnm = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/obspartnm');
  1785. // var genrdd = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/direcnm');
  1786. // var genrtm = model.getValue(xBedsoreGridPath+ '[' + (selRow-1) + ']/cause');
  1787. var pid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/pid');
  1788. var grupcd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/grupcd');
  1789. var obspartnm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/obspartnm'); //통증부위
  1790. var obspartid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/obspartid'); //통증부위id
  1791. var direcnm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/direcnm'); // 방향
  1792. var direcid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/direcid'); //방향id
  1793. var cause = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/cause'); //원인
  1794. var causeid = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/causeid'); //원인id
  1795. var genrdd = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrdd');
  1796. var genrtm = model.getValue(xBedsoreGridPath+ '[' + (selRow) + ']/genrtm');
  1797. //----------------------------------------------------------------------------------------
  1798. //통증관리부위선택시 평가종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
  1799. if(updatePartChk){
  1800. compareStr = obspartnm;
  1801. }else{
  1802. // compareStr = obspartnm + genrdd + genrtm + cause;
  1803. compareStr = obspartnm + direcnm + cause ;
  1804. }
  1805. var obsrecseq = 0;
  1806. //선택한 compareStr과 그리드내의 모든 _compareStr을 비교한다.
  1807. for(var i = 1; i < grd_detlgrup.rows; i++){
  1808. if(selRow != i){
  1809. // _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm');
  1810. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/obspartnm');
  1811. //통증부위선택시 평가종료되지 않은 부위인지 체크할때에는 발생부위, 구분만 가지고 체크함..
  1812. if(!updatePartChk){
  1813. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i) + ']/direcnm');
  1814. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i) + ']/cause');
  1815. // _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause');
  1816. }
  1817. }
  1818. if(compareStr == _compareStr){
  1819. compRow = i;
  1820. _flag = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/flag');
  1821. if(_flag == '99'){//등록구분이 종료(99)
  1822. isEnd = true;
  1823. obsrecseq = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/obsrecseq');
  1824. break;
  1825. }else if(_flag == '01'){//등록구분이 재평가(01)
  1826. isAss = true;
  1827. obsrecseq = model.getValue(xBedsoreGridPath+ '[' + (i) + ']/obsrecseq');
  1828. }else{
  1829. isEnd = false;
  1830. isAss = false;
  1831. }
  1832. }
  1833. }
  1834. //배열을 리턴한다.
  1835. returnArr[0] = compareStr;
  1836. returnArr[1] = compRow;
  1837. returnArr[2] = isAss;
  1838. returnArr[3] = isEnd;
  1839. returnArr[4] = pid ;
  1840. returnArr[5] = grupcd ;
  1841. returnArr[6] = obspartnm ;
  1842. returnArr[7] = direcnm ; //genrdd;
  1843. returnArr[8] = direcid ; //genrdd;
  1844. returnArr[9] = cause ; //genrtm;
  1845. returnArr[10] = causeid ;
  1846. returnArr[11] = obspartid ;
  1847. returnArr[12] = obsrecseq ;
  1848. returnArr[13] = genrdd ;
  1849. returnArr[14] = genrtm ;
  1850. return returnArr;
  1851. }
  1852. /**
  1853. * @group :
  1854. * @ver : 2008.05.28
  1855. * @by : dhkim
  1856. * @----------------------------------------------------------------------------------------------------------------------------------------------
  1857. * @type : function
  1858. * @access : public
  1859. * @param :
  1860. * @return :
  1861. * @desc : 구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
  1862. * @----------------------------------------------------------------------------------------------------------------------------------------------
  1863. */
  1864. function fSetInsertValue(addLastRow, selEndMenu, returnArr){
  1865. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/stat', 'i');
  1866. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pid', returnArr[4]);
  1867. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/grupcd', returnArr[5]);
  1868. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/obspartnm', returnArr[6]);
  1869. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/direcnm', returnArr[7]);
  1870. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/direcid', returnArr[8]);
  1871. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cause', returnArr[9]);
  1872. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/causeid', returnArr[10]);
  1873. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/obspartid', returnArr[11]);
  1874. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/obsrecseq', returnArr[12]);
  1875. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrdd', returnArr[13]);
  1876. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/genrtm', returnArr[14]);
  1877. model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recdd", getCurrentDate());
  1878. model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/rectm", getCurrentDateTime().substring(9,13));
  1879. //------------------------------------------------------------------------------------------
  1880. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/symptomid', '-'); //통증양상
  1881. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/symptom', '-');
  1882. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/freq', '-');
  1883. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/freqid', '-');
  1884. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/term', '-');
  1885. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt', '-');
  1886. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pntid', '-');
  1887. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/resn', '-');
  1888. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/arbitration','-');
  1889. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/valu', '-');
  1890. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/tool', '-');
  1891. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/toolid', '-');
  1892. //----------------------------------------------------------------------------------------
  1893. model.setValue(xBedsoreGridPath+ "[" + (addLastRow) + "]/recrnm", getUserName());
  1894. //약물중재, 비약물중재 컬럼추가_20110414_SMY
  1895. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt1', '-');
  1896. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt2', '-');
  1897. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt3', '-');
  1898. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt4', '-');
  1899. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/pnt5', '-');
  1900. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps1', '-');
  1901. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps2', '-');
  1902. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps3', '-');
  1903. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/cnps4', '-');
  1904. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/drugarbt', '-');
  1905. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/nondrugarbt', '-');
  1906. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/nondrugarbtid', '-');
  1907. if(!selEndMenu)
  1908. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/flag', '01');//사정
  1909. else
  1910. model.setValue(xBedsoreGridPath+ '[' + (addLastRow) + ']/flag', '99');//종료
  1911. }
  1912. function fAddSameLevlItem111(isEnd){
  1913. var msgStr = '사정기록';
  1914. if(isEnd){
  1915. msgStr = '종료기록';
  1916. }
  1917. //발생부위에 대해 종료된 사정인 경우 메세지 출력
  1918. var compareStr, _compareStr, _flag;//비교값 str
  1919. var pid = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/pid');
  1920. var grupcd = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/grupcd');
  1921. var obspartnm = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/obspartnm');
  1922. var genrdd = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/genrdd');
  1923. var genrtm = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/genrtm');
  1924. var cause = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/cause');
  1925. var causeid = model.getValue(xBedsoreGridPath+ '[' + (grd_detlgrup.row-1) + ']/causeid');
  1926. var compRow = 0;
  1927. var isAss = false;//사정기록 존재여부
  1928. //선택한 발생부위 비교값
  1929. compareStr = obspartnm + genrdd + genrtm + cause;
  1930. //종료기록이 있으면 메세지 출력후 리턴
  1931. for(var i = 2; i < grd_detlgrup.rows; i++){
  1932. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm');
  1933. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrdd');
  1934. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrtm');
  1935. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause');
  1936. if(compareStr == _compareStr){
  1937. compRow = i;
  1938. _flag = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/flag');
  1939. if(_flag == '99'){
  1940. messageBox('선택하신 부위는 이미 종료된 기록이므로 다시 '+ msgStr +' 하실 수', 'I004');
  1941. return;
  1942. }else if(_flag == '01'){
  1943. isAss = true;
  1944. }
  1945. }
  1946. }
  1947. //종료메뉴 선택시 사정기록이 없으면 메세지 출력후 리턴
  1948. if(isEnd && !isAss){
  1949. messageBox('선택하신 부위는 사정기록이 없으므로 ' + msgStr + ' 하실 수', 'I004');
  1950. return;
  1951. }
  1952. //해당 발생부위 가장 하위 row index찾기
  1953. var addLastRow = 0;
  1954. for(var i = compRow; i < grd_detlgrup.rows; i++){
  1955. _compareStr = model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/obspartnm');
  1956. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrdd');
  1957. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/genrtm');
  1958. _compareStr += model.getValue(xBedsoreGridPath+ '[' + (i-1) + ']/cause');
  1959. if(compareStr != _compareStr){
  1960. addLastRow = i;
  1961. break;
  1962. }
  1963. }
  1964. //발생부위가 등록/사정만 있으면 해당 발생부위 하위에 사정 추가
  1965. //구분을 사정으로, 해당부위의 발생일자,발생시간, 원인을 선택한 데이터와 동일하게 추가.
  1966. if(addLastRow == 0){
  1967. addLastRow = grd_detlgrup.rows;
  1968. grd_detlgrup.addRow();
  1969. }else{
  1970. grd_detlgrup.insertRow(addLastRow);
  1971. }
  1972. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/stat', 'i');
  1973. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/pid', pid);
  1974. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/grupcd', grupcd);
  1975. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/obspartnm', obspartnm);
  1976. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/genrdd', genrdd);
  1977. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/genrtm', genrtm);
  1978. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/cause', cause);
  1979. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/causeid', causeid);
  1980. model.setValue(xBedsoreGridPath+ "[" + (addLastRow-1) + "]/recdd", getCurrentDate());
  1981. model.setValue(xBedsoreGridPath+ "[" + (addLastRow-1) + "]/rectm", getCurrentDateTime().substring(9,13));
  1982. if(!isEnd)
  1983. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/flag', '01');//사정
  1984. else
  1985. model.setValue(xBedsoreGridPath+ '[' + (addLastRow-1) + ']/flag', '99');//종료
  1986. model.refresh();
  1987. }
  1988. /**
  1989. * @group :
  1990. * @ver : 2011.03.16
  1991. * @by : 안도영
  1992. * @---------------------------------------------------
  1993. * @type : function
  1994. * @access : public
  1995. * @desc : 구역정보 조회 (응급실인 경우)
  1996. * @param :
  1997. * @param :
  1998. * @return :
  1999. * @---------------------------------------------------
  2000. */
  2001. function fGetWardChngInfo(initFlag, wardCd, sectionCd){
  2002. if(initFlag=="Y") {
  2003. var sWardCD = wardCd;
  2004. }
  2005. else{
  2006. var sWardCD = model.getValue("/root/cond/wardcd");
  2007. }
  2008. if ( sWardCD == eERDEPTCD) {
  2009. eERFLAG = "Y";
  2010. }else{
  2011. eERFLAG = "";
  2012. }
  2013. //응급실인 경우 구역정보 추가조회
  2014. if(eERFLAG == "Y"){ // 응급실
  2015. fGetZoneList();
  2016. //copyNodeset("/root/temp2/zoneinfo", "/root/temp/zoneinfo");
  2017. ctn_room.attribute("text") = "구 역 :";
  2018. cmb_roomcd.visible = "false";
  2019. cmb_erpat.visible = "true";
  2020. cmb_patientnm.visible = "false";
  2021. cmb_zone.visible = "true";
  2022. //cmb_mypatlist.visible = "false";
  2023. //cap_mypatlist.visible = "false";
  2024. ipt_pid.attribute("left") = 755; // 위치 변경
  2025. ipt_pid.attribute("top") = 15;
  2026. btn_patSearch.attribute("left") = 830; // 위치 변경
  2027. btn_patSearch.attribute("top") = 16; // 위치 변경
  2028. cap_mypatlist.attribute("left") = 645;
  2029. cap_mypatlist.attribute("top") = 40;
  2030. cmb_mypatlist.attribute("left") = 755;
  2031. cmb_mypatlist.attribute("top") = 40;
  2032. if(initFlag=="Y"){ // 처음 상단 정보로 화면 열릴 때
  2033. model.setValue("/root/cond/zonecd", (sectionCd == "") ? "-" : sectionCd);
  2034. }else{
  2035. model.setValue("/root/cond/zonecd", "-"); // 'All'로 default
  2036. }
  2037. }else{
  2038. ctn_room.attribute("text") = "병 실 :";
  2039. cmb_roomcd.visible = "true";
  2040. cmb_erpat.visible = "false";
  2041. cmb_patientnm.visible = "true"
  2042. cmb_zone.visible = "false";
  2043. //cmb_mypatlist.visible = "true";
  2044. //cap_mypatlist.visible = "true";
  2045. ipt_pid.attribute("left") = 669; // 기존 위치
  2046. ipt_pid.attribute("top") = 15;
  2047. btn_patSearch.attribute("left") = 747; // 기존 위치
  2048. btn_patSearch.attribute("top") = 16;
  2049. cap_mypatlist.attribute("left") = 780;
  2050. cap_mypatlist.attribute("top") = 15;
  2051. cmb_mypatlist.attribute("left") = 890;
  2052. cmb_mypatlist.attribute("top") = 15;
  2053. model.setValue("/root/cond/zonecd", "");
  2054. }
  2055. ctn_room.refresh();
  2056. cmb_zone.refresh();
  2057. cmb_roomcd.refresh();
  2058. cmb_erpat.refresh();
  2059. cmb_patientnm.refresh();
  2060. }
  2061. /**
  2062. * @group :
  2063. * @ver : 2011.04.19
  2064. * @by : SMY
  2065. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2066. * @desc : 약물중재 클릭시 처방리스트 팝업 호출
  2067. * @type : function
  2068. * @access : public
  2069. * @----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2070. */
  2071. function fPopupPrcpData(iRow){
  2072. // Main Data -> popup 으로
  2073. //--------------------------------------------------------------
  2074. // Update or Insert 확인 (Parameter= Upflag)
  2075. //--------------------------------------------------------------
  2076. setParameter("Upflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/lastupdtrid"));//기록자
  2077. setParameter("Gubnflag",model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/flag")); //구분
  2078. var param_recdd = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/recdd"); //사정일자
  2079. setParameter("SPMNW13900_PARAM_RECDD", param_recdd);
  2080. var param_pid = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/pid");
  2081. setParameter("SPMNW13900_PARAM_PID", param_pid);
  2082. var param_indd = getPatientInfoDetail('indd');
  2083. setParameter("SPMNW13900_PARAM_INDD", param_indd);
  2084. var param_cretno = getPatientInfoDetail('cretno');
  2085. setParameter("SPMNW13900_PARAM_CRETNO", param_cretno);
  2086. //var param_painprcpinfo = model.getValue("/root/main/painprcpinfo"); //통증처방기준자료
  2087. // setParameter("SPMNW13900_PARAM_PAINPRCPINFO", param_painprcpinfo);
  2088. // 통증관리기록순번 추가
  2089. var param_obsrecseq = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/obsrecseq");
  2090. setParameter("SPMNW13900_PARAM_OBSRECSEQ", param_obsrecseq);
  2091. // 그룹코드 추가
  2092. var param_grupcd = model.getValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/grupcd");
  2093. setParameter("SPMNW13900_PARAM_GRUPCD", param_grupcd);
  2094. //modal("SPMNW13900",1, event.screenX-200, event.screenY+50); //처방리스트호출
  2095. window.load("../xrw/SPMNW13900_통증관리처방기준자료팝업.xrw","modal", "SPMNW13900", "left: event.screenX-200; top:event.screenY+50; sysmenu:hidden;");
  2096. var flg = getParameter("SMMNW04800_PARAM");
  2097. if(flg == "Y") {
  2098. var param_painprcpinfo = getParameter("SPMNW13900_PARAMPainPrcpInfo");
  2099. //model.setValue("/root/main/painprcpinfo", param_painprcpinfo);
  2100. model.setValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/painprcpinfo", param_painprcpinfo);
  2101. var param_painprcpnm = getParameter("SPMNW13900_PARAMPainPrcpNm");
  2102. model.setValue("/root/main/detlgrup/detlgruplist" + "[" + iRow + "]/drugarbt", param_painprcpnm);
  2103. var upchk=getParameter("SPMNW13900_PARAUPFLAG");
  2104. if (upchk!='') {
  2105. model.setValue(xBedsoreGridPath+"["+(iRow)+"]/stat","u");
  2106. }
  2107. }
  2108. }
  2109. function fSearch2(zoneflag){
  2110. var pid = model.getValue(cmb_mypatlist.attribute('ref'));
  2111. if(pid == ''){
  2112. pid = model.getValue(ipt_pid.attribute('ref'));
  2113. }else{
  2114. //병실내 환자정보 선택시 환자등록번호 setting
  2115. model.setValue(ipt_pid.attribute('ref'), pid);
  2116. model.refresh();
  2117. }
  2118. //부위 추가시 등록번호 필수
  2119. if(pid == "") {
  2120. messageBox("등록번호를 ","C001");
  2121. model.setfocus("ipt_pid");
  2122. return false;
  2123. }else{
  2124. //가정간호에서 팝업을 띄운 외래 환자의 경우엔 skip한다.
  2125. if(!HC_isHomeCare || (HC_isHomeCare && HC_ioflag == 'I')){
  2126. //등록번호에 해당되는 병동, 병실정보를 조회한다.
  2127. fGetPidWardInfo(pid, zoneflag);
  2128. }
  2129. }
  2130. fSearchRecInfo();
  2131. //조회후 그리드의 발생부위, 발생일자를 머지
  2132. fMergeGenrAreaDD();
  2133. return true;
  2134. }
  2135. /* -----(20110228) 경북대 ------------------------ */
  2136. // 현재 위치 인지하기
  2137. function fgetSelectPid(sobj){
  2138. //현재위치찾기
  2139. //alert("sobj.value:" + sobj.value);
  2140. if (sobj.value != "") {
  2141. gcurrentpid = sobj.value;
  2142. } else {
  2143. gcurrentpid = "";
  2144. }
  2145. //alert("gcurrentpid:" + gcurrentpid);
  2146. }
  2147. // 이전 저장위치이전 다음으로 조회시키기
  2148. function fgetSelectPidNext(){
  2149. var tempPid = "";
  2150. var sposition = 0;
  2151. if ( gcurrentpid != "") {
  2152. for(i = 1; i <= getNodesetCount(gpidPath); i++ ) {
  2153. tempPid = model.getValue(gpidPath + "["+ i +"]/pid");
  2154. //alert(gcurrentpid + "/" + tempPid);
  2155. //gcurrentpid 전역변수
  2156. if (gcurrentpid == tempPid) {
  2157. sposition = i;
  2158. break;
  2159. //i = getNodesetCount(gpidPath) + 1;
  2160. }
  2161. }
  2162. }
  2163. return sposition;
  2164. }
  2165. function fNextSelectErPat(sobj){
  2166. var tempPid = "";
  2167. var sPosition = 0;
  2168. if ( gcurrentpid != "") {
  2169. for(i = 1; i <= getNodesetCount(erPatPidPath); i++ ) {
  2170. tempPid = model.getValue(erPatPidPath + "["+ i +"]/pid");
  2171. if (gcurrentpid == tempPid) {
  2172. sPosition = i;
  2173. break;
  2174. }
  2175. }
  2176. }
  2177. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  2178. if(nextyn == "Y") {
  2179. if(sPosition == getNodesetCount(erPatPidPath)){
  2180. sobj.select(0); // 마지막 환자인 경우 처음 환자로 재 선택
  2181. }else{
  2182. sobj.select(sPosition);
  2183. }
  2184. } else {
  2185. sobj.select(sPosition-1);
  2186. }
  2187. }
  2188. // 재설정하기
  2189. function fsetSelectPidNext(sobj,sposition){
  2190. // 중환자실 환자인 경우 저장 후 현재 환자 재선택 (2011.03.25 Ahn)
  2191. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  2192. var sWardCD = model.getValue("/root/cond/wardcd");
  2193. if(fIsICUPatient(sWardCD)){
  2194. sobj.select(parseInt(sposition)-1);
  2195. }else{
  2196. if ( getNodesetCount(gpidPath) >= sposition ) {
  2197. if(nextyn == "Y") {
  2198. sobj.select(sposition);
  2199. } else {
  2200. sobj.select(sposition-1);
  2201. }
  2202. //alert("1");
  2203. } else {
  2204. //콤보믄 0부터시작
  2205. //instance는 1부터시작
  2206. sobj.select(0);
  2207. //alert("2");
  2208. }
  2209. }
  2210. }
  2211. /**
  2212. * @author : dhkim
  2213. * @create : 20080827
  2214. * @desc : 해당환자가 중환자실 환자인가?
  2215. * @return : boolean (true/false)
  2216. */
  2217. function fIsICUPatient(wardcd){
  2218. var ret = false;//icu 환자인지 여부 디폴트
  2219. /*
  2220. for(var i = 0; i < icuArr.length ; i++){
  2221. if(wardcd == icuArr[i]){
  2222. ret = true;
  2223. return true;
  2224. }
  2225. }
  2226. */
  2227. //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
  2228. for(i = 1; i <= getNodesetCount("/root/tmp/icucdgrup/icucdgruplist"); i++){
  2229. if(wardcd == model.getValue("/root/tmp/icucdgrup/icucdgruplist[" + i + "]/wardcd")
  2230. && model.getValue("/root/tmp/icucdgrup/icucdgruplist[" + i + "]/clsflag") == '4'){
  2231. ret = true;
  2232. return true;
  2233. }
  2234. }
  2235. return ret;
  2236. }
  2237. /***********************************************************************************************************************************************************/
  2238. /****************************************************** 기록에서 사용하는 펑션 종료 ************************************************************/
  2239. /***********************************************************************************************************************************************************/