Technical FAQs

Question

With PrizmDoc, how can I hide a predefined search if there are no results?

Answer

The predefined search option does not support that functionality, but you can instead perform a server-side search, and then activate the search panel if there are results to show:

var viewer;
var viewingSessionId = <%= viewingSessionId %>;

var fixedSearchTerm = "the";
var pasUrl = "/pas";

var viewerReady = false;
var searchReady = false;
var searchDisplayed = false;

function displaySearchIfNeeded() {
    // The search is only displayed once the viewer is ready, and once our preliminary server-side search comes back positive.
    if (viewerReady && searchReady && !searchDisplayed) {
        searchDisplayed = true;

        $("[data-pcc-search=\"input\"]").val(fixedSearchTerm);
        $("[data-pcc-search=\"submit\"]").click();
    }
}

function sendSearchPost() {
    $.ajax({
        "method": "POST",
        "url": pasUrl + "/v2/viewingSessions/" + viewingSessionId + "/searchTasks",
        "data": JSON.stringify({
            "input": {
                "searchTerms": [
                    {
                        "type": "simple",
                        "pattern": fixedSearchTerm,
                        "caseSensitive": false,
                        "termId": "0"
                    }
                ]
            }
        }),
        "contentType": "application/json",
        "success": function(response) {
            $.ajax({
                "url": pasUrl + "/v2/searchTasks/" + response["processId"] + "/results?limit=1",
                "success": function(response) {
                    if (response.results.length !== 0) {
                        searchReady = true;

                        displaySearchIfNeeded();
                    }
                },
            });
        },
        "error": function(jqXHR, textStatus, errorThrown) {
            if (jqXHR.status === 480) {
                setTimeout(sendSearchPost, 2000);
            }
        }
    });
};

setTimeout(sendSearchPost, 500);

$(document).ready(function() {
    // Since we are no longer restricted to a predefined search, we can load the viewer ASAP.
    viewer = $("#viewer").pccViewer({
        "documentID": viewingSessionId,
        "imageHandlerUrl": "/pas",
        "language": viewerCustomizations.languages["en-US"],
        "template": viewerCustomizations.template,
        "icons": viewerCustomizations.icons
    });

    viewer.viewerControl.on("ViewerReady", function(event) {
        viewerReady = true;

        displaySearchIfNeeded();
    });
});
Question

Is it possible to automatically annotate a document, similar to the Auto-Redaction feature, using PrizmDoc?

Answer

An auto-annotation feature isn’t an out-of-the-box feature but with some work, it can be done. This would involve creating a searchTask and using the information from it to programmatically create XML markup that can be used in the MarkupBurner.

To do this you would need to create a searchTask for the pattern you would like to annotate. You can then get the results of the searchTask as JSON which will contain all occurrences of that pattern/search. Each search result will include the selected text, the page on which it occurs, the starting index of the result, and the dimensions and coordinates of the bounding rectangles for that search result.

All this information can be used to construct the markup XML to add the annotations with the markup burner.

Once you have constructed the XML you would post to the MarkupBurner with the XML as the body to burn the document.

 
View this introduction to PrizmDoc and the benefits it can deliver for your web-based application. In this webinar, you will learn:

  • About PrizmDoc’s capabilities for document viewing, conversion, search, annotation, redaction, editing, and its many other document processing functions
  • The benefits of integrating this industry-leading collection of REST APIs into your application
  • How others have benefitted from integrating PrizmDoc into their applications
  • How easy it is for you to get started with PrizmDoc
Question

I have a document with text on it. I want to find the coordinates of a particular word on it (so I can place annotations, redactions, etc.). How might this be accomplished?

Answer

To programmatically determine the location of text (for annotations, redactions, etc.), we can use the following GET request from the PrizmDoc Server API:

GET /PCCIS/V1/Document/q/{{PageNumberBegin}}-{{PageNumberEnd}}/Text

This GET request will give you the currently available text position metadata of the page, with the corresponding bounding boxes and coordinates (distance from the left/top edge, and width/height). You can then use these coordinates to place your annotations, redactions, etc.

Question

PAS appears to be unable to retrieve my document. What could be the issue?

Answer

If PAS is trying to retrieve documents from a source with a bad SSL certificate or a self-signed certificate and it is not configured to allow bad SSL certificates, it will fail to retrieve the document and log a generic 580 error.

For more information about Viewing Session creation parameters, including acceptBadSslCertificate see here:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#pas-viewing-sessions.html

Having the right technology in place is essential for healthcare organizations seeking to deliver better patient outcomes. That’s why medical technology developers are working hard to build the next generation of software tools that will help medical professionals to deliver care more effectively. 

Annotation features provide a number of benefits in these ongoing efforts. Although typically associated with editing and workplace collaboration, medical annotations also have a very different and very specific role when it comes to diagnostic imaging and patient health records.

Enhancing Healthcare Collaboration with Annotations

One of the most straightforward use cases for medical annotation is communicating important information regarding diagnostic images. As images like MRIs and X-rays are passed back and forth between providers, radiologists, technicians, and clinicians, the ability to add comments and point out important details greatly reduces the chance of confusion or of some critical detail being overlooked.

The challenge in these cases, however, is to annotate images and documents without altering the integrity of the original files. This requires healthcare technology developers to build solutions that can retain an unaltered version of the file even as multiple collaborators view and make comments. 

Medical Annotation and Machine Learning

Healthcare solutions are rapidly incorporating sophisticated machine learning tools to analyze large quantities of data and make a quick, accurate diagnosis of conditions. Before these powerful tools can perform that diagnostic work, they need to be properly trained to know what they’re looking for, especially when it comes to very nuanced differences between scanned images and seemingly unrelated details in patient records.

By using annotation tools, medical technology specialists can provide excellent guidance for machine learning development. An MRI scan, for instance, contains so much information that an AI-driven program isn’t going to know what to look for unless the key elements are called out with annotations that indicate certain parts of the image or provide comments about noteworthy aspects.

The DICOM Dilemma

While many software integrations allow developers to incorporate annotation tools for common file formats like PDF and JPEG, the healthcare sector presents a unique challenge in the form of DICOM files. This industry-specific format contains both images and important metadata identifiers that provide information about the image itself and the patient in question. While there are ways to extract images from DICOM files and convert them into a more manageable format, doing so could endanger compliance status or permanently degrade the image quality.

Developers working on healthcare technology solutions need to make sure they can not only deliver annotation tools, but also the ability to add annotations to DICOM files without altering the source file itself. 

Mastering Medical Annotation with ImageGear Medical

ImageGear Medical provides a broad range of XML-based annotation features that allows healthcare software developers to implement UI elements for marking up both images and documents. Since this powerful imaging SDK also gives users the ability to create and view DICOM files, it can quickly enhance the functionality of medical applications to enhance collaboration and ensure diagnostic accuracy.

Once integrated into an application with a viewing UI, ImageGear Medical supports several commonly-utilized annotation marks that makes it easy for users to highlight certain aspects of an image, comment on them, and even cover up some elements using filled-in graphical objects. Annotations can also be grouped in layers to make them easier to manage and distinguish from one another.

ImageGear Medical annotation objects for DICOM include:

  • Text: Adds descriptive text using a variety of fonts, colors, and sizes. Opacity can be adjusted and the text object can appear with or without a border.
  • Point: Places a coordinate point on the image or document, which can be used to support other annotation marks.
  • Polyline: A series of connected straight lines formed by dragging and clicking a mouse or pointer.
  • Curve: Used for creating spline curve marks. Users can select multiple vertices and tensions when creating curves.
  • Ellipse: A circular outline mark that can be used to indicate important elements of an image or document. When filled, it can also cover up areas of the image.
  • Polygon: Like the ellipse, it can be filled or unfilled and is typically deployed to cover or highlight some aspect of an image or document. Polygons are especially useful for medical annotation because they can capture more lines and angles than simple rectangles or circles.

In order to maintain the integrity of the original image, ImageGear Medical stores annotations as a separate file that is overlaid upon the image during display. While annotations can be merged, or “burned in” the file, keeping them separate ensures that the original image itself is not altered directly. This is incredibly important when it comes to DICOM files, which often need to be kept on file for baseline comparisons on a future diagnosis.

Enhance Healthcare Flexibility with ImageGear Medical

Annotations and DICOM viewing support are just the beginning of ImageGear Medical’s expansive feature set. It also provides advanced filtering tools for sharpening and smoothing as well as image cleanup functions like despeckling, noise removal, and deskewing. With support for several dozen medical image and document formats, ImageGear Medical can easily convert files into easy-to-manage formats and compress files for efficient storage.

Available for .NET and C/C++ environments, ImageGear Medical can turn your healthcare application into a powerful annotation platform with full support for DICOM files. Start your free trial of this powerful SDK to discover first-hand how it can empower your medical annotation solution.

