强强的个人技术博客 医技科室软件(PACS, RIS)码农

常见影像科室设备类型

常见影像科室设备类型

 

设备类型编码描述
计算机断层摄影(CT)CT计算机断层摄影
数字化X射线摄影(DX)DX数字化X射线摄影
计算机放射成像(CR)CR计算机放射成像
普通显微镜(GM)GM普通显微镜
数字减影心血管造影术(DSA)DSA数字减影心血管造影术
X光血管造影(XA)XAX光血管造影
内窥镜(ES)ES内窥镜
X线成像(RG)RGX线成像
全景X光(PX)PX全景X光
核医学(NM)NM核医学
超声(US)US超声
乳房X光成像(MG)MG乳房X光成像
透视摄影(RF)RF透视摄影
数字化X射线摄影(DR)DR数字化X射线摄影
正电子发射断层摄影(PT)PT正电子发射断层摄影
电子心电图(ECG)ECG电子心电图
磁共振血管造影(MA)MA磁共振血管造影
磁共振(MR)MR磁共振


2023年1月17日 | 发布:强强 | 分类:PACS业务知识 | 评论:0

C# winform 监听键盘录入

我们再程序中监听键盘录入   窗口属性this.KeyPreview = true 可以让方法传递到窗口中由窗口监听

2023年1月17日 | 发布:强强 | 分类:ASP.NET | 评论:0

C# winform 鼠标操作时要判断是否按下Ctrl键

C# winfrom  鼠标操作时要判断是否按下Ctrl键


控件需要Ctrl+Click 实现多选

判断是否按住快捷键的方法:

(Control.ModifierKeys & Keys.Control) == Keys.Control


2023年1月17日 | 发布:强强 | 分类:ASP.NET | 评论:0

ASP.NET轻量级MVC框架Nancy使用

Nancy是一个轻量级的MVC框架,也可以完全脱离IIS.

下面是官网的一些介绍:

Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。

Nancy 设计用于处理 DELETE, GET, HEAD, OPTIONS, POST, PUT和 PATCH 等请求方法,并提供简单优雅的 DSL 以返回响应。让你有更多时间专注于你的代码和程序。

2023年1月5日 | 发布:强强 | 分类:ASP.NET | 评论:0

历史数据 查询方式

-- =============================================
-- Author:<Author,,Name>
-- Create date: <Create Date,,>
-- Description:<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Pro_HisPatient](
@REQ_PROCNO  uniqueidentifier,
@hospitalno nvarchar(64)=null
 )
AS
BEGIN 
SET NOCOUNT ON;
declare @patname nvarchar(1000)
declare @hisid nvarchar(1000)
declare @idcard nvarchar(1000)
declare @patientid nvarchar(1000)
declare @mk uniqueidentifier
declare @tb as table(mk uniqueidentifier)
declare @modality as nvarchar(100)
SELECT @patname=p.PATNAME,@hisid=p.HISID,@idcard=p.IDCARDNO,@mk=i.SERV_REGNO,@patientid=p.PATIENTID,@modality=o.MODALITY
from R_PATIENT p 
join IMG_SERV_REG i on p.PATIENTNO=i.PATIENTNO 
join REQ_PROC o on o.SERV_REGNO=i.SERV_REGNO where REQ_PROCNO=@REQ_PROCNO
print @patname
print @hisid
print @idcard
print @mk
print @patientid
print @modality
print @patientid
--身份证号
if(@idcard is not null and @idcard<>'' and (LEN(@idcard)=18  or len(@idcard)=15))
begin
--hisid
if(@hisid is not null and @hisid<>'')
begin
insert into @tb
SELECT distinct MERGER_FK FROM V_REPORTLIST  WHERE (PATIENTID=@patientid or IDCARDNO=@idcard  or HISID=@hisid)
end
else
begin
insert into @tb
SELECT distinct MERGER_FK FROM V_REPORTLIST  WHERE (PATIENTID=@patientid or IDCARDNO=@idcard   )
end
end
else
begin
--hisid
if(@hisid is not null and @hisid<>'')
begin
insert into @tb
SELECT distinct MERGER_FK FROM V_REPORTLIST  WHERE (PATIENTID=@patientid or  HISID=@hisid)
end
else
begin
insert into @tb
SELECT distinct MERGER_FK FROM V_REPORTLIST  WHERE (PATIENTID=@patientid   )
end
end
--select * from @tb
select v.*,dbo.GetAllExamitem(v.REQ_PROCNO) AllDirection 
from V_REPORTLIST v 
join @tb b on v.MERGER_FK=b.mk
    left join T_OrderLink l on l.REQ_PROCNO= v.REQ_PROCNO and l.ISSAVE=1
    where  1=1
    and (l.Main_REQ_PROCNO is null or l.REQ_PROCNO=l.Main_REQ_PROCNO)
