用C#通过HL7 message创建 modality work list

本文介绍如何使用C#通过HL7消息在DCM4CHEE上创建Modality Work List。示例代码中需注意OBR中的Filler Field 1(SPS)必须唯一,以避免主键重复错误。可以使用HL7 Analyst修改ORM消息,并借助dvtk modality emulator或DCM4CHEE web界面检查工作列表的创建情况。
摘要由CSDN通过智能技术生成

DCM4CHEE是支持通过HL7创建modality work list的。


下面是客户端通过HL7创建modality work list的样例代码,使用的DCM4CHEE做RIS.


 public void CreateMWL()
        {
            string Message = @"MSH|^~\&|MESA_OF|XYZ_RADIOLOGY|MESA_IM|XYZ_IMAGE_MANAGER|||ORM^O01|101106|P|2.3.1||||||||
PID|||Tom^^^ADT1||WHITE^CHARLES||19980704|M||AI|JinQiao Office Park^^Shanghai^SH^63130|||||||20981701||||||||||||
PV1||E||||||5101^Yang^Zhiyong^P^^DR|||||||||||V1002^^^ADT1|||||||||||||||||||||||||200004210950||||||||
ORC|NW|A101Z^MESA_ORDPLC|B101Z^MESA_ORDFIL||SC||1^once^^^^S||200004210950|^ROSEWOOD^RANDOLPH||7101^ESTRADA^JAIME^P^^DR||3145551212|200004210950||922229-10^IHE-RAD^IHE-CODE-231||
OBR|1|A101Z^MESA_ORDPLC|B101Z^MESA_ORDFIL|P1^Procedure 1^ERL_MESA^X1_A1^SP Action Item X1_A1^DSS_MESA|||||||||xxx||Radiology^^^^R|7101^ESTRADA^JAIME^P^^DR||SHF5000|RP1000|SPS201||||MR|||1^once^^^^S|||WALK|||||||||||A||
ZDS|1.113654.3.13.1000^100^A
将bin文件转换为DICOM格式需要使用DICOM库或者工具。以下是使用fo-dicom库实现的示例代码: ```csharp using System; using System.IO; using Dicom; using Dicom.Imaging; class Program { static void Main() { // 读取bin文件 byte[] bytes = File.ReadAllBytes("path/to/binfile.bin"); // 创建DICOM数据集 DicomDataset dataset = new DicomDataset(); dataset.Add(DicomTag.SOPClassUID, DicomUID.SecondaryCaptureImageStorage); dataset.Add(DicomTag.SOPInstanceUID, DicomUID.Generate()); dataset.Add(DicomTag.StudyInstanceUID, DicomUID.Generate()); dataset.Add(DicomTag.SeriesInstanceUID, DicomUID.Generate()); dataset.Add(DicomTag.PatientID, "PatientID"); dataset.Add(DicomTag.PatientName, "PatientName"); dataset.Add(DicomTag.PatientBirthDate, DateTime.Now); dataset.Add(DicomTag.PatientSex, "O"); dataset.Add(DicomTag.Modality, "OT"); dataset.Add(DicomTag.PixelSpacing, new[] { 1.0, 1.0 }); dataset.Add(DicomTag.Rows, 512); dataset.Add(DicomTag.Columns, 512); dataset.Add(DicomTag.BitsAllocated, (ushort)16); dataset.Add(DicomTag.BitsStored, (ushort)16); dataset.Add(DicomTag.HighBit, (ushort)15); dataset.Add(DicomTag.PixelRepresentation, (ushort)0); dataset.Add(DicomTag.WindowCenter, "127"); dataset.Add(DicomTag.WindowWidth, "255"); dataset.Add(DicomTag.LossyImageCompression, true); dataset.Add(DicomTag.LossyImageCompressionMethod, "JPEG"); // 添加像素数据 DicomPixelData pixelData = DicomPixelData.Create(dataset, true); pixelData.AddFrame(bytes); // 保存为DICOM文件 DicomFile dicomFile = new DicomFile(dataset); dicomFile.Save("path/to/dicomfile.dcm"); } } ``` 这段代码将读取bin文件中的二进制数据,并将其保存为DICOM文件。需要根据实际情况修改DICOM数据集中的标签值。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值