softcare.jpg (3621 bytes)
Home | News | Products | ActiveX for Healthcare | NPI | DownLoads | Contact Softcare | | About Softcare
> Home
> Recent News
> Press Releases
> National Provider Identifier
> Duramax
> Hospice Agency Software
> Mail-Order Pharmacy
> HoverFrame
> ANSIX Activex for Electronic Claims
> National Provider Identifier
> ANSIX Activex for Electronic Claims
> NSF Activex for Electronic Claims
> National Provider Identifier
> ANSIX Order Details
> National Provider Identifier
> Product Downloads
> Contact Us
> Company History
> Sales
> Support
> Company Telephones
> Available Positions

NSFx ActiveX Control for Development (Updated Jan. 21, 2001)

Order online or call 1-800-STEP911. Order online.

Contact Softcare for questions about NSFx

Installing NSFx for Development

Insert the distribution media into the drive and from the start button on Window95/98/NT/2000 select Start->Settings->Control Panel->Add New Programs. Follow the instructions to install from the appropriate media. Once installed you can proceed to the next section, Adding the control to a VB5/6 application.

Adding NSFx Control to a VB5/6 application.

Start VB5/6, select a new or existing application then from the Project Menu select Components. The Component dialog will appear. Scroll down till you see the NSFx 3.01. Select NSFx 3.01 by checking the check box. Then click apply. That’s it. You should see the ‘EMC’ button appear in the tool bar.

Visual Basic Add Components Dialog

nsfx_addcompo.gif (35862 bytes)

MS Access Insert ActiveX Control Dialog

nsfx_accesscomp.gif (17457 bytes)

Please note!  NSFx is report to work in the full Microsoft Visual Studio Development environment, including VJ++, VC++, Visual Basic Standard, Pro Enterprise, MS Access, FoxPro, Borland Delphi, Lotus Notes.

Description and Properties

Writing electronic claims software has never been easier. NSFx adds the national standard format version 3.01 to any Visual Basic 5.0 application. NSFx works with any application that supports ActiveX technology. Simply paste an NSFx control from the VB5/6 tool box and you add the full NSF structure to your application. Many of the repeating fields in the NSF are provided as visible properties, visible in the VB5/6 properties window. These properties are data aware and can be bound to a data controller or set manually with code. Properties are bound using the databinding collection.

The NSF is made up of a series of record types and corresponding fields. Each record is formatted a particular way described in the NSF 3.01 manual obtained from your insurance carrier or from the Government Printing Office. Each of these records exists as a property array the property array is actually a class object that is made available to you as soon as you paste the NSFx control on to a form.

Each array property begins with the record type, for example the header record is type AA0, the batch header is BA0 and the claim header is CA0, insurance information is DA0 and EA0, and the line items begins with FA0. A claim is summed up in the XA0 claim trailer record, a batch is summed up in the YA0 batch trailer record. The whole file is summed up in the ZA0 file trailer record. By "summed up" we mean that certain totals are confirmed in those records for records preceding the trailer.

NSFx fills in all the totals in the summation (trailer) records for you. This single task makes using NSFx worth it, but there is a lot more.

Lets look at the mechanics of doing all this the hard way and then we will do it the NSFx way. Without NSFx you have to open a file, define and set the values of all the different records and fields. Write them to the file, maintain all counters, and totals. Not to mention that every single field has to be formatted a certain way. Some numeric fields have implied decimal points. For example the simple value 36.09 might need to be formatted padded with spaces in front, right justified or padded with spaces behind, left justified or, padded with zero’s in front, zero padded, left justified. If you get one single counter field out of whack the receiver might reject your whole batch.

The steps you use with NSFx makes it a lot easier. You start by pasting the control on a form. The NSFx control is invisible at run-time so you can put it anywhere you want. If you are familiar with the common dialog control used for printers, fonts, and files, NSFx works somewhat the same way. You set it up and then you set the Action property to a integer value 1 to 28 to perform a write procedure. See the nsfx.bas for constants. Add nsfx.bas as a module to your application.

Before calling the action property, you should setup the nsf-properties that are on the properties window, and also setup the properties of the property array.

With NSFx you don’t worry about formatting anything. Just set the text property of the property array and the formatting is done for you. Once the array is set, then set the action property of the corresponding write for the array you just set. Then go on to the next record. When your done the your file is done. Counters set, formatting done even CR and Line feeds are inserted for you.

Code Example:

Private Const SAVE_AA0 = 1
Private Const SAVE_BA0 = 2
Private Const SAVE_BA1 = 31
Private Const SAVE_CA0 = 3
Private Const SAVE_CA1 = 4
Private Const SAVE_CB0 = 5
Private Const SAVE_DA0 = 6
Private Const SAVE_DA1 = 7
Private Const SAVE_DA2 = 8
Private Const SAVE_DA3 = 9
Private Const SAVE_EA0 = 10
Private Const SAVE_EA1 = 32
Private Const SAVE_FA0 = 11
Private Const SAVE_FB0 = 12
Private Const SAVE_FB1 = 13
Private Const SAVE_FB2 = 14
Private Const SAVE_FB3 = 15
Private Const SAVE_FD0 = 16
Private Const SAVE_FE0 = 17
Private Const SAVE_GE0 = 18
Private Const SAVE_GD0 = 19
Private Const SAVE_GC0 = 20
Private Const SAVE_GA0 = 21
Private Const SAVE_GP0 = 22
Private Const SAVE_GU0 = 23
Private Const SAVE_GX0 = 24
Private Const SAVE_GX1 = 25
Private Const SAVE_GX2 = 26
Private Const SAVE_HA0 = 27
Private Const SAVE_XA0 = 28
Private Const SAVE_YA0 = 29
Private Const SAVE_ZA0 = 30
Private Sub Form_Load()

Set nsfx1 = NSFx

nsfx1.ErrorTrap = False
nsfx1.nsfFilename = "c:\nsf_file"

With nsfx1

'-- file header --
.AA0(19) = "00301"
.AA0(20) = "00301"

.Action = SAVE_AA0
'-- batch header --
For z = 1 To 5
.Action = SAVE_BA0

For i% = 6 To 19
.BA1(i%) = Mid$(Str$(i%), 2)
Next i%

.Action = SAVE_BA1

'-- claims header patient ino--
For y = 1 To 5
.Action = SAVE_CA0
'-- insurance info record --
.Action = SAVE_DA0
'-- Claims Detail --
.Action = SAVE_EA0

For i% = 4 To 30
.EA1(i%) = Mid$(Str$(i%), 2)
Next i%

.Action = SAVE_EA1


'-- line detail --
For x = 1 To 12
.FA0(13) = "5.01"
.Action = SAVE_FA0
.Action = SAVE_FB0
.Action = SAVE_FB1
Next x
'-- claim trailer & totals --
.Action = SAVE_XA0
Next y
'-- batch trailer --
.Action = SAVE_YA0
Next z
'-- file trailer ---
.Action = SAVE_ZA0
Debug.Print .FA0(13)
End With


On Error GoTo 0

Set nsfx1 = Nothing


End Sub
<

Properties

AA0(n) thru ZA0(1-n).FieldLen Property

.FieldName

.FieldType

Description:

Returns the [field length] of the specified array element n.
[field name ]
[field type ]
These values are read only at run time and design time.
Syntax:
a% = object .AAO(n-...).FieldLen
.Fieldname
.FieldType

Remarks:

These values are embedded in the NSFx Control and cannot be changed.

AA0(n) thru ZA0(1-n).Text Property

Description:

Sets or returns the [text] value of the specified array element n.

Available at runtime only.

Syntax:

object.CA0(1-n).Text = YOUR PATIENT NAME

Remarks:

Some of these values are automatically assigned such as the first field in each record type and all counter values.

Attempts to assign these predefined or on the fly assigned fields will have no result.

Counter fields in the XA0, YA0 and XA0 records are set automatically, as well as claim and line counters, in all record types.

You can assume that if it is a numeric field and the purpose of the field is to accumulate totals from other fields that the field is handled internally.

Action Property [see also Write Methods]

Description

This property is presented here for compatibility, for new developers use the Write Methods instead.

Setting the action property to values, 1 to 28 instructs the control to perform a task. For example NSFx1.Action = 1 (SAVE_AA0) starts an emc file. The AA0 record is saved so the NSFx1.AA0(1..n).Text properties should be set prior to performing a SAVE_??? action, as with any other SAVE_??? action.

Once the AA0 record is saved the file is open and available for subsequent SAVE_??? actions. The SAVE_AA0 action must be performed prior to any other action. The SAVE_ZA0 action automatically closes the file, and no further SAVE_??? actions may be performed until another SAVE_AA0 action is called.

Syntax:

Object.action = [INTEGER value 1 - 28]

Remarks:

A through understand of the proper order to call a SAVE_??? action is required. See the example.

Constants:

The following constant values are contained in the NSFX.BAS file in the /nsf folder.

SAVE_AA0 = 1

SAVE_BA0 = 2

SAVE_CA0 = 3

SAVE_CA1 = 4

