Information in this article applies to:
Article ID: HXB1148 — Created: 12 Feb 2018 — Reviewed: 11 Mar 2018
I have a dual objective uScopeHXII and have noticed some problems with the Deep Zoom images scanned with the higher power objective. In particular, the information displayed indicates that the image was scanned using the lower powered objective. Additionally, the magnification power indicator and selectors are wrong for the scan.
What is required to correct the information display and magnification controls?
This problem is caused by the way in which the objective power metadata is maintained in internal Flash memory of the uScopeHXII. One objective (usually the lower power) is the primary objective while higher powered objective(s) are secondary objectives. Only the primary objective metadata are stored in the uScope Flash memory.
When secondary objectives are used, the metadata copied to the scan information files represents the primary objective. As a result, the listed objective, pixel mapping, and objective magnification display and controls are configured for the primary objective. To correct this problem, you must make a small change to the metadata of the DZInfo.XML file that is generated for each Deep Zoom image.
Fortunately, this is easily done using the following script that you can assign to various parts of your workflow within uScope Navigator.
'================================================================================================== '================================================================================================== Option Explicit <job> <script language="VBScript"> '================================================================================================== '================================================================================================== Function XMLUpdateObjPower (sXMLPath, sObjPower) Const sSettingFileName = "DZInfo.xml" sObjPower = Replace(Trim(LCase(sObjPower)), "x", "") Select Case (sObjPower) Case "4" sObjPower = sObjPower & "x" Case "10" sObjPower = sObjPower & "x" Case "20" sObjPower = sObjPower & "x" Case "40" sObjPower = sObjPower & "x" Case "60" sObjPower = sObjPower & "x" Case "100" sObjPower = sObjPower & "x" Case Else XMLUpdateObjPower = false Exit Function End Select If Right(sXMLPath,1) = "\" Then sXMLPath = Left(sXMLPath, Len(sXMLPath)-1) On Error Resume Next Set xmlDoc = CreateObject("Microsoft.XMLDOM") xmlDoc.Async = "False" xmlDoc.Load(sXMLPath & "\" & sSettingFileName) Set xObjPower = xmlDoc.selectsinglenode ("//ScanInfo/ObjectivePower") xObjPower.text = sObjPower xmlDoc.Save(sXMLPath & "\" & sSettingFileName) Set xObjPower = Nothing Set xmlDoc = Nothing If Err.Number <> 0 Then XMLUpdateObjPower = false Else XMLUpdateObjPower = true End If End Function '================================================================================================== '================================================================================================== Function main () Set colNamedArguments = WScript.Arguments.Named strDZFolder = colNamedArguments.Item("Folder") strObjPower = colNamedArguments.Item("ObjPower") If XMLUpdateObjPower (strDZFolder,strObjPower) = False Then Wscript.Echo "Update Failed!" End Function '================================================================================================== '================================================================================================== main() </script> </job> '================================================================================================== '==================================================================================================
Copy the above script and paste it into a file on your PC. For illustration purposes, we place all scripts in the C:\Scripts folder.
Invoke this script as follows:
DZInfo-Fixup.wsf "/Folder:%DZPath%" "/ObjPower:40x"
from within the uScope Navigator application for each Deep Zoom Image created for the secondary objective (40x in this example). Quotes are used to encapsulate arguments that may include spaces (like path names).
Following are several different methods to run this script.
You can add buttons to the Job Manager that run scripts you specify. The job manager buttons that appear on the Job Manager dialog when you select a Scan Set or Deep Zoom Image.
The Job Manager Button scripts are added via the Program Options — Job Manager Buttons tab.
After adding the Job Manager button, selecting a Deep Zoom Image from the Job Manager displays the button in the bottom menu as shown.
You must click this button to update the metadata for every Deep Zoom Image that was scanned with the secondary (40x in this example) objective.
You can add a script that is run every time a Deep Zoom image is created. The downside of this technique is that you must remember to disable this script when you switch back to the primary objective.
Now, whenever you create a Deep Zoom Image, the script is automatically run and the appropriate metadata is added to the DZInfo.XML file.
You must remember to disable (remove) this script when scanning slides with the primary objective.
You can add buttons to the Deep Zoom Image Viewer that run scripts you specify. Up to three buttons can be added via the Program Options — Deep Zoom Buttons tab
When you open a Deep Zoom Image, the button appears in the viewer as shown. You must click this button to update the metadata for Deep Zoom Images that were scanned with the secondary (40x in this example) objective. The downside to this technique is that you must exit and reload the Deep Zoom Image Viewer for changes to take effect.