public void Test_LookLikeSameNames()
        {
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva^Siva"), "These are different. Should return false.");

            // Both names don't have ^
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", "Selva Siva"), "Identical");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", "Selva SIVA"), "letter case");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva SIVA", "Selva Siva"), "letter case");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", "   Selva  Siva  "), "Trailing/Leading Spaces");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("   Selva  Siva  ", "Selva Siva"), "Trailing/Leading Spaces");

            // Only one of the names has ^
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", "Selva^Siva"), "One has ^");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva Siva"), "One has ^");

            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", "Selva^SIVA"), "letter case");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^SIVA", "Selva Siva"), "letter case");

            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", " Selva ^ Siva "), "Trailing/Leading Spaces");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames(" Selva ^ Siva ", "Selva Siva"), "Trailing/Leading Spaces");

            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva Siva", " Selva ^ Siva ^ ^ ^"), "Trailing Empty Components");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames(" Selva ^ Siva ^ ^ ^", "Selva Siva"), "Trailing Empty Components");

            // Both names have ^
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva^SIVA"), "letter case");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^SIVA", "Selva^Siva"), "letter case");

            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^Siva", " Selva ^ Siva "), "Trailing/Leading Spaces");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames(" Selva ^ Siva ", "Selva^Siva"), "Trailing/Leading Spaces");

            Assert.IsTrue(DicomNameUtils.LookLikeSameNames("Selva^Siva", " Selva ^ Siva ^ ^ ^"), "Trailing Empty Components");
            Assert.IsTrue(DicomNameUtils.LookLikeSameNames(" Selva ^ Siva ^ ^ ^", "Selva^Siva"), "Trailing Empty Components");

            // Spaces in between... names are not the same
            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva Siva", "Selva Si va"));
            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva Siv a", "Selva Siva"));

            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva Si va"));
            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva Si va", "Selva^Siva"));

            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva^Si va"));
            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva^Si va", "Selva^Siva"));

            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva^^Siva"));

            Assert.IsFalse(DicomNameUtils.LookLikeSameNames("Selva^Siva", "Selva^Siva^Jr"));
        }
Example #2
0
        private bool UpdateNameBasedOnTheStudy(DicomFile file)
        {
            bool   updated = false;
            string orginalPatientsNameInFile = file.DataSet[DicomTags.PatientsName].ToString();

            if (_theStudy == null)
            {
                return(false);
            }

            StudyComparer        comparer  = new StudyComparer();
            ServerPartition      partition = ServerPartitionMonitor.Instance.FindPartition(_theStudy.ServerPartitionKey);
            DifferenceCollection list      = comparer.Compare(file, _theStudy, partition.GetComparisonOptions());

            if (list.Count == 1)
            {
                ComparisionDifference different = list[0];
                if (different.DicomTag.TagValue == DicomTags.PatientsName)
                {
                    if (DicomNameUtils.LookLikeSameNames(orginalPatientsNameInFile, _theStudy.PatientsName))
                    {
                        using (ServerCommandProcessor processor = new ServerCommandProcessor("Update Patient's Name"))
                        {
                            SetTagCommand command = new SetTagCommand(file, DicomTags.PatientsName, orginalPatientsNameInFile, _theStudy.PatientsName);
                            processor.AddCommand(command);

                            if (!processor.Execute())
                            {
                                throw new ApplicationException(String.Format("AUTO-CORRECTION Failed: Unable to correct the patient's name in the image. Reason: {0}",
                                                                             processor.FailureReason), processor.FailureException);
                            }

                            updated = true;
                        }
                    }
                }
            }
            return(updated);
        }