OPSettlementService.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Helper;
  3. using PTMedicalInsurance.Variables;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace PTMedicalInsurance.Business
  11. {
  12. class OPSettlementService:IChargeService
  13. {
  14. public OPSettlementService()
  15. {
  16. Global.pat.admType = 1;
  17. }
  18. /// <summary>
  19. /// 收费业务
  20. /// </summary>
  21. public string Charge(string operationType, JObject joInput)
  22. {
  23. Global.operationType = operationType;
  24. //joInput 包括( data、mdtrtinfo、diseinfo、settlement)
  25. ProcessManager pManager = new ProcessManager()
  26. .Add(new ReadPatientProcess())
  27. // 挂号[2201A]
  28. .Add(new OPRegProcess())
  29. // 就诊信息上传[2203]
  30. .Add(new OPAdmUploadProcess())
  31. // 费用上传[2204]
  32. .Add(new OPFeeUploadProcess())
  33. // 门诊预结算[2206]
  34. .Add(new OPPreSettlementProcess())
  35. // 正式结算[2207]
  36. .Add(new OPSettlementProcess());
  37. // 执行
  38. return pManager.Run(joInput);
  39. }
  40. /// <summary>
  41. /// 退费业务
  42. /// </summary>
  43. /// <param name="joParam"></param>
  44. /// <returns></returns>
  45. public string DisCharge(JObject joParam)
  46. {
  47. ProcessManager pManager = new ProcessManager()
  48. // 查询结算信息
  49. .Add(new OPQuerySettlementProcess())
  50. // 门诊结算撤销 [2208]
  51. .Add(new OPSettlementCancelProcess())
  52. // 费用明细取消[2205]
  53. .Add(new OPFeeUploadCancelProcess())
  54. // 取消挂号[2202]
  55. .Add(new OPRegCancelProcess())
  56. // 退HIS结算
  57. .Add(new OPSettlementCancelHisProcess(true));
  58. // 执行
  59. return pManager.Run(joParam);
  60. }
  61. }
  62. }