data

package
v0.0.0-...-c3771a0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2020 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RECORD_ID = iota
	SUBJECT_STATUS
	SUBJECT_ID
	REQ_SEG_SEP
	REQ_CII_NUMBER
	REQ_NAME
	REQ_GENDER
	REQ_DOB
	REQ_CDL
	REQ_SSN
	PII_SEG_SEP
	CII_NUMBER
	PRI_NAME
	GENDER
	PRI_DOB
	PRI_SSN
	PRI_CDL
	PRI_IDN
	PRI_INN
	FBI_NUMBER
	PDR_SEG_SEP
	RACE_CODE
	RACE_DESCR
	EYE_COLOR_CODE
	EYE_COLOR_DESCR
	HAIR_COLOR_CODE
	HAIR_COLOR_DESCR
	HEIGHT
	WEIGHT
	SINGLE_SOURCE
	MULTI_SOURCE
	POB_CODE
	POB_NAME
	POB_TYPE
	CITIZENSHIP_LIST
	CYC_SEG_SEP
	CYC_ORDER
	CYC_DATE
	STP_SEG_SEP
	STP_ORDER
	STP_EVENT_DATE
	STP_TYPE_CODE
	STP_TYPE_DESCR
	STP_ORI_TYPE
	STP_ORI_TYPE_DESCR
	STP_ORI_CODE
	STP_ORI_DESCR
	STP_ORI_CNTY_CODE
	STP_ORI_CNTY_NAME
	CNT_SEG_SEP
	CNT_ORDER
	DISP_DATE
	OFN
	OFFENSE_CODE
	OFFENSE_DESCR
	OFFENSE_TOC
	OFFENSE_QUAL_LST
	DISP_OFFENSE_CODE
	DISP_OFFENSE_DESCR
	DISP_OFFENSE_TOC
	DISP_OFFENSE_QUAL_LST
	CONV_OFFENSE_ORDER
	CONV_OFFENSE_CODE
	CONV_OFFENSE_DESCR
	CONV_OFFENSE_TOC
	CONV_OFFENSE_QUAL_LST
	FE_NUM_ORDER
	FE_NUM_ARR_AGY
	FE_NUM_BNCH_WARR
	FE_NUM_CITE
	FE_NUM_DOCKET
	FE_NUM_INCIDENT
	FE_NUM_BOOKING
	FE_NUM_NUMBER
	FE_NUM_REMAND
	FE_NUM_OOS_INN
	FE_NUM_CRT_CASE
	FE_NUM_WARRANT
	DISP_ORDER
	DISP_CODE
	DISP_DESCR
	CONV_STAT_CODE
	CONV_STAT_DESCR
	SENT_SEG_SEP
	SENT_ORDER
	SENT_LOC_CODE
	SENT_LOC_DESCR
	SENT_LENGTH
	SENT_TIME_CODE
	SENT_TIME_DESCR
	CYC_AGE
	CII_TYPE
	CII_TYPE_ALPHA
	COMMENT_TEXT
	END_OF_REC
)

Variables

View Source
var EligibilityFlows = map[string]EligibilityFlow{
	"DISMISS ALL PROP 64":             dismissAllProp64EligibilityFlow{},
	"DISMISS ALL PROP 64 AND RELATED": dismissAllProp64AndRelatedEligibilityFlow{},
}

Functions

func IsCodeSectionInComment

func IsCodeSectionInComment(offenseDescription string) bool

func IsFelonyFilter

func IsFelonyFilter(conviction *DOJRow) bool

func IsNotFelonyFilter

func IsNotFelonyFilter(conviction *DOJRow) bool

func IsPC290

func IsPC290(codeSection string) bool

func IsSuperstrike

func IsSuperstrike(codeSection string) bool

Types

type AdditionalRelief

type AdditionalRelief struct {
	SubjectUnder21AtConviction    bool `json:"subjectUnder21AtConviction"`
	SubjectHasOnlyProp64Charges   bool `json:"subjectHasOnlyProp64Charges"`
	SubjectIsDeceased             bool `json:"subjectIsDeceased"`
	SubjectAgeThreshold           int  `json:"subjectAgeThreshold"`
	YearsSinceConvictionThreshold int  `json:"yearsSinceConvictionThreshold"`
	YearsCrimeFreeThreshold       int  `json:"yearsCrimeFreeThreshold"`
}

type BaselineEligibility

type BaselineEligibility struct {
	Dismiss []string `json:"dismiss"`
	Reduce  []string `json:"reduce"`
}

type ConfigurableEligibilityFlow

type ConfigurableEligibilityFlow struct {
	DismissSections []string
	ReduceSections  []string
	// contains filtered or unexported fields
}

func NewConfigurableEligibilityFlow

func NewConfigurableEligibilityFlow(options EligibilityOptions, county string) (ConfigurableEligibilityFlow, error)

func (ConfigurableEligibilityFlow) ChecksRelatedCharges

func (ef ConfigurableEligibilityFlow) ChecksRelatedCharges() bool

func (ConfigurableEligibilityFlow) EvaluateEligibility

func (ef ConfigurableEligibilityFlow) EvaluateEligibility(info *EligibilityInfo, row *DOJRow, subject *Subject)

func (ConfigurableEligibilityFlow) ProcessSubject

func (ef ConfigurableEligibilityFlow) ProcessSubject(subject *Subject, comparisonTime time.Time, flowCounty string) map[int]*EligibilityInfo

type DOJInformation

type DOJInformation struct {
	Rows     [][]string
	Subjects map[string]*Subject
	// contains filtered or unexported fields
}

func NewDOJInformation

func NewDOJInformation(dojFileName string, comparisonTime time.Time, eligibilityFlow EligibilityFlow) (*DOJInformation, utilities.GogenError)

func (*DOJInformation) CountIndividualsNoLongerHaveConviction

func (i *DOJInformation) CountIndividualsNoLongerHaveConviction(eligibilities map[int]*EligibilityInfo) int

func (*DOJInformation) CountIndividualsNoLongerHaveConvictionInLast7Years

func (i *DOJInformation) CountIndividualsNoLongerHaveConvictionInLast7Years(eligibilities map[int]*EligibilityInfo) int

func (*DOJInformation) CountIndividualsNoLongerHaveFelony

func (i *DOJInformation) CountIndividualsNoLongerHaveFelony(eligibilities map[int]*EligibilityInfo) int

func (*DOJInformation) CountIndividualsWithProp64ConvictionInCounty

func (i *DOJInformation) CountIndividualsWithProp64ConvictionInCounty(county string) int

func (*DOJInformation) CountIndividualsWithSomeRelief

func (i *DOJInformation) CountIndividualsWithSomeRelief(eligibilities map[int]*EligibilityInfo) int

func (*DOJInformation) DetermineEligibility

func (i *DOJInformation) DetermineEligibility(county string, eligibilityFlow EligibilityFlow) map[int]*EligibilityInfo

func (*DOJInformation) EarliestProp64ConvictionDateInThisCounty

func (i *DOJInformation) EarliestProp64ConvictionDateInThisCounty(county string) time.Time

func (*DOJInformation) Prop64ConvictionsInThisCountyByCodeSection

func (i *DOJInformation) Prop64ConvictionsInThisCountyByCodeSection(county string) map[string]int

func (*DOJInformation) Prop64ConvictionsInThisCountyByEligibilityByReason

func (i *DOJInformation) Prop64ConvictionsInThisCountyByEligibilityByReason(county string, eligibilities map[int]*EligibilityInfo) map[string]map[string]int

func (*DOJInformation) TotalConvictions

func (i *DOJInformation) TotalConvictions() int

func (*DOJInformation) TotalConvictionsInCountyFiltered

func (i *DOJInformation) TotalConvictionsInCountyFiltered(county string, convictionFilter func(conviction *DOJRow) bool, matcher func(codeSection string) bool) int

func (*DOJInformation) TotalRows

func (i *DOJInformation) TotalRows() int

type DOJRow

type DOJRow struct {
	SubjectID              string
	DOB                    time.Time
	Name                   string
	WasConvicted           bool
	CodeSection            string
	DispositionDate        time.Time
	OFN                    string
	Type                   string
	IsPC290Registration    bool
	County                 string
	IsFelony               bool
	NumCrtCase             string
	CourtNoParts           []string
	CountOrder             string
	Index                  int
	SentenceEndDate        time.Time
	SentencePartDuration   time.Duration
	HasProp64ChargeInCycle bool
}

func NewDOJRow

func NewDOJRow(rawRow []string, index int) DOJRow

func (*DOJRow) OccurredInLast7Years

func (row *DOJRow) OccurredInLast7Years() bool

type EligibilityFlow

type EligibilityFlow interface {
	ProcessSubject(subject *Subject, comparisonTime time.Time, flowCounty string) map[int]*EligibilityInfo
	ChecksRelatedCharges() (result bool)
}

type EligibilityInfo

type EligibilityInfo struct {
	NumberOfConvictionsOnRecord    int
	DateOfConviction               time.Time
	YearsSinceThisConviction       float64
	YearsSinceMostRecentConviction float64
	NumberOfProp64Convictions      int
	NumberOf11357Convictions       int
	NumberOf11358Convictions       int
	NumberOf11359Convictions       int
	NumberOf11360Convictions       int

	OccurredAfterEffectiveDate string
	Superstrikes               string
	PC290CodeSections          string
	PC290Registration          string
	EligibilityDetermination   string
	EligibilityReason          string
	CaseNumber                 string
	Deceased                   string
	// contains filtered or unexported fields
}

func NewEligibilityInfo

func NewEligibilityInfo(row *DOJRow, subject *Subject, comparisonTime time.Time, county string) *EligibilityInfo

func (*EligibilityInfo) SetEligibleForDismissal

func (info *EligibilityInfo) SetEligibleForDismissal(reason string)

func (*EligibilityInfo) SetEligibleForReduction

func (info *EligibilityInfo) SetEligibleForReduction(reason string)

func (*EligibilityInfo) SetHandReview

func (info *EligibilityInfo) SetHandReview(reason string)

func (*EligibilityInfo) SetMaybeEligible

func (info *EligibilityInfo) SetMaybeEligible(reason string)

func (*EligibilityInfo) SetNotEligible

func (info *EligibilityInfo) SetNotEligible(reason string)

type EligibilityOptions

type EligibilityOptions struct {
	BaselineEligibility BaselineEligibility `json:"baselineEligibility"`
	AdditionalRelief    AdditionalRelief    `json:"additionalRelief"`
}

type Subject

type Subject struct {
	ID          string
	Name        string
	DOB         time.Time
	Convictions []*DOJRow

	PC290Registration       bool
	CyclesWithProp64Charges map[string]bool
	CaseNumbers             map[string][]string
	IsDeceased              bool
	// contains filtered or unexported fields
}

func (*Subject) MostRecentConvictionDate

func (subject *Subject) MostRecentConvictionDate() time.Time

func (*Subject) NumberOfConvictionsInCounty

func (subject *Subject) NumberOfConvictionsInCounty(county string) int

func (*Subject) NumberOfConvictionsInLast7Years

func (subject *Subject) NumberOfConvictionsInLast7Years() int

func (*Subject) NumberOfFelonies

func (subject *Subject) NumberOfFelonies() int

func (*Subject) PC290CodeSections

func (subject *Subject) PC290CodeSections() []string

func (*Subject) Prop64ConvictionsBySection

func (subject *Subject) Prop64ConvictionsBySection() (int, int, int, int, int)

func (*Subject) PushRow

func (subject *Subject) PushRow(row DOJRow, eligibilityFlow EligibilityFlow)

func (*Subject) SuperstrikeCodeSections

func (subject *Subject) SuperstrikeCodeSections() []string

type TimeSlice

type TimeSlice []time.Time

func (TimeSlice) Len

func (s TimeSlice) Len() int

func (TimeSlice) Less

func (s TimeSlice) Less(i, j int) bool

func (TimeSlice) Swap

func (s TimeSlice) Swap(i, j int)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL