Dynamic Logic Functions

This section describes the dynamic logic functions that are used to create financial messages from financial transactions and financial transaction details.

Create Invoice

Financial transaction details are grouped into invoices within a Financial Message. Grouping of invoices is done on various attributes on Financial Transaction and Financial Transaction Detail (Process Data). Additional fields required for an invoice are added or generated in this dynamic logic function. Dynamic Logic of the signature Create Invoice holds the logic to create invoices based on the invoice grouping criteria. Because of the grouping functionality all attributes on a financial transaction detail that have to be included in an invoice are the same. For this reason, the invoice can be based on a single financial transaction detail as input for the dynamic logic function; note also that the payment receiver is known at the financial transaction detail level, not on the financial transaction level.

Create Invoice XML

Dynamic functions of this type fill the values of an invoice element for an invoice of selected financial transaction. These dynamic functions are executed once per invoice of the financial transactions being processed.

Parameters

Parameter Name Parameter Type Input / Output Description

financialTransactionDetail

FinancialTransaction Detail

Input

The financial transaction detail from which the invoice header attributes are derived to construct the XML.

invoice

Input / Output

XML <invoice> element that will be included in the financial message.

Input: empty invoice with only the attributes assigned by the fixed logic set

The dynamic logic needs to transfer all desired values from the input parameters and financial transaction(s) to the invoice header. The amount is calculated by OHI and cannot be manipulated by the dynamic logic function.

In addition, logic needed to set details that only exist in an invoice header may be included (i.e. to set values that are derived as opposed to simply being transferred).

Create Invoice Flat File

This function is executed for each 'Invoice grouping' of financial transaction details. This function will allow creation of zero, one, or more flat file rows each time it is executed.

Parameters

Parameter Name Parameter Type Input / Output Description

financialMessage

FinancialMessage

Input

Financial Message Context*

financialTransactionDetail

FinancialTransactionDetail

Input

invoice

Invoice

Input

Invoice Context*

fileRows

List<FileRow>**

Input/Output

FileRow consists of the file identifier and row content

^*Contexts are described in the section Financial Message Structure - Flat File of the chapter Generate Financial Message

**FileRow is a OHI object type and has a constructor that takes the 'File Identifier' and 'Row Contents' both String type as its arguments.^

Example

