private static List <MedicationMapData> HydrateMedMappingList(Dictionary <MedicationKey, List <MedicationData> > medGrouping) { var medmaps = new List <MedicationMapData>(); foreach (MedicationKey key in medGrouping.Keys) { var medmap = new MedicationMapData { Custom = false, DeleteFlag = false, Form = key.Form, FullName = key.FullName, Route = key.Route, Strength = key.Strength, Version = 1.0, SubstanceName = key.SubstanceName, Verified = true }; if (!medmaps.Contains(medmap)) { medmaps.Add(medmap); } } return(medmaps); }
public void UpdateMedicationMap_Test() { MedicationMapData data = new MedicationMapData { Id = "54b82870d433262acc525a17", FullName = "testname123", SubstanceName = "67894", Verified = true }; PutMedicationMapDataRequest request = new PutMedicationMapDataRequest { Context = context, ContractNumber = contractNumber, MedicationMapData = data, UserId = userId, Version = version }; //[Route("/{Context}/{Version}/{ContractNumber}/MedicationMap/Update", "PUT")] PutMedicationMapDataResponse response = client.Put <PutMedicationMapDataResponse>( string.Format("{0}/{1}/{2}/{3}/MedicationMap/Update", url, context, version, contractNumber), request); Assert.IsNotNull(response); }
public MedicationMapData UpdateMedicationMap(PutMedicationMapRequest request) { try { MedicationMapData result = null; IRestClient client = new JsonServiceClient(); //[Route("/{Context}/{Version}/{ContractNumber}/MedicationMap/Update", "PUT")] var url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/MedicationMap/Update", DDMedicationUrl, "NG", request.Version, request.ContractNumber), request.UserId); if (request.MedicationMap != null) { MedicationMapData data = new MedicationMapData(); data = Mapper.Map <MedicationMapData>(request.MedicationMap); PutMedicationMapDataResponse dataDomainResponse = client.Put <PutMedicationMapDataResponse>(url, new PutMedicationMapDataRequest { Context = "NG", ContractNumber = request.ContractNumber, UserId = request.UserId, Version = request.Version, MedicationMapData = data } as object); if (dataDomainResponse != null) { result = dataDomainResponse.MedicationMappingData; } } return(result); } catch (Exception ex) { throw ex; } }
public object Find(object entity) { string result = null; try { MedicationMapData e = (MedicationMapData)entity; List <IMongoQuery> qList = new List <IMongoQuery>(); if (e.Form.IsNullOrEmpty()) { qList.Add(Query.EQ(MEMedicationMapping.FormProperty, BsonNull.Value)); } else { qList.Add(Query <MEMedicationMapping> .EQ(b => b.Form, e.Form)); } if (e.Strength.IsNullOrEmpty()) { qList.Add(Query.EQ(MEMedicationMapping.StrengthProperty, BsonNull.Value)); } else { qList.Add(Query <MEMedicationMapping> .EQ(b => b.Strength, e.Strength)); } if (e.Route.IsNullOrEmpty()) { qList.Add(Query.EQ(MEMedicationMapping.RouteProperty, BsonNull.Value)); } else { qList.Add(Query <MEMedicationMapping> .EQ(b => b.Route, e.Route)); } if (e.FullName.IsNullOrEmpty()) { qList.Add(Query.EQ(MEMedicationMapping.FullNameProperty, BsonNull.Value)); } else { qList.Add(Query <MEMedicationMapping> .EQ(b => b.FullName, e.FullName)); } qList.Add(Query <MEMedicationMapping> .EQ(b => b.Custom, true)); var query = Query.And(qList); MEMedicationMapping meMM = Context.MedicationMaps.Collection.Find(query).FirstOrDefault(); if (meMM != null) { result = meMM.Id.ToString(); } return(result); } catch (Exception ex) { throw ex; } }
public MedicationMapData UpdateMedicationMap(PutMedicationMapDataRequest request) { MedicationMapData result = null; var repo = StubRepositoryFactory.GetMedicationRepository(request, RepositoryType.MedicationMapping); bool status = (bool)repo.Update(request); if (status) { result = (MedicationMapData)repo.FindByID(request.MedicationMapData.Id); } return(result); }
private MedicationKey CreateMedicationMappingKey(MedicationMapData md) { var key = new MedicationKey { Form = md.Form, FullName = md.FullName, Route = md.Route, Strength = md.Strength, SubstanceName = md.SubstanceName }; return(key); }
public DTO.MedicationMap InitializeMedicationMap(PostInitializeMedicationMapRequest request) { DTO.MedicationMap med = null; try { MedicationMapData data = EndpointUtil.InitializeMedicationMap(request); if (data != null) { med = Mapper.Map <DTO.MedicationMap>(data); } return(med); } catch (Exception ex) { throw ex; } }
public DTO.MedicationMapData InsertMedicationMap(PostMedicationMapDataRequest request) { MedicationMapData result = null; try { var repo = MedicationRepositoryFactory.GetMedicationRepository(request, RepositoryType.MedicationMapping); if (request.MedicationMapData != null) { result = repo.Insert(request as object) as MedicationMapData; } return(result); } catch (Exception ex) { throw ex; } }
public void UpdateMedicationMap_Test() { PutMedicationMapDataRequest request = new PutMedicationMapDataRequest { Context = context, ContractNumber = contractNumber, UserId = userId, Version = version, MedicationMapData = new MedicationMapData { Id = "532371e4072ef721b8b05b97", FullName = "TESLA1", Verified = false, Custom = true } }; MedicationMapData data = cm.UpdateMedicationMap(request); Assert.IsNull(data.TTLDate); }
public void InitializeMedicationMap_Test() { PutInitializeMedicationMapDataRequest request = new PutInitializeMedicationMapDataRequest { Context = context, ContractNumber = contractNumber, UserId = userId, Version = version, MedicationMapData = new MedicationMapData { FullName = "TESLA", Verified = false, Custom = true } }; MedicationMapData data = cm.InitializeMedicationMap(request); Assert.IsNotNull(data.TTLDate); }
/// <summary> /// Register new medication name in Lucene indexes. /// </summary> /// <param name="contractNumber">contract Number sent in the request.</param> /// <param name="medData">MedicationMapData object.</param> private void RegisterMedication(IAppDomainRequest request, MedicationMapData medData) { DTO.Medication newMed = new DTO.Medication { Id = medData.Id, ProprietaryName = medData.FullName, Strength = medData.Strength, DosageFormName = medData.Form, RouteName = medData.Route, SubstanceName = string.Empty, NDC = string.Empty, ProductId = string.Empty, ProprietaryNameSuffix = string.Empty }; SearchManager.RegisterMedDocumentInSearchIndex(newMed, request); }
public MedicationMapData UpdateMedicationMap(PutMedicationMapDataRequest request) { try { MedicationMapData result = null; var repo = MedicationRepositoryFactory.GetMedicationRepository(request, RepositoryType.MedicationMapping); if (request.MedicationMapData != null) { bool status = (bool)repo.Update(request); if (status) { result = (MedicationMapData)repo.FindByID(request.MedicationMapData.Id); } } return(result); } catch (Exception ex) { throw ex; } }
public object Initialize(object newEntity) { PutInitializeMedicationMapDataRequest request = (PutInitializeMedicationMapDataRequest)newEntity; MedicationMapData data = null; try { MEMedicationMapping meMM = new MEMedicationMapping(this.UserId) { FullName = string.IsNullOrEmpty(request.MedicationMapData.FullName) ? null : request.MedicationMapData.FullName.ToUpper(), Strength = request.MedicationMapData.Strength, Form = string.IsNullOrEmpty(request.MedicationMapData.Form) ? null : request.MedicationMapData.Form.ToUpper(), Route = string.IsNullOrEmpty(request.MedicationMapData.Route) ? null : request.MedicationMapData.Route.ToUpper(), TTLDate = System.DateTime.UtcNow.AddDays(_initializeDays), DeleteFlag = false }; using (MedicationMongoContext ctx = new MedicationMongoContext(ContractDBName)) { ctx.MedicationMaps.Collection.Insert(meMM); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.MedicationMap.ToString(), meMM.Id.ToString(), DataAuditType.Insert, request.ContractNumber); data = new MedicationMapData { Id = meMM.Id.ToString(), FullName = meMM.FullName }; } return(data); } catch (Exception) { throw; } }
public object Update(object entity) { bool result = false; PutMedicationMapDataRequest pa = (PutMedicationMapDataRequest)entity; MedicationMapData data = pa.MedicationMapData; try { using (MedicationMongoContext ctx = new MedicationMongoContext(ContractDBName)) { var q = MB.Query <MEMedicationMapping> .EQ(b => b.Id, ObjectId.Parse(data.Id)); var uv = new List <MB.UpdateBuilder>(); uv.Add(MB.Update.Set(MEMedicationMapping.UpdatedByProperty, ObjectId.Parse(this.UserId))); uv.Add(MB.Update.Set(MEMedicationMapping.VersionProperty, pa.Version)); uv.Add(MB.Update.Set(MEMedicationMapping.LastUpdatedOnProperty, System.DateTime.UtcNow)); if (!string.IsNullOrEmpty(data.FullName)) { uv.Add(MB.Update.Set(MEMedicationMapping.FullNameProperty, data.FullName.ToUpper())); } else { uv.Add(MB.Update.Set(MEMedicationMapping.FullNameProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(data.SubstanceName)) { uv.Add(MB.Update.Set(MEMedicationMapping.SubstanceNameProperty, data.SubstanceName)); } else { uv.Add(MB.Update.Set(MEMedicationMapping.SubstanceNameProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(data.Strength)) { uv.Add(MB.Update.Set(MEMedicationMapping.StrengthProperty, data.Strength)); } else { uv.Add(MB.Update.Set(MEMedicationMapping.StrengthProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(data.Form)) { uv.Add(MB.Update.Set(MEMedicationMapping.FormProperty, data.Form.ToUpper())); } else { uv.Add(MB.Update.Set(MEMedicationMapping.FormProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(data.Route)) { uv.Add(MB.Update.Set(MEMedicationMapping.RouteProperty, data.Route.ToUpper())); } else { uv.Add(MB.Update.Set(MEMedicationMapping.RouteProperty, BsonNull.Value)); } uv.Add(MB.Update.Set(MEMedicationMapping.CustomProperty, data.Custom)); uv.Add(MB.Update.Set(MEMedicationMapping.VerifiedProperty, data.Verified)); uv.Add(MB.Update.Set(MEMedicationMapping.DeleteFlagProperty, data.DeleteFlag)); DataAuditType type; if (data.DeleteFlag) { uv.Add(MB.Update.Set(MEMedicationMapping.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays))); type = DataAuditType.Delete; } else { uv.Add(MB.Update.Set(MEMedicationMapping.TTLDateProperty, BsonNull.Value)); type = DataAuditType.Update; } IMongoUpdate update = MB.Update.Combine(uv); ctx.MedicationMaps.Collection.Update(q, update); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.MedicationMap.ToString(), data.Id, type, pa.ContractNumber); result = true; } return(result as object); } catch (Exception) { throw; } }
public object Search(object request) { List <MedicationMapData> list = null; GetMedicationMapDataRequest dataRequest = (GetMedicationMapDataRequest)request; try { using (MedicationMongoContext ctx = new MedicationMongoContext(ContractDBName)) { List <IMongoQuery> queries = new List <IMongoQuery>(); if (!string.IsNullOrEmpty(dataRequest.Name)) { queries.Add(Query.EQ(MEMedicationMapping.FullNameProperty, dataRequest.Name.ToUpper())); } if (!string.IsNullOrEmpty(dataRequest.Route)) { queries.Add(Query.EQ(MEMedicationMapping.RouteProperty, dataRequest.Route)); } if (!string.IsNullOrEmpty(dataRequest.Form)) { queries.Add(Query.EQ(MEMedicationMapping.FormProperty, dataRequest.Form)); } if (!string.IsNullOrEmpty(dataRequest.Strength)) { queries.Add(Query.EQ(MEMedicationMapping.StrengthProperty, dataRequest.Strength)); } if (dataRequest.Type != 0) { if (dataRequest.Type == 1) { queries.Add(Query.EQ(MEMedicationMapping.CustomProperty, false)); } else if (dataRequest.Type == 2) { queries.Add(Query.EQ(MEMedicationMapping.CustomProperty, true)); } } queries.Add(Query.EQ(MEMedicationMapping.DeleteFlagProperty, false)); queries.Add(Query.EQ(MEMedicationMapping.TTLDateProperty, BsonNull.Value)); IMongoQuery mQuery = Query.And(queries); string[] fields = { MEMedicationMapping.IdProperty, MEMedicationMapping.FullNameProperty, MEMedicationMapping.RouteProperty, MEMedicationMapping.StrengthProperty, MEMedicationMapping.FormProperty, MEMedicationMapping.CustomProperty }; List <MEMedicationMapping> meMMs = null; if (dataRequest.Skip == 0 && dataRequest.Take == 0) { meMMs = ctx.MedicationMaps.Collection.Find(mQuery).SetFields(fields).ToList(); } else { meMMs = ctx.MedicationMaps.Collection.Find(mQuery).SetFields(fields).SetSkip(dataRequest.Skip).SetLimit(dataRequest.Take).ToList(); } if (meMMs != null && meMMs.Count > 0) { list = new List <MedicationMapData>(); meMMs.ForEach(p => { MedicationMapData data = AutoMapper.Mapper.Map <MedicationMapData>(p); list.Add(data); }); } } return(list); } catch (Exception) { throw; } }
public PatientMedSupp SavePatientMedSupp(PostPatientMedSuppRequest request) { PatientMedSupp patientMedSupp = null; try { if (request.PatientMedSupp != null) { string name = string.IsNullOrEmpty(request.PatientMedSupp.Name) ? string.Empty : request.PatientMedSupp.Name.ToUpper(); string form = string.IsNullOrEmpty(request.PatientMedSupp.Form) ? string.Empty : request.PatientMedSupp.Form.ToUpper(); string route = string.IsNullOrEmpty(request.PatientMedSupp.Route) ? string.Empty : request.PatientMedSupp.Route.ToUpper(); string strength = string.IsNullOrEmpty(request.PatientMedSupp.Strength) ? string.Empty : request.PatientMedSupp.Strength; #region Search MedicationMap // Search if any record exists with the given combination of name, strength, route and form. GetMedicationMapsRequest mmRequest = new GetMedicationMapsRequest { Name = name, Route = route, Form = form, Strength = strength, ContractNumber = request.ContractNumber, UserId = request.UserId, Version = request.Version }; List <MedicationMapData> list = EndpointUtil.SearchMedicationMap(mmRequest); #endregion if (list == null) { MedicationMapData medData = null; if (string.IsNullOrEmpty(request.PatientMedSupp.FamilyId)) { #region Insert MedicationMap PostMedicationMapRequest insertReq = new PostMedicationMapRequest { MedicationMap = new DTO.MedicationMap { FullName = name, SubstanceName = string.Empty, Strength = strength, Route = route, Form = form, Custom = true, Verified = false }, ContractNumber = request.ContractNumber, UserId = request.UserId, Version = request.Version }; medData = EndpointUtil.InsertMedicationMap(insertReq); #endregion } else { #region Update MedicationMap // This saves the initialized medicine map PutMedicationMapRequest req = new PutMedicationMapRequest { MedicationMap = new DTO.MedicationMap { Id = request.PatientMedSupp.FamilyId, FullName = name, SubstanceName = string.Empty, Strength = strength, Route = route, Form = form, Custom = true, Verified = false }, ContractNumber = request.ContractNumber, UserId = request.UserId, Version = request.Version }; medData = EndpointUtil.UpdateMedicationMap(req); #endregion } RegisterMedication(request, medData); } #region Calculate NDC codes. bool calculateNDC = false; if (request.Insert) { calculateNDC = true; request.PatientMedSupp.SystemName = Constants.SystemName; } else { // On update, check for ReCalculateNDC flag. if (request.RecalculateNDC) { calculateNDC = true; } } if (calculateNDC) { request.PatientMedSupp.NDCs = EndpointUtil.GetMedicationNDCs(request); } #endregion string sigCode = CalculateSigCode(request); if (!string.IsNullOrEmpty(sigCode)) { request.PatientMedSupp.SigCode = sigCode; } PatientMedSuppData data = EndpointUtil.SavePatientMedSupp(request); if (data != null) { patientMedSupp = Mapper.Map <PatientMedSupp>(data); } } return(patientMedSupp); } catch (Exception ex) { throw ex; } }