and  STATUS in ( '已诊断', '已审核', '已终审', '已打印')
and v.REQ_PROCNO <> @REQ_PROCNO and PATNAME=@patname
order by v.STUDY_DATE DESC  
END


2022年12月29日 | 发布:强强 | 分类:RIS系统 | 评论:0

Git操作失败: Another git process seems to be running XXX

  VS2017 中修改Git分支报错        

 提示Git操作失败并提示Another git process seems to be running in this.XXX


报错原因:

Git在使用过程中遭遇了奔溃,部分被上锁资源没有被释放导致的。

2022年12月21日 | 发布:强强 | 分类:日常 | 评论:0

RIS 系统登记设置默认检查类型

RIS 系统登记设置默认检查类型


一 本机参数设置 是否使用默认的检查设备/部位/项目


二 设置默认检查设备

2022年12月21日 | 发布:强强 | 分类:RIS系统 | 评论:0

WPF 获取程序路径

WPF 获取程序路径的方法


1.Application.ExecutablePath;

获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。


2. AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

获取或设置包含该应用程序的目录的名称。

2022年12月20日 | 发布:强强 | 分类:ASP.NET | 评论:0

三个视图 V_GlobalStudy,V_GLOBALSTUDY_NKJK,V_One_GlobalStudy

三个视图 V_GlobalStudy,V_GLOBALSTUDY_NKJK,V_One_GlobalStudy 

默认SQL语句

现场可以根据语句对应修改。


视图一、V_GlobalStudy

Create VIEW [dbo].[V_GlobalStudy]
AS
SELECT   a.PATIENTNO, a.PATNAME, a.SEX, a.PATIENTID, b.SERV_REGNO, b.PLA_ORD_NUM, a.HISID, c.ACTION_DATE,
                b.ACCESSION_DATE, CASE WHEN b.EXIGENCE = '0' THEN 'false' ELSE 'true' END AS ISEXIGENCE, b.ENROLDOCTOR,
                b.ADM_ID_ISS, b.ADM_ID, b.BedNO, b.PAT_AGE, c.REQ_PROCNO, c.STATUS, c.REQ_PROC_ID, c.MODALITY,
                d.PARTOFCHECK_STAT AS PARTOFCHECK, c.ALLPARTOFCHECK, d.DIRECTION, d.ALLDIRECTION, c.STUDY_DATE,
                d.EXPOSALTIMES, c.STUDY_DATE AS CHECKDATE, a.BIRTHDATE, a.IDCARDNO, a.TELEPHONE, a.ADDRESS,
                d.CHECKDOCTOR, e.REPORTNO, e.REPORTDOCTOR, e.CHIEFDOCTOR, e.PRINTDOCTOR, d.FEE, b.REQ_SERVICE,
			isnull( (select top 1 REPLACE(r.LATERINFO ,CHAR(13) + CHAR(10),' ')  from R_LATERINFO r where r.REQ_PROC_ID=c.REQ_PROC_ID order by r.LATERDATE desc),'')
				 LATINFO,dbo.GetImageNum(c.STUDY_INS_UID) ImageNum,
                b.REQ_PHY_NAME, c.STUDY_INS_UID,   e.CHECKRESULT , CASE SUBSTRING(c.TRACEIDENTIFIER, 1, 1)
                WHEN 'T' THEN 'true' WHEN 'F' THEN 'false' END AS TRACEIDENTIFIER_ZC, CASE SUBSTRING(c.TRACEIDENTIFIER, 2,
                1) WHEN 'T' THEN 'true' WHEN 'F' THEN 'false' END AS TRACEIDENTIFIER_XX, CASE SUBSTRING(c.TRACEIDENTIFIER,
                3, 1) WHEN 'T' THEN 'true' WHEN 'F' THEN 'false' END AS TRACEIDENTIFIER_HZ, e.REPORTID, b.OFDEPARTMENT,
                d.ROOMNO, d.MODALITYNAME, CASE e.masculine WHEN '0' THEN '阴性' WHEN '1' THEN '阳性' END AS MASCULINE,
                c.REQ_PROC_LOC, c.PRINT_STATUS, c.ISMARK, b.TOTALFEE, c.CRITICAL_STATUS,
               dbo.GetReportDate(c.REQ_PROCNO ,e.CONTENT_DATE,b.OFDEPARTMENT) CONTENT_DATE,
               dbo.GetAduitDate(c.REQ_PROCNO ,e.CONTENT_DATE,c.STATUS,c.REQ_PROCNO,e.CHIEFDOCTOR,b.OFDEPARTMENT) AUDITING_DATE, 
						    CASE WHEN e.PRINTDATE IS NULL
                THEN '' WHEN e.PRINTDATE > '1900-01-01 00:00:00' THEN CONVERT(varchar(19), e.PRINTDATE, 121)
                WHEN e.PRINTDATE = '' THEN '' END AS PRINTDATE, e.PREREPORTDOCTOR, e.PRECHIEFDOCTOR, d.FLATORPOWER,
                CASE RIGHT(PAT_AGE, 1) WHEN '岁' THEN CAST(REPLACE(PAT_AGE, RIGHT(PAT_AGE, 1), '') AS INT)
                * 8760 WHEN '月' THEN CAST(REPLACE(PAT_AGE, RIGHT(PAT_AGE, 1), '') AS INT)
                * 720 WHEN '天' THEN CAST(REPLACE(PAT_AGE, RIGHT(PAT_AGE, 1), '') AS INT)
                * 24 WHEN '时' THEN CAST(REPLACE(REPLACE(PAT_AGE, '小', ''), RIGHT(REPLACE(PAT_AGE, '小', ''), 1), '') AS INT)
                ELSE CAST(REPLACE(PAT_AGE, RIGHT(PAT_AGE, 1), '') AS INT) END AS PAT_AGE2, b.FLOORNO, b.LAYERNO,a.MERGER_FK,
                b.REGIONNO, b.DORMITORYNO, e.DiagnoseResult,'' DIAGNOSIS,e.TYPIST, b.REMARK REMARK,'' ADM_ID_SEQ_SERVICE,'' DIRECTIONCODE,case when e.B2='1' then '是' else '否' end B2,
                           b.ACCESSION_NO,
                           case when b.fetch_date is null then b.ACCESSION_DATE
                           else b.fetch_date
                           end fetch_date,b.ADM_ID_INDEX
                            ,dbo.GetMainReqNO(c.REQ_PROCNO ) Main_REQ_PROCNO
						   ,(select top 1 AUDITINGSTARTTIME from R_WORKTINGTIME w where w.REQ_PROCNO=c.REQ_PROCNO) AUDITINGSTARTTIME
						   ,e.InternDOCTOR01,e.InternDOCTOR02,e.InternDOCTOR03,
						   case when   c.IsMultiple='1' then '是'
						   else '否' end Multiple,c.IsMultiple,  c.QueueName QueueText,b.PLA_ORD_NUM OPLA_ORD_NUM,a.HISID DHISID,case when c.ReadDiagnosticFilm = '1' then '是' else '否' end ReadDiagnosticFilmText,e.FollowUp_Flag
						   ,case when e.FollowUp_Flag = '1' then '是' else '否' end FollowUp_FlagText,e.QuaImage,e.QuaReport,b.MOrder,
						   p.SORTFLAG