Few industries have been impacted by the proliferation of digital technology than the financial services sector. In fact, it’s one of the few markets where the average consumer can easily observe how much has changed in a short amount of time. Many people haven’t even set foot inside a bank for years, and millions pay all of their bills exclusively online. According to the US Federal Reserve, personal checks declined from 58.8 percent of non-cash payments in 2000 to just 8.3 percent in 2018. Both of these trends are driven by the increased convenience of FinTech applications, and the same changes have impacted the lending industry, as well.

What Is FinTech Lending?

Since the 2008 financial crisis, a new breed of lenders has become a disruptive force in the banking sector. Unburdened by the cumbersome infrastructure that makes large financial institutions slow to adapt to change, FinTech lenders utilize the latest technology to deliver a more responsive, personalized, and transparent lending experience to consumers. These innovative startups have combined easy-to-access digital platforms with sophisticated data analytics to streamline the lending process and deliver funds to borrowers much faster than could be accomplished with traditional loans.

Borrowers, it seems, have been quick to embrace this alternative source of lending. From 2013 to 2018, FinTech companies increased their share of the personal loan market from a mere five percent to thirty-eight percent. That rapid growth is a result of increased penetration into the digital marketplace and more flexible credit scoring that allows FinTech lenders to assess risk and approve loans more effectively. 

In the early days of the industry, most FinTech lenders still relied upon traditional FICO credit scores when evaluating a borrower’s potential to repay loans. Over time, however, they have used a variety of alternative scoring mechanisms driven by data collection algorithms to create a more dynamic picture of a borrower’s credit status. Between 2007 and 2015, for instance, the correlation between FICO scores and the rating system used by one prominent peer-to-peer FinTech lender declined from 80 percent to just 35 percent.

The “Tech” Behind FinTech Lending

The loan adjustment algorithms working under the hood of FinTech lending applications are incredibly sophisticated, but they need good data for fast, accurate underwriting. While traditional lenders focus on predictable data points like income, debt payments, and assets, the digital nature of FinTech applications allows them to go much more granular. By gathering insights from other customer applications, internet searches, and even geolocation data, they can create a more complex profile of each customer, which then allows them to structure loans and other financial products that meet their specific needs while also protecting the lender to unnecessary risk.

This new approach to lending has helped FinTech applications to cut down the “time to yes” on credit decisions from the three to five weeks commonly seen from traditional banks to as little as five minutes. Even more critically, they can use digital funding to deliver cash to borrowers in less than 24 hours compared to the typical lender’s three month response time.

Improving “Time to Yes” on Credit Decisions

In addition to deploying more sophisticated risk adjustment algorithms to assess credit worthiness, there are some additional ways that FinTech lenders can continue to improve performance and efficiency.

Embrace Paperless Automation

The first and most obvious step they can take is by eliminating paper forms from the application process whenever possible. One of the reasons why banks and other financial services organizations move so slowly is due to the time it takes to fill out, fax, scan, and review physical documents. Not only are these forms inefficient, but they’re also prone to clerical errors when an applicant’s data needs to be transferred from the form into a database or application. By digitizing the application process wherever possible and automating data capture, FinTech lenders can significantly cut down on processing times and eliminate the human errors that so often create additional delays.

Increase Document Management Versatility

Shifting to an emphasis on digital documentation brings another complication along with it because there are a variety of file formats used throughout the financial industry. Some documents need to be in a specific format for compliance purposes, and if customers are submitting files through a FinTech lending platform, they could be using multiple different file types. 

In order to streamline processing, FinTech applications need to be able to easily convert a wide range of file types into a few key formats that work best with their processing workflows. That means FinTech developers will need to integrate powerful document conversion tools into their software to ensure that they can avoid any troublesome incompatibility issues during loan processing.

Enhance Data Capture Capabilities

Although FinTech lenders are developing incredible algorithms capable of analyzing massive amounts of data to shorten credit application times, they are still dependent upon the information made available to them. That means developers need to implement data capture tools that can pull key data from a variety of sources and compile it into an easily searchable format. 

Optical character recognition (OCR) engines can quickly extract information for any number of documents and images to create searchable files that FinTech software can quickly process as needed. For hand-printed documents scanned into digital format, intelligent character recognition (ICR) tools can be deployed just as effectively, allowing FinTech lenders to gather data from a wide variety of sources.

Expand FinTech Lending Capabilities with APIs and SDKs

