Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Salesforce model docs #2832

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions docs/contract-rate-non-revision-design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Contract and Rate Without Revisions Design

This is an ER diagram of the data that is planned to be sent to Salesforce on submission. It relies on Salesforce's native diff tracking so elides the concept of Revisions.

```mermaid
erDiagram

Contract {
String id
DateTime initiallySubmittedAt
DateTime updatedAt
StateCode stateCode
String name
String mccrsID

String[] programNicknames
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm assuming we will need more robust programs data - the full names and the nicknames. We have different UI we display in our app already depending on context, sometimes we refer to programs by acronym sometimes its the full name written out.

PopulationCoveredEnum populationCovered "MEDICAID, CHIP, MEDICAID_AND_CHIP"
SubmissionTypeEnum submissionType "CONTRACT_ONLY, CONTRACT_AND_RATES"
Boolean riskBasedContract
String submissionDescription
Document[] contractDocuments
Document[] supportingDocuments
ContractTypeEnum contractType "BASE, AMENDMENT"
ContractExecutionStatusEnum contractExecutionStatus "EXECUTED, UNEXECUTED"
CalendarDate contractDateStart
CalendarDate contractDateEnd
String[] managedCareEntities
Copy link
Contributor

@haworku haworku Oct 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you assuming for federal authorities and managed care entities we will jsend SF user friendly names as strings rather than the enum values? Trying to understand why these are strings whereas some others are enums

String[] federalAuthorities
Boolean statutoryRegulatoryAttestation
String statutoryRegulatoryAttestationDescription

Boolean inLieuServicesAndSettings
Boolean modifiedBenefitsProvided
Boolean modifiedGeoAreaServed
Boolean modifiedMedicaidBeneficiaries
Boolean modifiedRiskSharingStrategy
Boolean modifiedIncentiveArrangements
Boolean modifiedWitholdAgreements
Boolean modifiedStateDirectedPayments
Boolean modifiedPassThroughPayments
Boolean modifiedPaymentsForMentalDiseaseInstitutions
Boolean modifiedMedicalLossRatioStandards
Boolean modifiedOtherFinancialPaymentIncentive
Boolean modifiedEnrollmentProcess
Boolean modifiedGrevienceAndAppeal
Boolean modifiedNetworkAdequacyStandards
Boolean modifiedLengthOfContract
Boolean modifiedNonRiskPaymentArrangements
Boolean statutoryRegulatoryAttestation
Boolean statutoryRegulatoryAttestationDescription

}

Rate {
String id
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to include the rate certification name?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking that would be the "name" field, standardized on both Contract and Rate

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah! I skipped that. Thanks for pointed it out.

DateTime initiallySubmittedAt
DateTime updatedAt
StateCode stateCode
String name

RateTypeEnum rateType "NEW, AMENDMENT"
RateCapitationTypeEnum rateCapitationType "RATE_CELL, RATE_RANGE"

String[] programNicknames
Copy link
Contributor

@haworku haworku Oct 15, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder that rate programs have the logic where sometimes we display historic rate program names sometimes not. See useHistoricPrograms to see that logic. Seems like the mc-review maybe could isolate that chaos on our side, just return clean rate program names to salesforce

Document[] rateDocuments
Document[] supportingDocuments

CalendarDate rateDateStart
CalendarDate rateDateEnd
CalendarDate rateDateCertified
CalendarDate amendmentEffectiveDateStart
CalendarDate amendmentEffectiveDateEnd
}


Contract }|--|{ Rate : "many to many"
```
Loading