您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

105 行
4.6KB

  1. using HealthMonitor.Model.Config;
  2. using HealthMonitor.Model.Service.Mapper;
  3. using HealthMonitor.Service.Biz.db;
  4. using HealthMonitor.WebApi.Configs;
  5. using HealthMonitor.WebApi.Controllers.Api;
  6. using HealthMonitor.WebApi.Model.Request;
  7. using Microsoft.AspNetCore.Http;
  8. using Microsoft.AspNetCore.Mvc;
  9. using Microsoft.Extensions.Options;
  10. using TelpoDataService.Util.Entities.GpsCard;
  11. using TelpoDataService.Util.Entities.GpsLocationHistory;
  12. namespace HealthMonitor.WebApi.Controllers.HealthMonitor
  13. {
  14. [ApiExplorerSettings(GroupName = AppConsts.SWAGGER_DOC_HealthMonitor)]
  15. [Produces("application/json")]
  16. [Route("api/HealthMonitor/[controller]/[action]")]
  17. [ApiController]
  18. public class HmBloodPressController : ControllerBase
  19. {
  20. private readonly ILogger<HmBloodPressController> _logger;
  21. private readonly TDengineService _serviceTDengine;
  22. private readonly TDengineServiceConfig _configTDengineService;
  23. public HmBloodPressController(TDengineService serviceDengine, IOptions<TDengineServiceConfig> configTDengineService, ILogger<HmBloodPressController> logger)
  24. {
  25. _serviceTDengine = serviceDengine;
  26. _logger = logger;
  27. _configTDengineService = configTDengineService.Value;
  28. }
  29. [HttpPost]
  30. public async Task<ApiResponse<object>> Add([FromBody] HmBloodPress reqModel, [FromHeader] string requestId)
  31. {
  32. try
  33. {
  34. HisGpsBloodPress model = new HisGpsBloodPress()
  35. {
  36. BloodPressId = reqModel.BloodPressId,
  37. DiastolicValue = reqModel.DiastolicValue,
  38. IsDisplay = reqModel.IsDisplay,
  39. MessageId = reqModel.MessageId,
  40. Method = reqModel.Method,
  41. Serialno = reqModel.Serialno,
  42. SystolicValue = reqModel.SystolicValue,
  43. CreateTime = DateTime.Parse(reqModel.CreateTime.ToString()),
  44. LastUpdate = DateTime.Parse(reqModel.LastUpdate.ToString()),
  45. };
  46. var serial_tail_no = model.Serialno.Substring(model.Serialno.Length - 2);
  47. var sql = $"INSERT INTO {_configTDengineService.DB}.hm_bp_{serial_tail_no} USING {_configTDengineService.DB}.stb_hm_bloodpress TAGS ('{serial_tail_no}') VALUES(" +
  48. $"'{model.LastUpdate:yyyy-MM-dd HH:mm:ss.fff}'," +
  49. $"'{model.BloodPressId}'," +
  50. $"'{model.MessageId}'," +
  51. $"'{model.Serialno}'," +
  52. $"{model.SystolicValue}," +
  53. $"{model.DiastolicValue}," +
  54. $"'{model.CreateTime:yyyy-MM-dd HH:mm:ss.fff}'," +
  55. $"'{model.LastUpdate:yyyy-MM-dd HH:mm:ss.fff}'," +
  56. $"{model.Method}," +
  57. $"{model.IsDisplay == 1})";
  58. var flag= await _serviceTDengine.GernalRestSql(sql);
  59. if (flag) return ApiResponse<object>.Success(model);
  60. }
  61. catch (Exception ex)
  62. {
  63. _logger.LogInformation($"{reqModel.Serialno} -- {reqModel.MessageId} -- 血压数据插入失败; {ex.Message}\n {ex.InnerException} \n{ex.StackTrace}");
  64. }
  65. return ApiResponse<object>.Fail(500, $"{reqModel.Serialno} -- {reqModel.MessageId} -- 血压数据插入失败");
  66. }
  67. [HttpGet]
  68. public async Task<IActionResult> Test()
  69. {
  70. // _serviceTDengine.InsertFetalHeartRate2();
  71. //await _serviceTDengine.InsertFetalHeartRateAsync();
  72. //var test = new FetalHeartRateModel()
  73. //{
  74. // Timestamp = DateTime.Now,
  75. // CreateTime = DateTime.Now,
  76. // FetalHeartRate = 122,
  77. // FetalHeartRateId = Guid.NewGuid().ToString("D"),
  78. // IsDisplay = false,
  79. // Method = 1,
  80. // PersonId = Guid.NewGuid().ToString("D"),
  81. // MessageId = Guid.NewGuid().ToString("D"),
  82. // SerialNumber = "864144050568123",
  83. // DeviceKey = Guid.NewGuid().ToString("D"),
  84. // SerialTailNumber = "23",
  85. // LastUpdate = DateTime.Now,
  86. //};
  87. //await _serviceTDengine.InsertAsync<FetalHeartRateModel>("hm_fhr", test);
  88. //var first = _serviceTDengine.GetFirst();
  89. var first = await _serviceTDengine.GetBySerialNoAsync<FetalHeartRateModel>("864144050568123");
  90. return Ok(first);
  91. }
  92. }
  93. }