C2025-024 Electronic Procedures Phase 2 - XML Export

Multi-Unit Resolution, and Fix RO Annotation resolution in Text
This commit is contained in:
2025-07-30 13:47:25 -04:00
parent 8c32d18aec
commit 44025c3978
2 changed files with 47 additions and 32 deletions

View File

@@ -128,10 +128,6 @@ namespace VEPROMS
MyProcedure = procedureInfo; MyProcedure = procedureInfo;
InitializeComponent(); InitializeComponent();
this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber; this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber;
//Preset path for single procedures.
PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
txtExport.Text = string.Format(@"{0}\{1}.pxml", PEIPath, MyProcedure.DisplayNumber.Replace("/", "_").Replace("\\", "_"));
_UnitIndex = unitIndex; _UnitIndex = unitIndex;
if (_UnitIndex > 0) if (_UnitIndex > 0)
@@ -140,6 +136,10 @@ namespace VEPROMS
MyProcedure.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex; MyProcedure.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = _UnitIndex;
FormClosed += RemoveUnit_OnClose; FormClosed += RemoveUnit_OnClose;
} }
//Preset path for single procedures.
PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database;
txtExport.Text = string.Format(@"{0}\{1}.pxml", PEIPath, MyProcedure.DisplayNumber.Replace("/", "_").Replace("\\", "_"));
} }
private void dlgExportImport_Load(object sender, EventArgs e) private void dlgExportImport_Load(object sender, EventArgs e)
{ {
@@ -1972,23 +1972,29 @@ namespace VEPROMS
private string ResolveMultiUnitROs(ContentInfo ci) private string ResolveMultiUnitROs(ContentInfo ci)
{ {
string ciText = ci.Text; string ciText = ci.Text;
DocVersionInfo docver = null;
if (_UnitIndex != 0 && ci.ContentRoUsageCount > 0)
{
ROFSTLookup lookup = null;
if (MyProcedure?.MyDocVersion != null) if (MyProcedure?.MyDocVersion != null)
{ {
lookup = MyProcedure.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyProcedure.MyDocVersion); docver = MyProcedure.MyDocVersion;
} }
else if (MyDocVersion != null) else if (MyDocVersion != null)
{ {
lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion); docver = MyDocVersion;
} }
else if (MyFolder.FolderDocVersions != null && MyFolder.FolderDocVersions.Count > 0) else if (MyFolder.FolderDocVersions != null && MyFolder.FolderDocVersions.Count > 0)
{ {
lookup = MyFolder.FolderDocVersions[0].DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyFolder.FolderDocVersions[0]); docver = MyFolder.FolderDocVersions[0];
} }
if (_UnitIndex != 0 && docver != null)
{
ciText = DisplayText.ResolveUnitSpecific(docver, ciText);
if (ci.ContentRoUsageCount > 0)
{
ROFSTLookup lookup = docver.DocVersionAssociations[0].MyROFst.GetROFSTLookup(docver);
if (lookup != null) if (lookup != null)
{ {
foreach (var RO in ci.ContentRoUsages) foreach (var RO in ci.ContentRoUsages)
@@ -2006,6 +2012,7 @@ namespace VEPROMS
} }
} }
}
return ciText; return ciText;

View File

@@ -115,6 +115,12 @@ namespace VEPROMS
if (epexportblank || !string.IsNullOrEmpty(val)) if (epexportblank || !string.IsNullOrEmpty(val))
{ {
if (_UnitIndex != 0)
{
val = DisplayText.ResolveUnitSpecific(ii.MyDocVersion, val);
}
XmlElement xindivid = xe.OwnerDocument.CreateElement(EP.name); XmlElement xindivid = xe.OwnerDocument.CreateElement(EP.name);
//need to resolve ROs ROSingle, ROMulti, in text //need to resolve ROs ROSingle, ROMulti, in text
@@ -140,14 +146,14 @@ namespace VEPROMS
//XML element with the same xml name as the AccID //XML element with the same xml name as the AccID
foreach (Match m in matches) foreach (Match m in matches)
{ {
ROFSTLookup.rochild roc = lookup.GetROChildByAccPageID(m.Groups[1].Value); ROFSTLookup.rochild roc = lookup.GetROChildByAccPageID(m.Groups[0].Value);
// Exclude replacing Images since are binary - for those, add a sub item // Exclude replacing Images since are binary - for those, add a sub item
if (Enumerable.Range(8, 15).Contains(roc.type)) if (Enumerable.Range(8, 15).Contains(roc.type))
{ {
xindivid.InnerText = val; xindivid.InnerText = val;
XmlElement xroid = AddGraphic(xindivid, m.Groups[1].Value, roc, myRODB, roc.type != 8); XmlElement xroid = AddGraphic(xindivid, m.Groups[0].Value, roc, myRODB, roc.type != 8);
xindivid.AppendChild(xroid); xindivid.AppendChild(xroid);
} }
@@ -159,7 +165,7 @@ namespace VEPROMS
rocvalue = rocvalue.Replace("\xF8", "\xB0"); rocvalue = rocvalue.Replace("\xF8", "\xB0");
rocvalue = rocvalue.Replace("\x7F", "\x394"); //delta rocvalue = rocvalue.Replace("\x7F", "\x394"); //delta
if (convertCaretToDeltaSymbol) rocvalue = rocvalue.Replace("^", "\x394"); // delta if (convertCaretToDeltaSymbol) rocvalue = rocvalue.Replace("^", "\x394"); // delta
val = val.Replace($"<{m.Groups[1].Value}>", rocvalue); val = val.Replace($"{m.Groups[0].Value}", rocvalue);
xindivid.InnerText = val; xindivid.InnerText = val;
} }
} }
@@ -288,6 +294,8 @@ namespace VEPROMS
// - that has an attribute designating the location of the image file // - that has an attribute designating the location of the image file
private XmlElement AddGraphic(XmlElement xindivid, string Name, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti) private XmlElement AddGraphic(XmlElement xindivid, string Name, ROFSTLookup.rochild roc, RODbInfo rodb, bool isMulti)
{ {
Name = Name.Replace("<", "").Replace(">", "");
XmlElement xroid = xindivid.OwnerDocument.CreateElement(Name); XmlElement xroid = xindivid.OwnerDocument.CreateElement(Name);
string imgfile = GetROImageFileLocation(roc, rodb, isMulti); string imgfile = GetROImageFileLocation(roc, rodb, isMulti);