如何将患者插入/更新到DICOM WorkList RIS?

时间:2015-11-01 12:07:18

标签: dicom fo-dicom

我知道如何在DICOM RIS中找到患者,但如何将患者插入/更新? 我使用fo-dicom,这是我找到病人的代码。 如何插入或更新患者信息? 非常感谢你!

    public void FindFinished(DicomCFindRequest rq, DicomCFindResponse rp)
    {
        if (rp.Dataset != null)
        {
            string strNewMessage = "";
            string strSep = "";

            strNewMessage += strSep + "PatientID: " + rp.Dataset.Get<string>(DicomTag.PatientID);
            strSep = "     ";
            strNewMessage += strSep + "PatientName: " + rp.Dataset.Get<string>(DicomTag.PatientName);
            strSep = "     ";
            strNewMessage += strSep + "PatientAge: " + rp.Dataset.Get<int>(DicomTag.PatientAge);
            strSep = "     ";

            strResult += strSepRisultato + strNewMessage;
            strSepResult = "\r\n";
        }
    }

    private void btnFetch_Click(object sender, EventArgs e)
    {
        DicomCFindRequest cfind = DicomCFindRequest.CreatePatientQuery(patientId: "1234");
        cfind.OnResponseReceived = FindFinished;

        strResult = "";
        strSepResult = "";

        DicomClient client = new DicomClient();

        client.AddRequest(cfind);

        client.Send(txtHost.Text, Convert.ToInt16(txtPort.Text), ckTLS.Checked, txtFromAETitle.Text, txtToAETitle.Text);

        txtResponse.Text = strRisultato;
    }

2 个答案:

答案 0 :(得分:2)

DICOM模态工作清单不提供插入和更新数据的功能。它纯粹是一种用于查询工作清单中已存在的数据的服务。

工作清单通常通过HL7协议发送相关的订购消息来填充,这是一种完全不同的医疗保健信息交换标准。因此,完整的工作列表服务器通常具有用于从RIS或HIS接收信息的HL7接口和用于查询该信息的DICOM模式的DICOM接口。

这个难题的第三个方面是DICOM MPPS(模态执行过程步骤)服务,它允许DICOM模式将信息传递回工作列表服务器,但这只是关于从中接收的订单状态的信息。工作清单。他们可能会将订单状态更新为已启动,已完成,已取消,并提供一些其他信息,例如拍摄的图像数量等。

答案 1 :(得分:1)

统一工作清单和程序2009年添加到DICOM标准的步骤(DICOM supplement 96)具有请求SCP通过SCU添加工作清单的机制。在这种情况下,工作清单是Unified Procedure Step(UPS)实例的列表。您可以使用UPS Push SOP Class作为SCU(N-CREATE命令)来指示SCP创建新的UPS实例(SCP工作清单中的新工作项)。

请注意,SCP可以是RIS等工作清单管理器,用于维护其他系统的工作清单,也可以是管理内部工作清单的执行系统。有关详细信息,请参阅PS3.4部分CC.2.5。