Search code examples
dicomfo-dicom

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


I know how to find a patient in a DICOM RIS but how to insert/update a patient into it? I use fo-dicom and this is my code for find a Patient. How can I do to insert or update a Patient information? Thank you very mutch!!!

    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;
    }

Solution

  • DICOM Modality Worklist does not provide functionality for inserting and updating data. It is purely a service for querying the data already existing in the worklist.

    The worklist is usually populated by sending relevant ordering messages via HL7 protocol, which is an entirely different healthcare information exchange standard. A complete worklist server therefore usually has both an HL7 interface for receiving information from a RIS or HIS and a DICOM interface for the DICOM modalities to query that information.

    A third aspect of this puzzle is the DICOM MPPS (Modality Performed Procedure Step) service, which allows the DICOM modalities to communicate information back to the worklist server, but this is only information about the status of an order that was received from the worklist. They might update the order status as Started, Completed, Cancelled and provide some additional information such as how many images were taken and so on.