Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects versions: None
    • Fix versions: 2.0
    • Components: Patient
    • Labels:
      None
    • Sprint:

      Description

      From https://openvpms.org/project/patient-insurance

      1. Overview

      This project will:

      • allow insurance policies to be managed, per-patient
      • allow claims to be created for a given policy
      • allow claims to be printed or emailed
      • display the patient's current policy in the summary
      • optionally submit claims to an insurance provider, if one is configured

      Insurance policies and claims may be created, edited and viewed in a new Insurance tab, in Patients - Medical Records.

      2. Insurance Policies

      Currently, insurance information is held on the customer; this was provided for migration from legacy systems.

      This project will allow each patient to have their own policy, containing:

      • policy start time
      • policy end time
      • the patient
      • the policy number
      • the type of insurance
      • the insurer

      3. Insurance Claims

      Insurance Claims may be made against a patient's Insurance Policy.

      An Insurance Claim contains:

      • a start date, indicating when the claim was created
      • the practice location managing the claim
      • the clinician responsible for the claim
      • the author of the claim (the logged in user who created the claim)
      • processing date, indicating when the insurer started processing the claim
      • an end date, indicating when the claim was settled, cancelled or declined
      • insurer claim identifier - the id the insurer has given the claim
      • a link to the Insurance Policy
      • optional clinical notes, to include with the claim
      • optional non-clinical notes, to include with the claim
      • 1 or more Insurance Claim Items
      • a status (In Progress, Finalised, Cancelled, Settled, Declined)
      • a cancelled reason (only applicable when the status is Cancelled)
      • a declined reason (only applicable when the status is Declined)
      • payment details
      • flag to indicate if the claim should be paid to the vet
      • optional bank account details to pay the claim into:
        • account name
        • bank
        • branch
        • account number

      An Insurance Claim Item contains:

      • a diagnosis
      • treatment dates
      • an optional deceased status indicating if the patient died as result of the condition being claimed. One of:
        • Deceased
        • Euthanased
      • a euthanasia reason, if deceased status is Euthanased
      • optional notes
      • a flag indicating if the Claim Item is for an ongoing condition
      • invoice items related to the Claim Item
      • total for the invoice items
      • attachments related to the Claim Item

      E.g. a claim may look like:

      • Claim Item 1
        • Diagnosis: Glaucoma - primary
        • Ongoing: true
        • Treatment dates: 1/1/2015-2/1/2015
        • Invoice Items
          • Service 1: $100
          • Medication 1: $23
          • Medication 2: $10
        • Total - $133
      • Claim Item 2
        • Diagnosis: Osteoarthritis - hip
        • Ongoing: true
        • Treatment dates: 1/1/2014-1/1/2014
        • Invoice Items
          • Medication 6 - $10
          • Medication 5 - $5
          • Medication 4 - $20
          • Service 3 - $50
        • Attachments
          • Hip x-ray
        • Total - $85

      3.1 Creating Claims

      Insurance claims are made be selecting a patient's Insurance Policy, and clicking Claim. This displays an Insurance Claim editor.

      Claim Items can be created using:

      • the Add button - all fields need to populated manually
      • the Add Problem button - this allows the fields to be pre-populated from one of the patient's Clinical Problems

      Adding Invoice Items

      Invoice items are added to a Claim Item by clicking the Add Charges button.

      This displays an Add Charges popup that lists all invoice items for the patient between the entered treatment dates, that haven't already been claimed.

      Each invoice item is displayed a tick-box next to it, that is selected by default.

      Invoice items are listed with the following details, most recent first:

      • Invoice Id
      • Invoice Date/time
      • Invoice Item Id
      • Product name
      • Quantity
      • Total

      Clicking OK adds all of the ticked invoice items.

      Removing Invoice Items

      Invoice items can be removed from the Claim Item by selecting them and pressing Delete.

      Adding Attachments

      Attachments are added to a Claim Item by clicking the Add Attachments button.

      This displays an Add Attachment popup that lists all documents for the patient between the entered treatment dates, that haven't already been added.

      Each document is displayed a tick-box next to it, that is selected by default.

      Clicking OK adds all of the ticked documents.

      Removing Attachments

      Attachments can be removed from the Claim Item by selecting them and pressing Delete.

      Creating Claim Items from Clinical Problems

      The Add Problem button can be used to automatically create and fill in the details a Claim Item. This displays a list of all of the patient's Clinical Problems, most recent problem first.

      When a Clinical Problem is selected, this performs the following steps:

      1. creates a new Claim Item, with the diagnosis and treatment dates pre-filled
      2. displays the Add Charges popup, listing all invoice items between the treatment dates. Clicking OK adds the selected invoice items to the Claim Item
      3. displays the Add Attachments popup, listing all documents between the treatment dates. Clicking OK adds the selected documents to the Claim Item

      3.2 Editing Claims

      Existing claims may only be edited if their status is In Progress.

      3.3 Printing and Emailing Claims

      Claims may be printed or emailed. This will be supported via a JasperReport template. This template will include:

      • patient summary information
      • policy information
      • claim items
      • a total of the claim
      • patient history, up to the time of the claim

      If the claim is not finalised (i.e can still be edited), the output will include the text Draft, to indicate that it is not complete.

      If a claim contains attachments, these will be automatically be included in emails.

      Attachments must be printed separately.

      3.4 Claim Workflow

      An Insurance Claim may have one of the following statuses:

      • In Progress - the initial status for a claim. Indicates that the claim may be edited
      • Finalised - the claim claim has been finalised, and may not be edited
      • Processing - the insurer has received the claim, and is processing it
      • Cancel Pending - the claim is scheduled to be cancelled. Only applicable for online claims
      • Cancelled - the claim has been cancelled
      • Settled - the claim has been settled by the insurer
      • Declined - the claim has been declined by the insurer

      Submitting a Claim

      An Insurance Claim may be submitted by clicking the Submit Claim button. This is only enabled if the claim is In Progress.

      If the associated insurer supports online claims, online claims, the claim will be submitted.

      The claim status will be set to Finalised.

      Processing a Claim

      If a claim has been submitted to an insurer, this can be recorded by clicking the Process Claim. This is only enabled if the claim is Finalised, and the insurer doesn't support online claims.

      The claim is updated with:

      • the Processing Date set to the current date/time
      • optional Insurer Claim Id if known
      • the status set to Processing

      Cancelling a Claim

      An Insurance Claim may be cancelled by clicking the Cancel Claim button. This is only enabled if the claim is In Progress or Finalised.

      This displays a dialog prompting for the reason for the cancellation. The claim is updated with:

      • the End Date set to the current date/time
      • the Cancellation Reason set to the entered reason

      If the insurer supports online claims, the cancellation will be submitted to the insurer, and the status set to Cancel Pending, otherwise its status will be set to Cancelled.

      Settling a Claim

      An Insurance Claim may be settled by clicking the Settle Claim button. This is only enabled if the claim is Processing, and the insurer doesn't support online claims.

      The claim is updated with:

      • the End Date set to the current date/time
      • the status set to Settled

      Declining a Claim

      An Insurance Claim may be declined by clicking the Decline Claim button. This is only enabled if the claim is Processing and the insurer doesn't support online claims.

      This displays a dialog prompting for the reason the claim was declined.

      The claim is updated with:

      • the End Date set to the current date/time
      • the status set to Declined
      • the Declined Reason set to the entered reason

      3.5 Copying Claims

      Claims may be copied to create new claims, by clicking the Copy button. The new claim will be displayed in an editor. The copied claim has:

      • In Progress status
      • empty Processing Date, End Date, Cancellation Reason and Declined Reason

      4. Online claims

      To support online claims, a plugin API will be provided that allows OpenVPMS to:

      • submit claims
      • cancel claims
      • provide additional attachments to an existing claim
      • obtain the declaration that users must accept before submitting a claim
      • synchronise supported insurers

      4.1 Plugin Configuration

      On initial deployment, insurance services will install an entity.insuranceService<Name> archetype containing the following mandatory fields:

      • name - the insurance provider name
      • description - the insurance provider description
      • contact.phone - insurance provider phone contact
      • contact.website - insurance provider website URL contact
      • help - URL for online help for claims

      The archetype can include additional fields required for connecting to the provider.
      The entity.insuranceService* archetypes will be configurable by administrators in Administration - Organisation.
      Typically, this would be used to provide usernames and passwords for connecting to the service.

      4.2 Insurer synchronisation

      An insurance service may accept claims for multiple insurers. The API will provide a method to synchronise party.supplierInsurer instances managed by the service.
      This will:

      • locate all party.supplierInsurers currently associated with the plugin
      • retrieve the latest list of suppliers and:
        • add new suppliers where applicable
        • deactivate suppliers that are no longer applicable

      New party.supplierInsurer instances will be associated with the entity.insuranceService*, so that it is invoked when claims are made

      4.3 Declaration

      An insurer may require users to accept a declaration prior to submitting a claim.

      A method will be provided to return this declaration, as plain text.

      When present, users must agree to the declaration, before the claim will be submitted.

      4.4 Adding attachments

      An insurer may request additional information if the claim is incomplete. For claims with Processing status, it will be possible to attach:

      • existing customer and patient documents
      • uploaded files

      to the claim. These will be automatically submitted.

      No other changes to the claim are possible.

      5. Patient Summary

      The patient summary will be updated to include the current policy for the patient, if any e.g.:

      • Insurance: None
      • Insurance: Pet Plan
      • Insurance: Expired

      6. Archetypes

      The following archetypes will be required:

      • entity.insurancePolicyType. This contains:
        • the policy name
        • a link to a claims document template, for printing and emailing
      • party.supplierInsurer. This contains:
        • the insurer name
        • the insurer identifier, if the ensure was created by an insurance service
        • contacts
        • insurance policy types
        • a link to the insurance service that handles e-claims for this insurer
      • act.patientInsurancePolicy. This contains:
        • policy start time
        • policy end time
        • the patient
        • the policy number
        • the type of insurance
      • act.patientInsuranceClaim. This contains:
        • link to the act.patientInsurancePolicy
        • link to 1 or more act.patientInsuranceClaimItem
        • the total for the claim items
      • act.patientInsuranceClaimItem. This contains:
        • the diagnosis
        • the treatment start time
        • the treatment end time
        • an optional patient deceased status
        • an optional euthanasia reason
        • optional notes
        • the invoice items being claimed
        • the total for the invoice items
      • entity.patientInsuranceService*

      7. Migration

      Existing insurance information needs to be migrated as follows:

      • for each lookup.customerInsurance, create a corresponding entity.insuranceType
      • for each customer with an insurance plan, create a corresponding act.patientInsurancePolicy linked to each of their pets. As the current customer insurance doesn't specify any start time, the policy start time will be left blank. This means that the policy will need to be manually edited in order for it to be considered valid.
      • remove the lookup.customerInsurance archetype

      8. Reporting Framework Changes

      In order to support printing claims the reporting framework will need to extended to support subreports nested within subreports.

        Attachments

          Activity

            People

            • Assignee:
              tanderson Tim Anderson
              Reporter:
              tanderson Tim Anderson
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 160h
                160h

                  Who's Looking?