Technical FAQs

Question

What is the proper way of using affinity tokens in cluster mode where multiple file IDs using multiple affinity tokens need to be combined?

Answer

If you are using PrizmDoc Server in cluster (multi-server) mode, and you are using Content Conversion Services to merge multiple files into one, or whenever multiple file ids using multiple affinity tokens need to be combined; your requests need to use a single affinity token. Because affinity tokens need to go in the header, you might think you are required to include all/both of the files’ affinity tokens in the header.

If you find yourself in this situation, the correct method is to re-use the first affinity token you get for all subsequent resources you create. For example, if you create a work file, you’ll get an affinity token back in the response. That affinity token needs to be set in the Accusoft-Affinity-Token request header of any subsequent resources (work files, content converter, viewing sessions, etc.) that you create later and want to use together.

An example is located here:

https://help.accusoft.com/PrizmDoc/latest/HTML/affinity-tokens-and-cluster-mode.html

The main takeaway here is that the initial request that is made to the server for a workfile will return an affinity token. This very same affinity token must be used in the header Accusoft-Affinity-Token for all subsequent requests in this conversion/stitching process.

The most relevant quote from that page is:

“In cluster mode, the PrizmDoc Server API will automatically generate an affinity token when it receives a POST request for a new ViewingSession, WorkFile, MarkupBurner, RedactionCreator, or ContentConverter resource and return it in the response. Once you have obtained an affinity token, you will need to pass this in with related requests using the Accusoft-Affinity-Token HTTP custom header.”

Here is a separate custom example of stitching two TIFF images together by converting them to a PDF.

First TIFF image

Request with no affinity token:

POST /PCCIS/V1/WorkFile HTTP/1.1
Host: prizmdocservername:18681
Content-Type: application/octet-stream

Response:

{
    "fileId": "I3GRFEfrw_K8fX4VJ7Z1bQ",
    "fileExtension": "tif",
    "affinityToken": "ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc="
}

Second TIFF image

Request:

POST /PCCIS/V1/WorkFile HTTP/1.1
Host: prizmdocservername:18681
Content-Type: application/octet-stream
Accusoft-Affinity-Token: ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc=

Response:

{
    "fileId": "I-CTRdFnaL8FLNQDUawTHw",
    "fileExtension": "tif",
    "affinityToken": "ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc="
}

Content Conversion

Request:

POST /v2/contentConverters HTTP/1.1
Host: prizmdocservername:18681
Content-Type: application/json
Accusoft-Affinity-Token: ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc=

{
    "input": {
        "sources": [
            { 
                "fileId": "I3GRFEfrw_K8fX4VJ7Z1bQ"
            },
            { 
                "fileId": "I-CTRdFnaL8FLNQDUawTHw"
            }
        ],
        "dest": {
            "format": "pdf"
        }
    }
}

Response:

{
    "input": {
        "dest": {
            "format": "pdf",
            "pdfOptions": {
                "forceOneFilePerPage": false
            }
        },
        "sources": [
            {
                "fileId": "I3GRFEfrw_K8fX4VJ7Z1bQ",
                "pages": ""
            },
            {
                "fileId": "I-CTRdFnaL8FLNQDUawTHw",
                "pages": ""
            }
        ]
    },
    "expirationDateTime": "2018-10-03T19:12:52.005Z",
    "processId": "1u6k5Y_l7yRfhWyfL1t4Yw",
    "state": "processing",
    "percentComplete": 0,
    "affinityToken": "ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc="
}

Content Conversion Request:

/v2/contentConverters/{processId}

GET /v2/contentConverters/1u6k5Y_l7yRfhWyfL1t4Yw HTTP/1.1
Host: prizmdocservername:18681
Accusoft-Affinity-Token: ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc=

Content Conversion Complete Response:

{
    "input": {
        "dest": {
            "format": "pdf",
            "pdfOptions": {
                "forceOneFilePerPage": false
            }
        },
        "sources": [
            {
                "fileId": "I3GRFEfrw_K8fX4VJ7Z1bQ",
                "pages": ""
            },
            {
                "fileId": "I-CTRdFnaL8FLNQDUawTHw",
                "pages": ""
            }
        ]
    },
    "expirationDateTime": "2018-10-03T19:12:52.005Z",
    "processId": "1u6k5Y_l7yRfhWyfL1t4Yw",
    "state": "complete",
    "percentComplete": 100,
    "output": {
        "results": [
            {
                "fileId": "tK4UbzryHWFoqOC6JJAjAg",
                "sources": [
                    {
                        "fileId": "I3GRFEfrw_K8fX4VJ7Z1bQ",
                        "pages": "1"
                    },
                    {
                        "fileId": "I-CTRdFnaL8FLNQDUawTHw",
                        "pages": "1"
                    }
                ],
                "pageCount": 2
            }
        ]
    }
}

Download The WorkFile:

/PCCIS/V1/WorkFile/{fileId}

GET /PCCIS/V1/WorkFile/1u6k5Y_l7yRfhWyfL1t4Yw HTTP/1.1
Host: prizmdocservername:18681
Accusoft-Affinity-Token: ZSTudgjA42h1CVCj0KkGuYiKn5nEFhmFrvA0AkMxDxc=
Question

I changed the value of viewingSessionTimeout

Answer

If you are using Windows, the value that you are looking to modify is the viewing.sessionLifetime in the central config file prizm-services-config.yml located in the root of the PrizmDoc installation directory (C:\Prizm on Windows, /usr/share/prizm on Linux).

Make sure it is uncommented and without any leading whitespace.

Additionally, please make sure the viewing.cacheLifetime is greater than the viewing.sessionLifetime value.

More information can be found here.

You must restart the PrizmDoc service in order for your changes to take affect.

Question

When looking at the configuration files for both PAS (pcc.win.yml, pcc.nix.yml) and PrizmDoc Server (prizm-services-config.yml), there appear to be similar settings for Viewing Session timeouts: defaults.viewingSessionTimeout (PAS) and viewing.sessionLifetime (Server). What is the difference between the two?

Answer

The difference is as follows:

PAS

defaults.viewingSessionTimeout

This setting is used when the viewing session POST requests use source.type="viewingPackage".

Prizm Server

viewing.sessionLifetime

This setting is used for all other viewing session POST requests.

Question

Why am I seeing requests sent through pcc.ashx when they shouldn’t be?

Answer

The default option for the imageHandlerUrl is pcc.ashx so if, for instance, you misspelled imageHandlerUrl or in some other way do not have the setting properly implemented, you will see requests sent through pcc.ashx.

This has been seen when trying to set up the pas-service reverse proxy redirect for Prizm Application Services (PAS).

A sample implementation of this setting can be found in the viewer.js around line 288.

options.imageHandlerUrl = options.imageHandlerUrl || "../pcc.ashx";

 

FinTech adoption continues to accelerate. According to Wealth Professional, almost 40 percent of finance firms now prioritize the adoption of FinTech frameworks, even as new-to-market startups disrupt the status quo. 

However, spending alone isn’t enough to deliver streamlined and scalable FinTech processes. As noted by David Linthicum, Chief Cloud Strategy Officer at Deloitte in a recent protocol piece, firms now face the challenge of creating “high-quality, repeatable data processes with the profusion of systems involved in generating data” while simultaneously integrating unstructured and semi-structured data sources into existing processes.

At the front lines of this fundamental framework change is digital documents and business process workflows. Let’s dive in, and look at some of the biggest frustrations facing the finance industry, the solutions they need to streamline digital processes, and how Accusoft’s ImageGear can help redefine digital document delivery.


FinTech Framework Challenges

By leveraging data-driven techniques and digital-first processes, Forbes notes that it’s possible for even startup firms to differentiate their service delivery and compete with huge financial brands — but only when digital document processes align with on-demand performance expectations. 

