Example #1
0
        public async Task <List <ConsultationSummary> > getCarePLan(string caseId)
        {
            try
            {
                List <ConsultationSummary> ConsultationSummary = new List <ConsultationSummary>();
                ConsultationSummary        model      = new ConsultationSummary();
                PatientMedication          medication = new PatientMedication();
                PatientRadiologyOrder      radiology  = new PatientRadiologyOrder();
                PatientLabOrder            lab        = new PatientLabOrder();
                PatientSpecialTest         st         = new PatientSpecialTest();
                PatientTherapy             pt         = new PatientTherapy();
                PatientReferralOrder       pr         = new PatientReferralOrder();
                PatientProcedure           pp         = new PatientProcedure();

                PatientEncounter encounter = new PatientEncounter();
                encounter.CaseId                = caseId;
                model.listPatientMedication     = medication.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, null, caseId).Result.ToList();
                model.listPatientRadiologyOrder = radiology.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, null, caseId).Result.ToList();
                model.listPatientLabOrder       = lab.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, null, caseId).Result.ToList();
                model.listPatientSpecialTest    = st.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, "", caseId).Result.ToList();
                model.listPatientTherapy        = pt.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, null, caseId).Result.ToList();
                model.listPatientReferral       = pr.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, null, caseId).Result.ToList();
                model.listPatientProcedure      = pp.getPatientOrder(null, null, null, null, DateTime.MinValue, DateTime.MinValue, false, null, caseId).Result.ToList();
                ConsultationSummary.Add(model);

                return(ConsultationSummary);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        public async Task <List <ConsultationSummary> > getConsultationSummary_OLD(string patientEncounterId, bool summaryUpdated = false)
        {
            try
            {
                var    json = string.Empty;
                string triagePatientEncounterId = string.Empty;
                List <ConsultationSummary> ConsultationSummary = new List <ConsultationSummary>();
                ConsultationSummary        model     = new ConsultationSummary();
                PatientEncounter           encounter = new PatientEncounter();
                encounter.EncounterId = patientEncounterId;
                if (summaryUpdated == true)
                {
                    model.listPatientEncounter = encounter.encounterDetails(encounter).Result.ToList();
                    patientCaseId            = model.listPatientEncounter[0].CaseId;
                    patientId                = model.listPatientEncounter[0].PatientId;
                    model.patientEncounterId = patientEncounterId;
                    model.patientId          = patientId;
                    model.patientCaseId      = patientCaseId;
                    model.patient            = new Patient().getPatientBasicInfo(patientId).Result.patient;
                    model.listVisitReason    = new PatientVisit().getVisitReason(null, patientEncounterId).Result.ToList();
                    model.listCheifComplaint = new CheifComplaint().getCheifComplaint(null, patientEncounterId, 0, "").Result.ToList();
                    model.listPatientAllergy = new PatientAllergy().getPatientAllergies(patientId, null, null, DateTime.MinValue, DateTime.MinValue, true).Result.ToList();
                    model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, patientEncounterId, false, false).Result.ToList();
                    if (model.listPatientVitals.Count == 0)
                    {
                        PatientEncounter triageEncounter = new PatientEncounter();
                        triageEncounter.CaseId        = patientCaseId;
                        triageEncounter.EncounterType = "1";
                        if (triageEncounter.encounterDetails(triageEncounter).Result.Count > 0)
                        {
                            triagePatientEncounterId = triageEncounter.encounterDetails(triageEncounter).Result.ToList().First <PatientEncounter>().EncounterId;
                            model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, triagePatientEncounterId, false, false).Result.ToList();
                        }
                    }

                    model.listPatientMedication     = new PatientMedication().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                    model.listPatientRadiologyOrder = new PatientRadiologyOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                    model.listPatientLabOrder       = new PatientLabOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                    model.listPatientSpecialTest    = new PatientSpecialTest().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, "").Result.ToList();
                    model.listPatientTherapy        = new PatientTherapy().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                    model.listPatientReferral       = new PatientReferralOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                    model.listPatientProcedure      = new PatientProcedure().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null, null, false).Result.ToList();
                    model.listPatientDiagnosis      = new PatientDiagnosis().getPatientDiagnosis(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, 0, "").Result.ToList();
                    model.listPatientProblem        = new PatientProblem().getPatientProblems(patientId, true, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
                    model.listPatientDisposition    = new PatientDisposition().getPatientDisposition(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
                    model.listClinicalTemplate      = new ClinicalTemplate().getPatientClinicalTemplates(patientId, patientEncounterId).Result;
                    model.SummaryUpdatedDate        = DateTime.Now;
                    Notes notes = new Notes();
                    notes.EntityType        = "incident";
                    notes.ObjectId          = patientCaseId;
                    model.listProgressNotes = new Notes().getNotes(notes).Result;
                    ConsultationSummary.Add(model);

                    json = JsonConvert.SerializeObject(model);
                    encounter.updateSummaryJson(patientEncounterId, json);
                }
                else
                {
                    PatientEncounter pe = new PatientEncounter();
                    if (pe.encounterDetails(encounter).Result.Count > 0)
                    {
                        json = pe.encounterDetails(encounter).Result[0].SummaryJson;
                        if (json != null)
                        {
                            model = JsonConvert.DeserializeObject <ConsultationSummary>(json);
                            ConsultationSummary.Add(model);
                        }
                        else
                        {
                            model.listPatientEncounter = pe.encounterDetails(encounter).Result.ToList();
                            patientCaseId            = model.listPatientEncounter[0].CaseId;
                            patientId                = model.listPatientEncounter[0].PatientId;
                            model.patientEncounterId = patientEncounterId;
                            model.patientId          = patientId;
                            model.patientCaseId      = patientCaseId;

                            model.patient            = new Patient().getPatientBasicInfo(patientId).Result.patient;
                            model.listVisitReason    = new PatientVisit().getVisitReason(null, patientEncounterId).Result.ToList();
                            model.listCheifComplaint = new CheifComplaint().getCheifComplaint(null, patientEncounterId, 0, "").Result.ToList();
                            model.listPatientAllergy = new PatientAllergy().getPatientAllergies(patientId, null, null, DateTime.MinValue, DateTime.MinValue, true).Result.ToList();
                            model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, patientEncounterId, false, false).Result.ToList();
                            if (model.listPatientVitals.Count == 0)
                            {
                                PatientEncounter triageEncounter = new PatientEncounter();
                                triageEncounter.CaseId        = patientCaseId;
                                triageEncounter.EncounterType = "1";
                                if (triageEncounter.encounterDetails(triageEncounter).Result.Count > 0)
                                {
                                    triagePatientEncounterId = triageEncounter.encounterDetails(triageEncounter).Result.ToList().First <PatientEncounter>().EncounterId;
                                    model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, triagePatientEncounterId, false, false).Result.ToList();
                                }
                            }
                            model.listPatientMedication     = new PatientMedication().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                            model.listPatientRadiologyOrder = new PatientRadiologyOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                            model.listPatientLabOrder       = new PatientLabOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                            model.listPatientSpecialTest    = new PatientSpecialTest().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, "").Result.ToList();
                            model.listPatientTherapy        = new PatientTherapy().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                            model.listPatientReferral       = new PatientReferralOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                            model.listPatientProcedure      = new PatientProcedure().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                            model.listPatientDiagnosis      = new PatientDiagnosis().getPatientDiagnosis(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, 0, "").Result.ToList();
                            model.listPatientProblem        = new PatientProblem().getPatientProblems(patientId, true, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
                            model.listPatientDisposition    = new PatientDisposition().getPatientDisposition(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
                            model.listClinicalTemplate      = new ClinicalTemplate().getPatientClinicalTemplates(patientId, patientEncounterId).Result;
                            model.SummaryUpdatedDate        = DateTime.Now;
                            Notes notes = new Notes();
                            notes.EntityType        = "incident";
                            notes.ObjectId          = patientCaseId;
                            model.listProgressNotes = new Notes().getNotes(notes).Result;
                            ConsultationSummary.Add(model);

                            json = JsonConvert.SerializeObject(model);
                            encounter.updateSummaryJson(patientEncounterId, json);
                        }
                    }
                    else
                    {
                        model.listPatientEncounter = new PatientEncounter().encounterDetails(encounter).Result.ToList();
                        patientCaseId            = model.listPatientEncounter[0].CaseId;
                        patientId                = model.listPatientEncounter[0].PatientId;
                        model.patientEncounterId = patientEncounterId;
                        model.patientId          = patientId;
                        model.patientCaseId      = patientCaseId;

                        model.patient            = new Patient().getPatientBasicInfo(patientId).Result.patient;
                        model.listVisitReason    = new PatientVisit().getVisitReason(null, patientEncounterId).Result.ToList();
                        model.listCheifComplaint = new CheifComplaint().getCheifComplaint(null, patientEncounterId, 0, "").Result.ToList();
                        model.listPatientAllergy = new PatientAllergy().getPatientAllergies(patientId, null, null, DateTime.MinValue, DateTime.MinValue, true).Result.ToList();
                        model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, patientEncounterId, false, false).Result.ToList();
                        if (model.listPatientVitals.Count == 0)
                        {
                            PatientEncounter triageEncounter = new PatientEncounter();
                            triageEncounter.CaseId        = patientCaseId;
                            triageEncounter.EncounterType = "1";
                            if (triageEncounter.encounterDetails(triageEncounter).Result.Count > 0)
                            {
                                triagePatientEncounterId = triageEncounter.encounterDetails(triageEncounter).Result.ToList().First <PatientEncounter>().EncounterId;
                                model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, triagePatientEncounterId, false, false).Result.ToList();
                            }
                        }
                        model.listPatientMedication     = new PatientMedication().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                        model.listPatientRadiologyOrder = new PatientRadiologyOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                        model.listPatientLabOrder       = new PatientLabOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                        model.listPatientSpecialTest    = new PatientSpecialTest().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, "").Result.ToList();
                        model.listPatientTherapy        = new PatientTherapy().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                        model.listPatientReferral       = new PatientReferralOrder().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                        model.listPatientProcedure      = new PatientProcedure().getPatientOrder(null, patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, false, null).Result.ToList();
                        model.listPatientDiagnosis      = new PatientDiagnosis().getPatientDiagnosis(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, 0, "").Result.ToList();
                        model.listPatientProblem        = new PatientProblem().getPatientProblems(patientId, true, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
                        model.listPatientDisposition    = new PatientDisposition().getPatientDisposition(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
                        model.listClinicalTemplate      = new ClinicalTemplate().getPatientClinicalTemplates(patientId, patientEncounterId).Result.ToList();
                        model.SummaryUpdatedDate        = DateTime.Now;
                        Notes notes = new Notes();
                        notes.EntityType        = "incident";
                        notes.ObjectId          = patientCaseId;
                        model.listProgressNotes = new Notes().getNotes(notes).Result;
                        ConsultationSummary.Add(model);

                        json = JsonConvert.SerializeObject(model);
                        encounter.updateSummaryJson(patientEncounterId, json);
                    }
                }

                return(ConsultationSummary);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #3
