Technical FAQs

Question

Why did my license stop working?

Answer

There are a couple reasons why a license might stop working. The most common would be if the MAC addresses changed (on a virtual machine, or after significant hardware change). Additionally, a temporary two week license can be put on a machine via the Server Licensing Utility if there are no licenses available when you license a machine. Feel free to contact us at marketing@accusoft.com if you have additional questions. If you want a new license please contact info@accusoft.com.

Question

When viewing .csv files in PrizmDoc Viewer, the dates in the CSV file are in UK format (DD/MM/YYYY). However, if the DD is lower than 13 it is converted to US date format (MM/DD/YYYY).

Answer

Workaround:

The suggested workaround is to use Excel files instead of CSV to avoid this situation. Excel file format stores date/time format in the file.

Issue:

This is a bug in the MS Excel COM Interop that is being used by the product (MsOfficeConverter). Here is the related Excel bug: https://social.msdn.microsoft.com/Forums/vstudio/en-US/82248560-dabd-4c90-b1e2-793b2f32b257/excel-bug-handling-dates-in-csv-files-using-microsoftofficeinteropexcel?forum=exceldev

Problem description:

When using MS Excel Interop to open CSV files, all date/times there are being interpreted with “en-US” locale, regardless of actual system locale. Here is the description from the bug link above:

Excel interpreting dates when its reads csv files via .NET Interop. It is not a excel formatting issue per say. When excel accesses information such as dates (which are stored as numbers in memory to support arithmetic operations) from text files, it has to convert the date from textual representation (within the csv file, such as 2012-09-12) to the equivalent number in Excel memory (e.g. 41164 which represents 2012-09-12). When we use Interop to access this number in memory, many are interpreted incorrectly – swapping days with months and vice versa. This is a bug, as Excel is not abiding by the system culture on interpreting local date formats.

Question

Which databases types are supported by PrizmDoc for storing annotation/redaction layers as well as viewing package information?

Answer

PrizmDoc provides the option to store viewing package process and creation information, as well as annotation layer JSON information, into a database.

Currently, Microsoft SQL Sever and MySQL is supported for this type of storage. For more information on setting up a database for use with PrizmDoc, please refer to the following documentation:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#run-database-scripts.html.

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#developer-guide.html.

Question

We are running PrizmDoc on a Windows operating system and we noticed that our ms-office-conversion-service remained unhealthy even through a restart of the service. We also noticed an error in the MsOfficeConverter.log referencing the following error. What could be the cause?

“WARN – COM error occurs on 1 initialization attempt. Retrieving the
COM class factory for component with CLSID
{000209FF-0000-0000-C000-000000000046} failed due to the following
error: 80080005 Server execution failed (Exception from HRESULT:
0x80080005 (CO_E_SERVER_EXEC_FAILURE))”

Answer

The PrizmDoc MSO feature requires either Microsoft Office 2013 or 2016 to be installed in order to function properly. Based on the error, there is a Microsoft Office specific .dll file which is not registered properly.

The following process will re-register the .dll files and potentially resolve this issue (Note: for Step 2, this may vary depending on what directory you used to install Microsoft Office and the version of Office. You want to find the directory containing winword.exe):

  1. Run Command Prompt as Admin.
  2. Type cd C:\Program Files\Microsoft Office\Office15 or cd C:\Program Files\Microsoft Office\root\Office16
  3. Run winword.exe -regserver.
  4. Reboot the server.

If you don’t have the Prizm service set up to run on boot then make sure that Office applications are started by PrizmDoc, or from the command line, before being opened manually.

Question

Is it possible to make a call to an external API when annotation saving is complete?

Answer

In the Viewer, you can bind functions to the MarkupSaved event mentioned on the following documentation page in order to execute code when annotations are saved to the server:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#Subscribing_to_Events.html

A full list of events exposed by the Viewer can be found here:

https://help.accusoft.com/PrizmDoc/latest/HTML/webframe.html#PCCViewer.html#.EventType

Question

For reporting purposes, we want to rename the markup layer JSON files to help identify which tenant made the markup. For example:

c1fea5868607402c1b664272e5b82aeb7fff7390_0_0hg91gTqSCeg_P9B2Ko7BaH-YxkaazjH.json

rename to:

