You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.9 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using Microsoft.Extensions.Configuration;
  2. using ServiceReferenceHzcyHis;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Xml.Serialization;
  9. using static ServiceReferenceHzcyHis.bstjPortTypeClient;
  10. namespace Shentun.Peis.PlugIns.Gem
  11. {
  12. public class PatientRegisterPluginsGemHis : PatientRegisterPluginsBase
  13. {
  14. private string _endpointAddress = "";
  15. public PatientRegisterPluginsGemHis(string parmValue) : base(parmValue)
  16. {
  17. _endpointAddress = InterfaceConfig.GetSection("Interface").GetSection("EndpointAddress").Value;
  18. }
  19. public async Task<HisPatientQueryOut> PatientQuery(HisPatientQueryInput input)
  20. {
  21. using (var client = CreateClient())
  22. {
  23. input.SeviceBaseArg.Service = "patientQuery";
  24. var data = XmlHelper.SerializeToXml(input.Data);
  25. var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service,
  26. input.SeviceBaseArg.Urid,
  27. input.SeviceBaseArg.Pwd,
  28. data)).@return;
  29. var result = XmlHelper.DeserializeXml<HisPatientQueryOut>(resultStr);
  30. return result;
  31. }
  32. }
  33. public async Task<HisMecSaveOut> MecSave(HisMecSaveInput input)
  34. {
  35. using (var client = CreateClient())
  36. {
  37. input.SeviceBaseArg.Service = "mecSave";
  38. var data = XmlHelper.SerializeToXml(input.Data);
  39. var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service,
  40. input.SeviceBaseArg.Urid,
  41. input.SeviceBaseArg.Pwd,
  42. data)).@return;
  43. var result = XmlHelper.DeserializeXml<HisMecSaveOut>(resultStr);
  44. return result;
  45. }
  46. }
  47. public async Task<HisOutBase> CancelQrCode(HisCancelQrCodeInput input)
  48. {
  49. using (var client = CreateClient())
  50. {
  51. input.SeviceBaseArg.Service = "cancelQrCode";
  52. var data = XmlHelper.SerializeToXml(input.Data);
  53. var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service,
  54. input.SeviceBaseArg.Urid,
  55. input.SeviceBaseArg.Pwd,
  56. data)).@return;
  57. var result = XmlHelper.DeserializeXml<HisOutBase>(resultStr);
  58. return result;
  59. }
  60. }
  61. public async Task<HisOutBase> PayStatus(HisPayStatusInput input)
  62. {
  63. using (var client = CreateClient())
  64. {
  65. input.SeviceBaseArg.Service = "payStatus";
  66. var data = XmlHelper.SerializeToXml(input.Data);
  67. var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service,
  68. input.SeviceBaseArg.Urid,
  69. input.SeviceBaseArg.Pwd,
  70. data)).@return;
  71. var result = XmlHelper.DeserializeXml<HisOutBase>(resultStr);
  72. return result;
  73. }
  74. }
  75. public async Task<HisOutBase> AgreeRefund(HisAgreeRefundInput input)
  76. {
  77. using (var client = CreateClient())
  78. {
  79. input.SeviceBaseArg.Service = "agreeRefund";
  80. var data = XmlHelper.SerializeToXml(input.Data);
  81. var resultStr = (await client.invokeAsync(input.SeviceBaseArg.Service,
  82. input.SeviceBaseArg.Urid,
  83. input.SeviceBaseArg.Pwd,
  84. data)).@return;
  85. var result = XmlHelper.DeserializeXml<HisOutBase>(resultStr);
  86. return result;
  87. }
  88. }
  89. private bstjPortTypeClient CreateClient()
  90. {
  91. return new bstjPortTypeClient(EndpointConfiguration.bstjHttpSoap11Endpoint,
  92. _endpointAddress);
  93. }
  94. }
  95. }