public static void WriteConfig(CapiConfig config) { var configFilePath = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"..{Path.DirectorySeparatorChar}cfg{Path.DirectorySeparatorChar}config.json")); FileSystem.DirectoryExistsIfNotCreate(Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"..{Path.DirectorySeparatorChar}cfg{Path.DirectorySeparatorChar}"))); File.WriteAllText(configFilePath, JsonConvert.SerializeObject(config, new CapiConfigJsonConverter())); }
private void HandleDicomConf(CapiConfig conf, JToken jtoken) { // This needs extra attention because we're using a list of abstracts. conf.DicomConfig.LocalNode = JsonConvert.DeserializeObject <DicomConfig.DicomConfigNode>(jtoken["LocalNode"].ToString()); var remoteNodes = JsonConvert.DeserializeObject <List <DicomConfig.DicomConfigNode> >(jtoken["RemoteNodes"].ToString()); conf.DicomConfig.RemoteNodes = new List <IDicomNode>(); foreach (var remoteNode in remoteNodes) { conf.DicomConfig.RemoteNodes.Add(remoteNode); } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jsonToken = JToken.Load(reader); var conf = CapiConfig.GenerateDefault(); if (jsonToken["AgentDbConnectionString"] != null) { conf.AgentDbConnectionString = jsonToken["AgentDbConnectionString"].ToString(); } if (jsonToken["Binaries"] != null) { conf.Binaries = jsonToken["Binaries"].ToObject <Binaries>(); } if (jsonToken["DefaultRecipePath"] != null) { conf.DefaultRecipePath = jsonToken["DefaultRecipePath"].ToString(); } if (jsonToken["DicomConfig"] != null) { HandleDicomConf(conf, jsonToken["DicomConfig"]); } if (jsonToken["Hl7ProcessPath"] != null) { conf.Hl7ProcessPath = jsonToken["Hl7ProcessPath"].ToString(); } if (jsonToken["ProcessCasesAddedByHL7"] != null) { conf.ProcessCasesAddedByHL7 = jsonToken["ProcessCasesAddedByHL7"].ToObject <bool>(); } if (jsonToken["ManualProcessPath"] != null) { conf.ManualProcessPath = jsonToken["ManualProcessPath"].ToString(); } if (jsonToken["ProcessCasesAddedManually"] != null) { conf.ProcessCasesAddedManually = jsonToken["ProcessCasesAddedManually"].ToObject <bool>(); } if (jsonToken["RunInterval"] != null) { conf.RunInterval = jsonToken["RunInterval"].ToString(); } if (jsonToken["ImagePaths"] != null) { conf.ImagePaths = jsonToken["ImagePaths"].ToObject <ImagePaths>(); } return(conf); }
public static Recipe Default() { CapiConfig conf = CapiConfig.GetConfig(); string sourceAet = ""; string destAet = ""; if (conf.DicomConfig?.RemoteNodes != null && conf.DicomConfig.RemoteNodes.Count > 0) { sourceAet = conf.DicomConfig.RemoteNodes[0].AeTitle; if (conf.DicomConfig.RemoteNodes.Count > 1) { destAet = conf.DicomConfig.RemoteNodes[1].AeTitle; } else { destAet = sourceAet; } } // By default we will match any of the following series. const string SERIES_DESC = "flair sag;flair sag 3d;t2 sag flair;flair sag fs;flair sag 3d - t2 space da-fl;3d sag flair fs;t2 sag flair 3d;flair 3d t2_spc_irprep_ns_sag_p2_da-fl_iso;3d flair_sag_p3_iso;3d t2 flair sag;t2_spc_irprep_ns_sag_p2_da-fl_iso;flair 3d;t2_3d_sag flair iso;sag 3d flair;t2 sag flair 3d;sag 3d flair"; return(new Recipe() { SourceAet = sourceAet, PatientId = "", PatientFullName = "", PatientBirthDate = "", CurrentAccession = "", PriorAccession = "", ExtractBrain = true, RegisterTo = RegisterToOption.CURRENT, BiasFieldCorrection = true, CurrentSeriesCriteria = new List <SeriesSelectionCriteria>(new[] { new SeriesSelectionCriteria() { PriorStudyIndex = 0, // 0-based index i.e. 0=most recent, 1=second most recent MostRecentPriorStudy = false, // overrides PriorStudyIndex if true; true equals PriorStudyIndex of 0 OldestPriorStudy = false, // overrides PriorStudyIndex if true CutOffPeriodValueInMonths = "", // leave blank to include all dates StudyDescription = "demyelin", StudyDescriptionOperand = Common.StringOperand.Contains, StudyDate = "", StudyDateOperand = Common.DateOperand.Before, SeriesDescription = SERIES_DESC, SeriesDescriptionOperand = Common.StringOperand.OccursIn, SeriesDescriptionDelimiter = ";" } }), PriorSeriesCriteria = new List <SeriesSelectionCriteria>(new[] { new SeriesSelectionCriteria() { PriorStudyIndex = 0, // 0-based index i.e. 0=most recent, 1=second most recent MostRecentPriorStudy = false, // overrides PriorStudyIndex if true; true equals PriorStudyIndex of 0 OldestPriorStudy = false, // overrides PriorStudyIndex if true CutOffPeriodValueInMonths = "", // leave blank to include all dates StudyDescription = "", StudyDescriptionOperand = Common.StringOperand.Contains, StudyDate = "", StudyDateOperand = Common.DateOperand.Before, SeriesDescription = SERIES_DESC, SeriesDescriptionOperand = Common.StringOperand.OccursIn, SeriesDescriptionDelimiter = ";" } }), CompareSettings = new CompareSettings() { CompareIncrease = true, CompareDecrease = true, BackgroundThreshold = 10, MinRelevantStd = -1, MaxRelevantStd = 5, MinChange = 0.8f, MaxChange = 5, GenerateHistogram = true }, OutputSettings = new OutputSettings() { ResultsDicomSeriesDescription = "VisTarsier Results", ReslicedDicomSeriesDescription = "VisTarsier Resliced", FilesystemDestinations = new List <string>(), OnlyCopyResults = false, DicomDestinations = new List <string> (new[] { destAet }) } }); }