Common.cs.svn-base 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. #region Copyright © 2015 CLIPSOFT Co.,Ltd. All Rights Reserved.
  2. //
  3. // All rights are reserved. Reproduction or transmission in whole or in part,
  4. // in any form or by any means, electronic, mechanical or otherwise, is
  5. // prohibited without the prior written consent of the copyright owner.
  6. //
  7. // Filename:Common.cs
  8. //
  9. #endregion
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Net;
  13. using System.Net.Sockets;
  14. using System.Text;
  15. namespace CLIP.eForm.Consent.UI {
  16. /// <summary>
  17. /// Global Parameter를 생성하기 위한 클래스
  18. /// </summary>
  19. /// <remarks>
  20. /// <p>[설계자]</p>
  21. /// <p> 클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)</p>
  22. /// <p>[원본 작성자]</p>
  23. /// <p> 클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)</p>
  24. /// <p>[수정 작성자]</p>
  25. /// <p> 클립소프트 기술부 이인희</p>
  26. /// <p>----------------------------------------------------------------------------------------</p>
  27. /// <p>[HISTORY]</p>
  28. /// <p> 2015-08-06 : 최초작성</p>
  29. /// <p>----------------------------------------------------------------------------------------</p>
  30. /// </remarks>
  31. public class Common {
  32. public static Dictionary<FOSParameter, string> CreateGlobalParamsDictionary(string instcd) {
  33. Dictionary<FOSParameter, string> dic = new Dictionary<FOSParameter, string>();
  34. foreach (string s in Enum.GetNames(typeof(FOSParameter))) {
  35. dic.Add((FOSParameter) Enum.Parse(typeof(FOSParameter), s), string.Empty);
  36. }
  37. // 전자동의서 팝업창에서 연결 할 주소 파라미터를 매핑
  38. // TODO 교육/운영 구분 필요
  39. //dic[FOSParameter.LIST_POPUP_URL] = instcd == "DEV101" ? "https://192.168.200.93/" : "https://eform.dcmc.co.kr/";
  40. return dic;
  41. }
  42. /// <summary>
  43. /// Dictionary 에서 FOS 형식으로 인코딩
  44. /// V2 버전, 다중 서식 목록 지원
  45. /// </summary>
  46. /// <param name="parameterMap">변환할 Disctionary</param>
  47. /// <returns>변환된 FOS string</returns>
  48. public static String createParameters(Dictionary<FOSParameter, String> parameterMap) {
  49. StringBuilder sb = new StringBuilder();
  50. if(parameterMap == null) {
  51. return "";
  52. }
  53. foreach (FOSParameter paramKey in parameterMap.Keys) {
  54. sb.AppendFormat("<param key=\"{0}\"><![CDATA[{1}]]></param>", GetFOSName(paramKey, "DCUMC"), parameterMap[paramKey]);
  55. }
  56. return sb.ToString();
  57. }
  58. private static string macFormat(String str) {
  59. string mac = String.Empty;
  60. char[] charArr = str.ToCharArray();
  61. for(int i = 0; i < charArr.Length; i++) {
  62. if(i % 2 == 0) {
  63. mac += charArr[i].ToString();
  64. } else {
  65. mac += charArr[i].ToString();
  66. if(i != charArr.Length - 1) {
  67. mac += '-';
  68. }
  69. }
  70. }
  71. return mac;
  72. }
  73. public static string getMacAddress() {
  74. System.Net.NetworkInformation.NetworkInterface[] nics = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
  75. String macAddr = String.Empty;
  76. foreach(System.Net.NetworkInformation.NetworkInterface adapter in nics) {
  77. if(macAddr == String.Empty) {
  78. macAddr = adapter.GetPhysicalAddress().ToString();
  79. }
  80. }
  81. return macFormat(macAddr);
  82. }
  83. public static byte[] Zip(string str) {
  84. var bytes = System.Text.Encoding.UTF8.GetBytes(str);
  85. using (var msi = new System.IO.MemoryStream(bytes))
  86. using (var mso = new System.IO.MemoryStream()) {
  87. using (var gs = new System.IO.Compression.GZipStream(mso, System.IO.Compression.CompressionMode.Compress)) {
  88. CopyTo(msi, gs);
  89. }
  90. return mso.ToArray();
  91. }
  92. }
  93. public static string Unzip(byte[] bytes) {
  94. using (var msi = new System.IO.MemoryStream(bytes))
  95. using (var mso = new System.IO.MemoryStream()) {
  96. using (var gs = new System.IO.Compression.GZipStream(msi, System.IO.Compression.CompressionMode.Decompress)) {
  97. CopyTo(gs, mso);
  98. }
  99. return System.Text.Encoding.UTF8.GetString(mso.ToArray());
  100. }
  101. }
  102. public static void CopyTo(System.IO.Stream src, System.IO.Stream dest) {
  103. byte[] bytes = new byte[4096];
  104. int cnt;
  105. while ((cnt = src.Read(bytes, 0, bytes.Length)) != 0) {
  106. dest.Write(bytes, 0, cnt);
  107. }
  108. }
  109. public static String getNewEptFosString(String formServiceUrl, string baseConsentSvcURL, Dictionary<FOSParameter, String> globalParams, List<String> formIds, List<String> consentMstRids) {
  110. StringBuilder sb = new StringBuilder();
  111. sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  112. sb.Append("<fos version=\"1.0\">");
  113. sb.Append("<global>");
  114. sb.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  115. sb.Append("<template-get-parameters>");
  116. sb.Append("<post-param key=\"parameter\"><![CDATA[{}]]></post-param>");
  117. sb.Append("</template-get-parameters>");
  118. sb.Append("<parameters>");
  119. sb.Append("</parameters>");
  120. sb.Append("</page-template>");
  121. sb.Append("</global>");
  122. sb.Append("<form-list>");
  123. // 서식 open 시퀀스
  124. var seq = 1;
  125. var i = 0;
  126. var path = baseConsentSvcURL + "FormSvc.aspx/";
  127. foreach (string formId in formIds) {
  128. // 서식을 불러오기 위한 서식 정보 목록 요소
  129. sb.Append(string.Format("<form name=\"{0}\" open-sequence=\"{1}\" path=\"{2}\" request-encode=\"utf-8\" response-encode=\"utf-8\" compression=\"false\">", "noname", seq++, path));
  130. sb.Append("<parameters>");
  131. sb.Append(createParameters(globalParams));
  132. sb.Append("</parameters>");
  133. sb.Append("<form-get-parameters>");
  134. sb.Append("<post-param key=\"use-repository\"><![CDATA[false]]></post-param>");
  135. // 서식을 불러오기 위한 서비스 파리미터
  136. sb.Append(String.Format("<post-param key=\"ConsentMstRid\"><![CDATA[{0}]]></post-param>", consentMstRids[i++].ToString()));
  137. sb.Append("<post-param key=\"DUMMY\"><![CDATA[DUMMY]]></post-param>");
  138. sb.Append("</form-get-parameters>");
  139. sb.Append("</form>");
  140. }
  141. sb.Append("</form-list>");
  142. sb.Append("</fos>");
  143. return sb.ToString();
  144. }
  145. /// <summary>
  146. /// V2 버전 FOS string 반환
  147. /// </summary>
  148. /// <param name="formServiceUrl">전자동의서 서버 URL</param>
  149. /// <param name="globalParams">글로벌 파라미터 목록</param>
  150. /// <param name="listParams">리스트 파라미터 목록</param>
  151. /// <returns>생성된 fos string</returns>
  152. public static String getNewFosString(String formServiceUrl, Dictionary<FOSParameter, String> globalParams, Dictionary<FOSParameter, string> fosFormParams, List<String>formIds) {
  153. StringBuilder sb = new StringBuilder();
  154. sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  155. sb.Append("<fos version=\"1.0\">");
  156. sb.Append("<global>");
  157. sb.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  158. sb.Append("<template-get-parameters>");
  159. sb.Append("<post-param key=\"parameter\"><![CDATA[{}]]></post-param>");
  160. sb.Append("</template-get-parameters>");
  161. sb.Append("</page-template>");
  162. sb.Append("<parameters>");
  163. sb.Append(createParameters(globalParams));
  164. sb.Append("</parameters>");
  165. sb.Append("</global>");
  166. sb.Append("<form-list>");
  167. // 서식 open 시퀀스
  168. var seq = 1;
  169. foreach(string formId in formIds) {
  170. // 서식을 불러오기 위한 서식 정보 목록 요소
  171. sb.Append(string.Format("<form name=\"{0}\" open-sequence=\"{1}\" path=\"{2}\" request-encode=\"utf-8\" response-encode=\"utf-8\" compression=\"false\">", "noname", seq++, formServiceUrl));
  172. // 서식을 불러오기 위한 서비스 파리미터 상위 요소(서비스 호출시 사용)
  173. sb.Append("<form-get-parameters>");
  174. sb.Append("<post-param key=\"parameter\"><![CDATA[{");
  175. // 서식을 불러오기 위한 서비스 파리미터
  176. sb.Append(string.Format("\"formId\":{0}, \"formVersion\":\"{1}\"", formId, "-1"));
  177. sb.Append("}]]></post-param>");
  178. sb.Append("</form-get-parameters>");
  179. // 서식에 사용되는 파라미터 목록 요소
  180. sb.Append("<parameters>");
  181. sb.Append(createParameters(globalParams));
  182. sb.Append("</parameters>");
  183. // 서식에 필요한 첨부 파일 목록 요소
  184. //sb.Append("<attachments>");
  185. //<record-files> //음성 녹음 파일 목록 요소
  186. // <record-file> // 음성 녹음 파일
  187. //</record-files>
  188. //<pen-drawing> // 펜 정보를 불러올 수 있는 정보 목록 요소
  189. // <document/> // 본문(기존 디자인 되어있는 여역)의 펜 정보를 불러올 수 있는 URL 정보를 가지고 있는 요소
  190. // <pen-drawing-get-parameters/> // 본문(기존 디자인 되어있는 영역)의 펜 정보를 조회하기 위한 파라미터 묶음
  191. // <post-param> // 본문(기존 디자인 되어있는 영역)의 펜 정보를 조회하기 위한 파라미터
  192. //</pen-drawing>
  193. //<page-template-list> // 서식에 추가할 페이지 템플릿 리스트
  194. // <page_template> // 서식에 추가할 페이지 템플릿 정보
  195. // <template-get-parameters> // 페이지 템플릿 추가 시 사용되는 파라미터 묶음
  196. // <post-param> // 페이지 템플릿 추가 시 사용되는 파라미터
  197. //sb.Append("</attachments>");
  198. // 서식에서 불로올 데이터 정보
  199. //sb.Append("<form-data>");
  200. //sb.Append("</form-data>");
  201. // 서식에 반영되는 페이지 템플릿 목록을 조회하기 위한 상위 요소
  202. //sb.Append("<page-template>");
  203. //<template-get-parameters> //서식에 반영되는 페이지 템플릿 목록을 조회하기 위한 파라미터 묶음
  204. // <post_param> // 서식에 반영되는 페이지 템플릿 목록을 조회하기 위한 파라미터
  205. //sb.Append("</page-template>");
  206. sb.Append("</form>");
  207. }
  208. sb.Append("</form-list>");
  209. sb.Append("</fos>");
  210. return sb.ToString();
  211. }
  212. public class FormObject {
  213. public string formId { get; set; }
  214. public string consentMstRid { get; set; }
  215. public string formNm { get; set; }
  216. }
  217. public static string GetFosString(List<Common.FormObject> forms, string formServiceUrl, Dictionary<FOSParameter, string> fosGlobalParams, Dictionary<string, Dictionary<FOSParameter, string>> fosFormParams, string pInstCd) {
  218. StringBuilder fos = new StringBuilder();
  219. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  220. fos.Append("<fos version=\"1.0\">");
  221. fos.Append("<global>");
  222. fos.Append(GetParamsString(fosGlobalParams, pInstCd));
  223. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  224. fos.Append("<template-get-parameters>");
  225. fos.Append("post-param key==\"parameter\"><![CDATA[]]></>");
  226. //fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  227. //fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  228. //fos.Append("<action>GET_LIST</action>");
  229. //fos.Append("<params>");
  230. //fos.Append("<param name='adaptername'>defaultadapter</param>");
  231. //fos.Append("</params>");
  232. //fos.Append("</data>]]></post-param>");
  233. fos.Append("</template-get-parameters>");
  234. fos.Append("</page-template>");
  235. fos.Append("</global>");
  236. fos.Append("<form-list>");
  237. int seq = 1;
  238. foreach (FormObject form in forms) {
  239. bool isNew = (form.formId == null) ? true : false;
  240. var path = "";
  241. if (isNew) {
  242. path += formServiceUrl + "FormSvc.aspx\"";
  243. }
  244. else {
  245. path += formServiceUrl;
  246. }
  247. }
  248. fos.Append("");
  249. fos.Append("");
  250. fos.Append("");
  251. fos.Append("");
  252. fos.Append("");
  253. fos.Append("");
  254. fos.Append("");
  255. fos.Append("</form-list>");
  256. fos.Append(" </fos>");
  257. return fos.ToString();
  258. }
  259. /// <summary>
  260. /// preview 할 fos 를 생성한 다
  261. /// </summary>
  262. /// <param name="formdCds">생성할 서식 코드 목록</param>
  263. /// <param name="formServiceUrl">서식 서비스 URL</param>
  264. /// <param name="fosGlobalParams"></param>
  265. /// <param name="fosFormParams"></param>
  266. /// <param name="pInstCd"></param>
  267. /// <returns></returns>
  268. public static string GetFosString(List<string> formdCds, string formServiceUrl, Dictionary<FOSParameter, string> fosGlobalParams, Dictionary<string, Dictionary<FOSParameter, string>> fosFormParams, string pInstCd) {
  269. StringBuilder fos = new StringBuilder();
  270. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  271. fos.Append("<fos version=\"1.0\">");
  272. fos.Append("<global>");
  273. fos.Append(GetParamsString(fosGlobalParams, pInstCd));
  274. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  275. fos.Append("<template-get-parameters>");
  276. fos.Append("post-param key==\"parameter\"><![CDATA[]]></>");
  277. //fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  278. //fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  279. //fos.Append("<action>GET_LIST</action>");
  280. //fos.Append("<params>");
  281. //fos.Append("<param name='adaptername'>defaultadapter</param>");
  282. //fos.Append("</params>");
  283. //fos.Append("</data>]]></post-param>");
  284. fos.Append("</template-get-parameters>");
  285. fos.Append("</page-template>");
  286. fos.Append("</global>");
  287. fos.Append("<form-list>");
  288. foreach(string formcd in formdCds) {
  289. }
  290. fos.Append("");
  291. fos.Append("");
  292. fos.Append("");
  293. fos.Append("");
  294. fos.Append("");
  295. fos.Append("");
  296. fos.Append("");
  297. fos.Append("</form-list>");
  298. fos.Append(" </fos>");
  299. return fos.ToString();
  300. }
  301. /// <summary>
  302. /// param, guid값을 넘겨받아 그를 포함하는 fos를 리턴한다.
  303. /// </summary>
  304. /// <param name="guid"></param>
  305. /// <param name="fosParams"></param>
  306. /// <returns></returns>
  307. public static string GetMultiFosString(string[] guids, string formServiceUrl, Dictionary<FOSParameter, string> fosGlobalParams, Dictionary<string, Dictionary<FOSParameter, string>> fosFormParams, string pInstCd) {
  308. StringBuilder fos = new StringBuilder();
  309. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  310. fos.Append("<fos version=\"1.0\">");
  311. fos.Append("<global>");
  312. fos.Append("<parameters>");
  313. if (fosGlobalParams != null) { fos.Append(GetParamsString(fosGlobalParams, pInstCd)); }
  314. fos.Append("</parameters>");
  315. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  316. fos.Append("<template-get-parameters>");
  317. fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  318. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  319. fos.Append("<action>GET_LIST</action>");
  320. fos.Append("<params>");
  321. fos.Append("<param name='adaptername'>defaultadapter</param>");
  322. fos.Append("</params>");
  323. fos.Append("</data>]]></post-param>");
  324. fos.Append("</template-get-parameters>");
  325. fos.Append("</page-template>");
  326. fos.Append("</global>");
  327. fos.Append("<form-list>");
  328. int openSeq = 1;
  329. foreach (string guid in guids) {
  330. fos.Append(string.Format("<form name=\"noname\" open-sequence=\"{0}\" path=\"{1}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", openSeq, formServiceUrl));
  331. fos.Append("<parameters>");
  332. if (fosFormParams != null) {
  333. if (fosFormParams.ContainsKey(openSeq.ToString())) {
  334. Dictionary<FOSParameter, string> fosFormParamsByGuid = fosFormParams[openSeq.ToString()];
  335. foreach (FOSParameter paramKey in fosFormParamsByGuid.Keys) {
  336. fos.Append(string.Format("<param key='{0}'><![CDATA[{1}]]></param>", GetFOSName(paramKey, pInstCd), fosFormParamsByGuid[paramKey]));
  337. }
  338. }
  339. }
  340. fos.Append("</parameters>");
  341. fos.Append("<form-get-parameters>");
  342. fos.Append("<post-param key=\"OP\"><![CDATA[VIEWER_FORM]]></post-param>");
  343. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  344. fos.Append("<action>GET</action>");
  345. fos.Append("<params>");
  346. fos.Append("<param name='adaptername'>defaultadapter</param>");
  347. fos.Append("<param name='type'>guid</param>");
  348. fos.Append(string.Format("<param name='guid'>{0}</param>", guid));
  349. fos.Append("<param name='version'>-1</param>");
  350. fos.Append("</params>");
  351. fos.Append("</data>]]></post-param>");
  352. fos.Append("</form-get-parameters>");
  353. fos.Append("</form>");
  354. openSeq++;
  355. }
  356. fos.Append("</form-list>");
  357. fos.Append(" </fos>");
  358. return fos.ToString();
  359. }
  360. /// <summary>
  361. /// param, guid값을 넘겨받아 그를 포함하는 fos를 리턴한다.
  362. /// </summary>
  363. /// <param name="actionParams"></param>
  364. /// <param name="formServiceUrl"></param>
  365. /// <returns></returns>
  366. public static string GetFosStringForEpt(Dictionary<string, string> actionParams, string formServiceUrl, Dictionary<FOSParameter, string> fosGlobalParams, string pInstCd) {
  367. StringBuilder fos = new StringBuilder();
  368. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  369. fos.Append("<fos version=\"1.0\">");
  370. fos.Append("<global>");
  371. fos.Append(GetParamsString(fosGlobalParams, pInstCd));
  372. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  373. fos.Append("<template-get-parameters>");
  374. fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  375. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  376. fos.Append("<action>GET_LIST</action>");
  377. fos.Append("<params>");
  378. fos.Append("<param name='adaptername'>defaultadapter</param>");
  379. fos.Append("</params>");
  380. fos.Append("</data>]]></post-param>");
  381. fos.Append("</template-get-parameters>");
  382. fos.Append("</page-template>");
  383. fos.Append("</global>");
  384. fos.Append("<form-list>");
  385. fos.Append(string.Format("<form name=\"noname\" open-sequence=\"1\" path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  386. fos.Append("<parameters />");
  387. fos.Append("<form-get-parameters>");
  388. fos.Append("<post-param key=\"OP\"><![CDATA[VIEWER_DATA]]></post-param>");
  389. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  390. fos.Append("<action>GET_DATA</action>");
  391. fos.Append("<params>");
  392. fos.Append("<param name='adaptername'>defaultadapter</param>");
  393. foreach (string paramKey in actionParams.Keys) {
  394. fos.Append(string.Format("<param name='{0}'>{1}</param>", paramKey, actionParams[paramKey]));
  395. }
  396. fos.Append("</params>");
  397. fos.Append("</data>]]></post-param>");
  398. fos.Append("</form-get-parameters>");
  399. fos.Append("</form>");
  400. fos.Append("</form-list>");
  401. fos.Append("</fos>");
  402. return fos.ToString();
  403. }
  404. public static string GetAllFOSParamString(string pInstCd) {
  405. Dictionary<FOSParameter, string> dic = new Dictionary<FOSParameter, string>();
  406. StringBuilder _sb = new StringBuilder();
  407. foreach (string s in Enum.GetNames(typeof(FOSParameter))) {
  408. _sb.AppendFormat("{0}:{1}{2}", GetFOSName((FOSParameter) Enum.Parse(typeof(FOSParameter), s), "org")
  409. , GetFOSName((FOSParameter) Enum.Parse(typeof(FOSParameter), s), pInstCd)
  410. , ";");
  411. }
  412. return _sb.ToString();
  413. }
  414. private static string GetParamsString(Dictionary<FOSParameter, string> fosParams, string pInstCd) {
  415. StringBuilder parametersOfFos = new StringBuilder();
  416. parametersOfFos.Append("<parameters>");
  417. foreach (FOSParameter paramKey in fosParams.Keys) {
  418. parametersOfFos.AppendFormat("<param key=\"{0}\"><![CDATA[{1}]]></param>", GetFOSName(paramKey, pInstCd), fosParams[paramKey]);
  419. }
  420. parametersOfFos.Append("</parameters>");
  421. return parametersOfFos.ToString();
  422. }
  423. private static string GetFOSName(FOSParameter pName, string pInstCd) {
  424. string _name = "";
  425. switch (pInstCd) {
  426. default:
  427. _name = m_FOSParamArr_org[Array.IndexOf(Enum.GetValues(pName.GetType()), pName)];
  428. break;
  429. }
  430. return _name;
  431. }
  432. private static string[] m_FOSParamArr_org = {
  433. "par_userDeptCd"
  434. , "par_userId"
  435. , "par_userNm"
  436. , "par_userSignData"
  437. , "par_userMpNo"
  438. , "par_userIp"
  439. , "par_patientCretno"
  440. , "par_patientId"
  441. , "par_patientOrdtype"
  442. , "par_patientNm"
  443. , "par_patientSexAge"
  444. , "par_patientRrn"
  445. , "par_patientClnDeptCd"
  446. , "par_patientClnDeptNm"
  447. , "par_patientClnDt"
  448. , "par_patientBirthday"
  449. , "par_patientTelNo"
  450. , "par_patientMpNo"
  451. , "par_patientAddress"
  452. , "par_patientWardNo"
  453. , "par_patientRoomNo"
  454. , "par_explDrNm"
  455. , "par_explDrSignData"
  456. , "par_explMpNo"
  457. , "par_explAnstDrNm"
  458. , "par_explAnstDrSignData"
  459. , "par_explAnstDrMpNo"
  460. , "par_diagHngnm"
  461. , "par_opNm" // 수술 명
  462. , "par_opremFact" // 진단 명
  463. , "par_opRsrvNo" // 수술 예약 번호
  464. , "par_opCnFmDd" // 수술 시행 예정일
  465. , "par_mainDr1Nm"
  466. , "par_prefDr1Dept"
  467. , "par_geDr1Dept"
  468. , "par_anstDr1Nm"
  469. , "par_anstDr1PrefDrDept"
  470. , "par_anstDr1GeDrDept"
  471. , "par_isPrintMode" // Y, N
  472. , "par_formNm"
  473. , "par_popupUrl"
  474. , "par_barcode"
  475. , "par_ocrCd"
  476. };
  477. }
  478. public enum FOSParameter {
  479. /// GLOBAL PARAMETERS
  480. /// 사용자 정보
  481. GLOBAL_USER_DEPTCD
  482. , GLOBAL_USER_ID
  483. , GLOBAL_USER_NM
  484. , GLOBAL_USER_SIGNDATA
  485. , GLOBAL_USER_MPPHONENO
  486. , GLOBAL_USER_IP
  487. /// 환자 정보
  488. , GLOBAL_PATIENT_CRETNO
  489. , GLOBAL_PATIENT_ID
  490. , GLOBAL_PATIENT_ORDTYPE
  491. , GLOBAL_PATIENT_NM
  492. , GLOBAL_PATIENT_SEXAGE
  493. , GLOBAL_PATIENT_RRN // 주민번호
  494. , GLOBAL_PATIENT_CLN_DEPT_CD // 진료부서
  495. , GLOBAL_PATIENT_CLN_DEPT_NM
  496. , GLOBAL_PATIENT_CLN_DATE // 진료일자
  497. , GLOBAL_PATIENT_BIRTHDAY
  498. , GLOBAL_PATIENT_TEL_NO
  499. , GLOBAL_PATIENT_MPPHONENO
  500. , GLOBAL_PATIENT_ADDRESS
  501. , GLOBAL_PATIENT_WARD_NO
  502. , GLOBAL_PATIENT_ROOM_NO
  503. /// 설명의사, 마취의, 간호사
  504. , GLOBAL_EXPL_DR_NM
  505. , GLOBAL_EXPL_DR_SIGN_DATA
  506. , GLOBAL_EXPL_DR_MPPHONENO
  507. , GLOBAL_EXPL_ANST_DR_NM
  508. , GLOBAL_EXPL_ANST_DR_SIGN_DATA
  509. , GLOBAL_EXPL_ANST_DR_MPPHONENO
  510. /// 진단정보
  511. , GLOBAL_DIAG_HNGNM // 진단 한글명
  512. , GLOBAL_OPNM // 수술명
  513. , GLOBAL_OPREMFACT // 진단명
  514. , GLOBAL_OP_RSRV_NO
  515. , GLOBAL_OPCNFMDD // 수술 시행 예정일
  516. , GLOBAL_MAIN_DR1_NM
  517. , GLOBAL_PREF_DR1_DEPT
  518. , GLOBAL_GE_DR1_DEPT
  519. , GLOBAL_ANST_DR1_NM
  520. , GLOBAL_ANST_DR1_PREF_DEPT
  521. , GLOBAL_ANST_DR1_GE_DEPT
  522. , GLOBAL_IS_PRINT_MODE
  523. /// 서식 기본 정보, FORM_LIST PARAMETERS
  524. , LIST_FORM_NM
  525. , LIST_POPUP_URL
  526. , LIST_BARCODE
  527. , LIST_OCRCODE
  528. }
  529. public enum EXEC_PARAMS {
  530. EXEC_INSTCD
  531. , EXEC_USERID
  532. , EXEC_USERNAME
  533. , EXEC_USERDEPTCD
  534. , EXEC_USERDEPTNM
  535. , EXEC_USERIOFLAG
  536. , EXEC_LOGIN_USERID
  537. , EXEC_LOGIN_USERNAME
  538. , EXEC_PATIENTID
  539. , EXEC_PATIENTORDTYPE
  540. , EXEC_PATIENTCLNDEPT
  541. , EXEC_PATIENTCLNDATE
  542. , EXEC_PATIENTCLNDXNM
  543. , EXEC_CRETNO
  544. , EXEC_OPRSRVNO
  545. , EXEC_ENABLE_PATIENTLIST
  546. , EXEC_ENABLE_CONSENTLIST
  547. , EXEC_TARGETSERVICE
  548. , EXEC_FORMCD
  549. , EXEC_OCRCD
  550. , EXEC_PRINTYN
  551. , EXEC_PRINTCOUNT
  552. , EXEC_PRINTIP
  553. , EXEC_PRINTCNT
  554. , EXEC_SPECDOCYN
  555. , EXEC_ROOMCAPA
  556. , EXEC_CONT_STARTDATE
  557. , EXEC_CONT_ENDDATE
  558. , EXEC_CONT_TELNO
  559. , EXEC_CONT_STAFF1_NM
  560. , EXEC_CONT_STAFF2_NM
  561. , EXEC_CONT_STAFF3_NM
  562. , EXEC_CARDNO
  563. }
  564. }