accusoft_c1fea5868607402c1b664272e5b82aeb7fff7390_0_0hg91gTqSCeg_P9B2Ko7BaH-YxkaazjH.json.

Is this possible?

Answer

The actual filename for an annotation .json file contains an encrypted value of the file path and document name. This is what is used to associate the JSON markup layer file with the document.

If you make changes to the first part of the file, PrizmDoc will no longer be able to associate those markups to the actual file.

As a alternative, you can set up a separate PAS instance for each tenant, which will provide a different markup layer for each tenant.

Or you can programmatically handle the markups and store them specifically for each tenant. The following articles outline our Markup JSON specifications:

Implementing any technology solution within an established organization can be a monumental challenge for a developer. Doing so for a legal firm that has a strong culture and longstanding processes can be even more difficult. That’s why LegalTech developers need to take a few key factors into consideration as they work on applications for the legal industry.

Build vs. Buy

One of the first questions any firm needs to ask is whether it wants to build a specialized solution or turn to an existing LegalTech application. In many cases, this comes down to a question of resources. For larger “big law” firms or legal departments within an enterprise business, internal developers may be available to build a customized application that caters to specific organizational needs. 

If the resources and development skills are on hand, building a dedicated solution can be an effective strategy. Developers can focus narrowly on the established processes used at the firm and design technology that targets clear pain points more effectively than an “off-the-shelf” product.

More importantly, as Kelly Wehbi, Head of Product for Gravity Stack, points out, building doesn’t necessarily mean starting from nothing

“I think a lot about how to leverage the platforms we have or could potentially purchase, but then add our own expertise and strengths on top of it. That doesn’t have to mean you have to build some entirely new interface or have to invent some new technology. It could be there’s a tool that’s out there that does exactly what you need and maybe you have to build a few customizations on top of that.”

Of course, building a solution also presents a number of challenges, especially if the project’s requirements are not well defined from the beginning. There’s a great deal of overhead involved with building new technology in terms of maintenance and ongoing support. It’s easy to fall into the trap of focusing on technology at the expense of services. But legal firms are not product companies; they need to focus instead on finding ways they can use technology to leverage their core services.

It’s that emphasis on services that drives many firms to buy the technology solutions they need rather than to build them. Existing software integrations are typically better positioned to maintain security and don’t need to be maintained as extensively. Deploying proven software integrations also helps organizations to maximize their on-premises resources and enhance their flexibility in the long-term. 

“I tend to default toward leveraging an existing platform when possible,” Wehbi admits. “Security ends up being a huge part of this and when you can leverage a company that’s solved that really well, that goes a long, long way. It offers you a bunch of options you wouldn’t have if you had to build it yourself,” Wehbi says. “That’s a pretty big undertaking to start from scratch.”

Getting Buy-In for LegalTech Solutions

Once the build or buy decision is finally made, there’s still the critical matter of executing and putting the new solution into practice. Getting feedback throughout the development and integration process is important, whether it’s gathered from anecdotal observations or some form of usage analytics. 

Neeraj Raijpal, CIO at Schroock & Schroock & Lavan, finds that implementations tend to go smoother when the development team is able to get rapid feedback from key decision makers: “The faster you get the feedback, the faster you know you’re down the right path or not. It is very frightening when the stakeholder…looks at something and says ‘This is exactly the opposite of what I expected.’ You don’t want to be in that situation.”

Ultimately, a LegalTech application’s success depends largely upon whether or not the firm as a whole embraces it. When developers are seeking to implement a solution, they need to be especially careful to take the culture of the firm into consideration. Without buy-in at the top, it will be difficult to convince anyone in the organization to commit to change. 

“If you’re trying to solve a problem because you have a deficiency in a current business process, but you’re not willing to change the process…that’s (a) disaster,” Raijpal warns. Although LegalTech solutions are designed to enhance efficiency and reduce errors, they often require people to learn how to use them or to abandon existing technology solutions.

Take, for example, a legal firm that needs to redact documents during the discovery process. The existing process likely involves printing out documents and then laboriously redacting them by hand with marker. Once that process is finished, they are scanned and saved as image-based PDFs. An HTML5 viewer with redaction capabilities could easily streamline this process to make it faster, more flexible, and more secure. Unfortunately, if the firm’s attorneys aren’t willing to adopt the new process, all of the potential efficiency benefits go to waste.

