department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
281 stars 197 forks source link

SPIKE | Identify PDF-generation service for forms #73336

Closed steele-lm closed 6 months ago

steele-lm commented 8 months ago

Issue Description

To prepare for applying new universal standards to pdfs (e.g., date stamps), we need to determine what pdf-generation service each form is using.

Reference info:


Tasks

Acceptance Criteria

SloopKoning commented 7 months ago

Form 0526 uses the route to EVSS /form526/v2/getPDF

It looks like the 526 associated forms also use EVSS to generate their PDF versions.

This table might be helpful:

Class Method Filename
CentralMail.SubmitCentralForm686cJob process_pdf app/sidekiq/central_mail/submit_central_form686c_job.rb
DecisionReviewEvidenceAttachment decision_review_pdf_service app/models/decision_review_evidence_attachment.rb
DecisionReviewEvidenceAttachment validate_pdf app/models/decision_review_evidence_attachment.rb
EVSS.DisabilityCompensationForm.EVSSDocument generate_stamp_pdf app/sidekiq/evss/disability_compensation_form/evss_document.rb
EVSS.DisabilityCompensationForm.SubmitForm0781 generate_stamp_pdf app/sidekiq/evss/disability_compensation_form/submit_form0781.rb
EVSSClaimDocument convert_to_unlocked_pdf app/models/evss_claim_document.rb
EVSSClaimDocument unencrypted_pdf? app/models/evss_claim_document.rb
EVSSClaimDocumentUploaderBase max_file_size_non_pdf app/uploaders/evss_claim_document_uploader_base.rb
Form1010cg.Auditor record_pdf_download app/services/form1010cg/auditor.rb
Form1095B generate_pdf app/models/form1095_b.rb
Form1095B pdf_file app/models/form1095_b.rb
Form1095B pdf_template_path app/models/form1095_b.rb
Form526ClaimFastTrackingConcern rrd_pdf_added_for_uploading? app/models/concerns/form526_claim_fast_tracking_concern.rb
Form526ClaimFastTrackingConcern rrd_pdf_created? app/models/concerns/form526_claim_fast_tracking_concern.rb
Form526ClaimFastTrackingConcern rrd_pdf_uploaded_to_s3? app/models/concerns/form526_claim_fast_tracking_concern.rb
FormAttachment unlock_pdf app/models/form_attachment.rb
Lighthouse.PensionBenefitIntakeJob process_pdf app/sidekiq/lighthouse/pension_benefit_intake_job.rb
LighthouseDocument convert_to_unlocked_pdf app/models/lighthouse_document.rb
LighthouseDocument unencrypted_pdf? app/models/lighthouse_document.rb
LighthouseDocumentUploaderBase max_file_size_non_pdf app/uploaders/lighthouse_document_uploader_base.rb
MedicalCopays.VBS.Service get_pdf_statement_by_id app/services/medical_copays/vbs/service.rb
PersistentAttachment to_pdf app/models/persistent_attachment.rb
PreneedAttachmentUploader not_pdf? app/uploaders/preneed_attachment_uploader.rb
SavedClaim to_pdf app/models/saved_claim.rb
SavedClaim.CaregiversAssistanceClaim to_pdf app/models/saved_claim/caregivers_assistance_claim.rb
SavedClaim.DependencyClaim to_pdf app/models/saved_claim/dependency_claim.rb
SavedClaim.DependencyClaim upload_pdf app/models/saved_claim/dependency_claim.rb
V0.CaregiversAssistanceClaimsController download_pdf app/controllers/v0/caregivers_assistance_claims_controller.rb
V0.CaregiversAssistanceClaimsController file_name_for_pdf app/controllers/v0/caregivers_assistance_claims_controller.rb
V0.FinancialStatusReportsController download_pdf app/controllers/v0/financial_status_reports_controller.rb
V0.Form1095BsController download_pdf app/controllers/v0/form1095_bs_controller.rb
V0.HealthCareApplicationsController download_pdf app/controllers/v0/health_care_applications_controller.rb
V0.HealthCareApplicationsController file_name_for_pdf app/controllers/v0/health_care_applications_controller.rb
V0.MedicalCopaysController get_pdf_statement_by_id app/controllers/v0/medical_copays_controller.rb
ValidatePdf validate app/uploaders/validate_pdf.rb
ValidatePdf validate_pdf app/uploaders/validate_pdf.rb
VBMS.SubmitDependentsPdfEncryptedJob check_doc_type app/sidekiq/vbms/submit_dependents_pdf_encrypted_job.rb
VBMS.SubmitDependentsPdfEncryptedJob generate_pdf app/sidekiq/vbms/submit_dependents_pdf_encrypted_job.rb
VBMS.SubmitDependentsPdfEncryptedJob get_doc_type app/sidekiq/vbms/submit_dependents_pdf_encrypted_job.rb
VBMS.SubmitDependentsPdfEncryptedJob perform app/sidekiq/vbms/submit_dependents_pdf_encrypted_job.rb
VBMS.SubmitDependentsPdfEncryptedJob send_error_to_sentry app/sidekiq/vbms/submit_dependents_pdf_encrypted_job.rb
VBMS.SubmitDependentsPdfEncryptedJob upload_attachments app/sidekiq/vbms/submit_dependents_pdf_encrypted_job.rb
sortizsh commented 7 months ago

hi @SloopKoning what is the progress on this ticket? Have you been able to dig into the other forms above, not just the 526? thanks

SloopKoning commented 7 months ago

Pathnames in vets-api which have "pdf"

cd vets-api
find . -name '*pdf*' | fgrep -v spec | grep -v pdf$ | grep -v json$ > ../pdf_pathnames.txt
# removed the "./" from filepath in a text editor manually
SloopKoning commented 7 months ago

With the except of the 526 form, it looks like all other forms go through a common PDF generation method. The pdftk and minimagick utilities appear to be the common processes used to generate the PDF files. minimagick looks like it is only used when the form happens to be an image file. These two ruby files in vets-api are the places to look if you want to make changes to PDF generation.

sortizsh commented 6 months ago

no further action needed on this ticket or follow ups