public async Task <List <ConsultationSummary> > assessmentConsultationSummary(string caseId) { try { List <ConsultationSummary> ConsultationSummary = new List <ConsultationSummary>(); PatientEncounter enc = new PatientEncounter(); if (!string.IsNullOrEmpty(caseId)) { enc.CaseId = caseId; enc.EncounterType = Convert.ToString((int)mzk_encountertype.PrimaryAssessment); List <PatientEncounter> listPatEnc = enc.getEncounterDetails(enc).Result; if (listPatEnc.Count > 0) { patientEncounterId = listPatEnc.First <PatientEncounter>().EncounterId; } else { throw new ValidationException("Assessment summary is not available"); } } return(this.getConsultationSummary(patientEncounterId).Result); } catch (Exception ex) { throw ex; } }
public async Task <List <PatientVitals> > getLastRecordedVitals(string caseId, string appointmentId) { PatientEncounter patEnc = new PatientEncounter(); List <PatientVitals> patientVitals = new List <PatientVitals>(); if (!string.IsNullOrEmpty(appointmentId)) { patEnc = patEnc.encounterDetails((int)mzk_encountertype.Consultation, "", "", appointmentId).Result; if (patEnc != null && !string.IsNullOrEmpty(patEnc.EncounterId)) { patientVitals = new PatientVitals().getPatientEncounterVitals(null, patEnc.EncounterId, false, false).Result.ToList(); if (patientVitals.Count == 0) { patEnc = new PatientEncounter(); patEnc = patEnc.encounterDetails((int)mzk_encountertype.Triage, "", "", appointmentId).Result; if (patEnc != null && !string.IsNullOrEmpty(patEnc.EncounterId)) { patientVitals = new PatientVitals().getPatientEncounterVitals(null, patEnc.EncounterId, false, false).Result.ToList(); } } } } else if (!string.IsNullOrEmpty(caseId)) { patEnc.CaseId = caseId; patEnc.EncounterType = ((int)mzk_encountertype.PrimaryAssessment).ToString(); List <PatientEncounter> listEnc = null; listEnc = patEnc.getEncounterDetails(patEnc).Result; if (listEnc != null && listEnc.FirstOrDefault() != null && !string.IsNullOrEmpty(listEnc.First().EncounterId)) { patientVitals = new PatientVitals().getPatientEncounterVitals(null, listEnc.First().EncounterId, false, false).Result.ToList(); if (patientVitals.Count == 0) { patEnc = new PatientEncounter(); patEnc.CaseId = caseId; patEnc.EncounterType = ((int)mzk_encountertype.Triage).ToString(); listEnc = patEnc.getEncounterDetails(patEnc).Result; if (listEnc != null && listEnc.First() != null && !string.IsNullOrEmpty(listEnc.First().EncounterId)) { patientVitals = new PatientVitals().getPatientEncounterVitals(null, listEnc.First().EncounterId, false, false).Result.ToList(); } } } } return(patientVitals); }
public async Task <List <CheifComplaint> > getCheifComplaintFromClinicalTemplate(string caseId, string searchText, string appointmentId) { List <CheifComplaint> CheifComplaint = new List <CheifComplaint>(); ClinicalTemplate clinicalTemplate = new ClinicalTemplate(); string encounterId = ""; PatientEncounter patEnc = new PatientEncounter(); if (!string.IsNullOrEmpty(appointmentId)) { patEnc = patEnc.encounterDetails((int)mzk_encountertype.Consultation, "", "", appointmentId).Result; if (patEnc != null) { encounterId = patEnc.EncounterId; } } else if (!string.IsNullOrEmpty(caseId)) { patEnc.CaseId = caseId; patEnc.EncounterType = ((int)mzk_encountertype.PrimaryAssessment).ToString(); List <PatientEncounter> listEnc = null; listEnc = patEnc.getEncounterDetails(patEnc).Result; if (listEnc != null && listEnc.FirstOrDefault() != null) { encounterId = listEnc.First().EncounterId; } } List <ClinicalTemplateNarration> listNarration = clinicalTemplate.getPatientsClinicalTempalteNarration("", encounterId, "", false, 0, false, searchText); foreach (ClinicalTemplateNarration narration in listNarration) { CheifComplaint model = new CheifComplaint(); if (!string.IsNullOrEmpty(narration.comments)) { model.Complaint = narration.comments; } CheifComplaint.Add(model); } return(CheifComplaint); }
public async Task <List <ConsultationSummary> > triageConsultationSummary(string caseId, string cpsaWorkflowId) { try { List <ConsultationSummary> ConsultationSummary = new List <ConsultationSummary>(); PatientEncounter enc = new PatientEncounter(); if (!string.IsNullOrEmpty(cpsaWorkflowId)) { patientEncounterId = enc.getEncounterIdByWorkflowId(cpsaWorkflowId); if (string.IsNullOrEmpty(patientEncounterId)) { throw new ValidationException("Nursing triage summary is not available"); } } else if (!string.IsNullOrEmpty(caseId)) { enc.CaseId = caseId; enc.EncounterType = Convert.ToString((int)mzk_encountertype.Triage); List <PatientEncounter> listPatEnc = enc.getEncounterDetails(enc).Result; if (listPatEnc.Count > 0) { patientEncounterId = listPatEnc.First <PatientEncounter>().EncounterId; } else { throw new ValidationException("Nursing triage summary is not available"); } } if (!string.IsNullOrEmpty(patientEncounterId)) { return(this.getConsultationSummary(patientEncounterId).Result); } return(ConsultationSummary); } catch (Exception ex) { throw ex; } }
public async Task <string> AddPatientDisposition(PatientDisposition patientDisposition) { SoapEntityRepository entityRepository = SoapEntityRepository.GetService(); xrm.mzk_disposition patientDispositionEntity = new xrm.mzk_disposition(); if (patientDisposition.Asneeded == "1") { patientDispositionEntity.mzk_Asneeded = true; } if (patientDisposition.FollowUp != 0) { patientDispositionEntity.mzk_FollowUp = new OptionSetValue(patientDisposition.FollowUp); } if (!string.IsNullOrEmpty(patientDisposition.Comments)) { patientDispositionEntity.mzk_Comments = patientDisposition.Comments; } if (!string.IsNullOrEmpty(patientDisposition.DescriptionofSickNotes)) { patientDispositionEntity.mzk_DescriptionofSickNotes = patientDisposition.DescriptionofSickNotes; } if (!string.IsNullOrEmpty(patientDisposition.EncounterId)) { patientDispositionEntity.mzk_EncounterId = new EntityReference(xrm.mzk_patientencounter.EntityLogicalName, new Guid(patientDisposition.EncounterId)); PatientEncounter encounter = new PatientEncounter(); encounter.EncounterId = patientDisposition.EncounterId; patientDispositionEntity.mzk_customer = new EntityReference("contact", new Guid(encounter.getEncounterDetails(encounter).Result.ToList().First <PatientEncounter>().PatientId)); } if (patientDisposition.SickStartDate != DateTime.MinValue) { patientDispositionEntity.mzk_SickStartDate = patientDisposition.SickStartDate; } if (patientDisposition.SickEndDate != DateTime.MinValue) { patientDispositionEntity.mzk_SickEndDate = patientDisposition.SickEndDate; } if (!string.IsNullOrEmpty(patientDisposition.Notes)) { patientDispositionEntity.mzk_Notes = patientDisposition.Notes; } if (patientDisposition.OutComeValue != 0) { patientDispositionEntity.mzk_Outcome = new OptionSetValue(patientDisposition.OutComeValue); } if (patientDisposition.PartnerHospitalId != null && patientDisposition.PartnerHospitalId != string.Empty && patientDisposition.PartnerHospitalId != "0") { patientDispositionEntity.Attributes["mzk_partnerhospitalid"] = new EntityReference("mzk_hospital", new Guid(patientDisposition.PartnerHospitalId)); } Id = Convert.ToString(entityRepository.CreateEntity(patientDispositionEntity)); return(Id.ToString()); }
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); }
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; } }
public async Task <string> addPatientOrder(PatientTherapy patientTherapy) { SoapEntityRepository entityRepository = SoapEntityRepository.GetService(); mzk_patientorder patientOrderEntity = new mzk_patientorder(); try { patientOrderEntity.mzk_appointable = true; if (!string.IsNullOrEmpty(patientTherapy.appointmentId)) { patientOrderEntity.mzk_orderingappointment = new EntityReference("mzk_patientorder", new Guid(patientTherapy.appointmentId)); patientOrderEntity.mzk_fulfillmentappointment = new EntityReference("mzk_patientorder", new Guid(patientTherapy.appointmentId)); } if (!string.IsNullOrEmpty(patientTherapy.Therapy)) { patientOrderEntity.Attributes["mzk_productid"] = new EntityReference("product", new Guid(patientTherapy.Therapy)); } if (!string.IsNullOrEmpty(patientTherapy.Frequency)) { patientOrderEntity.Attributes["mzk_frequencyid"] = new EntityReference("mzk_ordersetup", new Guid(patientTherapy.Frequency)); } if (!string.IsNullOrEmpty(patientTherapy.Description)) { patientOrderEntity.Attributes["mzk_comments"] = patientTherapy.Description; } if (!string.IsNullOrEmpty(patientTherapy.EncounterId)) { patientOrderEntity.Attributes["mzk_patientencounterid"] = new EntityReference("mzk_patientencounter", new Guid(patientTherapy.EncounterId)); PatientEncounter encounter = new PatientEncounter(); encounter.EncounterId = patientTherapy.EncounterId; PatientId = encounter.getEncounterDetails(encounter).Result.ToList().First <PatientEncounter>().PatientId; patientOrderEntity.Attributes["mzk_customer"] = new EntityReference("contact", new Guid(PatientId)); } patientOrderEntity.Attributes["mzk_orderdate"] = DateTime.Now.Date; patientOrderEntity.Attributes["mzk_fulfillmentdate"] = patientOrderEntity.Attributes["mzk_orderdate"]; if (patientTherapy.clinicRecId > 0) { patientOrderEntity.Attributes["mzk_axclinicrefrecid"] = Convert.ToDecimal(patientTherapy.clinicRecId); } if (!string.IsNullOrEmpty(patientTherapy.orderingLocationId)) { patientOrderEntity.Attributes["mzk_orderinglocation"] = new EntityReference("mzk_organizationalunit", new Guid(patientTherapy.orderingLocationId)); } patientOrderEntity.Attributes["mzk_type"] = new OptionSetValue(Convert.ToInt32(mzk_patientordermzk_Type.Thrapy)); patientOrderEntity.Attributes["mzk_orderstatus"] = new OptionSetValue((int)mzk_orderstatus.Ordered); Id = Convert.ToString(entityRepository.CreateEntity(patientOrderEntity)); if (AppSettings.GetByKey("OperationsIntegration").ToLower() == true.ToString().ToLower()) { if (!string.IsNullOrEmpty(patientTherapy.EncounterId)) { await this.createCaseTrans(patientTherapy.EncounterId, Id, patientTherapy.Therapy, (mzk_orderstatus)patientOrderEntity.mzk_OrderStatus.Value); } } return(Id.ToString()); } catch (Exception ex) { if (!string.IsNullOrEmpty(OrderNumber)) { entityRepository.DeleteEntity(mzk_patientorder.EntityLogicalName, new Guid(OrderNumber)); } throw ex; } }
public async Task <bool> updateVisitReason(string encounterId, string visitReason) { try { PatientEncounter patEnc = new PatientEncounter(); patEnc.EncounterId = encounterId; patEnc = patEnc.getEncounterDetails(patEnc).Result.First(); string caseId = string.Empty; string appointmentId = string.Empty; if (patEnc != null) { if (!string.IsNullOrEmpty(patEnc.AppointmentId)) { appointmentId = patEnc.AppointmentId; } else if (!string.IsNullOrEmpty(patEnc.CaseId)) { caseId = patEnc.CaseId; } } SoapEntityRepository repo = SoapEntityRepository.GetService(); QueryExpression query = new QueryExpression(mzk_patientencounter.EntityLogicalName); query.ColumnSet = new ColumnSet(false); if (!string.IsNullOrEmpty(encounterId)) { query.Criteria.AddCondition("mzk_patientencounterid", ConditionOperator.Equal, new Guid(encounterId)); } LinkEntity workOrder = new LinkEntity(mzk_patientencounter.EntityLogicalName, msdyn_workorder.EntityLogicalName, "mzk_workorder", "msdyn_workorderid", JoinOperator.Inner); if (!string.IsNullOrEmpty(caseId)) { workOrder.LinkCriteria.AddCondition("msdyn_servicerequest", ConditionOperator.Equal, new Guid(caseId)); } if (!string.IsNullOrEmpty(appointmentId)) { workOrder.LinkCriteria.AddCondition("msdyn_workorderid", ConditionOperator.Equal, new Guid(appointmentId)); } workOrder.Columns = new ColumnSet("msdyn_workordersummary"); EntityCollection entityCollection = repo.GetEntityCollection(query); foreach (Entity entity in entityCollection.Entities) { if (!string.IsNullOrEmpty(visitReason)) { entity.Attributes["msdyn_workordersummary"] = visitReason; } repo.UpdateEntity(entity); } return(true); } catch (Exception ex) { throw ex; } }
//public async Task<List<PatientVisit>> getVisitReason(long patientRecId, string encounterId) //{ // PatientVisitRepository repo = new PatientVisitRepository(); // List<PatientVisit> patientVisit = new List<PatientVisit>(); // PatientEncounter patEnc = new PatientEncounter(); // patEnc.EncounterId = encounterId; // patEnc = patEnc.encounterDetails(patEnc).Result.First(); // Guid caseGuid = Guid.Empty; // long appointmentrecId = 0; // if(patEnc != null) // { // if(patEnc.AppointmentRefRecId > 0) // { // appointmentrecId = patEnc.AppointmentRefRecId; // } // else if (!string.IsNullOrEmpty(patEnc.CaseId)) // { // caseGuid = new Guid(patEnc.CaseId); // } // } // HMPatientVisitContract[] contractList = null; // //TODO: CRM implementation: Visit Reason // if(contractList != null) // { // foreach (HMPatientVisitContract contract in contractList) // { // PatientVisit model = new PatientVisit(); // if (!string.IsNullOrEmpty(contract.parmVisitReason)) // { // model.VisitReason = contract.parmVisitReason; // } // patientVisit.Add(model); // } // } // return patientVisit; //} //public async Task<bool> updateVisitReason(string encounterId, string visitReason) //{ // try // { // PatientVisitRepository repo = new PatientVisitRepository(); // PatientEncounter patEnc = new PatientEncounter(); // patEnc.EncounterId = encounterId; // patEnc = patEnc.encounterDetails(patEnc).Result.First(); // Guid caseGuid = Guid.Empty; // long appointmentrecId = 0; // if (patEnc != null) // { // if (patEnc.AppointmentRefRecId > 0) // { // appointmentrecId = patEnc.AppointmentRefRecId; // } // else if (!string.IsNullOrEmpty(patEnc.CaseId)) // { // caseGuid = new Guid(patEnc.CaseId); // } // } // return repo.updateVisitReason(caseGuid, appointmentrecId, visitReason); // } // catch (Exception ex) // { // throw ex; // } //} public async Task <List <PatientVisit> > getVisitReason(string customerId, string encounterId, string caseId = "", string appointmentId = "") { try { PatientVisit patientVisit; Guid caseGuid = Guid.Empty; List <PatientVisit> visitReasonList = new List <PatientVisit>(); if (!string.IsNullOrEmpty(encounterId)) { PatientEncounter patEnc = new PatientEncounter(); patEnc.EncounterId = encounterId; patEnc = patEnc.getEncounterDetails(patEnc).Result.First(); if (patEnc != null) { if (!string.IsNullOrEmpty(patEnc.AppointmentId)) { appointmentId = patEnc.AppointmentId; } else if (!string.IsNullOrEmpty(patEnc.CaseId)) { caseId = patEnc.CaseId; } } } else { if (string.IsNullOrEmpty(appointmentId) && !string.IsNullOrEmpty(caseId)) { caseGuid = new Guid(caseId); } } SoapEntityRepository repo = SoapEntityRepository.GetService(); QueryExpression query = new QueryExpression(msdyn_workorder.EntityLogicalName); query.ColumnSet = new ColumnSet("msdyn_workordersummary"); if (!string.IsNullOrEmpty(customerId)) { query.Criteria.AddCondition("mzk_customer", ConditionOperator.Equal, new Guid(customerId)); } if (caseGuid != Guid.Empty) { query.Criteria.AddCondition("msdyn_servicerequest", ConditionOperator.Equal, caseGuid); } if (!string.IsNullOrEmpty(appointmentId)) { LinkEntity apptEntity = new LinkEntity(msdyn_workorder.EntityLogicalName, mzk_patientappointment.EntityLogicalName, "msdyn_workorderid", "mzk_workorderid", JoinOperator.Inner); apptEntity.LinkCriteria.AddCondition("mzk_patientappointmentid", ConditionOperator.Equal, new Guid(appointmentId)); query.LinkEntities.Add(apptEntity); } EntityCollection entityCollection = repo.GetEntityCollection(query); foreach (Entity entity in entityCollection.Entities) { patientVisit = new PatientVisit(); if (entity.Attributes.Contains("msdyn_workordersummary")) { patientVisit.VisitReason = entity.Attributes["msdyn_workordersummary"].ToString(); } visitReasonList.Add(patientVisit); } return(visitReasonList); } catch (Exception ex) { throw ex; } }
public async Task <string> AddPatientDiagnosis(PatientDiagnosis patientDiagnosis) { SoapEntityRepository entityRepository = SoapEntityRepository.GetService(); Entity patientDiagnosisEntity = new Entity("mzk_patientencounterdiagnosis"); if (patientDiagnosis.isOtherDiagnosis == true) { Concept concept = new Concept(); concept.ConceptType = ((int)mzk_conceptmzk_Category.Diagnosis).ToString(); string OtherDiagnosisid = string.Empty; if (!string.IsNullOrEmpty(patientDiagnosis.OtherDiagnosis)) { concept.name = patientDiagnosis.OtherDiagnosis; concept.ConceptNumber = patientDiagnosis.OtherDiagnosis; } else { throw new ValidationException("Other Diagnosis must be filled"); } concept.addConcept(concept); patientDiagnosisEntity.Attributes["mzk_isother"] = patientDiagnosis.isOtherDiagnosis; if (!string.IsNullOrEmpty(patientDiagnosis.OtherDiagnosis)) { patientDiagnosisEntity.Attributes["mzk_Other"] = patientDiagnosis.OtherDiagnosis; } } if (patientDiagnosis.DiagnosisId != null && patientDiagnosis.DiagnosisId != string.Empty) { patientDiagnosisEntity.Attributes["mzk_diagnosisconceptid"] = new EntityReference("mzk_concept", new Guid(patientDiagnosis.DiagnosisId)); } if (patientDiagnosis.EncounterId != null && patientDiagnosis.EncounterId != string.Empty) { patientDiagnosisEntity.Attributes["mzk_patientencounterid"] = new EntityReference("mzk_patientencounter", new Guid(patientDiagnosis.EncounterId)); PatientEncounter encounter = new PatientEncounter(); encounter.EncounterId = patientDiagnosis.EncounterId; PatientId = encounter.getEncounterDetails(encounter).Result.ToList().First <PatientEncounter>().PatientId; if (!string.IsNullOrEmpty(PatientId)) { patientDiagnosisEntity.Attributes["mzk_customerid"] = new EntityReference("contact", new Guid(PatientId)); } } if (patientDiagnosis.OnsetNotes != null && patientDiagnosis.OnsetNotes != string.Empty) { patientDiagnosisEntity.Attributes["mzk_comments"] = patientDiagnosis.OnsetNotes; } if (patientDiagnosis.OnsetDate != null && patientDiagnosis.OnsetDate != DateTime.MinValue) { patientDiagnosisEntity.Attributes["mzk_onsetdate"] = Convert.ToDateTime(patientDiagnosis.OnsetDate); } if (patientDiagnosis.ProblemType != 0 && patientDiagnosis.ProblemType.ToString() != string.Empty) { patientDiagnosisEntity.Attributes["mzk_problemtype"] = new OptionSetValue(patientDiagnosis.ProblemType); } if (patientDiagnosis.Chronicity != 0 && patientDiagnosis.Chronicity.ToString() != string.Empty) { patientDiagnosisEntity.Attributes["mzk_chronicity"] = new OptionSetValue(patientDiagnosis.Chronicity); } if (!string.IsNullOrEmpty(patientDiagnosis.IsProblem) && patientDiagnosis.IsProblem == "1") { patientDiagnosisEntity.Attributes["mzk_isproblem"] = true; } else { patientDiagnosisEntity.Attributes["mzk_isproblem"] = false; } patientDiagnosisEntity.Attributes["mzk_status"] = new OptionSetValue(1); Id = Convert.ToString(entityRepository.CreateEntity(patientDiagnosisEntity)); return(Id); }
public async Task <List <Notes> > getNotes(Notes notes) { List <Notes> PatientNotes = new List <Notes>(); xrm.Annotation patientOrderEntity = new xrm.Annotation(); QueryExpression query = new QueryExpression(Annotation.EntityLogicalName); FilterExpression childFilter = query.Criteria.AddFilter(LogicalOperator.And); //check if it is case PatientCase pcase = new PatientCase(); if (!string.IsNullOrEmpty(notes.ObjectId)) { if (pcase.getCaseDetails(notes.ObjectId).Result.CaseNumber != null) { #region Case PatientEncounter encounter = new PatientEncounter(); encounter.CaseId = notes.ObjectId; List <PatientEncounter> listEncounterId = encounter.getEncounterDetails(encounter).Result; if (listEncounterId.Count > 0) { for (int entityCount = 0; entityCount < listEncounterId.Count; entityCount++) { #region Notes QueryExpression querycase = new QueryExpression(Annotation.EntityLogicalName); FilterExpression childFiltercase = querycase.Criteria.AddFilter(LogicalOperator.And); childFiltercase.AddCondition("objectid", ConditionOperator.Equal, new Guid(listEncounterId[entityCount].EncounterId)); //Entity :: Notes querycase.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("objectid", "subject", "notetext", "createdby", "createdon", "modifiedon", "modifiedby"); OrderExpression orderby = new OrderExpression(); orderby.AttributeName = "createdon"; orderby.OrderType = OrderType.Descending; querycase.Orders.Add(orderby); #endregion SoapEntityRepository entityRepository = SoapEntityRepository.GetService(); EntityCollection entitycollection = entityRepository.GetEntityCollection(querycase); foreach (Entity entity in entitycollection.Entities) { Notes model = new Notes(); if (entity.Attributes.Contains("objectid")) { model.ObjectId = ((EntityReference)entity.Attributes["objectid"]).Id.ToString(); } if (entity.Attributes.Contains("subject")) { model.Subject = entity.Attributes["subject"].ToString(); } if (entity.Attributes.Contains("notetext")) { model.NoteText = entity.Attributes["notetext"].ToString(); } if (entity.Attributes.Contains("createdon")) { model.CreatedOn = Convert.ToDateTime(entity.Attributes["createdon"]); } if (entity.Attributes.Contains("createdby")) { model.CreatedBy = ((EntityReference)entity.Attributes["createdby"]).Name; } model.Id = entity.Id.ToString(); PatientNotes.Add(model); } } } #endregion } else { #region Encounter if (!string.IsNullOrEmpty(notes.Id)) { childFilter.AddCondition("annotationid", ConditionOperator.Equal, new Guid(notes.Id)); } if (!string.IsNullOrEmpty(notes.ObjectId)) { childFilter.AddCondition("objectid", ConditionOperator.Equal, new Guid(notes.ObjectId)); } //Entity :: Notes query.ColumnSet = new Microsoft.Xrm.Sdk.Query.ColumnSet("objectid", "subject", "notetext", "createdby", "createdon", "modifiedon", "modifiedby"); OrderExpression orderby = new OrderExpression(); orderby.AttributeName = "createdon"; orderby.OrderType = OrderType.Descending; query.Orders.Add(orderby); if (string.IsNullOrEmpty(notes.ObjectId) && string.IsNullOrEmpty(notes.Id)) { throw new ValidationException("Parameter missing"); } SoapEntityRepository entityRepository = SoapEntityRepository.GetService(); EntityCollection entitycollection = entityRepository.GetEntityCollection(query); foreach (Entity entity in entitycollection.Entities) { Notes model = new Notes(); if (entity.Attributes.Contains("objectid")) { model.ObjectId = ((EntityReference)entity.Attributes["objectid"]).Id.ToString(); } if (entity.Attributes.Contains("subject")) { model.Subject = entity.Attributes["subject"].ToString(); } if (entity.Attributes.Contains("notetext")) { model.NoteText = entity.Attributes["notetext"].ToString(); } if (entity.Attributes.Contains("createdon")) { model.CreatedOn = Convert.ToDateTime(entity.Attributes["createdon"]); } if (entity.Attributes.Contains("createdby")) { model.CreatedBy = ((EntityReference)entity.Attributes["createdby"]).Name; } model.Id = entity.Id.ToString(); PatientNotes.Add(model); } #endregion } } return(PatientNotes); }
public async Task <string> addPatientOrder(PatientReferralOrder _patientReferral) { SoapEntityRepository entityRepository = SoapEntityRepository.GetService(); mzk_patientorder referralEntity = new mzk_patientorder(); try { referralEntity.mzk_appointable = true; if (!string.IsNullOrEmpty(_patientReferral.appointmentId)) { referralEntity.mzk_orderingappointment = new EntityReference("mzk_patientorder", new Guid(_patientReferral.appointmentId)); referralEntity.mzk_fulfillmentappointment = new EntityReference("mzk_patientorder", new Guid(_patientReferral.appointmentId)); } if (!string.IsNullOrEmpty(_patientReferral.PatientId)) { referralEntity.Attributes["mzk_customer"] = new EntityReference("contact", new Guid(_patientReferral.PatientId)); } if (!string.IsNullOrEmpty(_patientReferral.EncounterId)) { referralEntity.Attributes["mzk_patientencounterid"] = new EntityReference("mzk_patientencounter", new Guid(_patientReferral.EncounterId)); PatientEncounter encounter = new PatientEncounter(); encounter.EncounterId = _patientReferral.EncounterId; //PatientId = new PatientCase().getCaseDetails(encounter.encounterDetails(encounter).Result.ToList().First<PatientEncounter>().CaseId).Result.PatientId; PatientId = encounter.getEncounterDetails(encounter).Result.ToList().First <PatientEncounter>().PatientId; referralEntity.Attributes["mzk_customer"] = new EntityReference("contact", new Guid(PatientId)); } if (!string.IsNullOrEmpty(_patientReferral.Diagnosis)) { referralEntity.Attributes["mzk_associateddiagnosisid"] = new EntityReference("mzk_concept", new Guid(_patientReferral.Diagnosis)); } if (_patientReferral.clinicRecId > 0) { referralEntity.Attributes["mzk_axclinicrefrecid"] = Convert.ToDecimal(_patientReferral.clinicRecId); } if (!string.IsNullOrEmpty(_patientReferral.orderingLocationId)) { referralEntity.Attributes["mzk_orderinglocation"] = new EntityReference("mzk_organizationalunit", new Guid(_patientReferral.orderingLocationId)); } if (!string.IsNullOrEmpty(_patientReferral.ReferralComment)) { referralEntity.Attributes["mzk_comments"] = _patientReferral.ReferralComment; } if (_patientReferral.PatientAware.ToString() != "1") { referralEntity.Attributes["mzk_patientaware"] = true; } else { referralEntity.Attributes["mzk_patientaware"] = false; } if (_patientReferral.Apptrecommendation != 0) { referralEntity.Attributes["mzk_appointmentrecommendation"] = new OptionSetValue(_patientReferral.Apptrecommendation); } //for ReferralType Consultation, Consultation & Treatment and Transfer of Care if (_patientReferral.ReferralType != 0) { referralEntity.Attributes["mzk_referraltype"] = new OptionSetValue(_patientReferral.ReferralType); } //for Category Internal /External if (_patientReferral.Category != 0 && _patientReferral.Category == Convert.ToInt32(mzk_patientordermzk_ReferralCategory.Internal)) { referralEntity.Attributes["mzk_referralcategory"] = new OptionSetValue(Convert.ToInt32(_patientReferral.Category)); if (!string.IsNullOrEmpty(_patientReferral.ReferralId)) { referralEntity.Attributes["mzk_referraltoid"] = new EntityReference("systemuser", new Guid(_patientReferral.ReferralId)); } } else { if (_patientReferral.Category != 0 && _patientReferral.Category == Convert.ToInt32(mzk_patientordermzk_ReferralCategory.External)) { referralEntity.Attributes["mzk_referralcategory"] = new OptionSetValue(Convert.ToInt32(_patientReferral.Category)); if (!string.IsNullOrEmpty(_patientReferral.ReferralId)) { referralEntity.Attributes["mzk_referraltoexternalid"] = new EntityReference("mzk_referringphysician", new Guid(_patientReferral.ReferralId)); } } } if (!string.IsNullOrEmpty(_patientReferral.SpecialtyId)) { referralEntity.Attributes["mzk_specialityid"] = new EntityReference("characteristic", new Guid(_patientReferral.SpecialtyId)); var specialityNameList = new List <string> { _patientReferral.SpecialtyId }; Speciality speciality = new Speciality(); referralEntity.Attributes["mzk_specialtyname"] = speciality.getSpecialityList(specialityNameList).First <Speciality>().Description; } if (!string.IsNullOrEmpty(_patientReferral.HospitalId) && _patientReferral.HospitalId != "0") { referralEntity.Attributes["mzk_hospitalid"] = new EntityReference("mzk_hospital", new Guid(_patientReferral.HospitalId)); } referralEntity.Attributes["mzk_type"] = new OptionSetValue(Convert.ToInt32(mzk_patientordermzk_Type.Referral)); referralEntity.Attributes["mzk_orderstatus"] = new OptionSetValue((int)mzk_orderstatus.Ordered); referralEntity.Attributes["mzk_orderdate"] = DateTime.Now.Date; referralEntity.Attributes["mzk_fulfillmentdate"] = referralEntity.Attributes["mzk_orderdate"]; Id = Convert.ToString(entityRepository.CreateEntity(referralEntity)); if (!string.IsNullOrEmpty(_patientReferral.EncounterId) && !string.IsNullOrEmpty(_patientReferral.SpecialtyId)) { mzk_casetype caseType = PatientCase.getCaseType(_patientReferral.EncounterId); if (caseType == mzk_casetype.Emergency && _patientReferral.Category == Convert.ToInt32(mzk_patientordermzk_ReferralCategory.Internal)) { List <string> specialtyIdList = new List <string>(); specialtyIdList.Add(_patientReferral.SpecialtyId); Speciality sp = new Speciality().getSpecialityList(specialtyIdList).FirstOrDefault(); if (AppSettings.GetByKey("OperationsIntegration").ToLower() == true.ToString().ToLower()) { if (sp != null && sp.SpecialityRefRecId > 0) { await this.createCaseTrans(_patientReferral.EncounterId, Id, "", mzk_orderstatus.Ordered, 1, "", HMUrgency.None, "", "", "", sp.SpecialityRefRecId); } } } } return(Id.ToString()); } catch (Exception ex) { if (!string.IsNullOrEmpty(Id)) { entityRepository.DeleteEntity(mzk_patientorder.EntityLogicalName, new Guid(Id)); } throw ex; } }