SAVE_CB0 = 5

SAVE_DA0 = 6

SAVE_DA1 = 7

SAVE_DA2 = 8

SAVE_DA3 = 9

SAVE_EA0 = 10

SAVE_FA0 = 11

SAVE_FB0 = 12

SAVE_FB1 = 13

SAVE_FB2 = 14

SAVE_FB3 = 15

SAVE_FD0 = 16

SAVE_FE0 = 17

SAVE_GE0 = 18

SAVE_GD0 = 19

SAVE_GC0 = 20

SAVE_GA0 = 21

SAVE_GP0 = 22

SAVE_GU0 = 23

SAVE_GX0 = 24

SAVE_GX1 = 25

SAVE_GX2 = 26

SAVE_HA0 = 27

SAVE_XA0 = 28

DataBinding Property

Description:

Returns the DataBindings collection object containing the bindable properties available to the developer.

Syntax:

object.DataBindings

The object placeholder represents an object expression that evaluates to an object in the Applies To list.

ErrorTrap Property

True, Or False

Syntax:

Object.ErrorTrap = [True, False]

Part Description

True Disables all 'on error resume in the control'

False Enables 'on error resume in the control'

Remarks:

This is a debug feature used by Softcare.

NsfBatchID Property

Syntax:

object.nsfBatchID = string

Batch Identification (BATCH ID). The identifier assigned by the submitter/provider to identify a batch within his own system. Optional at the submitter/provider discretion.

This property can be bound to a data control or recordset using the databindings property.

NsfBatchType Property

Syntax:

Object.ErrorTrap = string

Description:

This field indicates the type of claims that are included within this batch.100 - All Others 200 – Dental Must be entered. Must be a valid code from the above list. Must be identical to the BATCH TYPE entered in the corresponding.

This property can be bound to a data control or recordset using the databindings property.

NsfFilename Property

Syntax:

Object.nsfFilename = [filename]

Description:

Name of file to write claims to. Must conform to the file system file specifications naming conventions.

This property can be bound to a data control or recordset using the databindings property.

NsfLineitemControlNo Property

Syntax:

Object.nsfLineitemControlNo = string

Description:

Line Item Control Number (LINE ITEM CONTROL NO). An identifier assigned by the submitter/provider to this line item. May be entered if payor allowed. See GENERAL INSTRUCTIONS for 'Patient ControlNumber' entry.

This property can be bound to a data control or recordset using the databindings property.

NsfPatControlNo Property

Syntax:

Object.PatientControlNo = string

Description:

Patient Control Number (PAT CONTROL NO). A unique number assigned by the provider to identify the patient. Must be entered. See GENERAL INSTRUCTIONS for 'Patient ControlNumber' entry. HCFA-1500 Block 26

This property can be bound to a data control or recordset using the databindings property.

NsfProviderID Property

Syntax:

Object.ProviderID = String

Description:

Rendering Provider National Provider Identifier. The National Provider Identifier assigned to the rendering provider. Must be entered if required by Payor. This field must contain the National Provider Identifier (NPI) once the NPI is implemented.

This property can be bound to a data control or recordset using the databindings property.

NsfReceiverID Property

Syntax:

Object.nsfReceiverID = string

Description:

Receiver Identification (RECEIVER ID). A value assigned by the receiver/payor to identify the organization designated to ultimately receive this file to prevent misrouting of claim data. Must be entered if required by payor / receiver.

This property can be bound to a data control or recordset using the databindings property.

NsfSubmissionNo Property

Syntax:

OBJECT.nsfSubmissionNo = String

Description:

Submission Number (SUBMISSION NO). The inventory file number of the tape reel or transmission assigned by the submitter's system. Must be entered. The Submission Number must be unique for every new file submitted.

This property can be bound to a data control or recordset using the databindings property.

NsfSubmitterID.Property

Syntax:

Object.nsfSubmitterID = string

Description:

Submitter Identifier (SUB ID). Identifies the submitter as defined by the receiver. Must be entered. Must be identical to the SUBMITTER ID entered in the File Trailer Record (ZA0-02.0). See GENERAL INSTRUCTIONS for 'IdentificationNumber'

This property can be bound to a data control or recordset using the databindings property.

WriteAAO thru WriteZA0 Methods (Write Methods)

Syntax:

Object.Write[AA0,BA0 CA0... thru ZA0)

Description:

Instead of using the earlier Action Property with corresponding action constants, using the Write Methods allow a more robust way of writing the desired record to the file specified in the nsfFilename name property. ( The Write Methods are not available in earlier versions of NSFx ).

 

Back to top