基于B/S架构的医学实验室云LIS检验信息系统,整个系统的运行基于WEB层面,只需要在对应的工作台安装一个浏览器软件有外网即可访问,技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等。
一、系统概况
本系统是将各种生化、免疫、临检、放免、细菌及实验用的分析仪器,通过网络管理和传输实验分析过程中全部数据。对每一专业,实现检验申请、样本采集、样本核收、联机检验、质量控制、报告审核到报告发布的全环节的信息化管理平台。
二、系统功能特点
1.检验流程简单,可自适配,操作简便;
2.检验界面优雅,支持报告模板多样化,预设报告模板多种多样;
3.接口标准化,预留标准HIS、仪器数据接入接口;
4.功能齐全,集齐前处理、检验、报告、质控、统计分析、两癌等模块;
5.SaaS服务,无需部署,开通账号接口快速入门使用;
6.独立部署简单,全程服务到位;
【标本流转】
条码生成由系统统一规划和管理,保证条码在整个区域中的唯一性。标本采集完毕后,各家单位根据自身情况确定是否外送或在本单位完成。外送标本可随时查看到外送单位的检验进度及相关的报告情况,无需增加把数据同步到特定服务器的额外操作,与在本单位做检验没有任何区别,实现区域内所有单位标本无障碍流转。
【报告共享】
患者的检验报告可以方便地实现实时共享,无需将患者报告数据上传至特定的服务器即可方便实时地调阅权限内患者的报告数据。患者在多个单位做检验时,报告检验项目数据可实现实时共享,并将当前数据与上一次检验数据进行比较分析,将有问题数据提示给操作员以便医生及时发现问题并对患者及时进行治疗。
标本流转----标本核收----标本上机检验----费用汇总----报告审核----报告发布----报告打印等基础流程
云LIS应用于县级医院、社区门诊、农村卫生院、三甲医院、第三方检验中心、私立医院、健康体检中心、二级医院等场景。
三、系统功能实现
1、与HIS等系统无缝对接,实现数据信息的一次录入多次调阅,检验结果在临床上充分共享,打破信息孤岛的情况。
2、通过条形码技术应用,实现标本信息智能化识别,避免标本在运输途中,信息录入时的错误。
3、不仅能支持双工通讯,单工通讯联机检验结果的自动读取,上传;而且可以完成手工项目电子报告单子数据的录入,及上传。完善整个临检结果的共享。
4、互联网发布临检结果,通过条形码信息,患者编号,身份证号等唯一标识查询打印结果。
5、对检验科室医生工作量的绩效统计,对业务人员的绩效统计。
6、危急值临床应用,能及时通知到临床医生,以便临床医生及时了解病情并做出相应的处理。
7、送检医院、送检项目收费标准维护,费用自动计费汇总。
8、危急值管理:实现科室内危急值管理,实现三级危急值报警机制。并和临床系统做接口,提取危急值信息报到临床医生工作站,实现交互处理。
9、耗材管理:试剂出入库、库存、有效期、消耗量以及供应量的管理。效期和库存提醒功能。
10、主任管理:可以监视工作进度情况、使用情况,实现对全实验室有数据变更的检验报告单管理。
四、系统组成功能模块
【标本跟踪管理模块】
实现标本分析前、中、后全过程数据的信息管理,涵盖从检验申请、样本采样、样本前处理、样本接收、集成样本自动分配工作任务等一系统流程管理。
【质量控制模块】
包括质控批号、项目目轧值、标准差设置,质控状态判断,质控图绘制及打印。
【检验结果发布模块】
支持网络统一集中打印纸质检验报告单,节约打印设备的投入,提高效率,方便管理。支持服务台打印检验报告单,提供自助查询打印、在线查询结果、手机短信回复查询等服务。
【危急值管理模块】
系统一旦发现危急值,会立刻自动推送危急值详细信息(包括项目名称、数值、送检医生、责任护士、患者信息等)至检验人员的审核页面,使检验人员能在第一时间采取干预手段,同时系统会同步记录危急处理信息。
【条形码识别模块】
采用条形码技术并支持双向通信,将条形码作为标本的唯一标识,应用于标本的整个分析过程,系统会自动实时记录标本在实验室各个阶段的状态与情况,便于获取有关重要信息。在优化现有实验室工作流程的同时,从根本上解决了标本调错、项目做错等人为因素导致的差错。
【微生物管理模块】
集资料处理、实验室管理、院内感染、抗生素耐药性分析等功能为一体,实现与临床检验信息管理系统一体化网络管理。
【知识库支持模块】
基于知识管理理念构建,为实验室人员提供即点即得的检验知识服务。包括检验项目数据库、典型案例数据库、实验室管理体系文件及检验百科知识等,可满足实验室人员对自身专业知识增长的需要。
【智能审核与分析模块】
从实验室信息系统中读取检验结果数据,经过算法库的校验,然后推理机结合领域规则,按一定的策略进行推理,实现对当前检验结果的自动审核,并提供实验室结果的机器初步临床解释。用户(医生、患者等)可通过检验指标辅助查阅工具查阅某一具体指标的知识,包括释义、指标间的关系、相关的推理规则等。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
namespace CloudLIS.Controllers
{
[ApiExplorerSettings(typeof(IMetadata))]
[Route("api/[controller]")]
public class SampleController : Controller
{
private readonly ILogger<SampleController> _logger;
public SampleController(ILogger<SampleController> logger)
{
_logger = logger;
}
// GET api/sample/1
[HttpGet("{id}")]
public async Task<IActionResult> Get(int id)
{
var sample = await _repository.GetSample(id);
if (sample == null)
{
return NotFound();
}
return Ok(sample);
}
// POST api/sample
[HttpPost]
public async Task<IActionResult> Post([FromBody]SampleCreateRequest request)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
var sample = await _repository.CreateSample(request);
return CreatedAtAction("Get", new { id = sample.Id }, sample);
}
catch (Exception ex)
{
_logger.LogError($"Error creating sample: {ex.Message}");
return StatusCode(500, "Internal server error");
}
}
// PUT api/sample/1
[HttpPut("{id}")]
public async Task<IActionResult> Put(int id, [FromBody]SampleUpdateRequest request)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
var sample = await _repository.UpdateSample(id, request);
return Ok(sample);
}
catch (Exception ex)
{
_logger.LogError($"Error updating sample: {ex.Message}");
return StatusCode(500, "Internal server error");
}
}
// DELETE api/sample/1
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int id)
{
try
{
await _repository.DeleteSample(id);
return NoContent();
}
catch (Exception ex)
{
_logger.LogError($"Error deleting sample: {ex.Message}");
return StatusCode(500, "Internal server error");
}
}
}
}