C2025-023 Electronic Procedures - Modifications to PROMS (Phase 1)
This commit is contained in:
@@ -19,6 +19,7 @@ using System.Xml;
|
||||
using System.Drawing;
|
||||
using System.ComponentModel;
|
||||
using System.Collections.Generic;
|
||||
using Volian.Base.Library;
|
||||
|
||||
namespace VEPROMS.CSLA.Library
|
||||
{
|
||||
@@ -226,6 +227,34 @@ namespace VEPROMS.CSLA.Library
|
||||
//}
|
||||
}
|
||||
OnFormatLoaded(null, new FormatEventArgs("Formats Updated"));
|
||||
|
||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
//Begin section for processing Electronic Procedure (EP) Format Files
|
||||
// now loop through all EP format files
|
||||
string epPath = fmtPath.Replace("\\fmtall", "\\epall");
|
||||
DirectoryInfo diEP = new DirectoryInfo(epPath);
|
||||
if (diEP.Exists)
|
||||
{
|
||||
FileInfo[] fisEP = diEP.GetFiles("*.xml");
|
||||
OnFormatLoaded(null, new FormatEventArgs(fisEP.Length.ToString() + " EP Formats to Load"));
|
||||
foreach (FileInfo fi in fisEP)
|
||||
{
|
||||
string fmtname = Path.GetFileNameWithoutExtension(fi.Name);
|
||||
try
|
||||
{
|
||||
AddEPFormatToDB(fmtname, DateTime.Now, VlnSettings.UserID, epPath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message);
|
||||
}
|
||||
}
|
||||
OnFormatLoaded(null, new FormatEventArgs("EP Formats Updated"));
|
||||
|
||||
// update all in-use annotation types that have Electronic Procedures
|
||||
EPFormatFile.UpdateAllInUseEPAnnotationTypes();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static Dictionary<string, int> _LookupFormats;
|
||||
@@ -338,8 +367,54 @@ namespace VEPROMS.CSLA.Library
|
||||
}
|
||||
return rec;
|
||||
}
|
||||
|
||||
//C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
//Procedure to load the EP format fiels into the DB
|
||||
private static void AddEPFormatToDB(string formatname, DateTime Dts, string Userid, string epPath)
|
||||
{
|
||||
string fmtdata = null;
|
||||
FileInfo fmtfi = null;
|
||||
XmlDocument xd = null;
|
||||
|
||||
OnFormatLoaded(null, new FormatEventArgs("Loading Format " + formatname));
|
||||
|
||||
string path = Path.Combine(epPath, formatname + ".xml");
|
||||
if (File.Exists(path))
|
||||
{
|
||||
try
|
||||
{
|
||||
using (StreamReader srf = new StreamReader(path))
|
||||
{
|
||||
fmtfi = new FileInfo(path);
|
||||
xd = new XmlDocument();
|
||||
xd.XmlResolver = null;
|
||||
xd.Load(srf);
|
||||
fmtdata = xd.OuterXml;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
OnFormatLoaded(null, new FormatEventArgs("Error Loading Format " + formatname));
|
||||
_MyLog.ErrorFormat($"AddEPFormatToDB('{path}')");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(Userid)) Userid = "Migration";
|
||||
|
||||
try
|
||||
{
|
||||
EPFormatFile.UpdateEPFormat(formatname, fmtdata, Userid);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_MyLog.ErrorFormat($"AddFormatToDB-make format('{path}')");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
public partial class FormatInfo : IFormatOrFormatInfo
|
||||
|
||||
public partial class FormatInfo : IFormatOrFormatInfo
|
||||
{
|
||||
//transition report stuff
|
||||
private static Dictionary<int, string> _TransitionTypes;
|
||||
|
@@ -2112,6 +2112,45 @@ namespace VEPROMS.CSLA.Library
|
||||
return (sd.Type == type);
|
||||
}
|
||||
|
||||
// C2025-023 - Electronic Procedures - Modifications to PROMS
|
||||
//return EPFields that match this step type or a parent step type
|
||||
public EPFields GetValidEPFields(int AnnTypeID)
|
||||
{
|
||||
EPFields filtered = new EPFields();
|
||||
EPFields unfiltered = ActiveFormat.PlantFormat.EPFormatFiles.First(x => x.AnnotationTypeID == AnnTypeID).FieldList;
|
||||
|
||||
//Build list of step type and step type of it's parents
|
||||
List<string> steptypelist = new List<string>();
|
||||
if ((int)MyContent.Type < 20000) return filtered;
|
||||
int stepType = ((int)MyContent.Type) % 10000;
|
||||
StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList;
|
||||
if (stepType > sdlist.MaxIndex)
|
||||
{
|
||||
Console.WriteLine("Error getting type - contentid = {0}", MyContent.ContentID);
|
||||
return filtered;
|
||||
}
|
||||
StepData sd = sdlist[stepType];
|
||||
while (sd.Index != 0)
|
||||
{
|
||||
steptypelist.Add(sd.Type);
|
||||
sd = sdlist[sd.ParentType];
|
||||
}
|
||||
|
||||
//if unfiltered list contains All as a step type, include it
|
||||
foreach (EPField EP in unfiltered)
|
||||
{
|
||||
//if unfiltered list contains All as a step type, include it
|
||||
if (EP.IsValidForStepType("All"))
|
||||
filtered.Add(EP);
|
||||
|
||||
//check for intersections between unfiltered list and step type list
|
||||
if (EP.validforsteptypes.Any(steptypelist.Contains))
|
||||
filtered.Add(EP);
|
||||
}
|
||||
|
||||
return filtered;
|
||||
}
|
||||
|
||||
// determine if the the current step should automatically be placed on the Continuous Action Summary
|
||||
// Note, this logic only checks the format setting of the step. We will check the value of the Tag's Check Box later on.
|
||||
public bool IncludeOnContActSum
|
||||
|
Reference in New Issue
Block a user