病理科信息系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
病理科信息系统设计与实现
作者:张秋菊
来源:《科技传播》2015年第09期
摘要病理科作为医院的一个医技科室,传统的系统只能简单提供病理检查的报告。为了系统的管理病理科的各个工作环节,对病理科系统从功能、角色、接口3个方面进行了分析,对系统的功能和数据库进行详细的设计,给出了部分表的设计,给出了系统的部分设计与实现。对改善病理科的工作有着积极意义。
关键词医院;病理科;信息
中图分类号TP3 文献标识码 A 文章编号 1674-6708(2015)138-0131-02
1需求分析
病理科的业务是,接收来自临床医生的标本检验申请,通过内部的检查登记、取材、包埋、制片、诊断等工作环节,最终生成病理报告,把报告反馈给临床科室和患者。这就要求病理科内部要有明确的工作流程,责任分工,外部要有良好的沟通和反馈途径。
1.1 功能需求
为了更好的管理病理内部的工作环节,把病理检查的工作细分为各个工作站,让每一个工作站完成工作站内的工作,使工作责任更加明确,工作环节更加紧密。
1)登记工作站:进行病人基本信息和检查标本信息登记。2)取材工作站:对标本进行取材巨检,能够记录标本的取材结果。3)包埋工作站:进行标本的包埋状态记录。4)制片工作站:进行标本的制片状态记录,进行染色记录。5)诊断工作站:对诊断后的结果,进行录入保存并发布报告。
1.2 用户角色需求
病理工作由于分工明确,且是一环接着一环,系统对每一个岗位都设置了权限,有登记操作员,取材医生,打字员,包埋操作员,制片操作员,诊断医生以及系统管理员。系统管理员拥有最高的权限,他所能操作的权限如下。
1.3 接口需求
临床医生希望能够在自己的办公室随时随地的调取病理科的检查报告,而病理科医生同样希望能够调取患者的临床诊断信息,势必要求病理系统与CIS临床系统进行数据的交互与共享。
2 系统设计
2.1 程序框架设计
病理科管理系统为了保障数据信息的安全,保障稳定和提升相应速度,采用C/S结构;主要由五大工作站和外部数据接口组成:登记工作站,取材工作站,包埋工作站,制片工作站,诊断工作站及外部报告共享浏
览等。
本系统开发平台采用Microsoft Visual Studio 2010,C#为主要开发语言,使用.net framework 4.0框架,数据库采用 SQL 2008 R2,操作系统使用 Windows Server 2003(服务器)/Windows XP(客户端),硬件基本要求是:内存2.0G以上,CPU2.1GHz以上,硬盘40G以上。
2.2 系统数据库
良好的数据库结构可以使系统更加稳定,提升更快的性能,数据库包含的主要数据表有:
1)申请信息表,该表是建立病理检查的基础,是病理检查的申请信息。主要字段有:申请编号,病理检查编号,患者姓名,性别,出生年月,籍贯,婚姻,电话,住址,就诊卡,住院号,临床诊断等内容。2)标本信息表,该表记录申请的标本信息,由于一个申请可能有多个标本,故与申请信息表分开。主要字段有:申请编号,病理检查编号,标本名称,标本部位等内容。3)诊断信息表,该表主要记录病理诊断结果。主要字段有:申请编号,病理检查编号,镜下检查结果,病理诊断结果,诊断医生,诊断日期等内容。4)图像存储表,该表记录病理医生在诊断时采集的显微镜图像。主要字段有:申请编号,病理检查编号,图像大小,图像路径,宽,高,分辨率等内容。5)模板字典表,该表是为了能够快速的输入相同的内容,提高工作效率。主要字段有:编号,父级编号,关键字,关键字内容等内容。
3 系统实现
3.1 病理诊断模块
病理科核心工作是诊断,为更方便准确的记录病人的诊断信息,提供标本的模板代码,并校验病人的诊断是否明显与送检标本不一致的情况,避免发生信息错误。
ListBox lb = (ListBox)sender;
if (lb.SelectedItems.Count > 0)
{
DictionaryEntry de = (DictionaryEntry)lb.SelectedItem;
string str = de.Value.ToString();
if (str.IndexOf(…$‟) > -1)
parseTemplate(str);
else
{
int startX = text_fastwords.SelectionStart;
text_fastwords.Text = text_fastwords.Text.Substring(0, startX) + str +
text_fastwords.Text.Substring(startX);
text_fastwords.SelectionStart = startX + str.Length;
text_fastwords.Text = getRichTextBoxExText(text_fastwords.Text);
}
}
3.2 报告查询模块
随着日积月累的病理检查,报告数量将是越来越多,全面并快速的查询病例是重要的一个模块,它将影响每天的工作效率。
Dictionary data = getConditionData();
//DataTable dt = doSqlPublic.getCaseTable(data, ConstDefine.SearchCaseSelectItem);
DataTable dt = doSqlPublic.getCaseTable(data);
if (dt == null)
{
dt = new DataTable();
}