Map apInv = [:]
apInv.INVOICE_ID = ''
apInv.OPERATING_UNIT = 'OHI BU'
apInv.SOURCE = 'EXTERNAL'
apInv.INVOICE_NUM = ''
apInv.INVOICE_AMOUNT = invoice.invoiceAmount
apInv.INVOICE_DATE = ''
apInv.VENDOR_NAME = ''
apInv.VENDOR_NUM = ''
apInv.VENDOR_SITE_CODE
apInv.INVOICE_CURRENCY_CODE = ''
apInv.PAYMENT_CURRENCY_CODE = ''
apInv.DESCRIPTION = 'Health Insurance Claim'
apInv.GROUP_ID = financialMessage.jobId
apInv.INVOICE_TYPE_LOOKUP_CODE
apInv.LEGAL_ENTITY_NAME = 'OHI Entity'
apInv.CUST_REGISTRATION_NUMBER = ''
apInv.CUST_REGISTRATION_CODE = ''
apInv.FIRST_PARTY_REGISTRATION_NUM = ''
apInv.THIRD_PARTY_REGISTRATION_NUM = ''
apInv.TERMS_NAME = 'Immediate'
apInv.TERMS_DATE = ''
apInv.GOODS_RECEIVED_DATE = ''
apInv.INVOICE_RECEIVED_DATE = ''
apInv.GL_DATE = ''
apInv.PAYMENT_METHOD_CODE = 'EFT'
apInv.PAY_GROUP_LOOKUP_CODE
apInv.EXCLUSIVE_PAYMENT_FLAG = ''
apInv.AMOUNT_APPLICABLE_TO_DISCOUNT =''
apInv.PREPAY_NUM = ''
apInv.PREPAY_LINE_NUM = ''
apInv.PREPAY_APPLY_AMOUNT = ''
apInv.PREPAY_GL_DATE = ''
apInv.INVOICE_INCLUDES_PREPAY_FLAG = ''
apInv.EXCHANGE_RATE_TYPE = 'CORPORATE'
apInv.EXCHANGE_DATE
apInv.EXCHANGE_RATE = ''
apInv.ACCTS_PAY_CODE_CONCATENATED = '010-22500-00000-00000-00000-00000-00000'
apInv.DOC_CATEGORY_CODE = ''
apInv.VOUCHER_NUM = ''
apInv.REQUESTER_FIRST_NAME = ''
apInv.REQUESTER_LAST_NAME = ''
apInv.REQUESTER_EMPLOYEE_NUM = ''
apInv.DELIVERY_CHANNEL_CODE = ''
apInv.BANK_CHARGE_BEARER = ''
apInv.REMIT_TO_SUPPLIER_NAME = ''
apInv.REMIT_TO_SUPPLIER_NUM= ''
apInv.REMIT_TO_ADDRESS_NAME = ''
apInv.PAYMENT_PRIORITY = '1'
apInv.SETTLEMENT_PRIORITY = 'NORMAL'
apInv.UNIQUE_REMITTANCE_IDENTIFIER = ''
apInv.URI_CHECK_DIGIT = ''
apInv.PAYMENT_REASON_CODE = ''
apInv.PAYMENT_REASON_COMMENTS = ''
apInv.REMITTANCE_MESSAGE1= ''
apInv.REMITTANCE_MESSAGE2 = ''
apInv.REMITTANCE_MESSAGE3 = ''
apInv.AWT_GROUP_NAME = ''
apInv.SHIP_TO_LOCATION = ''
apInv.TAXATION_COUNTRY = ''
apInv.DOCUMENT_SUB_TYPE = ''
apInv.TAX_INVOICE_INTERNAL_SEQ = ''
apInv.SUPPLIER_TAX_INVOICE_NUM = ''
apInv.TAX_INVOICE_RECORDING_DATE = ''
apInv.SUPPLIER_TAX_INVOICE_DATE = ''
apInv.SUPPLIER_TAX_EXCHANGE_RATE = ''
apInv.PORT_OF_ENTRY_CODE = ''
apInv.CORRECTION_YEAR = ''
apInv.CORRECTION_PERIOD = ''
apInv.IMPORT_DOCUMENT_NUMBER = ''
apInv.IMPORT_DOCUMENT_DATE = ''
apInv.CONTROL_AMOUNT = ''
apInv.CALC_TAX_DURING_IMPORT_FLAG = 'N'
apInv.ADD_TAX_TO_INV_AMOUNT_FLAG = 'N'
apInv.ATTRIBUTE_CATEGORY = 'OHI_DATA'
apInv.ATTRIBUTE1 = ''
apInv.ATTRIBUTE2 = ''
apInv.ATTRIBUTE3 = ''
apInv.ATTRIBUTE4 = ''
apInv.ATTRIBUTE5 = ''
apInv.ATTRIBUTE6 = ''
apInv.ATTRIBUTE7 = 'CLA'
apInv.ATTRIBUTE8 = invoice.ohiInvoiceId
apInv.ATTRIBUTE9 = ''
apInv.ATTRIBUTE10 = ''
apInv.ATTRIBUTE11 = ''
apInv.ATTRIBUTE12 = ''
apInv.ATTRIBUTE13 = ''
apInv.ATTRIBUTE14 = ''
apInv.ATTRIBUTE15 = ''
apInv.ATTRIBUTE_NUMBER1 = ''
apInv.ATTRIBUTE_NUMBER2 = ''
apInv.ATTRIBUTE_NUMBER3 = ''
apInv.ATTRIBUTE_NUMBER4 = ''
apInv.ATTRIBUTE_NUMBER5 = ''
apInv.ATTRIBUTE_DATE1 = ''
apInv.ATTRIBUTE_DATE2 = ''
apInv.ATTRIBUTE_DATE3 = ''
apInv.ATTRIBUTE_DATE4 = ''
apInv.ATTRIBUTE_DATE5 = ''
apInv.GLOBAL_ATTRIBUTE_CATEGORY = ''
apInv.GLOBAL_ATTRIBUTE1 = ''
apInv.GLOBAL_ATTRIBUTE2 = ''
apInv.GLOBAL_ATTRIBUTE3 = ''
apInv.GLOBAL_ATTRIBUTE4 = ''
apInv.GLOBAL_ATTRIBUTE5 = ''
apInv.GLOBAL_ATTRIBUTE6 = ''
apInv.GLOBAL_ATTRIBUTE7 = ''
apInv.GLOBAL_ATTRIBUTE8 = ''
apInv.GLOBAL_ATTRIBUTE9 = ''
apInv.GLOBAL_ATTRIBUTE10 = ''
apInv.GLOBAL_ATTRIBUTE11 = ''
apInv.GLOBAL_ATTRIBUTE12 = ''
apInv.GLOBAL_ATTRIBUTE13 = ''
apInv.GLOBAL_ATTRIBUTE14 = ''
apInv.GLOBAL_ATTRIBUTE15 = ''
apInv.GLOBAL_ATTRIBUTE16 = ''
apInv.GLOBAL_ATTRIBUTE17 = ''
apInv.GLOBAL_ATTRIBUTE18 = ''
apInv.GLOBAL_ATTRIBUTE19 = ''
apInv.GLOBAL_ATTRIBUTE20 = ''
apInv.GLOBAL_ATTRIBUTE_NUMBER1 = ''
apInv.GLOBAL_ATTRIBUTE_NUMBER2 = ''
apInv.GLOBAL_ATTRIBUTE_NUMBER3 = ''
apInv.GLOBAL_ATTRIBUTE_NUMBER4 = ''
apInv.GLOBAL_ATTRIBUTE_NUMBER5 = ''
apInv.GLOBAL_ATTRIBUTE_DATE1 = ''
apInv.GLOBAL_ATTRIBUTE_DATE2 = ''
apInv.GLOBAL_ATTRIBUTE_DATE3 = ''
apInv.GLOBAL_ATTRIBUTE_DATE4 = ''
apInv.GLOBAL_ATTRIBUTE_DATE5 = ''

