@startuml
state "Enter Claim" as ClaimEntering {
[*] --> Entered : Enter Claim
Entered --> Entered : Edit\nClaim
Entered : ClaimStatus=Entered (2)
Entered : ReviewStatus=Idle (1)
Entered : ClaimItemStatus=Accepted (1)
Entered : RejectionReason=Accepted (0)
}
state "Rule Engine Checking" as RuleEngineCheck {
state RuleEngineValidation <<choice>>
Entered --> RuleEngineValidation : Submit Claim
RuleEngineValidation --> RejectedByRuleEngine : Reject\nAll Items
RejectedByRuleEngine : ClaimStatus=Rejected (1)
RejectedByRuleEngine : ClaimItemStatus=Rejected (2)
RejectedByRuleEngine : RejectionReason=[1-19]
RejectedByRuleEngine : json_ext.claim_ai_quality.was_categorized=false
RejectedByRuleEngine : json_ext.claim_ai_quality.request_time=ValidityFrom
RejectedByRuleEngine : json_ext.claim_ai_quality.response_time=ValidityFrom
RejectedByRuleEngine : json_ext.claim_ai_quality.ai_result=Rejected (2)
RejectedByRuleEngine --> [*]
RuleEngineValidation --> CheckedIdle : Accept \n Some Items
CheckedIdle : ClaimStatus=Checked (4)
CheckedIdle : json_ext.claim_ai_quality.was_categorized=false
}
state "AI Automatic Categorisation" as AICheck {
state AIClaimCategorisation <<choice>>
CheckedIdle --> AIClaimCategorisation
AIClaimCategorisation --> CheckedAIAccepted : Accept\nAll Items
CheckedAIAccepted : json_ext.claim_ai_quality.was_categorized=true
CheckedAIAccepted : json_ext.claim_ai_quality.ai_result=Accepted (1)
AIClaimCategorisation --> CheckedAIFlagged : Reject\nSome Items
CheckedAIFlagged : ReviewStatus=SelectedForReview (4)
CheckedAIFlagged : ClaimItemStatus=Rejected (2)
CheckedAIFlagged : RejectionReason=Rejected by AI (-2)
CheckedAIFlagged : json_ext.claim_ai_quality.was_categorized=true
CheckedAIFlagged : json_ext.claim_ai_quality.ai_result=Rejected (2)
note top of CheckedAIFlagged : Rejected Items values
}
state "Manual Review" as ManualReview {
state SelectForReview <<choice>>
CheckedAIAccepted --> SelectForReview
SelectForReview --> CheckedNotSelected : Select manually\nnot to review
CheckedNotSelected : ReviewStatus=Not Selected (2)
CheckedNotSelected : RejectionReason=Accepted (0)
SelectForReview --> CheckedSelected : Select manually\nto review
CheckedSelected : ReviewStatus=Selected (4)
CheckedSelected : RejectionReason=Accepted (0)
state RequireManualReview <<choice>>
CheckedSelected --> RequireManualReview
CheckedAIFlagged --> RequireManualReview : Selected automatically\nfor review
RequireManualReview --> CheckedRejected : Manual Review\nReject All Items
CheckedRejected: ClaimStatus=Rejected (1)
CheckedRejected: ClaimItemStatus=Rejected (2)
CheckedRejected : RejectionReason=Rejected by MO (-1)
CheckedRejected --> [*]
RequireManualReview --> CheckedAccepted : Manual Review\nAccept Some Items
CheckedAccepted : ClaimItemStatus=Accepted (1)
CheckedAccepted : RejectionReason=Accepted (0)
CheckedAccepted --> CheckedReviewed : Deliver review
CheckedReviewed : ReviewStatus=Reviewed (8)
}
state "Processing" as Process {
CheckedReviewed --> ValuatedAccepted : Process
ValuatedAccepted : ClaimStatus=Valuated (16)
CheckedNotSelected --> ValuatedAccepted : Process
CheckedAccepted --> ValuatedBypassed : Process \nwithout \ndelivering \nreview
ValuatedBypassed : ClaimStatus=Valuated (16)
ValuatedBypassed : ReviewStatus=Bypassed (16)
ValuatedBypassed --> [*]
ValuatedAccepted --> [*]
}
@enduml |