Consider common use cases such as loan origination, credit applications, or mortgage approvals. Many FinTech firms now target client pre-approval within 24 hours rather than the days or weeks required by traditional finance corporations. The problem? As digital document processes naturally scale, so does complexity, creating a practical paradox around three key challenges:

  • Speed As noted above, many FinTech firms are looking to disrupt incumbent efforts by reducing approval times and increasing customer satisfaction. As the number and type of digital documents required for timely approval expands, disparate processes conspire to stifle speed. Consider a loan origination requiring identity verification, income confirmation, and current debt load documents for pre-approval, all of which are in different file formats, forcing firms to use multiple software solutions and slowing their progress.
  • SecurityCybersecurity and compliance are critical for FinTech firms to succeed, but both requirements come with rapid scaling complexity. For example, a recent FDIC document lists more than 200 types of Compliance Information and Document Request (CIDR) forms which must be customized for each financial use case. The result? Increased document processing volumes drives increased complexity and opens potential security gaps.
  • ConsistencyDigital data consistency is critical to ensure accurate approvals and assess potential risks, but contrasting document processes create the ideal environment for human error. Despite best efforts on the part of employees, the more manual processes introduced into FinTech functions, the greater the chance of misplaced assets or data conversion mistakes.

Streamlined Structure Solutions

To bridge the gap between FinTech potential and fast-track document processes, companies need solutions that deliver four broad benefits:

  • Document ConversionFinTech firms now face a diverse range of documents that often frustrate efforts to unify key data. Here, integrated conversion functionality is critical to ensure employees have the tools they need to quickly convert key documents without having to open multiple applications and manually move or manipulate data.
  • On-Demand AnnotationSpeaking of data, it’s also essential for staff to collaborate on key documents, especially as many FinTech firms embrace the remote work revolution. Advanced annotation tools that allow asynchronous collaboration are essential to ensure employees always have access to the most current document version and administrators can easily determine who edited documents, when, and why.
  • Digital CompressionAs digital documents become the de facto financial standard, storage space is at a premium. This is especially problematic for larger document types such as PDFs, which are often preferred by FinTech firms for the ability to easily control access, editing rights, and collaboration. Uncompressed, these PDFs can quickly overwhelm even enterprise storage systems, forcing companies to either spend more on cloud services or invest in bigger datacenters. Reducing PDF size both saves space and helps companies streamline document sharing.
  • PDF ManipulationWhile read-only access makes PDFs ideal for FinTech firms that need to share specific information without introducing security risk, adjusting and editing these documents in-house often requires multiple applications and increased employee effort. Even more worrisome? Staff encountering functional limits may opt for free, online applications that could compromise document confidentiality.

Practical Process Performance

ImageGear is designed to help FinTech firms both overcome current frustrations and help future-proof financial frameworks by combining disparate document functions into a single-source application and improve overall performance. Standout features include:

  • Complete PDF ControlImageGear provides a single-platform solution for PDF manipulation and control. Developers can easily integrate an SDK that enables application users to create, edit, view, and print PDFs from within the confines of existing applications, create searchable PDF documents, or flatten acroforms to remove file interactivity, all while automatically conforming to the PDF language standard.
  • Secure Signature VerificationSecure digital signatures now form a critical component of on-demand FinTech forms processing. If companies can’t accept and verify client signatures, they’re not able to deliver speedy approvals and meet evolving consumer expectations. ImageGear allows companies to ensure that electronic documents are authentic. It uses encryption to verify that the information  has not been altered and is coming from a trusted source.
  • Agile AnnotationsMaking changes to PDF files is easy with ImageGear. Staff can quickly add text, lines, hot spots, encryption, rich text, images, or even audio as needed to ensure documents are complete, accurate, and ready for approval.
  • Comprehensive Conversion OptionsTo deliver on the promise of FinTech performance, firms must be able to quickly and easily convert and combine multiple file types into a single PDF and convert PDFs as necessary into other file formats. ImageGear empowers developers to integrate a way for application users to quickly convert documents to PDF, create PDF/A files from raster images, and convert scanned pages into PDF searchable text using advanced optical character recognition (OCR). Annotations marks can also be converted as needed into XML files for enhanced auditability.
  • Substantial File Size ReductionImageGear enables file compression of up to 45 percent to save valuable storage space and utilizes automatic analysis to determine optimal compression operations for best-fit results.