fileRows.add(new FileRow('AP_INVOICES_INTERFACE', apInv.values().join(',')))

Create Invoice Line

Financial transaction details are grouped into invoices lines within an Invoice in a Financial Message. Grouping of invoice lines is done on various attributes on Financial Transaction and Financial Transaction Detail (Process Data). Additional fields required for an invoice line are added or generated in this dynamic logic function. Dynamic Logic of the signature Create Invoice Line holds the logic to create invoice lines based on the invoice line grouping criteria.

Create Invoice Line XML

Dynamic functions of this type fill the values of an invoice line element for an amount that needs to be paid (or retracted). These dynamic functions are executed once for each generated by the Generate Financial Message activity. They are executed within the context of the invoice with the same payment receiver of the financial transaction detail process data.

Parameters

Parameter Parameter Type Input / Output Description

financialTransactionDetail

FinancialTransaction Detail

Input

The financial transaction detail from which the invoice line attributes are derived to contract the XML.

invoiceLine

Input / Output

XML <invoiceLine> element that will be included in the financial message.

Input: empty invoice header with only invoiceId set

The dynamic logic needs to transfer all desired values from the financial detail, claim line, bill and claim to the invoice line. The amount is calculated by OHI and cannot be manipulated by the dynamic logic function.

In addition, logic needed to set details that only exist in an invoice line may be included (i.e. to set values that are derived as opposed to simply being transferred).

Create Invoice Line Flat File

This function will be executed for each 'Invoice Line grouping' of financial transaction details. This function will allow creation of zero, one, or more flat file rows each time it is executed.

Parameters

Parameter Name Parameter Type Input / Output Description

financialMessage

FinancialMessage

Input

Financial Message Context*

financialTransactionDetail

FinancialTransactionDetail

Input

Financial Transaction Detail

invoice

Invoice

Input

Invoice Context*

invoiceLine

InvoiceLine

Input

Invoice Line Context*

fileRows

List<FileRow>

Input/Output

File row consists of the file identifier and row content

^*Contexts are described in the section Financial Message Structure - Flat File of the chapter Generate Financial Message ^

Example

Map apInvLn = [:]
apInvLn.INVOICE_ID = ''
apInvLn.LINE_NUMBER = ''
apInvLn.LINE_TYPE_LOOKUP_CODE = 'Item'
apInvLn.AMOUNT = invoiceLine.amount
apInvLn.QUANTITY_INVOICED = ''
apInvLn.UNIT_PRICE = ''
apInvLn.UNIT_OF_MEAS_LOOKUP_CODE = ''
apInvLn.DESCRIPTION = ''
apInvLn.PO_NUMBER = ''
apInvLn.PO_LINE_NUMBER = ''
apInvLn.PO_SHIPMENT_NUM = ''
apInvLn.PO_DISTRIBUTION_NUM = ''
apInvLn.ITEM_DESCRIPTION = ''
apInvLn.RELEASE_NUMBER = ''
apInvLn.PURCHASING_CATEGORY = ''
apInvLn.RECEIPT_NUMBER = ''
apInvLn.RECEIPT_LINE_NUMBER = ''
apInvLn.CONSUMPTION_ADVICE_NUMBER = ''
apInvLn.CONSUMPTION_ADVICE_LINE_NUMBER = ''
apInvLn.PACKING_SLIP = ''
apInvLn.FINAL_MATCH_FLAG = ''
apInvLn.DIST_CODE_CONCATENATED = '010-44040-00000-00000-00000-00000-00000'
apInvLn.DISTRIBUTION_SET_NAME = ''
apInvLn.ACCOUNTING_DATE
apInvLn.ACCOUNT_SEGMENT = ''
apInvLn.BALANCING_SEGMENT = ''
apInvLn.COST_CENTER_SEGMENT = ''
apInvLn.TAX_CLASSIFICATION_CODE = ''
apInvLn.SHIP_TO_LOCATION_CODE = ''
apInvLn.SHIP_FROM_LOCATION_CODE = ''
apInvLn.FINAL_DISCHARGE_LOCATION_CODE = ''
apInvLn.TRX_BUSINESS_CATEGORY = ''
apInvLn.PRODUCT_FISC_CLASSIFICATION = ''
apInvLn.PRIMARY_INTENDED_USE = ''
apInvLn.USER_DEFINED_FISC_CLASS = ''
apInvLn.PRODUCT_TYPE = ''
apInvLn.ASSESSABLE_VALUE = ''
apInvLn.PRODUCT_CATEGORY = ''
apInvLn.CONTROL_AMOUNT = ''
apInvLn.TAX_REGIME_CODE = ''
apInvLn.TAX = ''
apInvLn.TAX_STATUS_CODE = ''
apInvLn.TAX_JURISDICTION_CODE = ''
apInvLn.TAX_RATE_CODE = ''
apInvLn.TAX_RATE = ''
apInvLn.AWT_GROUP_NAME = ''
apInvLn.TYPE_1099 = ''
apInvLn.INCOME_TAX_REGION = ''
apInvLn.PRORATE_ACROSS_FLAG = 'N'
apInvLn.LINE_GROUP_NUMBER = '1'
apInvLn.COST_FACTOR_NAME = ''
apInvLn.STAT_AMOUNT = ''
apInvLn.ASSET_TRACKING_FLAG = 'N'
apInvLn.ASSET_BOOK_TYPE_CODE = ''
apInvLn.ASSET_CATEGORY_ID = ''
apInvLn.SERIAL_NUMBER = ''
apInvLn.MANUFACTURER = ''
apInvLn.MODEL_NUMBER = ''
apInvLn.WARRANTY_NUMBER = ''
apInvLn.PRICE_CORRECTION_FLAG = 'N'
apInvLn.PRICE_CORRECT_INV_NUM = ''
apInvLn.PRICE_CORRECT_INV_LINE_NUM = ''
apInvLn.REQUESTER_FIRST_NAME = ''
apInvLn.REQUESTER_LAST_NAME = ''
apInvLn.REQUESTER_EMPLOYEE_NUM = ''
apInvLn.ATTRIBUTECATEGORY = ''
apInvLn.ATTRIBUTE1 = 'CLA'
apInvLn.ATTRIBUTE2 = invoiceLine.ohiLineId
apInvLn.ATTRIBUTE3 = ''
apInvLn.ATTRIBUTE4 = ''
apInvLn.ATTRIBUTE5 = ''
apInvLn.ATTRIBUTE6 = ''
apInvLn.ATTRIBUTE7 = ''
apInvLn.ATTRIBUTE8 = ''
apInvLn.ATTRIBUTE9 = ''
apInvLn.ATTRIBUTE10 = ''
apInvLn.ATTRIBUTE11 = ''
apInvLn.ATTRIBUTE12 = ''
apInvLn.ATTRIBUTE13 = ''
apInvLn.ATTRIBUTE14 = ''
apInvLn.ATTRIBUTE15 = ''
apInvLn.ATTRIBUTE_NUMBER1 = ''
apInvLn.ATTRIBUTE_NUMBER2 = ''
apInvLn.ATTRIBUTE_NUMBER3 = ''
apInvLn.ATTRIBUTE_NUMBER4 = ''
apInvLn.ATTRIBUTE_NUMBER5 = ''
apInvLn.ATTRIBUTE_DATE1 = ''
apInvLn.ATTRIBUTE_DATE2 = ''
apInvLn.ATTRIBUTE_DATE3 = ''
apInvLn.ATTRIBUTE_DATE4 = ''
apInvLn.ATTRIBUTE_DATE5 = ''
apInvLn.GLOBAL_ATTRIBUTECATEGORY = ''
apInvLn.GLOBAL_ATTRIBUTE1 = ''
apInvLn.GLOBAL_ATTRIBUTE2 = ''
apInvLn.GLOBAL_ATTRIBUTE3 = ''
apInvLn.GLOBAL_ATTRIBUTE4 = ''
apInvLn.GLOBAL_ATTRIBUTE5 = ''
apInvLn.GLOBAL_ATTRIBUTE6 = ''
apInvLn.GLOBAL_ATTRIBUTE7 = ''
apInvLn.GLOBAL_ATTRIBUTE8 = ''
apInvLn.GLOBAL_ATTRIBUTE9 = ''
apInvLn.GLOBAL_ATTRIBUTE10 = ''
apInvLn.GLOBAL_ATTRIBUTE11 = ''
apInvLn.GLOBAL_ATTRIBUTE12 = ''
apInvLn.GLOBAL_ATTRIBUTE13 = ''
apInvLn.GLOBAL_ATTRIBUTE14 = ''
apInvLn.GLOBAL_ATTRIBUTE15 = ''
apInvLn.GLOBAL_ATTRIBUTE16 = ''
apInvLn.GLOBAL_ATTRIBUTE17 = ''
apInvLn.GLOBAL_ATTRIBUTE18 = ''
apInvLn.GLOBAL_ATTRIBUTE19 = ''
apInvLn.GLOBAL_ATTRIBUTE20 = ''
apInvLn.GLOBAL_ATTRIBUTE_NUMBER1 = ''
apInvLn.GLOBAL_ATTRIBUTE_NUMBER2 = ''
apInvLn.GLOBAL_ATTRIBUTE_NUMBER3 = ''
apInvLn.GLOBAL_ATTRIBUTE_NUMBER4 = ''
apInvLn.GLOBAL_ATTRIBUTE_NUMBER5 = ''
apInvLn.GLOBAL_ATTRIBUTE_DATE1 = ''
apInvLn.GLOBAL_ATTRIBUTE_DATE2 = ''
apInvLn.GLOBAL_ATTRIBUTE_DATE3 = ''
apInvLn.GLOBAL_ATTRIBUTE_DATE4 = ''
apInvLn.GLOBAL_ATTRIBUTE_DATE5 = ''
apInvLn.PJC_PROJECT_ID = ''
apInvLn.PJC_TASK_ID = ''
apInvLn.PJC_EXPENDITURE_TYPE_ID = ''
apInvLn.PJC_EXPENDITURE_ITEM_DATE = ''
apInvLn.PJC_EXPENDITURE_ORGANIZATION_ID = ''
apInvLn.PJC_PROJECT_NUMBER = ''
apInvLn.PJC_TASK_NUMBER = ''
apInvLn.PJC_EXPENDITURE_TYPE = ''
apInvLn.PJC_EXPENDITURE_ORGANIZATION = ''
apInvLn.PJC_FUNDING_SOURCE_ID = ''
apInvLn.PJC_RESERVED_ATTRIBUTE2 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE3 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE4 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE5 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE6 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE7 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE8 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE9 = ''
apInvLn.PJC_RESERVED_ATTRIBUTE10 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE1 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE2 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE3 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE4 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE5 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE6 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE7 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE8 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE9 = ''
apInvLn.PJC_USER_DEFINED_ATTRIBUTE10 = ''

fileRows.add(new FileRow('AP_INVOICE_LINES_INTERFACE', apInvLn.values().join(',')))

Create Accounting Details

Financial transaction details are grouped into invoices lines within an Invoice in a Financial Message. Grouping of invoice lines is done on various attributes on Financial Transaction and Financial Transaction Detail (Process Data). Dynamic Logic of the signature Create Accounting Details holds the logic to create accounting details based on the accounting detail grouping criteria.

Create Accounting Detail XML

This dynamic function is executed once per accounting detail generated by the Generate Financial Message activity.

Parameters

Parameter Parameter Type Input / Output Description

financialTransactionDetail

Financial Transaction Detail

Input

The financial transaction detail from which the invoice line attributes are derived to contract the XML.

accountingDetail

Input / Output

XML <accountingDetail> element that will be included in the financial message.

The dynamic logic needs to transfer all desired values from the financial transaction detail and related objects to the accounting detail.

In addition, logic needed to set details that only exist in an accounting detail may be included (i.e. to set values that are derived as opposed to simply being transferred)

Create Accounting Detail Flat File

This function will be executed for each 'accounting detail grouping' of financial transaction details. This function will allow creation of zero, one, or more flat file rows each time it is executed.

Parameters

Parameter Name Parameter Type Input / Output Description

financialMessage

FinancialMessage

Input

Financial Message Context*

financialTransactionDetail

FinancialTransactionDetails

Input

Financial Transaction Detail

invoice

Invoice

Input

InvoiceContext

accountingDetail

AccountingDetail

Input

Accounting Detail Context*

fileRows

List<FileRow>

Input/Output

File row consists of the file identifier and row content

^*Contexts are described in the section Financial Message Structure - Flat File of the chapter Generate Financial Message ^

Example

Map glInt = [:]
glInt.STATUS          = 'NEW'
glInt.LEDGER_ID       = '300000004014096'
glInt.ACCOUNTING_DATE = accountingDetail.accountingDate
glInt.USER_JE_SOURCE_NAME = 'OHI'
glInt.USER_JE_CATEGORY_NAME = 'OHI'
glInt.CURRENCY_CODE =
glInt.DATE_CREATED =
glInt.ACTUAL_FLAG = 'A'
glInt.SEGMENT1 =
glInt.SEGMENT2 =
glInt.SEGMENT3 =
glInt.SEGMENT4 =
glInt.SEGMENT5 =
glInt.SEGMENT6 = ''
glInt.SEGMENT6 = ''
glInt.SEGMENT8 = ''
glInt.SEGMENT9 = ''
glInt.SEGMENT1O = ''
glInt.SEGMENT11 = ''
glInt.SEGMENT12 = ''
glInt.SEGMENT13 = ''
glInt.SEGMENT14 = ''
glInt.SEGMENT15 = ''
glInt.SEGMENT16 = ''
glInt.SEGMENT16 = ''
glInt.SEGMENT18 = ''
glInt.SEGMENT19 = ''
glInt.SEGMENT2O = ''
glInt.SEGMENT21 = ''
glInt.SEGMENT22 = ''
glInt.SEGMENT23 = ''
glInt.SEGMENT24 = ''
glInt.SEGMENT25 = ''
glInt.SEGMENT26 = ''
glInt.SEGMENT26 = ''
glInt.SEGMENT28 = ''
glInt.SEGMENT29 = ''
glInt.SEGMENT3O = ''
glInt.ENTERED_DR  = accountingDetail.amountDebit.toPlainString()
glInt.ENTERED_CR =  accountingDetail.amountCredit.toPlainString()
glInt.ACCOUNTED_DR  = ''
glInt.ACCOUNTED_CR = ''
glInt.REFERENCE1 = financialMessage.jobId
glInt.REFERENCE2 = ''
glInt.REFERENCE3 = ''
glInt.REFERENCE4 = ''
glInt.REFERENCE5 = ''
glInt.REFERENCE6 = ''
glInt.REFERENCE7 = ''
glInt.REFERENCE8 = ''
glInt.REFERENCE9 = ''
glInt.REFERENCE10 = ''
glInt.REFERENCE21 = ''
glInt.REFERENCE22 = ''
glInt.REFERENCE23 = ''
glInt.REFERENCE24 = ''
glInt.REFERENCE25 = ''
glInt.REFERENCE26 = ''
glInt.REFERENCE27 = ''
glInt.REFERENCE28 = ''
glInt.REFERENCE29 = ''
glInt.REFERENCE30 = ''
glInt.STAT_AMOUNT = ''
glInt.USER_CURRENCY_CONVERSION TYPE = ''
glInt.CURRENCY_CONVERSION DATE = ''
glInt.CURRENCY_CONVERSION RATE = ''
glInt.GROUP_ID = financialMessage.jobId
glInt.ATTRIBUTE_CATEGORY = 'OHI_DATA'
glInt.ATTRIBUTE1 = ''
glInt.ATTRIBUTE2 = ''
glInt.ATTRIBUTE3 = ''
glInt.ATTRIBUTE4 = ''
glInt.ATTRIBUTE5 = ''
glInt.ATTRIBUTE6 = ''
glInt.ATTRIBUTE7 = 'CLA'
glInt.ATTRIBUTE8 =  accountingDetail.ohiAccountingDetailId
glInt.ATTRIBUTE9 = ''
glInt.ATTRIBUTE10 = ''
glInt.ATTRIBUTE11 = ''
glInt.ATTRIBUTE12 = ''
glInt.ATTRIBUTE13 = ''
glInt.ATTRIBUTE14 = ''
glInt.ATTRIBUTE15 = ''
glInt.ATTRIBUTE16 = ''
glInt.ATTRIBUTE17 = ''
glInt.ATTRIBUTE18 = ''
glInt.ATTRIBUTE19 = ''
glInt.ATTRIBUTE20 = ''
glInt.ATTRIBUTE_CATEGORY_3 = ''
glInt.AVERAGE JOURNAL FLAG = ''
glInt.ORIGINATION_BAL_SEG_VALUE = ''
glInt.LEDGER NAME = ''
glInt.ENCUMBRANCE TYPE ID = ''
glInt.JGZZ_RECON_REF = ''

fileRows.add(new FileRow('GL_INTERFACE', glInt.values().join(',')))

Transfer Claim Transaction Header

Dynamic functions of this type create a claim transaction 'header' with claim-level details needed (in addition to the invoice, invoice lines, and accounting details of the financial message) for the financial application connector that is being used.

These dynamic functions are executed for each <ctrClaim> element (current and previous if applicable) of a financial message.

Parameters

Parameter Name Parameter Type Input / Output Description

ctrClaim

CTR Claim

Input

finClaim

CTR Claim

Input / Output

The dynamic logic needs to:

  • transfer all desired values from the ctr claim and its included objects (with the exception of claim lines) to the financial claim

Example:

