public GetMedicationNDCsDataResponse GetMedicationNDCs(GetMedicationNDCsDataRequest request) { GetMedicationNDCsDataResponse result = new GetMedicationNDCsDataResponse(); var repo = StubRepositoryFactory.GetMedicationRepository(request, RepositoryType.Medication); result.NDCcodes = repo.FindNDCCodes(request) as List <string>; return(result); }
public void GetMedicationNDCs_Test() { GetMedicationNDCsDataRequest request = new GetMedicationNDCsDataRequest { Context = context, ContractNumber = contractNumber, UserId = userId, Version = version, Name = "ASPIRIN", Route = "ORAL", Strength = "30 mg", Form = "TABLET" }; GetMedicationNDCsDataResponse response = cm.GetMedicationNDCs(request); Assert.IsTrue(response.NDCcodes.Count == 2); }
public GetMedicationNDCsDataResponse Post(GetMedicationNDCsDataRequest request) { var response = new GetMedicationNDCsDataResponse { Version = request.Version }; try { RequireUserId(request); response = Manager.GetMedicationNDCs(request); } catch (Exception ex) { RaiseException(response, ex); } return(response); }
public GetMedicationNDCsDataResponse GetMedicationNDCs(GetMedicationNDCsDataRequest request) { try { GetMedicationNDCsDataResponse result = new GetMedicationNDCsDataResponse(); var repo = MedicationRepositoryFactory.GetMedicationRepository(request, RepositoryType.Medication); List <MEMedication> meMeds = repo.FindNDCCodes(request) as List <MEMedication>; if (meMeds != null && meMeds.Count > 0) { List <string> ndcs = new List <string>(); // Get list of unique NDC codes. meMeds.ForEach(m => { if (!ndcs.Contains(m.NDC)) { ndcs.Add(m.NDC); } }); result.NDCcodes = ndcs; } return(result); } catch (Exception ex) { throw ex; } }
/// <summary> /// Find the exact match on name, strength, route and form /// If it does not yield any result, find a match on name, route and form. /// If it does not yield any result, find a match on name and route. /// If it does not yield any result, find a match on name. /// </summary> /// <param name="request"></param> /// <returns></returns> public object FindNDCCodes(object request) { List <MEMedication> list = new List <MEMedication>(); GetMedicationNDCsDataRequest dataRequest = (GetMedicationNDCsDataRequest)request; try { using (MedicationMongoContext ctx = new MedicationMongoContext(ContractDBName)) { if (!IsNullOrEmpty(new String[] { dataRequest.Name, dataRequest.Strength, dataRequest.Unit, dataRequest.Route, dataRequest.Form })) { // find a match on name, strength, unit, route and form) List <IMongoQuery> query1 = new List <IMongoQuery>(); query1.Add(Query.EQ(MEMedication.DeleteFlagProperty, false)); query1.Add(Query.EQ(MEMedication.FullNameProperty, dataRequest.Name)); query1.Add(Query.EQ(MEMedication.StrengthProperty, dataRequest.Strength)); query1.Add(Query.EQ(MEMedication.UnitProperty, dataRequest.Unit)); query1.Add(Query.EQ(MEMedication.RouteProperty, dataRequest.Route)); query1.Add(Query.EQ(MEMedication.FormProperty, dataRequest.Form)); IMongoQuery mQuery1 = Query.And(query1); list = ctx.Medications.Collection.Find(mQuery1).SetFields(MEMedication.NDCProperty).ToList(); } if (list.Count == 0 && !IsNullOrEmpty(new String[] { dataRequest.Name, dataRequest.Strength, dataRequest.Route, dataRequest.Form })) { // find a match on name, strength, route and form) List <IMongoQuery> query2 = new List <IMongoQuery>(); query2.Add(Query.EQ(MEMedication.DeleteFlagProperty, false)); query2.Add(Query.EQ(MEMedication.FullNameProperty, dataRequest.Name)); query2.Add(Query.EQ(MEMedication.StrengthProperty, dataRequest.Strength)); query2.Add(Query.EQ(MEMedication.RouteProperty, dataRequest.Route)); query2.Add(Query.EQ(MEMedication.FormProperty, dataRequest.Form)); IMongoQuery mQuery2 = Query.And(query2); list = ctx.Medications.Collection.Find(mQuery2).SetFields(MEMedication.NDCProperty).ToList(); } if (list.Count == 0 && !IsNullOrEmpty(new String[] { dataRequest.Name, dataRequest.Route, dataRequest.Form })) { // find a match on name, route and form. List <IMongoQuery> query3 = new List <IMongoQuery>(); query3.Add(Query.EQ(MEMedication.DeleteFlagProperty, false)); query3.Add(Query.EQ(MEMedication.FullNameProperty, dataRequest.Name)); query3.Add(Query.EQ(MEMedication.RouteProperty, dataRequest.Route)); query3.Add(Query.EQ(MEMedication.FormProperty, dataRequest.Form)); IMongoQuery mQuery3 = Query.And(query3); list = ctx.Medications.Collection.Find(mQuery3).SetFields(MEMedication.NDCProperty).ToList(); } if (list.Count == 0 && !IsNullOrEmpty(new String[] { dataRequest.Name, dataRequest.Route })) { // find a match on name and route. List <IMongoQuery> query4 = new List <IMongoQuery>(); query4.Add(Query.EQ(MEMedication.DeleteFlagProperty, false)); query4.Add(Query.EQ(MEMedication.FullNameProperty, dataRequest.Name)); query4.Add(Query.EQ(MEMedication.RouteProperty, dataRequest.Route)); IMongoQuery mQuery4 = Query.And(query4); list = ctx.Medications.Collection.Find(mQuery4).SetFields(MEMedication.NDCProperty).ToList(); } if (list.Count == 0) { // find a match on name. List <IMongoQuery> query5 = new List <IMongoQuery>(); query5.Add(Query.EQ(MEMedication.DeleteFlagProperty, false)); if (!string.IsNullOrEmpty(dataRequest.Name)) { query5.Add(Query.EQ(MEMedication.FullNameProperty, dataRequest.Name)); } IMongoQuery mQuery5 = Query.And(query5); list = ctx.Medications.Collection.Find(mQuery5).SetFields(MEMedication.NDCProperty).ToList(); } } return(list); } catch (Exception ex) { throw; } }