FROM      dbo.R_PATIENT AS a INNER JOIN
                dbo.IMG_SERV_REG AS b ON a.PATIENTNO = b.PATIENTNO INNER JOIN
                dbo.REQ_PROC AS c ON b.SERV_REGNO = c.SERV_REGNO INNER JOIN
                dbo.REQ_PROC_DETAIL AS d ON c.REQ_PROCNO = d.REQ_PROCNO INNER JOIN
                dbo.GENERAL_REPORT AS e ON c.REQ_PROCNO = e.REQ_PROCNO   
				join DICT_PUBLICINFO p on  b.ADM_ID_ISS  =p.CODENAME    and p.PARENTCODE='999009'               
WHERE   (c.DELETE_SIGN = '1')


2022年12月15日 | 发布:强强 | 分类:PACS系统安装 | 评论:0

windows剪切板常见API函数

windows剪切板常见API函数


(一) ChangeClipboardChain  
将剪贴的连接从一个句柄转到下一个句柄。

BOOL ChangeClipboardChain( 
 HWND hWndRemove, // handle to window to remove 
 HWND hWndNewNext // handle to next window 
 );

(1)hWndRemove表 示第一个窗口的句柄(断开)。
(2)hWndNewNext表示第二个窗口的句柄(连接)。
注意,在使用之前应该使用 SetClipboardViewer事先进行窗口句柄的连接。

2022年12月15日 | 发布:强强 | 分类:日常 | 评论:0

怎么查看Git项目的远程仓库

Git项目的远程仓库地址查看方法


一、到项目文件夹下

方法一、【shift+右击】->【在终端中打开】

方法二、【开始】->【运行】->输入cmd->cd到项目地址


2022年12月7日 | 发布:强强 | 分类:日常 | 评论:0

WPF DataGrid 多绑定设置

WPF  DataGrid 多绑定设置


在WPF中 DataGrid 转换使用多绑定参数转换的使用方法:

1.集成 IMultiValueConverter 接口,实现一个转换器:

2022年11月28日 | 发布:强强 | 分类:ASP.NET | 评论:0