---- finClaim.code = ctrClaim.code

finClaim.version = ctrClaim.version

finClaim.transactionDateTime = ctrClaim.transactionDateTime

finClaim.type = ctrClaim.type

finClaim.reversal = ctrClaim.reversal

finClaim.totalAllowedAmount = ctrClaim.totalAllowedAmount

finClaim.totalClaimedAmount = ctrClaim.totalClaimedAmount

finClaim.totalCoveredAmount = ctrClaim.totalCoveredAmount

finClaim.claimantRelName = ctrClaim.claimantRelName

finClaim.claimantRelCode = ctrClaim.claimantRelCode

finClaim.claimantProvCode = ctrClaim.claimantProvCode

finClaim.claimantProvCodeDef = ctrClaim.claimantProvCodeDef

finClaim.servicedEntityType = ctrClaim.servicedEntityType

finClaim.servicedEntityName = ctrClaim.servicedEntityName

finClaim.servicedEntityCode = ctrClaim.servicedEntityCode

finClaim.payBeneficiaryRelName = ctrClaim.payBeneficiaryRelName

finClaim.payBeneficiaryRelCode = ctrClaim.payBeneficiaryRelCode

finClaim.payBeneficiaryProvCode = ctrClaim.payBeneficiaryProvCode

finClaim.payBeneficiaryProvCodeDef = ctrClaim.payBeneficiaryProvCodeDef

finClaim.payReceiverRelName = ctrClaim.payReceiverRelName

finClaim.payReceiverRelCode = ctrClaim.payReceiverRelCode

finClaim.payReceiverProvCode = ctrClaim.payReceiverProvCode

finClaim.payReceiverProvCodeDef = ctrClaim.payReceiverProvCodeDef

finClaim.entryDate = ctrClaim.entryDate

finClaim.claimDate = ctrClaim.claimDate

finClaim.formCode = ctrClaim.formCode

finClaim.providerMemberReference = ctrClaim.providerEntityReference

for (ctrClaimDiagnosis in ctrClaim.ctrClaimDiagnosisList) { def finClaimDiagnosis = new CtrClaimDiagnosis()

finClaimDiagnosis.code = ctrClaimDiagnosis.code

finClaimDiagnosis.description = ctrClaimDiagnosis.description

finClaimDiagnosis.codeDef = ctrClaimDiagnosis.codeDef

finClaimDiagnosis.sequence = ctrClaimDiagnosis.sequence

finClaimDiagnosis.typeCode = ctrClaimDiagnosis.typeCode

finClaimDiagnosis.typeDescription = ctrClaimDiagnosis.typeDescription

finClaim.addCtrClaimDiagnosis(finClaimDiagnosis)

}

ctrClaim.admissionType.each { admissionType → finClaim.addDynamicRecord ('admissionType', [ code: admissionType?.code, description: admissionType?.description ]) }

ctrClaim.patientDischargeStatus.each { patientDischargeStatus → finClaim.addDynamicRecord ('patientDischargeStatus', [ code: patientDischargeStatus?.code, description: patientDischargeStatus?.description ]) }

ctrClaim.diagnosisRelatedGroup.each { diagnosisRelatedGroup → finClaim.addDynamicRecord ('diagnosisRelatedGroup', [ code: diagnosisRelatedGroup?.code, description: diagnosisRelatedGroup?.description ]) }

ctrClaim.principleProcedure.each { principleProcedure → finClaim.addDynamicRecord ('principleProcedure', [ code: principleProcedure?.code, description: principleProcedure?.description, procedureDate: principleProcedure?.procedureDate ]) }

ctrClaim.otherProcedures.each { otherProcedures → finClaim.addDynamicRecord ('otherProcedures', [ code: otherProcedures?.code, description: otherProcedures?.description, procedureDate: otherProcedures?.procedureDate ]) }

ctrClaim.attendingProvider.each { attendingProvider → finClaim.addDynamicRecord ('attendingProvider', [ code: attendingProvider?.code, description: attendingProvider?.description ]) }

finClaim.admissionHour = ctrClaim.admissionHour

finClaim.admissionDate = ctrClaim.admissionDate

finClaim.dischargeHour = ctrClaim.dischargeHour

finClaim.dischargeDate = ctrClaim.dischargeDate

return finClaim ----

.

Transfer Claim Transaction Bill

Dynamic functions of this type create a claim transaction bill with details needed (in addition to the invoice, invoice lines, and accounting details of the financial message) for the financial application connector that is being used..

These dynamic functions are executed once per <ctrBill> element (current and previous if applicable) of a financial message.

Parameters

Parameter Name Parameter Type Input / Output Description

ctrBill

CTR Bill

Input

finBill

CTR Bill

Input / Output

The dynamic logic needs to:

  • transfer all desired values from the ctr bill and its included objects (with the exception of claim lines) to the financial bill

Transfer Claim Transaction Claim Line

Dynamic functions of this type create a claim transaction claim line with details needed (in addition to the invoice, invoice lines, and accounting details of the financial message) for the financial application connector that is being used..

These dynamic functions are executed once per <ctrClaimLine> element (current and previous if applicable) of a financial message.

Parameters

Parameter Parameter Type Input / Output Description

ctrClaimLine

CTR ClaimLine

Input

finClaimLine

CTR ClaimLine

Input / Output

The dynamic logic needs to:

  • transfer all desired values from the ctr claim line and its included objects (with the exception of financial details and allocations) to the financial claim line

Example:

---- finClaimLine.code = ctrClaimLine.code

finClaimLine.sequence = ctrClaimLine.sequence

finClaimLine.coveredAmount = ctrClaimLine.coveredAmount

finClaimLine.allowedAmount = ctrClaimLine.allowedAmount

finClaimLine.claimedAmount = ctrClaimLine.claimedAmount

finClaimLine.claimedNumberOfUnits = ctrClaimLine.claimedNumberOfUnits

finClaimLine.startDate = ctrClaimLine.startDate

finClaimLine.endDate = ctrClaimLine.endDate

finClaimLine.servicedEntityType = ctrClaimLine.servicedEntityType

finClaimLine.servicedEntityName = ctrClaimLine.servicedEntityName

finClaimLine.servicedEntityCode = ctrClaimLine.servicedEntityCode

finClaimLine.procedureCode = ctrClaimLine.procedureCode

finClaimLine.procedureDescription = ctrClaimLine.procedureDescription

finClaimLine.procedureCodeDef = ctrClaimLine.procedureCodeDef

finClaimLine.procedureAccessCode = ctrClaimLine.procedureAccessCode

finClaimLine.serviceRelCode = ctrClaimLine.serviceRelCode

finClaimLine.serviceRelName = ctrClaimLine.serviceRelName

finClaimLine.serviceProvCode = ctrClaimLine.serviceProvCode

finClaimLine.serviceProvCodeDef = ctrClaimLine.serviceProvCodeDef

finClaimLine.payReceiverRelCode = ctrClaimLine.payReceiverRelCode

finClaimLine.payReceiverRelName = ctrClaimLine.payReceiverRelName

finClaimLine.payReceiverProvCode = ctrClaimLine.payReceiverProvCode

finClaimLine.payReceiverProvCodeDef = ctrClaimLine.payReceiverProvCodeDef

finClaimLine.coverageRegimeCode = ctrClaimLine.coverageRegimeCode

for (ctrClaimLineCoverage in ctrClaimLine.ctrClaimLineCoverageList) {

def finClaimLineCoverage = new CtrClaimLineCoverage()

finClaimLineCoverage.action = ctrClaimLineCoverage.action

finClaimLineCoverage.coverageLabelCode = ctrClaimLineCoverage.coverageLabelCode

finClaimLineCoverage.amount = ctrClaimLineCoverage.amount

finClaimLine.addCtrClaimLineCoverage(finClaimLineCoverage) }

for (ctrClaimLineDiagnosis in ctrClaimLine.ctrClaimLineDiagnosisList) {

def finClaimLineDiagnosis = new CtrClaimLineDiagnosis()

finClaimLineDiagnosis.code = ctrClaimLineDiagnosis.code

finClaimLineDiagnosis.description = ctrClaimLineDiagnosis.description

finClaimLineDiagnosis.codeDef = ctrClaimLineDiagnosis.codeDef

finClaimLineDiagnosis.sequence = ctrClaimLineDiagnosis.sequence

finClaimLineDiagnosis.typeCode = ctrClaimLineDiagnosis.typeCode

finClaimLineDiagnosis.typeDescription = ctrClaimLineDiagnosis.typeDescription

finClaimLine.addCtrClaimLineDiagnosis(finClaimLineDiagnosis) }

for (ctrClaimLineMessage in ctrClaimLine.ctrClaimLineMessageList) {

finClaimLineMessage = new CtrClaimLineMessage()

finClaimLineMessage.code = ctrClaimLineMessage.code

finClaimLine.addCtrClaimLineMessage(finClaimLineMessage)

}

for (ctrClaimLineModifier in ctrClaimLine.ctrClaimLineModifierList) {

finClaimLineModifier = new CtrClaimLineModifier()

finClaimLineModifier.code = ctrClaimLineModifier.code

finClaimLine.addCtrClaimLineModifier(finClaimLineModifier) }

finClaimLine.anesthesiaMinutes = ctrClaimLine.anesthesiaMinutes

return finClaimLine ----