Example #1
0
        public bool HasNoSimilarVisits(Patient p)
        {
            List<Visit> pVisits = p.Visits;
            foreach (Visit pv in pVisits)
            {
                foreach (Visit v in this._visits)
                {
                    if (v.equals(pv))
                    {
                        return false;
                    }
                }
            }

            return true;
        }
Example #2
0
        //checks if this patients is similar to the specified patient
        public bool HasSimilarVisits(Patient p, float percentage)
        {
            List<Visit> pVisits = p.Visits;
            List<Visit> simVisits = new List<Visit>();
            int neededSimilarVisits = (int)Math.Ceiling(this.GetVisitsNumber() * percentage);
            int currentSimilarVisits = 0;

            foreach (Visit pv in pVisits)
            {
                foreach (Visit v in this._visits)
                {
                    if (v.equals(pv))
                    {
                        simVisits.Add(v);
                        currentSimilarVisits++;
                        break;
                    }

                }
            }

            bool similar = currentSimilarVisits >= neededSimilarVisits;
            if(similar){
                //Console.WriteLine("Patient " + this.ID + " is similar to Patient " + p.ID + " because of the following visits(" + simVisits.Count + ")");
                foreach(Visit v in simVisits){
                    //Console.Write("   " + v.ToString());
                }
            }

            return similar;
        }
 public void addMatch(Patient match)
 {
     _matches.Add(match);
 }
 public PatientMatchNode(Patient v)
 {
     this._matches = new List<Patient>();
     this._patient = v;
 }
Example #5
0
 public Visit(Patient p, int ID, int professionalID, int rationalID, DateTime date)
     : this(ID, professionalID, rationalID, date)
 {
     this._patient = p;
 }
Example #6
0
        //get all visits for a patient
        public List<Visit> getPatientVisits(int patientID)
        {
            List<Visit> visitsList = new List<Visit>();
            Patient patient = new Patient(patientID);
            SqlCeCommand selectCommand = new SqlCeCommand("SELECT * FROM Visit WHERE FK_Patient = @patientID", this._conn);
            selectCommand.Parameters.AddWithValue("@patientID", patientID);
            SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(selectCommand);
            DataTable visits = new DataTable();
            dataAdapter.Fill(visits);

            foreach (DataRow row in visits.Rows)
            {
                visitsList.Add(new Visit(patient, (int)row["ID"], (int)row["FK_Professional"], (int)row["FK_Rational"], (DateTime)row["date"]));
            }

            return visitsList;
        }
Example #7
0
        //get all patients with visits
        public List<Patient> getPatientsWVisits()
        {
            SqlCeCommand selectCommand = new SqlCeCommand("SELECT *, v.id AS visitID FROM Patient p JOIN Visit v ON p.id = FK_Patient", this._conn);
            SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(selectCommand);
            DataTable dt = new DataTable();
            List<Patient> patients = new List<Patient>();
            Stopwatch sw = new Stopwatch();

            dataAdapter.Fill(dt);

            sw.Start();
            int idBuffer = -1;
            Patient curPatient = null;
            foreach (DataRow row in dt.Rows)
            {
                int id = (int)row["ID"];

                if (id != idBuffer)
                {
                    idBuffer = id;
                    curPatient = new Patient(id);
                    patients.Add(curPatient);
                }

                if (curPatient != null)
                {
                    curPatient.AddVisit(new Visit((int)row["visitID"], (int)row["FK_Professional"], (int)row["FK_Rational"], (DateTime)row["date"]));
                }
            }
            sw.Stop();
            return patients;
        }