仲間のオーク ディコムでの c-find 操作について質問があります。私は c-find 操作を実装するサービスを開発し、見つかった患者を超音波装置に送り返す必要があります。現在、GE の 4d ビュー「エミュレーター」でテストしています。
このフォーラムで見つけたようなコードを実装し、リクエストを受け取りました。データセットを送り返しますが、超音波装置に乗るたびにアイテムが見つからないというメッセージが表示されます。L
どなたか助けていただけませんか?
前もって感謝します
アンドレアス
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