One of the easiest ways for FinTech developers to quickly build lending-friendly features into their applications is to leverage API and SDK integrations. Rather than building new functionality from scratch, they can instead take advantage of existing, proven solutions to enhance their applications. This allows them to keep the focus on the core differentiators of their FinTech lending platform, allowing them to process and approve loans faster while minimizing potential risk.

Accusoft’s collection of API and SDK integrations provide powerful viewing and processing capabilities when it comes to FinTech workflows. Whether you need to convert multiple file types quickly, clean up document images, or perform OCR data capture, Accusoft has the solution to unlocking your FinTech lending application’s potential.

Question

Why are the fonts in my CAD files showing up garbled/unrecognizable/not as expected?

Answer

Some CAD files may include fonts that are not included in PrizmDoc Viewer’s default font set. PrizmDoc will choose the most appropriate substitute font to use in its place. The substitution process isn’t always perfect, and as a result, you will see garbled/unrecognizable characters in the Viewer.

In order to provide additional fonts for PrizmDoc to pull from,

Some CAD/DWG files may include fonts that are not included in PrizmDoc Viewer’s default font set. PrizmDoc will choose the most appropriate substitute font to use in its place. The substitution process isn’t always perfect, and as a result, you will see garbled/unrecognizable characters in the Viewer.

In order to provide additional .SHX fonts for PrizmDoc to pull from, you can copy the necessary .SHX font files into the cad-fonts folder, located at:

Windows: ‪C:\Prizm\modules\cad-fonts
Linux: /usr/share/prizm/modules/cad-fonts

Alternatively, if you want to use fonts from that are located in a different directory, you can add the environment variable, ACAD, to explicitly specify the filepath of these fonts. his variable can be added under System Properties > Advanced > Environment Variables > System Variables > New... > ACAD. For the variable’s Value, specify a folder path that contains additional CAD font files for PrizmDoc to pull from.

* It is important to note that the Linux filesystem is case-senstive, so when adding custom CAD fonts on Linux, make sure that the fonts are named with case-sensitivity in mind. If you still see unexpected output after adding the fonts to the cad-fonts folder, try renaming the fonts to all lowercase.

** Note that the cad-fonts folder was added in PrizmDoc 13.20, so to add custom cad fonts on earlier versions of Prizm, use the environmental variable approach.

you can add the environment variable, ACAD.
This variable can be added under System Properties > Advanced > Environment Variables > System Variables > New... > ACAD. For the variable’s Value, specify a folder path that contains additional CAD font files for PrizmDoc to pull from.

Where we came from

In July 2015, Accusoft’s SaaS Applications team was tasked with integrating the recently acquired edocr application with our existing Prizm Share community for publishing and sharing documents. While this integration offers numerous challenges with data migration, feature parity, and cohesive branding, we are going to focus on the architectural changes that resulted from the project.

Both projects were initially built as LAMP applications—edocr on Drupal 5 and Prizm Share being built in-house by a fledgling apps development team. Throughout their independent evolutions, they each had the expected increase in features and correlated increase in code base size and technical debt. The decision to merge the two products under a single brand and code base meant choosing a target platform.

Initially, we considered two options:

Migrate Prizm Share data to the existing edocr platform

With edocr being the dominant service for traffic between the two, it made more sense to merge on that base when looked at from a customer-centric perspective. However, edocr was running on a very dated Drupal 5 and in need of an approach that could be supported well into the future. Along these lines, we also considered adopting the Drupal platform and then going through the upgrade process from 5 to the current release, 8. Tests of these upgrades did not have good results, however, as numerous plugins and custom modules in edocr were not available or supported in the latest version.

Migrate edocr data to the existing Prizm Share platform 

With the edocr application being based on the very outdated Drupal 5 platform, the primary contender was to move the application to our existing PHP Prizm Share code base and extend the features that we didn’t currently support in order to serve the existing customers of both products. The problem with this was that the code for Prizm Share was already starting to show signs of rigidity based on a lack of foresight on the initial architecture decisions. New features were increasingly difficult to work in with the existing framework and the team had been looking to move to something more modular.

Our Decision

What the team eventually decided on, however, was a complete overhaul of the whole system, targeting the existing feature sets of both products along with a specific list of MVP requirements for our new consumer document platform.

To ensure flexibility in the future and to keep a positive connotation on the word legacy, we decided to adopt a microservice architecture built on a lightweight application framework we developed in Node. This would handle configuration and dependency management for each of our services. By separating out our functionality into independently managed components and updating our build and deployment system to deploy as docker containers, the team was able to reduce friction with code changes, improve code testability, and drastically reduce the time from commit to production.

Read on in the coming weeks for details on our migration, including failures, successes, and lessons learned.

Many organizations utilize spreadsheets to track data and perform complex calculations. Since spreadsheets offer substantial flexibility, it’s not uncommon for a single organization to use them in a variety of ways. For instance, one department might use them for budgeting while another deploys them for risk assessment. Although they can handle complex calculations, spreadsheets are relatively easy to set up and don’t require the same programming knowledge as more specialized solutions. That accessibility has led many organizations to simply convert Excel to web applications using API integrations rather than building new functionality from scratch.

Why You Should Convert Excel Files to Web Applications

Consumers often turn to financial and insurance companies looking for simple answers to simple questions: 

  • How many payments will it take to eliminate my debt?
  • Will adding another person to my insurance policy change my rate?
  • What will the monthly payments on my loan cost based on different interest rates?

To answer questions like these, someone in the organization typically enters the customer’s data into a premade spreadsheet, applies a few conditions using preset formulas, and shares the result. This process could be significantly streamlined by making these calculations readily available as a web application to anyone who visits the firm’s website, allowing both prospective and current customers to get answers quickly while also freeing up time for employees to work on more high-value tasks.

Unfortunately, building a secure, functional web application takes up valuable development resources. A developer could easily spend weeks converting complex spreadsheet formulas into a fully-functional application that integrates into the website or larger platform seamlessly. Even worse, if anything about those formulas were to change (as is often the case with financial and insurance formulas), more development resources will need to be pulled away from existing projects to make the updates.

By converting Excel files to web applications, firms can avoid these problems and provide clients with ready access to the calculations they need. FinTech and InsurTech developers can accommodate this need by building integrations into their solutions that allow users to easily upload and share spreadsheets entirely within an application and without any Microsoft Word dependencies. This bypasses the time-consuming build process and makes it much easier to update the formulas as needed.

Keeping Your Spreadsheets Secure

Of course, making spreadsheets readily available as web applications presents a few important security challenges. Many of the calculations running inside an organization’s spreadsheets are proprietary or contain hidden data that needs to remain private for various confidentiality reasons. That’s why companies are hesitant to simply send copies of their internal spreadsheets to customers or vendors. If those Excel files are made accessible online, there’s an obvious risk that someone could download a copy for themselves or access valuable private intellectual property.

Incidentally, this is also the reason why many firms struggle with sharing spreadsheets even in a collaborative environment. Not only are .XLSX files among the most commonly used file extensions by malware, but granting cloud providers or email servers access to spreadsheets represents too great a security risk for companies in heavily regulated industries.

By converting Excel to web applications, however, organizations can maintain strict access and visibility controls over their spreadsheet files. A good spreadsheet viewer integration will allow users to determine what people see when they use the application and also what information they can access. Formulas and calculations that contain vital intellectual property can be hidden completely. Visitors can be restricted to only editing cells that apply to their information, allowing them to use the spreadsheet without breaking or altering its functionality.

Sharing controls can also restrict what can be downloaded locally. A visitor may need to download or print a copy of their calculations, but they don’t need to download a fully functional copy of the spreadsheet file. Even in a collaborative environment, allowing people to download and edit copies of a spreadsheet can introduce significant version confusion. By keeping everything safely within the confines of the organization’s larger web application, essential data remains as secure and up-to-date as possible.

Other Reasons to Convert Excel to Web Applications

The versatility of spreadsheets allows people to adapt them to a variety of uses. In addition to more traditional budgeting and adjustment tasks, they can also be used for things like calculating survey results, analyzing resource usage, or estimating server uptime. Adding customizable calculators that provide quick results to a website experience can provide customers with important information and keep them engaged. 

Rather than building a specialized app or plug-in for every one of these calculators, organizations can simply use a spreadsheet viewer integration to quickly create one without any specialized coding or development knowledge. When the integration is set up within their solution, they can even customize it to match their branding and make it look more like a designed application than a simple spreadsheet.

Explore the Potential of Spreadsheet Integration with PrizmDoc Cells

Accusoft’s PrizmDoc Cells was originally designed to help our clients securely view and share XLSX files without any third party dependencies, but it’s increasingly being used to help improve customer experiences across a variety of applications. Get a hands-on experience with this API-driven integration to explore the potential of converting your Excel files to web applications. For a more detailed overview of what you can do with PrizmDoc Cells, sign up for a free trial.