【C#】医学检验系统(LIS)源码
发布人:shili8
发布时间:2024-08-08 00:57
阅读次数:0
**医学检验系统 (LIS) 源码**
**概述**
本项目是一个简单的医学检验系统 (LIS),旨在模拟一个实际的医疗机构的检验流程。该系统包括用户管理、检验样本管理、检验结果管理等功能。
**技术栈**
* .NET Framework4.8* C#7.3* Entity Framework Core3.1* ASP.NET Web API2.2**数据库设计**
我们使用 Entity Framework Core 来与数据库进行交互。下面是我们的数据库设计:
sqlCREATE TABLE Users ( Id INT PRIMARY KEY, Name NVARCHAR(50), Email NVARCHAR(100) ); CREATE TABLE Samples ( Id INT PRIMARY KEY, PatientName NVARCHAR(50), SampleType NVARCHAR(20), Result DECIMAL(10,2) ); CREATE TABLE Results ( Id INT PRIMARY KEY, SampleId INT, ResultDate DATE, ResultValue DECIMAL(10,2), FOREIGN KEY (SampleId) REFERENCES Samples(Id) );
**模型**
我们定义了以下模型:
csharppublic class User{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public ICollection Samples { get; set; }
}
public class Sample{
public int Id { get; set; }
public string PatientName { get; set; }
public string SampleType { get; set; }
public decimal Result { get; set; }
public ICollection Results { get; set; }
}
public class Result{
public int Id { get; set; }
public int SampleId { get; set; }
public DateTime ResultDate { get; set; }
public decimal ResultValue { get; set; }
public Sample Sample { get; set; }
}
**服务**
我们定义了以下服务:
csharppublic interface IUserService{
IEnumerable GetAllUsers();
User GetUserById(int id);
void CreateUser(User user);
}
public class UserService : IUserService{
private readonly DbContext _context;
public UserService(DbContext context)
{
_context = context;
}
public IEnumerable GetAllUsers()
{
return _context.Users.ToList();
}
public User GetUserById(int id)
{
return _context.Users.Find(id);
}
public void CreateUser(User user)
{
_context.Users.Add(user);
_context.SaveChanges();
}
}
public interface ISampleService{
IEnumerable GetAllSamples();
Sample GetSampleById(int id);
void CreateSample(Sample sample);
}
public class SampleService : ISampleService{
private readonly DbContext _context;
public SampleService(DbContext context)
{
_context = context;
}
public IEnumerable GetAllSamples()
{
return _context.Samples.ToList();
}
public Sample GetSampleById(int id)
{
return _context.Samples.Find(id);
}
public void CreateSample(Sample sample)
{
_context.Samples.Add(sample);
_context.SaveChanges();
}
}
public interface IResultService{
IEnumerable GetAllResults();
Result GetResultById(int id);
void CreateResult(Result result);
}
public class ResultService : IResultService{
private readonly DbContext _context;
public ResultService(DbContext context)
{
_context = context;
}
public IEnumerable GetAllResults()
{
return _context.Results.ToList();
}
public Result GetResultById(int id)
{
return _context.Results.Find(id);
}
public void CreateResult(Result result)
{
_context.Results.Add(result);
_context.SaveChanges();
}
}
**控制器**
我们定义了以下控制器:
csharppublic class UserController : Controller{
private readonly IUserService _userService;
public UserController(IUserService userService)
{
_userService = userService;
}
[HttpGet]
public IActionResult GetAllUsers()
{
return Ok(_userService.GetAllUsers());
}
[HttpGet]
public IActionResult GetUserById(int id)
{
var user = _userService.GetUserById(id);
if (user == null)
{
return NotFound();
}
return Ok(user);
}
[HttpPost]
public IActionResult CreateUser(User user)
{
_userService.CreateUser(user);
return CreatedAtAction(nameof(GetUserById), new { id = user.Id }, user);
}
}
public class SampleController : Controller{
private readonly ISampleService _sampleService;
public SampleController(ISampleService sampleService)
{
_sampleService = sampleService;
}
[HttpGet]
public IActionResult GetAllSamples()
{
return Ok(_sampleService.GetAllSamples());
}
[HttpGet]
public IActionResult GetSampleById(int id)
{
var sample = _sampleService.GetSampleById(id);
if (sample == null)
{
return NotFound();
}
return Ok(sample);
}
[HttpPost]
public IActionResult CreateSample(Sample sample)
{
_sampleService.CreateSample(sample);
return CreatedAtAction(nameof(GetSampleById), new { id = sample.Id }, sample);
}
}
public class ResultController : Controller{
private readonly IResultService _resultService;
public ResultController(IResultService resultService)
{
_resultService = resultService;
}
[HttpGet]
public IActionResult GetAllResults()
{
return Ok(_resultService.GetAllResults());
}
[HttpGet]
public IActionResult GetResultById(int id)
{
var result = _resultService.GetResultById(id);
if (result == null)
{
return NotFound();
}
return Ok(result);
}
[HttpPost]
public IActionResult CreateResult(Result result)
{
_resultService.CreateResult(result);
return CreatedAtAction(nameof(GetResultById), new { id = result.Id }, result);
}
}
**启动**
我们可以使用以下命令启动应用:
bashdotnet run
**测试**
我们可以使用 Postman 或其他 HTTP 客户端来测试我们的 API。
例如,我们可以发送一个 GET 请求到 ` 来获取所有用户的列表。
同样,我们可以发送一个 POST 请求到 ` 来创建一个新用户。
我们也可以发送一个 GET 请求到 ` 来获取所有样本的列表。
等等...
**注意**
这个示例是非常简单的,并且没有考虑到实际生产环境中的许多问题。例如,安全性、性能优化、错误处理等等。
在实际项目中,你应该仔细考虑这些问题,并根据具体需求进行调整和扩展。
希望这个示例能够给你一些帮助!

