Common.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  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.Collections.Generic;
  11. using System.Text;
  12. namespace CLIP.eForm.Consent.Dfh.UI
  13. {
  14. /// <summary>
  15. /// Global Parameter를 생성하기 위한 클래스
  16. /// </summary>
  17. /// <remarks>
  18. /// <p>[설계자]</p>
  19. /// <p> 클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)</p>
  20. /// <p>[원본 작성자]</p>
  21. /// <p> 클립소프트 연구소 홍지철 (jchong@clipsoft.co.kr)</p>
  22. /// <p>[수정 작성자]</p>
  23. /// <p> 클립소프트 기술부 이인희</p>
  24. /// <p>----------------------------------------------------------------------------------------</p>
  25. /// <p>[HISTORY]</p>
  26. /// <p> 2015-08-06 : 최초작성</p>
  27. /// <p>----------------------------------------------------------------------------------------</p>
  28. /// </remarks>
  29. public class Common
  30. {
  31. public static Dictionary<string, string> CreateGlobalParamsDictionary()
  32. {
  33. Dictionary<string, string> dic = new Dictionary<string, string>();
  34. dic.Add("UrlParam", string.Empty); // 팝업창 Url
  35. dic.Add("IO_device", string.Empty); // 출력기기
  36. dic.Add("IO_ocr_cd", string.Empty); // ocr 코드
  37. dic.Add("IO_Pt_ID", string.Empty); //
  38. dic.Add("IO_sex_age_y_m", string.Empty); //
  39. dic.Add("IO_Pt_name", string.Empty); //
  40. dic.Add("IO_JuminNo", string.Empty); //
  41. dic.Add("IO_roomNo", string.Empty); //
  42. dic.Add("IO_ADdate", string.Empty); //
  43. dic.Add("IO_Dept", string.Empty); //
  44. dic.Add("IO_Dept2", string.Empty); // 진료과명
  45. dic.Add("IO_formname", string.Empty); //
  46. dic.Add("IO_OPdept", string.Empty); //
  47. dic.Add("IO_OPdr", string.Empty); //
  48. dic.Add("IO_Dx", string.Empty); // 진단명
  49. dic.Add("IO_maindr", string.Empty); // 주치의
  50. dic.Add("IO_PT_birthday", string.Empty); // 환자 생년월일
  51. dic.Add("IO_Pt_tel", string.Empty); // 환자 주소
  52. dic.Add("IO_Pt_address", string.Empty); // 환자 번호
  53. dic.Add("IO_Insukind", string.Empty); // 환자 보험유형
  54. dic.Add("IO_print_comment", string.Empty); // 출력용 멘트(2부째 찍힐때는 '환자보관용', 3부째는 찍힐때는 '센터보관용')
  55. dic.Add("IO_bp", string.Empty); //
  56. dic.Add("IO_dm", string.Empty); //
  57. dic.Add("IO_heart", string.Empty); //
  58. dic.Add("IO_kidney", string.Empty); //
  59. dic.Add("IO_respiration", string.Empty); //
  60. dic.Add("IO_hx", string.Empty); //
  61. dic.Add("IO_allergy", string.Empty); //
  62. dic.Add("IO_drug", string.Empty); //
  63. dic.Add("IO_smoking", string.Empty); //
  64. dic.Add("IO_idio", string.Empty); //
  65. dic.Add("IO_nacrotics", string.Empty); //
  66. dic.Add("IO_airway", string.Empty); //
  67. dic.Add("IO_hemorrhage", string.Empty); //
  68. dic.Add("IO_status_etc", string.Empty); //
  69. dic.Add("IO_signdate", string.Empty); //
  70. dic.Add("IO_signtime", string.Empty); //
  71. dic.Add("IO_printtime", string.Empty); // 출력일시
  72. dic.Add("IO_INPUTNM", string.Empty); //
  73. dic.Add("IO_SIGNIMG", string.Empty); //
  74. return dic;
  75. }
  76. /// <summary>
  77. /// param, guid값을 넘겨받아 그를 포함하는 fos를 리턴한다.
  78. /// </summary>
  79. /// <param name="guid"></param>
  80. /// <param name="fosParams"></param>
  81. /// <returns></returns>
  82. public static string GetFosString(List<string> guids, string formServiceUrl, Dictionary<string, string> fosGlobalParams, Dictionary<string, Dictionary<string, string>> fosFormParams)
  83. {
  84. StringBuilder fos = new StringBuilder();
  85. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  86. fos.Append("<fos version=\"1.0\">");
  87. fos.Append("<global>");
  88. fos.Append(GetParamsString(fosGlobalParams));
  89. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  90. fos.Append("<template-get-parameters>");
  91. fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  92. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  93. fos.Append("<action>GET_LIST</action>");
  94. fos.Append("<params>");
  95. fos.Append("<param name='adaptername'>defaultadapter</param>");
  96. fos.Append("</params>");
  97. fos.Append("</data>]]></post-param>");
  98. fos.Append("</template-get-parameters>");
  99. fos.Append("</page-template>");
  100. fos.Append("</global>");
  101. fos.Append("<form-list>");
  102. int openSeq = 1;
  103. foreach (string guid in guids)
  104. {
  105. fos.Append(string.Format("<form name=\"noname\" open-sequence=\"{0}\" path=\"{1}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", openSeq, formServiceUrl));
  106. fos.Append("<parameters>");
  107. if (fosFormParams != null)
  108. {
  109. if (fosFormParams.ContainsKey(guid))
  110. {
  111. Dictionary<string, string> fosFormParamsByGuid = fosFormParams[guid];
  112. foreach (string paramKey in fosFormParamsByGuid.Keys)
  113. {
  114. fos.Append(string.Format("<param name='{0}'><![CDATA[{1}]]></param>", paramKey, fosFormParamsByGuid[paramKey]));
  115. }
  116. }
  117. }
  118. fos.Append("</parameters>");
  119. fos.Append("<form-get-parameters>");
  120. fos.Append("<post-param key=\"OP\"><![CDATA[VIEWER_FORM]]></post-param>");
  121. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  122. fos.Append("<action>GET</action>");
  123. fos.Append("<params>");
  124. fos.Append("<param name='adaptername'>defaultadapter</param>");
  125. fos.Append("<param name='type'>guid</param>");
  126. fos.Append(string.Format("<param name='guid'>{0}</param>", guid));
  127. fos.Append("<param name='version'>-1</param>");
  128. fos.Append("</params>");
  129. fos.Append("</data>]]></post-param>");
  130. fos.Append("</form-get-parameters>");
  131. fos.Append("</form>");
  132. openSeq++;
  133. }
  134. fos.Append("</form-list>");
  135. fos.Append(" </fos>");
  136. return fos.ToString();
  137. }
  138. /// <summary>
  139. /// param, guid값을 넘겨받아 그를 포함하는 fos를 리턴한다.
  140. /// </summary>
  141. /// <param name="guid"></param>
  142. /// <param name="fosParams"></param>
  143. /// <returns></returns>
  144. public static string GetMultiFosString(string[] guids, string formServiceUrl, Dictionary<string, string> fosGlobalParams, Dictionary<string, Dictionary<string, string>> fosFormParams)
  145. {
  146. StringBuilder fos = new StringBuilder();
  147. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  148. fos.Append("<fos version=\"1.0\">");
  149. fos.Append("<global>");
  150. fos.Append("<parameters>");
  151. if (fosGlobalParams != null) { fos.Append(GetParamsString(fosGlobalParams)); }
  152. fos.Append("</parameters>");
  153. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  154. fos.Append("<template-get-parameters>");
  155. fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  156. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  157. fos.Append("<action>GET_LIST</action>");
  158. fos.Append("<params>");
  159. fos.Append("<param name='adaptername'>defaultadapter</param>");
  160. fos.Append("</params>");
  161. fos.Append("</data>]]></post-param>");
  162. fos.Append("</template-get-parameters>");
  163. fos.Append("</page-template>");
  164. fos.Append("</global>");
  165. fos.Append("<form-list>");
  166. int openSeq = 1;
  167. foreach (string guid in guids)
  168. {
  169. fos.Append(string.Format("<form name=\"noname\" open-sequence=\"{0}\" path=\"{1}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", openSeq, formServiceUrl));
  170. fos.Append("<parameters>");
  171. if (fosFormParams != null)
  172. {
  173. if (fosFormParams.ContainsKey(openSeq.ToString()))
  174. {
  175. Dictionary<string, string> fosFormParamsByGuid = fosFormParams[openSeq.ToString()];
  176. foreach (string paramKey in fosFormParamsByGuid.Keys)
  177. {
  178. fos.Append(string.Format("<param key='{0}'><![CDATA[{1}]]></param>", paramKey, fosFormParamsByGuid[paramKey]));
  179. }
  180. }
  181. }
  182. fos.Append("</parameters>");
  183. fos.Append("<form-get-parameters>");
  184. fos.Append("<post-param key=\"OP\"><![CDATA[VIEWER_FORM]]></post-param>");
  185. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  186. fos.Append("<action>GET</action>");
  187. fos.Append("<params>");
  188. fos.Append("<param name='adaptername'>defaultadapter</param>");
  189. fos.Append("<param name='type'>guid</param>");
  190. fos.Append(string.Format("<param name='guid'>{0}</param>", guid));
  191. fos.Append("<param name='version'>-1</param>");
  192. fos.Append("</params>");
  193. fos.Append("</data>]]></post-param>");
  194. fos.Append("</form-get-parameters>");
  195. fos.Append("</form>");
  196. openSeq++;
  197. }
  198. fos.Append("</form-list>");
  199. fos.Append(" </fos>");
  200. return fos.ToString();
  201. }
  202. /// <summary>
  203. /// param, guid값을 넘겨받아 그를 포함하는 fos를 리턴한다.
  204. /// </summary>
  205. /// <param name="actionParams"></param>
  206. /// <param name="formServiceUrl"></param>
  207. /// <returns></returns>
  208. public static string GetFosStringForEpt(Dictionary<string, string> actionParams, string formServiceUrl, Dictionary<string, string> fosGlobalParams)
  209. {
  210. StringBuilder fos = new StringBuilder();
  211. fos.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  212. fos.Append("<fos version=\"1.0\">");
  213. fos.Append("<global>");
  214. fos.Append(GetParamsString(fosGlobalParams));
  215. fos.Append(string.Format("<page-template path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  216. fos.Append("<template-get-parameters>");
  217. fos.Append("<post-param key=\"OP\"><![CDATA[PAGE_TEMPLATE]]></post-param>");
  218. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  219. fos.Append("<action>GET_LIST</action>");
  220. fos.Append("<params>");
  221. fos.Append("<param name='adaptername'>defaultadapter</param>");
  222. fos.Append("</params>");
  223. fos.Append("</data>]]></post-param>");
  224. fos.Append("</template-get-parameters>");
  225. fos.Append("</page-template>");
  226. fos.Append("</global>");
  227. fos.Append("<form-list>");
  228. fos.Append(string.Format("<form name=\"noname\" open-sequence=\"1\" path=\"{0}\" request-encode=\"utf-8\" response-encode=\"utf-8\">", formServiceUrl));
  229. fos.Append("<parameters />");
  230. fos.Append("<form-get-parameters>");
  231. fos.Append("<post-param key=\"OP\"><![CDATA[VIEWER_DATA]]></post-param>");
  232. fos.Append("<post-param key=\"PD\"><![CDATA[<data>");
  233. fos.Append("<action>GET_DATA</action>");
  234. fos.Append("<params>");
  235. fos.Append("<param name='adaptername'>defaultadapter</param>");
  236. foreach (string paramKey in actionParams.Keys)
  237. {
  238. fos.Append(string.Format("<param name='{0}'>{1}</param>", paramKey, actionParams[paramKey]));
  239. }
  240. fos.Append("</params>");
  241. fos.Append("</data>]]></post-param>");
  242. fos.Append("</form-get-parameters>");
  243. fos.Append("</form>");
  244. fos.Append("</form-list>");
  245. fos.Append("</fos>");
  246. return fos.ToString();
  247. }
  248. private static string GetParamsString(Dictionary<string, string> fosParams)
  249. {
  250. StringBuilder parametersOfFos = new StringBuilder();
  251. parametersOfFos.Append("<parameters>");
  252. foreach (string paramKey in fosParams.Keys)
  253. {
  254. parametersOfFos.AppendFormat("<param key=\"{0}\"><![CDATA[{1}]]></param>", paramKey, fosParams[paramKey]);
  255. }
  256. parametersOfFos.Append("</parameters>");
  257. return parametersOfFos.ToString();
  258. }
  259. }
  260. }