comm_app.xjs 119 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : HIT
  4. * Job Name :
  5. * File Name : comm_app.xjs
  6. * Creator : 임준호
  7. * Make Date : 2014-02-18
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-02-18 HIT
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. /********************************************************************************************************************/
  18. /************************* 공통코드 API 관련 함수 *****************************************************************/
  19. /********************************************************************************************************************/
  20. // appf_showValue : 공통 코드 콤보박스에 code컬럼을 표시한다. (2014-04-07 신규)
  21. // appf_getCodeList : 공통 코드를 가져온다. (cache or transaction) (2014-04-07 수정)
  22. // appf_getCodeListSubmit : 공통 코드를 DB에서 가져온다. (only transaction) (2014-04-07 수정)
  23. // appf_getKindCodeList : 유형 코드를 가져온다. (cache or transaction)
  24. // appf_getKindCodeListSubmit : 유형 코드를 DB에서 가져온다. (only transaction)
  25. // appf_getAllKindCodeList : 모든 유형코드를 가져온다.
  26. // appf_getSubCodeList : 상하위 관계 코드를 가져온다.
  27. // appf_openCodeList : 코드목록 조회 팝업
  28. // appf_openKindCodeList : 유형코드목록 조회 팝업
  29. // appf_openCodeGroupList : 코드그룹목록 조회 팝업
  30. // appf_openAllKindCodeList : 모든 유형코드목록 조회 팝업
  31. // appf_openBizCodeList : 업무규칙 목록 조회 팝업
  32. // appf_getSubCodeGroupList : 하위 코드군 목록을 가져온다.
  33. // appf_getUserCodeList : 사용자 코드를 가져온다.
  34. // appf_ContainsUserCD : 사용자코드에 해당 파라미터의 코드 값이 존재 하는지 여부를 체크 한다.
  35. /********************************************************************************************************************/
  36. /************************* 통합부서 API 관련 함수 *****************************************************************/
  37. /********************************************************************************************************************/
  38. // appf_openDeptCodeList : 부서코드목록 조회 팝업
  39. // appf_openMasterDeptCodeList : 통합부서검색 팝업
  40. // appf_openInstDeptCodeList : 근무지 기관 기준 부서코드목록 조회 팝업
  41. // appf_openAssignedInstDeptCodeList : 전체 기관 기준 부서코드목록 조회 팝업
  42. // appf_openAssignedInstDeptCodeBaseDDList : 전체 기관 기준 부서코드목록 조회 팝업, 기준일자 조건 추가
  43. // appf_getDeptCodeList : 부서코드목록 조회
  44. // appf_getInsuExecDeptList : 보험수행구분부서콤보
  45. // appf_getInOrdDeptList : 입원진료과 목록을 조회
  46. // appf_getOutOrdDeptList : 외래진료과 목록을 조회
  47. // appf_getCareOutOrderDepartmentList : 간호기준의 외래진료부서를 조회
  48. // appf_getCntrOrdKindDepartmentList : 진료부서구분이 센터로 등록된 부서를 조회
  49. // appf_getCntrSubOrdDepartmentList : 센터에 속한 하위의 진료부서를 조회한다. 진료부서구분이 센터로 등록된 부서를 선택하면 그 하위에 해당하는 진료 부서만 출력한다.
  50. // appf_getClsDeptList : 지정된 대표과의 분과 목록을 출력한다.
  51. // appf_getInClsDeptList : (입원)지정된 대표과의 분과 목록을 출력한다.
  52. // appf_getOutClsDeptList : (외래)지정된 대표과의 분과 목록을 출력한다.
  53. // appf_getInOutClsDeptList : (외래, 입원)지정된 대표과의 분과 목록을 출력한다.
  54. // appf_getInOutOrdDeptList : 외래/입원 진료과 목록을 조회
  55. // appf_getWardDeptList :
  56. // appf_openDeptListFromTree : 각 트리에 속해있는 아이템중 부서코드 목록을 조회한다. 과거, 현재, 미래이력 조회 (우선순위 현재>미래>과거)
  57. /********************************************************************************************************************/
  58. /************************* 사용자조회 API 관련 함수 **************************************************************/
  59. /********************************************************************************************************************/
  60. // appf_openUserInfoList : 사용자 기본 정보 조회 팝업
  61. // appf_getOrdDeptDoctorList : 진료의 목록
  62. // appf_getInOrdDeptDoctorList : 입원 진료의 목록
  63. // appf_getOutOrdDeptDoctorList : 외래 진료의 목록
  64. // appf_getInOutOrdDeptDoctorList : 입원외래통합 진료의 목록
  65. // appf_getCntrOrdDeptDoctorList :
  66. // appf_openUserInfo : 사원기본정보조회 팝업
  67. // appf_openEmployee : 교직원기본정보조회 팝업
  68. // appf_openTeamMember : 근무지별사용자조회 팝업
  69. // appf_getUserInfoCombo : 로그인한 기관의 '근무지코드'를 검색조건으로 근무지코드에 속한 사용자 조회
  70. /********************************************************************************************************************/
  71. /************************* hismain 공통 화면 ***********************************************************************/
  72. /********************************************************************************************************************/
  73. // appf_openPasswordValidate : 로그인 비밀번호 확인 화면 호출
  74. // appf_openNoticePopup : 공지사항 팝업화면을 띄우는 함수
  75. // appf_openTargetPopup : 공지사항이 보여질 사용자 선택
  76. /********************************************************************************************************************/
  77. /************************* 환자상단 관련 함수 *********************************************************************/
  78. /********************************************************************************************************************/
  79. // appf_initPatientInfo : 환자정보 초기화
  80. // appf_setPatientInfo : 환자정보 셋팅
  81. // appf_setPatientInfos : 환자정보 전체 저장
  82. // appf_delPatientInfos : 환자정보 삭제
  83. // appf_getPatientInfo : 환자정보 조회
  84. // appf_getPatientInfos : 환자기본정보 전체 조회
  85. // appf_getPatientInfosWithName : 환자기본정보 전체 조회(컬럼명포함)
  86. // appf_getPatientId : 환자번호 조회
  87. // appf_getPatientName : 환자명 조회
  88. // appf_setPatientFlag : 환자구분을 설정한다.
  89. // appf_setPatientInfoDetail : 환자구분에 따른 상세정보를 설정한다.
  90. // appf_setPatientInfoDetailByKey : 환자상세정보를 key 별로 저장한다. 반드시 setPatientInfoDetail(objDsSrc) 를 통해 최초 한번은 환자상세정보를 설정해야 한다.
  91. // appf_getPatientInfoDetail : 환자구분에 따른 상세정보를 key에 해당하는 value반환한다.
  92. // appf_setOperationInfo : 수술관련 상세정보를 설정한다.(fCheckPatientId-확인필요)
  93. // appf_setOperationInfoDetailByKey : 수술관련 상세정보를 key 별로 설정한다. 반드시 setOperationInfo(objDsSrc) 를 통해 최초 한번은 수술정보를 설정해야 한다.
  94. // appf_getOperationInfo : key에 해당하는 수술관련 정보를 반환한다.
  95. // appf_getOperationInfos : 수술관련 정보를 지정한 dataset으로 모두 복사한다.
  96. // appf_setConsultInfo : 협진관련 상세정보를 설정한다.
  97. // appf_setConsultInfoDetailByKey : 협진관련 상세정보를 key 별로 저장한다. 반드시 setConsultInfo(objDsSrc) 를 통해 최초 한번은 협진정보를 설정해야 한다.
  98. // appf_getConsultInfo : key에 해당하는 협진관련 정보를 반환한다.
  99. // appf_getConsultInfos : 협진관련 정보를 지정한 노드로 모두 copyNode한다.
  100. /********************************************************************************************************************/
  101. /************************* 설명처방 관련 함수 *********************************************************************/
  102. /********************************************************************************************************************/
  103. // appf_openHiChart : 설명처방 창 열기
  104. // appf_sendHiChartLMS : 설명처방 문자 전송
  105. /********************************************************************************************************************/
  106. /************************* 공통코드 API 관련 함수 *****************************************************************/
  107. /********************************************************************************************************************/
  108. /**********************************************************************************
  109. * 함 수 명 : appf_showValue
  110. * 설 명 : 공통 코드 콤보박스에 code컬럼을 표시한다.
  111. * argument : 01.objDs - dataset object
  112. * return Type :
  113. * 작성자 : 임준호
  114. **********************************************************************************/
  115. function appf_showValue(objDs:Dataset, sId, sNm){
  116. if( utlf_isNull(sId) ){
  117. sId = "cdid";
  118. }
  119. if( utlf_isNull(sNm) ){
  120. sNm = "cdnm";
  121. }
  122. var nRowCnt = objDs.rowcount;
  123. for(var i=0 ; i<nRowCnt ; i++){
  124. var sItemCd = utlf_transNullToEmpty(objDs.getColumn(i, sId));
  125. var sItemNm = utlf_transNullToEmpty(objDs.getColumn(i, sNm));
  126. var sMergeItemNm = "["+sItemCd+"]"+" "+sItemNm;
  127. objDs.setColumn(i, sNm, sMergeItemNm);
  128. }
  129. }
  130. /**********************************************************************************
  131. * 함 수 명 : appf_getCodeList
  132. * 설 명 : 공통 코드를 가져온다.
  133. * argument : arrParam
  134. * # cdGrpId(필수) - 코드ID
  135. * # dsNm(필수) - 가져온 코드를 담을 dataset 명
  136. * # sortField(선택) - 정렬할 컬럼명 (cdid, cdnm, dispseq)
  137. * # sortMehotd(선택) - 정렬 방법 (asc, desc)
  138. * # showValue(선택) - code column을 datacolumn과 같이 표시한다.(출력예 : [001] 등록비 )
  139. * 작성예) [{dsNm: "ds_code_1", cdGrpId: "R3310", sortField: "cdnm", sortMehotd: "desc", showValue:true}
  140. * , {dsNm: "ds_code_2", cdGrpId: "R3310", sortField: "cdnm", sortMehotd: "desc", showValue:true}]
  141. * bMinimum - true, false
  142. * bAsync - 동기 / 비동기 여부
  143. * sCallback - callback 함수명
  144. * return Type :
  145. * 작성자 : 임준호
  146. **********************************************************************************/
  147. function appf_getCodeList(arrParam, bMinimum, bAsync, sCallback){
  148. //appf_getCodeListSubmit 인자값
  149. var arrSubmitParam = new Array();
  150. //비동기 여부가 null일때 false
  151. //기본 비동기
  152. if(utlf_isNull(bAsync)){
  153. bAsync = false;
  154. }
  155. //minimun default값은 true
  156. if(utlf_isNull(bMinimum)){
  157. bMinimum = true;
  158. }
  159. for(var i in arrParam){
  160. var bIsCached = false;
  161. var dsCachedDs = null;
  162. if(utlf_isNull(arrParam[i].showValue)) arrParam[i].showValue = false;
  163. //Quick View를 위하여 예외처리함. Quick View실행 시 submit을 실행한다.
  164. try {
  165. dsCachedDs = agv_objAppTopPath.form.getComnCodeCache(arrParam[i].cdGrpId);
  166. }catch (e){
  167. sysf_catchTrace(e);
  168. }
  169. // minumum이 true이고 sortfield_list와 sortmethod_list가 null인 경우에만 cache에서 조회한다.
  170. if(bMinimum && utlf_isNull(arrParam[i].sortField) && utlf_isNull(arrParam[i].sortMehotd)){
  171. bIsCached = true;
  172. }
  173. //cdGrpId로 가져온 cached ds가 null이면 db에서 코드를 가져온다.
  174. if(utlf_isNull(dsCachedDs)){
  175. bIsCached = false;
  176. }
  177. //cdGrpId로 가져온 cached ds가 null이면 db에서 코드를 가져온다.
  178. // if(utlf_isNull(dsCachedDs)){
  179. // bIsCached = false;
  180. // }else{
  181. // if(utlf_isNull(bMinimum)){
  182. // bIsCached = true;
  183. // }else{
  184. // bIsCached = bMinimum;
  185. // }
  186. // }
  187. if(bIsCached){ //cached 공통 코드를 가져온다.
  188. //trace("cached");
  189. if(this.objects[arrParam[i].dsNm] == null){
  190. //trace("==ds null : "+arrParam[i].dsNm);
  191. //form에 ds이 없으면 새로 생성하고 복사
  192. var sDsNm = dsf_createDs(arrParam[i].dsNm);
  193. this.objects[sDsNm].copyData(dsCachedDs);
  194. //trace("dataset id="+this.objects[sDsNm].name);
  195. if(arrParam[i].showValue) appf_showValue(this.objects[sDsNm]);
  196. }else{
  197. //trace("==ds not nul : "+arrParam[i].dsNm);
  198. //form에 ds이 있으면 복사만
  199. this.objects[arrParam[i].dsNm].copyData(dsCachedDs);
  200. if(arrParam[i].showValue) appf_showValue(this.objects[arrParam[i].dsNm])
  201. }
  202. }else{ //db에서 공통 코드를 가져와야 될때.
  203. //trace("submit");
  204. arrSubmitParam.push(arrParam[i]);
  205. }
  206. }
  207. if(arrSubmitParam.length > 0){
  208. appf_getCodeListSubmit(arrSubmitParam, bMinimum, bAsync, sCallback);
  209. }else{
  210. if(sCallback == null) return;
  211. if(sCallback == "undefined") return;
  212. if(sCallback.length == 0) return;
  213. if(bAsync) eval(sCallback + "();");
  214. }
  215. }
  216. /**********************************************************************************
  217. * 함 수 명 : appf_getCodeListSubmit
  218. * 설 명 : 공통 코드를 DB에서 가져온다.
  219. * argument : sCallback - callback function
  220. * arrParam
  221. * #cdGrpId(필수) - 코드ID
  222. * #dsNm(필수) - 가져온 코드를 담을 dataset 명
  223. * #sortField(선택) - 정렬할 컬럼명 (cdid, cdnm, dispseq)
  224. * #sortMehotd(선택) - 정렬 방법 (asc, desc)
  225. * #showValue(선택) - code column을 datacolumn과 같이 표시한다.(출력예 : [001] 등록비 )
  226. * 작성예) [{cdGrpId: "R3310", dsNm: "ds_code_1", sortField: "cdnm", sortMehotd: "desc", showValue: true}
  227. * , {cdGrpId: "R3310", dsNm: "ds_code_2", sortField: "cdnm", sortMehotd: "desc", showValue: true}]
  228. * bMinimum - true, false
  229. * bAsync - 동기 / 비동기 여부
  230. * sCallback - callback 함수명
  231. * return Type :
  232. * 작성자 : 임준호
  233. **********************************************************************************/
  234. function appf_getCodeListSubmit(arrParam, bMinimum, bAsync, sCallback){
  235. var S_IN_DS_CMD = "appf_ds_cmd_getCodeListSubmit";
  236. var S_IN_DS_REQ = "appf_ds_req_getCodeListSubmit";
  237. var sInDsCmd = "";
  238. var sOutDs = "";
  239. var sOutParam = "";
  240. var sGrpIds = "";
  241. var sDupDs = "";
  242. var sMinimum = "true";
  243. //inds cmd 생성
  244. //bMinimun이 null 이면 true로.
  245. if(!utlf_isNull(bMinimum)){
  246. //bMinimum이 false일 경우만 "false" 입력
  247. if(!bMinimum) sMinimum = "false";
  248. }
  249. // if(bMinimum){
  250. // sMinimum = "true";
  251. // }else{
  252. // sMinimum = "false";
  253. // }
  254. dsf_createDsRow(S_IN_DS_CMD
  255. , {col:"minimum", type:"string", size:256, val:sMinimum});
  256. //inds req 생성
  257. if(this.objects[S_IN_DS_REQ] != null){
  258. this.objects[S_IN_DS_REQ].clear();
  259. }else{
  260. var objDs = new Dataset;
  261. this.addChild(S_IN_DS_REQ, objDs);
  262. }
  263. this.objects[S_IN_DS_REQ].addColumn("cdgrupid", "String", "256");
  264. var sTrId = "appf_tr_reqGetCodeLists~";
  265. //outds string 생성
  266. for(var i in arrParam){
  267. //arrParam[i].dsNm 이 form에 없을때만 생성한다.
  268. if(utlf_isNull(this.objects[arrParam[i].dsNm])){
  269. dsf_createDs(arrParam[i].dsNm);
  270. }
  271. //trace("before="+this.objects[arrParam[i].dsNm].name);
  272. this.objects[S_IN_DS_REQ].addRow();
  273. this.objects[S_IN_DS_REQ].setColumn(i, "cdgrupid", arrParam[i].cdGrpId);
  274. this.objects[S_IN_DS_REQ].addColumn("sortfield", "String", "256");
  275. if(utlf_isNull(arrParam[i].sortField)){
  276. this.objects[S_IN_DS_REQ].setColumn(i, "sortfield", "dispseq");
  277. }else{
  278. this.objects[S_IN_DS_REQ].setColumn(i, "sortfield", arrParam[i].sortField);
  279. }
  280. this.objects[S_IN_DS_REQ].addColumn("sortmethod", "String", "256");
  281. if(utlf_isNull(arrParam[i].sortMehotd)){
  282. this.objects[S_IN_DS_REQ].setColumn(i, "sortmethod", "asc");
  283. }else{
  284. this.objects[S_IN_DS_REQ].setColumn(i, "sortmethod", arrParam[i].sortMehotd);
  285. }
  286. // basedd 넘겨서 처리 할 수 있도록 수정 2019.02.21 - smkim
  287. this.objects[S_IN_DS_REQ].addColumn("basedd", "String", "256");
  288. if(utlf_isNull(arrParam[i].baseDd)){
  289. this.objects[S_IN_DS_REQ].setColumn(i, "basedd", "");
  290. }else{
  291. this.objects[S_IN_DS_REQ].setColumn(i, "basedd", arrParam[i].baseDd);
  292. }
  293. sGrpIds = sGrpIds + arrParam[i].cdGrpId + " ";
  294. //sTrId = sTrId+arrParam[i].dsNm+"~";
  295. if(utlf_getStrCount(sGrpIds, arrParam[i].cdGrpId) == 1){
  296. sOutDs = sOutDs + arrParam[i].dsNm+"="+arrParam[i].cdGrpId+" ";
  297. sOutParam = sOutParam + arrParam[i].dsNm+"="+arrParam[i].cdGrpId+"="+arrParam[i].showValue+" ";
  298. }else if(utlf_getStrCount(sGrpIds, arrParam[i].cdGrpId) > 1){
  299. sDupDs = sDupDs + arrParam[i].dsNm+"="+arrParam[i].cdGrpId+"="+arrParam[i].showValue+" ";
  300. }
  301. }
  302. var sAsync = "FALSE";
  303. if(bAsync) sAsync = "TRUE";
  304. sTrId = sTrId + sOutParam + "~" + sAsync + "~" + sCallback + "~" + sDupDs;
  305. var objTrParam = new Object();
  306. objTrParam.id = sTrId;
  307. objTrParam.service = "basiccodeapp.BasicCodeUser";
  308. objTrParam.method = "reqGetCodeLists";
  309. objTrParam.inds = "cmd="+S_IN_DS_CMD+" req="+S_IN_DS_REQ;
  310. objTrParam.outds = sOutDs;
  311. objTrParam.callback = "cbf_appf_tr_reqGetCodeLists";
  312. objTrParam.async = bAsync;
  313. tranf_submit(objTrParam);
  314. }
  315. function cbf_appf_tr_reqGetCodeLists(sSvcId, nErrorCode, sErrorMsg){
  316. //var arrSvcParam = sSvcId.split("~");
  317. var sTranId = sSvcId.split("~")[0];
  318. var sOutDs = sSvcId.split("~")[1];
  319. var sAsync = sSvcId.split("~")[2];
  320. var sCallback = sSvcId.split("~")[3];
  321. var sDupDs = sSvcId.split("~")[4];
  322. var arrOutDs = sOutDs.split(" ");
  323. //Quick View를 위하여 예외처리함. Quick View실행 시 cache에 등록하지 않는다.
  324. //db에서 가져온 코드를 top영역의 code cache에 등록한다.
  325. for(var i=0 ; i<arrOutDs.length ; i++){
  326. var arrTempDsNm = arrOutDs[i].split("=");
  327. if(!utlf_isNull(arrOutDs[i])){
  328. var name = this.objects[arrTempDsNm[0]].name;
  329. this.objects[arrTempDsNm[0]].name = arrTempDsNm[1];
  330. try{
  331. agv_objAppTopPath.form.setComnCodeCache(this.objects[arrTempDsNm[0]]);
  332. }catch(e){
  333. sysf_catchTrace(e);
  334. }
  335. this.objects[arrTempDsNm[0]].name = name; // 데이터셋 이름이 ds_ 없이 코드로만 되어 있어서 다시 원래 이름 붙히도록 수정함 2017.08.09 smkim
  336. if(arrTempDsNm[2] == "true") appf_showValue(this.objects[arrTempDsNm[0]]);
  337. }
  338. }
  339. //중복된 코드를 복사한다.
  340. if(!utlf_isNull(sDupDs)){
  341. //trace("중복="+sDupDs);
  342. var arrDupDs = sDupDs.split(" ");
  343. for(var i in arrDupDs){
  344. if(!utlf_isNull(arrDupDs[i])){
  345. var sDupDsNm = arrDupDs[i].split("=")[0];
  346. var sDupGrpCd = arrDupDs[i].split("=")[1];
  347. var sShowValue = arrDupDs[i].split("=")[2];
  348. var objCachedDs = agv_objAppTopPath.form.getComnCodeCache(sDupGrpCd);
  349. if(this.objects[sDupDsNm] == null){
  350. //form에 ds이 없으면 새로 생성하고 복사
  351. dsf_createDs(sDupDsNm);
  352. this.objects[sDupDsNm].copyData(objCachedDs);
  353. if(sShowValue == "true") appf_showValue(this.objects[sDupDsNm]);
  354. }else{
  355. //form에 ds이 있으면 복사만
  356. this.objects[sDupDsNm].copyData(objCachedDs);
  357. if(sShowValue == "true") appf_showValue(this.objects[sDupDsNm])
  358. }
  359. }
  360. }
  361. }
  362. // Form Callback 함수 호출 async가 true일때만
  363. //if(arrSvcParam[2] == "TRUE"){
  364. //if(arrSvcParam[3] == "null") return;
  365. if(sCallback == null) return;
  366. if(sCallback == "undefined") return;
  367. if(sCallback.length == 0) return;
  368. eval(sCallback + "('" + sTranId + "', '" + nErrorCode + "', '" + sErrorMsg + "');");
  369. //}
  370. }
  371. /**********************************************************************************
  372. * 함 수 명 : appf_getKindCodeList
  373. * 설 명 : 유형 코드를 가져온다.
  374. * argument : arrParam
  375. * #bizId(필수) - biz ID
  376. * #cdGrpId(필수) - 코드ID
  377. * #dsNm(필수) - 가져온 코드를 담을 dataset 명
  378. * #sortField(선택) - 정렬할 컬럼명 (cdid, cdnm, dispseq)
  379. * #sortMehotd(선택) - 정렬 방법 (asc, desc)
  380. * 작성예) [{bizId: "Z0001", cdGrpId: "Z0009", dsNm: "ds_kindCode_1", sortField: "cdnm", sortMehotd: "desc"}
  381. * , {bizId: "M0036", cdGrpId: "M0289", dsNm: "ds_kindCode_2", sortField: "cdnm", sortMehotd: "desc"}]
  382. * bAsync - 동기 / 비동기 여부
  383. * sCallback - callback 함수명
  384. * return Type :
  385. * 작성자 : 임준호
  386. **********************************************************************************/
  387. function appf_getKindCodeList(arrParam, bAsync, sCallback){
  388. //appf_getCodeListSubmit 인자값
  389. var arrSubmitParam = new Array();
  390. //비동기 여부가 null일때 false
  391. //기본 비동기
  392. if(utlf_isNull(bAsync)){
  393. bAsync = false;
  394. }
  395. for(var i in arrParam){
  396. var bIsCached = false;
  397. var sBizCdGrp = arrParam[i].bizId+arrParam[i].cdGrpId;
  398. var dsCachedDs = null;
  399. //Quick View를 위하여 예외처리함. Quick View실행 시 submit을 실행한다.
  400. try {
  401. dsCachedDs = agv_objAppTopPath.form.getComnCodeCache(sBizCdGrp);
  402. }catch (e){
  403. sysf_catchTrace(e);
  404. }
  405. //minimun default값은 true
  406. // if(utlf_isNull(bMinimum)){
  407. // bMinimum = true;
  408. // }
  409. // sortfield_list와 sortmethod_list가 null인 경우에만 cache에서 조회한다.
  410. if(utlf_isNull(arrParam[i].sortField) && utlf_isNull(arrParam[i].sortMehotd)){
  411. bIsCached = true;
  412. }
  413. //cdGrpId로 가져온 cached ds가 null이면 db에서 코드를 가져온다.
  414. if(utlf_isNull(dsCachedDs)){
  415. bIsCached = false;
  416. }
  417. //cdGrpId로 가져온 cached ds가 null이면 db에서 코드를 가져온다.
  418. // if(utlf_isNull(dsCachedDs)){
  419. // bIsCached = false;
  420. // }else{
  421. // if(utlf_isNull(bMinimum)){
  422. // bIsCached = true;
  423. // }else{
  424. // bIsCached = bMinimum;
  425. // }
  426. // }
  427. if(bIsCached){ //cached 공통 코드를 가져온다.
  428. //trace("cached"+arrParam[i].bizId+arrParam[i].cdGrpId);
  429. if(this.objects[arrParam[i].dsNm] == null){
  430. //form에 ds이 없으면 새로 생성하고 복사
  431. var sDsNm = dsf_createDs(arrParam[i].dsNm);
  432. this.objects[sDsNm].copyData(dsCachedDs);
  433. }else{
  434. //form에 ds이 있으면 복사만
  435. this.objects[arrParam[i].dsNm].copyData(dsCachedDs);
  436. }
  437. }else{ //db에서 공통 코드를 가져와야 될때.
  438. //trace("submit");
  439. arrSubmitParam.push(arrParam[i]);
  440. }
  441. }
  442. if(arrSubmitParam.length > 0){
  443. appf_getKindCodeListSubmit(arrSubmitParam, bAsync, sCallback);
  444. }else{
  445. //비동기 이면서 callback함수가 null이 아닐때
  446. if(sCallback == null) return;
  447. if(sCallback == "undefined") return;
  448. if(sCallback.length == 0) return;
  449. if(bAsync) eval(sCallback + "();");
  450. }
  451. }
  452. /**********************************************************************************
  453. * 함 수 명 : appf_getKindCodeListSubmit
  454. * 설 명 : 유형 코드를 DB에서 가져온다.
  455. * argument : arrParam
  456. * #bizId(필수) - biz ID
  457. * #cdGrpId(필수) - 코드ID
  458. * #dsNm(필수) - 가져온 코드를 담을 dataset 명
  459. * #sortField(선택) - 정렬할 컬럼명 (cdid, cdnm, dispseq)
  460. * #sortMehotd(선택) - 정렬 방법 (asc, desc)
  461. * 작성예) [{bizId: "Z0001", cdGrpId: "Z0009", dsNm: "ds_kindCode_1", sortField: "cdnm", sortMehotd: "desc"}
  462. * , {bizId: "M0036", cdGrpId: "M0289", dsNm: "ds_kindCode_2", sortField: "cdnm", sortMehotd: "desc"}]
  463. * bAsync - 동기 / 비동기 여부
  464. * sCallback - callback 함수명
  465. * return Type :
  466. * 작성자 : 임준호
  467. **********************************************************************************/
  468. function appf_getKindCodeListSubmit(arrParam, bAsync, sCallback){
  469. //trace(arrParam.length);
  470. //var S_IN_DS_CMD = "appf_ds_cmd";
  471. var S_IN_DS_REQ = "appf_ds_req_getKindCodeListSubmit";
  472. //var sInDsCmd = "";
  473. var sOutDs = "";
  474. var sGrpIds = "";
  475. var sOutParam = "";
  476. var sDupDs = "";
  477. //inds cmd 생성
  478. // var sMinimum = "true";
  479. // if(bMinimum){
  480. // sMinimum = "true";
  481. // }else{
  482. // sMinimum = "false";
  483. // }
  484. // sInDsCmd = dsf_createDsRow(S_IN_DS_CMD, "minimum="+wrapQuote(sMinimum));
  485. //inds req 생성
  486. if(this.objects[S_IN_DS_REQ] != null){
  487. this.objects[S_IN_DS_REQ].clear();
  488. }else{
  489. var objDs = new Dataset;
  490. this.addChild(S_IN_DS_REQ, objDs);
  491. }
  492. this.objects[S_IN_DS_REQ].addColumn("bizid", "String", "256");
  493. this.objects[S_IN_DS_REQ].addColumn("cdgrupid", "String", "256");
  494. var sTrId = "appf_tr_reqGetKindCodeLists~";
  495. //outds string 생성
  496. for(var i in arrParam){
  497. var sBizCdGrp = arrParam[i].bizId+arrParam[i].cdGrpId;
  498. //arrParam[i].dsNm 이 form에 없을때만 생성한다.
  499. if(utlf_isNull(this.objects[arrParam[i].dsNm])){
  500. dsf_createDs(arrParam[i].dsNm);
  501. }
  502. this.objects[S_IN_DS_REQ].addRow();
  503. this.objects[S_IN_DS_REQ].setColumn(i, "bizid", arrParam[i].bizId);
  504. this.objects[S_IN_DS_REQ].setColumn(i, "cdgrupid", arrParam[i].cdGrpId);
  505. if(utlf_isNull(arrParam[i].sortField)){
  506. this.objects[S_IN_DS_REQ].deleteColumn("sortfield");
  507. }else{
  508. this.objects[S_IN_DS_REQ].addColumn("sortfield", "String", "256");
  509. this.objects[S_IN_DS_REQ].setColumn(i, "sortfield", arrParam[i].sortField);
  510. }
  511. if(utlf_isNull(arrParam[i].sortMehotd)){
  512. this.objects[S_IN_DS_REQ].deleteColumn("sortmethod");
  513. }else{
  514. this.objects[S_IN_DS_REQ].addColumn("sortmethod", "String", "256");
  515. this.objects[S_IN_DS_REQ].setColumn(i, "sortmethod", arrParam[i].sortMehotd);
  516. }
  517. //sOutDs = sOutDs + arrParam[i].dsNm+"="+arrParam[i].bizId+arrParam[i].cdGrpId+" ";
  518. sGrpIds = sGrpIds + sBizCdGrp + " ";
  519. //sTrId = sTrId+arrParam[i].dsNm+"~";
  520. if(utlf_getStrCount(sGrpIds, sBizCdGrp) == 1){
  521. sOutDs = sOutDs + arrParam[i].dsNm+"="+sBizCdGrp+" ";
  522. //sOutParam = sOutParam + arrParam[i].dsNm+"="+arrParam[i].cdGrpId+"="+arrParam[i].showValue+" ";
  523. sOutParam = sOutParam + arrParam[i].dsNm+"="+sBizCdGrp+" ";
  524. }else if(utlf_getStrCount(sGrpIds, sBizCdGrp) > 1){
  525. //sDupDs = sDupDs + arrParam[i].dsNm+"="+arrParam[i].cdGrpId+"="+arrParam[i].showValue+" ";
  526. sDupDs = sDupDs + arrParam[i].dsNm+"="+sBizCdGrp+" ";
  527. }
  528. }
  529. //sTrId = sTrId + sOutDs + "~" + sCallback;
  530. var sAsync = "FALSE";
  531. if(bAsync) sAsync = "TRUE";
  532. //sTrId = sTrId + sOutDs + "~" + sAsync + "~" + sCallback;
  533. sTrId = sTrId + sOutParam + "~" + sAsync + "~" + sCallback + "~" + sDupDs;
  534. tranf_submit({
  535. id: sTrId
  536. , service: "basiccodeapp.KindCodeUser"
  537. , method: "reqGetKindCodeLists"
  538. , inds : "req="+S_IN_DS_REQ
  539. , outds: sOutDs
  540. , async: bAsync
  541. , callback: "cbf_appf_tr_reqGetKindCodeLists"
  542. });
  543. //Quick View를 위하여 예외처리함. Quick View실행 시 cache에 등록하지 않는다.
  544. /*
  545. try{
  546. //db에서 가져온 코드를 top영역의 code cache에 등록한다.
  547. for(var i in arrParam){
  548. if(!utlf_isNull(arrParam[i].dsNm)){
  549. agv_objAppTopPath.form.setComnCodeCache(this.objects[arrParam[i].dsNm]);
  550. }
  551. }
  552. }catch (e){
  553. sysf_catchTrace(e);
  554. }*/
  555. }
  556. function cbf_appf_tr_reqGetKindCodeLists(sSvcId, nErrorCode, sErrorMsg){
  557. // var arrSvcParam = sSvcId.split("~");
  558. // var arrParam = arrSvcParam[1].split(" ");
  559. var sTranId = sSvcId.split("~")[0];
  560. var sOutDs = sSvcId.split("~")[1];
  561. var sAsync = sSvcId.split("~")[2];
  562. var sCallback = sSvcId.split("~")[3];
  563. var sDupDs = sSvcId.split("~")[4];
  564. var arrOutDs = sOutDs.split(" ");
  565. //trace(arrParam.length);
  566. //Quick View를 위하여 예외처리함. Quick View실행 시 cache에 등록하지 않는다.
  567. //db에서 가져온 코드를 top영역의 code cache에 등록한다.
  568. for(var i=0 ; i<arrOutDs.length ; i++){
  569. var arrTempDsNm = arrOutDs[i].split("=");
  570. if(!utlf_isNull(arrOutDs[i])){
  571. this.objects[arrTempDsNm[0]].name = arrTempDsNm[1];
  572. try{
  573. agv_objAppTopPath.form.setComnCodeCache(this.objects[arrTempDsNm[0]]);
  574. }catch(e){
  575. sysf_catchTrace(e);
  576. }
  577. if(arrTempDsNm[2] == "true") appf_showValue(this.objects[arrTempDsNm[0]]);
  578. }
  579. }
  580. //중복된 코드를 복사한다.
  581. if(!utlf_isNull(sDupDs)){
  582. //trace("중복="+sDupDs);
  583. var arrDupDs = sDupDs.split(" ");
  584. for(var i in arrDupDs){
  585. if(!utlf_isNull(arrDupDs[i])){
  586. var sDupDsNm = arrDupDs[i].split("=")[0];
  587. var sDupGrpCd = arrDupDs[i].split("=")[1];
  588. var sShowValue = arrDupDs[i].split("=")[2];
  589. var objCachedDs = agv_objAppTopPath.form.getComnCodeCache(sDupGrpCd);
  590. if(this.objects[sDupDsNm] == null){
  591. //form에 ds이 없으면 새로 생성하고 복사
  592. dsf_createDs(sDupDsNm);
  593. this.objects[sDupDsNm].copyData(objCachedDs);
  594. //if(sShowValue == "true") appf_showValue(this.objects[sDupDsNm]);
  595. }else{
  596. //form에 ds이 있으면 복사만
  597. this.objects[sDupDsNm].copyData(objCachedDs);
  598. //if(sShowValue == "true") appf_showValue(this.objects[sDupDsNm])
  599. }
  600. }
  601. }
  602. }
  603. // Form Callback 함수 호출 async가 true일때만
  604. //if(arrSvcParam[2] == "TRUE" && !utlf_isNull(arrSvcParam[3])){
  605. if(sCallback == null) return;
  606. if(sCallback == "undefined") return;
  607. if(sCallback.length == 0) return;
  608. eval(sCallback + "('" + sTranId + "', '" + nErrorCode+"', '" + sErrorMsg + "');");
  609. //}
  610. }
  611. /**********************************************************************************
  612. * 함 수 명 : appf_getAllKindCodeList
  613. * 설 명 : 모든 유형코드를 가져온다.
  614. * argument : arrParam
  615. * bizId(필수) - biz ID
  616. * cdGrpId(필수) - 코드ID
  617. * dsNm(필수) - 가져온 코드를 담을 dataset 명
  618. * sortField(선택) - 정렬할 컬럼명 (cdid, cdnm, dispseq)
  619. * sortMehotd(선택) - 정렬 방법 (asc, desc)
  620. * 작성예) [{bizId: "Z0001", cdGrpId: "Z0009", dsNm: "ds_kindCode_1", sortField: "cdnm", sortMehotd: "desc"}
  621. * , {bizId: "M0036", cdGrpId: "M0289", dsNm: "ds_kindCode_2", sortField: "cdnm", sortMehotd: "desc"}]
  622. * bAsync - 동기 / 비동기 여부
  623. * sCallback - callback 함수명
  624. * return Type :
  625. * 작성자 : 임준호
  626. **********************************************************************************/
  627. function appf_getAllKindCodeList(arrParam, bAsync, sCallback){
  628. //비동기 여부가 null일때 false
  629. //기본 비동기
  630. if(utlf_isNull(bAsync)){
  631. bAsync = false;
  632. }
  633. var S_IN_DS_REQ = "appf_ds_req_getAllKindCodeList";
  634. //var sInDsCmd = "";
  635. var sOutDs = "";
  636. //inds req 생성
  637. if(this.objects[S_IN_DS_REQ] != null){
  638. this.objects[S_IN_DS_REQ].clear();
  639. }else{
  640. var objDs = new Dataset;
  641. this.addChild(S_IN_DS_REQ, objDs);
  642. }
  643. this.objects[S_IN_DS_REQ].addColumn("bizid", "String", "256");
  644. this.objects[S_IN_DS_REQ].addColumn("cdgrupid", "String", "256");
  645. this.objects[S_IN_DS_REQ].addColumn("organcd", "String", "256");
  646. var sTrId = "appf_tr_reqGetAllKindCodeLists~";
  647. //outds string 생성
  648. for(var i in arrParam){
  649. //arrParam[i].dsNm 이 form에 없을때만 생성한다.
  650. if(utlf_isNull(this.objects[arrParam[i].dsNm])){
  651. dsf_createDs(arrParam[i].dsNm);
  652. }
  653. this.objects[S_IN_DS_REQ].addRow();
  654. this.objects[S_IN_DS_REQ].setColumn(i, "bizid", arrParam[i].bizId);
  655. this.objects[S_IN_DS_REQ].setColumn(i, "cdgrupid", arrParam[i].cdGrpId);
  656. this.objects[S_IN_DS_REQ].setColumn(i, "organcd", "000");
  657. if(utlf_isNull(arrParam[i].sortField)){
  658. this.objects[S_IN_DS_REQ].deleteColumn("sortfield");
  659. }else{
  660. this.objects[S_IN_DS_REQ].addColumn("sortfield", "String", "256");
  661. this.objects[S_IN_DS_REQ].setColumn(i, "sortfield", arrParam[i].sortField);
  662. }
  663. if(utlf_isNull(arrParam[i].sortMehotd)){
  664. this.objects[S_IN_DS_REQ].deleteColumn("sortmethod");
  665. }else{
  666. this.objects[S_IN_DS_REQ].addColumn("sortmethod", "String", "256");
  667. this.objects[S_IN_DS_REQ].setColumn(i, "sortmethod", arrParam[i].sortMehotd);
  668. }
  669. sOutDs = sOutDs + arrParam[i].dsNm+"="+arrParam[i].bizId+arrParam[i].cdGrpId+" ";
  670. }
  671. //sTrId = sTrId + sOutDs + "~" + sCallback;
  672. var sAsync = "FALSE";
  673. if(bAsync) sAsync = "TRUE";
  674. sTrId = sTrId + sOutDs + "~" + sAsync + "~" + sCallback;
  675. tranf_submit({
  676. id: sTrId
  677. , service: "basiccodeapp.KindCodeUser"
  678. , method: "reqGetKindCodeLists"
  679. , inds : "req="+S_IN_DS_REQ
  680. , outds: sOutDs
  681. , async: bAsync
  682. , callback: "appf_tr_reqGetAllKindCodeLists"
  683. });
  684. //Quick View를 위하여 예외처리함. Quick View실행 시 cache에 등록하지 않는다.
  685. /*
  686. try{
  687. //db에서 가져온 코드를 top영역의 code cache에 등록한다.
  688. for(var i in arrParam){
  689. if(!utlf_isNull(arrParam[i].dsNm)){
  690. agv_objAppTopPath.form.setComnCodeCache(this.objects[arrParam[i].dsNm]);
  691. }
  692. }
  693. }catch (e){
  694. sysf_catchTrace(e);
  695. }
  696. */
  697. }
  698. function appf_tr_reqGetAllKindCodeLists(sSvcId, nErrorCode, sErrorMsg){
  699. //trace(sSvcId);
  700. var arrSvcParam = sSvcId.split("~");
  701. var arrParam = arrSvcParam[1].split(" ");
  702. //trace(arrParam.length);
  703. //Quick View를 위하여 예외처리함. Quick View실행 시 cache에 등록하지 않는다.
  704. //db에서 가져온 코드를 top영역의 code cache에 등록한다.
  705. for(var i=0 ; i<arrParam.length ; i++){
  706. trace(arrParam[i]);
  707. var arrTempDsNm = arrParam[i].split("=");
  708. if(!utlf_isNull(arrParam[i])){
  709. this.objects[arrTempDsNm[0]].name = arrTempDsNm[1];
  710. //trace(this.objects[arrParam[i]]);
  711. //trace(this.objects[arrTempDsNm[0]].name);
  712. //trace("name="+this.objects[arrParam[i]].name);
  713. try{
  714. agv_objAppTopPath.form.setComnCodeCache(this.objects[arrTempDsNm[0]]);
  715. }catch(e){
  716. sysf_catchTrace(e);
  717. }
  718. }
  719. }
  720. // Form Callback 함수 호출 async가 true일때만
  721. //if(arrSvcParam[2] == "TRUE" && !utlf_isNull(arrSvcParam[3])){
  722. if(arrSvcParam[3] == null) return;
  723. if(arrSvcParam[3] == "undefined") return;
  724. if(arrSvcParam[3].length == 0) return;
  725. eval(arrSvcParam[3] + "('" + arrSvcParam[0] + "', '" + nErrorCode+"', '" + sErrorMsg + "');");
  726. //}
  727. //eval(arrSvcParam[2] + "('" + arrSvcParam[0] + "', '" + nErrorCode+"', '" + sErrorMsg + "');");
  728. }
  729. /**********************************************************************************
  730. * 함 수 명 : appf_getSubCodeList
  731. * 설 명 : 상하위 관계 코드를 가져온다.
  732. * argument : sSupcdgrupid - 상위코드군 ID
  733. * sSupcdid - 상위코드
  734. * sSubcdgrupid - 하위코드군ID
  735. * sSortfield - 정렬할 컬럼명
  736. * sSortmethod - 정렬 방법 (asc, desc)
  737. * bMinimum - true, false
  738. * sDsNm - dataset ID
  739. * bAsync - 동기 / 비동기 여부
  740. * sCallback - callback 함수명
  741. * return Type :
  742. * 작성자 : 임준호
  743. **********************************************************************************/
  744. function appf_getSubCodeList(sSupcdgrupid, sSupcdid, sSubcdgrupid, sSortfield, sSortmethod, bMinimum, sDsNm, bAsync, sCallback){
  745. //비동기 여부가 null일때 false
  746. //기본 비동기
  747. if(utlf_isNull(bAsync)){
  748. bAsync = false;
  749. }
  750. var S_IN_DS_REQ = "appf_ds_req_getSubCodeList";
  751. var sMinimum = "true";
  752. //bMinimun이 null 이면 true로.
  753. if(!utlf_isNull(bMinimum)){
  754. //bMinimum이 false일 경우만 "false" 입력
  755. if(!bMinimum) sMinimum = "false";
  756. }
  757. if(utlf_isNull(this.objects[sDsNm])){
  758. dsf_createDs(sDsNm);
  759. }
  760. dsf_createDsRow(S_IN_DS_REQ
  761. , [{col: "supcdgrupid", val: sSupcdgrupid}
  762. , {col: "supcdid", val: sSupcdid}
  763. , {col: "subcdgrupid", val: sSubcdgrupid}
  764. , {col: "sortfield", val: sSortfield}
  765. , {col: "sortmethod", val: sSortmethod}
  766. , {col: "minimum", val: sMinimum}
  767. ]);
  768. var objTranParam = new Object();
  769. objTranParam.id = "appf_tr_reqGetSubCodeList";
  770. objTranParam.service = "basiccodeapp.BasicCodeUser";
  771. objTranParam.method = "reqGetSubCodeList";
  772. objTranParam.inds = "req="+S_IN_DS_REQ;
  773. objTranParam.outds = sDsNm+"="+sSubcdgrupid;
  774. objTranParam.async = bAsync;
  775. if(bAsync) objTranParam.callback = sCallback;
  776. tranf_submit(objTranParam);
  777. return sDsNm;
  778. }
  779. /**********************************************************************************
  780. * 함 수 명 : appf_openCodeList
  781. * 설 명 : 코드목록 조회 팝업
  782. * argument : sCdgrupid - 코드그룹ID
  783. * sSearchCondition - 검색 조건 (cdid, cdnm)
  784. * 코드검색팝업의 검색조건 combo에 설정된다.
  785. * sSearchTerm - 검색어
  786. * 코드검색팝업의 검색어edit에 설정된다.
  787. * return Type : Object - cdid, cdnm
  788. * 작성자 : 임준호
  789. **********************************************************************************/
  790. function appf_openCodeList(sCdgrupid, sSearchCondition, sSearchTerm){
  791. var objArg = new Object();
  792. if(utlf_isNull(sCdgrupid)){
  793. alert("코드군ID를 입력하세요.");
  794. return;
  795. }
  796. objArg.plgv_sCdgrupid = sCdgrupid;
  797. objArg.plgv_sSearchCondition = sSearchCondition;
  798. objArg.plgv_sSearchTerm = sSearchTerm;
  799. return frmf_modal("SPZBC00100", "SPZBC00100", objArg);
  800. }
  801. /**********************************************************************************
  802. * 함 수 명 : appf_openKindCodeList
  803. * 설 명 : 유형코드목록 조회 팝업
  804. * argument : sBizid - 업무규칙ID
  805. * sCdgrupid - 코드그룹ID
  806. * sSearchCondition - 검색 조건 (cdid, cdnm)
  807. * 코드검색팝업의 검색조건 combo에 설정된다.
  808. * sSearchTerm - 검색어
  809. * 코드검색팝업의 검색어edit에 설정된다.
  810. * return Type : Object - cdid, cdnm
  811. * 작성자 : 임준호
  812. **********************************************************************************/
  813. function appf_openKindCodeList(sBizid, sCdgrupid, sSearchCondition, sSearchTerm){
  814. var objArg = new Object();
  815. if(utlf_isNull(sBizid)){
  816. alert("업무규칙ID를 입력하세요.");
  817. return;
  818. }
  819. if(utlf_isNull(sCdgrupid)){
  820. alert("코드군ID를 입력하세요.");
  821. return;
  822. }
  823. objArg.plgv_sBizid = sBizid;
  824. objArg.plgv_sCdgrupid = sCdgrupid;
  825. objArg.plgv_sSearchCondition = sSearchCondition;
  826. objArg.plgv_sSearchTerm = sSearchTerm;
  827. objArg.plgv_sOrgncd = null;
  828. return frmf_modal("SPZBC00400", "SPZBC00400", objArg);
  829. }
  830. /**********************************************************************************
  831. * 함 수 명 : appf_openCodeGroupList
  832. * 설 명 : 코드그룹목록 조회 팝업
  833. * argument : sSearchCondition - 검색 조건 (cdgrupid, cdgrupnm)
  834. * 코드그룹검색팝업의 검색조건 combo에 설정된다.
  835. * sSearchTerm - 검색어
  836. * 코드그룹검색팝업의 검색어edit에 설정된다.
  837. * bAdmin - 관리자 구분
  838. * return Type : Object - cdgrupid, cdgrupnm
  839. * 작성자 : 임준호
  840. **********************************************************************************/
  841. function appf_openCodeGroupList(sSearchCondition, sSearchTerm, bAdmin){
  842. var objArg = new Object();
  843. objArg.plgv_sSearchCondition = sSearchCondition;
  844. objArg.plgv_sSearchTerm = sSearchTerm;
  845. objArg.plgv_sAuthinstcd = "";
  846. objArg.plgv_sAuthdeptcd = "";
  847. objArg.plgv_bAdmin = bAdmin;
  848. return frmf_modal("SPZBC00200", "SPZBC00200", objArg);
  849. }
  850. /**********************************************************************************
  851. * 함 수 명 : appf_openAllKindCodeList
  852. * 설 명 : 모든 유형코드목록 조회 팝업
  853. * argument : sBizid - 업무규칙ID
  854. * sCdgrupid - 코드그룹ID
  855. * sSearchCondition - 검색 조건 (cdid, cdnm)
  856. * 코드검색팝업의 검색조건 combo에 설정된다.
  857. * sSearchTerm - 검색어
  858. * 코드검색팝업의 검색어edit에 설정된다.
  859. * return Type : Object - cdid, cdnm
  860. * 작성자 : 임준호
  861. **********************************************************************************/
  862. function appf_openAllKindCodeList(sBizid, sCdgrupid, sSearchCondition, sSearchTerm){
  863. var objArg = new Object();
  864. if(utlf_isNull(sBizid)){
  865. alert("업무규칙ID를 입력하세요.");
  866. return;
  867. }
  868. if(utlf_isNull(sCdgrupid)){
  869. alert("코드군ID를 입력하세요.");
  870. return;
  871. }
  872. objArg.plgv_sBizid = sBizid;
  873. objArg.plgv_sCdgrupid = sCdgrupid;
  874. objArg.plgv_sOrgncd = "000";
  875. objArg.plgv_sSearchCondition = sSearchCondition;
  876. objArg.plgv_sSearchTerm = sSearchTerm;
  877. return frmf_modal("SPZBC00400", "SPZBC00400", objArg);
  878. }
  879. /**********************************************************************************
  880. * 함 수 명 : appf_openBizCodeList
  881. * 설 명 : 업무규칙 목록 조회 팝업
  882. * argument : sSearchCondition - 검색 조건 (bizid, biznm)
  883. * 코드검색팝업의 검색조건 combo에 설정된다.
  884. * sSearchTerm - 검색어
  885. * 코드검색팝업의 검색어edit에 설정된다.
  886. * return Type : Object - bizid, biznm
  887. * 작성자 : 임준호
  888. **********************************************************************************/
  889. function appf_openBizCodeList(sSearchCondition, sSearchTerm){
  890. var objArg = new Object();
  891. objArg.plgv_sSearchCondition = sSearchCondition;
  892. objArg.plgv_sSearchTerm = utlf_transNullToEmpty(sSearchTerm);
  893. return frmf_modal("SPZBC00300", "SPZBC00300", objArg);
  894. }
  895. /**********************************************************************************
  896. * 함 수 명 : appf_getSubCodeGroupList
  897. * 설 명 : 하위 코드군 목록을 가져온다.
  898. * argument : sSupcdid - 상위코드
  899. * sDsNm - dataset ID
  900. * bAsync - 동기 / 비동기 여부
  901. * sCallback - callback 함수명
  902. * return Type :
  903. * 작성자 : 임준호
  904. **********************************************************************************/
  905. function appf_getSubCodeGroupList(sSupcdsid, sDsNm, bAsync, sCallback){
  906. //비동기 여부가 null일때 false
  907. //기본 비동기
  908. if(utlf_isNull(bAsync)){
  909. bAsync = false;
  910. }
  911. var S_IN_DS_REQ = "appf_ds_req_getSubCodeGroupList";
  912. if(utlf_isNull(this.objects[sDsNm])){
  913. dsf_createDs(sDsNm);
  914. }
  915. dsf_createDsRow(S_IN_DS_REQ
  916. , [{col: "supcdsid", val: sSupcdsid}]);
  917. var objTranParam = new Object();
  918. objTranParam.id = "appf_tr_getSubCodeGroupList";
  919. objTranParam.service = "basiccodeapp.BasicCodeAdmin";
  920. objTranParam.method = "reqGetSubCodeGroupList";
  921. objTranParam.inds = "req="+S_IN_DS_REQ;
  922. objTranParam.outds = sDsNm+"=cdgrup";
  923. objTranParam.async = bAsync;
  924. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  925. tranf_submit(objTranParam);
  926. return sDsNm;
  927. }
  928. /**
  929. * @desc : 사용자코드에 해당 파라미터의 코드 값이 존재 하는지 여부를 체크 한다.
  930. * @param : sUserCd : 사용자코드
  931. * sCheckCode : 체크 할 코드
  932. * 사용법 : appf_ContainsUserCD("00001", "AST");
  933. * @return : true : 값이 존재 함.
  934. false : 값이 존재하지 않음.
  935. * @author : 엄영만 2019.04.22
  936. * 변환 OK
  937. * @---------------------------------------------------
  938. */
  939. function appf_ContainsUserCD(sUserCd, sCheckCode) {
  940. var bRtn = false; // 반환값
  941. var sDsNm = "ds_ContainsUserCD_" + sUserCd
  942. dsf_createDs(sDsNm); //체크용 DS 생성
  943. try {
  944. appf_getUserCodeList([{dsNm: sDsNm, userCd: sUserCd}], false);
  945. var oDataset = this.objects[sDsNm];
  946. if(oDataset.rowcount > 0) {
  947. if(!utlf_isNull(oDataset.getColumn(oDataset.findRow("cdid", sCheckCode), "cdid"))) {
  948. bRtn = true;
  949. }
  950. }
  951. } catch(err) {
  952. sysf_messageBox ( "appf_ContainsUserCD() 실행 중 오류가 발생 하였습니다. sUserCd:" + sUserCd + " sCheckCode:"+ sCheckCode, "E" );
  953. } finally {
  954. dsf_deleteDs(sDsNm); //체크용 DS 삭제
  955. }
  956. return bRtn;
  957. }
  958. /**********************************************************************************
  959. * 함 수 명 : appf_getUserCodeList
  960. * 설 명 : 사용자 코드를 가져온다.
  961. * argument : arrParam
  962. * # dsNm(필수) - 가져온 코드를 담을 dataset 명
  963. * # userCd(필수) - 코드ID
  964. * # sortField(선택) - 정렬할 컬럼명 (cdid, cdnm, seqno)
  965. * # sortMehotd(선택) - 정렬 방법 (asc, desc)
  966. * # showValue(선택) - code column을 datacolumn과 같이 표시한다.(출력예 : [001] 등록비 )
  967. * 작성예) [{dsNm: "ds_UC00011", cdGrpId: "00011", sortField: "cdid", sortMehotd: "desc", showValue:true}
  968. * , {dsNm: "ds_UC00012", cdGrpId: "00012", sortField: "cdnm", sortMehotd: "desc", showValue:true}]
  969. * bMinimum - true, false
  970. * bAsync - 동기 / 비동기 여부
  971. * sCallback - callback 함수명
  972. * return Type :
  973. * @author : 엄영만 2019.04.22
  974. **********************************************************************************/
  975. function appf_getUserCodeList(arrParam, bMinimum, bAsync){
  976. var S_IN_DS_REQ = "appf_ds_req_getUserCodeList";
  977. var sInDsCmd = "";
  978. var sOutDs = "";
  979. var sOutParam = "";
  980. var sUserCds = "";
  981. var sDupDs = "";
  982. var sMinimum = "true";
  983. if(!utlf_isNull(bMinimum)){ //bMinimun이 null 이면 true로.
  984. if(!bMinimum) sMinimum = "false"; //bMinimum이 false일 경우만 "false" 입력
  985. }
  986. //inds req 생성
  987. if(utlf_isNull(this.objects[S_IN_DS_REQ])) {
  988. var objDs = new Dataset;
  989. this.addChild(S_IN_DS_REQ, objDs);
  990. } else {
  991. this.objects[S_IN_DS_REQ].clear();
  992. }
  993. //outds string 생성
  994. for(var i in arrParam){
  995. //arrParam[i].dsNm 이 form에 없을때만 생성한다.
  996. if(utlf_isNull(this.objects[arrParam[i].dsNm])){
  997. dsf_createDs(arrParam[i].dsNm);
  998. }
  999. this.objects[S_IN_DS_REQ].addRow();
  1000. this.objects[S_IN_DS_REQ].addColumn("minimum", "String", "256");
  1001. this.objects[S_IN_DS_REQ].addColumn("usercd", "String", "256");
  1002. this.objects[S_IN_DS_REQ].addColumn("basedd", "String", "256");
  1003. this.objects[S_IN_DS_REQ].addColumn("sortfield", "String", "256");
  1004. this.objects[S_IN_DS_REQ].addColumn("sortmethod", "String", "256");
  1005. this.objects[S_IN_DS_REQ].setColumn(i, "minimum", sMinimum);
  1006. this.objects[S_IN_DS_REQ].setColumn(i, "usercd", arrParam[i].userCd);
  1007. if(utlf_isNull(arrParam[i].baseDd)){
  1008. this.objects[S_IN_DS_REQ].setColumn(i, "basedd", "");
  1009. }else{
  1010. this.objects[S_IN_DS_REQ].setColumn(i, "basedd", arrParam[i].baseDd);
  1011. }
  1012. if(utlf_isNull(arrParam[i].sortField)){
  1013. this.objects[S_IN_DS_REQ].setColumn(i, "sortfield", "seqno");
  1014. }else{
  1015. this.objects[S_IN_DS_REQ].setColumn(i, "sortfield", arrParam[i].sortField);
  1016. }
  1017. if(utlf_isNull(arrParam[i].sortMehotd)){
  1018. this.objects[S_IN_DS_REQ].setColumn(i, "sortmethod", "asc");
  1019. }else{
  1020. this.objects[S_IN_DS_REQ].setColumn(i, "sortmethod", arrParam[i].sortMehotd);
  1021. }
  1022. sUserCds = sUserCds + arrParam[i].userCd + " ";
  1023. if(utlf_getStrCount(sUserCds, arrParam[i].userCd) == 1){
  1024. sOutDs = sOutDs + arrParam[i].dsNm+"="+arrParam[i].userCd+" ";
  1025. }
  1026. }
  1027. var sAsync = "FALSE";
  1028. if(bAsync) sAsync = "TRUE";
  1029. var objTrParam = new Object();
  1030. objTrParam.id = "appf_tr_reqGetUserCodeList";
  1031. objTrParam.service = "basiccodeapp.UserCode";
  1032. objTrParam.method = "reqGetUserCodeList";
  1033. objTrParam.inds = "req="+S_IN_DS_REQ;
  1034. objTrParam.outds = sOutDs;
  1035. objTrParam.async = bAsync;
  1036. if(tranf_submit(objTrParam)) {
  1037. for(var i in arrParam){
  1038. if(arrParam[i].showValue) { appf_showValue(this.objects[arrParam[i].dsNm]); }
  1039. }
  1040. }
  1041. }
  1042. /**********************************************************************************
  1043. * 함 수 명 : appf_getSubUserCodeList
  1044. * 설 명 : 하위 사용자 코드 목록을 가져온다.
  1045. * argument : sSupCd - 상위코드
  1046. * sDsNm - dataset ID
  1047. * bAsync - 동기 / 비동기 여부
  1048. * sCallback - callback 함수명
  1049. * return Type :
  1050. * 작성자 : 엄영만
  1051. **********************************************************************************/
  1052. function appf_getUserSubUserCdList(sSupCd, sDsNm, bAsync, sCallback){
  1053. //비동기 여부가 null일때 false
  1054. //기본 비동기
  1055. if(utlf_isNull(bAsync)){
  1056. bAsync = false;
  1057. }
  1058. var S_IN_DS_REQ = "appf_ds_req_getUserSubUserCdList";
  1059. if(utlf_isNull(this.objects[sDsNm])){
  1060. dsf_createDs(sDsNm);
  1061. }
  1062. dsf_createDsRow(S_IN_DS_REQ
  1063. , [{col: "supcd", val: sSupCd}]);
  1064. var objTranParam = new Object();
  1065. objTranParam.id = "appf_tr_getUserSubUserCdList";
  1066. objTrParam.service = "basiccodeapp.UserCode";
  1067. objTrParam.method = "reqGetUserSubUserCdList";
  1068. objTranParam.inds = "req="+S_IN_DS_REQ;
  1069. objTranParam.outds = sDsNm+"=usercdlist";
  1070. objTranParam.async = bAsync;
  1071. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1072. tranf_submit(objTranParam);
  1073. return sDsNm;
  1074. }
  1075. /********************************************************************************************************************/
  1076. /************************* 통합부서 API 관련 함수 *****************************************************************/
  1077. /********************************************************************************************************************/
  1078. /**********************************************************************************
  1079. * 함 수 명 : appf_openDeptCodeList
  1080. * 설 명 : 부서코드목록 조회 팝업
  1081. * argument : sInstType - 근무지 기관 기준('dutplceinstcd'), 전체기관기준('totalinstcd')
  1082. * sInstCode - 기관코드
  1083. * sSearchCondition - 검색조건
  1084. * sSearchTerm - 검색어
  1085. * sStandardYn - 업무사용여부 속성명
  1086. * sOrdDeptflag - 진료부서구분
  1087. * sStandardSupdeptcd - 업무상위부서 속성명
  1088. * sVisibleColumns - 팝업 부서코드목록에서 보여줄 컬럼을 정의한다. 컬럼과 컬럼은 공백으로 구분한다.
  1089. * sBasedd - 기준일자
  1090. * return Type : Object - deptcd, depthngnm, detail
  1091. * 작성자 : 임준호
  1092. **********************************************************************************/
  1093. function appf_openDeptCodeList(sInstType, sInstCode, sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, sStandardSupdeptcd, sVisibleColumns, sBasedd){
  1094. var objArg = new Object();
  1095. objArg.plgv_sInstType = sInstType;
  1096. objArg.plgv_sInstCode = sInstCode;
  1097. objArg.plgv_sSearchCondition = sSearchCondition;
  1098. objArg.plgv_sSearchTerm = sSearchTerm;
  1099. // if(!utlf_isNull(sStandardYn)) arrArg["plgv_sStandardYn"] = sStandardYn;
  1100. // if(!utlf_isNull(sOrdDeptflag)) arrArg["plgv_sOrdDeptflag"] = sOrdDeptflag;
  1101. // if(!utlf_isNull(sStandardSupdeptcd)) arrArg["plgv_sStandardSupdeptcd"] = sStandardSupdeptcd;
  1102. // if(!utlf_isNull(sVisibleColumns)){
  1103. // arrArg["plgv_sVisibleColumns"] = sVisibleColumns;
  1104. // }else{
  1105. // arrArg["plgv_sVisibleColumns"] = "depthngnm";
  1106. // }
  1107. objArg.plgv_sStandardYn = sStandardYn;
  1108. objArg.plgv_sOrdDeptflag = sOrdDeptflag;
  1109. objArg.plgv_sStandardSupdeptcd = sStandardSupdeptcd;
  1110. if(!utlf_isNull(sVisibleColumns)){
  1111. objArg.plgv_sVisibleColumns = sVisibleColumns;
  1112. }else{
  1113. objArg.plgv_sVisibleColumns = "depthngnm";
  1114. }
  1115. objArg.plgv_sBasedd = sBasedd;
  1116. if(sInstType === "dutplceinstcd"){
  1117. //return frmf_modal("SPZSD00200", "SPZSD00200", objArg);
  1118. return frmf_modal("SPZSD00200", "SPZSD00200", objArg, null, "", "", "", null, null, null, null, null, "M");
  1119. }else if(sInstType === "totalinstcd"){
  1120. //return frmf_modal("SPZSD00300", "SPZSD00300", objArg);
  1121. return frmf_modal("SPZSD00300", "SPZSD00300", objArg, null, "", "", "", null, null, null, null, null, "M");
  1122. }
  1123. }
  1124. /**********************************************************************************
  1125. * 함 수 명 : appf_openMasterDeptCodeList
  1126. * 설 명 : 통합부서검색 팝업
  1127. * argument : sSearchCondition - 검색조건
  1128. * sSearchTerm - 검색어
  1129. * return Type : Object - deptcd, deptnm
  1130. * 작성자 : 임준호
  1131. **********************************************************************************/
  1132. function appf_openMasterDeptCodeList(sSearchCondition, sSearchTerm){
  1133. var objArg = new Object();
  1134. objArg.plgv_sSearchCondition = sSearchCondition;
  1135. objArg.plgv_sSearchTerm = sSearchTerm;
  1136. return frmf_modal("SPZSD00100", "SPZSD00100", objArg);
  1137. }
  1138. /**********************************************************************************
  1139. * 함 수 명 : appf_openInstDeptCodeList
  1140. * 설 명 : 근무지 기관 기준 부서코드목록 조회 팝업
  1141. * argument : sSearchCondition - 검색조건
  1142. * sSearchTerm - 검색어
  1143. * sStandardYn - 업무사용여부 속성명
  1144. * sOrdDeptflag - 진료부서구분
  1145. * sVisibleColumns - 팝업 부서코드목록에서 보여줄 컬럼을 정의한다. 컬럼과 컬럼은 공백으로 구분한다.
  1146. * - deptcd 부서코드
  1147. * - depthngnm 한글부서명
  1148. * - deptengnm 영문부서명
  1149. * - deptchinm
  1150. * - depthngabbr
  1151. * - deptengabbr
  1152. * - reqfild
  1153. * - reqdeptno
  1154. * - nextplceyn
  1155. * - nextplceprity
  1156. * - inetrsrvyn
  1157. * - cntctel
  1158. * - dutplceuseyn
  1159. * - reqauthdeptyn
  1160. * return Type : Object - deptcd, depthngnm, detail
  1161. * 작성자 : 임준호
  1162. **********************************************************************************/
  1163. function appf_openInstDeptCodeList(sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, sVisibleColumns){
  1164. return appf_openDeptCodeList("dutplceinstcd", "", sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, "", sVisibleColumns, "");
  1165. }
  1166. /**********************************************************************************
  1167. * 함 수 명 : appf_openAssignedInstDeptCodeList
  1168. * 설 명 : 전체 기관 기준 부서코드목록 조회 팝업
  1169. * argument : sInstCode - 기관코드
  1170. * sSearchCondition - 검색조건
  1171. * sSearchTerm - 검색어
  1172. * sStandardYn - 업무사용여부 속성명
  1173. * sOrdDeptflag - 진료부서구분
  1174. * sVisibleColumns - 팝업 부서코드목록에서 보여줄 컬럼을 정의한다. 컬럼과 컬럼은 공백으로 구분한다.
  1175. * - deptcd 부서코드
  1176. * - depthngnm 한글부서명
  1177. * - deptengnm 영문부서명
  1178. * - deptchinm
  1179. * - depthngabbr
  1180. * - deptengabbr
  1181. * - reqfild
  1182. * - reqdeptno
  1183. * - nextplceyn
  1184. * - nextplceprity
  1185. * - inetrsrvyn
  1186. * - cntctel
  1187. * - dutplceuseyn
  1188. * - reqauthdeptyn
  1189. * return Type : Object - deptcd, depthngnm, detail
  1190. * 작성자 : 임준호
  1191. **********************************************************************************/
  1192. function appf_openAssignedInstDeptCodeList(sInstCode, sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, sVisibleColumns){
  1193. return appf_openDeptCodeList("totalinstcd", sInstCode, sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, "", sVisibleColumns, "");
  1194. }
  1195. /**********************************************************************************
  1196. * 함 수 명 : appf_openAssignedInstDeptCodeBaseDDList
  1197. * 설 명 : 전체 기관 기준 부서코드목록 조회 팝업, 기준일자 조건 추가
  1198. * argument : sInstCode - 기관코드
  1199. * sSearchCondition - 검색조건
  1200. * sSearchTerm - 검색어
  1201. * sStandardYn - 업무사용여부 속성명
  1202. * sOrdDeptflag - 진료부서구분
  1203. * sVisibleColumns - 팝업 부서코드목록에서 보여줄 컬럼을 정의한다. 컬럼과 컬럼은 공백으로 구분한다.
  1204. * - deptcd 부서코드
  1205. * - depthngnm 한글부서명
  1206. * - deptengnm 영문부서명
  1207. * - deptchinm
  1208. * - depthngabbr
  1209. * - deptengabbr
  1210. * - reqfild
  1211. * - reqdeptno
  1212. * - nextplceyn
  1213. * - nextplceprity
  1214. * - inetrsrvyn
  1215. * - cntctel
  1216. * - dutplceuseyn
  1217. * - reqauthdeptyn
  1218. * sBasedd - 기준일자
  1219. * return Type : Object - deptcd, depthngnm, detail
  1220. * 작성자 : 임준호
  1221. **********************************************************************************/
  1222. function appf_openAssignedInstDeptCodeBaseDDList(sInstCode, sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, sVisibleColumns, sBasedd){
  1223. return appf_openDeptCodeList("totalinstcd", sInstCode, sSearchCondition, sSearchTerm, sStandardYn, sOrdDeptflag, "", sVisibleColumns, sBasedd);
  1224. }
  1225. /**********************************************************************************
  1226. * 함 수 명 : appf_getCommDeptCodeList
  1227. * 설 명 : 부서코드목록 조회(공통)
  1228. * argument : sInstType - 근무지 기관 기준('dutplceinstcd'), 전체기관기준('totalinstcd')
  1229. * sInstCode - 기관코드
  1230. * sCommand - 명령어
  1231. * sStandardYn - 업무사용여부 속성명
  1232. * sOrdDeptflag - 진료부서구분
  1233. * sSortfield - 정렬할 컬럼명
  1234. * sSortmethod - 정렬 방법 (asc, desc)
  1235. * sBasedd - 기준일자
  1236. * sOrdclsdeptFlag - 진료분과여부(대표과:R,분과:'C')
  1237. * sMode - 데이터 출력 방식 (replace:교체, after:dest ds 마지막에 추가, before:dest ds 처음에 삽입)
  1238. * sDsNm - dataset ID
  1239. * bAsync - 동기 / 비동기 여부
  1240. * sCallback - callback 함수명
  1241. * return Type : String - dataset ID
  1242. * 작성자 : 임준호
  1243. **********************************************************************************/
  1244. function appf_getCommDeptCodeList(sInstType, sInstCode, sCommand, sStandardYn, sOrdDeptflag, sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, sMode, sDsNm, bAsync, sCallback){
  1245. //비동기 여부가 null일때 false
  1246. //기본 비동기
  1247. if(utlf_isNull(bAsync)){
  1248. bAsync = false;
  1249. }
  1250. var S_IN_DS_REQ = "appf_ds_req_getDeptCodeList";
  1251. var sTempDsNm = "frm_ds_temp_getDeptCodeList";
  1252. if(!utlf_isNull(this.objects[S_IN_DS_REQ])){
  1253. this.objects[S_IN_DS_REQ].clear();
  1254. }
  1255. if(utlf_isNull(this.objects[sTempDsNm])){
  1256. dsf_createDs(sTempDsNm);
  1257. }else{
  1258. this.objects[sTempDsNm].clear();
  1259. }
  1260. if(utlf_isNull(this.objects[sDsNm])){
  1261. dsf_createDs(sDsNm);
  1262. }else{
  1263. this.objects[sDsNm].clear();
  1264. }
  1265. var objColInfo = new Array();
  1266. objColInfo.push({col: "insttype", val: sInstType});
  1267. if(!utlf_isNull(sCommand)){
  1268. objColInfo.push({col: "command", val: sCommand});
  1269. }
  1270. objColInfo.push({col: "instcd", val: sInstCode});
  1271. objColInfo.push({col: "standardyn", val: sStandardYn});
  1272. objColInfo.push({col: "orddeptflag", val: sOrdDeptflag});
  1273. if(utlf_isNull(sSortfield)){
  1274. objColInfo.push({col: "sortfield", val: "depthngnm"});
  1275. }else{
  1276. objColInfo.push({col: "sortfield", val: sSortfield});
  1277. }
  1278. if(utlf_isNull(sSortmethod)){
  1279. objColInfo.push({col: "sortmethod", val: "asc"});
  1280. }else{
  1281. objColInfo.push({col: "sortmethod", val: sSortmethod});
  1282. }
  1283. objColInfo.push({col: "basedd", val: utlf_transNullToEmpty(sBasedd)});
  1284. objColInfo.push({col: "ordclsdeptflag", val: sOrdclsdeptFlag});
  1285. dsf_createDsRow(S_IN_DS_REQ, objColInfo);
  1286. var sAsync = "FALSE";
  1287. if(bAsync) sAsync = "TRUE";
  1288. var sTrId = "appf_tr_reqGetDepartmentCodeList"+"~"+sDsNm+"~"+sTempDsNm+"~"+sMode+"~"+sCallback+"~"+sAsync;
  1289. tranf_submit({
  1290. id: sTrId
  1291. , service: "departmentcodeapp.DepartmentCodeUser"
  1292. , method: "reqGetDepartmentCodeList"
  1293. , inds : "req="+S_IN_DS_REQ
  1294. , outds: sTempDsNm+"=dept"
  1295. , async: bAsync
  1296. , callback: "cbf_appf_tr_reqGetDepartmentCodeList"
  1297. });
  1298. //if(this.objects[sDsNm].colcount == 0) dsf_copyColInfo(this.objects[sDsNm], this.objects[sTempDsNm], false);
  1299. //dsf_copyDs(this.objects[sDsNm], this.objects[sTempDsNm], sMode);
  1300. return sDsNm;
  1301. }
  1302. function cbf_appf_tr_reqGetDepartmentCodeList(sSvcId, nErrorCode, sErrorMsg){
  1303. var arrParam = sSvcId.split("~");
  1304. var sDsNm = arrParam[1];
  1305. var sTempDsNm = arrParam[2];
  1306. var sMode = arrParam[3];
  1307. var sCallback = arrParam[4];
  1308. var sAsync = arrParam[5];
  1309. if(this.objects[sDsNm].colcount == 0) dsf_copyColInfo(this.objects[sDsNm], this.objects[sTempDsNm], false);
  1310. //trace(this.objects[sDsNm].saveXML());
  1311. dsf_copyDs(this.objects[sDsNm], this.objects[sTempDsNm], sMode);
  1312. // Form Callback 함수 호출 async가 true일때만
  1313. if(sAsync == "TRUE" && !utlf_isNull(sCallback)){
  1314. //eval(arrSvcParam[3] + "('" + arrSvcParam[0] + "', '" + nErrorCode+"', '" + sErrorMsg + "');");
  1315. eval(sCallback + "('" + sSvcId + "', '" + nErrorCode+"', '" + sErrorMsg + "');");
  1316. }
  1317. }
  1318. /**********************************************************************************
  1319. * 함 수 명 : appf_getDeptCodeList
  1320. * 설 명 : 부서코드목록 조회
  1321. * argument : sInstType - 근무지 기관 기준('dutplceinstcd'), 전체기관기준('totalinstcd')
  1322. * sStandardYn - 업무사용여부 속성명
  1323. * sOrdDeptflag - 진료부서구분
  1324. * sSortfield - 정렬할 컬럼명
  1325. * sSortmethod - 정렬 방법 (asc, desc)
  1326. * sBasedd - 기준일자
  1327. * sOrdclsdeptFlag - 진료분과여부(대표과:R,분과:'C')
  1328. * sMode - 데이터 출력 방식 (replace:교체, after:dest ds 마지막에 추가, before:dest ds 처음에 삽입)
  1329. * sDsNm - dataset ID
  1330. * bAsync - 동기 / 비동기 여부
  1331. * sCallback - callback 함수명
  1332. * return Type : String - dataset ID
  1333. * 작성자 : 임준호
  1334. **********************************************************************************/
  1335. function appf_getDeptCodeList(sInstCode, sStandardYn, sOrdDeptflag, sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, sMode, sDsNm, bAsync, sCallback){
  1336. return appf_getCommDeptCodeList("totalinstcd", sInstCode, null, sStandardYn, sOrdDeptflag, sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, sMode, sDsNm, bAsync, sCallback);
  1337. }
  1338. /**********************************************************************************
  1339. * 함 수 명 : appf_getInsuExecDeptList
  1340. * 설 명 : 보험수행구분부서콤보
  1341. * argument : sInstCode - 기관코드
  1342. * sSelectfield - 조회할필드
  1343. * null일경우 - deptcd, depthngnm
  1344. * sSortfield - 정렬할 컬럼명
  1345. * sBasedd - 기준일자
  1346. * sDsNm - dataset ID
  1347. * bAsync - 동기 / 비동기 여부
  1348. * sCallback - callback 함수명
  1349. * return Type : String - dataset id
  1350. * 작성자 : 임준호
  1351. **********************************************************************************/
  1352. function appf_getInsuExecDeptList(sCallback, sDsNm, sInstCode, sSelectfield, sSortfield, sBasedd, sDsNm, bAsync, sCallback){
  1353. //비동기 여부가 null일때 false
  1354. //기본 비동기
  1355. if(utlf_isNull(bAsync)){
  1356. bAsync = false;
  1357. }
  1358. var S_IN_DS_REQ = "appf_ds_req_getInsuExecDeptList";
  1359. if(utlf_isNull(this.objects[sDsNm])){
  1360. dsf_createDs(sDsNm);
  1361. }
  1362. dsf_createDsRow(S_IN_DS_REQ
  1363. , [{col: "instcd", val: sInstCode}
  1364. , {col: "selectfield", val: sSelectfield}
  1365. , {col: "sortfield", val: sSortfield}
  1366. , {col: "basedd", val: sBasedd}
  1367. ]);
  1368. var objTranParam = new Object();
  1369. objTranParam.id = "appf_tr_reqGetInsuUseDepartmentCodeList";
  1370. objTranParam.service = "departmentcodeapp.DepartmentCodeUser";
  1371. objTranParam.method = "reqGetInsuUseDepartmentCodeList";
  1372. objTranParam.inds = "req="+S_IN_DS_REQ;
  1373. objTranParam.outds = sDsNm+"=dept";
  1374. objTranParam.async = bAsync;
  1375. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1376. tranf_submit(objTranParam);
  1377. return sDsNm;
  1378. }
  1379. /**********************************************************************************
  1380. * 함 수 명 : appf_getInOrdDeptList
  1381. * 설 명 : 입원진료과 목록을 조회
  1382. * argument : sInstCode - 기관코드
  1383. * sSortfield - 정렬할 컬럼명
  1384. * sSortmethod - 정렬 방법 (asc, desc)
  1385. * sBasedd - 기준일자
  1386. * sOrdclsdeptFlag - 진료분과여부(대표과:R,분과:'C')
  1387. * sDsNm - dataset ID
  1388. * bAsync - 동기 / 비동기 여부
  1389. * sCallback - callback 함수명
  1390. * return Type : String - dataset id
  1391. * 작성자 : 임준호
  1392. **********************************************************************************/
  1393. function appf_getInOrdDeptList(sInstCode, sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, sDsNm, bAsync, sCallback){
  1394. return appf_getCommDeptCodeList("totalinstcd", sInstCode, "getInOrderDepartmentList", "", "", sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, "replace", sDsNm, bAsync, sCallback);
  1395. }
  1396. /**********************************************************************************
  1397. * 함 수 명 : appf_getOutOrdDeptList
  1398. * 설 명 : 외래진료과 목록을 조회
  1399. * argument : sInstCode - 기관코드
  1400. * sSortfield - 정렬할 컬럼명
  1401. * sSortmethod - 정렬 방법 (asc, desc)
  1402. * sBasedd - 기준일자
  1403. * sOrdclsdeptFlag - 진료분과여부(대표과:R,분과:'C')
  1404. * sDsNm - dataset ID
  1405. * bAsync - 동기 / 비동기 여부
  1406. * sCallback - callback 함수명
  1407. * return Type : String - dataset id
  1408. * 작성자 : 임준호
  1409. **********************************************************************************/
  1410. function appf_getOutOrdDeptList(sInstCode, sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, sDsNm, bAsync, sCallback){
  1411. return appf_getCommDeptCodeList("totalinstcd", sInstCode, "getOutOrderDepartmentList", "", "", sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, "replace", sDsNm, bAsync, sCallback);
  1412. }
  1413. /**********************************************************************************
  1414. * 함 수 명 : appf_getCareOutOrderDepartmentList
  1415. * 설 명 : 간호기준의 외래진료부서를 조회
  1416. * argument : sInstCode - 기관코드
  1417. * sBasedd - 기준일자
  1418. * sDsNm - dataset ID
  1419. * bAsync - 동기 / 비동기 여부
  1420. * sCallback - callback 함수명
  1421. * return Type : String - dataset id
  1422. * 작성자 : 임준호
  1423. **********************************************************************************/
  1424. function appf_getCareOutOrderDepartmentList(sInstCode, sBasedd, sDsNm, bAsync, sCallback){
  1425. //비동기 여부가 null일때 false
  1426. //기본 비동기
  1427. if(utlf_isNull(bAsync)){
  1428. bAsync = false;
  1429. }
  1430. var S_IN_DS_REQ = "appf_ds_req_getCareOutOrderDepartmentList";
  1431. if(utlf_isNull(this.objects[sDsNm])){
  1432. dsf_createDs(sDsNm);
  1433. }
  1434. dsf_createDsRow(S_IN_DS_REQ
  1435. , [{col: "instcd", val: sInstCode}
  1436. , {col: "basedd", val: sBasedd}
  1437. ]);
  1438. var objTranParam = new Object();
  1439. objTranParam.id = "appf_tr_reqGetCareOutOrderDepartmentList";
  1440. objTranParam.service = "departmentcodeapp.DepartmentCodeUser";
  1441. objTranParam.method = "reqGetCareOutOrderDepartmentList";
  1442. objTranParam.inds = "req="+S_IN_DS_REQ;
  1443. objTranParam.outds = sDsNm+"=dept";
  1444. objTranParam.async = bAsync;
  1445. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1446. tranf_submit(objTranParam);
  1447. return sDsNm;
  1448. }
  1449. /**********************************************************************************
  1450. * 함 수 명 : appf_getCntrOrdKindDepartmentList
  1451. * 설 명 : 진료부서구분이 센터로 등록된 부서를 조회
  1452. * argument : sInstCode - 기관코드
  1453. * sBasedd - 기준일자
  1454. * sDsNm - dataset ID
  1455. * bAsync - 동기 / 비동기 여부
  1456. * sCallback - callback 함수명
  1457. * return Type : String - dataset id
  1458. * 작성자 : 임준호
  1459. **********************************************************************************/
  1460. function appf_getCntrOrdKindDepartmentList(sInstCode, sBasedd, sDsNm, bAsync, sCallback){
  1461. //비동기 여부가 null일때 false
  1462. //기본 비동기
  1463. if(utlf_isNull(bAsync)){
  1464. bAsync = false;
  1465. }
  1466. var S_IN_DS_REQ = "appf_ds_req_getCntrOrdKindDepartmentList";
  1467. if(utlf_isNull(this.objects[sDsNm])){
  1468. dsf_createDs(sDsNm);
  1469. }
  1470. dsf_createDsRow(S_IN_DS_REQ
  1471. , [{col: "instcd", val: sInstCode}
  1472. , {col: "basedd", val: sBasedd}
  1473. ]);
  1474. var objTranParam = new Object();
  1475. objTranParam.id = "appf_tr_reqGetCntrOrdKindDepartmentList";
  1476. objTranParam.service = "departmentcodeapp.DepartmentCodeAdmin";
  1477. objTranParam.method = "reqGetCntrOrdKindDepartmentList";
  1478. objTranParam.inds = "req="+S_IN_DS_REQ;
  1479. objTranParam.outds = sDsNm+"=dept";
  1480. objTranParam.async = bAsync;
  1481. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1482. tranf_submit(objTranParam);
  1483. return sDsNm;
  1484. }
  1485. /**********************************************************************************
  1486. * 함 수 명 : appf_getCntrSubOrdDepartmentList
  1487. * 설 명 : 센터에 속한 하위의 진료부서를 조회한다.
  1488. * 진료부서구분이 센터로 등록된 부서를 선택하면 그 하위에 해당하는 진료 부서만 출력한다.
  1489. * argument : sInstCode - 기관코드
  1490. * sDeptcd - 센터상위부서코드
  1491. * sInoutFlag - 외래입원진료구분
  1492. * sBasedd - 기준일자
  1493. * sDsNm - dataset ID
  1494. * bAsync - 동기 / 비동기 여부
  1495. * sCallback - callback 함수명
  1496. * return Type : String - dataset id
  1497. * 작성자 : 임준호
  1498. **********************************************************************************/
  1499. function appf_getCntrSubOrdDepartmentList(sInstCode, sDeptcd, sInoutFlag, sBasedd, sDsNm, bAsync, sCallback){
  1500. //비동기 여부가 null일때 false
  1501. //기본 비동기
  1502. if(utlf_isNull(bAsync)){
  1503. bAsync = false;
  1504. }
  1505. var S_IN_DS_REQ = "appf_ds_req_getCntrSubOrdDepartmentList";
  1506. if(utlf_isNull(this.objects[sDsNm])){
  1507. dsf_createDs(sDsNm);
  1508. }
  1509. dsf_createDsRow(S_IN_DS_REQ
  1510. , [{col: "instcd", val: sInstCode}
  1511. , {col: "deptcd", val: sDeptcd}
  1512. , {col: "inoutflag", val: sInoutFlag}
  1513. , {col: "basedd", val: sBasedd}
  1514. ]);
  1515. var objTranParam = new Object();
  1516. objTranParam.id = "appf_tr_reqGetCntrSubOrdDepartmentList";
  1517. objTranParam.service = "departmentcodeapp.DepartmentCodeAdmin";
  1518. objTranParam.method = "reqGetCntrSubOrdDepartmentList";
  1519. objTranParam.inds = "req="+S_IN_DS_REQ;
  1520. objTranParam.outds = sDsNm+"=dept";
  1521. objTranParam.async = bAsync;
  1522. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1523. tranf_submit(objTranParam);
  1524. return sDsNm;
  1525. }
  1526. /**********************************************************************************
  1527. * 함 수 명 : appf_getClsDeptList
  1528. * 설 명 : 지정된 대표과의 분과 목록을 출력한다.
  1529. * argument : sInstCode - 기관코드
  1530. * sDeptcd - 센터상위부서코드
  1531. * sInoutFlag - 외래입원진료구분
  1532. * sSortfield - 정렬할 컬럼명
  1533. * sSortmethod - 정렬 방법 (asc, desc)
  1534. * sBasedd - 기준일자
  1535. * sDsNm - dataset ID
  1536. * bAsync - 동기 / 비동기 여부
  1537. * sCallback - callback 함수명
  1538. * return Type : String - dataset id
  1539. * 작성자 : 임준호
  1540. **********************************************************************************/
  1541. function appf_getClsDeptList(sInstCode, sDeptcd, sInoutFlag, sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback){
  1542. //비동기 여부가 null일때 false
  1543. //기본 비동기
  1544. if(utlf_isNull(bAsync)){
  1545. bAsync = false;
  1546. }
  1547. var S_IN_DS_REQ = "appf_ds_req_getClsDeptList";
  1548. if(utlf_isNull(this.objects[sDsNm])){
  1549. dsf_createDs(sDsNm);
  1550. }
  1551. dsf_createDsRow(S_IN_DS_REQ
  1552. , [{col: "instcd", val: sInstCode}
  1553. , {col: "deptcd", val: sDeptcd}
  1554. , {col: "inoutflag", val: sInoutFlag}
  1555. , {col: "sortfield", val: sSortfield}
  1556. , {col: "sortmethod", val: sSortmethod}
  1557. , {col: "basedd", val: sBasedd}
  1558. ]);
  1559. var objTranParam = new Object();
  1560. objTranParam.id = "appf_tr_reqGetClassificationOfDepartmentList";
  1561. objTranParam.service = "departmentcodeapp.DepartmentCodeUser";
  1562. objTranParam.method = "reqGetClassificationOfDepartmentList";
  1563. objTranParam.inds = "req="+S_IN_DS_REQ;
  1564. objTranParam.outds = sDsNm+"=dept";
  1565. objTranParam.async = bAsync
  1566. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1567. tranf_submit(objTranParam);
  1568. return sDsNm;
  1569. }
  1570. /**********************************************************************************
  1571. * 함 수 명 : appf_getInClsDeptList
  1572. * 설 명 : (입원)지정된 대표과의 분과 목록을 출력한다.
  1573. * argument : sInstCode - 기관코드
  1574. * sDeptcd - 센터상위부서코드
  1575. * sSortfield - 정렬할 컬럼명
  1576. * sSortmethod - 정렬 방법 (asc, desc)
  1577. * sBasedd - 기준일자
  1578. * sDsNm - dataset ID
  1579. * bAsync - 동기 / 비동기 여부
  1580. * sCallback - callback 함수명
  1581. * return Type : String - dataset id
  1582. * 작성자 : 임준호
  1583. **********************************************************************************/
  1584. function appf_getInClsDeptList(sInstCode, sDeptcd, sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback){
  1585. return appf_getClsDeptList(sInstCode, sDeptcd, "in", sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback);
  1586. }
  1587. /**********************************************************************************
  1588. * 함 수 명 : appf_getOutClsDeptList
  1589. * 설 명 : (외래)지정된 대표과의 분과 목록을 출력한다.
  1590. * argument : sInstCode - 기관코드
  1591. * sDeptcd - 센터상위부서코드
  1592. * sSortfield - 정렬할 컬럼명
  1593. * sSortmethod - 정렬 방법 (asc, desc)
  1594. * sBasedd - 기준일자
  1595. * sDsNm - dataset ID
  1596. * bAsync - 동기 / 비동기 여부
  1597. * sCallback - callback 함수명
  1598. * return Type : String - dataset id
  1599. * 작성자 : 임준호
  1600. **********************************************************************************/
  1601. function appf_getOutClsDeptList(sInstCode, sDeptcd, sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback){
  1602. return appf_getClsDeptList(sInstCode, sDeptcd, "out", sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback);
  1603. }
  1604. /**********************************************************************************
  1605. * 함 수 명 : appf_getInOutClsDeptList
  1606. * 설 명 : (외래, 입원)지정된 대표과의 분과 목록을 출력한다.
  1607. * argument : sInstCode - 기관코드
  1608. * sDeptcd - 센터상위부서코드
  1609. * sSortfield - 정렬할 컬럼명
  1610. * sSortmethod - 정렬 방법 (asc, desc)
  1611. * sBasedd - 기준일자
  1612. * sDsNm - dataset ID
  1613. * bAsync - 동기 / 비동기 여부
  1614. * sCallback - callback 함수명
  1615. * return Type : String - dataset id
  1616. * 작성자 : 임준호
  1617. **********************************************************************************/
  1618. function appf_getInOutClsDeptList(sCallback, sDsNm, sInstCode, sDeptcd, sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback){
  1619. return appf_getClsDeptList(sCallback, sDsNm, sInstCode, sDeptcd, "", sSortfield, sSortmethod, sBasedd, sDsNm, bAsync, sCallback);
  1620. }
  1621. /**********************************************************************************
  1622. * 함 수 명 : appf_getInOutOrdDeptList
  1623. * 설 명 : 외래/입원 진료과 목록을 조회
  1624. * argument : sInstCode - 기관코드
  1625. * sSortfield - 정렬할 컬럼명
  1626. * sSortmethod - 정렬 방법 (asc, desc)
  1627. * sBasedd - 기준일자
  1628. * sOrdclsdeptFlag - 진료분과여부(대표과:R,분과:'C')
  1629. * sDsNm - dataset ID
  1630. * bAsync - 동기 / 비동기 여부
  1631. * sCallback - callback 함수명
  1632. * return Type : String - dataset id
  1633. * 작성자 : 임준호
  1634. **********************************************************************************/
  1635. function appf_getInOutOrdDeptList(sInstCode, sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, sDsNm, bAsync, sCallback){
  1636. return appf_getCommDeptCodeList("totalinstcd", sInstCode, "getInOutOrderDepartmentList", "", "", sSortfield, sSortmethod, sBasedd, sOrdclsdeptFlag, "replace", sDsNm, bAsync, sCallback);
  1637. }
  1638. /**********************************************************************************
  1639. * 함 수 명 : appf_getWardDeptList
  1640. * 설 명 :
  1641. * argument : sInstCode - 기관코드
  1642. * sSortfield - 정렬할 컬럼명
  1643. * sSortmethod - 정렬 방법 (asc, desc)
  1644. * sBasedd - 기준일자
  1645. * sMode - 데이터 출력 방식 (replace:교체, after:dest ds 마지막에 추가, before:dest ds 처음에 삽입)
  1646. * sDsNm - dataset ID
  1647. * bAsync - 동기 / 비동기 여부
  1648. * sCallback - callback 함수명
  1649. * return Type : String - dataset ID
  1650. * 작성자 : 임준호
  1651. **********************************************************************************/
  1652. function appf_getWardDeptList(sInstCode, sSortfield, sSortmethod, sBasedd, sMode, sDsNm, bAsync, sCallback){
  1653. return appf_getCommDeptCodeList("totalinstcd", sInstCode, null, "orduseyn", "W", sSortfield, sSortmethod, sBasedd, null, sMode, sDsNm, bAsync, sCallback);
  1654. }
  1655. /**********************************************************************************
  1656. * 함 수 명 : appf_openDeptListFromTree
  1657. * 설 명 : 각 트리에 속해있는 아이템중 부서코드 목록을 조회한다. 과거, 현재, 미래이력 조회 (우선순위 현재>미래>과거)
  1658. * argument : sSearchCondition - 검색조건
  1659. * sSearchTerm - 검색어
  1660. * sInstCode - 기관코드
  1661. * sSupDeptColumn - 상위부서코드컬럼명
  1662. * return Type : Object - deptcd, depthngnm
  1663. * 작성자 : 임준호
  1664. **********************************************************************************/
  1665. function appf_openDeptListFromTree(sSearchCondition, sSearchTerm, sInstCd, sSupDeptColumn){
  1666. var objArg = new Object();
  1667. objArg.plgv_sSearchCondition = sSearchCondition;
  1668. objArg.plgv_sSearchTerm = sSearchTerm;
  1669. objArg.plgv_sInstCd = sInstCd;
  1670. objArg.plgv_sSupDeptColumn = sSupDeptColumn;
  1671. return frmf_modal("SPZSD00600", "SPZSD00600", objArg);
  1672. }
  1673. /**********************************************************************************
  1674. * 함 수 명 : appf_openInsuUseDeptCodeList (TF 함수 불완전)
  1675. * 설 명 : 센터구성관리 화면으로 센터부서리스트 목록을 출력한다.
  1676. * argument : sSearchCondition - 검색조건
  1677. * sSearchTerm - 검색어
  1678. * sInstCode - 기관코드
  1679. * sSelectfield - 조회할필드
  1680. * null일경우 - deptcd, depthngnm
  1681. * sSortfield - 정렬할 컬럼명
  1682. * return Type : Object - deptcd, depthngnm
  1683. * 작성자 : 임준호
  1684. **********************************************************************************/
  1685. function appf_openInsuUseDeptCodeList(sSearchCondition, sSearchTerm, sInstCd, sSelectfield, sSortfield){
  1686. var objArg = new Object();
  1687. if(utlf_isNull(sSelectfield)){
  1688. sSelectfield = "deptcd, depthngnm";
  1689. }
  1690. if(utlf_isNull(sSortfield)){
  1691. sSortfield = "lastupdtdt desc";
  1692. }
  1693. objArg.plgv_sSearchCondition = sSearchCondition;
  1694. objArg.plgv_sSearchTerm = sSearchTerm;
  1695. objArg.plgv_sInstCd = sInstCd;
  1696. objArg.plgv_sSelectfield = sSelectfield;
  1697. objArg.plgv_sSortfield = sSortfield;
  1698. return frmf_modal("SPZSD00700", "SPZSD00700", objArg);
  1699. }
  1700. /********************************************************************************************************************/
  1701. /************************* 사용자조회 API 관련 함수 **************************************************************/
  1702. /********************************************************************************************************************/
  1703. /**********************************************************************************
  1704. * 함 수 명 : appf_openUserInfoList
  1705. * 설 명 : 사용자 기본 정보 조회 팝업
  1706. * argument : sSearchCondition - 검색조건(usernm, userid) 팝업의 검색구분combo설정
  1707. * sSearchTerm - 검색어
  1708. * sUserfromdd - 적용시작일자
  1709. * sUsertodd - 적용종료일자
  1710. * sDutinstcd - 근무기관코드
  1711. * sDutunitcd - 근무부서코드
  1712. * return Type : Object - userInfo
  1713. * 작성자 : 임준호
  1714. **********************************************************************************/
  1715. function appf_openUserInfoList(sSearchCondition, sSearchTerm, sUserfromdd, sUsertodd, sDutinstcd, sDutunitcd){
  1716. var objArg = new Object();
  1717. objArg.plgv_sSearchCondition = sSearchCondition;
  1718. objArg.plgv_sSearchTerm = sSearchTerm;
  1719. objArg.plgv_sUserfromdd = sUserfromdd;
  1720. objArg.plgv_sUsertodd = sUsertodd;
  1721. objArg.plgv_sDutinstcd = sDutinstcd;
  1722. objArg.plgv_sDutunitcd = sDutunitcd;
  1723. return frmf_modal("SPZSU10100", "SPZSU10100", objArg);
  1724. }
  1725. /**********************************************************************************
  1726. * 함 수 명 : appf_getOrdDeptDoctorList
  1727. * 설 명 : 진료의 목록
  1728. * argument : sInoutflag - 입원진료, 외래진료여부(in:입원, out:외래, inout:입원외래통합)
  1729. * sDutplceinstcd - 근무지기관코드
  1730. * sDutplcecd - 근무지부서코드
  1731. * sSortField - 정렬 컬럼(userid, usernm, dispseq)
  1732. * sSortMethod - 정렬방법(asc, desc)
  1733. * sBasedd - 기준일자
  1734. * sDsNm - dataset ID
  1735. * bAsync - 동기 / 비동기 여부
  1736. * sCallback - callback 함수명
  1737. * return Type : sDsNm - 조회결과 dataset ID
  1738. * 작성자 : 임준호
  1739. **********************************************************************************/
  1740. function appf_getOrdDeptDoctorList(sInoutflag, sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback){
  1741. //비동기 여부가 null일때 false
  1742. //기본 비동기
  1743. if(utlf_isNull(bAsync)){
  1744. bAsync = false;
  1745. }
  1746. var S_IN_DS_REQ = "appf_ds_req_getOrdDeptDoctorList";
  1747. if(utlf_isNull(this.objects[sDsNm])){
  1748. dsf_createDs(sDsNm);
  1749. }
  1750. dsf_createDsRow(S_IN_DS_REQ
  1751. , [{col: "inoutflag", val: sInoutflag}
  1752. , {col: "dutplceinstcd", val: sDutplceinstcd}
  1753. , {col: "dutplcecd", val: sDutplcecd}
  1754. , {col: "instcd", val: sDutplceinstcd}
  1755. , {col: "deptcd", val: sDutplcecd}
  1756. , {col: "sortfield", val: sSortField}
  1757. , {col: "sortmethod", val: sSortMethod}
  1758. , {col: "basedd", val: sBasedd}
  1759. ]);
  1760. var objTranParam = new Object();
  1761. objTranParam.id = "appf_tr_reqGetOrderDepartmentDoctorList";
  1762. objTranParam.service = "userdeptinfoapp.UserDeptInfo";
  1763. objTranParam.method = "reqGetOrderDepartmentDoctorList";
  1764. objTranParam.inds = "req="+S_IN_DS_REQ;
  1765. objTranParam.outds = sDsNm+"=user";
  1766. objTranParam.async = bAsync;
  1767. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1768. tranf_submit(objTranParam);
  1769. return sDsNm;
  1770. }
  1771. /**********************************************************************************
  1772. * 함 수 명 : appf_getInOrdDeptDoctorList
  1773. * 설 명 : 입원 진료의 목록
  1774. * argument : sDsNm - 조회결과 담을 dataset ID
  1775. * sDutplceinstcd - 근무지기관코드
  1776. * sDutplcecd - 근무지부서코드
  1777. * sSortField - 정렬 컬럼(userid, usernm, dispseq)
  1778. * sSortMethod - 정렬방법(asc, desc)
  1779. * sBasedd - 기준일자
  1780. * sDsNm - dataset ID
  1781. * bAsync - 동기 / 비동기 여부
  1782. * sCallback - callback 함수명
  1783. * return Type : sDsNm - 조회결과 dataset ID
  1784. * 작성자 : 임준호
  1785. **********************************************************************************/
  1786. function appf_getInOrdDeptDoctorList(sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback){
  1787. return appf_getOrdDeptDoctorList("in", sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback);
  1788. }
  1789. /**********************************************************************************
  1790. * 함 수 명 : appf_getOutOrdDeptDoctorList
  1791. * 설 명 : 외래 진료의 목록
  1792. * argument : sDutplceinstcd - 근무지기관코드
  1793. * sDutplcecd - 근무지부서코드
  1794. * sSortField - 정렬 컬럼(userid, usernm, dispseq)
  1795. * sSortMethod - 정렬방법(asc, desc)
  1796. * sBasedd - 기준일자
  1797. * sDsNm - dataset ID
  1798. * bAsync - 동기 / 비동기 여부
  1799. * sCallback - callback 함수명
  1800. * return Type : sDsNm - 조회결과 dataset ID
  1801. * 작성자 : 임준호
  1802. **********************************************************************************/
  1803. function appf_getOutOrdDeptDoctorList(sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback){
  1804. return appf_getOrdDeptDoctorList("out", sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback);
  1805. }
  1806. /**********************************************************************************
  1807. * 함 수 명 : appf_getInOutOrdDeptDoctorList
  1808. * 설 명 : 입원외래통합 진료의 목록
  1809. * argument : sDutplceinstcd - 근무지기관코드
  1810. * sDutplcecd - 근무지부서코드
  1811. * sSortField - 정렬 컬럼(userid, usernm, dispseq)
  1812. * sSortMethod - 정렬방법(asc, desc)
  1813. * sBasedd - 기준일자
  1814. * sDsNm - dataset ID
  1815. * bAsync - 동기 / 비동기 여부
  1816. * sCallback - callback 함수명
  1817. * return Type : sDsNm - 조회결과 dataset ID
  1818. * 작성자 : 임준호
  1819. **********************************************************************************/
  1820. function appf_getInOutOrdDeptDoctorList(sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback){
  1821. return appf_getOrdDeptDoctorList("inout", sDutplceinstcd, sDutplcecd, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback);
  1822. }
  1823. /**********************************************************************************
  1824. * 함 수 명 : appf_getCntrOrdDeptDoctorList
  1825. * 설 명 :
  1826. * argument : sInstcd - 근무지기관코드(대표과여부체크)
  1827. * sDeptcd - 근무지부서코드(대표과여부체크)
  1828. * sInoutflag - 입원진료, 외래진료여부(in:입원, out:외래, inout:입원외래통합)
  1829. * sSortField - 정렬 컬럼(userid, usernm, dispseq)
  1830. * sSortMethod - 정렬방법(asc, desc)
  1831. * sBasedd - 기준일자
  1832. * sDsNm - dataset ID
  1833. * bAsync - 동기 / 비동기 여부
  1834. * sCallback - callback 함수명
  1835. * return Type : sDsNm - 조회결과 dataset ID
  1836. * 작성자 : 임준호
  1837. **********************************************************************************/
  1838. function appf_getCntrOrdDeptDoctorList(sInstcd, sDeptcd, sInoutflag, sSortField, sSortMethod, sBasedd, sDsNm, bAsync, sCallback){
  1839. //비동기 여부가 null일때 false
  1840. //기본 비동기
  1841. if(utlf_isNull(bAsync)){
  1842. bAsync = false;
  1843. }
  1844. var S_IN_DS_REQ = "appf_ds_req_getCntrOrdDeptDoctorList";
  1845. if(utlf_isNull(this.objects[sDsNm])){
  1846. dsf_createDs(sDsNm);
  1847. }
  1848. dsf_createDsRow(S_IN_DS_REQ
  1849. , [{col: "instcd", val: sInstcd}
  1850. , {col: "deptcd", val: sDeptcd}
  1851. , {col: "inoutflag", val: sInoutflag}
  1852. , {col: "sortfield", val: sSortField}
  1853. , {col: "sortmethod", val: sSortMethod}
  1854. , {col: "basedd", val: sBasedd}
  1855. ]);
  1856. var objTranParam = new Object();
  1857. objTranParam.id = "appf_tr_reqGetCntrOrderDepartmentDoctorList";
  1858. objTranParam.service = "userdeptinfoapp.UserDeptInfo";
  1859. objTranParam.method = "reqGetCntrOrderDepartmentDoctorList";
  1860. objTranParam.inds = "req="+S_IN_DS_REQ;
  1861. objTranParam.outds = sDsNm+"=user";
  1862. objTranParam.async = bAsync;
  1863. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1864. tranf_submit(objTranParam);
  1865. return sDsNm;
  1866. }
  1867. /**********************************************************************************
  1868. * 함 수 명 : appf_openUserInfo
  1869. * 설 명 : 사원기본정보조회 팝업
  1870. * argument : sSearchCondition - 검색조건
  1871. * sSearchTerm - 검색어
  1872. * sVisibleColumns - 사원정보목록에서 보여줄 컬럼을 정의한다. 컬럼과 컬럼은 공백으로 구분한다.
  1873. * sStandarddd - 기준일자
  1874. * sUserkindcd - 사용자유형(01:교직원,02:수련담당자,03:실습생,04:의국원,05:자원봉사자,06:원목,07:가정간호봉사자,08:외부용역직원,09:임상연구센터연구원,10:협력병원회원)
  1875. * return Type : Object - userInfo
  1876. * 작성자 : 임준호
  1877. **********************************************************************************/
  1878. function appf_openUserInfo(sSearchCondition, sSearchTerm, sVisibleColumns, sStandarddd, sUserkindcd){
  1879. // var arrArg = new Array();
  1880. //
  1881. // arrArg["plgv_sSearchCondition"] = sSearchCondition;
  1882. // arrArg["plgv_sSearchTerm"] = sSearchTerm;
  1883. // arrArg["plgv_sVisibleColumns"] = sVisibleColumns;
  1884. // arrArg["plgv_sStandarddd"] = sStandarddd;
  1885. // arrArg["plgv_sUserkindcd"] = sUserkindcd;
  1886. var objArg = new Object();
  1887. objArg.plgv_sSearchCondition = sSearchCondition;
  1888. objArg.plgv_sSearchTerm = sSearchTerm;
  1889. objArg.plgv_sVisibleColumns = sVisibleColumns;
  1890. objArg.plgv_sStandarddd = sStandarddd;
  1891. objArg.plgv_sUserkindcd = sUserkindcd;
  1892. return frmf_modal("SPZSU10104", "SPZSU10104", objArg);
  1893. }
  1894. /**********************************************************************************
  1895. * 함 수 명 : appf_openEmployee
  1896. * 설 명 : 교직원기본정보조회 팝업
  1897. * argument : sSearchCondition - 검색조건
  1898. * sSearchTerm - 검색어
  1899. * sVisibleColumns - 사원정보목록에서 보여줄 컬럼을 정의한다. 컬럼과 컬럼은 공백으로 구분한다.
  1900. * sStandarddd - 기준일자
  1901. * return Type : Object - userInfo
  1902. * 작성자 : 임준호
  1903. **********************************************************************************/
  1904. function appf_openEmployee(sSearchCondition, sSearchTerm, sVisibleColumns, sStandarddd){
  1905. appf_openUserInfo(sSearchCondition, sSearchTerm, sVisibleColumns, sStandarddd, "01");
  1906. }
  1907. /**********************************************************************************
  1908. * 함 수 명 : appf_openTeamMember
  1909. * 설 명 : 근무지별사용자조회 팝업
  1910. * argument : sSearchCondition - 검색조건
  1911. * sSearchTerm - 검색어
  1912. * sDutplceinstcd - 근무지기관코드
  1913. * sDutplcecd - 근무지코드
  1914. * sBasedd - 기준일자
  1915. * return Type : Object - userid, usernm
  1916. * 작성자 : 임준호
  1917. **********************************************************************************/
  1918. function appf_openTeamMember(sSearchCondition, sSearchTerm, sDutplceinstcd, sDutplcecd, sBasedd){
  1919. var objArg = new Object();
  1920. objArg.plgv_sSearchCondition = sSearchCondition;
  1921. objArg.plgv_sSearchTerm = sSearchTerm;
  1922. objArg.plgv_sDutplceinstcd = sDutplceinstcd;
  1923. objArg.plgv_sDutplcecd = sDutplcecd;
  1924. objArg.plgv_sBasedd = sBasedd;
  1925. return frmf_modal("SPZSU10106", "SPZSU10106", objArg);
  1926. }
  1927. /**********************************************************************************
  1928. * 함 수 명 : appf_getUserInfoCombo (TF함수가 불완전)
  1929. * 설 명 : 로그인한 기관의 ‘근무지코드’를 검색조건으로 근무지코드에 속한 사용자 조회
  1930. * argument : sDutplcecd - 근무지코드
  1931. * sJobkindcd - 직종코드
  1932. * sDsNm - dataset ID
  1933. * bAsync - 동기 / 비동기 여부
  1934. * sCallback - callback 함수명
  1935. * return Type : sDsNm - 조회결과 dataset ID
  1936. * 작성자 : 임준호
  1937. **********************************************************************************/
  1938. function appf_getUserInfoCombo(sDutplcecd, sJobkindcd, sDsNm, bAsync, sCallback){
  1939. //비동기 여부가 null일때 false
  1940. //기본 비동기
  1941. if(utlf_isNull(bAsync)){
  1942. bAsync = false;
  1943. }
  1944. var S_IN_DS_REQ = "appf_ds_req_getUserInfoCombo";
  1945. if(utlf_isNull(this.objects[sDsNm])){
  1946. dsf_createDs(sDsNm);
  1947. }
  1948. dsf_createDsRow(S_IN_DS_REQ
  1949. , [{col: "dutplcecd", val: sDutplcecd}
  1950. , {col: "jobkindcd", val: sJobkindcd}
  1951. ]);
  1952. var objTranParam = new Object();
  1953. objTranParam.id = "appf_tr_reqGetUserInfoCombo";
  1954. objTranParam.service = "userdeptinfoapp.UserDeptInfo";
  1955. objTranParam.method = "reqGetUserInfoCombo";
  1956. objTranParam.inds = "req="+S_IN_DS_REQ;
  1957. objTranParam.outds = sDsNm+"=usercombo";
  1958. objTranParam.async = bAsync;
  1959. if(!utlf_isNull(bAsync)) objTranParam.callback = sCallback;
  1960. tranf_submit(objTranParam);
  1961. return sDsNm;
  1962. }
  1963. /********************************************************************************************************************/
  1964. /************************* hismain 공통 화면 ***********************************************************************/
  1965. /********************************************************************************************************************/
  1966. /****************************************************************************************
  1967. * Function : frmf_openPasswordValidate
  1968. * Description : 로그인 비밀번호 확인 화면 호출
  1969. * Argument : 01.sType - 비밀번호 확인 타입 (session:세션타임아웃, duplogin:중복로그인, pwdcnfm:비밀번호확인)
  1970. * : 02.sTitlemsg - 타이틀 메시지
  1971. * : 03.sHelpmsg - 도움말
  1972. * return type : Boolean - 로그아웃 가능 여부
  1973. * Creator : 임준호
  1974. ****************************************************************************************/
  1975. function appf_openPasswordValidate(sType, sTitlemsg, sHelpmsg){
  1976. var objArg = new Object();
  1977. objArg.plgv_sType = sType;
  1978. objArg.plgv_sTitlemsg = sTitlemsg;
  1979. objArg.plgv_sHelpmsg = sHelpmsg;
  1980. var width = 300;
  1981. var height = 177;
  1982. if(sType == "session" || sType == "duplogin"){
  1983. height = 187;
  1984. }
  1985. return frmf_modalInternal("SPZUM00400", "com_hismainxp::SPZUM00400_암호확인.xfdl", objArg, false, null, null, null, width, height);
  1986. }
  1987. /****************************************************************************************
  1988. * Function : appf_openNoticePopup
  1989. * Description : 공지사항 팝업화면을 띄우는 함수
  1990. * Argument :
  1991. * return type :
  1992. * Creator : 임준호
  1993. ****************************************************************************************/
  1994. function appf_openNoticePopup(){
  1995. return frmf_modal("SPZSN00100", "SPZSN00100");
  1996. }
  1997. /****************************************************************************************
  1998. * Function : appf_openTargetPopup
  1999. * Description : 공지사항이 보여질 사용자 선택
  2000. * Argument : 01.sTargetFlag
  2001. * return type :
  2002. * Creator : 임준호
  2003. ****************************************************************************************/
  2004. function appf_openTargetPopup(sTargetFlag) {
  2005. //modal("SPZSN00200","","300","100","SPZSN00200","/root/temp/targetinfo","/root/main/selecteduser");
  2006. var objArg = new Object();
  2007. objArg.plgv_sTargetFlag = sTargetFlag;
  2008. frmf_modal("SPZSN00200", "SPZSN00200", objArg);
  2009. }
  2010. /********************************************************************************************************************/
  2011. /************************* 환자상단 관련 함수 *********************************************************************/
  2012. /********************************************************************************************************************/
  2013. /****************************************************************************************
  2014. * Function : appf_initPatientInfo
  2015. * Description : 환자정보 초기화
  2016. * Argument :
  2017. * return type : Boolean
  2018. * Creator : 임준호
  2019. ****************************************************************************************/
  2020. function appf_initPatientInfo(condparam, errflag){
  2021. if( !utlf_isNull(condparam) && !utlf_isNull(frmf_getScreenID()) ){
  2022. condparam += "▦" + frmf_getScreenID();
  2023. }
  2024. var objForm = frmf_getViewer("patientInfo");
  2025. return objForm.fInitPatientInfo(condparam, errflag);
  2026. }
  2027. /****************************************************************************************
  2028. * Function : appf_setPatientInfo
  2029. * Description : 환자정보 셋팅
  2030. * Argument : 01.sKey - 환자정보 key
  2031. * pid : 환자번호
  2032. * hngnm : 환자명
  2033. * sa : 나이(54/M)
  2034. * addr : 주소
  2035. * insukind : 보험유형
  2036. * ininfo : 재원정보
  2037. * body : 몸무게 키
  2038. * btype : 혈액형
  2039. * orddept : 진료과
  2040. * apntdr : 의사정보 - 지정의
  2041. * attndr : 의사정보 - 주치의
  2042. * diagnosis : 진단명
  2043. * operation : 수술정보
  2044. * allergy : 알러지 정보(Y^Y)
  2045. * newallergy : 새로운 알러지 확인 정보(Y)
  2046. * infection : 감염정보(Y^Y^Y)
  2047. * intncare : 특례(Y)
  2048. * vip : vip(Y)
  2049. * one : one(Y)
  2050. * healexam : 건진(Y)
  2051. * coop : 협력(Y)
  2052. * cp : cp(Y)
  2053. * addrdetl : 상세주소
  2054. * regstno : 주민번호
  2055. * telno : 전화번호
  2056. * zipcd : 우편번호
  2057. * : 02.sValue - 환자정보 value
  2058. * return type : Boolean
  2059. * Creator : 임준호
  2060. ****************************************************************************************/
  2061. function appf_setPatientInfo(sKey, sValue) {
  2062. var objForm = frmf_getViewer("patientInfo");
  2063. var bResult = false;
  2064. if (!utlf_isNull(objForm)){
  2065. if (sKey != "pid" && sValue.split("|")[0] == appf_getPatientId()){
  2066. bResult = objForm.fSetTopInfo(sKey, sValue.split("|")[1]);
  2067. }else{
  2068. bResult = objForm.fSetTopInfo(sKey, sValue);
  2069. }
  2070. }
  2071. return bResult;
  2072. }
  2073. /****************************************************************************************
  2074. * Function : appf_setPatientInfos
  2075. * Description : 환자정보 전체 저장
  2076. * Argument : 01.sValues - 환자정보
  2077. * return type : Boolean - 성공여부
  2078. * Creator : 임준호
  2079. ****************************************************************************************/
  2080. function appf_setPatientInfos(sValues){
  2081. var objForm = frmf_getViewer("patientInfo");
  2082. var bResult = false;
  2083. if (!utlf_isNull(objForm)){
  2084. bResult = objForm.fSetTopInfos(sValues);
  2085. }
  2086. return bResult;
  2087. }
  2088. /****************************************************************************************
  2089. * Function : appf_delPatientInfos
  2090. * Description : 환자정보 삭제
  2091. * Argument :
  2092. * return type : Boolean
  2093. * Creator : 임준호
  2094. ****************************************************************************************/
  2095. function appf_delPatientInfos(){
  2096. var objForm = frmf_getViewer("patientInfo");
  2097. var bResult = false;
  2098. if(!utlf_isNull(objForm)){
  2099. bResult = objForm.fDelPatientInfos();
  2100. }
  2101. return bResult;
  2102. }
  2103. /****************************************************************************************
  2104. * Function : appf_getPatientInfo
  2105. * Description : 환자정보 조회
  2106. * Argument : 01.key - 환자정보 key
  2107. * pid : 환자번호
  2108. * hngnm : 환자명
  2109. * sa : 나이(54/M)
  2110. * addr : 주소
  2111. * insukind : 보험유형
  2112. * ininfo : 재원정보
  2113. * body : 몸무게 키
  2114. * btype : 혈액형
  2115. * orddept : 진료과
  2116. * apntdr : 의사정보 - 지정의
  2117. * attndr : 의사정보 - 주치의
  2118. * diagnosis : 진단명
  2119. * operation : 수술정보
  2120. * allergy : 알러지 정보(Y^Y)
  2121. * newallergy : 새로운 알러지 확인 정보(Y)
  2122. * infection : 감염정보(Y^Y^Y)
  2123. * intncare : 특례(Y)
  2124. * vip : vip(Y)
  2125. * one : one(Y)
  2126. * healexam : 건진(Y)
  2127. * coop : 협력(Y)
  2128. * cp : cp(Y)
  2129. * addrdetl : 상세주소
  2130. * regstno : 주민번호
  2131. * telno : 전화번호
  2132. * zipcd : 우편번호
  2133. * return type : String - 환자정보
  2134. * Creator : 임준호
  2135. ****************************************************************************************/
  2136. function appf_getPatientInfo(key){
  2137. var objForm = frmf_getViewer("patientInfo");
  2138. var sPatientInfo = "";
  2139. if(!utlf_isNull(objForm)){
  2140. sPatientInfo = objForm.fGetTopInfo(key);
  2141. }
  2142. return sPatientInfo;
  2143. }
  2144. /****************************************************************************************
  2145. * Function : appf_getPatientInfos
  2146. * Description : 환자기본정보 전체 조회
  2147. * Argument :
  2148. * return type : String - 환자정보
  2149. * Creator : 임준호
  2150. ****************************************************************************************/
  2151. function appf_getPatientInfos(){
  2152. var objForm = frmf_getViewer("patientInfo");
  2153. var sPatientInfos = "";
  2154. if(!utlf_isNull(objForm)){
  2155. sPatientInfos = objForm.fGetTopInfos();
  2156. }
  2157. return sPatientInfos;
  2158. }
  2159. /****************************************************************************************
  2160. * Function : appf_getPatientInfos
  2161. * Description : 환자기본정보 전체 조회(컬럼명포함)
  2162. * Argument :
  2163. * return type : String - 환자정보
  2164. * Creator : 김상목
  2165. ****************************************************************************************/
  2166. function appf_getPatientInfosWithName(){
  2167. var objForm = frmf_getViewer("patientInfo");
  2168. var sPatientInfos = "";
  2169. if(!utlf_isNull(objForm)){
  2170. sPatientInfos = objForm.fGetTopInfosWithName();
  2171. }
  2172. return sPatientInfos;
  2173. }
  2174. /****************************************************************************************
  2175. * Function : appf_getPatientId
  2176. * Description : 환자번호 조회
  2177. * Argument :
  2178. * return type : String - 환자번호
  2179. * Creator : 임준호
  2180. ****************************************************************************************/
  2181. function appf_getPatientId() {
  2182. var objForm = frmf_getViewer("patientInfo");
  2183. var sPatientId = "";
  2184. if (!utlf_isNull(objForm)){
  2185. sPatientId = objForm.fGetTopInfo("pid");//fGetPatientId();
  2186. }
  2187. return sPatientId;
  2188. }
  2189. /****************************************************************************************
  2190. * Function : appf_getPatientName
  2191. * Description : 환자명 조회
  2192. * Argument :
  2193. * return type : String - 환자명
  2194. * Creator : 임준호
  2195. ****************************************************************************************/
  2196. function appf_getPatientName(){
  2197. var objForm = frmf_getViewer("patientInfo");
  2198. var sPatientName = "";
  2199. if (!utlf_isNull(objForm)){
  2200. sPatientName = objForm.fGetTopInfo("pname");//fGetPatientName();
  2201. }
  2202. return sPatientName;
  2203. }
  2204. /****************************************************************************************
  2205. * Function : appf_setPatientFlag
  2206. * Description : 환자구분을 설정한다.
  2207. * Argument : 01.sValue - 환자구분
  2208. * return type : String or Boolean - 환자구분 or false
  2209. * Creator : 임준호
  2210. ****************************************************************************************/
  2211. function appf_setPatientFlag(sValue){
  2212. var objForm = frmf_getViewer("patientInfo");
  2213. if (!utlf_isNull(objForm)){
  2214. return objForm.fSetPatientFlag(sValue);
  2215. }
  2216. return false;
  2217. }
  2218. /****************************************************************************************
  2219. * Function : appf_setPatientInfoDetail(확인필요)
  2220. * Description : 환자구분에 따른 상세정보를 설정한다.
  2221. * Argument : 01.objDsSrc - dataset object
  2222. * return type : 환자구분 or false
  2223. * Creator : 임준호
  2224. ****************************************************************************************/
  2225. function appf_setPatientInfoDetail(objDsSrc:Dataset){
  2226. var objForm = frmf_getViewer("patientInfo");
  2227. //var srcPath = instance1.selectSingleNode(srcPath);
  2228. if (!utlf_isNull(objForm)){// && srcPath != null){
  2229. var objDsDest = objForm.objects[objForm.fGetPatientInfoPath()];
  2230. if(!utlf_isNull(objDsDest)){
  2231. if(objDsDest.name != objDsSrc.name)
  2232. objDsDest.copyData(objDsSrc);
  2233. return objForm.fCheckPatientId("paminfo");
  2234. }else{
  2235. sysf_messageBox("환자구분이","E014");
  2236. }
  2237. }
  2238. return false;
  2239. }
  2240. /****************************************************************************************
  2241. * Function : appf_setPatientInfoDetailByKey
  2242. * Description : 환자상세정보를 key 별로 저장한다.
  2243. * : 반드시 setPatientInfoDetail(objDsSrc) 를 통해 최초 한번은 환자상세정보를 설정해야 한다.
  2244. * Argument : 01.sKey - key name
  2245. * : 02.sValue - value
  2246. * return type : 환자상세정보 or false
  2247. * Creator : 임준호
  2248. ****************************************************************************************/
  2249. function appf_setPatientInfoDetailByKey(sKey, sValue){
  2250. var objForm = frmf_getViewer("patientInfo");
  2251. if (!utlf_isNull(objForm)){
  2252. if(sKey == "pid") {
  2253. return objForm.fSetPatientInfoDetailByKey(sKey, sValue);
  2254. } else {
  2255. if (sValue.split("|")[0] == appf_getPatientId()) {
  2256. return objForm.fSetPatientInfoDetailByKey(sKey, sValue.split("|")[1]);
  2257. }
  2258. }
  2259. }
  2260. return false;
  2261. }
  2262. /****************************************************************************************
  2263. * Function : appf_getPatientInfoDetail
  2264. * Description : 환자구분에 따른 상세정보를 key에 해당하는 value반환한다.
  2265. * Argument : 01.sKey - key name
  2266. * return type : 환자상세정보
  2267. * Creator : 임준호
  2268. ****************************************************************************************/
  2269. function appf_getPatientInfoDetail(sKey) {
  2270. var objForm = frmf_getViewer("patientInfo");
  2271. var sValue = "";
  2272. if (!utlf_isNull(objForm)){
  2273. sValue = objForm.fGetPatientInfoDetail(sKey);
  2274. }
  2275. return sValue;
  2276. }
  2277. /****************************************************************************************
  2278. * Function : appf_getPatientInfoDetail
  2279. * Description : 환자구분에 따른 상세정보 전체를 반환한다.
  2280. 지정한 Dataset으로 copy한다.
  2281. * Argument : 01.sDestDs - 환자정보를 가져올 Dataset 이름
  2282. * return type : 환자상세정보 or false
  2283. * Creator : 김상목
  2284. ****************************************************************************************/
  2285. function appf_getPatientInfoDetails(sDestDs) {
  2286. var objForm = frmf_getViewer("patientInfo");
  2287. var oDestDs = this.objects[sDestDs];
  2288. if ( !utlf_isNull(objForm) && !utlf_isNull(oDestDs)){
  2289. var sSrcDs = objForm.fGetPatientInfoPath();
  2290. if(!utlf_isNull(sSrcDs)){
  2291. var oSrcDs = objForm.objects[sSrcDs];
  2292. if(!utlf_isNull(oSrcDs)){
  2293. oDestDs.copyData(oSrcDs);
  2294. return true;
  2295. }
  2296. }
  2297. }
  2298. return false;
  2299. }
  2300. /****************************************************************************************
  2301. * Function : appf_setOperationInfo
  2302. * Description : 수술관련 상세정보를 설정한다.(fCheckPatientId-확인필요)
  2303. * Argument : 01.objDsDest - dataset object
  2304. * return type : 수술정보정보 or false
  2305. * Creator : 임준호
  2306. ****************************************************************************************/
  2307. function appf_setOperationInfo(objDsSrc:Dataset){
  2308. var objForm = frmf_getViewer("patientInfo");
  2309. if (!utlf_isNull(objForm) && !utlf_isNull(objDsSrc)){
  2310. return objForm.fCheckPatientId("operation");
  2311. }
  2312. return false;
  2313. }
  2314. /****************************************************************************************
  2315. * Function : appf_setOperationInfoDetailByKey
  2316. * Description : 수술관련 상세정보를 key 별로 설정한다.
  2317. * : 반드시 setOperationInfo(objDsSrc) 를 통해 최초 한번은 수술정보를 설정해야 한다.
  2318. * Argument : 01.sKey - key name
  2319. * : 02.sValue - value
  2320. * return type : 수술 상세정보 or false
  2321. * Creator : 임준호
  2322. ****************************************************************************************/
  2323. function appf_setOperationInfoDetailByKey(sKey, sValue) {
  2324. var objForm = frmf_getViewer("patientInfo");
  2325. if (!utlf_isNull(objForm)){
  2326. if (sKey == "pid") {
  2327. return objForm.fSetOperationInfoDetailByKey(sKey, sValue);
  2328. } else {
  2329. if (sValue.split("|")[0] == appf_getPatientId()) {
  2330. return objForm.fSetOperationInfoDetailByKey(sKey, sValue.split("|")[1]);
  2331. }
  2332. }
  2333. }
  2334. return false;
  2335. }
  2336. /****************************************************************************************
  2337. * Function : appf_getOperationInfo
  2338. * Description : key에 해당하는 수술관련 정보를 반환한다.
  2339. * Argument : 01.sKey - key name
  2340. * return type : String - 수술정보
  2341. * Creator : 임준호
  2342. ****************************************************************************************/
  2343. function appf_getOperationInfo(sKey){
  2344. var objForm = frmf_getViewer("patientInfo");
  2345. var sOperationInfo = "";
  2346. if (!utlf_isNull(objForm)){
  2347. sOperationInfo = objForm.fGetOperationInfo(sKey);
  2348. }
  2349. return sOperationInfo;
  2350. }
  2351. /****************************************************************************************
  2352. * Function : appf_getOperationInfos
  2353. * Description : 수술관련 정보를 지정한 dataset으로 모두 복사한다.
  2354. * Argument : 01.objDsDest - 수술정보를 복사할 dataset object
  2355. * return type :
  2356. * Creator : 임준호
  2357. ****************************************************************************************/
  2358. function appf_getOperationInfos(objDsDest:Dataset){
  2359. var objForm = frmf_getViewer("patientInfo");
  2360. if (!utlf_isNull(objForm) && !utlf_isNull(objDsDest)){
  2361. var objDsSrc = objForm.fgetOperationInfos();
  2362. if(!utlf_isNull(objDsSrc)){
  2363. objDsSrc.copyData(objDsDest);
  2364. //return true;
  2365. }
  2366. }
  2367. //return false;
  2368. }
  2369. /****************************************************************************************
  2370. * Function : appf_setConsultInfo(확인필요)
  2371. * Description : 협진관련 상세정보를 설정한다.
  2372. * Argument : 01.objDsSrc - dataset object
  2373. * return type :
  2374. * Creator : 임준호
  2375. ****************************************************************************************/
  2376. function appf_setConsultInfo(objDsSrc:Dataset){
  2377. var objForm = frmf_getViewer("patientInfo");
  2378. if (!utlf_isNull(objForm) && !utlf_isNull(objDsSrc)){
  2379. return objForm.fCheckPatientId("consult");
  2380. }
  2381. return false;
  2382. }
  2383. /****************************************************************************************
  2384. * Function : appf_setConsultInfoDetailByKey
  2385. * Description : 협진관련 상세정보를 key 별로 저장한다.
  2386. * : 반드시 setConsultInfo(objDsSrc) 를 통해 최초 한번은 협진정보를 설정해야 한다.
  2387. * Argument : 01.sKey - 협진관련키
  2388. * : 02.sValue - 데이터값
  2389. * return type : 협진상세정보 or false
  2390. * Creator : 임준호
  2391. ****************************************************************************************/
  2392. function appf_setConsultInfoDetailByKey(sKey, sValue) {
  2393. var objForm = frmf_getViewer("patientInfo");
  2394. if (!utlf_isNull(objForm)){
  2395. if (sKey == "pid") {
  2396. return objForm.fSetConsultInfoDetailByKey(sKey, sValue);
  2397. } else {
  2398. if (value.split("|")[0] == appf_getPatientId()) {
  2399. return objForm.fSetConsultInfoDetailByKey(sKey, sValue.split("|")[1]);
  2400. }
  2401. }
  2402. }
  2403. return false;
  2404. }
  2405. /****************************************************************************************
  2406. * Function : appf_getConsultInfo
  2407. * Description : key에 해당하는 협진관련 정보를 반환한다.
  2408. * Argument : 01.sKey - 협진관련키
  2409. * return type : 협진정보 or ""
  2410. * Creator : 임준호
  2411. ****************************************************************************************/
  2412. function appf_getConsultInfo(sKey){
  2413. var objForm = frmf_getViewer("patientInfo");
  2414. var sConsultInfo = "";
  2415. if (!utlf_isNull(objForm)){
  2416. sConsultInfo = objForm.fGetConsultInfo(sKey);
  2417. }
  2418. return sConsultInfo;
  2419. }
  2420. /****************************************************************************************
  2421. * Function : appf_getConsultInfos
  2422. * Description : 협진관련 정보를 지정한 노드로 모두 copyNode한다.
  2423. * Argument : 01.sKey - 협진관련키
  2424. * return type : 협진정보 or ""
  2425. * Creator : 임준호
  2426. ****************************************************************************************/
  2427. function appf_getConsultInfos(objDsDest) {
  2428. var objForm = frmf_getViewer("patientInfo");
  2429. if (!utlf_isNull(objForm) && !utlf_isNull(objDsDest)){
  2430. var objDsSrc = objForm.fgetConsultInfos();
  2431. if(!utlf_isNull(objDsSrc)){
  2432. objDsSrc.copyData(objDsDest);
  2433. return true;
  2434. }
  2435. }
  2436. return false;
  2437. }
  2438. /**
  2439. * @-----------------------------------------------------------------------------------
  2440. * @desc : 처방기본데이터 copyNode
  2441. * @param : destPath : 대상경로
  2442. * @return : true or false
  2443. * @-----------------------------------------------------------------------------------
  2444. */
  2445. function appf_getOrderBasicInfo(destPath){
  2446. var viewerObj = frmf_getViewer("orderbasicinfo");
  2447. if (!utlf_isNull(viewerObj)){
  2448. var objects = viewerObj.objects;
  2449. for(var i = 0; i < objects.length; i++) {
  2450. var object = objects[i];
  2451. var sObject = dsf_createDs(destPath + object.name.substr(3));
  2452. var ds_object = this.objects[sObject];
  2453. ds_object.copyData(object);
  2454. }
  2455. return true;
  2456. }
  2457. return false;
  2458. }
  2459. /****************************************************************************************
  2460. * Function : appf_getZipCodeList
  2461. * Description : 우편번호 검색.
  2462. * Argument : 01.sCondition
  2463. * - "zipcode" : 우편번호
  2464. * - "combination" : 동명/아파트명/건물명
  2465. * - "address" : 주소
  2466. * 02. sTerm : 검색어
  2467. * return type : Object - zipcdhead : 우편번호앞번호
  2468. * - zipcdfoot : 우편번호뒷번호
  2469. * - seqno : 일련번호
  2470. * - address : 입력주소
  2471. * Creator : TF zbcfOpenZipCodeList () 함수 대체
  2472. ****************************************************************************************/
  2473. function appf_getZipCodeList(sCondition, sTerm)
  2474. {
  2475. var objArg = new Object();
  2476. objArg.plgv_sCondition = sCondition;
  2477. objArg.plgv_sTerm = sTerm;
  2478. return frmf_modal("SPZBP00101", "SPZBP00101", objArg, null, null, null, null, null, null, null, null, null, "M");
  2479. }
  2480. /****************************************************************************************
  2481. * Function : appf_openHiChart
  2482. * Description : 설명처방 창 열기
  2483. * Argument : 없음
  2484. * return type : 없음
  2485. * Creator : 김상목
  2486. ****************************************************************************************/
  2487. function appf_openHiChart() {
  2488. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  2489. if(dutplceinstcd == "033") {
  2490. return;
  2491. }
  2492. var ykiho = (dutplceinstcd == "032") ? "37100467" : "37100017";
  2493. var userid = sysf_getUserId();
  2494. var usernm = sysf_getUserName();
  2495. var orddeptcd = sysf_getUserInfo("dutplcecd");
  2496. var hospitalkey = (dutplceinstcd == "032") ? "e285dd1eb61d4949b8bde02a936d9cf8" : "1b9bed0d8cd9439d88aa8dc273f30551";
  2497. var url = "";
  2498. var usertype = "";
  2499. var jobkindcd = sysf_getUserInfo("jobkindcd");
  2500. if(jobkindcd == "0330") { // 의사
  2501. usertype = "D";
  2502. } else if(jobkindcd == "1220") { // 약사
  2503. usertype = "E";
  2504. } else if(jobkindcd == "1140") { // 간호사
  2505. usertype = "F";
  2506. // } else if(jobkindcd == "9951") { // 간호조무사 (일단 기타로 처리)
  2507. // usertype = "G";
  2508. } else if(jobkindcd == "7020") { // 임상기사
  2509. usertype = "H";
  2510. } else { // 기타
  2511. usertype = "I";
  2512. }
  2513. var pamInfoCvs = sysf_getGlobalVariable("paminfo");
  2514. dsf_setCSVToDs ( "ds_hichartinfo", pamInfoCvs ); //상단화면 정보 초기화
  2515. // 주소 : hichart.knuh.kr (192.168.101.31, 192.168.101.32) 1호기, 2호기 이중화 되어 있음
  2516. if(ds_hichartinfo.rowcount <= 0) {
  2517. url = "https://hichart.knuh.kr/Controls/Doctor/OCSEMR/default.aspx?pa=" + ykiho + "&bl=" + orddeptcd + "&kt=" + usertype
  2518. + "&kw=" + usernm + "&g=" + userid + "&key=" + hospitalkey;
  2519. } else {
  2520. var pid = ds_hichartinfo.getColumn(0, "pid");
  2521. var mpphontel = ds_hichartinfo.getColumn(0, "mpphontel");
  2522. var ioflag = ds_hichartinfo.getColumn(0, "ioflag");
  2523. // 본원 또는 외래는 원무기본정보로 환자 휴대폰번호 셋팅
  2524. if(dutplceinstcd == "031" || ioflag != "I") {
  2525. url = "https://hichart.knuh.kr/Controls/Doctor/OCSEMR/default.aspx?pa=" + ykiho + "&bl=" + orddeptcd + "&kt=" + usertype
  2526. + "&kw=" + usernm + "&g=" + userid + "&mi=" + mpphontel + "&c=" + pid + "&key=" + hospitalkey;
  2527. } else {
  2528. // 간호초기평가 기록 조회
  2529. var instcd = ds_hichartinfo.getColumn(0, "instcd");
  2530. var indd = ds_hichartinfo.getColumn(0, "indd");
  2531. appf_getHiChartPatPhoneInfo(instcd, pid, indd); // 조회 후 ds_result_hichart_patphoneinfo 데이터셋이 생성된다.
  2532. if(ds_result_hichart_patphoneinfo.rowcount <= 0) {
  2533. sysf_messageBox("환자정보를 조회 할 수 없어\n\n원무기본정보로 환자 휴대전화번호를 셋팅합니다.", "E");
  2534. url = "https://hichart.knuh.kr/Controls/Doctor/OCSEMR/default.aspx?pa=" + ykiho + "&bl=" + orddeptcd + "&kt=" + usertype
  2535. + "&kw=" + usernm + "&g=" + userid + "&mi=" + mpphontel + "&c=" + pid + "&key=" + hospitalkey;
  2536. } else {
  2537. // 환자의 전화번호
  2538. var patmphone = ds_result_hichart_patphoneinfo.getColumn(0, "patmphone");
  2539. var pattel = ds_result_hichart_patphoneinfo.getColumn(0, "pattel");
  2540. var patetcphone1 = ds_result_hichart_patphoneinfo.getColumn(0, "patetcphone1"); // 현재 사용 안함(2018.01.22)
  2541. var patetcphone2 = ds_result_hichart_patphoneinfo.getColumn(0, "patetcphone2"); // 현재 사용 안함(2018.01.22)
  2542. var telflag = ds_result_hichart_patphoneinfo.getColumn(0, "telflag");
  2543. telflag = (utlf_isNull(telflag)) ? "" : "[" + telflag + "]"; // 본인, 보호자 입력 되어 있지 않을 경우엔 미표시
  2544. // 보호자의 전화번호
  2545. var guardrelanm = ds_result_hichart_patphoneinfo.getColumn(0, "guardrelanm");
  2546. var guardmpphone = ds_result_hichart_patphoneinfo.getColumn(0, "guardmpphone");
  2547. var guardtel = ds_result_hichart_patphoneinfo.getColumn(0, "guardtel");
  2548. // 가져온 번호에서 숫자만 추출
  2549. patmphone = utlf_getNumberFromString(patmphone);
  2550. pattel = utlf_getNumberFromString(pattel);
  2551. patetcphone1 = utlf_getNumberFromString(patetcphone1);
  2552. patetcphone2 = utlf_getNumberFromString(patetcphone2);
  2553. guardmpphone = utlf_getNumberFromString(guardmpphone);
  2554. guardtel = utlf_getNumberFromString(guardtel);
  2555. var regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
  2556. // 주보호자 (간호초기평가)
  2557. var guardmpphone2 = "";
  2558. if(regExp.test(guardmpphone)){
  2559. guardmpphone2 = "주보호자[" + guardrelanm + "]:" + guardmpphone;
  2560. }
  2561. // 환자 휴대폰 (원무 정보)
  2562. var patmphone2 = "";
  2563. if(patmphone != "") {
  2564. var prefix = (guardmpphone2 == "") ? "" : ",";
  2565. patmphone2 = prefix + "휴대폰" + telflag + ":" + patmphone;
  2566. }
  2567. // 환자 연락처 (원무 정보)
  2568. var pattel2 = "";
  2569. if(regExp.test(pattel)){
  2570. var prefix = (guardmpphone2 == "" && patmphone2 == "") ? "" : ",";
  2571. pattel2 = prefix + "연락처" + telflag + ":" + pattel;
  2572. }
  2573. var phonelist = "";
  2574. // 디폴트 휴대폰 설정
  2575. // 주보호자가 지정되어 있지 않을 경우 환자의 휴대폰과 연락처만 표시
  2576. var defaultPhone = guardmpphone;
  2577. if(defaultPhone == "") {
  2578. if(patmphone == "") defaultPhone = pattel;
  2579. else defaultPhone = patmphone;
  2580. }
  2581. var phoneNums = "";
  2582. if(guardmpphone2 != "" || patmphone2 != "" || pattel2 != "") {
  2583. phoneNums = "&ml=" + guardmpphone2 + patmphone2 + pattel2;
  2584. }
  2585. phonelist = "&mi=" + defaultPhone + phoneNums;
  2586. url = "https://hichart.knuh.kr/Controls/Doctor/OCSEMR/default.aspx?pa=" + ykiho + "&bl=" + orddeptcd + "&kt=" + usertype
  2587. + "&kw=" + usernm + "&g=" + userid + phonelist +"&c=" + pid + "&key=" + hospitalkey;
  2588. }
  2589. }
  2590. }
  2591. frmf_openHtml(url);
  2592. // var objExtCommon = new ExtCommon();
  2593. // objExtCommon.executeProcess("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe", url, "");
  2594. }
  2595. /****************************************************************************************
  2596. * Function : appf_sendHiChartLMS
  2597. * Description : 설명처방 LMS 전송
  2598. * Argument : 01.sVodlist : 설명처방코드 (콤마(,) 구분으로 복수개 전송가능)
  2599. * - "a153a" : 한개 전송
  2600. * - "a153a,g294a" : 복수개 전송 시 콤마(,)로 구분
  2601. * 02. sReceiver : 문자를 받을 휴대전화번호
  2602. * - "010XXXXXXXX" : 한명에게 전송 (콤마(,) 구분으로 여러명에게 전송가능)
  2603. * - "010XXXXXXXX,010YYYYYYYY" : 여러명에게 전송 시 콤마(,)로 구분
  2604. * 03. sPid : 환자번호
  2605. * 04. sComment : 환자에게 알리는 코멘트
  2606. * 05. sCallBackFunc : 콜백함수
  2607. * 06. 콜백에서 업데이트 시킬 rowposition
  2608. * return type : 없음
  2609. * Creator : 김상목
  2610. ****************************************************************************************/
  2611. function appf_sendHiChartLMS(sVodlist, sReceiver, sPid, sComment, sCallBackFunc, rowpos, sReservetime) {
  2612. var objColInfo = new Array();
  2613. objColInfo.push({col: "vodlist", val: sVodlist});
  2614. objColInfo.push({col: "receiver", val: sReceiver});
  2615. objColInfo.push({col: "pid", val: sPid});
  2616. objColInfo.push({col: "comment", val: sComment});
  2617. objColInfo.push({col: "userid", val: sysf_getUserId()});
  2618. objColInfo.push({col: "ordnm", val: sysf_getUserInfo("usernm")});
  2619. objColInfo.push({col: "jobkindcd", val: sysf_getUserInfo("jobkindcd")});
  2620. objColInfo.push({col: "orddeptcd", val: sysf_getUserInfo("dutplcecd")});
  2621. if(!utlf_isNull(rowpos))
  2622. objColInfo.push({col: "rowpos", val: rowpos});
  2623. if(!utlf_isNull(sReservetime))
  2624. objColInfo.push({col: "reservetime", val: sReservetime});
  2625. dsf_createDsRow("ds_send_hichart", objColInfo);
  2626. dsf_createDs("ds_result_hichart");
  2627. var oParam = {};
  2628. oParam.id = "hichart_API";
  2629. oParam.service = "hichartapp.HiChart";
  2630. oParam.method = "reqExeSendHiChartLMS";
  2631. oParam.inds = "req=ds_send_hichart";
  2632. oParam.outds = "ds_result_hichart=result_hichart";
  2633. oParam.async = false;
  2634. if(!utlf_isNull(sCallBackFunc))
  2635. oParam.callback = sCallBackFunc;
  2636. tranf_submit(oParam);
  2637. }
  2638. function appf_getHiChartPatPhoneInfo(sInstcd, sPid, sIndd) {
  2639. var objColInfo = new Array();
  2640. objColInfo.push({col: "instcd", val: sInstcd});
  2641. objColInfo.push({col: "pid", val: sPid});
  2642. objColInfo.push({col: "indd", val: sIndd});
  2643. dsf_createDsRow("ds_send_hichart_patphoneinfo", objColInfo);
  2644. dsf_createDs("ds_result_hichart_patphoneinfo");
  2645. var oParam = {};
  2646. oParam.id = "hichart_patphoneinfo_API";
  2647. oParam.service = "hichartapp.HiChart";
  2648. oParam.method = "reqGetHiChartPatPhoneInfo";
  2649. oParam.inds = "req=ds_send_hichart_patphoneinfo";
  2650. oParam.outds = "ds_result_hichart_patphoneinfo=result_hichart_patphoneinfo";
  2651. oParam.async = false;
  2652. tranf_submit(oParam);
  2653. }
  2654. function appf_getHiChartSendHistory(objColInfo, sResultDs, sCallBackFunc) {
  2655. dsf_createDsRow("ds_send_hichart_sendhistory", objColInfo);
  2656. dsf_createDs(sResultDs);
  2657. var oParam = {};
  2658. oParam.id = "hichart_sendhistory_API";
  2659. oParam.service = "hichartapp.HiChart";
  2660. oParam.method = "reqGetHiChartSendHistory";
  2661. oParam.inds = "req=ds_send_hichart_sendhistory";
  2662. oParam.outds = sResultDs + "=result_sendhistory";
  2663. oParam.async = true;
  2664. if(!utlf_isNull(sCallBackFunc))
  2665. oParam.callback = sCallBackFunc;
  2666. tranf_submit(oParam);
  2667. }
  2668. function appf_getHiChartContentsURL(contentscd) {
  2669. var objColInfo = new Array();
  2670. objColInfo.push({col: "contentscd", val: contentscd});
  2671. dsf_createDsRow("ds_send_hichart_getcontentsurl", objColInfo);
  2672. dsf_createDs("ds_result_hichart_contentsurl");
  2673. var oParam = {};
  2674. oParam.id = "hichart_getcontentsurl_API";
  2675. oParam.service = "hichartapp.HiChart";
  2676. oParam.method = "reqGetHiChartContentsURL";
  2677. oParam.inds = "req=ds_send_hichart_getcontentsurl";
  2678. oParam.outds = "ds_result_hichart_contentsurl=result_contentsurl";
  2679. oParam.async = false;
  2680. tranf_submit(oParam);
  2681. return ds_result_hichart_contentsurl.getColumn(0, "thumUrl");
  2682. }
  2683. ]]></Script>