示例#1
0
        private static void AddDefaultReturnKeys(DvtkData.Dimse.DataSet dataset)
        {
            // use the Worklist Information Entities to generate the default Return Key attribute set
            PatientInformationEntity patientIe = new PatientInformationEntity();

            foreach (TagType tagType in patientIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }
            VisitInformationEntity visitIe = new VisitInformationEntity();

            foreach (TagType tagType in visitIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }
            ImagingServiceRequestInformationEntity imagingServiceRequestIe = new ImagingServiceRequestInformationEntity();

            foreach (TagType tagType in imagingServiceRequestIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }
            RequestedProcedureInformationEntity requestedProcedureIe = new RequestedProcedureInformationEntity();

            foreach (TagType tagType in requestedProcedureIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }

            SequenceItem item = new SequenceItem();
            ScheduledProcedureStepInformationEntity scheduledProcedureStepIe = new ScheduledProcedureStepInformationEntity();

            foreach (TagType tagType in scheduledProcedureStepIe.TagTypeList)
            {
                if (tagType.Tag != Tag.SPECIFIC_CHARACTER_SET)
                {
                    item.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
                }
            }
            dataset.AddAttribute(Tag.SCHEDULED_PROCEDURE_STEP_SEQUENCE.GroupNumber,
                                 Tag.SCHEDULED_PROCEDURE_STEP_SEQUENCE.ElementNumber, VR.SQ, item);
        }
示例#2
0
        private static void UpdateTagParentSequences(TagValueCollection tags)
        {
            ScheduledProcedureStepInformationEntity scheduledProcedureStepIe = new ScheduledProcedureStepInformationEntity();

            foreach (DicomTagValue tag in tags)
            {
                foreach (TagType tagType in scheduledProcedureStepIe.TagTypeList)
                {
                    // special check to be made on the Specific Character Set tag
                    // - this tag is added to the scheduledProcedureStepIe.TagTypeList purely to
                    // be able to return the correct values in the query response - we should not set
                    // the ParentSequenceTag for this attribute
                    // - this is a workaround - but please do not change it!
                    if ((tag.Tag == tagType.Tag) &&
                        (tag.Tag != Tag.SPECIFIC_CHARACTER_SET))
                    {
                        // set the parent sequence in the tag
                        tag.ParentSequenceTag = Tag.SCHEDULED_PROCEDURE_STEP_SEQUENCE;
                        break;
                    }
                }
            }
        }
        /// <summary>
        /// Add the given Dataset to the Information Model. The data is normalised into the Information Model.
        /// </summary>
        /// <param name="dataset">Dataset to add to Informatio Model.</param>
        /// <param name="storeDataset">Boolean indicating whether or not the dataset should also be stored to file for possible retrieval.</param>
        public void AddToInformationModel(DataSet dataset, bool storeDataset)
        {
            // PATIENT level
            PatientInformationEntity patientInformationEntity = null;

            // check if the patient IE is already in the patientRootList
            foreach (PatientInformationEntity lPatientInformationEntity in Root)
            {
                if (lPatientInformationEntity.IsFoundIn(dataset))
                {
                    patientInformationEntity = lPatientInformationEntity;
                    break;
                }
            }

            // patient IE is not already in the patientRootList
            if (patientInformationEntity == null)
            {
                // create a new patient IE from the dataset and add to the patientRootList
                patientInformationEntity = new PatientInformationEntity();
                patientInformationEntity.CopyFrom(dataset);
                //Root.Add(patientInformationEntity);

                // Modified by RB 20090128 - when handling an order scheduled event from an actor
                // we want to insert the order as the first entry in the information model so that
                // it is returned as the first entry in the worklist query
                Root.Insert(0, patientInformationEntity);
            }

            // VISIT level
            VisitInformationEntity visitInformationEntity = null;

            // check if the visit IE is already in the patient IE children
            foreach (VisitInformationEntity lVisitInformationEntity in patientInformationEntity.Children)
            {
                if (lVisitInformationEntity.IsFoundIn(dataset))
                {
                    visitInformationEntity = lVisitInformationEntity;
                    break;
                }
            }

            // visit IE is not already in the patient IE children
            if (visitInformationEntity == null)
            {
                // create a new visit IE from the dataset and add to the patient IE children
                visitInformationEntity = new VisitInformationEntity();
                visitInformationEntity.CopyFrom(dataset);
                patientInformationEntity.AddChild(visitInformationEntity);
            }

            // IMAGING SERVICE REQUEST level
            ImagingServiceRequestInformationEntity imagingServiceRequestInformationEntity = null;

            // check if the imaging service request IE is already in the visit IE children
            foreach (ImagingServiceRequestInformationEntity lImagingServiceRequestInformationEntity in visitInformationEntity.Children)
            {
                if (lImagingServiceRequestInformationEntity.IsFoundIn(dataset))
                {
                    imagingServiceRequestInformationEntity = lImagingServiceRequestInformationEntity;
                    break;
                }
            }

            // imaging service request IE is not already in the visit IE children
            if (imagingServiceRequestInformationEntity == null)
            {
                // create a new imaging service request IE from the dataset and add to the visit IE children
                imagingServiceRequestInformationEntity = new ImagingServiceRequestInformationEntity();
                imagingServiceRequestInformationEntity.CopyFrom(dataset);
                visitInformationEntity.AddChild(imagingServiceRequestInformationEntity);
            }

            // REQUESTED PROCEDURE level
            RequestedProcedureInformationEntity requestedProcedureInformationEntity = null;

            // check if the requested procedure IE is already in the imaging service request IE children
            foreach (RequestedProcedureInformationEntity lRequestedProcedureInformationEntity in imagingServiceRequestInformationEntity.Children)
            {
                if (lRequestedProcedureInformationEntity.IsFoundIn(dataset))
                {
                    requestedProcedureInformationEntity = lRequestedProcedureInformationEntity;
                    break;
                }
            }

            // requested procedure IE is not already in the imaging service request IE children
            if (requestedProcedureInformationEntity == null)
            {
                // create a new requested procedure IE from the dataset and add to the imaging service request IE children
                requestedProcedureInformationEntity = new RequestedProcedureInformationEntity();
                requestedProcedureInformationEntity.CopyFrom(dataset);
                imagingServiceRequestInformationEntity.AddChild(requestedProcedureInformationEntity);
            }

            // SCHEDULED PROCEDURE STEP level
            ScheduledProcedureStepInformationEntity scheduledProcedureStepInformationEntity = null;

            // check if the scheduled procedure step IE is already in the requested procedure IE children
            foreach (ScheduledProcedureStepInformationEntity lScheduledProcedureStepInformationEntity in requestedProcedureInformationEntity.Children)
            {
                if (lScheduledProcedureStepInformationEntity.IsFoundIn(dataset))
                {
                    scheduledProcedureStepInformationEntity = lScheduledProcedureStepInformationEntity;
                    break;
                }
            }

            // scheduled procedure step IE is not already in the requested procedure IE children
            if (scheduledProcedureStepInformationEntity == null)
            {
                // create a new scheduled procedure step IE from the dataset and add to the requested procedure IE children
                scheduledProcedureStepInformationEntity = new ScheduledProcedureStepInformationEntity();
                scheduledProcedureStepInformationEntity.CopyFrom(dataset);
                requestedProcedureInformationEntity.AddChild(scheduledProcedureStepInformationEntity);
            }
        }
        /// <summary>
        /// Add the given Dataset to the Information Model. The data is normalised into the Information Model.
        /// </summary>
        /// <param name="dataset">Dataset to add to Informatio Model.</param>
        public override void AddToInformationModel(DataSet dataset)
        {
            // PATIENT level
            PatientInformationEntity patientInformationEntity = null;

            // check if the patient IE is already in the patientRootList
            foreach (PatientInformationEntity lPatientInformationEntity in Root)
            {
                if (lPatientInformationEntity.IsFoundIn(dataset))
                {
                    patientInformationEntity = lPatientInformationEntity;
                    break;
                }
            }

            // patient IE is not already in the patientRootList
            if (patientInformationEntity == null)
            {
                // create a new patient IE from the dataset and add to the patientRootList
                patientInformationEntity = new PatientInformationEntity();
                patientInformationEntity.CopyFrom(dataset);
                Root.Add(patientInformationEntity);
            }

            // VISIT level
            VisitInformationEntity visitInformationEntity = null;

            // check if the visit IE is already in the patient IE children
            foreach (VisitInformationEntity lVisitInformationEntity in patientInformationEntity.Children)
            {
                if (lVisitInformationEntity.IsFoundIn(dataset))
                {
                    visitInformationEntity = lVisitInformationEntity;
                    break;
                }
            }

            // visit IE is not already in the patient IE children
            if (visitInformationEntity == null)
            {
                // create a new visit IE from the dataset and add to the patient IE children
                visitInformationEntity = new VisitInformationEntity();
                visitInformationEntity.CopyFrom(dataset);
                patientInformationEntity.AddChild(visitInformationEntity);
            }

            // IMAGING SERVICE REQUEST level
            ImagingServiceRequestInformationEntity imagingServiceRequestInformationEntity = null;

            // check if the imaging service request IE is already in the visit IE children
            foreach (ImagingServiceRequestInformationEntity lImagingServiceRequestInformationEntity in visitInformationEntity.Children)
            {
                if (lImagingServiceRequestInformationEntity.IsFoundIn(dataset))
                {
                    imagingServiceRequestInformationEntity = lImagingServiceRequestInformationEntity;
                    break;
                }
            }

            // imaging service request IE is not already in the visit IE children
            if (imagingServiceRequestInformationEntity == null)
            {
                // create a new imaging service request IE from the dataset and add to the visit IE children
                imagingServiceRequestInformationEntity = new ImagingServiceRequestInformationEntity();
                imagingServiceRequestInformationEntity.CopyFrom(dataset);
                visitInformationEntity.AddChild(imagingServiceRequestInformationEntity);
            }

            // REQUESTED PROCEDURE level
            RequestedProcedureInformationEntity requestedProcedureInformationEntity = null;

            // check if the requested procedure IE is already in the imaging service request IE children
            foreach (RequestedProcedureInformationEntity lRequestedProcedureInformationEntity in imagingServiceRequestInformationEntity.Children)
            {
                if (lRequestedProcedureInformationEntity.IsFoundIn(dataset))
                {
                    requestedProcedureInformationEntity = lRequestedProcedureInformationEntity;
                    break;
                }
            }

            // requested procedure IE is not already in the imaging service request IE children
            if (requestedProcedureInformationEntity == null)
            {
                // create a new requested procedure IE from the dataset and add to the imaging service request IE children
                requestedProcedureInformationEntity = new RequestedProcedureInformationEntity();
                requestedProcedureInformationEntity.CopyFrom(dataset);
                imagingServiceRequestInformationEntity.AddChild(requestedProcedureInformationEntity);
            }

            // SCHEDULED PROCEDURE STEP level
            ScheduledProcedureStepInformationEntity scheduledProcedureStepInformationEntity = null;

            // check if the scheduled procedure step IE is already in the requested procedure IE children
            foreach (ScheduledProcedureStepInformationEntity lScheduledProcedureStepInformationEntity in requestedProcedureInformationEntity.Children)
            {
                if (lScheduledProcedureStepInformationEntity.IsFoundIn(dataset))
                {
                    scheduledProcedureStepInformationEntity = lScheduledProcedureStepInformationEntity;
                    break;
                }
            }

            // scheduled procedure step IE is not already in the requested procedure IE children
            if (scheduledProcedureStepInformationEntity == null)
            {
                // create a new scheduled procedure step IE from the dataset and add to the requested procedure IE children
                scheduledProcedureStepInformationEntity = new ScheduledProcedureStepInformationEntity();
                scheduledProcedureStepInformationEntity.CopyFrom(dataset);
                requestedProcedureInformationEntity.AddChild(scheduledProcedureStepInformationEntity);
            }
        }
