MMOCommon.xjs 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************************
  3. * System Name :
  4. * Job Name : EMR
  5. * File Name : MMOCommon.xjs
  6. * Creator : 윤지현
  7. * Make Date : 2014.04.17
  8. *
  9. * Description : 진료 공통 메서드
  10. *--------------------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *--------------------------------------------------------------------------------------------------
  13. *
  14. ***************************************************************************************************/
  15. /********************************************************************************************************************/
  16. /************************* 진료파트 공통함수 목록 *********************************************************************/
  17. /********************************************************************************************************************/
  18. //lf_compareNodeVal : 두 Dataset을 비교하여 결과에 따라 true, false를 return한다.
  19. //cbf_getEMRLoadingInfo : 처방 정보 비동기(Ajax) 호출 후 CallBack 함수
  20. //lf_aftGetEMRLoadingInfo : 처방 정보 비동기(Ajax) 호출 후 이벤트 후처리
  21. //lf_getDrJobComboInfo : 로그인시 읽어온 message 중 의사직종코드를 불러옴
  22. //lf_gethardcdArrayList : 하드코드 조회 배열을 이용하여 한번의 Submit 이용하기
  23. //lf_getHardCDList : 조회된 하드코드 리스트를 조회한다.
  24. //lf_getArrayData : 구분자로 분리된 특정자료를 Reading
  25. //lf_getLoadingStatus : 처방화면 Main loading 여부를 세팅
  26. //lf_setLoadingStatus : 처방화면 Main loading 여부를 세팅
  27. //lf_initWndTitle : 화면타이틀을 설정한다
  28. //lf_mmbfGetDeptCodeComboList : 부서 콤보 조회
  29. //lf_mmbfGetSubDeptComboList : 세부과리스트 조회
  30. //lf_mmbfGetUserComboList : EMR사용자콤보 조회
  31. //lf_mmbfGetUserEnvQuestValue : 사용자 환경설정의 값을 조회한다.
  32. //lf_mmofReqGetCnstTypeComboList : 협진분류콤보조회
  33. //lf_reqGetDeptList : 부서리스트 조회
  34. //lf_reqOpRoomList : 수술방 조회
  35. //lf_prcpModal : 팝업위치가 저장되지 않는 팝업 띄우기
  36. //lf_prcpOpenMon : 팝업위치가 저장되지 않는 팝업 모달 띄우기(모니터 번호 선택 가능)
  37. //lf_chkPrcpModi : 환자 변경시 저장하지 않은 처방 여부체크해서 저장여부 Alert
  38. //lf_addDrChk : 가산의 체크
  39. //lf_chngAddDr : 가산의 변경
  40. //lf_getTopPatientinfo : 상단의 dataset 참조 / 복사
  41. //emr_setGrdDragAnDropRowMove : 그리드의 행(row)을 마우스 Drag & Drop으로 원하는 위치(RowPosition)로 이동
  42. //lf_fitSizeGrid : 그리드 size를 데이터 길이와 너비에 맞게 변경시켜준다.
  43. //lf_setGridStatus : 데이터의 상태를 변경한다.(신규, 삭제)
  44. //lf_appendChildPatientInfo : 상단의 인스턴스에서 Dataset 복사
  45. //lf_getBindCellName : 그리드에서 컬럼 인덱스로 바인드된 데이터셋의 컬럼명을 가져온다.
  46. //lf_setDsDefaultValue : 데이터셋에 Default값을 넣어준다.
  47. //lf_reqPatInfo : 환자의 기초정보를 조회한다.(pid, hngnm)
  48. //lf_dateFormat : 날짜의 모양을 바꾼다.
  49. //lf_chkColumnSetData : 그리드 체크값에 따라 컬럼값을 변경한다
  50. //lf_getArrayData : 구분자로 분리된 배열에서 해당 행, 열의 데이터 조회
  51. //lf_makePrcpSrchDs : 처방 조회 시 outds가 없다면 자동 생성한다.
  52. //lf_setCheckboxProperty : 일괄입력 화면들에서 체크 박스 클릭시에 대한 공통 동작 정의
  53. //include "com_commodulexp::SMZFS00501.xjs"
  54. /***************************************************************************************************
  55. * Function : lf_compareNodeVal
  56. * Description : 두 Dataset을 비교하여 결과에 따라 true, false를 return한다.
  57. * Argument : oDescDs [Dataset : 목적노드]
  58. * : oSrcDs [Dataset : 원본노드]
  59. * return type : Boolean[true/false]
  60. * Creator :
  61. ***************************************************************************************************/
  62. function lf_compareNodeVal(oDescDs, oSrcDs)
  63. {
  64. // 컬럼 갯수가 다른 경우 true
  65. if (oDescDs.colcount != oSrcDs.colcount) return true;
  66. for (var i=0 ; i<oDescDs.colcount ; i++) {
  67. var oColInfo = oDescDs.getColumnInfo(i);
  68. var desValue = oDescDs.getColumn(0, oColInfo.name);
  69. var srcValue = oSrcDs.getColumn(0, oColInfo.name);
  70. // 값이 다른 경우 true
  71. if (desValue != srcValue)
  72. return true;
  73. }
  74. return false; // 값이 같은 경우 false
  75. }
  76. /***************************************************************************************************
  77. * Function : cbf_getEMRLoadingInfo
  78. * Description : 처방 정보 비동기(Ajax) 호출 후 CallBack 함수
  79. * Argument : sSvcId
  80. * : nErrorCode
  81. * : sErrorMsg
  82. * return type :
  83. * Creator :
  84. ***************************************************************************************************/
  85. function cbf_getEMRLoadingInfo(sSvcId, nErrorCode, sErrorMsg)
  86. {
  87. /*
  88. lv_sSpeedTestText += "\n" + "속도체크3-1. cbf_getEMRLoadingInfo 시작: " + lf_getCurrentDateString();
  89. if (nErrorCode != 0) return;
  90. var chkStatus, ioflag;
  91. switch (sSvcId) {
  92. case "TRMMO04310" :
  93. ioflag = "O";
  94. break;
  95. case "TRMMO04311" :
  96. ioflag = lgv_ioFlag;
  97. break;
  98. case "TRMMO04312" :
  99. ioflag = "OP";
  100. if(ds_inpatpaminfo.rowcount>0){
  101. ds_etcpatpaminfo.copyData(ds_inpatpaminfo);
  102. }else if(ds_outpatpaminfo.rowcount>0){
  103. ds_etcpatpaminfo.copyData(ds_outpatpaminfo);
  104. }
  105. break;
  106. }
  107. // [TFT] moon 20120522 : 환자 정보에 의한 디폴트 서식 조회 후 화면(서식) open에 따른 후처리
  108. lf_aftGetEMRLoadingInfo(ioflag);
  109. */
  110. }
  111. /***************************************************************************************************
  112. * Function : lf_aftGetEMRLoadingInfo
  113. * Description : 처방 정보 비동기(Ajax) 호출 후 이벤트 후처리
  114. * Argument : ioflag
  115. * return type :
  116. * Creator :
  117. ***************************************************************************************************/
  118. function lf_aftGetEMRLoadingInfo(ioflag)
  119. {
  120. var viewerObj = frmf_getViewer("patientInfo");
  121. viewerObj.lv_sSpeedTestText += "\n" + "속도체크3-2. lf_aftGetEMRLoadingInfo 시작: " + lf_getCurrentDateString();
  122. // [TFT] moon 20120523 : 이전로직 위치 -> fGetEMRLoadingInfo() 함수의 마지막 부분
  123. dsf_createDsRow("ds_initdata", [{col:"loadflag", type:"string", size:256, val:"Y"},
  124. {col:"loaddate", type:"string", size:256, val:utlf_getCurrentDate()},
  125. {col:"loadtime", type:"string", size:256, val:utlf_getCurrentTime()}]);
  126. var oPatientInfo = frmf_getViewer("patientInfo");
  127. if (oPatientInfo.objects["ds_loadinginfo"] == null) {
  128. var oLoadDs = new Dataset();
  129. oPatientInfo.addChild("ds_loadinginfo", oLoadDs);
  130. oLoadDs.name = "ds_loadinginfo";
  131. }
  132. oPatientInfo.ds_loadinginfo.copyData(ds_initdata);
  133. for (var i=0 ; i<arrInitDataDsList.length ; i++) {
  134. var sDsNm = oPatientInfo.dsf_createDs("ds_"+arrInitDataDsList[i]);
  135. oPatientInfo.objects[sDsNm].clearData();
  136. oPatientInfo.objects[sDsNm].copyData(this.objects[sDsNm]);
  137. //trace(oPatientInfo.objects[sDsNm].saveXML());
  138. }
  139. //trace("lf_aftGetEMRLoadingInfo - copyData(viewerObj.root.loadinginfo, root.initdata)");
  140. // // [TFT] moon 20120523 : 이전로직 위치 -> SMMMO04200_외래환자리스트.xrw 더블 클릭 시 fGetEMRLoadingInfo() 호출 후 부분
  141. // if (lf_chkBfPrcpLoad(ioflag) == false ) {
  142. // return;
  143. // }
  144. //
  145. // // 2013-01-16 2013-01-16 오후 10:44:29 강지훈 수정 : 기록의 변경내역이 있는지 체크하여 저장 시킨다.
  146. // if (!fchkRecModi()) {
  147. // return;
  148. // }
  149. //
  150. // // 환자 변경 시 처방변경 내역이 있는지 체크하여 저장한다.
  151. // lf_chkPrcpModi(ioflag);
  152. if (ioflag == "O") lf_selectOutPat();
  153. if (ioflag == "I") lf_selectInPat();
  154. if (ioflag == "E") lf_selectERPat();
  155. if (ioflag == "T") lf_selectOpPat();
  156. }
  157. /***************************************************************************************************
  158. * Function : lf_getDrJobComboInfo
  159. * Description : 로그인시 읽어온 message 중 의사직종코드를 불러옴
  160. * Argument :
  161. * return type : sDrJobcd 에러시 하드코드 목록에서 조회
  162. * Creator :
  163. ***************************************************************************************************/
  164. function lf_getDrJobComboInfo()
  165. {
  166. var oSrcDs = emr_getOrderBaseInfo("drjobcomboinfo"); // 시스템의 하단 프레임 폼
  167. var sDrJobcd = null;
  168. var sDrJobNode = null;
  169. if (oSrcDs != null) {
  170. if (sDrJobNode == null) {
  171. sDrJobcd = lf_getHardCDList("Y", 301, 3);
  172. }
  173. else {
  174. sDrJobcd = sDrJobNode.text;
  175. }
  176. }
  177. else {
  178. sDrJobcd = lf_getHardCDList("Y", 301, 3);
  179. }
  180. return sDrJobcd;
  181. }
  182. /***************************************************************************************************
  183. * Function : lf_gethardcdArrayList
  184. * Description : 하드코드 조회 배열을 이용하여 한번의 Submit 이용하기
  185. * Argument : aHardCdList [Array : 위치할 최하위 인스턴스명 |(구분자) 하드코드 번호]
  186. * : sRsltDsList [Dataset : 하드코드 내용을 담을 대상 데이타셋]
  187. * Ex) dsf_createDs("ds_reqphardcdno", []);
  188. * dsf_createDs("ds_npdeptcd", []);
  189. * dsf_createDs("ds_hardcdno", []);
  190. * dsf_createDs("ds_opdrugresn", []);
  191. *
  192. * lf_gethardcdArrayList(new Array("reqphardcdno|138", "npdeptcd|104", "hardcdno|63", "opdrugresn|76"),
  193. * new Array("ds_reqphardcdno", "ds_npdeptcd", "ds_hardcdno", "ds_opdrugresn"));
  194. * return type :
  195. * Creator :
  196. ***************************************************************************************************/
  197. function lf_gethardcdArrayList(aHardCdList, sRsltDsList)
  198. {
  199. var sRef = dsf_createDs("ds_cond_hardcdlist", [{col:"hardcdno", type:"string", size:256}]);
  200. var oRef = this.objects[sRef];
  201. var sDsList = "";
  202. for (var i=0 ; i<aHardCdList.length ; i++) {
  203. var nAddRow = oRef.addRow();
  204. oRef.setColumn(nAddRow, "hardcdno", aHardCdList[i]);
  205. sDsList += sRsltDsList[i]+"="+sRsltDsList[i]+" ";
  206. }
  207. sDsList = sDsList.replace("=ds_", "=");
  208. var oParam = {};
  209. oParam.id = "TRMMB04107"; // transaction을 구분하기 위한 ID
  210. oParam.service = "prcpbaseapp.EnvInfoMngt"; // service ID
  211. oParam.method = "reqGetHardCdArrayLists"; // method ID
  212. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  213. oParam.outds = sDsList; // transaction을 처리 결과를 받을 Dataset의 ID
  214. tranf_submit(oParam);
  215. // Temp로 사용한 Dataset을 삭제
  216. var oRemoveDs = this.removeChild(sRef);
  217. oRemoveDs = null;
  218. }
  219. function lf_reqHardCodeInfo(oDsRsltRef, hardcd) {
  220. lf_getHardCDList("N", hardcd, null, oDsRsltRef);
  221. }
  222. /***************************************************************************************************
  223. * Function : lf_getHardCDList
  224. * Description : 조회된 하드코드 리스트를 조회한다.
  225. * Argument : sOption [Stirng : Y/값을 리턴한다, N/데이터셋을 반환한다.]
  226. * : sHardCdNo [String : 하드코드 번호]
  227. * : sRtnValue [String : 변환형태 Flag]- sOption이 "Y"일 때만 관련있음.
  228. * : oDsRsltRef [Dataset : 대상 데이타셋]
  229. * return type : option = "N" 일 경우: 데이터셋 복사
  230. "Y" 일 경우: sRtnValue 변환형태플래그 [0:리턴값 반환하지 않음 (하드코드 값이 여러개일 때 선택, 1:hardcdno를 리턴, 2:hardcodenm 을 리턴
  231. 3:hardcd 를 리턴 4:hardcdnm를 리턴, 5:cdseqno를 리턴, 9:hardcd+ "|" + hardcdnm + "|" + cdseqno 형태로 리턴]
  232. * Creator :
  233. * ex) : lf_getHardCDList("N", 60, null, oDsRsltRef);
  234. var rtnHardcd = lf_getHardCDList("Y", 60, 1, null);
  235. ***************************************************************************************************/
  236. function lf_getHardCDList(sOption, sHardCdNo, sRtnValue, oDsRsltRef)
  237. {
  238. var oDsHardCd = emr_getHardcodeTable(sHardCdNo);
  239. var sHardCd;
  240. var sHardCdNm;
  241. var nCdSeqNo;
  242. if (!utlf_isNull(oDsHardCd)) {
  243. if (sOption == "Y") {
  244. try {
  245. var sHardCdNo = oDsHardCd[0].hardcdno;
  246. var sHardCodeNm = oDsHardCd[0].hardcodenm;
  247. sHardCd = oDsHardCd[0].hardcd;
  248. sHardCdNm = oDsHardCd[0].hardcdnm;
  249. nCdSeqNo = oDsHardCd[0].cdseqno;
  250. }
  251. catch(e) {
  252. trace("lf_getHardCDList Error : " + e);
  253. }
  254. if (sRtnValue == 1) {
  255. return sHardCdNo;
  256. }
  257. else if (sRtnValue == 2) {
  258. return hardcodenm;
  259. }
  260. else if (sRtnValue == 3) {
  261. return sHardCd;
  262. }
  263. else if (sRtnValue == 4) {
  264. return sHardCdNm;
  265. }
  266. else if (sRtnValue == 5) {
  267. return nCdSeqNo;
  268. }
  269. else if (sRtnValue == 9) {
  270. return sHardCd+ "|" + sHardCdNm + "|" + nCdSeqNo;
  271. }
  272. }
  273. else {
  274. var destListLen = oDsRsltRef.rowcount;
  275. // 한번이라도 복사된 내용이 있으면 다시 안하도록 수정 2011. 01.20 김영학
  276. if (destListLen < 1 ) {
  277. if (!utlf_isNull(oDsHardCd)) {
  278. // 하드코드 Object 갯수 만큼 loop 작업
  279. for (var i = 0; i < oDsHardCd.length; i++)
  280. {
  281. var nAddRow = oDsRsltRef.addRow();
  282. // Object의 property 갯수 만큼 loop 작업을 하면 Dataset의 컬럼생성 및 Row 값 설정
  283. for (var j in oDsHardCd[i])
  284. {
  285. oDsRsltRef.addColumn(j, "STRING");
  286. oDsRsltRef.setColumn(nAddRow, j, oDsHardCd[i][j]);
  287. }
  288. }
  289. oDsRsltRef.applyChange();
  290. }
  291. }
  292. }
  293. }
  294. }
  295. /***************************************************************************************************
  296. * Function : lf_getArrayData
  297. * Description : 구분자로 분리된 특정자료를 Reading
  298. * Argument : sData [String : split이 포함된 원본데이터]
  299. * : sRow [String : row 위치값]
  300. * : sCol [String : col 위치값]
  301. * : sRowSep [String : row 구분자]
  302. * : sColSep [String : col 구분자]
  303. * return type : arrCol[sCol]
  304. * Creator :
  305. ***************************************************************************************************/
  306. function lf_getArrayData(sData, sRow, sCol, sRowSep, sColSep)
  307. {
  308. var sRowSep_ = (sRowSep == null || sRowSep =="" ? "▩" : sRowSep); // row 구분자
  309. var sColSep_ = (sColSep == null || sColSep =="" ? "▦" : sColSep); // column 구분자
  310. var arrRow = sData.split(sRowSep_);
  311. if (arrRow.length <= sRow) return "";
  312. var arrCol = arrRow[sRow].split(sColSep_);
  313. if (arrCol.length <= sCol) return "";
  314. return arrCol[sCol];
  315. }
  316. /***************************************************************************************************
  317. * Function : lf_getLoadingStatus
  318. * Description : 처방화면 Main loading 여부를 세팅
  319. * : 형식 : 기관명 + 화면명 + 로그인과 + 로그인한 사용자 + 로그인일시
  320. * Argument :
  321. * return type :
  322. * Creator :
  323. ***************************************************************************************************/
  324. function lf_getLoadingStatus()
  325. {
  326. return frmf_getParameter("PRCP_LOADING_STATUS");
  327. }
  328. /***************************************************************************************************
  329. * Function : lf_setLoadingStatus
  330. * Description : 처방화면 Main loading 여부를 세팅
  331. * Argument :
  332. * return type :
  333. * Creator :
  334. ***************************************************************************************************/
  335. function lf_setLoadingStatus(status)
  336. {
  337. var sysMessageobj = frmf_getViewer("sysMessage");
  338. sysMessageobj.frmf_setParameter("PRCP_LOADING_STATUS", status);
  339. }
  340. /***************************************************************************************************
  341. * Function : lf_initWndTitle
  342. * Description : 화면타이틀을 설정한다
  343. * : 형식 : 기관명 + 화면명 + 로그인과 + 로그인한 사용자 + 로그인일시
  344. * Argument :
  345. * return type :
  346. * Creator :
  347. ***************************************************************************************************/
  348. function lf_initWndTitle(grd_prcplist)
  349. {
  350. if (sysf_getGlobalVariable("userinfos") != "") {
  351. //2013-05-21 강지훈 수정 : 화면명이 맨 앞으로 보이고 기관명이 마지막으로 보이게끔 설정
  352. var scrnTitle = form.title + " " ;
  353. scrnTitle += sysf_getUserInfo("dutplcenm") + " ";
  354. scrnTitle += sysf_getUserName() + " ";
  355. scrnTitle += sysf_getTitleLoginDate() + " ";
  356. scrnTitle += sysf_getUserInfo("systeminstnm");
  357. document.title = scrnTitle;
  358. }
  359. if (grd_prcplist != null) {
  360. grd_prcplist.setFormatRowProperty(0, "size", 45);
  361. grd_prcplist.setBandProperty("fixed", "word-wrap") = "word";
  362. }
  363. }
  364. /***************************************************************************************************
  365. * Function : lf_mmbfGetDeptCodeComboList
  366. * Description : 부서 콤보 조회
  367. * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
  368. * : sOrdDeptFlag [String : 진료과구분]
  369. * : sStnddd [String : 기준일]
  370. * return type : [Dataset : 조회된 부서 리스트]
  371. * Creator :
  372. * Conversion : TF SVN.60233
  373. ***************************************************************************************************/
  374. function lf_mmbfGetDeptCodeComboList(oDsRsltRef, sOrdDeptFlag, sStnddd)
  375. {
  376. var isSearchStnddd = false;
  377. var hasStnddd = (!utlf_isNull(sStnddd) && sStnddd.length == 8);
  378. if (hasStnddd) { // 기준일자를 입력하는경우 DB에서 신규로 조회 하도록 수정. 2014.04.03 엄영만
  379. isSearchStnddd = true;
  380. } else {
  381. // 기준일자가 없는경우 KNUH_20110208, 진료속도개선 수정, TRMMB04101 submit을 안하고
  382. // 로그인시 가져온 데이터를 copy하는것으로 변경, 주희경
  383. var sID = "";
  384. switch (sOrdDeptFlag) {
  385. case "A" : // ALL
  386. case "" :
  387. case null :
  388. sID = "alldeptinfo";
  389. break;
  390. case "C" :
  391. sID = "centdeptinfo";
  392. vreak;
  393. case "D" : // 퇴원
  394. sID = "dscdeptinfo";
  395. break;
  396. case "W" : // 병동
  397. sID= "warddeptinfo";
  398. break;
  399. case "O" : // 외래
  400. sID = "otptdeptinfo";
  401. break;
  402. case "I" : // 입원
  403. sID = "inptdeptinfo";
  404. break;
  405. case "E" : //시행부서
  406. sID = "dept";
  407. break;
  408. }
  409. var oSrcDs = emr_getOrderBaseInfo(sID);
  410. if (oSrcDs.rowcount > 0) { // 복사할 원본 데이터가 존재하면 복사
  411. oDsRsltRef.copyData(oSrcDs, true);
  412. }
  413. else {
  414. isSearchStnddd = true;
  415. }
  416. }
  417. if(isSearchStnddd) {
  418. // KNUH_20110208, 주희경 복사할 데이터가 없을 시 (비정상 로딩) 강제 로그아웃
  419. // 데이타셋 생성및 로우 생성후 값설정 공통 함수 [/com_commonxp/comm_ds에 정의]
  420. var sRef = dsf_createDsRow("ds_cond_dept", [{col:"orddeptflag", type:"string", size:256, val:""},
  421. {col:"stnddd", type:"string", size:256, val:""}]);
  422. var oRef = this.objects[sRef];
  423. if(!hasStnddd)
  424. sysf_messageBox("현재 프로그램 배포로 인해 진료에 필요한 데이터를 재조회 해야합니다. 죄송하지만 반드시 다시 로그인 해주시기 바랍니다.", "");
  425. oRef.clearData();
  426. oRef.addRow();
  427. oRef.setColumn(0, "orddeptflag", sOrdDeptFlag);
  428. if (hasStnddd) oRef.setColumn(0, "stnddd", sStnddd); // 기준일
  429. var oParam = {};
  430. oParam.id = "TRMMB04101"; // transaction을 구분하기 위한 ID
  431. oParam.service = "prcpbaseapp.EnvInfoMngt"; // service ID
  432. oParam.method = "reqGetDeptComboList"; // method ID
  433. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  434. oParam.outds = oDsRsltRef.name + "=dept"; // transaction을 처리 결과를 받을 Dataset의 ID
  435. tranf_submit(oParam);
  436. // Temp로 사용한 Dataset을 삭제
  437. var oRemoveDs = this.removeChild(sRef);
  438. oRemoveDs = null;
  439. }
  440. }
  441. /***************************************************************************************************
  442. * Function : lf_mmbfGetSubDeptComboList
  443. * Description : 세부과리스트 조회
  444. * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
  445. * : sOrdDeptCd [String : 진료과코드]
  446. * return type :
  447. * Creator :
  448. ***************************************************************************************************/
  449. function lf_mmbfGetSubDeptComboList(oDsRsltRef, sOrdDeptCd)
  450. {
  451. var sRef = dsf_createDsRow("ds_cond_deptlist", [{col:"orddeptcd", type:"string", size:256, val:sOrdDeptCd}]);
  452. var oRef = this.objects[sRef];
  453. var oParam = {};
  454. oParam.id = "TRMMB04106"; // transaction을 구분하기 위한 ID
  455. oParam.service = "prcpbaseapp.EnvInfoMngt"; // service ID
  456. oParam.method = "reqGetSubDeptComboList"; // method ID
  457. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  458. oParam.outds = oDsRsltRef.name + "=subdeptlist"; // transaction을 처리 결과를 받을 Dataset의 ID
  459. tranf_submit(oParam);
  460. // Temp로 사용한 Dataset을 삭제
  461. var oRemoveDs = this.removeChild(sRef);
  462. oRemoveDs = null;
  463. }
  464. /***************************************************************************************************
  465. * Function : lf_mmbfGetUserComboList
  466. * Description : EMR사용자콤보 조회
  467. * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
  468. * : sDeptCd [String : 부서코드]
  469. * : sJobKindCd [String : 직종코드]
  470. * : sSpeCordYN [String : 선택진료여부]
  471. * : sDrFlag [String : 의사구분, 가상사용자 제외]
  472. * : sStandd [String : 조회기준일자]
  473. * : sNmDispFlag [String : 이름뒤에 특진(Y)표시 할것인지 구분]
  474. * : sJobFlag [String : 주치의 담당의 조회기준 (JobKindCD, JobPoscd)]
  475. * : sSpecDrChk [String : 선택진료 의사 모두 조회한다.]
  476. * : sInternFlag [String : 인턴포함여부]
  477. * return type :
  478. * Creator :
  479. * Conversion : TF SVN.60233
  480. ***************************************************************************************************/
  481. function lf_mmbfGetUserComboList(oDsRsltRef, sDeptCd, sJobKindCd, sSpeCordYN, sDrFlag, sStandd, sNmDispFlag, sJobFlag, sSpecDrChk, sInternFlag)
  482. {
  483. var sRef = dsf_createDsRow("ds_cond_usercombo", [{col:"deptcd", type:"string", size:256, val:sDeptCd}, // 부서코드
  484. {col:"jobkindcd", type:"string", size:256, val:sJobKindCd}, // 직종코드(의사:0330)
  485. {col:"specordyn", type:"string", size:256, val:sSpeCordYN}, // 선택진료여부
  486. {col:"drflag", type:"string", size:256, val:sDrFlag}, // 주치의, 담당의 구분(M : 주치의 , A:담당의 )
  487. {col:"standd", type:"string", size:256, val:sStandd}, // 조회기준일자
  488. {col:"jobflag", type:"string", size:256, val:sJobFlag}, // 조회구분 Jobkindcd(K), Jobposcd(P)
  489. {col:"specdrchk", type:"string", size:256, val:sSpecDrChk}, // 진료과조건 제외
  490. {col:"nmdispflag", type:"string", size:256, val:""}]);
  491. var oRef = this.objects[sRef];
  492. if (utlf_isNull(sNmDispFlag))
  493. oRef.setColumn(0, "nmdispflag", "N"); // 이름에 특진여부표시구분
  494. else
  495. oRef.setColumn(0, "nmdispflag", sNmDispFlag); // 이름에 특진여부표시구분
  496. var oParam = {};
  497. oParam.id = "TRMMB04102"; // transaction을 구분하기 위한 ID
  498. oParam.service = "prcpbaseapp.EnvInfoMngt"; // service ID
  499. oParam.method = "reqGetUserComboList"; // method ID
  500. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  501. oParam.outds = oDsRsltRef.name + "=usercombo"; // transaction을 처리 결과를 받을 Dataset의 ID
  502. tranf_submit(oParam);
  503. // Temp로 사용한 Dataset을 삭제
  504. var oRemoveDs = this.removeChild(sRef);
  505. oRemoveDs = null;
  506. }
  507. /***************************************************************************************************
  508. * Function : lf_mmbfGetUserEnvQuestValue
  509. * Description : 사용자 환경설정의 값을 조회한다.
  510. * Argument : sQestCd [String : 질문값]
  511. * return type : [String : 답안값]
  512. * Creator :
  513. ***************************************************************************************************/
  514. function lf_mmbfGetUserEnvQuestValue(sQestCd)
  515. {
  516. var oDsEnvinfo = emr_getOrderBaseInfo("envinfo");
  517. if (oDsEnvinfo != null) {
  518. var anstcnt = oDsEnvinfo.getColumn(oDsEnvinfo.findRow("qestcd", sQestCd), "answcnt");
  519. return anstcnt;
  520. }
  521. else {
  522. var sRef = dsf_createDsRow("ds_cond_reqdata", [{col:"interqestcd", type:"string", size:256, val:sQestCd}]);
  523. var oRef = this.objects[sRef];
  524. var sDsTemp = dsf_createDs("ds_temp");
  525. var oDsTemp = this.objects[sDsTemp];
  526. var answcnt = ""; // 답변번호
  527. var oParam = {};
  528. oParam.id = "TRMMB01104"; // transaction을 구분하기 위한 ID
  529. oParam.service = "prcpbaseapp.EnvInfoMngt"; // service ID
  530. oParam.method = "reqGetInterfaceAnsw"; // method ID
  531. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  532. oParam.outds = sDsTemp + "=interface"; // transaction을 처리 결과를 받을 Dataset의 ID
  533. tranf_submit(oParam);
  534. answcnt = oDsTemp.getColumn(0, "answcnt");
  535. var oRemoveDs = this.removeChild(sDsTemp);
  536. oRemoveDs = null;
  537. oRemoveDs = this.removeChild(sRef);
  538. oRemoveDs = null;
  539. return answcnt;
  540. }
  541. }
  542. /***************************************************************************************************
  543. * Function : lf_mmofReqGetCnstTypeComboList
  544. * Description : 협진분류콤보조회
  545. * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
  546. * : sOrdDeptCd [String : 진료과코드]
  547. * return type :
  548. * Creator :
  549. ***************************************************************************************************/
  550. function lf_mmofReqGetCnstTypeComboList(oDsRsltRef, sOrdDeptCd)
  551. {
  552. var sRef = dsf_createDsRow("ds_cond_cnsttypecombo", [{col:"orddeptcd", type:"string", size:256, val:sOrdDeptCd}]);
  553. var oRef = this.objects[sRef];
  554. var oParam = {};
  555. oParam.id = "TRMMO03602"; // transaction을 구분하기 위한 ID
  556. oParam.service = "prcpmngtapp.ConcPatMngt"; // service ID
  557. oParam.method = "reqGetCnstTypeComboList"; // method ID
  558. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  559. oParam.outds = oDsRsltRef.name + "=cnsttypecombo"; // transaction을 처리 결과를 받을 Dataset의 ID
  560. tranf_submit(oParam);
  561. var oRemoveDs = this.removeChild(sRef);
  562. oRemoveDs = null;
  563. }
  564. /***************************************************************************************************
  565. * Function : lf_reqGetDeptList
  566. * Description : 부서리스트 조회
  567. * Argument : oDsRsltRef [Dataset : 조회된 값을 받을 대상 데이타셋]
  568. * : sQueryFlag [String : Query구분]
  569. * : sDutPlceInstCd [String : 근무지기관코드]
  570. * : sDutPlceUseYN [String : 근무지사용여부]
  571. * return type :
  572. * Creator :
  573. ***************************************************************************************************/
  574. function lf_reqGetDeptList(oDsRsltRef, sQueryFlag, sDutPlceInstCd, sDutPlceUseYN)
  575. {
  576. var sRef = dsf_createDsRow("ds_cond_deptlist", [{col:"queryflag", type:"string", size:256, val:sQueryFlag},
  577. {col:"dutplceinstcd", type:"string", size:256, val:sDutPlceInstCd},
  578. {col:"dutplceuseyn", type:"string", size:256, val:sDutPlceUseYN}]);
  579. var oParam = {};
  580. oParam.id = "TRMMO04103"; // transaction을 구분하기 위한 ID
  581. oParam.service = "prcpmngtapp.EtcPrcpMngt"; // service ID
  582. oParam.method = "reqGetOrdDeptCD"; // method ID
  583. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  584. oParam.outds = oDsRsltRef.name + "=orddept"; // transaction을 처리 결과를 받을 Dataset의 ID
  585. tranf_submit(oParam);
  586. // Temp로 사용한 Dataset을 삭제
  587. var oRemoveDs = this.removeChild(sRef);
  588. oRemoveDs = null;
  589. }
  590. /***************************************************************************************************
  591. * Function : lf_reqOpRoomList
  592. * Description : 수술방 조회
  593. * Argument : sOpScheDt [String : 수술예약일자]
  594. * : oDsOpRoomList [Dataset : 수술실 명칭 데이터셋]
  595. * : oDsAllOpRoomList [Dataset : 수술방 명칭 데이터셋]
  596. * : sQueryFlag [String : Query구분자 (day : 일자, total : 전체, detl :부서, 의사, 일자)]
  597. * : sPerfDeptCd [String : 집도과]
  598. * : sPerfDrId [String : 집도의]
  599. * return type :
  600. * Creator :
  601. ***************************************************************************************************/
  602. function lf_reqOpRoomList(sOpScheDt, oDsOpRoomList, oDsAllOpRoomList, sQueryFlag, sPerfDeptCd, sPerfDrId)
  603. {
  604. var sRef = dsf_createDsRow("ds_cond_oproomlist", [{col:"opschedd", type:"string", size:256, val:sOpScheDt},
  605. {col:"queryflag", type:"string", size:256, val:sQueryFlag},
  606. {col:"perfdeptcd", type:"string", size:256, val:""},
  607. {col:"perfdrid", type:"string", size:256, val:""}]);
  608. var oRef = this.objects[sRef];
  609. if (sQueryFlag == "detl") {
  610. oRef.setColumn(0, "perfdeptcd", sPerfDeptCd);
  611. oRef.setColumn(0, "perfdrid", sPerfDrId);
  612. }
  613. else if (sQueryFlag == "dept") {
  614. oRef.setColumn(0, "perfdeptcd", sPerfDeptCd);
  615. }
  616. var oParam = {};
  617. oParam.id = "TRMMO05704"; // transaction을 구분하기 위한 ID
  618. oParam.service = "prcpmngtapp.OpMngt"; // service ID
  619. oParam.method = "reqGetOpRoomCombo"; // method ID
  620. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  621. oParam.outds = oDsOpRoomList.name + "=oproomlist " + oDsAllOpRoomList.name + "=alloproomlist"; // transaction을 처리 결과를 받을 Dataset의 ID
  622. tranf_submit(oParam);
  623. // Temp로 사용한 Dataset을 삭제
  624. var oRemoveDs = this.removeChild(sRef);
  625. oRemoveDs = null;
  626. }
  627. /***************************************************************************************************
  628. * Function : lf_prcpModal
  629. * Description : 팝업위치가 저장되지 않는 팝업 띄우기
  630. * Argument : sScreenId [String : 화면ID]
  631. * : objArg [Object : 팝업 변수]
  632. * : argxpt [Number : x좌표]
  633. * : argypt [Number : y좌표]
  634. * : ref
  635. * : resultref
  636. * : userProp
  637. * return type : void
  638. * Creator :
  639. ***************************************************************************************************/
  640. function lf_prcpModal( sScreenId, argxpt, argypt, ref, resultref , userProp)
  641. {
  642. var xpt = ypt = 0;
  643. if (utlf_isNull(argxpt) || utlf_isNull(argypt)) {
  644. xpt = system.cursorx;
  645. ypt = system.cursory;
  646. }
  647. else {
  648. xpt = system.clientToScreenX(this.getOwnerFrame(), 0) + argxpt;
  649. ypt = system.clientToScreenY(this.getOwnerFrame(), 0) + argypt;
  650. }
  651. var rtnVal = frmf_modal(sScreenId, sScreenId, null, false, null, argxpt, argypt, null, null, null, null, null, "M");
  652. return rtnVal;
  653. }
  654. /***************************************************************************************************
  655. * Function : lf_prcpOpenMon
  656. * Description : 팝업위치가 저장되지 않는 팝업 모달 띄우기(모니터 번호 선택 가능)
  657. * Argument : screenId: 화면 ID
  658. * : argxpt : x좌표
  659. * : argypt : y좌표
  660. * return type : void
  661. * Creator : 윤지현 2013. 07. 18
  662. ***************************************************************************************************/
  663. function lf_prcpOpenMon(screenId, argxpt, argypt, ref, resultref , userProp)
  664. {
  665. var answer = lf_mmbfGetUserEnvQuestValue("104"); // 기본환경설정에서 팝업창 띄울 모니터 번호 불러오기.(5: 해당없음)
  666. var xpt;
  667. var ypt;
  668. var mon;
  669. if (answer == "005") {
  670. xpt = system.clientToScreenX(this.getOwnerFrame(), 0) + parseInt(argxpt);
  671. ypt = system.clientToScreenY(this.getOwnerFrame(), 0) + parseInt(argypt);
  672. }
  673. else {
  674. xpt = argypt;
  675. ypt = argypt;
  676. }
  677. open(screenId, mon, xpt, ypt, screenId, ref, resultref, userProp, false);
  678. }
  679. /***************************************************************************************************
  680. * Function : lf_chkPrcpModi
  681. * Description : 환자 변경시 저장하지 않은 처방 여부체크해서 저장여부 Alert
  682. * Argument :
  683. * return type :
  684. * Creator :
  685. ***************************************************************************************************/
  686. function lf_chkPrcpModi(ioflag)
  687. {
  688. var mainobj = frmf_getMainViewer();
  689. var curPrcpObj = mainobj.frmf_getChildWindow("SMMMO00100");
  690. var curRowIndx = 0;
  691. // 처방창이 열려있을때만
  692. if (curPrcpObj != null) {
  693. // 처방권한 없으면 저장 안타도록
  694. if (!curPrcpObj.btn_prcpsave.disabled) {
  695. if (ioflag == "O" || ioflag == "S") {
  696. curRowIndx = grd_outpatlist.row;
  697. if (curPrcpObj.fPrcpSavePatList()) {
  698. grd_outpatlist.row = curRowIndx;
  699. }
  700. }
  701. else if (ioflag == "I") {
  702. curRowIndx = grd_inpatlist.row;
  703. if (curPrcpObj.fPrcpSavePatList()) {
  704. grd_inpatlist.row = curRowIndx;
  705. }
  706. }
  707. else if (ioflag == "E") {
  708. curRowIndx = grd_erpatlist.row;
  709. if (curPrcpObj.fPrcpSavePatList()) {
  710. grd_erpatlist.row = curRowIndx;
  711. }
  712. }
  713. else if (ioflag == "OP") {
  714. curRowIndx = grd_oppatlist.row;
  715. if (curPrcpObj.fPrcpSavePatList()) {
  716. grd_oppatlist.row = curRowIndx;
  717. }
  718. }
  719. }
  720. }
  721. }
  722. /***************************************************************************************************
  723. * Function : lf_addDrChk
  724. * Description : 가산의 체크
  725. * Argument :
  726. * return type :
  727. * Creator :
  728. ***************************************************************************************************/
  729. function lf_addDrChk(srcNode, indx, msgyn)
  730. {
  731. var addfg = "";
  732. if (indx < 0)
  733. return addfg;
  734. var calcscormastspec = srcNode.getColumn(indx, "calcscormastspec");
  735. if (utlf_isNull(calcscormastspec))
  736. return addfg ;
  737. var calcspecArr = calcscormastspec.split("|");
  738. if (calcspecArr != null && calcspecArr.length > 4) {
  739. if (calcspecArr[4] == "A") addfg = "GS";
  740. else if (calcspecArr[4] == "B") addfg = "ALL"; // CS
  741. else if (calcspecArr[4] == "C") addfg = "CS";
  742. else if (calcspecArr[4] == "D") addfg = "GS";
  743. if (utlf_isNull(addfg)) {
  744. if (calcspecArr[5] == "A") addfg = "GS";
  745. else if (calcspecArr[5] == "B") addfg = "ALL";
  746. else if (calcspecArr[5] == "C") addfg = "CS";
  747. else if (calcspecArr[5] == "D") addfg = "GS";
  748. }
  749. if (utlf_isNull(addfg)) {
  750. if (msgyn == "Y")
  751. sysf_messageBox("가산의 지정이 불가한 처방입니다.", "E");
  752. }
  753. }
  754. return addfg;
  755. }
  756. /***************************************************************************************************
  757. * Function : lf_chngAddDr
  758. * Description : 가산의 변경
  759. * Argument :
  760. * return type :
  761. * Creator :
  762. ***************************************************************************************************/
  763. function lf_chngAddDr(srcNode, indx, addfg, grdObj)
  764. {
  765. frmf_clearParameter("SPMMB08300_flag");
  766. frmf_clearParameter("SPMMB08300_useyn");
  767. frmf_clearParameter("SPMMB08300_userid");
  768. frmf_clearParameter("SPMMB08300_orddeptcd");
  769. frmf_clearParameter("SPMMB08300_userinfo");
  770. frmf_clearParameter("SPMMB08300_specdrid");
  771. var ordtype = ds_patflag.getColumn(0, "/root/patflag/list/prcpgenrflag");
  772. frmf_setParameter("SPMMB08300_orddeptcd", addfg);
  773. frmf_setParameter("SPMMB08300_ioflag", ordtype);
  774. frmf_setParameter("SPMMB08300_flag", "adddr");
  775. frmf_setParameter("SPMMB08300_specdrid", srcNode.getColumn(indx, "specdrid"));
  776. var scrid = frmf_getScreenID();
  777. var xpt = 400;
  778. var ypt = 300;
  779. if (!utlf_isNull(scrid) && scrid.length > 5) {
  780. if (scrid.substring(0,5) == "SPMMO")
  781. ypt = 10 ;
  782. }
  783. var rtnVal = lf_prcpModal("SPMMB08300", objArg);
  784. var useyn = frmf_getParameter("SPMMB08300_useyn");
  785. var userid = frmf_getParameter("SPMMB08300_userid");
  786. if (useyn == "Y") {
  787. srcNode.setColumn(indx, "tempcol30", userid);
  788. return true ;
  789. }
  790. return false ;
  791. }
  792. /***************************************************************************************************
  793. * Function : lf_getTopPatientinfo
  794. * Description : 상단의 dataset 참조 / 복사
  795. * Argument : sOption [Stirng : Y/dataset을 copy한다. , N/refrence를 반환한다.]
  796. : sPatientInfoDsNm [String : 데이터셋]
  797. : sFormDsNm [Dataset : 목적지 데이터셋]
  798. * : sClearFlag [String : 목적지 데이터셋 clear 여부]
  799. * return type :
  800. * Creator :
  801. ***************************************************************************************************/
  802. function lf_getTopPatientinfo(sOption, sPatientInfoDsNm, oFormDs, sClearFlag)
  803. {
  804. var initdataDs = this.objects["ds_init_data"];
  805. if((!utlf_isNull(initdataDs) && initdataDs.getColumn(0, "usge") != "prcp") || utlf_isNull(initdataDs)) {
  806. var nullDsNm = dsf_createDs("ds_null");
  807. var nullDsObj = this.objects[nullDsNm];
  808. return nullDsObj;
  809. }
  810. var oPatientInfoDiv = frmf_getViewer("patientInfo");
  811. var oPatientInfoDs = oPatientInfoDiv.objects[sPatientInfoDsNm];
  812. if(sOption == "Y") {
  813. if (sClearFlag != "N") {
  814. oFormDs.clearData();
  815. }
  816. oFormDs.appendData(oPatientInfoDs, true, true);
  817. } else {
  818. return oPatientInfoDs;
  819. }
  820. }
  821. /***************************************************************************************************
  822. * Function : lf_appendChildPatientInfo
  823. * Description : 상단의 인스턴스에서 Instance 복사
  824. * Argument : sFormDsNm [Dataset : 목적지 데이터셋]
  825. * : sPatientInfoDsNm [String : 데이터셋]
  826. * : sClearFlag [String : 목적지 데이터셋 clear 여부]
  827. * return type :
  828. * Creator :
  829. ***************************************************************************************************/
  830. function lf_appendChildPatientInfo(oFormDs, sPatientInfoDsNm, sClearFlag)
  831. {
  832. var oPatientInfoDiv = frmf_getViewer("patientInfo");
  833. var oPatientInfoDs = oPatientInfoDiv.objects[sPatientInfoDsNm];
  834. if (sClearFlag != "N") {
  835. oFormDs.clearData();
  836. }
  837. oFormDs.appendData(oPatientInfoDs, true, true);
  838. }
  839. /***************************************************************************************************
  840. * Function : emr_setGrdDragAnDropRowMove
  841. * Description : 그리드의 행(row)을 마우스 Drag & Drop으로 원하는 위치(RowPosition)로 이동
  842. * Argument : oGrid [Grid : 설정 할 Grid Object]
  843. * return type : 지정한 행(row)을 원하는 위치(RowPosition)로 이동
  844. * Creator : 2014.03.25 이호성
  845. ***************************************************************************************************/
  846. function emr_setGrdDragAnDropRowMove(oGrid)
  847. {
  848. // 한번 셋팅 된경우 다시 호출 하지 않기 위한 flag user property 추가.
  849. if (oGrid.DragAnDropRow) return;
  850. oGrid.ondrag.addHandler(gridrowmove_ondrag);
  851. oGrid.ondrop.addHandler(gridrowmove_ondrop);
  852. function gridrowmove_ondrag(obj:Grid, e:GridDragEventInfo) {
  853. e.userdata = e.row;
  854. return true;
  855. }
  856. function gridrowmove_ondrop(obj:Grid, e:GridDragEventInfo) {
  857. // Row를 이동하지 않은 경우
  858. if (e.userdata == e.row || e.row < 0 || e.col < 0)
  859. return;
  860. var objDs = eval(obj.binddataset);
  861. objDs.moveRow(e.userdata, e.row);
  862. }
  863. oGrid.DragAnDropRow = true;
  864. }
  865. /***************************************************************************************************
  866. * Function : emr_getHardcodeTable
  867. * Description : 하드코드테이블에서 해당 하드코드에 대한 Object Array 를 반환한다.
  868. * Argument : sHardcdno [String : 하드코드 번호]
  869. * : oSrcDs [Dataset : 리턴 데이타를 받을 데이타셋]
  870. * return type : [Object : 하드코드 테이블]
  871. * Creator :
  872. ***************************************************************************************************/
  873. function emr_getHardcodeTable(sHardcdno, oSrcDs)
  874. {
  875. var oDsHardCd = agv_objAppTopPath.form.dv_orderbasicinfo.lf_getHardcodeTable(sHardcdno);
  876. // var oDsHardCd = lf_getAllBizCodeList([{bizFlag: "M", cdGrpId: sHardcdno, dsNm: oSrcDs, sortField: "", sortMethod: ""}]
  877. // , true // 최소 컬럼 조회여부
  878. // , false // 비동기 여부
  879. // , "cbf_hardCodeTable"); // callBack 함수명
  880. if (utlf_isNull(oSrcDs)) {
  881. return oDsHardCd;
  882. }
  883. else {
  884. // 하드코드 Object 갯수 만큼 loop 작업
  885. for (var i=0 ; i < oDsHardCd.length ; i++)
  886. {
  887. var nAddRow = oSrcDs.addRow();
  888. // Object의 property 갯수 만큼 loop 작업을 하면 Dataset의 컬럼생성 및 Row 값 설정
  889. for (var j in oDsHardCd[i])
  890. {
  891. oSrcDs.addColumn(j, "STRING");
  892. oSrcDs.setColumn(nAddRow, j, oDsHardCd[i][j]);
  893. }
  894. }
  895. }
  896. }
  897. function cbf_hardCodeTable(strSvcID, nErrorCode, strErrorMag)
  898. {
  899. if(nErrorCode != 0) return sysf_messageBox("공통 코드를 조회하는데 ", "E009");
  900. }
  901. /***************************************************************************************************
  902. * Function : lf_fitSizeGrid
  903. * Description : 그리드 size를 데이터 길이와 너비에 맞게 변경시켜준다.
  904. * Argument : objGrid [Object : 변경시킬 그리드]
  905. * return type :
  906. * Creator : 윤지현
  907. ***************************************************************************************************/
  908. function lf_fitSizeGrid(objGrid){
  909. var colFullSize = objGrid.getRealColFullSize();
  910. var rowFUllSize = objGrid.getRealRowFullSize();
  911. rowFUllSize+=1;
  912. objGrid.position.width = colFullSize;
  913. objGrid.position.height = rowFUllSize;
  914. }
  915. /***************************************************************************************************
  916. * Function : lf_setGridStatus
  917. * Description : 데이터의 상태를 변경한다.(신규, 삭제)
  918. * Argument : dataset [String : 그리드에 맵핑된 데이터셋 명칭]
  919. : status [String : 변경시킬 상태(추가 및 신규: "I", 삭제: "D"]
  920. : objGrid [Grid : 그리드] :선택사항 Status가 I<추가> 일때 추가된 row가 에디터형태로 변경시킬 때 사용.
  921. : nCol [Number : 셀의 열 인덱스] :선택사항 Status가 I<추가> 일때 추가된 row 중 에디터형태로 변경시킬 열의 인덱스.
  922. : ex) lf_setGridStatus("ds_test", "I", grd_test, 1)
  923. * return type :
  924. * Creator : 윤지현
  925. ***************************************************************************************************/
  926. function lf_setGridStatus( dataset, status, objGrid, nCol){
  927. var object = this.objects[dataset]
  928. var arrTemp = new Array();
  929. if(status == "I"){
  930. var addRow = "";
  931. addRow = object.addRow();
  932. object.setRowType(addRow, 2);
  933. if(!utlf_isNull(objGrid)){
  934. objGrid.setCellPos(nCol);
  935. objGrid.setFocus();
  936. objGrid.showEditor(true);
  937. }
  938. }else if(status == "D"){
  939. object.updatecontrol = false;
  940. for (var i=0; i<object.rowcount; i++) {
  941. if (!object.getSelect(i)) continue;
  942. if(object.getRowType(i) == 8){
  943. object.setRowType(i, 1);
  944. continue;
  945. }
  946. if(object.getRowType(i) == 2){
  947. //object.deleteRow(i);
  948. arrTemp.push(i);
  949. continue;
  950. }
  951. object.setRowType(i, 8);
  952. }
  953. arrTemp.reverse();
  954. for(var idx in arrTemp){
  955. object.deleteRow(arrTemp[idx]);
  956. }
  957. object.updatecontrol = true;
  958. }
  959. }
  960. /***************************************************************************************************
  961. * Function : lf_getBindCellName
  962. * Description : 그리드에서 컬럼 인덱스로 바인드된 데이터셋의 컬럼명을 가져온다.
  963. * Argument : oTrgtGrid
  964. : nColumnIndx
  965. * return type : String
  966. * Creator : 강지훈
  967. ***************************************************************************************************/
  968. function lf_getBindCellName(oTrgtGrid, nColumnIndx){
  969. var sRtnText = "";
  970. var sTrgtText = oTrgtGrid.getCellProperty("body", nColumnIndx, "text");
  971. if(!utlf_isNull( sTrgtText)){
  972. sRtnText = sTrgtText.replace("bind:", "");
  973. }
  974. return sRtnText;
  975. }
  976. /***************************************************************************************************
  977. * Function : lf_setDsDefaultValue
  978. * Description : 데이터셋에 Default값을 넣어준다.
  979. * Argument : oTrgtGrid
  980. : nColumnIndx
  981. * return type : String
  982. * Creator : 강지훈
  983. ***************************************************************************************************/
  984. function lf_setDsDefaultValue(oTrgtDS, sColumnName, sValue, sColumnType){
  985. if(utlf_isNull(sColumnName)){
  986. sColumnName = "string";
  987. }
  988. oTrgtDS.addColumn(sColumnName, sColumnName);
  989. for(var i = 0 ; i < oTrgtDS.rowcount ; i++){
  990. if(utlf_isNull(oTrgtDS.getColumn(i, sColumnName))){
  991. oTrgtDS.setColumn(i, sColumnName, sValue);
  992. }
  993. }
  994. }
  995. /***************************************************************************************************
  996. * Function : lf_reqPatInfo
  997. * Description : 환자의 기초정보를 조회한다.(pid, hngnm)
  998. * Argument : dataset [Dataset: 조회된 내용을 담을 데이터셋]
  999. : srchflag[String : 등록번호, 환자명 구분 "pid"/"hngnm"]
  1000. : tblflag [String : 테이블구분(환자기본/외래/입원, ptbs/otpt/inpt)]
  1001. : param [String : 등록번호 / 환자명
  1002. : stnddd [String : 외래/입원일자]
  1003. * return type : true/false
  1004. * Creator : 윤지현
  1005. ***************************************************************************************************/
  1006. function lf_reqPatInfo(oDsRsltRef, srchflag, tblflag, param, stnddd){
  1007. var pid = "";
  1008. var hngnm = "";
  1009. var orddd = stnddd;
  1010. var queryFlag = tblflag;
  1011. if(srchflag == "pid"){ //등록번호 검색
  1012. pid = param;
  1013. hngnm = "";
  1014. }else if(srchflag == "hngnm"){
  1015. pid = "";
  1016. hngnm = param;
  1017. }
  1018. var sRef = dsf_createDsRow("ds_req_patInfo", [{col:"pid" , type:"string", size:256, val:pid},
  1019. {col:"hngnm" , type:"string", size:256, val:hngnm},
  1020. {col:"orddd" , type:"string", size:256, val:orddd},
  1021. {col:"queryflag" , type:"string", size:256, val:queryFlag},
  1022. {col:"srchflag" , type:"string", size:256, val:srchflag}]);
  1023. var oRef = this.objects[sRef];
  1024. var oParam = {};
  1025. oParam.id = "TRMMO04105"; // transaction을 구분하기 위한 ID
  1026. oParam.service = "prcpmngtapp.EtcPrcpMngt"; // service ID
  1027. oParam.method = "reqGetPatNM"; // method ID
  1028. oParam.inds = "req=" + sRef; // transaction을 요청할 때 입력값으로 보낼 Dataset 의 ID
  1029. oParam.outds = oDsRsltRef.name + "=patnm"; // transaction을 처리 결과를 받을 Dataset의 ID
  1030. tranf_submit(oParam);
  1031. //trace(oDsRsltRef.saveXML());
  1032. if(oDsRsltRef.rowcount == 0){ //정보가 없을 때 메세지 출력
  1033. if(srchflag == "pid") sysf_messageBox("등록번호 [" + param + "] 환자를 찾을 수 ", "I004");
  1034. else if(srchflag == "hngnm") sysf_messageBox("환자명 [" + param + "] 환자를 찾을 수 ", "I004");
  1035. return false;
  1036. }
  1037. // Temp로 사용한 Dataset을 삭제
  1038. var oRemoveDs = this.removeChild(sRef);
  1039. oRemoveDs = null;
  1040. return true;
  1041. }
  1042. /***************************************************************************************************
  1043. * Function : lf_dateFormat
  1044. * Description : 날짜에 - 구분자 두기
  1045. * Argument : dd: 모양을 바꿀날짜.
  1046. * return type : String
  1047. * Creator : 강지훈
  1048. ***************************************************************************************************/
  1049. function lf_dateFormat( sDd ) {
  1050. var yyyy = sDd.substring ( 0, 4 );
  1051. var mm = sDd.substring ( 4, 6 );
  1052. var ddd = sDd.substring ( 6, 8 );
  1053. return yyyy + "-" + mm + "-" + ddd;
  1054. }
  1055. /**********************************************************************************
  1056. * Function : lf_columnSetData
  1057. * Description : 그리드 체크박스 값에 따라서 sColid의 값을 변경한다(comm_grd.xjs의 grdf_columnSetData() 함수 변형)
  1058. * argument : Object objDs - dataset
  1059. Number nRowIndex - row Index
  1060. String sColid - 변경할 컬럼명
  1061. String sSrcColid - 체크박스에 바인드된 컬럼명
  1062. String trueVal - 체크 되었을때 입력할 값
  1063. String fasleVal - 체크박스가 체크 해제 되었을대 입력될 값
  1064. * return Type : none
  1065. * 작성자 : 안병모
  1066. **********************************************************************************/
  1067. function lf_chkColumnSetData(objDs, nRowIndex, sColid, sSrcColid, trueVal, falseVal)
  1068. {
  1069. var srcChk = objDs.getColumn(nRowIndex, sSrcColid);
  1070. if(srcChk == 1)
  1071. {
  1072. objDs.setColumn(nRowIndex, sColid, trueVal);
  1073. }
  1074. else
  1075. {
  1076. objDs.setColumn(nRowIndex, sColid, falseVal);
  1077. }
  1078. }
  1079. /**********************************************************************************
  1080. * Function : lf_getArrayData
  1081. * Description : 구분자로 분리된 배열에서 해당 행, 열의 데이터 조회
  1082. * argument : pData : 원본데이터
  1083. pRow : 찾고자 하는 위치의 row
  1084. pCol : 찾고자 하는 위치의 column
  1085. pRowSep : Row 구분자
  1086. pColSep : Column 구분자
  1087. * return Type : 해당 row, column의 문자열
  1088. * 작성자 : 안병모
  1089. **********************************************************************************/
  1090. function lf_getArrayData(pData, pRow, pCol, pRowSep, pColSep){
  1091. var rowSep = (pRowSep == null || pRowSep =="" ? "▩" :pRowSep ); // row 구분자
  1092. var colSep = (pColSep == null || pColSep =="" ? "▦" :pColSep ); // column 구분자
  1093. var arrRow = pData.toString().split(rowSep);
  1094. if(arrRow.length <= pRow) return "";
  1095. var arrCol = arrRow[pRow].split(colSep);
  1096. if(arrCol.length <= pCol) return "";
  1097. return arrCol[pCol];
  1098. }
  1099. var sTimestamp = "";
  1100. function lf_getCurrentDateString(){
  1101. var sDate = utlf_getNewDate();
  1102. rtnTime = (( sDate.getHours() > 9 ) ? sDate.getHours() : "0" + sDate.getHours());
  1103. rtnTime = rtnTime.toString() + ":" + (( sDate.getMinutes() > 9 ) ? sDate.getMinutes() : "0" + sDate.getMinutes());
  1104. rtnTime = rtnTime.toString() + ":" + (( sDate.getSeconds() > 9 ) ? sDate.getSeconds() : "0" + sDate.getSeconds());
  1105. rtnTime = rtnTime.toString() + "." + utlf_lPad(sDate.getMilliseconds(), 3, "0");
  1106. if(sTimestamp != "") {
  1107. var term = sDate - sTimestamp;
  1108. rtnTime = rtnTime + "( " + term + " )";
  1109. }
  1110. sTimestamp = sDate;
  1111. return rtnTime ;
  1112. }
  1113. /***************************************************************************************************
  1114. * Function : lf_getDsValue
  1115. * Description : Dataset에값을 가져오는 함수
  1116. * Argument : pDsObj : dataset object
  1117. * pRow : row index
  1118. * pColumnName : 컬럼명
  1119. * return type : String
  1120. * Creator : sklee
  1121. ***************************************************************************************************/
  1122. function lf_getDsValue(pDsObj, pRow, pColumnName)
  1123. {
  1124. return (utlf_isNull(pDsObj.getColumnInfo(pColumnName)) || utlf_isNull(pDsObj.getColumn(pRow, pColumnName))) ? "" : pDsObj.getColumn(pRow, pColumnName);
  1125. }
  1126. /**
  1127. * @-----------------------------------------------------------------------------------
  1128. * @desc : 일일기준과 1회 기준의 용량과 수량을 보여주는 것을 결정하여 결과를 리턴함)
  1129. * @param : option : A: 모두 보여줌
  1130. * B: 1일 기준으로 보여줌
  1131. * C: 1회 기준으로 보여줌
  1132. * D: 병원의 기준값을 리턴함
  1133. * E: 용량중 일일용량만 보여주고 일회 용량은 숨기는 것으로 한다.
  1134. * F: 용량중 일회용량만 보여주고 일일 용량은 숨기는 것으로 한다.
  1135. * G: 수량중 일일 수량만 보여준다. 일회 수량은 Hidden
  1136. * H: 수량중 일회 수량은 보여주고 일회수량은 Hidden
  1137. * grd_obj : 설정할 그리드를 리턴한다.
  1138. * colnm_size : 컬럼 사이즈를 적어준다.
  1139. * comnm_vol1 : 1일 총용량 컬럼
  1140. * colnm_qty1 : 1일 수량 컬럼
  1141. * comnm_vol2 : 1회 총용량 컬럼
  1142. * colnm_qty2 : 1회 수량 컬럼
  1143. * colnm_size_qty : 수량 컬럼 사이즈를 적어준다.
  1144. * @-----------------------------------------------------------------------------------
  1145. */
  1146. function lf_grdBaseColHidn(option, grd_obj, colnm_size, colnm_vol1, colnm_qty1, colnm_vol2, colnm_qty2, colnm_size_qty) {
  1147. var hardcd = lf_getHardCDList("Y", 230, 3, null);
  1148. var sGrd_objnm;
  1149. if (utlf_isNull(option)) {
  1150. option = hardcd;
  1151. }
  1152. if (utlf_isNull(colnm_size)) {
  1153. sColnm_size = 37;
  1154. } else {
  1155. sColnm_size = colnm_size;
  1156. }
  1157. if (utlf_isNull(grd_obj)) {
  1158. sGrd_objnm = "div_all.grd_prcplist";
  1159. } else {
  1160. sGrd_objnm = grd_obj;
  1161. }
  1162. if (utlf_isNull(colnm_vol1)) {
  1163. sColnm_vol1 = "prcpvol";
  1164. } else {
  1165. sColnm_vol1 = colnm_vol1
  1166. }
  1167. if (utlf_isNull(colnm_qty1)) {
  1168. sColnm_qty1 = "prcpqty";
  1169. } else {
  1170. sColnm_qty1 = colnm_qty1
  1171. }
  1172. if (utlf_isNull(colnm_vol2)) {
  1173. sColnm_vol2 = "drprcpetc7";
  1174. } else {
  1175. sColnm_vol2 = colnm_vol2;
  1176. }
  1177. if (utlf_isNull(colnm_qty2)) {
  1178. sColnm_qty2 = "drprcpetc8";
  1179. } else {
  1180. sColnm_qty2 = colnm_qty2;
  1181. }
  1182. if (utlf_isNull(colnm_size_qty)) {
  1183. sColnm_size_qty = sColnm_size;
  1184. } else {
  1185. sColnm_size_qty = colnm_size_qty;
  1186. }
  1187. // 둘다 보여준다.
  1188. if (option =="A") {
  1189. // 그리드명이 있을 경우
  1190. if (utlf_isNull(grd_obj)) {
  1191. var oGrid = eval(sGrd_objnm);
  1192. var col = oGrid.getBindCellIndex("body", sColnm_vol1);
  1193. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1194. col = oGrid.getBindCellIndex("body", sColnm_qty1);
  1195. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1196. col = oGrid.getBindCellIndex("body", sColnm_vol2);
  1197. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1198. col = oGrid.getBindCellIndex("body", sColnm_qty2);
  1199. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1200. }
  1201. // 일일 용량을 기준으로 보여준다.
  1202. } else if (option =="B") {
  1203. var oGrid = eval(sGrd_objnm);
  1204. var col = oGrid.getBindCellIndex("body", sColnm_vol1);
  1205. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1206. col = oGrid.getBindCellIndex("body", sColnm_qty1);
  1207. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1208. col = oGrid.getBindCellIndex("body", sColnm_vol2);
  1209. oGrid.setFormatColProperty(col , "size", 0);
  1210. col = oGrid.getBindCellIndex("body", sColnm_qty2);
  1211. oGrid.setFormatColProperty(col , "size", 0);
  1212. // 일회 용량을 기준으로 보여준다.
  1213. } else if (option =="C") {
  1214. var oGrid = eval(sGrd_objnm);
  1215. var col = oGrid.getBindCellIndex("body", sColnm_vol1);
  1216. oGrid.setFormatColProperty(col , "size", 0);
  1217. col = oGrid.getBindCellIndex("body", sColnm_qty1);
  1218. oGrid.setFormatColProperty(col , "size", 0);
  1219. col = oGrid.getBindCellIndex("body", sColnm_vol2);
  1220. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1221. col = oGrid.getBindCellIndex("body", sColnm_qty2);
  1222. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1223. // 기준값을 리턴한다.
  1224. } else if (option =="D") {
  1225. // 기준값을 가지고 컬럼의 상태를 결정한다.
  1226. return hardcd;
  1227. } else if (option =="E") {
  1228. var oGrid = eval(sGrd_objnm);
  1229. var col = oGrid.getBindCellIndex("body", sColnm_vol1);
  1230. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1231. col = oGrid.getBindCellIndex("body", sColnm_vol2);
  1232. oGrid.setFormatColProperty(col , "size", 0);
  1233. } else if (option =="F") {
  1234. var oGrid = eval(sGrd_objnm);
  1235. var col = oGrid.getBindCellIndex("body", sColnm_vol1);
  1236. oGrid.setFormatColProperty(col , "size", 0);
  1237. col = oGrid.getBindCellIndex("body", sColnm_vol2);
  1238. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1239. } else if (option =="G") {
  1240. var oGrid = eval(sGrd_objnm);
  1241. var col = oGrid.getBindCellIndex("body", sColnm_qty1);
  1242. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1243. col = oGrid.getBindCellIndex("body", sColnm_qty2);
  1244. oGrid.setFormatColProperty(col , "size", 0);
  1245. } else if (option =="H") {
  1246. var oGrid = eval(sGrd_objnm);
  1247. var col = oGrid.getBindCellIndex("body", sColnm_qty1);
  1248. oGrid.setFormatColProperty(col , "size", 0);
  1249. col = oGrid.getBindCellIndex("body", sColnm_qty2);
  1250. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1251. } else {
  1252. var oGrid = eval(sGrd_objnm);
  1253. var col = oGrid.getBindCellIndex("body", sColnm_vol1);
  1254. oGrid.setFormatColProperty(col , "size", sColnm_size);
  1255. col = oGrid.getBindCellIndex("body", sColnm_qty1);
  1256. oGrid.setFormatColProperty(col , "size", sColnm_size_qty);
  1257. col = oGrid.getBindCellIndex("body", sColnm_vol2);
  1258. oGrid.setFormatColProperty(col , "size", 0);
  1259. col = oGrid.getBindCellIndex("body", sColnm_qty2);
  1260. oGrid.setFormatColProperty(col , "size", 0);
  1261. }
  1262. }
  1263. /***************************************************************************************************
  1264. * Function : lf_makePrcpSrchDs
  1265. * Description : 처방 조회 시 outds가 없다면 자동 생성한다.
  1266. (lf_prcpSrchCom, lf_bfPrcpSrchCom의 TRMMO00100, TRMMB00201 에서 사용)
  1267. * Argument :
  1268. * return type :
  1269. * Creator : 김상목
  1270. ***************************************************************************************************/
  1271. function lf_makePrcpSrchDs() {
  1272. if(utlf_isNull(this.objects["ds_prcpsrch_prcplist"])) {
  1273. var arrColInfo = [{col:"status", type:"string", size:256}
  1274. , {col:"prcpstatcd", type:"string", size:256}
  1275. , {col:"prcpclscd", type:"string", size:256}
  1276. , {col:"prcpkindcd", type:"string", size:256}
  1277. , {col:"prcpcd", type:"string", size:256}
  1278. , {col:"prcpnm", type:"string", size:256}
  1279. , {col:"prcpvol", type:"string", size:256}
  1280. , {col:"prcpvolunitnm", type:"string", size:256}
  1281. , {col:"prcpqty", type:"string", size:256}
  1282. , {col:"prcpqtyunitnm", type:"string", size:256}
  1283. , {col:"prcptims", type:"string", size:256}
  1284. , {col:"prcpdayno", type:"string", size:256}
  1285. , {col:"drugmthdspccdnm", type:"string", size:256}
  1286. , {col:"prcpmixno", type:"string", size:256}
  1287. , {col:"payflagcd", type:"string", size:256}
  1288. , {col:"prcpdelivefact", type:"string", size:256}
  1289. , {col:"hosinhosoutflag", type:"string", size:256}
  1290. , {col:"prcpexecdeptcd", type:"string", size:256}
  1291. , {col:"prcphopedd", type:"string", size:256}
  1292. , {col:"choiordflag", type:"string", size:256}
  1293. , {col:"rgstdt", type:"string", size:256}
  1294. , {col:"rgstridnm", type:"string", size:256}
  1295. , {col:"testrsltunit", type:"string", size:256}
  1296. , {col:"testrsltcnts", type:"string", size:256}
  1297. , {col:"prcpgenrflag", type:"string", size:256}
  1298. , {col:"prcphistcd", type:"string", size:256}
  1299. , {col:"tempprcpflag", type:"string", size:256}
  1300. , {col:"prcpsetcd", type:"string", size:256}
  1301. , {col:"prcpvolunitflag", type:"string", size:256}
  1302. , {col:"prcpqtyunitflag", type:"string", size:256}
  1303. , {col:"orgprcpqty", type:"string", size:256}
  1304. , {col:"drugspd", type:"string", size:256}
  1305. , {col:"drugspdunitflag", type:"string", size:256}
  1306. , {col:"powdflag", type:"string", size:256}
  1307. , {col:"prnprcpflag", type:"string", size:256}
  1308. , {col:"prepprcpflag", type:"string", size:256}
  1309. , {col:"selfprcpflag", type:"string", size:256}
  1310. , {col:"selfdrugflag", type:"string", size:256}
  1311. , {col:"drugpackflag", type:"string", size:256}
  1312. , {col:"erprcpflag", type:"string", size:256}
  1313. , {col:"precureprcpflag", type:"string", size:256}
  1314. , {col:"nigtprcpflag", type:"string", size:256}
  1315. , {col:"portprcpflag", type:"string", size:256}
  1316. , {col:"fixprcpflag", type:"string", size:256}
  1317. , {col:"anamneflag", type:"string", size:256}
  1318. , {col:"fastprcpflag", type:"string", size:256}
  1319. , {col:"erreadflag", type:"string", size:256}
  1320. , {col:"prcpdirecflag", type:"string", size:256}
  1321. , {col:"tnsuseflag", type:"string", size:256}
  1322. , {col:"tnsfiltflag", type:"string", size:256}
  1323. , {col:"trnptbftestflag", type:"string", size:256}
  1324. , {col:"offictourhealexamflag", type:"string", size:256}
  1325. , {col:"stemcellflag", type:"string", size:256}
  1326. , {col:"angioflagcd", type:"string", size:256}
  1327. , {col:"opansflagcd", type:"string", size:256}
  1328. , {col:"ansttm", type:"string", size:256}
  1329. , {col:"mealcalrcnts", type:"string", size:256}
  1330. , {col:"mealprotcnts", type:"string", size:256}
  1331. , {col:"mealupdtflag", type:"string", size:256}
  1332. , {col:"hosinprcpresncd", type:"string", size:256}
  1333. , {col:"etcprcpresncd", type:"string", size:256}
  1334. , {col:"drugmthdspccd", type:"string", size:256}
  1335. , {col:"issdeptcd", type:"string", size:256}
  1336. , {col:"prcpauthflag", type:"string", size:256}
  1337. , {col:"prcpinptflag", type:"string", size:256}
  1338. , {col:"prcpsignflag", type:"string", size:256}
  1339. , {col:"rateprcpflag", type:"string", size:256}
  1340. , {col:"prcprefseq", type:"string", size:256}
  1341. , {col:"ordreqlnkno", type:"string", size:256}
  1342. , {col:"testreqlnkno", type:"string", size:256}
  1343. , {col:"prcplnkdd", type:"string", size:256}
  1344. , {col:"prcplnkno", type:"string", size:256}
  1345. , {col:"oprsrvno", type:"string", size:256}
  1346. , {col:"tootfact", type:"string", size:256}
  1347. , {col:"clinccmtcnts", type:"string", size:256}
  1348. , {col:"prcpessninptflag", type:"string", size:256}
  1349. , {col:"grupsnglflag", type:"string", size:256}
  1350. , {col:"drugrateqty", type:"string", size:256}
  1351. , {col:"asttestflag", type:"string", size:256}
  1352. , {col:"clincstdyflag", type:"string", size:256}
  1353. , {col:"prtlno", type:"string", size:256}
  1354. , {col:"clincstdycd", type:"string", size:256}
  1355. , {col:"optermcd", type:"string", size:256}
  1356. , {col:"prcpflag", type:"string", size:256}
  1357. , {col:"hscttempprcpflag", type:"string", size:256}
  1358. , {col:"inclprcpcd", type:"string", size:256}
  1359. , {col:"inclprcpno", type:"string", size:256}
  1360. , {col:"pampkspec", type:"string", size:256}
  1361. , {col:"prcppkspec", type:"string", size:256}
  1362. , {col:"calcscormastspec", type:"string", size:256}
  1363. , {col:"drugmastspec", type:"string", size:256}
  1364. , {col:"rateprcpspec", type:"string", size:256}
  1365. , {col:"matrsetprcpspec", type:"string", size:256}
  1366. , {col:"suppdeptspec", type:"string", size:256}
  1367. , {col:"contprcpspec", type:"string", size:256}
  1368. , {col:"etclnkspec", type:"string", size:256}
  1369. , {col:"srchcondcnts", type:"string", size:256}
  1370. , {col:"orgprcpnm", type:"string", size:256}
  1371. , {col:"chkcol", type:"string", size:256}
  1372. , {col:"hsctdelivepos", type:"string", size:256}
  1373. , {col:"hsctlnkno", type:"string", size:256}
  1374. , {col:"etcprcpflag", type:"string", size:256}
  1375. , {col:"aftcertflag", type:"string", size:256}
  1376. , {col:"aftcertdrid", type:"string", size:256}
  1377. , {col:"prcpvalidd", type:"string", size:256}
  1378. , {col:"spynpy1", type:"string", size:256}
  1379. , {col:"specdrid", type:"string", size:256}
  1380. , {col:"specdrnm", type:"string", size:256}
  1381. , {col:"anticncrprtlno", type:"string", size:256}
  1382. , {col:"anticncrdayno", type:"string", size:256}
  1383. , {col:"druglnkno", type:"string", size:256}
  1384. , {col:"rehbprcpcurefreqflag", type:"string", size:256}
  1385. , {col:"dietprcpgenrflag", type:"string", size:256}
  1386. , {col:"irpayflag", type:"string", size:256}
  1387. , {col:"irflag", type:"string", size:256}
  1388. , {col:"procerdietflag", type:"string", size:256}
  1389. , {col:"diagtestconttestintvlflag", type:"string", size:256}
  1390. , {col:"drugindependpackflag", type:"string", size:256}
  1391. , {col:"diagtestconttestbasetm", type:"string", size:256}
  1392. , {col:"diagtestconttestorgtims", type:"string", size:256}
  1393. , {col:"ermediscmngtresncd", type:"string", size:256}
  1394. , {col:"rehbprcpenddd", type:"string", size:256}
  1395. , {col:"matrallsizespecid", type:"string", size:256}
  1396. , {col:"rehbprcpcurepartcd", type:"string", size:256}
  1397. , {col:"lowdrugresncd", type:"string", size:256}
  1398. , {col:"tfdtlcd", type:"string", size:256}
  1399. , {col:"dnorreqlnkno", type:"string", size:256}
  1400. , {col:"subcretno", type:"string", size:256}
  1401. , {col:"exptmthdfact", type:"string", size:256}
  1402. , {col:"lowdrugresnetcfact", type:"string", size:256}
  1403. , {col:"diagtestconttestcdspec", type:"string", size:256}
  1404. , {col:"drgacptflag", type:"string", size:256}
  1405. , {col:"drprcpetc1", type:"string", size:256}
  1406. , {col:"drprcpetc2", type:"string", size:256}
  1407. , {col:"drprcpetc3", type:"string", size:256}
  1408. , {col:"drprcpetc4", type:"string", size:256}
  1409. , {col:"drprcpetc5", type:"string", size:256}
  1410. , {col:"drprcpetc6", type:"string", size:256}
  1411. , {col:"drprcpetc7", type:"string", size:256}
  1412. , {col:"drprcpetc8", type:"string", size:256}
  1413. , {col:"drprcpetc9", type:"string", size:256}
  1414. , {col:"drprcpetc10", type:"string", size:256}
  1415. , {col:"tempcol1", type:"string", size:256}
  1416. , {col:"tempcol2", type:"string", size:256}
  1417. , {col:"tempcol3", type:"string", size:256}
  1418. , {col:"tempcol4", type:"string", size:256}
  1419. , {col:"tempcol5", type:"string", size:256}
  1420. , {col:"tempcol6", type:"string", size:256}
  1421. , {col:"tempcol7", type:"string", size:256}
  1422. , {col:"tempcol8", type:"string", size:256}
  1423. , {col:"tempcol9", type:"string", size:256}
  1424. , {col:"tempcol10", type:"string", size:256}
  1425. , {col:"tempcol11", type:"string", size:256}
  1426. , {col:"tempcol12", type:"string", size:256}
  1427. , {col:"tempcol13", type:"string", size:256}
  1428. , {col:"tempcol14", type:"string", size:256}
  1429. , {col:"tempcol15", type:"string", size:256}
  1430. , {col:"tempcol16", type:"string", size:256}
  1431. , {col:"tempcol17", type:"string", size:256}
  1432. , {col:"tempcol18", type:"string", size:256}
  1433. , {col:"tempcol19", type:"string", size:256}
  1434. , {col:"tempcol20", type:"string", size:256}
  1435. , {col:"tempcol21", type:"string", size:256}
  1436. , {col:"tempcol22", type:"string", size:256}
  1437. , {col:"tempcol23", type:"string", size:256}
  1438. , {col:"tempcol24", type:"string", size:256}
  1439. , {col:"tempcol25", type:"string", size:256}
  1440. , {col:"rgstdeptcd", type:"string", size:256}
  1441. , {col:"prcpclassnm", type:"string", size:256}
  1442. , {col:"rowkey", type:"string", size:256}
  1443. , {col:"instcd", type:"string", size:256}];
  1444. dsf_createDs("ds_prcpsrch_prcplist", arrColInfo, true);
  1445. ds_prcpsrch_prcplist.oncolumnchanged.addHandler(prcpsrch_prcplist_oncolumnchanged);
  1446. }
  1447. }
  1448. function prcpsrch_prcplist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1449. {
  1450. if(e.columnid == "status")
  1451. obj.setColumn(e.row, e.columnid, (e.newvalue == "I" || e.newvalue == 1) ? "I" : "N");
  1452. };
  1453. /***************************************************************************************************
  1454. * Function : lf_setCheckboxProperty
  1455. * Description : 일괄입력 화면들에서 체크 박스 클릭시에 대한 공통 동작 정의
  1456. * Argument : obj - 체크박스 오브젝트
  1457. oSubComponent - obj 체크박스와 같이 연동 되는 sub 체크박스
  1458. isChangeVal - sub 체크박스의 값도 같이 변경 시킬지 여부(값이 없다면 true)
  1459. * return type :
  1460. * 사용예 : 1) lf_setCheckboxProperty(obj, checkbox10);
  1461. 2) lf_setCheckboxProperty(obj, combo1, false);
  1462. * Creator : 김상목
  1463. ***************************************************************************************************/
  1464. function lf_setCheckboxProperty(obj:CheckBox, oSubComponent, isChangeVal) {
  1465. if ( obj.value == "Y" ) {
  1466. obj.style.font = "Dotum,9,bold";
  1467. oSubComponent.enable = true;
  1468. } else {
  1469. obj.style.font = "Dotum,9";
  1470. oSubComponent.enable = false;
  1471. }
  1472. if(utlf_isNull(isChangeVal)) isChangeVal = true;
  1473. if(isChangeVal) oSubComponent.value = obj.value;
  1474. }]]></Script>