Ready to embrace the future of FinTech and redefine digital document delivery at scale? Start your free trial of ImageGear today!

Question

In PrizmDoc, why do I fail to load/convert Excel documents with the error “Exception from HRESULT: 0x800AC472”?

Answer

The error message Exception from HRESULT: 0x800AC472 is usually associated with a failure involving an Excel document, found in the MsOfficeConverter.log. Below are some known triggers of it:

If the user is logged in as "SYSTEM", "LocalSystem", or any other non-user-account variant, this will cause PrizmDoc to fail when using MSO services. This is expected behavior when working with Microsoft Office documents in PrizmDoc. Please see step 6 of the Windows Installation documentation regarding this:

http://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#windows-installation.html

"Specify the login account (account name and password) that PrizmDoc Server will run under. If you are using the Microsoft Office (MSO) Conversion add-on, please make sure that the "login account" is a real user account with Administrator rights. Running PrizmDoc under the LocalSystem user or another Microsoft Windows integrated service account is not supported for this option."

It’s also crucial that the copy of Microsoft Office on the system has been activated. A not-licensed, not-activated, expired, or trial license will all cause Microsoft Office to not work with PrizmDoc.

More information: https://help.accusoft.com/PrizmDoc/latest/HTML/windows-requirements.html

"The installed copy of Microsoft Office must be activated in order for PrizmDoc’s Microsoft Office Conversion Service to work properly. Not licensed, not activated, an expired or trial version of Microsoft Office will not work with PrizmDoc."

Your default printer must be the Microsoft XPS Document Writer when working with Excel documents in PrizmDoc. Specifying another printer could possibly lead to this exception.

More information: http://help.accusoft.com/PrizmDoc/latest/HTML/natively-render-mso-documents.html

"The Microsoft Office Conversion Service requires the Microsoft XPS Document Writer printer driver to be installed for the best conversion performance and rendering fidelity of MS Excel documents"

Ensure the Print Spooler service is started and the Microsoft XPS Document Writer is the default printer.

There is a known issue with version 13.3 of PrizmDoc where completely blank Excel files are not loadable in the Viewer. They will fail to load and throw the aforementioned HRESULT exception. This has been fixed in PrizmDoc version 13.6.

In short, please set up the PrizmDoc service correctly to run with a real user account, ensure the copy of Microsoft Office has been activated, and make sure the default printer is set to "Microsoft XPS Document Writer", then restart the service. This should fix this particular issue in most cases.


For more reading on considerations that Microsoft recommends when running their client-side MSO applications on the server, see this article:

Considerations for server-side Automation of Office

Question

Are there any specific applications or folders which should be excluded in order for PrizmDoc to work on a system with antivirus software?

Answer

As a suggestion, the first place to start would be your antivirus logs to ensure there are no entries specific to the following services:

  • conhost.exe
  • node.exe
  • policyhost.exe
  • PrizmApplicationServices.exe
  • wmiprvse.exe

If there are, you can exclude those files or the following folders where PrizmDoc is installed by default. If you modified the folder name for PrizmDoc, ensure to include that name.

  • C:\Prizm
  • C:\ProgramData\Accusoft

Please consult your antivirus documentation for instructions on how to add exclusions.

Question

How do I get Viewing Packages working in PrizmDoc?

Answer

Viewing Package Full Setup Instructions

We recommend pre-converting documents through a feature called viewing packages and it can be turned on in PAS Configuration.