The Importance of Communication

Communication and ongoing support are critical to ensuring a successful LegalTech implementation. Developers can begin this important conversation right from the beginning when they’re designing application features. Whether they’re building everything from scratch or turning to software integrations, they need to have honest and thorough discussions to determine what specific features are needed to support legal processes. Implementing a LegalTech solution is more likely to be successful if that solution is closely aligned with the firm’s existing needs and future goals.

But the conversation doesn’t stop once the application goes live. Ongoing support and education is often necessary to help firms adopt new technology and make the most of its potential. Developers may even need to adjust some features over time as needs change. If they utilized third party software integrations to add key functionality, they need to know they can count on those vendors to support them as the LegalTech application evolves.

Make Your LegalTech Implementation a Success with Accusoft

Accusoft’s family of software integrations allow LegalTech developers to quickly add the features their clients need to modernize workflows and improve efficiency. Whether it’s PrizmDoc’s extensive document redaction capabilities that make it easier to protect privacy during eDiscovery or the automated document assembly features of PrizmDoc, developers can lean on our 30 years of document processing expertise so they can focus on building the tools legal teams require

As part of our ongoing work with the LegalTech industry, Accusoft recently sponsored a Law.com webinar on the subject of building vs buying technology solutions for legal firms. You can listen to some of the highlights with contributors Kelly Wehbi and Neeraj Rajpal along with host Zach Warren, editor-in-chief of LegalTech News, on the Law.com Perspectives podcast.

ArkCase was looking for a viewing technology that would allow for in-application viewing and reduce dependencies on external applications.  Learn why PrizmDoc® for Java, formerly VirtualViewer®, was the right fit.

Question

We want to use one PAS instance for multiple customers while ensuring their calls and data are separated so that other customers cannot access them. Is there a way PrizmDoc can accomplish this?

Answer

How To:

Use the following steps to set up the multi-tenancy feature:

  1. Add a new line inside of /usr/share/prizm/pas/pcc.nix.yml (Linux) or C:\Prizm\pas\pcc.win.yml (Windows) in the following format:

undocumentedFeature.multiTenancy: enabled

  1. After enabling this feature, all requests to PAS must include the header accusoft-tenant-id. The following shows an example request for creating a new viewing session:
POST /ViewingSession HTTP/1.1
Host: localhost:3000
Content-Type: application/json
accusoft-tenant-id: myUniqueTenantId
cache-control: no-cache
Postman-Token: 5edd698a-5e4f-46d2-b93a-42cc57371dce
  {
  "source": {
  "type": "document",
  "fileName": "1040ez.pdf"
   }
  }

NOTE: All Tenant Ids are converted to lowercase and must be unique between tenants. This means that in terms of the application both “MyTenant” and “mytenant” are equivalent and would be able to see the same files. Tenant Ids are not generated for the application and must be generated and handled by the integration components. Tenant Ids are also strictly alphanumeric at this time.

File storage including Documents, markupXml, formDefinitions and markupLayerRecords will now be appended with the
{tenantId} as shown in the above example with a Documents configuration of /usr/share/prizm/Samples/Documents. The request would attempt to create a viewing session from the following file: /usr/share/prizm/Samples/Documents/myuniquetenantid/1040ez.pdf

Viewing Package data stored in the database will have the tenantId included in the composite index as well as include an accusoftTenantId column.

Image compression has become such a ubiquitous aspect of the digital world that the average person doesn’t give it much thought. Even when they encounter textbook compression problems, such as running out of space for photos on their phones, waiting on a slow-loading webpage, or working with an overly pixelated image, they may not consider how effective compression techniques could resolve these issues.

Today’s software developers, by contrast, spend a lot of time thinking about how to incorporate better compression solutions into their applications. That’s why they frequently turn to image compression SDKs to help their end users better manage large and highly-detailed image files.

The Enduring Need for Image Compression

Although advancements in hard drive technology and easily scalable cloud storage have reduced many traditional data management concerns, large image files can still pose significant challenges. Many organizations that can’t utilize cloud storage options for compliance reasons or find the cost of those platforms prohibitively high. 

While they may be able to add more on-premises storage easily enough, this option can also quickly become quite costly. Companies often need to procure much more storage than they may need on a day-to-day basis in order to meet redundancy requirements. Scaling physical storage also locks firms into burdensome equipment refresh cycles.

But simply storing images is only part of the challenge of data management. Large files are more difficult to move, even if an organization has a customized solution in place. If images can’t be shared quickly and easily through a secure platform, users may turn to riskier third-party applications.

Image compression alleviates these problems by reducing the overall size of image files. By compressing image files, organizations can maximize their storage potential and share files more easily. Image compression can also improve website and application performance by reducing the time it takes to load images. 

Although there are many different methods of compressing images, they all involve algorithms that use a variety of shortcuts to reduce the overall size of pixel data. In some instances, compression involves the elimination of image data, which can degrade the image quality and make it impossible to return to its original size (lossy or irreversible compression). Other techniques retain the original image data, but can’t achieve the same level of compression (lossless or reversible compression). 

Image Compression SDKs and Your Applications

While there are many compression options available in commercial imaging software, organizations often need the ability to compress image files within their core business applications without any external dependencies. Opening an image file with another program not only takes additional time and disrupts efficient workflow, but it also creates the potential for security risks and version confusion.

Consider, for instance, a medical provider that needs to send a high-resolution MRI scan to another provider. If the file is too large to deliver electronically, someone may try to get around the problem by using another program to compress the scan and then send it as an attachment over email or share it through a cloud platform. Suddenly, the confidential image file has been accessed by potentially vulnerable third-party applications, which creates a serious compliance issue. To make matters worse, the compressed image may not be associated with the patient’s file in the EHR system. And that’s not even getting in the question of whether or not the compression technique used damaged the image integrity!

An image compression SDK like ImageGear allows developers to integrate the ability to compress and convert image files into their applications without compromising security, efficiency, or quality. Optimized, standards-based compression libraries with support of formats like TIFF, PDF, PDF/A, JPEG 2000, JPEG, and DICOM deliver fast compression/decompression capabilities while ensuring that images remain high quality. 

The primary advantage of integrating image compression capabilities directly into an application is the lack of third-party dependencies. This is crucial for software that is gathering and managing image files because it doesn’t cause any workflow disruptions. With an image compression SDK integration, image files can be shrunk down to more manageable sizes programmatically, which aids significantly in automated processes. Since the images are being compressed entirely within the application, it’s also easier to maintain strict version and access control throughout the life cycle of the file.

Image Compression SDKs vs Open Source Solutions

Many developers turn to open source compression libraries when looking to integrate image compression features into their applications. While this often seems like an easy, low cost solution, open source codecs can lead to unforeseen problems over time. Since many of them are not actively maintained, troublesome bugs can go unresolved and security gaps can create serious privacy risks.

One infamous example of this problem involved the widely used “Cornell Codec,” one of the first open source libraries that supported lossless JPEG compression. Developed in 1994, it was quickly adopted by many healthcare applications that needed to compress high-resolution medical images like MIRIs, CT scans, and X-Rays. 

Unfortunately, the codec had a problem. When it compressed images into DICOM files (the industry standard used in medical imaging applications), it produced an error that made them unreadable when they were decompressed. Since the Cornell Codec was an open source solution embedded into numerous applications, the problem went unresolved for many years until Accusoft developed a code based workaround for our customers.

By choosing a well-supported image compression SDK like ImageGear for their application’s compression needs, developers can rest easier knowing that they’re deploying a tried and true solution that won’t create unexpected problems for their customers. Another benefit of a comprehensive image compression SDK is that it will provide a variety of compression libraries that can accommodate almost any file type and use case. ImageGear, for example, supports more than a dozen unique image compression types, including JPEG (lossy/lossless/progressive), RAW, ASCII, and Deflate.

ImageGear: More Than an Image Compression SDK

Image compression is just one of ImageGear’s many powerful document and image processing features. A versatile code-based solution, ImageGear allows developers to quickly integrate image conversion and cleanup features to their application along with editing, annotation, viewing, scanning, and printing capabilities. With support for a huge number of today’s leading document and image file formats as well as medical imaging support with ImageGear Medical, this SDK toolkit delivers the functionality developers need to get their applications to market faster. See what ImageGear can do for your application today by downloading a free trial.