SMMNW4800.xjs 137 KB

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