如何将 Insert/Update 患者输入 DICOM WorkList RIS?

How to Insert/Update a Patient into a DICOM WorkList RIS?

我知道如何在 DICOM RIS 中查找患者,但如何 insert/update 将患者放入其中? 我使用 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;
    }

DICOM 模态工作列表不提供插入和更新数据的功能。它纯粹是一个查询工作列表中已经存在的数据的服务。

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

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

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

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