private PatientObservationRecordData GetProblem() { PatientObservationRecordData data = new PatientObservationRecordData { Id = "5347051dd6a48504b497a186", DeleteFlag = true }; return(data); }
internal static PatientObservationRecordData CreatePatientObservationRecord(PatientObservation po, ObservationValue ov) { try { PatientObservationRecordData pord = new PatientObservationRecordData { GroupId = po.GroupId, StartDate = po.StartDate, TypeId = po.TypeId, Units = po.Units, DisplayId = po.DisplayId, StateId = po.StateId, DeleteFlag = po.DeleteFlag, DataSource = po.DataSource, ExternalRecordId = po.ExternalRecordId }; // Populate Values for Labs and Vitals if (ov != null) { pord.Id = ov.Id; double dVal = 0; if (double.TryParse(ov.Value, out dVal)) { pord.Value = dVal; } else { pord.NonNumericValue = ov.Value; } // Set the End date to start date for Labs and Vitals pord.EndDate = po.StartDate; } else // Populate Values for Problems. { pord.Id = po.Id; // If the status for PatientObservation(problem) is changed to Resolved or Inactive, then set EndDate to Today. if (IsResolvedOrInactivated(po.StateId)) { pord.EndDate = DateTime.UtcNow; } else { pord.EndDate = po.EndDate; } } return(pord); } catch (Exception ex) { throw new Exception("AD:CreatePatientObservationRecord()::" + ex.Message, ex.InnerException); } }
public void SavePatientObservations_Test() { // Arrange string userId = "5325c821072ef705080d3488"; string contractNumber = "InHealth001"; string context = "NG"; string patientId = "5325d9f3d6a4850adcbba4ce"; List <PatientObservationRecordData> recordData = new List <PatientObservationRecordData>(); PatientObservationRecordData data1 = new PatientObservationRecordData { DisplayId = 1, EndDate = DateTime.Now.AddDays(10), DeleteFlag = false, Id = "53e3ccb8d6a485134024f1c3", NonNumericValue = "22", Source = "CM1", StartDate = DateTime.Now, StateId = 1, Units = "%", Value = 33.0 }; PatientObservationRecordData data2 = new PatientObservationRecordData { DisplayId = 1, EndDate = DateTime.Now.AddDays(15), DeleteFlag = false, Id = "53e3ccb8d6a485134024f1ce", NonNumericValue = "44", Source = "CM2", StartDate = DateTime.Now.AddDays(1), StateId = 2, Units = "ml", Value = 44.0 }; recordData.Add(data1); recordData.Add(data2); PutUpdatePatientObservationsDataRequest request = new PutUpdatePatientObservationsDataRequest { PatientId = patientId, Context = context, ContractNumber = contractNumber, UserId = userId, Version = 1, PatientObservationsRecordData = recordData }; PatientObservationDataManager cm = new PatientObservationDataManager { Factory = new PatientObservationRepositoryFactory() }; PutUpdatePatientObservationsDataResponse response = cm.UpdatePatientObservations(request); Assert.IsNotNull(response); }
public PostUpdateObservationItemsResponse SavePatientObservations(PostUpdateObservationItemsRequest request) { try { PostUpdateObservationItemsResponse response = new PostUpdateObservationItemsResponse(); List <PatientObservation> obsl = request.PatientObservations; //List<string> patientObservationIds = ObservationsUtil.GetPatientObservationIds(obsl); List <PatientObservationRecordData> poRecordDataList = new List <PatientObservationRecordData>(); if (request.PatientObservations != null && request.PatientObservations.Count > 0) { foreach (PatientObservation po in obsl) { PatientObservationRecordData pord = null; if (po.Values != null && po.Values.Count > 0) // Labs and Vitals have values { foreach (ObservationValue ov in po.Values) { pord = ObservationsUtil.CreatePatientObservationRecord(po, ov); //ObservationEndpointUtil.UpdatePatientObservation(request, pord); poRecordDataList.Add(pord); } } else // Problem does not have values { pord = ObservationsUtil.CreatePatientObservationRecord(po, null); //ObservationEndpointUtil.UpdatePatientObservation(request, pord); poRecordDataList.Add(pord); } } response = ObservationEndpointUtil.UpdatePatientObservation(request, poRecordDataList); } response.Version = request.Version; return(response); } catch (Exception ex) { throw new Exception("AD:SavePatientObservations()::" + ex.Message, ex.InnerException); } }
public PutUpdateObservationDataResponse UpdatePatientProblem(string patientId, string userId, string elementId, PatientObservation pod, bool _active, IAppDomainRequest request) { try { //register call to remote serivce. IRestClient client = new JsonServiceClient(); string url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Patient/{4}/Observation/Update", DDPatientObservationServiceUrl, "NG", request.Version, request.ContractNumber, patientId), request.UserId); PatientObservationRecordData pdata = new PatientObservationRecordData { Id = pod.Id, StateId = pod.StateId, DeleteFlag = false }; PutUpdateObservationDataRequest purequest = new PutUpdateObservationDataRequest { PatientObservationData = pdata, Context = "NG", ContractNumber = request.ContractNumber, UserId = request.UserId, }; PutUpdateObservationDataResponse dataDomainResponse = client.Put <PutUpdateObservationDataResponse>( url, purequest as object); return(dataDomainResponse); } catch (Exception ex) { throw new Exception("AD:PlanElementEndpointUtil:UpdatePatientProblem()::" + ex.Message, ex.InnerException); } }
object IRepository.Update(object entity) { bool result = false; PutUpdateObservationDataRequest odr = (PutUpdateObservationDataRequest)entity; PatientObservationRecordData pord = odr.PatientObservationData; try { using (PatientObservationMongoContext ctx = new PatientObservationMongoContext(_dbName)) { var q = MB.Query <MEPatientObservation> .EQ(b => b.Id, ObjectId.Parse(pord.Id)); var uv = new List <MB.UpdateBuilder>(); uv.Add(MB.Update.Set(MEPatientObservation.DeleteFlagProperty, pord.DeleteFlag)); if (pord.DeleteFlag) { uv.Add(MB.Update.Set(MEPatientObservation.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays))); } else { uv.Add(MB.Update.Set(MEPatientObservation.TTLDateProperty, BsonNull.Value)); } uv.Add(MB.Update.Set(MEPatientObservation.UpdatedByProperty, ObjectId.Parse(this.UserId))); uv.Add(MB.Update.Set(MEPatientObservation.LastUpdatedOnProperty, System.DateTime.UtcNow)); uv.Add(MB.Update.Set(MEPatientObservation.VersionProperty, odr.Version)); if (pord.NonNumericValue != null) { uv.Add(MB.Update.Set(MEPatientObservation.NonNumericValueProperty, pord.NonNumericValue)); } if (pord.Value != null) { uv.Add(MB.Update.Set(MEPatientObservation.NumericValueProperty, BsonDouble.Create(pord.Value))); } if (pord.Units != null) { uv.Add(MB.Update.Set(MEPatientObservation.UnitsProperty, pord.Units)); } if (pord.StartDate != null) { uv.Add(MB.Update.Set(MEPatientObservation.StartDateProperty, pord.StartDate)); } else { uv.Add(MB.Update.Set(MEPatientObservation.StartDateProperty, BsonNull.Value)); } if (pord.EndDate != null) { uv.Add(MB.Update.Set(MEPatientObservation.EndDateProperty, pord.EndDate)); } else { uv.Add(MB.Update.Set(MEPatientObservation.EndDateProperty, BsonNull.Value)); } if (pord.DisplayId != 0) { uv.Add(MB.Update.Set(MEPatientObservation.DisplayProperty, pord.DisplayId)); } if (pord.StateId != 0) { uv.Add(MB.Update.Set(MEPatientObservation.ObservationStateProperty, pord.StateId)); } if (pord.Source != null) { uv.Add(MB.Update.Set(MEPatientObservation.SourceProperty, pord.Source)); } if (pord.DataSource != null) { uv.Add(MB.Update.Set(MEPatientObservation.DataSourceProperty, pord.DataSource)); } else { uv.Add(MB.Update.Set(MEPatientObservation.DataSourceProperty, BsonNull.Value)); } if (pord.ExternalRecordId != null) { uv.Add(MB.Update.Set(MEPatientObservation.ExternalRecordIdProperty, pord.ExternalRecordId)); } else { uv.Add(MB.Update.Set(MEPatientObservation.ExternalRecordIdProperty, BsonNull.Value)); } IMongoUpdate update = MB.Update.Combine(uv); ctx.PatientObservations.Collection.Update(q, update); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.PatientObservation.ToString(), pord.Id, Common.DataAuditType.Update, odr.ContractNumber); result = true; } return(result as object); } catch (Exception ex) { throw new Exception("PatientObservationDD:MongoPatientBarrierRepository:Update()::" + ex.Message, ex.InnerException); } }