예제 #1
0
        internal PatientDiagnosis ResolveDiagnosis()
        {
            if (_patient.PatientDiagnoses == null)
            {
                _patient.PatientDiagnoses = new List <PatientDiagnosis>();
            }
            PatientDiagnosis diagnosis        = null;
            var matchingDiagnosis             = FindMatchingDiagnosisInDatabase();
            PatientDiagnosis patientDiagnosis = CheckIfMatchingDiagnosisAlreadyExists(matchingDiagnosis);

            if (patientDiagnosis == null && matchingDiagnosis != null)
            {
                diagnosis = BuildDiagnosisForPatient(matchingDiagnosis);
                _patient.PatientDiagnoses.Add(diagnosis);
                _context.PatientDiagnoses.Add(diagnosis);
            }
            else if (patientDiagnosis != null && matchingDiagnosis != null)
            {
                patientDiagnosis.Description       = ExtractDiagnosisNote(matchingDiagnosis);
                patientDiagnosis.DiagnosisCategory = ResolveDiagnosisCategory();
                if (_context.Entry(patientDiagnosis).State == EntityState.Modified)
                {
                    _context.PatientDiagnoses.Update(patientDiagnosis);
                }
                diagnosis = patientDiagnosis;
            }
            AddSmokingStatusIfExists();
            return(diagnosis);
        }
예제 #2
0
    static void readAll()
    {
        patientDiagnoses = new List <PatientDiagnosis>();
        string txt = FileManager.LoadFile(fileName);
        int    i   = 0;

        txt = txt.Replace("[", "");
        txt = txt.Replace("]", "");
        txt = txt.Replace("},{", "},\n{");
        //Debug.Log(txt);
        string[] lines = txt.Split('\n');
        foreach (string line in lines)
        {
            string l = line;
            //Debug.Log(l);

            if (i < lines.Length - 1)
            {
                l = line.Substring(0, line.Length - 1);
            }
            //Debug.Log(l);
            PatientDiagnosis patientDiagnosis = JsonUtility.FromJson <PatientDiagnosis>(l);
            if (patientDiagnosis != null)
            {
                //Debug.Log($"diagnosis = {patientDiagnosis}");
                patientDiagnoses.Add(patientDiagnosis);
            }
            i++;
        }
    }
예제 #3
0
        private void SaveDiagnosis()
        {
            ComputeConsolidateDiagnosis();
            PatientDiagnosis p = new PatientDiagnosis();

            p.diagnosisValueLeft  = ConsolidatedDiagnosisLeft;
            p.diagnosisValueRight = ConsolidatedDiagnosisRight;
            p.createdDate         = DateTime.Now;
            p.lastModifiedDate    = DateTime.Now;
            Patient pat = NewDataVariables.Patients.Where(x => x.personId == NewDataVariables.Active_Patient).ToList()[0];

            p.patient = pat;
            p.visit   = NewDataVariables.Active_Visit;
            p.concept = NewDataVariables._Repo.GetById <Concept>(12);
            if (isDiagnosisClear)
            {
                for (int i = 0; i < pat.diagnosis.Count; i++)
                {
                    if (pat.diagnosis.ToList()[i].voided != true)
                    {
                        pat.diagnosis.ToList()[i].voided = true;
                    }
                }
            }
            else
            {
                pat.diagnosis.Add(p);
            }
            if (pat.diagnosis.Count > 0)
            {
                NewDataVariables.PatientDiagnosis = pat.diagnosis.ToList();
                NewDataVariables.Patients[NewDataVariables.Patients.FindIndex(x => x.personId == NewDataVariables.Active_Patient)] = pat;
                NewIVLDataMethods.UpdatePatient();
            }
        }
예제 #4
0
        public async Task <IActionResult> Edit(int id, [Bind("PatientDiagnosisId,PatientId,DiagnosisId,Comments")] PatientDiagnosis patientDiagnosis)
        {
            if (id != patientDiagnosis.PatientDiagnosisId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(patientDiagnosis);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PatientDiagnosisExists(patientDiagnosis.PatientDiagnosisId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DiagnosisId"] = new SelectList(_context.Diagnosis, "DiagnosisId", "Name", patientDiagnosis.DiagnosisId);
            ViewData["PatientId"]   = new SelectList(_context.Patient, "PatientId", "FirstName", patientDiagnosis.PatientId);
            return(View(patientDiagnosis));
        }
        public int AddPatientDiagnosis(PatientDiagnosis aPatientDiagnosis)
        {
            int result = 0;

            SqlParameter[] aSqlParameters = new SqlParameter[8];

            aSqlParameters[0]       = new SqlParameter("@DiagnosisId", SqlDbType.VarChar, 5000);
            aSqlParameters[0].Value = aPatientDiagnosis.DiagnosisId;


            aSqlParameters[1]       = new SqlParameter("@Symptoms", SqlDbType.VarChar, 5000);
            aSqlParameters[1].Value = aPatientDiagnosis.Symptoms;

            aSqlParameters[2]       = new SqlParameter("@DiagnosisProvided", SqlDbType.VarChar, 50);
            aSqlParameters[2].Value = aPatientDiagnosis.DiagnosisProvided;

            aSqlParameters[3]       = new SqlParameter("@AdministeredBy", SqlDbType.VarChar, 50);
            aSqlParameters[3].Value = aPatientDiagnosis.AdministeredBy;

            aSqlParameters[4]       = new SqlParameter("@DateOfDiagnosis", SqlDbType.VarChar, 50);
            aSqlParameters[4].Value = aPatientDiagnosis.DateOfDiagnosis;

            aSqlParameters[5]       = new SqlParameter("@FollowUpRequired", SqlDbType.VarChar, 2);
            aSqlParameters[5].Value = aPatientDiagnosis.FollowUpRequired;

            aSqlParameters[6]       = new SqlParameter("@DateOfFollowUp", SqlDbType.VarChar, 50);
            aSqlParameters[6].Value = aPatientDiagnosis.DateOfFollowUp;

            aSqlParameters[7]       = new SqlParameter("@BillId", SqlDbType.Int);
            aSqlParameters[7].Value = aPatientDiagnosis.BillId;

            result = aDataAccess.AddPatientDiagnosis(aSqlParameters);

            return(result);
        }
예제 #6
0
    IEnumerator FetchPatientDiagnosisData()
    {
        // we fetch first the patients.
        UnityWebRequest www  = UnityWebRequest.Get(apiURL + "patient/diagnosis");
        var             resp = www.SendWebRequest();

        yield return(resp);

        if (string.IsNullOrEmpty(www.error))
        {
            //Success
        }
        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            // Show results as text
            string response = www.downloadHandler.text;
            Debug.Log(response);

            // save data into patientData.json
            FileManager.SaveFile(PatientDiagnosis.fileName, response);
            PatientDiagnosis.All();

            // Or retrieve results as binary data
            //byte[] results = www.downloadHandler.data;
        }
    }
예제 #7
0
    public void AddDiagnosis(string username, PatientDiagnosis diagnosis)
    {
        if (CheckUserName(username))
        {
            patientdetails.Collection.Update(Query.EQ("PUserName", username), Update.PushWrapped("Diagnosis", diagnosis));

        }
    }
        /// <summary>
        /// Retrieve all the diagnoses information of a specific patient
        /// </summary>
        public List <PatientDiagnosis> RetrievePatientDiagnoses(string patientNRIC, string therapistNRIC)
        {
            List <PatientDiagnosis> result = new List <PatientDiagnosis>();

            using (MySqlCommand cmd = new MySqlCommand())
            {
                cmd.CommandText = @"SELECT a.name_first, a.name_last, 
                    pd.diagnosis_code, pd.start, pd.end, 
                    d.diagnosis_description_short, d.category_title 
                    FROM patient_diagnosis pd 
                    INNER JOIN diagnosis d ON pd.diagnosis_code = d.diagnosis_Code
                    INNER JOIN account a ON a.nric = pd.therapist_nric
                    INNER JOIN record_type_permission rtp ON rtp.patient_nric = pd.patient_nric
                    WHERE rtp.patient_nric = @patientNRIC AND rtp.therapist_nric = @therapistNRIC AND rtp.approved_time IS NOT NULL
                    ORDER BY pd.end DESC, pd.start DESC;";

                cmd.Parameters.AddWithValue("@patientNRIC", patientNRIC);
                cmd.Parameters.AddWithValue("@therapistNRIC", therapistNRIC);

                using (cmd.Connection = connection)
                {
                    cmd.Connection.Open();
                    cmd.ExecuteNonQuery();

                    using (MySqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Entity.Therapist therapist = new Entity.Therapist
                            {
                                firstName = Convert.ToString(reader["name_first"]),
                                lastName  = Convert.ToString(reader["name_last"])
                            };

                            Diagnosis diagnosis = new Diagnosis
                            {
                                code             = Convert.ToString(reader["diagnosis_code"]),
                                descriptionShort = Convert.ToString(reader["diagnosis_description_short"]),
                                categoryTitle    = Convert.ToString(reader["category_title"])
                            };

                            PatientDiagnosis patientDiagnosis = new PatientDiagnosis
                            {
                                therapist = therapist,
                                diagnosis = diagnosis,
                                start     = Convert.ToDateTime(reader["start"]),
                            };
                            patientDiagnosis.end = reader["end"] == DBNull.Value ? null :
                                                   (DateTime?)Convert.ToDateTime(reader["end"]);

                            result.Add(patientDiagnosis);
                        }
                    }
                }
            }

            return(result);
        }
예제 #9
0
        public ActionResult Delete(int id)
        {
            PatientDiagnosisRepository repo = new PatientDiagnosisRepository();
            PatientDiagnosis           item = repo.GetById(id);

            repo.Delete(item);

            return(RedirectToAction("Index", "PatientDiagnosis", new { PatientId = item.PatientId }));
        }
예제 #10
0
        private void AddPatientDiagnosis(Patient patient)
        {
            var patientDiagnosis = new PatientDiagnosis();

            patient.PatientDiagnoses             = new List <PatientDiagnosis>();
            patientDiagnosis.DiagnosisCategoryId = _primaryDiagnosisCat.ID;
            patientDiagnosis.DiagnosisTypeId     = _cpaDiagnosis.ID;
            patientDiagnosis.PatientId           = patient.ID;
            patient.PatientDiagnoses.Add(patientDiagnosis);
        }
        private PatientDiagnosis GetPatientDiagnosesFromWord(Patient patient, string potentialDiagnosis)
        {
            var dataResolver           = new EPRDocxPatientDiagnosisResolver(potentialDiagnosis, patient, _context);
            PatientDiagnosis diagnosis = dataResolver.ResolveDiagnosis();

            if (diagnosis != null)
            {
                _diagnoses.Add(diagnosis);
            }
            return(diagnosis);
        }
        /// <summary>
        /// Retrieve all the diagnoses information of a specific patient
        /// </summary>
        public List <PatientDiagnosis> RetrievePatientDiagnoses(string patientId)
        {
            List <PatientDiagnosis> result = new List <PatientDiagnosis>();

            using (MySqlCommand cmd = new MySqlCommand())
            {
                cmd.CommandText = @" ";

                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append(@"SELECT pd.diagnosis_code, d.diagnosis_description_short, d.category_title 
                               FROM patient_diagnosis pd 
                               LEFT JOIN patients_anonymized pa ON pa.nric = pd.patient_nric INNER JOIN
                               diagnosis d ON pd.diagnosis_code = d.diagnosis_Code
					                    WHERE pa.id = "                    );
                stringBuilder.Append(patientId);
                stringBuilder.Append(" ORDER BY pd.end DESC, pd.start DESC;");

                cmd.CommandText = stringBuilder.ToString();

                using (cmd.Connection = connection)
                {
                    cmd.Connection.Open();
                    cmd.ExecuteNonQuery();

                    using (MySqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Diagnosis diagnosis = new Diagnosis
                            {
                                code             = Convert.ToString(reader["diagnosis_code"]),
                                descriptionShort = Convert.ToString(reader["diagnosis_description_short"]),
                                categoryTitle    = Convert.ToString(reader["category_title"])
                            };

                            PatientDiagnosis patientDiagnosis = new PatientDiagnosis
                            {
                                therapist = new Entity.Therapist(),
                                diagnosis = diagnosis,
                            };

                            result.Add(patientDiagnosis);
                        }
                    }
                }
            }

            if (result.Count == 0)
            {
                return(null);
            }

            return(result);
        }
예제 #13
0
        public async Task <IActionResult> Create([Bind("PatientDiagnosisId,PatientId,DiagnosisId,Comments")] PatientDiagnosis patientDiagnosis)
        {
            if (ModelState.IsValid)
            {
                _context.Add(patientDiagnosis);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DiagnosisId"] = new SelectList(_context.Diagnosis, "DiagnosisId", "Name", patientDiagnosis.DiagnosisId);
            ViewData["PatientId"]   = new SelectList(_context.Patient, "PatientId", "FirstName", patientDiagnosis.PatientId);
            return(View(patientDiagnosis));
        }
예제 #14
0
    void Start()
    {
        foreach (KeyValuePair <string, Diagnostic> k_d in Diagnostic.All())
        {
            Debug.Log(k_d.Value);
        }

        foreach (PatientDiagnosis p_d in PatientDiagnosis.All())
        {
            Debug.Log(p_d);
        }
        Patient.getAll();
    }
예제 #15
0
        private PatientDiagnosis BuildDiagnosisForPatient(string matchingDiagnosis)
        {
            PatientDiagnosis patientDiagnosis = new PatientDiagnosis();

            patientDiagnosis.Patient = _patient;
            DiagnosisType diagnosisType = FindDiagnosisTypeByName(matchingDiagnosis);

            patientDiagnosis.DiagnosisType = diagnosisType;
            DiagnosisCategory diagnosisCategory = ResolveDiagnosisCategory();

            patientDiagnosis.DiagnosisCategory = diagnosisCategory;
            patientDiagnosis.Description       = ExtractDiagnosisNote(matchingDiagnosis);
            return(patientDiagnosis);
        }
예제 #16
0
        public ActionResult Edit(EditVM model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            PatientDiagnosisRepository repo = new PatientDiagnosisRepository();
            PatientDiagnosis           item = new PatientDiagnosis();

            model.PopulateEntity(item);

            repo.Save(item);

            return(RedirectToAction("Index", "PatientDiagnosis", new { PatientId = item.PatientId }));
        }
 private void CreateAndAddPatientDiagnosis(DiagnosisType diagnosisType, string comment = null)
 {
     if (diagnosisType != null)
     {
         var patientDiagnosis = new PatientDiagnosis();
         patientDiagnosis.DiagnosisTypeId     = diagnosisType.ID;
         patientDiagnosis.PatientId           = _patient.ID;
         patientDiagnosis.DiagnosisCategoryId = _currentDiagnosisCategory.ID;
         if (!string.IsNullOrEmpty(comment))
         {
             patientDiagnosis.Description = comment;
         }
         _discoveredDiagnoses.Add(patientDiagnosis);
         _patient.PatientDiagnoses = _discoveredDiagnoses;
     }
 }
예제 #18
0
        public override async Task <IActionResult> PatchAsync(int id, [FromBody] PatientDiagnosis patientDiagnosis)
        {
            //var attrToUpdate = _jsonApiContext.AttributesToUpdate;
            //var patientDiagnosisOld = _dbContextResolver.GetDbSet<PatientDiagnosis>().Where(m => m.Id == id).FirstOrDefault();

            //CommonMethods commonMethods = new CommonMethods();

            ////var patientDiagnosisInfo = await base.PatchAsync(id, patientDiagnosis);

            //int eventID = _dbContextResolver.GetDbSet<Event>().LastOrDefault().Id + 1;
            //List<AuditLogs> auditLogs = commonMethods.GetAuditLogValues(patientDiagnosisOld, patientDiagnosis, "PatientDiagnosis", attrToUpdate)
            //    //.Where(i => attrToUpdate.Keys.Any(a1 => a1.InternalAttributeName == i.PropertyName))
            //    .Select(q => new AuditLogs() { NewValue = q.NewValue, OldValue = q.OldValue, PrimaryKeyID = q.PrimaryKeyID, TableName = q.TableName,
            //        PropertyName = q.PropertyName,EventID=eventID }).ToList();
            //await _dbContextResolver.GetDbSet<AuditLogs>().AddRangeAsync(auditLogs);
            return(await base.PatchAsync(id, patientDiagnosis));
        }
 public static PatientDiagnosisDTO ConvertToDTO(this PatientDiagnosis d)
 {
     return(d != null ? new PatientDiagnosisDTO
     {
         Id = d.Id,
         PatientId = d.PatientId,
         DoctorId = d.DoctorId,
         DoctorName = d.DoctorName,
         MedicalInstitution = d.MedicalInstitution.ConvertToDTO(),
         InOutPatient = d.InOutPatient,
         DiagnosisDate = d.DiagnosisDate,
         DischargeDate = d.DischargeDate,
         InclusionDate = d.InclusionDate,
         General = d.General,
         Symptoms = d.Symptoms
     } : null);
 }
예제 #20
0
        public ActionResult Edit(int?id, int?patientId)
        {
            PatientDiagnosis item = null;

            PatientDiagnosisRepository repo = new PatientDiagnosisRepository();

            item = id == null ? new PatientDiagnosis() : repo.GetById(id.Value);

            EditVM model = item == null ? new EditVM() : new EditVM(item);

            if (model.Id <= 0)
            {
                model.PatientId = patientId.Value;
            }

            return(View(model));
        }
예제 #21
0
 //Follow up removed as per DP sir told 24-8-2017
 //public bool UpdatePatientVitalsFollowUpData(Vitals patientInfo)
 //{
 //    foreach (var item in patientInfo.Ids)
 //    {
 //        var vitals = _context.PatientVitals.Find(item);
 //        if (vitals != null)
 //        {
 //            vitals.FollowUp = patientInfo.Followup_Flag;
 //            _context.SaveChanges();
 //        }
 //        else
 //        {
 //            return false;
 //        }
 //    }
 //    return true;
 //}
 public bool UpdatePatientDiagnosisData(int id, PatientDiagnosis patientInfo)
 {
     if (id > 0)
     {
         var patientDiagnosis = _context.PatientDiagnosis.Find(id);
         if (patientDiagnosis != null)
         {
             patientDiagnosis.ICDID       = patientInfo.ICDID;
             patientDiagnosis.PatientID   = patientInfo.PatientID;
             patientDiagnosis.IsActive    = patientInfo.IsActive;
             patientDiagnosis.UpdatedBy   = patientInfo.UpdatedBy;
             patientDiagnosis.UpdatedDate = DateTime.Now;
             _context.SaveChanges();
             return(true);
         }
     }
     return(false);
 }
예제 #22
0
 private string GetDiagnosisName(PatientDiagnosis diagnosis)
 {
     if (diagnosis == null)
     {
         return("");
     }
     else
     {
         if (!string.IsNullOrEmpty(diagnosis.DiagnosisType.ShortName))
         {
             return(diagnosis.DiagnosisType.ShortName);
         }
         else
         {
             return(diagnosis.DiagnosisType.Name);
         }
     }
 }
        public async Task <IActionResult> Create([Bind("PatientDiagnosisId,PatientId,DiagnosisId,Comments")] PatientDiagnosis patientDiagnosis)
        {
            string PID = HttpContext.Session.GetInt32("PID").ToString();

            if (string.IsNullOrEmpty(PID))
            {
                ModelState.AddModelError("PatientId", "No patient to create.");
                return(RedirectToAction("Index", "HKPatients"));
            }
            patientDiagnosis.PatientId = Convert.ToInt32(PID);
            if (ModelState.IsValid)
            {
                _context.Add(patientDiagnosis);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DiagnosisId"] = new SelectList(_context.Diagnosis, "DiagnosisId", "Name", patientDiagnosis.DiagnosisId);
            ViewData["PatientId"]   = new SelectList(_context.Patient, "PatientId", "FirstName", patientDiagnosis.PatientId);
            return(View(patientDiagnosis));
        }
예제 #24
0
 //public bool UpdatePatientVitalsFollowUpData(Vitals patientInfo)
 //{
 //    return _patientCommonRepository.UpdatePatientVitalsFollowUpData(patientInfo);
 //}
 public bool UpdatePatientDiagnosisData(int id, PatientDiagnosis patientInfo)
 {
     return(_patientCommonRepository.UpdatePatientDiagnosisData(id, patientInfo));
 }
예제 #25
0
 public override async Task <IActionResult> PostAsync([FromBody] PatientDiagnosis patientDiagnosis)
 {
     return(await base.PostAsync(patientDiagnosis));
 }
예제 #26
0
    internal Dictionary <string, Diagnostic> getDiagnostics()
    {
        Dictionary <string, Diagnostic> diagnostics = PatientDiagnosis.getAllDiagnosisForPatient(this.id);

        return(diagnostics);
    }
예제 #27
0
 public EditVM(PatientDiagnosis item)
 {
     Id            = item.Id;
     PatientId     = item.PatientId;
     DiagnosisName = item.DiagnosisName;
 }
예제 #28
0
 public void PopulateEntity(PatientDiagnosis item)
 {
     item.Id            = Id;
     item.PatientId     = PatientId;
     item.DiagnosisName = DiagnosisName;
 }
예제 #29
0
    public PatientDiagnosis GetDiagnosis(string username, int DiagnosisNum)
    {
        if ((CheckUserName(username)) && (DiagnosisNum <= GetNumberofDiagnosis(username)) && (GetNumberofDiagnosis(username) != -1))
        {
            IList<PatientDiagnosis> diagnosislist = GetAllDiagnosis(username);
            PatientDiagnosis diagnosis = new PatientDiagnosis();
            foreach (PatientDiagnosis record in diagnosislist)
            {
                if (record.DiagnosisNum == DiagnosisNum)
                {
                    diagnosis = record;
                    break;
                }
            }

            return diagnosis;
        }
        else
        {

            return null;
        }
    }