电子药箱通讯服务端
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

PatientOperationInfoBLL.cs 7.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.ServiceModel;
  6. using RDH.Data.Models;
  7. namespace RDH.Data.BLL
  8. {
  9. public partial class PatientOperationInfoBLL : BaseOrclSnapshotBLL<PatientOperationInfo>, IPatientOperationInfoBLL
  10. {
  11. public PatientOperationInfoBLL() : base()
  12. {
  13. AliasTableName = "poi";
  14. }
  15. internal override String TABLE_NAME { get { return "PATIENT_OPERATION_INFO"; } }//TB_NAME
  16. internal override string ENTITY_NAME { get { return "PatientOperationInfo"; } }
  17. internal override String KEY_COLUMN { get { return "KEY"; } }//KEY_COLUMN
  18. internal override string SNAPSHOT_BASE { get { return "PATIENT_OPERATION_INFO_BASE"; } }
  19. internal override void InitMaps()
  20. {
  21. ColumnPropMaps.Add("SNAPSHOT_KEY", "SnapshotKey");
  22. ColumnPropMaps.Add("KEY", "Key");
  23. ColumnPropMaps.Add("CREATE_BY", "CreateBy");
  24. ColumnPropMaps.Add("PATIENT_KEY", "PatientKey");
  25. ColumnPropMaps.Add("BED_NUMBER", "BedNumber");
  26. ColumnPropMaps.Add("ENCOUNTER_ID", "EncounterId");
  27. ColumnPropMaps.Add("OPERATION_ID", "OperationId");
  28. ColumnPropMaps.Add("OPERATION_NAME", "OperationName");
  29. ColumnPropMaps.Add("CREATE_TIME", "CreateTime");
  30. ColumnPropMaps.Add("OPERATION_BEGIN_TIME", "OperationBeginTime");
  31. ColumnPropMaps.Add("OPERATION_OVER_TIME", "OperationOverTime");
  32. ColumnPropMaps.Add("DESCRIPTION", "Description");
  33. ColumnPropMaps.Add("ANES_SCHEME", "AnesScheme");
  34. ColumnPropMaps.Add("PATIENT_NAME", "PatientName");
  35. ColumnPropMaps.Add("IS_TEMP_SURGERY", "IsTempSurgery");
  36. ColumnPropMaps.Add("AGE", "Age");
  37. ColumnPropMaps.Add("GENDER", "Gender");
  38. ColumnPropMaps.Add("REMARK", "Remark");
  39. ColumnPropMaps.Add("OPERATION_TYPE", "OperationType");
  40. ColumnPropMaps.Add("OPERATION_ROOM_KEY", "OperationRoomKey");
  41. ColumnPropMaps.Add("FLAG", "Flag");
  42. ColumnPropMaps.Add("CLIENT_TIME", "ClientTime");
  43. ColumnPropMaps.Add("SERVER_TIME", "ServerTime");
  44. ColumnPropMaps.Add("EXT01", "Ext01");
  45. ColumnPropMaps.Add("EXT02", "Ext02");
  46. ColumnPropMaps.Add("EXT03", "Ext03");
  47. ColumnPropMaps.Add("EXT04", "Ext04");
  48. ColumnPropMaps.Add("EXT05", "Ext05");
  49. ColumnPropMaps.Add("EXT06", "Ext06");
  50. ColumnPropMaps.Add("EXT07", "Ext07");
  51. ColumnPropMaps.Add("EXT08", "Ext08");
  52. ColumnPropMaps.Add("EXT09", "Ext09");
  53. ColumnPropMaps.Add("EXT10", "Ext10");
  54. ColumnPropMaps.Add("SURGEON_KEY", "SurgeonKey");
  55. ColumnPropMaps.Add("ANALGESIST_KEY", "AnalgesistKey");
  56. ColumnPropMaps.Add("HAS_CANCELED", "HasCanceled");
  57. ColumnPropMaps.Add("OPERATION_ROOM_ID", "OperationRoomId");
  58. ColumnPropMaps.Add("ANALGESIST_ID", "AnalgesistId");//COLUMN_MAPS
  59. }
  60. internal override object GetParam(PatientOperationInfo patientoperationinfo)
  61. {
  62. return new
  63. {
  64. SnapshotKey = patientoperationinfo.SnapshotKey,
  65. Key = patientoperationinfo.Key,
  66. CreateBy = patientoperationinfo.CreateBy,
  67. PatientKey = patientoperationinfo.PatientKey,
  68. BedNumber = patientoperationinfo.BedNumber,
  69. EncounterId = patientoperationinfo.EncounterId,
  70. OperationId = patientoperationinfo.OperationId,
  71. OperationName = patientoperationinfo.OperationName,
  72. CreateTime = patientoperationinfo.CreateTime,
  73. OperationBeginTime = patientoperationinfo.OperationBeginTime,
  74. OperationOverTime = patientoperationinfo.OperationOverTime,
  75. Description = patientoperationinfo.Description,
  76. AnesScheme = patientoperationinfo.AnesScheme,
  77. PatientName = patientoperationinfo.PatientName,
  78. IsTempSurgery = patientoperationinfo.IsTempSurgery,
  79. Age = patientoperationinfo.Age,
  80. Gender = patientoperationinfo.Gender,
  81. Remark = patientoperationinfo.Remark,
  82. OperationType = patientoperationinfo.OperationType,
  83. OperationRoomKey = patientoperationinfo.OperationRoomKey,
  84. Flag = patientoperationinfo.Flag,
  85. ClientTime = patientoperationinfo.ClientTime,
  86. ServerTime = patientoperationinfo.ServerTime,
  87. Ext01 = patientoperationinfo.Ext01,
  88. Ext02 = patientoperationinfo.Ext02,
  89. Ext03 = patientoperationinfo.Ext03,
  90. Ext04 = patientoperationinfo.Ext04,
  91. Ext05 = patientoperationinfo.Ext05,
  92. Ext06 = patientoperationinfo.Ext06,
  93. Ext07 = patientoperationinfo.Ext07,
  94. Ext08 = patientoperationinfo.Ext08,
  95. Ext09 = patientoperationinfo.Ext09,
  96. Ext10 = patientoperationinfo.Ext10,
  97. SurgeonKey = patientoperationinfo.SurgeonKey,
  98. AnalgesistKey = patientoperationinfo.AnalgesistKey,
  99. HasCanceled = patientoperationinfo.HasCanceled,
  100. OperationRoomId = patientoperationinfo.OperationRoomId,
  101. AnalgesistId = patientoperationinfo.AnalgesistId, //Params
  102. };
  103. }
  104. public IEnumerable<PatientOperationInfo> ListPatientOperationByRoom(String roomCode)
  105. {
  106. SqlBuilder sqlBuilder = new SqlBuilder(this);
  107. //patient table
  108. PatientInfoBLL patientInfoBLL = new PatientInfoBLL();
  109. TableJoinInfo patientTable = new TableJoinInfo
  110. {
  111. LeftDal = this,
  112. LeftColumnName = "PATIENT_KEY",
  113. RightDal = patientInfoBLL,
  114. RightColumnName = "KEY",
  115. JoinType = TableJoinTypes.Inner,
  116. };
  117. sqlBuilder.AppendSelectionTable(patientTable);
  118. //operation room table
  119. OperationRoomBLL operationRoomBLL = new OperationRoomBLL();
  120. TableJoinInfo roomTable = new TableJoinInfo
  121. {
  122. LeftDal = this,
  123. LeftColumnName = "OPERATION_ROOM_KEY",
  124. RightDal = operationRoomBLL,
  125. RightColumnName = "KEY",
  126. JoinType = TableJoinTypes.Inner,
  127. };
  128. sqlBuilder.AppendSelectionTable(roomTable);
  129. sqlBuilder.AppendWherePhrases($"poi.OPERATION_BEGIN_TIME BETWEEN TRUNC(SYSDATE) AND TRUNC(SYSDATE)+1"
  130. + $" AND {operationRoomBLL.AliasTableName}.ROOM_ID=:roomCode");
  131. //当使用场景不严谨的情况下可以将手术结束状态的判断去掉
  132. // + $" AND (poi.OPERATION_OVER_TIME IS NULL OR poi.OPERATION_OVER_TIME<poi.OPERATION_BEGIN_TIME)");
  133. return SqlMapper.Query<PatientOperationInfo, PatientInfo, OperationRoom, PatientOperationInfo>(
  134. ConnectionFactory.Current.GetSessionConnection(),
  135. sqlBuilder.ToString(),
  136. (o, p, r) =>
  137. {
  138. o.PatientInfo = p;
  139. o.OperationRoom = r;
  140. return o;
  141. },
  142. new
  143. {
  144. roomCode = roomCode
  145. },
  146. splitOn: sqlBuilder.GetSpiltors());
  147. }
  148. }
  149. }