CMSgov / QHP-provider-formulary-APIs

The Unlicense
40 stars 21 forks source link

plans.json Change to single formulary instead of array #22

Open John-Peterson-Cambia opened 9 years ago

John-Peterson-Cambia commented 9 years ago

Upon review of the updated plans.json schema from 8/28, we have identified an issue.

“formulary” has changed from an array to an object. This means we can send only a single “formulary” item (with a single “drug_tier”) for each “plan_id”.

This appears different than the stated intent of the “formulary” item and “drug_tier” field.

The “formulary” sub-type description reads: “This type defines a formulary within a plan. The values should be something that is meaningful to an issuer, there is no taxonomy of formulary tier names. This value will be used later in the drugs.json file to connect a drug to a specific plan and formulary tier within that plan.”

The “drug_tier” description reads: “Tier for formulary - (Example Values: GENERIC, PREFERRED-GENERIC, NON-PREFERRED-GENERIC, SPECIALTY, BRAND, PREFERRED-BRAND, NON-PREFERRED-BRAND, ZERO-COST-SHARE-PREVENTIVE, MEDICAL-SERVICE, etc. Values should be all uppercase.)”.

Our formularies include multiple drug_tiers by this implied definition. Any given plan_id will apply different cost sharing to different drugs, based on the drug tier for each particular drug in the formulary.

The drugs.json schema includes a drug_tier for each plan_id in the plans sub-type array for each drug (rxnorm_id).

We had programmed a solution to send all the drug_tier and associated cost sharing information in plans.json and drugs.json, based on similar data filed in our QHP Rx templates. This isn’t perfectly meaningful – it reflects only the base plan cost sharing, which can differ for some plan variations (e.g. zero cost share variation). However, it does appear to meet the original intent and specifications.

The updated plans.json spec and schema will no longer allow us to send this data, because it will allow sending only a single drug_tier for each plan_id, instead of all 6 that our formularies and drug lists include.

We’ve identified two possible solutions:

(1) Send only the first drug_tier for each plan_id in plans.json. (1a) We could then either continue sending all the correct drug_tier values in the drugs.json. But then some would find no matching drug_tier in plans.json. (1b) Or, we could send the same first drug_tier in drugs.json for all drugs. But this would be incorrect for most of the drugs.

(2) Send only some arbitrary single value for drug_tier for each plan_id in plans.json (e.g. "BASIC", as in the plans.json example JSON), and remove the cost_sharing sub-item array from plans.json (it is now optional). (2a) We could then either continue sending all the correct drug_tier values in the drugs.json. But then none would match the drug_tier in plans.json. (2b) Or, we could send the same arbitrary single value for drug_tier in drugs.json for all drugs, though this would be rather meaningless data.

We’re leaning towards #2b, but are concerned that this may not meet CMS intent.

Will this interpretation meet CMS requirements and intent?