Patient Plan Overview
Immutability
Patient Plans are immutable through the API. Once you create a Patient Plan, you will no longer be able to update it programmatically (except for updating source_id as this is a customer owned field). If you need to update a Patient Plan, you will need to first delete it and then create it again. You can use either of the below strategies to do this:
- If you have a source_id for the Patient Plan, you can use the PUT Patient Plan API to first
replace the existing plan and then create a new one in the existing plan slot (primary, secondary, etc). You should pass in the
conflict_behavior=REPLACE
in the payload. You should be aware that replacing plans leads to the withdrawal of all in-progress benefits checks and prior authorizations on the replaced plan. - If you want to use a safer approach or you don’t track source ids, you will want to do the following:
- Use the GET Patient Plans API to get the existing plans for a patient.
- Use the DELETE Patient Plan API to delete the plan you want to update. This will delete/archive the plan and withdraw all associated benefits checks and prior authorizations.
- Use the POST Patient Plan API to create a new plan for the patient.
Source Id Recommendation
We recommend using a source_id
format which guarantees new plan creation on member number or payor changes during a PUT Patient Plan API call.
If your system’s “Patient Plan” record is mutable and allows updates to the member_number
or payor
,
we recommend using a source_id
format which includes these two fields (ex. {YOUR_SYSTEMS_PATIENT_PLAN_ID}-{MEMBER_NUMBER}-{PAYOR_ID}
).
This will ensure that if either member_number
or payor
changes, we will create a new plan for the patient during a PUT Patient Plan call.
If your system’s “Patient Plan” record only allows updates to the member_number
(i.e. you would create an entirely new plan when changing the insurance),
we recommend using a source_id
format which includes the member_number
field (ex. {YOUR_SYSTEMS_PATIENT_PLAN_ID}-{MEMBER_NUMBER}
).
This will ensure that if the member_number
changes, we will create a new plan for the patient during a PUT Patient Plan call.
If your system has the same immutability guarantees as Silna, then you can use a source_id
that is just your systems id for the “Patient Plan” record (ex. {YOUR_SYSTEMS_PATIENT_PLAN_ID}
).
Tracking Latest Benefits and Eligibility
lastest_benefits_check
is populated with the latest completed benefits check. So, if the if you have not yet created any benefit checks against a patient plan, this field will be null until the benefit check that you create is complete. If there was a benefit check (Benefit Check A) completed against this plan (say two months ago) and you want to create a fresh benefit check (Benefit Check B), the latest_benefits_check will return Benefit Check A until Benefit Check B is complete.latest_eligibility_check
behaves in a similar manner to the above. It will be null until the first eligibility check is complete and will return the latest completed eligibility check until a new one is complete.plan_eligibility_status
is determined through a combination of thelatest_benefits_check
andlatest_eligibility_check
, whichever one was most recent