简体   繁体   English

院士Dicom C-查找响应

[英]Fellow oak dicom C-Find response

i have a question regarding the c-find Operation in the fellow oak dicom. 我有一个关于在同一个橡树dicom上进行c查找操作的问题。 I have developed a Service wich implements a c-find operation and should send the found patients back tot he ultrasound machine. 我已经开发了一种服务,该服务可以执行c查找操作,并且应该将找到的患者送回超声仪。 I'm testing currently with the 4d view “emulator” from GE. 我目前正在使用GE的4d视图“模拟器”进行测试。

I've implemented the code like I found on this forum and its receiving the request. 我已经实现了该论坛中发现的代码,并接收了请求。 I send back a dataset but everytime I get on the ultrasound machine the message that no items could be found. 我发回一个数据集,但是每次我在超声仪上都收到找不到任何项目的消息。 L 大号

May anyone of you can help me? 你们中有人可以帮助我吗?

Thanks in advance 提前致谢

Andreas 安德烈亚斯

    Public Function OnCFindRequest(request As Global.Dicom.Network.DicomCFindRequest) As IEnumerable(Of Global.Dicom.Network.DicomCFindResponse) Implements Global.Dicom.Network.IDicomCFindProvider.OnCFindRequest
        Logging.Trace(CurrentLogger, "C-Find request")
        Dim familyname As String = ""
        Dim patientId As Integer?

        If request.Dataset.Contains(PatientNumberTag) Then
            Dim dicomLongStringItem As DicomLongString = request.Dataset.Get(Of DicomLongString)(PatientNumberTag)
            If IsNumeric(dicomLongStringItem.Value) Then patientId = dicomLongStringItem.Value
        End If
        If request.Dataset.Contains(PatientNameTag) Then
            Dim dicomPersonNameItem As DicomPersonName = request.Dataset.Get(Of DicomPersonName)(PatientNameTag)
            If Not String.IsNullOrEmpty(dicomPersonNameItem.Last) AndAlso dicomPersonNameItem.Last <> "*" Then familyname = dicomPersonNameItem.Last
        End If


        Dim responses As New List(Of DicomCFindResponse)()
        If request.Level = DicomQueryRetrieveLevel.Patient Then
            For Each result As DicomDataset In getworklistresults(request)
                Dim response As New DicomCFindResponse(request, DicomStatus.Pending)
                response.Dataset = result
                responses.Add(response)

            Next
        End If

        responses.Add(New DicomCFindResponse(request, DicomStatus.Success))

        Return responses
    End Function

    Private Function getworklistresults(request As Global.Dicom.Network.DicomCFindRequest) As List(Of DicomDataset)
        Dim dicomdatasets As New DicomDataset()

        dicomdatasets.Add(DicomTag.SpecificCharacterSet, "ISO_IR 100")
        dicomdatasets.Add(DicomTag.AccessionNumber, "")
        dicomdatasets.Add(DicomTag.ReferringPhysicianName, "")

        Dim sequenceDatase0 = New DicomDataset
        Dim sq0 As New DicomSequence(DicomTag.ReferencedStudySequence, sequenceDatase0)
        dicomdatasets.Add(DicomTag.ReferencedStudySequence, sq0)

        Dim sequenceDataset1 = New DicomDataset
        Dim sq1 As New DicomSequence(DicomTag.ReferencedPatientSequence, sequenceDataset1)
        dicomdatasets.Add(DicomTag.ReferencedPatientSequence, sq1)

        dicomdatasets.Add(New DicomPersonName(DicomTag.PatientName, DicomEncoding.GetEncoding("ISO 2022 IR 100"), "name^surname"))
        dicomdatasets.Add(DicomTag.PatientID, "12345")
        dicomdatasets.Add(DicomTag.IssuerOfPatientID, "")
        dicomdatasets.Add(DicomTag.PatientBirthDate, "")

        dicomdatasets.Add(DicomTag.PatientSex, "F")
        dicomdatasets.Add(DicomTag.PatientSize, "170")
        dicomdatasets.Add(DicomTag.PatientWeight, "170")
        dicomdatasets.Add(DicomTag.LastMenstrualDate, "")

        dicomdatasets.Add(DicomTag.StudyInstanceUID, "")
        dicomdatasets.Add(DicomTag.RequestingPhysician, "")
        dicomdatasets.Add(DicomTag.RequestedProcedureDescription, "")

        Dim sequenceDataset2 = New DicomDataset
        Dim sq2 As New DicomSequence(DicomTag.RequestedProcedureCodeSequence, sequenceDataset2)

        dicomdatasets.Add(DicomTag.RequestedProcedureCodeSequence, sq2)
        dicomdatasets.Add(DicomTag.AdmissionID, "")

        Dim sequenceDataset3 = New DicomDataset
        Dim sq3 As New DicomSequence(DicomTag.ScheduledProcedureStepSequence, sequenceDataset3)
        dicomdatasets.Add(DicomTag.ScheduledProcedureStepSequence, sq3)

        dicomdatasets.Add(DicomTag.RequestedProcedureID, "")
        dicomdatasets.Add(DicomTag.ReasonForTheRequestedProcedure, "")

        Dim a As New List(Of DicomDataset)
        a.Add(dicomdatasets)
        Return a
    End Function

You are missing many of the required return key attributes in your C-FIND Response. 您在C-FIND响应中缺少许多必需的返回键属性。 Please, review the "Table K.6-1 - Attributes for the Modality Worklist Information Model" in PS 3.4 of the DICOM standard . 请查看DICOM标准 PS 3.4中的 “表K.6-1-模态工作清单信息模型的属性”。 If the value in the “Return Key Type” column is “1”, you must include the attribute with a valid value in your C-Find response. 如果“返回键类型”列中的值为“ 1”,则必须在C查找响应中包含具有有效值的属性。 As for example, Scheduled Station AE Title (0040,0001), Scheduled Procedure Step Start Date (0040,0002), Scheduled Procedure Step Start Time (0040,0003), Modality (0008,0060) etc are type 1 return key under Scheduled Procedure Step Sequence (0040,0100). 例如,计划的工作站AE标题(0040,0001),计划的过程步骤开始日期(0040,0002),计划的过程步骤开始时间(0040,0003),模式(0008,0060)等都是计划的类型1返回键过程步骤序列(0040,0100)。

If the value for “Return Key Type” column is “2”, you must include the attribute in C-Find response but it can be empty (if not know). 如果“返回键类型”列的值为“ 2”,则必须在C-Find响应中包括该属性,但该属性可以为空(如果不知道)。 Example of such attributes is Scheduled Performing Physician's Name, Scheduled Station Name, and Scheduled Procedure Step Location etc. 此类属性的示例为“计划执行医师姓名”,“计划站名称”和“计划程序步骤位置”等。

The value “1C” is like type “1” when condition is satisfied. 满足条件时,值“ 1C”类似于类型“ 1”。 Such example is Scheduled Procedure Step Description and Scheduled Protocol Code Sequence. 这样的例子是调度过程步骤描述和调度协议代码序列。 Also, “2C” is type “2” conditional. 另外,“ 2C”是有条件的类型“ 2”。 Type “3” is optional and you do not need to include them in your response, if the attribute is not in the request dataset. 类型“ 3”是可选的,并且如果属性不在请求数据集中,则无需在响应中包括它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM