public async Task <ParseInteractions.Model> Handle(ParseInteractions.Query request, CancellationToken cancellationToken) { var interactions = new List <MedicationInteractionPair>(); await foreach (var drug in DrugInteractionParserAsync.ParseDrugInteractionsAsync(request.Jstring)) { request.Meds.Where(r => r.RxCui == drug.MedicationPair.Item1.RxCui) .Select(z => (drug.MedicationPair.Item1.DisplayName = z.Text, drug.MedicationPair.Item1.TimeOrdered = z.TimeOrdered, drug.MedicationPair.Item1.Prescriber = z.Prescriber, drug.MedicationPair.Item1.FhirType = z.FhirType, drug.MedicationPair.Item1.ResourceId = z.ResourceId)).ToList(); request.Meds.Where(r => r.RxCui == drug.MedicationPair.Item2.RxCui) .Select(z => (drug.MedicationPair.Item2.DisplayName = z.Text, drug.MedicationPair.Item2.TimeOrdered = z.TimeOrdered, drug.MedicationPair.Item2.Prescriber = z.Prescriber, drug.MedicationPair.Item2.FhirType = z.FhirType, drug.MedicationPair.Item2.ResourceId = z.ResourceId)).ToList(); interactions.Add(drug); } return(new ParseInteractions.Model() { Interactions = interactions }); }
public void FirstInteractionTest() { //var interactions = _client.GetInteractionList(rxCUIs); // var reader = new StreamReader(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestJsonText\MultiDrugString.txt")); var jstring = reader.ReadToEnd(); var interactions = DrugInteractionParserAsync.ParseDrugInteractionsAsync(jstring); //Test for JAMIA interaction inclusion. All DrugBank interactions have "N/A" as severity Assert.Equal("Fentanyl 0.6 MG Oral Lozenge", interactions.ToListAsync().GetAwaiter().GetResult() .First().MedicationPair.Item1.DisplayName); }
public void SeverityTest() { //var interactions = _client.GetInteractionList(rxCUIs); // var reader = new StreamReader(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestJsonText\MultiDrugString.txt")); var jstring = reader.ReadToEnd(); var interactions = DrugInteractionParserAsync.ParseDrugInteractionsAsync(jstring); //Test for JAMIA interaction inclusion. All DrugBank interactions have "N/A" as severity Assert.True(interactions.ToListAsync().GetAwaiter().GetResult() .SelectMany(x => x.DrugInteractionDetails .Select(o => o.Severity)) .Any(s => s == "high")); }