示例#5
0
 private static void UpdateTagParentSequences(TagValueCollection tags)
 {
     ScheduledProcedureStepInformationEntity scheduledProcedureStepIe = new ScheduledProcedureStepInformationEntity();
     foreach(DicomTagValue tag in tags)
     {
         foreach (TagType tagType in scheduledProcedureStepIe.TagTypeList)
         {
             // special check to be made on the Specific Character Set tag
             // - this tag is added to the scheduledProcedureStepIe.TagTypeList purely to
             // be able to return the correct values in the query response - we should not set
             // the ParentSequenceTag for this attribute
             // - this is a workaround - but please do not change it!
             if ((tag.Tag == tagType.Tag) &&
                 (tag.Tag != Tag.SPECIFIC_CHARACTER_SET))
             {
                 // set the parent sequence in the tag
                 tag.ParentSequenceTag = Tag.SCHEDULED_PROCEDURE_STEP_SEQUENCE;
                 break;
             }
         }
     }
 }
示例#6
0
        private static void AddDefaultReturnKeys(DvtkData.Dimse.DataSet dataset)
        {
            // use the Worklist Information Entities to generate the default Return Key attribute set
            PatientInformationEntity patientIe = new PatientInformationEntity();
            foreach(TagType tagType in patientIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }
            VisitInformationEntity visitIe = new VisitInformationEntity();
            foreach(TagType tagType in visitIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }
            ImagingServiceRequestInformationEntity imagingServiceRequestIe = new ImagingServiceRequestInformationEntity();
            foreach(TagType tagType in imagingServiceRequestIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }
            RequestedProcedureInformationEntity requestedProcedureIe = new RequestedProcedureInformationEntity();
            foreach(TagType tagType in requestedProcedureIe.TagTypeList)
            {
                dataset.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
            }

            SequenceItem item = new SequenceItem();
            ScheduledProcedureStepInformationEntity scheduledProcedureStepIe = new ScheduledProcedureStepInformationEntity();
            foreach(TagType tagType in scheduledProcedureStepIe.TagTypeList)
            {
                if (tagType.Tag != Tag.SPECIFIC_CHARACTER_SET)
                {
                    item.AddAttribute(tagType.Tag.GroupNumber, tagType.Tag.ElementNumber, tagType.Vr);
                }
            }
            dataset.AddAttribute(Tag.SCHEDULED_PROCEDURE_STEP_SEQUENCE.GroupNumber,
                Tag.SCHEDULED_PROCEDURE_STEP_SEQUENCE.ElementNumber, VR.SQ, item);
        }
        /// <summary>
        /// Add the given Dataset to the Information Model. The data is normalised into the Information Model.
        /// </summary>
        /// <param name="dataset">Dataset to add to Informatio Model.</param>
        public override void AddToInformationModel(DataSet dataset)
        {
            // PATIENT level
            PatientInformationEntity patientInformationEntity = null;

            // check if the patient IE is already in the patientRootList
            foreach (PatientInformationEntity lPatientInformationEntity in Root)
            {
                if (lPatientInformationEntity.IsFoundIn(dataset))
                {
                    patientInformationEntity = lPatientInformationEntity;
                    break;
                }
            }

            // patient IE is not already in the patientRootList
            if (patientInformationEntity == null)
            {
                // create a new patient IE from the dataset and add to the patientRootList
                patientInformationEntity = new PatientInformationEntity();
                patientInformationEntity.CopyFrom(dataset);
                Root.Add(patientInformationEntity);
            }

            // VISIT level
            VisitInformationEntity visitInformationEntity = null;

            // check if the visit IE is already in the patient IE children
            foreach (VisitInformationEntity lVisitInformationEntity in patientInformationEntity.Children)
            {
                if (lVisitInformationEntity.IsFoundIn(dataset))
                {
                    visitInformationEntity = lVisitInformationEntity;
                    break;
                }
            }

            // visit IE is not already in the patient IE children
            if (visitInformationEntity == null)
            {
                // create a new visit IE from the dataset and add to the patient IE children
                visitInformationEntity = new VisitInformationEntity();
                visitInformationEntity.CopyFrom(dataset);
                patientInformationEntity.AddChild(visitInformationEntity);
            }

            // IMAGING SERVICE REQUEST level
            ImagingServiceRequestInformationEntity imagingServiceRequestInformationEntity = null;

            // check if the imaging service request IE is already in the visit IE children
            foreach (ImagingServiceRequestInformationEntity lImagingServiceRequestInformationEntity in visitInformationEntity.Children)
            {
                if (lImagingServiceRequestInformationEntity.IsFoundIn(dataset))
                {
                    imagingServiceRequestInformationEntity = lImagingServiceRequestInformationEntity;
                    break;
                }
            }

            // imaging service request IE is not already in the visit IE children
            if (imagingServiceRequestInformationEntity == null)
            {
                // create a new imaging service request IE from the dataset and add to the visit IE children
                imagingServiceRequestInformationEntity = new ImagingServiceRequestInformationEntity();
                imagingServiceRequestInformationEntity.CopyFrom(dataset);
                visitInformationEntity.AddChild(imagingServiceRequestInformationEntity);
            }

            // REQUESTED PROCEDURE level
            RequestedProcedureInformationEntity requestedProcedureInformationEntity = null;

            // check if the requested procedure IE is already in the imaging service request IE children
            foreach (RequestedProcedureInformationEntity lRequestedProcedureInformationEntity in imagingServiceRequestInformationEntity.Children)
            {
                if (lRequestedProcedureInformationEntity.IsFoundIn(dataset))
                {
                    requestedProcedureInformationEntity = lRequestedProcedureInformationEntity;
                    break;
                }
            }

            // requested procedure IE is not already in the imaging service request IE children
            if (requestedProcedureInformationEntity == null)
            {
                // create a new requested procedure IE from the dataset and add to the imaging service request IE children
                requestedProcedureInformationEntity = new RequestedProcedureInformationEntity();
                requestedProcedureInformationEntity.CopyFrom(dataset);
                imagingServiceRequestInformationEntity.AddChild(requestedProcedureInformationEntity);
            }

            // SCHEDULED PROCEDURE STEP level
            ScheduledProcedureStepInformationEntity scheduledProcedureStepInformationEntity = null;

            // check if the scheduled procedure step IE is already in the requested procedure IE children
            foreach (ScheduledProcedureStepInformationEntity lScheduledProcedureStepInformationEntity in requestedProcedureInformationEntity.Children)
            {
                if (lScheduledProcedureStepInformationEntity.IsFoundIn(dataset))
                {
                    scheduledProcedureStepInformationEntity = lScheduledProcedureStepInformationEntity;
                    break;
                }
            }

            // scheduled procedure step IE is not already in the requested procedure IE children
            if (scheduledProcedureStepInformationEntity == null)
            {
                // create a new scheduled procedure step IE from the dataset and add to the requested procedure IE children
                scheduledProcedureStepInformationEntity = new ScheduledProcedureStepInformationEntity();
                scheduledProcedureStepInformationEntity.CopyFrom(dataset);
                requestedProcedureInformationEntity.AddChild(scheduledProcedureStepInformationEntity);
            }
        }
        /// <summary>
        /// Add the given Dataset to the Information Model. The data is normalised into the Information Model.
        /// </summary>
        /// <param name="dataset">Dataset to add to Informatio Model.</param>
        /// <param name="storeDataset">Boolean indicating whether or not the dataset should also be stored to file for possible retrieval.</param>
        public void AddToInformationModel(DataSet dataset, bool storeDataset)
        {
            // PATIENT level
            PatientInformationEntity patientInformationEntity = null;

            // check if the patient IE is already in the patientRootList
            foreach (PatientInformationEntity lPatientInformationEntity in Root)
            {
                if (lPatientInformationEntity.IsFoundIn(dataset))
                {
                    patientInformationEntity = lPatientInformationEntity;
                    break;
                }
            }

            // patient IE is not already in the patientRootList
            if (patientInformationEntity == null)
            {
                // create a new patient IE from the dataset and add to the patientRootList
                patientInformationEntity = new PatientInformationEntity();
                patientInformationEntity.CopyFrom(dataset);
                //Root.Add(patientInformationEntity);

                // Modified by RB 20090128 - when handling an order scheduled event from an actor
                // we want to insert the order as the first entry in the information model so that
                // it is returned as the first entry in the worklist query
                Root.Insert(0, patientInformationEntity);
            }

            // VISIT level
            VisitInformationEntity visitInformationEntity = null;

            // check if the visit IE is already in the patient IE children
            foreach (VisitInformationEntity lVisitInformationEntity in patientInformationEntity.Children)
            {
                if (lVisitInformationEntity.IsFoundIn(dataset))
                {
                    visitInformationEntity = lVisitInformationEntity;
                    break;
                }
            }

            // visit IE is not already in the patient IE children
            if (visitInformationEntity == null)
            {
                // create a new visit IE from the dataset and add to the patient IE children
                visitInformationEntity = new VisitInformationEntity();
                visitInformationEntity.CopyFrom(dataset);
                patientInformationEntity.AddChild(visitInformationEntity);
            }

            // IMAGING SERVICE REQUEST level
            ImagingServiceRequestInformationEntity imagingServiceRequestInformationEntity = null;

            // check if the imaging service request IE is already in the visit IE children
            foreach (ImagingServiceRequestInformationEntity lImagingServiceRequestInformationEntity in visitInformationEntity.Children)
            {
                if (lImagingServiceRequestInformationEntity.IsFoundIn(dataset))
                {
                    imagingServiceRequestInformationEntity = lImagingServiceRequestInformationEntity;
                    break;
                }
            }

            // imaging service request IE is not already in the visit IE children
            if (imagingServiceRequestInformationEntity == null)
            {
                // create a new imaging service request IE from the dataset and add to the visit IE children
                imagingServiceRequestInformationEntity = new ImagingServiceRequestInformationEntity();
                imagingServiceRequestInformationEntity.CopyFrom(dataset);
                visitInformationEntity.AddChild(imagingServiceRequestInformationEntity);
            }

            // REQUESTED PROCEDURE level
            RequestedProcedureInformationEntity requestedProcedureInformationEntity = null;

            // check if the requested procedure IE is already in the imaging service request IE children
            foreach (RequestedProcedureInformationEntity lRequestedProcedureInformationEntity in imagingServiceRequestInformationEntity.Children)
            {
                if (lRequestedProcedureInformationEntity.IsFoundIn(dataset))
                {
                    requestedProcedureInformationEntity = lRequestedProcedureInformationEntity;
                    break;
                }
            }

            // requested procedure IE is not already in the imaging service request IE children
            if (requestedProcedureInformationEntity == null)
            {
                // create a new requested procedure IE from the dataset and add to the imaging service request IE children
                requestedProcedureInformationEntity = new RequestedProcedureInformationEntity();
                requestedProcedureInformationEntity.CopyFrom(dataset);
                imagingServiceRequestInformationEntity.AddChild(requestedProcedureInformationEntity);
            }

            // SCHEDULED PROCEDURE STEP level
            ScheduledProcedureStepInformationEntity scheduledProcedureStepInformationEntity = null;

            // check if the scheduled procedure step IE is already in the requested procedure IE children
            foreach (ScheduledProcedureStepInformationEntity lScheduledProcedureStepInformationEntity in requestedProcedureInformationEntity.Children)
            {
                if (lScheduledProcedureStepInformationEntity.IsFoundIn(dataset))
                {
                    scheduledProcedureStepInformationEntity = lScheduledProcedureStepInformationEntity;
                    break;
                }
            }

            // scheduled procedure step IE is not already in the requested procedure IE children
            if (scheduledProcedureStepInformationEntity == null)
            {
                // create a new scheduled procedure step IE from the dataset and add to the requested procedure IE children
                scheduledProcedureStepInformationEntity = new ScheduledProcedureStepInformationEntity();
                scheduledProcedureStepInformationEntity.CopyFrom(dataset);
                requestedProcedureInformationEntity.AddChild(scheduledProcedureStepInformationEntity);
            }
        }