3

我知道如何在 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;
    }
4

2 回答 2

3

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

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

这个难题的第三个方面是 DICOM MPPS(模态执行过程步骤)服务,它允许 DICOM 模态将信息传回工作列表服务器,但这只是关于从工作列表接收到的订单状态的信息。他们可能会将订单状态更新为已开始、已完成、已取消,并提供一些附加信息,例如拍摄了多少张图像等。

于 2015-11-03T11:19:08.173 回答
1

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

请注意,SCP 可以是一个工作列表管理器,例如为其他系统维护工作列表的 RIS,也可以是管理内部工作列表的执行系统本身。有关详细信息,请参阅 PS3.4 部分 CC.2.5。

于 2015-11-11T17:40:54.963 回答