private void CalculateOneMatch(MatchOfPatiendBasedDataAndStandarizedID currentMatch)
 {
     IDCriteraiEnable = false;
     readPBD(currentMatch.patientBasedData.path);
     if (currentMatch.IDincludeCriteria != null)
     {
         IDCriteraiEnable = true;
         readIDCriteria(currentMatch.IDincludeCriteria.path);
     }
     readSID(currentMatch.standarizedID.path);
 }
        public void generateMatchResult()
        {
            string result = "no match";
            var patientBasedDataFileList = parentWindow.patientBasedDataFolderSelector.FileList;
            var standardIDFileList = parentWindow.standarizedIDFolderSelector.FileList;
            var IDincludeCriteriaFileList = parentWindow.IDIncludeCrieteriaFolderSelector.FileList;
            bool isIDCriteriaEnable = parentWindow.IDIncludeCrieteriaFolderSelector.IsCriteriaChecked;
            matchOfPatiendBasedDataAndStandarizedID = new List<MatchOfPatiendBasedDataAndStandarizedID>();
            if (patientBasedDataFileList != null && standardIDFileList != null && (!isIDCriteriaEnable || IDincludeCriteriaFileList != null))
            {
                result = "PBD count = " + patientBasedDataFileList.Count + "\nstarndarizeID count = " + standardIDFileList.Count + "\n";
                foreach (var PBDfile in patientBasedDataFileList)
                {
                    var matchedGroupQueryForSID = from q in standardIDFileList
                                                  where q.@group == PBDfile.@group && q.hashGroup == PBDfile.hashGroup
                                                  select q;
                    IEnumerable<File> matchedGroupQueryForIDCriteria = new List<File>();
                    if (isIDCriteriaEnable)
                    {
                        matchedGroupQueryForIDCriteria = from q in IDincludeCriteriaFileList
                                                         where q.@group == PBDfile.@group && q.hashGroup == PBDfile.hashGroup
                                                         select q;
                    }
                    if (matchedGroupQueryForSID.Count() == 1)
                    {
                        var toADD = new MatchOfPatiendBasedDataAndStandarizedID()
                        {
                            patientBasedData = PBDfile,
                            standarizedID = matchedGroupQueryForSID.First()
                        };
                        if (isIDCriteriaEnable)
                        {
                            toADD.IDincludeCriteria = matchedGroupQueryForIDCriteria.First();
                        }
                        matchOfPatiendBasedDataAndStandarizedID.Add(toADD);
                    }
                    else if (matchedGroupQueryForSID.Count() > 1)
                    {
                        result += PBDfile.name + " has more than 1 match. \n";
                    }
                    else if (matchedGroupQueryForSID.Count() == 0)
                    {
                        result += PBDfile.name + " has no match. \n";
                    }
                }
            }

            matchResult = $"Total {matchOfPatiendBasedDataAndStandarizedID.Count} mached:  \n" + result;
            parentWindow.UpdateLayout();
        }