0
        private async Task <ConsultationSummary> getConsultationSummaryModel(List <PatientEncounter> listPatientEncounter, bool isStartEncounter = false)
        {
            var    json = string.Empty;
            string triagePatientEncounterId = string.Empty;
            ConsultationSummary model       = new ConsultationSummary();

            string patientEncounterId  = listPatientEncounter[0].EncounterId;
            string EncounterTemplateId = listPatientEncounter[0].EncounterTemplateId;

            model.listPatientEncounter = listPatientEncounter;
            patientCaseId            = model.listPatientEncounter[0].CaseId;
            patientId                = new PatientCase().getCaseDetails(patientCaseId).Result.PatientId;
            model.patientEncounterId = patientEncounterId;
            model.patientId          = patientId;
            model.patientCaseId      = patientCaseId;

            model.patient = new Patient().getPatientDetails(patientId).Result;

            model.listVisitReason = new PatientVisit().getVisitReason("", "", patientCaseId, model.listPatientEncounter[0].AppointmentId).Result.ToList();

            model.listCheifComplaint = new List <CheifComplaint>();//new CheifComplaint().getCheifComplaint(null, patientEncounterId, 0, "").Result.ToList();

            model.listPatientAllergy = new PatientAllergy().getPatientAllergies(patientId, null, null, DateTime.MinValue, DateTime.MinValue, true).Result.ToList();

            model.listPatientVitals = new PatientVitals().getPatientEncounterVitals(null, patientEncounterId, false, false, "", false).Result.ToList();

            if (model.listPatientVitals.Count == 0 && model.listPatientEncounter[0].EncounterType != "1")
            {
                PatientEncounter triageEncounter = new PatientEncounter();
                triageEncounter.CaseId        = patientCaseId;
                triageEncounter.EncounterType = "1";

                List <PatientEncounter> triageEncounterList = triageEncounter.getEncounterDetails(triageEncounter).Result.ToList();

                if (triageEncounterList.Count > 0)
                {
                    triagePatientEncounterId = triageEncounterList.First <PatientEncounter>().EncounterId;
                    model.listPatientVitals  = new PatientVitals().getPatientEncounterVitals(null, triagePatientEncounterId, false, false, "", false).Result.ToList();
                }
            }

            if (!isStartEncounter && listPatientEncounter[0].EncounterType != ((int)mzk_encountertype.Triage).ToString())
            {
                EntityCollection patientOrderDetailsCollection = new PatientOrder().getPatientOrderDetails(patientEncounterId);

                if (patientOrderDetailsCollection != null)
                {
                    model.listPatientRadiologyOrder = new PatientRadiologyOrder().getPatientOrder(patientOrderDetailsCollection.Entities.Where(item => (item["mzk_type"] as OptionSetValue).Value.ToString() == ((int)mzk_patientordermzk_Type.Radiology).ToString()).ToList()).Result.ToList();
                    model.listPatientLabOrder       = new PatientLabOrder().getPatientOrder(patientOrderDetailsCollection.Entities.Where(item => (item["mzk_type"] as OptionSetValue).Value.ToString() == ((int)mzk_patientordermzk_Type.Lab).ToString()).ToList()).Result.ToList();
                    model.listPatientSpecialTest    = new PatientSpecialTest().getPatientOrder(patientOrderDetailsCollection.Entities.Where(item => (item["mzk_type"] as OptionSetValue).Value.ToString() == ((int)mzk_patientordermzk_Type.SpecialTest).ToString()).ToList()).Result.ToList();
                    model.listPatientTherapy        = new List <PatientTherapy>();
                    model.listPatientReferral       = new PatientReferralOrder().getPatientOrder(patientOrderDetailsCollection.Entities.Where(item => (item["mzk_type"] as OptionSetValue).Value.ToString() == ((int)mzk_patientordermzk_Type.Referral).ToString()).ToList()).Result.ToList();
                    model.listPatientProcedure      = new PatientProcedure().getPatientOrder(patientOrderDetailsCollection.Entities.Where(item => (item["mzk_type"] as OptionSetValue).Value.ToString() == ((int)mzk_patientordermzk_Type.Procedure).ToString()).ToList()).Result.ToList();
                    model.listPatientMedication     = new PatientMedication().getPatientOrder(patientOrderDetailsCollection.Entities.Where(item => (item["mzk_type"] as OptionSetValue).Value.ToString() == ((int)mzk_patientordermzk_Type.Medication).ToString()).ToList()).Result.ToList();
                }
            }
            else
            {
                model.listPatientRadiologyOrder = new List <PatientRadiologyOrder>();
                model.listPatientLabOrder       = new List <PatientLabOrder>();
                model.listPatientSpecialTest    = new List <PatientSpecialTest>();
                model.listPatientTherapy        = new List <PatientTherapy>();
                model.listPatientReferral       = new List <PatientReferralOrder>();
                model.listPatientProcedure      = new List <PatientProcedure>();
                model.listPatientMedication     = new List <PatientMedication>();
            }

            if (!isStartEncounter && listPatientEncounter[0].EncounterType != ((int)mzk_encountertype.Triage).ToString())
            {
                model.listPatientDiagnosis = new PatientDiagnosis().getPatientDiagnosis(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue, 0, "").Result.ToList();
            }
            else
            {
                model.listPatientDiagnosis = new List <PatientDiagnosis>();
            }
            //   model.listPatientProblem = new PatientProblem().getPatientProblems(patientId, true, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
            model.listPatientProblem = new List <PatientProblem>();

            if (!isStartEncounter && listPatientEncounter[0].EncounterType != ((int)mzk_encountertype.Triage).ToString())
            {
                model.listPatientDisposition = new PatientDisposition().getPatientDisposition(patientEncounterId, null, null, DateTime.MinValue, DateTime.MinValue).Result.ToList();
            }
            else
            {
                model.listPatientDisposition = new List <PatientDisposition>();
            }

            if (!isStartEncounter)
            {
                model.listClinicalTemplate = new ClinicalTemplate().getPatientClinicalTemplates(patientId, patientEncounterId).Result;
            }
            else
            {
                model.listClinicalTemplate = new List <ClinicalTemplate>();
            }

            if (listPatientEncounter[0].EncounterType != ((int)mzk_encountertype.Triage).ToString())
            {
                model.listProgressNotes = new Notes().getCaseNotes(patientCaseId).Result;
            }
            else
            {
                model.listProgressNotes = new List <Notes>();
            }

            model.SummaryUpdatedDate = DateTime.Now;
            json = JsonConvert.SerializeObject(model);
            string compressJson = string.Empty;

            compressJson = StringHelper.Compress(json);

            new PatientEncounter().updateSummaryJson(patientEncounterId, compressJson);

            return(model);
        }
Example #4
0
        public async Task <List <ConsultationSummary> > getConsultationSummary(string patientEncounterId, bool summaryUpdated = false, bool isStartEncounter = false)
        {
            try
            {
                var json = string.Empty;

                List <ConsultationSummary> ConsultationSummary = new List <ConsultationSummary>();
                ConsultationSummary        model = null;

                PatientEncounter encounter = new PatientEncounter();
                encounter.EncounterId = patientEncounterId;
                List <PatientEncounter> listPatientEncounter = encounter.getEncounterDetails(encounter).Result;

                if (listPatientEncounter != null)
                {
                    if (summaryUpdated == true)
                    {
                        model = await this.getConsultationSummaryModel(listPatientEncounter, isStartEncounter);

                        if (model != null)
                        {
                            ConsultationSummary.Add(model);
                        }
                    }
                    else
                    {
                        if (listPatientEncounter.Count > 0)
                        {
                            json = listPatientEncounter[0].SummaryJson;
                            if (json != null)
                            {
                                string decompressjson = string.Empty;
                                decompressjson = StringHelper.Decompress(json);
                                model          = JsonConvert.DeserializeObject <ConsultationSummary>(decompressjson);
                                ConsultationSummary.Add(model);
                            }
                            else
                            {
                                model = await this.getConsultationSummaryModel(listPatientEncounter, isStartEncounter);

                                if (model != null)
                                {
                                    ConsultationSummary.Add(model);
                                }
                            }
                        }
                        else
                        {
                            model = await this.getConsultationSummaryModel(listPatientEncounter, isStartEncounter);

                            if (model != null)
                            {
                                ConsultationSummary.Add(model);
                            }
                        }
                    }
                }
                else
                {
                    throw new ValidationException("Unable to find Patient Encounter");
                }

                return(ConsultationSummary);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }