From 92153f6d6c2107ec0a1efd4e008b83661be91c9a Mon Sep 17 00:00:00 2001 From: Daniel Kraus Date: Tue, 1 Dec 2015 21:10:42 +0100 Subject: [PATCH] Import prescriptions by columns. --- zaaReloaded2/Medication/Importer.cs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/zaaReloaded2/Medication/Importer.cs b/zaaReloaded2/Medication/Importer.cs index 2057683..853f64f 100755 --- a/zaaReloaded2/Medication/Importer.cs +++ b/zaaReloaded2/Medication/Importer.cs @@ -96,15 +96,33 @@ namespace zaaReloaded2.Medication protected virtual void Import(string text) { - Prescriptions = new List(); + List list = new List(); + IList addition; + int columns = 1; string[] lines = Helpers.SplitParagraphs(text); foreach (string line in lines) { if (Prescription.IsPrescriptionLine(line)) { - Prescriptions.AddRange(Prescription.ManyFromLine(line)); + addition = Prescription.ManyFromLine(line); + columns = System.Math.Max(columns, addition.Count); + list.AddRange(addition); } } + + // If the input had several columns, sort the prescriptions by + // column. + // TODO: Make this more generic so it works with 3 or 4 columns as well. + if (columns == 2) + { + var firstCol = list.Where((item, index) => index % 2 == 0); + var secondCol = list.Where((item, index) => index % 2 != 0); + Prescriptions = firstCol.Concat(secondCol).ToList(); + } + else + { + Prescriptions = list; + } } #endregion