@AccessLevel(value=EXTERNAL)
public class ProgramGroupHelper
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected com.google.inject.Provider<curam.core.sl.impl.CaseTransactionLogIntf> |
caseTransactionLogProvider
The Case TransactionLog.
|
protected curam.core.sl.infrastructure.assessment.impl.DeterminationCalculatorFactory |
determinationCalculatorFactory
The Determination Calculator.
|
protected curam.core.sl.infrastructure.propagator.impl.InEditEvidenceManager |
inEditEvidenceManager |
protected java.util.Map<java.lang.Long,ProductDeliveryManagerHook> |
productDeliveryManagerHookMap |
Constructor and Description |
---|
ProgramGroupHelper()
Constructor.
|
ProgramGroupHelper(java.lang.Boolean usePendingEvidence)
Constructor to read in edit evidences.
|
Modifier and Type | Method and Description |
---|---|
void |
activate(curam.core.struct.CaseKey caseKey)
Activates the program case.
|
void |
approve(curam.core.struct.CaseKey caseKey)
Approves the product delivery case.
|
curam.core.struct.CaseKey |
createCase(curam.core.struct.CaseKey key,
long programID,
long concernRoleID)
Creates a product delivery case for a given program.
|
static curam.util.type.Date |
getCoverageStartDate(curam.util.type.Date applicationDate,
curam.creole.value.CodeTableItem program)
Returns the program specific coverage start date.
|
curam.util.type.Date |
getLatestCertToDateForProduct(long caseID)
Retrieves the latest certification to date for a specified product.
|
boolean |
hasDecisionChanged(java.lang.String productType)
Returns
true if the productType passed has been
reassessed and the decision changed as a result (within the current
transaction), false otherwise. |
java.util.List<java.lang.Long> |
populateMembersPassingSpecialResidencyRuleList(curam.creole.execution.RuleObject program)
Populates member unit case participant role identifiers of members who are
eligible for special residency rules.
|
boolean |
programsExistInThePast(curam.codetable.impl.PRODUCTTYPEEntry productType,
java.util.Map<curam.codetable.impl.PRODUCTTYPEEntry,java.util.List<java.lang.Long>> existingCases)
Indicates if a program of a specific type has been created in the last.
|
curam.util.type.DateRange |
readPDDecisionDates(curam.core.struct.CaseKey caseKey) |
void |
submitAndApprovePDCase(curam.core.struct.CaseKey caseKey)
Activates the status of product delivery cases.
|
void |
submitForApproval(curam.core.struct.CaseKey key)
Submits the program for an approval.
|
@Inject(optional=true) protected java.util.Map<java.lang.Long,ProductDeliveryManagerHook> productDeliveryManagerHookMap
@Inject protected com.google.inject.Provider<curam.core.sl.impl.CaseTransactionLogIntf> caseTransactionLogProvider
@Inject protected curam.core.sl.infrastructure.assessment.impl.DeterminationCalculatorFactory determinationCalculatorFactory
@Inject protected curam.core.sl.infrastructure.propagator.impl.InEditEvidenceManager inEditEvidenceManager
public ProgramGroupHelper()
public ProgramGroupHelper(java.lang.Boolean usePendingEvidence)
@AccessLevel(value=EXTERNAL) public void submitAndApprovePDCase(curam.core.struct.CaseKey caseKey) throws curam.util.exception.AppException, curam.util.exception.InformationalException
caseKey
- The key of a casecuram.util.exception.AppException
- Generic Exception Signature.curam.util.exception.InformationalException
- Generic Exception Signature.CaseApproval, CaseNominee, caseHeader, CaseRelationship, CaseParticipantRole, CaseEvidence, ConcernRole, ConcernRoleBankAccount, CaseEvent, DeliveryMethod, DPprocess, EvidenceMetadata, EvidenceDescriptor, Product, position, organisationUnit, OrgObjectLink, ProductDelivery, ProductDeliveryType, UserRecentAction, OrganisationUnit, workQueueSubscription, VerificationRequirement, VerificationRequirementUsage, Verification, VDIEDLink, VerifiableDataItemg |
CaseApproval, CaseEvent, caseHeader, CaseRelationship, CaseStatus, CaseUserRole, ConcernRole, DPprocess, EvidenceDescriptor, OrgObjectLink, ProductDelivery, UserRecentAction, VDIEDLink, Verification |
public curam.util.type.DateRange readPDDecisionDates(curam.core.struct.CaseKey caseKey) throws curam.util.exception.AppException, curam.util.exception.InformationalException
curam.util.exception.AppException
curam.util.exception.InformationalException
@AccessLevel(value=EXTERNAL) public curam.core.struct.CaseKey createCase(curam.core.struct.CaseKey key, long programID, long concernRoleID) throws curam.util.exception.AppException, curam.util.exception.InformationalException
key
- The Integrated Case key.programID
- The id of the program.concernRoleID
- The concern role of a case member.curam.util.exception.AppException
- Generic Exception Signature.curam.util.exception.InformationalException
- Generic Exception Signature.@AccessLevel(value=EXTERNAL) public void submitForApproval(curam.core.struct.CaseKey key) throws curam.util.exception.AppException, curam.util.exception.InformationalException
key
- The key of the product delivery case.curam.util.exception.AppException
- Generic Exception Signature.curam.util.exception.InformationalException
- Generic Exception Signature.@AccessLevel(value=EXTERNAL) public void approve(curam.core.struct.CaseKey caseKey) throws curam.util.exception.AppException, curam.util.exception.InformationalException
caseKey
- The key of an program case.curam.util.exception.AppException
- Generic Exception Signature.curam.util.exception.InformationalException
- Generic Exception Signature.@AccessLevel(value=EXTERNAL) public void activate(curam.core.struct.CaseKey caseKey) throws curam.util.exception.AppException, curam.util.exception.InformationalException
caseKey
- The key of a product delivery case.curam.util.exception.AppException
- Generic Exception Signature.curam.util.exception.InformationalException
- Generic Exception Signature.public boolean hasDecisionChanged(java.lang.String productType)
true
if the productType
passed has been
reassessed and the decision changed as a result (within the current
transaction), false
otherwise.
We catch and log any errors in this method and return false
by
default to avoid having any failing call to this method affecting the
eligibility processing.
productType
- String.public static curam.util.type.Date getCoverageStartDate(curam.util.type.Date applicationDate, curam.creole.value.CodeTableItem program)
The coverage start date is retrieved from the active
OpenEnrollmentPeriod
, which overlaps with the application date. If
the coverage start date is between HealthCareDateUtility()
.getOpenEnrollmentStartDay and 31 the month will be pushed to the next to
next month otherwise pushed to next month.
session
- Session details of CER rule set.applicationDate
- The date in which application was submitted.public java.util.List<java.lang.Long> populateMembersPassingSpecialResidencyRuleList(curam.creole.execution.RuleObject program)
program
- A rule object containing program detailspublic boolean programsExistInThePast(curam.codetable.impl.PRODUCTTYPEEntry productType, java.util.Map<curam.codetable.impl.PRODUCTTYPEEntry,java.util.List<java.lang.Long>> existingCases) throws curam.util.exception.AppException, curam.util.exception.InformationalException
productType
- The product typeexistingCases
- A map of product types and existing cases of those
typestrue
if the programs exist in the past, otherwise
false
.curam.util.exception.AppException
curam.util.exception.InformationalException
public curam.util.type.Date getLatestCertToDateForProduct(long caseID) throws curam.util.exception.AppException, curam.util.exception.InformationalException
caseID
- A product delivery case identifiercuram.util.exception.AppException
curam.util.exception.InformationalException