viewingPackagesdefault: disabled – Enable Pre-Conversion Services and APIs, which allow you to pre-convert documents and cache on-demand document views in PAS, to improve the speed at which documents can be viewed, as well as reduce the processing time in PrizmDoc Server for repeat document views.

Enable Viewing Packages Feature

feature.viewingPackages: enabled

Since viewing packages also use a database you will need to create a database for PAS, configure a database, and run the scripts that are included to create the tables necessary for viewing packages to work.

Configuring Database


Install Microsoft SQL Express

Note 1: If you have Visual Studio installed, you might have to uninstall the recent versions of C++ that are installed before MSSQL Express will successfully install.

Remove Visual Studio C++ Redistributables

Note 2: When installing, use all default install settings except for setting a custom database instance id and set mixed mode authentication so a custom password can be set.

Turn On TCP/IP For Database Instance

Step 1:

step 1 enable tcp/ip

Step 2:

enable tcp/ip

Set Port 1433 for TCP/IP Connection

set port 1433 for tcp/ip connection

Restart SQL Express Instance

Right-click and select "Restart" or double-click and select "Restart".

restart sql express instance

Install Microsoft SQL Management Studio

Install from this downloads page

Connect To Database Instance In Microsoft SQL Management Studio

Connect To Database Instance In Microsoft SQL Management Studio

Create A Database In Microsoft SQL Management Studio

Create A Database In Microsoft SQL Management Studio

PAS Config Database Settings

feature.viewingPackages: "enabled"

database.adapter: "sqlserver"
database.host: "localhost"
database.port: 1433
database.user: "sa"
database.password: "Password1"
database.database: "prizmdb"


# Default timeout for the duration of a viewing session

defaults.viewingSessionTimeout: "20m"

viewingPackagesData.storage: "database"
viewingPackagesProcesses.storage: "database"
viewingSessionsData.storage: "database"
viewingSessionsProcessesMetadata.storage: "database"

viewingPackagesArtifactsMetadata.storage: "database"
viewingPackagesArtifacts.storage: "filesystem"
viewingPackagesArtifacts.path: "%ALLUSERSPROFILE%\\Accusoft\\Prizm\\ViewingPackages"

Create the database tables

Create the database tables

Restart PAS

Restart PAS


Create Viewing Package

viewing-package-creator

Get State of Viewing Package Creator Processing

viewing package creator process

Get Viewing Package Info With Document Id

viewing package info with document id

Create Viewing Session From Viewing Package With Document Id

Create Viewing Session From Viewing Package

View Document In Viewing Package With The Created Viewing Session Id

View Document In Viewing Package With The Created Viewing Session Id

For examples of creating viewing packages, click on the link below to see the various ways of using them:

Viewing Package Creators

Question

On Windows, are there any restrictions on the type of account that I can install PrizmDoc under? If so, what are they?

Answer

The account that you install PrizmDoc under has to be part of the Local Administrators group. As the installer creates Windows services, administrative-level permissions are required.

Question

The PrizmDoc Office Conversion Service on my localhost:18681/admin page says it’s “Starting” or has failed to start. What could the issue be?

Answer

This indicates that the license key provided is not licensed for the Microsoft Office Conversion feature.

To fix this, modify the fidelity.msOfficeDocumentsRenderer property in prizm-services-config.yml.

For information on the supported values, see the Fidelity section in the Central Configuration topic.

The top InsurTech news for 2020? In a post-pandemic world, insurance technology offers “the prescription for safety.” In a world now dominated by worry around what’s currently happening, what will probably happen, and what could suddenly happen under the right (or wrong) circumstances, the agile and adaptable potential of InsurTech offerings paves the way for proactive service delivery that both boosts consumer piece of mind and reduces insurer risk.

For insurance companies to capitalize on evolving market conditions and outpace the competition, data-driven decision making is key. Even more critical is the need to convert critical information from standardized ACORD formats into actionable, accessible data. Here’s how Accusoft’s FormSuite for Structured Forms can help.

The InsurTech Innovation

As noted by research firm PWC, “What used to be a sign of success may not be anymore.” Now, clients want next-day decisions about insurance applications and claims along with detailed descriptions of cost assessments and timelines for action. What does this mean in practice? 

That it’s no longer enough to rely on legacy solutions and applications to get the job done. Instead, companies need applications augmented by next-generation forms processing technology capable of integrating with internal assets while simultaneously delivering the data-driven decision-making inherently tied to quick, accurate, and complete insurance information capture.

Now more than ever, the fundamental value proposition for insurance companies is the ability to disrupt existing functional frameworks with new policies and practices that streamline document processing, improve decision timelines, and secure client data. 

The ACORD Form Challenge

If building better applications was the only challenge facing InsurTech product managers and development teams, companies would have their hands full. There’s also a common form type that can be challenging for automation.

Since 1972, ACORD has been the source of standardized forms for the insurance industry. While these forms are standard, there is nothing standard about their format. Every year, ACORD changes the format of its forms, leaving insurance organizations  with a challenge for automation. 

Despite generalized standardization which sees consistency in the type of data recorded by specific forms — including client information, claim details, and policy requirements — how this data is structured and displayed within the form itself can vary from provider to provider and even agent to agent. Forms used for identical purposes are often close in format, but not quite the same when it comes to placement of critical data. This compels insurance agencies to manually process common forms, in turn increasing both the risk of human error and the time required for completion.

For insurance application developers looking to create applications that can process ACORD forms more efficiently and deliver on customer expectations around speed and accuracy, FormSuite for Structured Forms provides the capability to create a standard form library for easy form recognition and data capture.

The FormSuite Solution: Document Delivery Done Right

FormSuite for Structured Forms can help insurance companies get the best of both worlds. With an Agile framework, this SDK is capable of streamlining the standardization of ACORD-compliant forms with a little help from developers.

Key benefits of this solution include:

  • Complete Forms Recognition Manual data entry and capture both reduces forms processing speed and can introduce the potential for significant errors. Form recognition toolkits allow developers to create form libraries for their users to scan and recognize forms for data capture. In practice, this means developers only need to update the library when a new ACORD form is released to ensure reliable and robust recognition. 
  • Accurate Data Capture With forms continually arriving from multiple sources, document standardization is often lacking. But no matter how forms are scanned into the system — upside down, sideways, or at differing resolutions — FormSuite uses its image cleanup functionality to deliver accurate forms processing.
  • Form Field DetectionFormSuite uses the application’s form library to identify form fields on standard forms and capture the data within each form field.
  • Optical Character RecognitionFrom optical character recognition (OCR) to intelligent character recognition (ICR) and optical mark recognition (OMR), FormSuite offers it all. Advanced OCR ensures your application can easily capture everything from legible hand printed names to check boxes and dollar amounts.
  • Confidence and Accuracy ReportingData confidence matters for insurance documents. If uncertainty about data translates to errors in evaluation or decision-making, the results could be disastrous for ongoing ROI. That’s why FormSuite for Structured Forms generates customized confidence and accuracy values for all data captured. Firms then send all document OCR capture for confidence evaluation; if results meet or exceed confidence thresholds, document processing can continue automatically. If confidence levels are too low, meanwhile, your app can trigger employee review to ensure data entered matches captured results.

Embracing the InsurTech Advantage

Just as other industries have faced significant disruption this year, insurance companies now find themselves at an operational crossroads. While augmenting familiar forms and functions with application overlays offers the potential to improve on existing processes, firms must also build out apps and services capable of delivering accessible, actionable, and accurate ACORD forms data to staff. When they commit to doing this, insurance companies can deliver on the proactive promise of digital-first insurance with policies and processes capable of keeping pace with evolving client expectations.

Ready to improve insurance processes? Discover FormSuite for Structured Forms and deliver on document potential.