Used in the accounting section in chart of accounts. Not related to patient accounts in any way.
Primary key..
.
Enum:AccountType Asset, Liability, Equity,Revenue, Expense
Used in accounting for chart of accounts.
0
1
2
3
4
For asset accounts, this would be the bank account number for deposit slips.
Set to true to not normally view this account in the list.
.
In the accounting section, this automates entries into the database when user enters a payment into a patient account. This table presents the user with a picklist specific to that payment type. For example, a cash payment would create a picklist of cashboxes for user to put the cash into.
Primary key.
FK to definition.DefNum.
FK to account.AccountNum. AccountNums separated by commas. No spaces.
An adjustment in the patient account. Usually, adjustments are very simple, just being assigned to one patient and provider. But they can also be attached to a procedure to represent a discount on that procedure. Attaching adjustments to procedures is not automated, so it is not very common.
Primary key.
The date that the adjustment shows in the patient account.
Amount of adjustment. Can be pos or neg.
FK to patient.PatNum.
FK to definition.DefNum.
FK to provider.ProvNum.
Note for this adjustment.
Procedure date. Not when the adjustment was entered.
FK to procedurelog.ProcNum. Only used if attached to a procedure. Otherwise, 0.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
FK to clinic.ClinicNum.
FK to statement.StatementNum. Only used when the statement in an invoice.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
An allergy attached to a patient and linked to an AllergyDef.
Primary key.
FK to allergydef.AllergyDefNum
FK to patient.PatNum
Adverse reaction description.
True if still an active allergy. False helps hide it from the list of active allergies.
To be used for synch with web server for CertTimelyAccess.
The historical date that the patient had the adverse reaction to this agent.
Snomed code for reaction. Optional and independent of the Reaction text field. Not needed for reporting. Only used for CCD export/import.
An allergy definition. Gets linked to an allergy and patient. Allergies will not show in CCD messages unless they have a valid Medication (that has an RxNorm) or UniiCode.
Primary key.
Name of the drug. User can change this. If an RxCui is present, the RxNorm string can be pulled from the in-memory table for UI display in addition to the Description.
Because user can't delete.
The last date and time this row was altered. Not user editable.
Enum:SnomedAllergy SNOMED Allergy Type Code. Only used to create CCD in FormSummaryOfCare.
0-No SNOMED allergy type code has been assigned.
1-Allergy to substance (disorder), code number 418038007.
2-Drug allergy (disorder), code number 416098002.
3-Drug intolerance (disorder), code number 59037007.
4-Food allergy (disorder), code number 414285001.
5-Food intolerance (disorder), code number 235719002.
6-Propensity to adverse reactions (disorder), code number 420134006.
7-Propensity to adverse reactions to drug (disorder), code number 419511003
8-Propensity to adverse reactions to food (disorder), code number 418471000.
9-Propensity to adverse reactions to substance (disorder), code number 419199007.
FK to Medication.MedicationNum. Optional, only used with CCD messages.
The Unii code for the Allergen. Optional, but there must be either a MedicationNum or a UniiCode. Used to create CCD in FormSummaryOfCare, or set during CCD allergy reconcile.
Appointments can show in the Appointments module, or they can be on the unscheduled list. An appointment object is also used to store the Planned appointment. The planned appointment never gets scheduled, but instead gets copied.
Primary key.
FK to patient.PatNum. The patient that the appointment is for.
Enum:ApptStatus .
Appointment status.
0- No appointment should ever have this status.
1- Shows as a regularly scheduled appointment.
2- Shows greyed out.
3- Only shows on unscheduled list.
4- Functions almost the same as Scheduled, but also causes the appointment to show on the ASAP list.
5- Shows with a big X on it.
6- Planned appointment. Only shows in Chart module. User not allowed to change this status, and it does not display as one of the options.
7- Patient "post-it" note on the schedule. Shows light yellow. Shows on day scheduled just like appt, as well as in prog notes, etc.
8- Patient "post-it" note completed
Time pattern, X for Dr time, / for assist time. Stored in 5 minute increments. Converted as needed to 10 or 15 minute representations for display.
FK to definition.DefNum. This field can also be used to show patient arrived, in chair, etc. The Category column in the definition table is DefCat.ApptConfirmed.
If true, then the program will not attempt to reset the user's time pattern and length when adding or removing procedures.
FK to operatory.OperatoryNum.
Note.
FK to provider.ProvNum.
FK to provider.ProvNum. Optional. Only used if a hygienist is assigned to this appt.
Appointment Date and time. If you need just the date or time for an SQL query, you can use DATE(AptDateTime) and TIME(AptDateTime) in your query.
FK to appointment.AptNum. A better description of this field would be PlannedAptNum. Only used to show that this apt is derived from specified planned apt. Otherwise, 0.
FK to definition.DefNum. The definition.Category in the definition table is DefCat.RecallUnschedStatus. Only used if this is an Unsched or Planned appt.
This is the first appoinment this patient has had at this office. Somewhat automated.
A one line summary of all procedures. Can be used in various reports, Unscheduled list, and Planned appointment tracker. Not user editable right now, so it doesn't show on the screen.
FK to employee.EmployeeNum. You can assign an assistant to the appointment.
FK to clinic.ClinicNum. 0 if no clinic.
Set true if this is a hygiene appt. The only purpose of this flag is to cause the hygiene provider's color to show. This flag is frequently not set even when it is a hygiene appointment because some offices want the dentist color on the appointments.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program updates. Not user editable.
The date and time that the patient checked in. Date is largely ignored since it should be the same as the appt.
The date and time that the patient was seated in the chair in the operatory.
The date and time that the patient got up out of the chair. Date is largely ignored since it should be the same as the appt.
FK to insplan.PlanNum for the primary insurance plan at the time the appointment is set complete. May be 0. We can't tell later which subscriber is involved; only the plan.
FK to insplan.PlanNum for the secoondary insurance plan at the time the appointment is set complete. May be 0. We can't tell later which subscriber is involved; only the plan.
Date and time patient asked to arrive, or minval if patient not asked to arrive at a different time than appt.
Stores XML for the procs colors
If set to anything but 0, then this will override the graphic color for the appointment.
FK to appointmenttype.AppointmentTypeNum.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
For now, the rule is simple. It simply blocks all double booking of the specified code range. The double booking would have to be for the same provider. This can later be extended to provide more complex rules, such as partial double booking, time limitations, etc.
Primary key.
The description of the rule which will be displayed to the user.
The procedure code of the start of the range.
The procedure code of the end of the range.
Usually true. But this does allow you to turn off a rule temporarily without losing the settings.
Appointment type is used to override appointment color. Might control other properties on appointments in the future.
Primary key.
0 based
Primary key.
FK to appointment.AptNum.
Enum: IntervalType.
AptComm should not be sent until after this datetime. EConnector tick interval causes this to be sent between 0 and 30 minutes after.
These are custom fields added to appointments and managed by the user.
Primary key.
FK to appointment.AptNum
FK to apptfielddef.FieldName. The full name is shown here for ease of use when running queries. But the user is only allowed to change fieldNames in the patFieldDef setup window.
Any text that the user types in. Will later allow some automation.
These are the definitions for the custom patient fields added and managed by the user.
Primary key.
The name of the field that the user will be allowed to fill in the appt edit window. Duplicates are prevented.
Enum:ApptFieldType Text=0,PickList=1
0
1
The text that contains pick list values. Length 4000.
Enables viewing a variety of operatories or providers. This table holds the views that the user picks between. The apptviewitem table holds the items attached to each view.
Primary key.
Description of this view. Gets displayed in Appt module.
0-based order to display in lists. Every view must have a unique itemorder, but it is acceptable to have some missing itemorders in the sequence.
Number of rows per time increment. Usually 1 or 2. Programming note: Value updated to ApptDrawing.RowsPerIncr to track current state.
If set to true, then the only operatories that will show will be for providers that have schedules for the day, ops with no provs assigned.
If OnlyScheduledProvs is set to true, and this time is not 0:00, then only provider schedules with start or stop time before this time will be included.
If OnlyScheduledProvs is set to true, and this time is not 0:00, then only provider schedules with start or stop time after this time will be included.
Enum:ApptViewStackBehavior
Enum:ApptViewStackBehavior
FK to clinic.ClinicNum. 0=All clinics. This appointment view will only be visible when the current clinic showing is set to this clinic. Within the appointment edit window, this setting is used to filter the list of available operatories. Also used in conjunction with 'OnlyScheduledProvs' (when enabled) in order to filter the visible operatories within the Appt module.
Time the appointment module's view will scroll to on load.
If set to true, the appointment view scrolls to the first scheduled operatory start time or the first scheduled appointment.
If set to true, the appointment view will not show appointment bubbles.
Each item is attached to a row in the apptview table. Each item specifies ONE of: OpNum, ProvNum, ElementDesc, or ApptFieldDefNum. The other three will be 0 or "".
Primary key.
FK to apptview.
FK to operatory.OperatoryNum.
FK to provider.ProvNum.
Must be one of the hard coded strings picked from the available list.
If this is a row Element, then this is the 0-based order within its area. For example, UR starts over with 0 ordering.
If this is an element, then this is the color.
Enum:ApptViewAlignment If this is an element, then this is the alignment of the element within the appointment.
0
1
2
FK to apptfielddef.ApptFieldDefNum. If this is an element, and the element is an appt field, then this tells us which one.
FK to patfielddef.PatFieldDefNum. If this is an element, and the element is an appt field, then this tells us which one. Not implemented yet.
An autocode automates entering procedures. The user only has to pick composite, for instance, and the autocode figures out the code based on the number of surfaces, and posterior vs. anterior. Autocodes also enforce and suggest changes to a procedure code if the number of surfaces or other properties change.
Primary key.
Displays meaningful decription, like "Amalgam".
User can hide autocodes
This will be true if user no longer wants to see this autocode message when closing a procedure. This makes it less intrusive, but it can still be used in procedure buttons.
AutoCode condition. Always attached to an AutoCodeItem, which is then, in turn, attached to an autocode. There is usually only one or two conditions for a given AutoCodeItem.
Primary key.
FK to autocodeitem.AutoCodeItemNum.
Enum:AutoCondition
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Corresponds to the autocodeitem table in the database. There are multiple AutoCodeItems for a given AutoCode. Each Item has one ADA code.
Primary key.
FK to autocode.AutoCodeNum
Do not use
FK to procedurecode.CodeNum
A trigger event causes one or more actions.
Primary key.
.
Enum:AutomationTrigger What triggers this automation
Regardless of module. Usually only used with conditions.
Attaching a procedure to a scheduled appointment.
If this has a CompleteProcedure trigger, this is a comma-delimited list of codes that will trigger the action.
Enum:AutomationAction The action taken as a result of the trigger. To get more than one action, create multiple automation entries.
If a referral does not exist for this patient, then notify user instead.
FK to sheetdef.SheetDefNum. If the action is to print a sheet, then this tells which sheet to print. So it must be a custom sheet. Also, not that this organization does not allow passing parameters to the sheet such as which procedures were completed, or which appt was broken.
FK to definition.DefNum. Only used if action is CreateCommlog.
If a commlog action, then this is the text that goes in the commlog. If this is a ShowStatementNoteBold action, then this is the NoteBold. Might later be expanded to work with email or to use variables.
Enum:ApptStatus .
Appointment status.
0- No appointment should ever have this status.
1- Shows as a regularly scheduled appointment.
2- Shows greyed out.
3- Only shows on unscheduled list.
4- Functions almost the same as Scheduled, but also causes the appointment to show on the ASAP list.
5- Shows with a big X on it.
6- Planned appointment. Only shows in Chart module. User not allowed to change this status, and it does not display as one of the options.
7- Patient "post-it" note on the schedule. Shows light yellow. Shows on day scheduled just like appt, as well as in prog notes, etc.
8- Patient "post-it" note completed
Each condition evaluates to true or false. A series of conditions for a single automation is ANDed together.
Primary key.
FK to automation.AutomationNum.
Enum:AutoCondField
Typically specify Equals the exact name/description of the sheet.
disease
Example, 23
Allowed values are M or F, not case sensitive. Enforce at entry time.
Enum:AutoCondComparison Not all comparisons are allowed with all data types.
Not sensitive to capitalization.
aka Like
Should not be displayed to users to choose from. Used when the condition has one and only one 'comparison' to trigger it. E.g. ins not effective.
.
A single autonote template.
Primary key
Name of AutoNote
Was 'ControlsToInc' in previous versions.
In the program, this is now called an autonote prompt.
Primary key
The description of the prompt as it will be referred to from other windows.
'Text', 'OneResponse', or 'MultiResponse'. More types to be added later.
The prompt text.
For TextBox, this is the default text. For a ComboBox, this is the list of possible responses, one per line.
Corresponds to the benefit table in the database which replaces the old covpat table. A benefit is usually a percentage, deductible,
limitation, max, or similar. Each row represents a single benefit. A benefit can have a value in EITHER PlanNum OR PatPlanNum. If it is for a
PlanNum, the most common, then the benefit is attached to an insurance plan. If it is for a PatPlanNum, then it overrides the plan benefit,
usually a percentage, for a single patient. Benefits we can't handle yet include posterior composites, COB duplication, amounts used, in/out
of plan network, authorization required, missing tooth exclusion, and any date related limitations like waiting periods.Here are examples of typical usage which parallel X12 usage.Example fields shown in this order:CovCat, ProcCode(- indicates blank), BenefitType, Percent, MonetaryAmt, TimePeriod, QuantityQualifier, Quantity, CoverageLevelAnnual Max Indiv $1000: None/General,-,Limitations,-1,1000,CalendarYear,None,0,IndividualRestorative 80%: Restorative,-,CoInsurance,80,-1,CalendarYear,None,0,None$50 deductible: None/General,-,Deductible,-1,50,CalendarYear,None,0,IndividualDeductible waived on preventive: Preventive,-,Deductible,-1,0,CalendarYear,None,0,Individual1 pano every 5 years: None,D0330,Limitations,-1,-1,Years?,Years,5,None2 exams per year: Preventive(or Diagnostic),-,Limitations,-1,-1,BenefitYear,NumberOfServices,2,NoneFluoride limit 18yo: None, D1204, Limitations, -1, -1, CalendarYear/None, AgeLimit, 18,None (might require a second identical entry for D1205)4BW every 6 months: None, D0274, Limitations, -1, -1, None, Months, 6,None.The text above might be difficult to read. We are trying to improve the white spacing.
Primary key.
FK to insplan.PlanNum. Most benefits should be attached using PlanNum. The exception would be if each patient has a different percentage. If PlanNum is used, then PatPlanNum should be 0.
FK to patplan.PatPlanNum. It is rare to attach benefits this way. Usually only used to override percentages for patients. In this case, PlanNum should be 0.
FK to covcat.CovCatNum. Corresponds to X12 EB03- Service Type code. Situational, so it can be 0. Will probably be 0 for general deductible and annual max. There are very specific categories covered by X12. Users should set their InsCovCats to the defaults we provide.
Enum:InsBenefitType Corresponds to X12 EB01. Examples: 0=ActiveCoverage, 1=CoInsurance, 2=Deductible, 3=CoPayment, 4=Exclusions, 5=Limitations. ActiveCoverage doesn't really provide meaningful information.
Used in the benefit table. Corresponds to X12 EB01.
0- Not usually used. Would only be used if you are just indicating that the patient is covered, but without any specifics.
1- Used for percentages to indicate portion that insurance will cover. When interpreting electronic benefit information, this is the opposite percentage, the percentage that the patient will pay after deductible.
2- The deductible amount. Might be two entries if, for instance, deductible is waived on preventive.
3- A dollar amount.
4- Services that are simply not covered at all.
5- Covers a variety of limitations, including Max, frequency, fee reductions, etc.
Only used if BenefitType=CoInsurance. Valid values are 0 to 100. -1 indicates empty, which is almost always true if not CoInsurance. The percentage that insurance will pay on the procedure. Note that benefits coming from carriers are usually backwards, indicating the percetage that the patient is responsible for.
Used for CoPayment, Limitations, and Deductible. -1 indicates empty
Enum:BenefitTimePeriod Corresponds to X12 EB06, Time Period Qualifier. Examples: 0=None,1=ServiceYear,2=CalendarYear,3=Lifetime,4=Years. Might add Visit and Remaining.
Used in the benefit table. Corresponds to X12 EB06.
0- A timeperiod is frequenly not needed. For example, percentages.
1- The renewal month is not Jan. In this case, we need to know the effective date so that we know which month the benefits start over in.
2- Renewal month is Jan.
3- Usually used for ortho max.
4- Wouldn't be used alone. Years would again be specified in the quantity field along with a number.
Enum:BenefitQuantity Corresponds to X12 EB09. Not used very much. Examples: 0=None,1=NumberOfServices,2=AgeLimit,3=Visits,4=Years,5=Months
Used in the benefit table in conjunction with an integer quantity.
0- This is used a lot. Most benefits do not need any sort of quantity.
1- For example, two exams per year
2- For example, 18 when flouride only covered to 18 y.o.
3- For example, copay per 1 visit.
4- For example, pano every 5 years.
5- For example, BWs every 6 months.
Corresponds to X12 EB10. Qualify the quantity using QuantityQualifier.
FK to procedurecode.CodeNum. Typical uses include fluoride, sealants, etc. If a specific code is used here, then the CovCat should be None.
Enum:BenefitCoverageLevel Corresponds to X12 EB02. None, Individual, or Family. Individual and Family are commonly used for deductibles and maximums. None is commonly used for percentages and copays.
Used in the benefit table.
0- Since this is a situational X12 field, we can also have none. Typical for percentages and copayments.
1- The default for deductibles and maximums.
2- For example, family deductible or family maximum.
Not user-editable.
Primary key.
This will also be the folder name
.
A01. Up to 12 char.
Set to true if this network is in charge of handling all Request for Payment Reconciliation (RPR) transactions for all carriers within this network, as opposed to the individual carriers wihtin the network processing the RPR transactions themselves.
Every InsPlan has a Carrier. The carrier stores the name and address.
Primary key.
Name of the carrier.
.
Second line of address.
.
2 char in the US.
Postal code.
Includes any punctuation.
E-claims electronic payer id. 5 char in USA. 6 digits in Canada. I've seen an ID this long before: "LA-DHH-MEDICAID". The user interface currently limits length to 20, although db limits length to 255. X12 requires length between 2 and 80.
Do not send electronically. It's just a default; you can still send electronically.
Canada: True if a CDAnet carrier. This has significant implications: 1. It can be filtered for in the list of carriers. 2. An ElectID is required. 3. The ElectID can never be used by another carrier. 4. If the carrier is attached to any etrans, then the ElectID cannot be changed (and, of course, the carrier cannot be deleted or combined).
The version of CDAnet supported. Either 02 or 04.
FK to canadiannetwork.CanadianNetworkNum. Only used in Canada. Right now, there is no UI to the canadiannetwork table in our db.
.
1=No Encryption, 2=CDAnet standard #1, 3=CDAnet standard #2. Field A10.
Bit flags.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Tax ID Number. Not user editable. No UI for this field.
Used in when importing insurance plans from 834s to uniquely identify carriers.
CDC Race and Ethnicity. About 200 rows. This table is not used anywhere right now.
Primary key.
CDCREC Code. Example: 1002-5. Not allowed to edit this column once saved in the database.
Heirarchical Code. Example:
R1 =="American Indian or alaska Native"R1.01 =="American Indian"R1.01.001=="Abenaki"Not allowed to edit this column once saved in the database.
Description.
User to specify user level permissions used for CDS interventions. Unlike normal permissions and security, each permission has its own column and each employee has their own row.
Primary key.
FK to userod.UserNum.
True if allowed to edit EHR Triggers.
True if user should see EHR triggers that are enabled. If false, no CDS interventions will show.
True if user can see Infobutton.
True if user can edit to bibliographic information.
True to enable Problem based CDS interventions for this user.
True to enable Medication based CDS interventions for this user.
True to enable Allergy based CDS interventions for this user.
True to enable Demographic based CDS interventions for this user.
True to enable Lab Test based CDS interventions for this user.
True to enable Vital Sign based CDS interventions for this user.
Used by the Central Manager. Stores the information needed to establish a connection to a remote database.
Primary key.
If direct db connection. Can be ip address.
If direct db connection.
If direct db connection.
If direct db connection. Symmetrically encrypted.
If connecting to the web service. Can be on VPN, or can be over https.
Deprecated. If connecting to the web service.
Deprecated. If connecting to the web service. Symmetrically encrypted.
.
0-based.
If set to true, the password hash is calculated differently.
Contains the most recent information about this connection. OK if no problems, version information if version mismatch,
nothing for not checked, and OFFLINE if previously couldn't connect.
Enables viewing a variety of views in chart module.
Primary key.
Description of this view. Gets displayed at top of Progress Notes grid.
0-based order to display in lists.
Enum:ChartViewProcStat None=0,TP=1,Complete=2,Existing Cur Prov=4,Existing Other Prov=8,Referred=16,Deleted=32,Condition=64,All=127.
0- None.
1- Treatment Plan.
2- Complete.
4- Existing Current Provider.
8- Existing Other Provider.
16- Referred Out.
32- Deleted.
64- Condition.
127- All.
Enum:ChartViewObjs None=0,Appointments=1,Comm Log=2,Comm Log Family=4,Tasks=8,Email=16,LabCases=32,Rx=64,Sheets=128,All=255.
0- None
1- Appointments
2- Comm Log
4- Comm Log Family
8- Tasks
16- Email
32- Lab Cases
64- Rx
128- Sheets
255- All
Set true to show procedure notes.
Set true to enable audit mode.
Set true to only show information regarding the selected teeth.
Enum:OrionStatus Which orion statuses to show. Will be zero if not orion.
0- None. While a normal orion proc would never have this status2, it is still needed for flags in ChartViews. And it's also possible that a status2 slipped through the cracks and was not assigned, leaving it with this value.
1– Treatment planned
2– Completed
4– Existing prior to incarceration
8– Refused treatment
16– Referred out to specialist
32– Completed by specialist
64– Completed by registry
128- Cancelled, tx plan changed
256- Cancelled, eligible parole
512- Cancelled, parole/discharge
1024– Suspended, unacceptable plaque
2048- Stop clock, multi visit
4096– Watch
8192– Alternative
Enum:ChartViewDates
0- All
1- Today
2- Yesterday
3- This Year
4- Last Year
set true to show treatment plan controls in chart module.
The claim table holds information about individual claims. Each row represents one claim.
Primary key
FK to patient.PatNum
Usually the same date as the procedures, but it can be changed if you wish.
Usually the date it was created. It might be sent a few days later if you don't send your e-claims every day.
Single char: U,H,W,P,S,or R. U=Unsent, H=Hold until pri received, W=Waiting in queue, S=Sent, R=Received. A(adj) is no longer used. P(prob sent) is no longer used.
Date the claim was received.
FK to insplan.PlanNum. Every claim is attached to one plan.
FK to provider.ProvNum. Treating provider for dental claims. For institutional claims, this is called the attending provider.
Total fee of claim.
Amount insurance is estimated to pay on this claim.
Amount insurance actually paid.
Deductible applied to this claim.
The predetermination of benefits number received from ins. In X12, REF G3.
Single char for No, Initial, or Replacement.
Date prior prosthesis was placed. Note that this is only for paper claims. E-claims have a date field on each individual procedure.
Note for patient for why insurance didn't pay as expected.
Note to be sent to insurance. Max 255 char. E-claims also have notes on each procedure.
"P"=primary, "S"=secondary, "PreAuth"=preauth, "Other"=other, "Cap"=capitation. Not allowed to be blank. Might need to add "Med"=medical claim.
FK to provider.ProvNum. Billing provider. Assignment can be automated from the setup section.
FK to referral.ReferralNum.
Referral number for this claim.
Enum:PlaceOfService .
0. CPT code 11
1. CPT code 12
2. CPT code 21
3. CPT code 22
4. CPT code 31
5. CPT code 33. In X12, a similar code AdultLivCareFac 35 is mentioned.
6. CPT code ?. We use 11 for office.
7. CPT code 15
8. CPT code 03
9. CPT code 26
10. CPT code 50
11. CPT code 71
12. CPT code 72
13. CPT code 23
14. CPT code 24
blank or A=Auto, E=Employment, O=Other.
Date of accident, if applicable.
Accident state.
Enum:YN .
Unknown,Yes, or No.
0
1
2
True if is ortho.
Remaining months of ortho. Valid values are 1-36, although we allow greater than or equal to 0.
Date ortho appliance placed.
Enum:Relat Relationship to subscriber. The relationship is copied from InsPlan when the claim is created. It might need to be changed in both places.
Relationship to subscriber for insurance.
0
1
2
3
4
5
6
7
8
FK to insplan.PlanNum. Other coverage plan number. 0 if none. This provides the user with total control over what other coverage shows. This obviously limits the coverage on a single claim to two insurance companies.
Enum:Relat The relationship to the subscriber for other coverage on this claim.
Relationship to subscriber for insurance.
0
1
2
3
4
5
6
7
8
Sum of ClaimProc.Writeoff for this claim.
The number of x-rays enclosed.
FK to clinic.ClinicNum. 0 if no clinic. Since one claim cannot have procs from multiple clinics, the clinicNum is set when creating the claim and then cannot be changed. The claim would have to be deleted and recreated. Otherwise, if changing at the claim level, a feature would have to be added that synched all procs, claimprocs, and probably some other tables.
FK to claimform.ClaimFormNum. 0 if not assigned to use the claimform for the insplan.
The number of intraoral images attached. Not the number of files attached. This is the value that goes on the 2006 claimform.
The number of models attached.
A comma-delimited set of flag keywords. Can have one or more of the following: EoB,Note,Perio,Misc. Must also contain one of these: Mail or Elect.
Example: NEA#1234567. If present, and if the claim note does not already start with this Id, then it will be prepended to the claim note for both e-claims and mail. If using e-claims, this same ID will be used for all PWK segements.
A08. Any combination of E(email), C(correspondence), M(models), X(x-rays), and I(images). So up to 5 char. Gets converted to a single char A-Z for e-claims.
B05. Optional. The 9-digit CDA number of the referring provider, or identifier of referring party up to 10 characters in length.
B06. A number 0(none) through 13.
F18. Y, N, or X(not a lower denture, crown, or bridge).
F19. Mandatory if F18 is N.
F21. If crown, not required. If denture or bridge, required if F18 is N. Single digit number code, 0-6. We added type 7, which is crown.
F15. Y, N, or X(not an upper denture, crown, or bridge).
F04. Mandatory if F15 is N.
F20. If crown, not required. If denture or bridge, required if F15 is N. 0 indicates empty response. Single digit number code, 1-6. We added type 7, which is crown.
FK to inssub.InsSubNum.
FK to inssub.InsSubNum. The fk to the 'Other' insurance subscriber. For a primary claim, this will be the secondary insurance
subscriber. For a secondary claim, this will be primary insurance subscriber.
G01 assigned by carrier/network and returned in acks. Used for claim reversal.
F37 Used for predeterminations.
F28 Used for predeterminations.
F29 Used for predeterminations.
F30 Used for predeterminations.
F31 Used for predeterminations.
F32 Used for predeterminations.
This is NOT the predetermination of benefits number. In X12, this is REF G1.
Enum:EnumClaimSpecialProgram This is used to track EPSDT.
0=none, 1=EPSDT_1, 2=Handicapped_2, 3=SpecialFederal_3, (no 4), 5=Disability_5, 9=SecondOpinion_9
A three digit number used on 837I. Aka Bill Code. UBO4 4. Examples: 321,823,131,652. The third digit is claim frequency code. If this is used, then our CorrectionType should be 0=original.
Enum:EnumClaimMedType 0=Dental, 1=Medical, 2=Institutional
0
1
2
Used for inst claims. Single digit. X12 2300 CL101. UB04 14. Should only be required for IP, but X12 clearly states required for all.
Used for inst claims. Single char. X12 2300 CL102. UB04 15. Should only be required for IP, but X12 clearly states required for all.
Used for inst claims. Two digit. X12 2300 CL103. UB04 17. Should only be required for IP, but X12 clearly states required for all.
FK to definition.DefNum. Most users will leave this blank. Some offices may set up tracking statuses such as 'review', 'hold', 'riskmanage', etc.
Used for historical purposes only, not sent electronically. Automatically set when CorrectionType is not original and the claim is resent.
X12 CLM05-3. Usually set to original, but can be used to resubmit claims.
X12 CLM01. Semi-unique identifier for the claim within the current database. Defaults to PatNum/ClaimNum, but can be edited by user, and is often modified by the clearinghouse to ensure uniqueness on their end.
This also set for PreAuth claims. The ClaimIdentifier for a PreAuth will probably not match the ClaimIdentifier for a regular claim, which makes ERA claim matching more straight forward for both PreAuths and regular claims.
X12 2300 REF (F8). Used when resending claims to refer to the original claim. The user must type this value in after reading it from the original claim response report.
FK to provider.ProvNum. Ordering provider override. Medical eclaims only. Defaults to zero. If set to zero, then the ProvTreat will go out on the eclaim instead.
Total estimated months of ortho. Valid values are 1-36, although we allow greater than or equal to 0.
Sum of all amounts paid specifically to this claim by the patient or family.
Goes out in X12 4010/5010 loop 2300 AMT segment if greater than zero. Default value is 0, thus will not go out by default unless the user
enters a value. This field was added for Denti-Cal certification, but can go out for any clearinghouse.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Keeps track of one image file attached to a claim. Multiple files can be attached to a claim using this method.
Primary key.
FK to claim.ClaimNum
The name of the file that shows on the claim. For example: tooth2.jpg.
The actual file is stored in the A-Z folder in EmailAttachments. (yes, even though it's not actually an email attachment) The files are named automatically based on Date/time along with a random number. This ensures that they will be sequential as well as unique.
There is either one or zero per claim.
Primary key.
FK to claim.ClaimNum.
Corresponds with condition code 18 on the UB04.
Corresponds with condition code 19 on the UB04.
Corresponds with condition code 20 on the UB04.
Corresponds with condition code 21 on the UB04.
Corresponds with condition code 22 on the UB04.
Corresponds with condition code 23 on the UB04.
Corresponds with condition code 24 on the UB04.
Corresponds with condition code 25 on the UB04.
Corresponds with condition code 26 on the UB04.
Corresponds with condition code 27 on the UB04.
Corresponds with condition code 28 on the UB04.
Stores the information for printing different types of claim forms. Each claimform has many claimformitems attached to it, one for each field on the claimform. This table has nothing to do with the actual claims. It just describes how to print them.
Primary key.
eg. ADA2002 or CA Medicaid
If true, then it will not be displayed in various claim form lists as a choice.
Valid font name for all text on the form.
Font size for all text on the form.
For instance OD12 or JoeDeveloper9. If you are a developer releasing claimforms, then this should be your name or company followed by a unique number. This will later make it easier for you to maintain your claimforms for your customers. All claimforms that we release will be of the form OD##. Forms that the user creates will have this field blank, protecting them from being changed by us. So far, we have built the following claimforms: ADA2002=OD1, Denti-Cal=OD2, ADA2000=OD3, HCFA1500=OD4, HCFA1500preprinted=OD5, Canadian=OD6, Belgian=OD7, ADA2006=OD8, 1500 version 05/08=OD9, UB04=OD10, ADA2012=OD11, 1500 version 02/12=OD12
Set to false to not print images. This removes the background for printing on premade forms.
Shifts all items by x/100th's of an inch to compensate for printer, typically less than 1/4 inch.
Shifts all items by y/100th's of an inch to compensate for printer, typically less than 1/4 inch.
One item is needed for each field on a claimform.
Primary key.
FK to claimform.ClaimFormNum
If this item is an image. Usually only one per claimform. eg ADA2002.emf. Otherwise it MUST be left blank, or it will trigger an error that the image cannot be found.
Must be one of the hardcoded available fieldnames for claims.
For dates, the format string. ie MM/dd/yyyy or M d y among many other possibilities.
The x position of the item on the claim form. In pixels. 100 pixels per inch.
The y position of the item.
Limits the printable area of the item. Set to zero to not limit.
Limits the printable area of the item. Set to zero to not limit.
Each row represents a single check from the insurance company. The amount may be split between patients using claimprocs. The amount of the check must always exactly equal the sum of all the claimprocs attached to it. There might be only one claimproc.
Primary key.
Date the check was entered into this system, not the date on the check.
The amount of the check.
The check number.
Bank and branch.
Note for this check if needed.
FK to clinic.ClinicNum. 0 if no clinic.
FK to deposit.DepositNum. 0 if not attached to any deposits.
Descriptive name of the carrier just for reporting purposes. We use this because the CarrierNums could conceivably be different for the different claimprocs attached.
Date that the carrier issued the check. Date on the check.
.
FK to definition.DefNum. 0 if not attached to any definitions
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Links procedures to claims. Also links ins payments to procedures or claims. Also used for estimating procedures even if no claim yet. Warning: One proc might be linked twice to a given claim if insurance made two payments. Many of the important fields are actually optional. For instance, ProcNum is only required if itemizing ins payment, and ClaimNum is blank if Status=adjustment,cap,or estimate.
Primary key.
FK to procedurelog.ProcNum. Is 0 for payments by total.
FK to claim.ClaimNum. Is 0 for estimates, adjustments and capitation (CapClaim and CapComplete).
FK to patient.PatNum.
FK to provider.ProvNum. At least one office has been manually setting their claimproc provider to a different provider when entering payments as a means to track provider income. So we can't force this to always be the same as the procedure. We also don't want to change any historical data, so only synched when setting appt complete or if an estimate. Right now on e-claims, we are sending the prov from the procedure. When we have time, we will change e-claims to send the prov from the ClaimProc.
Fee billed to insurance. Might not be the same as the actual fee. The fee billed can be different than the actual procedure. For instance, if you have set the insurance plan to bill insurance using UCR fees, then this field will contain the UCR fee instead of the fee that the patient was charged.
Only if attached to a claim. Actual amount this carrier is expected to pay, after taking everything else into account. Considers annual max, override, percentAmt, copayAmt, deductible, etc. This estimate is computed automatically when sent to ins.
0 if blank. Deductible applied to this procedure only. Only for procedures attached to claims. Otherwise, the DedEst and DedEstOverride are used.
Enum:ClaimProcStatus .
Claimproc Status. The status must generally be the same as the claim, although it is sometimes not strictly enforced.
0: For claims that have been created or sent, but have not been received.
1: For claims that have been received.
2: For preauthorizations.
3: The only place that this status is used is to make adjustments to benefits from the coverage window. It is never attached to a claim.
4:This differs from Received only slightly. It's for additional payments on procedures already received. Most fields are blank.
5: CapClaim is used when you want to send a claim to a capitation insurance company. These are similar to Supplemental in that there will always be a duplicate claimproc for a procedure. The first claimproc tracks the copay and writeoff, has a status of CapComplete, and is never attached to a claim. The second claimproc has status of CapClaim.
6: Estimates have replaced the fields that were in the procedure table. Once a procedure is complete, the claimprocstatus will still be Estimate. An Estimate can be attached to a claim and status gets changed to NotReceived.
7: For capitation procedures that are complete. This replaces the old procedurelog.CapCoPay field. This stores the copay and writeoff amounts. The copay is only there for reference, while it is the writeoff that actually affects the balance. Never attached to a claim. If procedure is TP, then status will be CapEstimate. Only set to CapComplete if procedure is Complete.
8: For capitation procedures that are still estimates rather than complete. When procedure is completed, this can be changed to CapComplete, but never to anything else.
Amount insurance actually paid.
The remarks that insurance sends in the EOB about procedures.
FK to claimpayment.ClaimPaymentNum(the insurance check).
FK to insplan.PlanNum
This is the date that is used for payment reports and tracks the payment date. Always exactly matches the date of the ClaimPayment it's attached to. See the note under Ledgers.ComputePayments. This will eventually not be used for aging. The ProcDate will instead be used. See ProcDate.
Amount not covered by ins which is written off. The writeoff estimate goes in a different column. This is filled with the WriteOffEst value when a claim is created.
The procedure code that was sent to insurance. This is not necessarily the usual procedure code. It will already have been trimmed to 5 char if it started with "D", or it could be the alternate code. Not allowed to be blank if it is procedure.
The allowed fee (not the override) is a complex calculation which is performed on the fly in Procedure.ComputeEstimates/ClaimProc.ComputeBaseEst. It is the amount that the percentage is based on. If this carrier has a lower UCR than the office, then the allowed fee is where that is handled. It can be pulled from an allowed fee schedule. It is also where substitutions for posterior composites are handled. The AllowedOverride allows the user to override the calculation. -1 indicates blank. A new use of this field is for when entering insurance payments. On the eob, it will tell you what the allowed/UCR fee is. The user will now be able to enter this information into the AllowedOverride field. They will simultaneously pass the info to the allowed fee schedule. AllowedOverride is never changed automatically by the program except to sometimes set it to -1 if NoBillIns.
-1 if blank. Otherwise a number between 0 and 100. The percentage that insurance pays on this procedure, as determined from insurance categories. Not user editable.
-1 if blank. Otherwise a number between 0 and 100. Can only be changed by user.
-1 if blank. Calculated automatically. User cannot edit but can use CopayOverride instead. Opposite of InsEst, because this is the patient portion estimate. Two different uses: 1. For capitation, this automates calculation of writeoff. 2. For any other insurance, it gets deducted during calculation as shown in the edit window. Neither use directly affects patient balance.
Set to true to not bill to this insurance plan.
-1 if blank. The amount paid or estimated to be paid by another insurance. This amount is then subtracted from what the current insurance would pay. When running the calculation and considering other claimprocs, it will ignore any patPlan with a higher ordinal. So, always blank for primary claims. User cannot edit, but can use PaidOtherInsOverride.
Always has a value. Used in TP, etc. The base estimate is the ((fee or allowedOverride)-Copay) x (percentage or percentOverride). Does not include all the extras like ded, annualMax,and paidOtherIns that InsEstTotal holds. BaseEst cannot be overridden by the user. Instead, the following fields can be manipulated: allowedOverride, CopayOverride, PercentOverride.
-1 if blank. See description of CopayAmt. This lets the user set a copay that will never be overwritten by automatic calculations.
Date of the procedure. Displayed in Edit Claim window procedures grid. Currently only used for tracking annual insurance benefits remaining. Important in Adjustments to benefits. For total claim payments, MUST be the date of the procedures to correctly figure benefits. Will eventually transition to use this field to actually calculate aging. See the note under Ledgers.ComputePayments.
Date that it was changed to status received or supplemental. It is usually attached to a claimPayment at that point, but not if user forgets. This is still the date that it becomes important financial data. Only applies if Received or Supplemental. Otherwise, the date is disregarded. User may never edit. Important in audit trail.
Assigned when claim is created as a way to order the procs showing on a claim. Indireclty goes out in X12 loop 2400.
Used in Canadian eclaims (field F07).
-1 if blank. Not sure why we need to allow -1. Calculated automatically. User cannot edit, but can use DedEstOverride instead.
-1 if blank. Overrides the DedEst value.
Always has a value. BaseEst-(DedEst or DedEstOverride)-PaidOtherIns-OverAnnualMax. User cannot edit, but can instead use InsEstTotalOverride. Recalculated each time TP is viewed, is saved as the value calculated for the last viewed TP. This variable should probably just be moved to memory and removed as a DB field.
-1 if blank. Overrides the InsEstTotal value.
-1 if blank. Overrides the PaidOtherIns value.
An automatically generated note that displays information about over max, exclusions, and other limitations for which there are no fields. Only applies to estimate. Once it's attached to a claim, similar information can go in the remarks field.
-1 if blank. The estimated writeoff as calculated by OD. Usually only used for PPOs.
-1 if blank. Overrides WriteOffEst. Usually only used for PPOs.
FK to clinic.ClinicNum. Can be zero. No user interface for editing. Forced to always be the same as the procedure, or if no procedure, then the claim.
FK to inssub.InsSubNum.
1-indexed. Allows user to sort the order of payments on an EOB. All claimprocs for a payment will have the same PaymentRow value.
FK to payplan.PayPlanNum. 0 if not attached to a payplan.
FK to definition.DefNum. Connected to the ClaimPaymentTracking DefCat.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
The date the claim proc was first set to received or supplemental. Will not be updated if the procedure is set to unreceived and set
to received or supplemental again.
Stores the original insurance writeoff, fee, and expected insurance payment information on claims.
Primary key.
FK to procedurelog.ProcNum
Deprecated column. Used to store "S"=Secondary or "P"=Primary to identify the claim type for the claimproc.
Expected amount the insurance will pay on the procedure.
Procedure's ProcFee
The date/time that the snapshot was created. Not user editable.
FK to claimproc.ClaimProcNum
Enum:ClaimSnapshotTrigger Stores the trigger to which this ClaimSnapshot was created.
The Enumeration value for which Claim Snapshot Trigger that will be stored.
0
1
2
Value codes for institutional 'claims'. Can have up to 12 per claim.
Primary key.
FK to claim.ClaimNum.
Descriptive abbreviation to help place field on form (Ex: "FL55" for field 55).
Value Code. 2 char.
Value Code Amount.
Order of Value Code
Since we can send e-claims to multiple clearinghouses, this table keeps track of each clearinghouse. Will eventually be used for individual carriers as well if they accept
Primary key.
Description of this clearinghouse
The path to export the X12 file to. \ is now optional. Can be overridden by clinic-level clearinghouses.
A list of all payors which should have claims sent to this clearinghouse. Comma delimited with no spaces. Not necessary if IsDefault.
Enum:ElectronicClaimFormat The format of the file that gets sent electronically.
For every type of electronic claim format that Open Dental can create, there will be an item in this enumeration. All e-claim formats are hard coded due to complexity.
0-Not in database, but used in various places in program.
1-The American standard through 12/31/11.
2-Proprietary format for Renaissance.
3-CDAnet format version 4.
4-CSV file adaptable for use in Netherlands.
5-The American standard starting on 1/1/12.
6-Either professional or medical. The distiction is stored at the claim level.
Sender ID Qualifier. Usually ZZ, sometimes 30. Seven other values are allowed as specified in X12 document, but probably never used.
Used in ISA06, GS02, 1000A NM1, and 1000A PER. If blank, then 810624427 is used to indicate Open Dental.
Can be overridden by clinic-level clearinghouses.
Receiver ID Qualifier. Usually ZZ, sometimes 30. Seven other values are allowed as specified in X12 document, but probably never used.
Receiver ID. Also used in GS03. Provided by clearinghouse. Examples: BCBSGA or 0135WCH00(webMD)
"P" for Production or "T" for Test.
Password is usually combined with the login ID for user validation. Can be overridden by clinic-level clearinghouses.
The path that all incoming response files will be saved to. \ is now optional.
Can be overridden by clinic-level clearinghouses.
Enum:EclaimsCommBridge One of the included hard-coded communications briges. Or none to just create the claim files without uploading.
Each clearinghouse can have a hard-coded comm bridge which handles all the communications of transfering the claim files to the clearinghouse/carrier. Does not just include X12, but can include any format at all.
0-No comm bridge will be activated. The claim files will be created to the specified path, but they will not be uploaded.
1
2
3
4
5
6
7
8
9 Canadian clearinghouse.
10
11
12
13
14
15 Canadian clearinghouse.
16 UK clearinghouse.
17
If applicable, this is the name of the client program to launch. It is even used by the hard-coded comm bridges,
because the user may have changed the installation directory or exe name. Can be overridden by clinic-level clearinghouses.
Each clearinghouse increments their batch numbers by one each time a claim file is sent. User never sees this number. Maxes out at 999, then loops back to 1. This field must NOT be cached and must be ignored in the code except where it explicitly retrieves it from the db. Defaults to 0 for brand new clearinghouses, which causes the first batch to go out as #1.
Was not used. 1,2,3,or 4. The port that the modem is connected to if applicable. Always uses 9600 baud and standard settings. Will crash if port or modem not valid.
A clearinghouse usually has a login ID that is used with the password in order to access the remote server.
This value is not usualy used within the actual claim. Can be overridden by clinic-level clearinghouses.
Used in 1000A NM1 and 1000A PER. But if SenderTIN is blank, then OPEN DENTAL SOFTWARE is used instead.
Can be overridden by clinic-level clearinghouses.
Used in 1000A PER. But if SenderTIN is blank, then 8776861248 is used instead. 10 digit phone is required by WebMD and is
universally assumed, so for now, this must be either blank or 10 digits. Can be overridden by clinic-level clearinghouses.
Usually the same as ISA08, but at least one clearinghouse uses a different number here.
Authorization information. Almost always blank. Used for Denti-Cal.
Security information. Almost always blank. Used for Denti-Cal.
X12 component element separator. Two digit hexadecimal string representing an ASCII character or blank. Usually blank, implying 3A which represents ':'. For Denti-Cal, hexadecimal value 22 must be used, corresponding to '"'.
X12 data element separator. Two digit hexadecimal string representing an ASCII character or blank. Usually blank, implying 2A which represents '*'. For Denti-Cal, hexadecimal value 1D must be used, corresponding to the "group separator" character which has no visual representation.
X12 segment terminator. Two digit hexadecimal string representing an ASCII character or blank. Usually blank, implying 7E which represents '~'. For Denti-Cal, hexadecimal value 1C must be used, corresponding to the "file separator" character which has no visual representation.
FK to clinic.ClinicNum. ClinicNum=0 for HQ.
FK to ClearinghouseNum. Never 0. Points to the HQ copy of this clearinghouse.
If this copy is the HQ copy, then HqClearinghouseNum=ClearinghouseNum.
A clinic is usually a separate physical office location. If multiple clinics are sharing one database, then this is used. Patients, Operatories, Claims, and many other types of objects can be assigned to a clinic.
Primary key. Used in patient,payment,claimpayment,appointment,procedurelog, etc.
Clinics cache is sorted by Description if preference ClinicListIsAlphabetical is true.
.
Second line of address.
.
2 char in the US.
.
Does not include any punctuation. Exactly 10 digits or blank in USA and Canada.
The account number for deposits.
Enum:PlaceOfService Usually 0 unless a mobile clinic for instance.
0. CPT code 11
1. CPT code 12
2. CPT code 21
3. CPT code 22
4. CPT code 31
5. CPT code 33. In X12, a similar code AdultLivCareFac 35 is mentioned.
6. CPT code ?. We use 11 for office.
7. CPT code 15
8. CPT code 03
9. CPT code 26
10. CPT code 50
11. CPT code 71
12. CPT code 72
13. CPT code 23
14. CPT code 24
FK to provider.ProvNum. 0=Default practice provider, -1=Treating provider.
Does not include any punctuation. Exactly 10 digits or empty in USA and Canada.
FK to EmailAddress.EmailAddressNum.
FK to provider.ProvNum. Used in place of the default practice provider when making new patients.
DateSMSContract was signed.
Always stored in USD, this is the desired limit for SMS out for a given month.
True if this clinic is a medical clinic. Used to hide/change certain areas of Open Dental, like hiding the tooth chart and changing
'dentist' to 'provider'.
Overrides Address on claims if not blank.
Second line of billing address.
Overrides City on claims if BillingAddress is not blank.
Overrides State on claims if BillingAddress is not blank.
Overrides Zip on claims if BillingAddress is not blank.
Overrides practice PayTo address if not blank.
Second line of PayTo address.
Overrides practice PayToCity if PayToAddress is not blank.
Overrides practice PayToState if PayToAddress is not blank.
Overrides practice PayToZip if PayToAddress is not blank.
True if this clinic's billing address should be used on outgoing claims.
FK to definition.DefNum when definition.DefCat is Regions.
0 based. Clinics cache is sorted by ItemOrder if the preference ClinicListIsAlphabetical is false.
True if this clinic should be excluded from showing up in the Insurance Verification List.
One clock-in / clock-out pair. Of, if the pair is a break, then it's an out/in pair. With normal clock in/out pairs, we want to know how long the employee was working. It's the opposite with breaks. We want to know how long they were not working, so the pair is backwards. This means that a normal clock in is left incomplete when the clock out for break is created. And once both are finished, the regular in/out will surround the break. Breaks cannot be viewed easily on the same grid as regular clock events for this reason. And since breaks do not affect pay, they should not clutter the normal grid.
Primary key.
FK to employee.EmployeeNum
The actual time that this entry was entered. Cannot be 01-01-0001.
The time to display and to use in all calculations. Cannot be 01-01-0001.
Enum:TimeClockStatus Home, Lunch, or Break. The status really only applies to the clock out. Except the Break status applies to both out and in.
0
1
2
.
The user can never edit this, but the program has to be able to edit this when user clocks out. Can be 01-01-0001 if not clocked out yet.
User can edit. Can be 01-01-0001 if not clocked out yet.
This is a manual override for OTimeAuto. Typically -1 hour (-01:00:00) to indicate no override. When used as override, allowed values are zero or positive. This is an alternative to using a TimeAdjust row.
Automatically calculated OT. Will be zero if none.
This is a manual override of AdjustAuto. Ignored unless AdjustIsOverridden set to true. When used as override, it's typically negative, although zero and positive are also allowed.
Automatically calculated Adjust. Will be zero if none.
True if AdjustAuto is overridden by Adjust.
This is a manual override for Rate2Auto. Typically -1 hour (-01:00:00) to indicate no override. When used as override, allowed values are zero or positive. This is the portion of the hours worked which are at Rate2, so it's not in addition to the hours worked. Also used to calculate the Rate2 OT.
Automatically calculated rate2 pay. Will be zero if none.
FK to clinic.ClinicNum. The clinic the ClockEvent was entered at.
Used for tracking code systems imported to OD. HL7OID used for sending messages. This must be a database table in order to keep track of VersionCur between sessions.
Primary key. Not currently referenced anywhere.
.
Only used for display, not actually interpreted. Updated by Code System importer. Examples: 2013 or 1
Only used for display, not actually interpreted. Updated by Convert DB script.
Example: 2.16.840.1.113883.6.13
Notes to display to user. Examples: "CDT codes distributed via program updates.", "CPT codes require purchase and download from www.ama.com
Tracks all forms of communications with patients, including emails, phonecalls, postcards, etc.
Primary key.
FK to patient.PatNum.
Date and time of entry
FK to definition.DefNum. This will be 0 if IsStatementSent. Used to be an enumeration in previous versions.
Note for this commlog entry.
Enum:CommItemMode Phone, email, etc.
0-
1-
2
3
4
5
Enum:CommSentOrReceived Neither=0,Sent=1,Received=2.
0=neither, 1=sent, 2=received.
0
1
2
FK to userod.UserNum.
Signature. For details, see procedurelog.Signature.
True if signed using the Topaz signature pad, false otherwise.
Automatically updated by MySQL every time a row is added or changed.
Date and time when commlog ended. Mainly for internal use.
Enum:CommItemSource Set to the source of the entity that created this commlog. E.g. WebSched.
0=neither, 1=sent, 2=received.
0
1
2
3
FK to program.ProgramNum. This will be 0 unless CommSource is set to ProgramLink.
Keeps track of the computers in an office. The list will eventually become cluttered with the names of old computers that are no longer in service. The old rows can be safely deleted. Although the primary key is used in at least one table, this will probably be changed, and the computername will become the primary key.
Primary key.
Name of the computer.
Allows use to tell which computers are running. All workstations record a heartbeat here at an interval of 3 minutes. And when they shut down, they set this value to min. So if the heartbeat is fairly fresh, then that's an accurate indicator of whether Open Dental is running on that computer.
Enables preference specification for individual computers on a customer network.
Primary key.
The human-readable name of the computer on the network (not the IP address).
Set to true if the tooth chart is to use a hardware accelerated OpenGL window when available. Set to false to use software rendering when available. Of course, the final pixel format on the customer machine depends on the list of available formats. Best match pixel format is always used. This option only applies if GraphicsSimple is set to false.
Enum:DrawingMode Set to 1 to use the low-quality 2D tooth chart in the chart module. Set to 0 to use a 3D DirectX based tooth chart in the chart module. This option helps the program run even when the local graphics hardware is buggy or unavailable.
0
1
2
Indicates the type of Suni sensor connected to the local computer (if any). This can be a value of A, B, C, or D.
Indicates wether or not the Suni sensor uses binned operation.
Indicates which Suni box port to connect with. There are 2 ports on a box (ports 0 and 1).
Indicates the exposure level to use when capturing from a Suni sensor. Values can be 1 through 7.
Indicates if the user prefers double-buffered 3D tooth-chart (where applicable).
Indicates the current pixel format by number which the user prefers.
The path of the A-Z folder for the specified computer. Overrides the officewide default. Used when multiple locations are on a single virtual database and they each want to look to the local data folder for images.
If the global setting for showing the Task List is on, this controls if it should be hidden on this specified computer
Dock task bar on bottom (0) or right (1).
X pos for right docked task list.
Y pos for bottom docked task list.
Holds a semi-colon separated list of enumeration names and values representing a DirectX format. If blank, then
no format is currently set and the best theoretical foramt will be chosen at program startup. If this value is set to
'opengl' then this computer is using OpenGL and a DirectX format will not be picked.
Show the select scanner dialog when scanning documents.
Show the scanner options dialog when scanning documents.
Attempt to scan in duplex mode when scanning multipage documents with an ADF.
Scan in gray scale when scanning documents.
Scan at the specified resolution when scanning documents.
0-100. Quality of jpeg after compression when scanning documents. 100 indicates full quality. Opposite of compression.
FK to clinic.ClinicNum. The most recent clinic for this computer. Determines which clinic is used when loading Open Dental.
FK to apptview.ApptViewNum. The most recent appt view num for this computer. Used when opening with the Appts module in conjunction with ClinicNum if this ApptViewNum is associated to the ClinicNum.
Deprecated. The index of the most recent appt view for this computer. Uses it when opening. This column cannot be dropped due to older versions using it upon opening (prior to calling the update file copier code) so they will throw a UE if this column is ever dropped.
Enum:SearchMode The search mode that is used when loading the patient select window, and while typing.
When 0 the patient select window will use the DB wide pref PatientSelectUsesSearchButton.
The search mode that is used when loading the patient select window, and while typing
0
1
2
If true, don't warn user if the region's decimal setting is not 2.
Used in the Central Enterprise Management Tool for creating a group of connections.
Primary key.
Description of the connection group
Used in the Central Enterprise Management Tool to link CentralConnections and ConnectionGroups.
Primary Key
FK to connectiongroup.ConnectionGroupNum
FK to centralconnection.CentralConnectionNum
Like a rolodex for businesses that the office interacts with. Used to store pharmacies, etc.
Primary key.
Last name or, frequently, the entire name.
First name is optional.
Work phone.
Fax number.
FK to definition.DefNum
Note for this contact.
Used in public health.
Primary Key.
Frequently used as the primary key of this table. But it's allowed to change. Change is programmatically synchronized.
Optional. Usage varies.
Insurance coverage categories. They need to look like in the manual for the American calculations to work properly.
Primary key. Only used in Benefit and CovSpan tables.
Description of this category.
Default percent for this category. -1 to skip this category and not apply a percentage.
The order in which the categories are displayed. Includes hidden categories. 0-based.
If true, this category will be hidden.
Enum:EbenefitCategory The X12 benefit categories. Each CovCat can link to one X12 category. Default is 0 (unlinked).
The X12 benefit categories. Used to link the user-defined CovCats to the corresponding X12 category.
0- Default. Applies to all codes.
1- X12: 30 and 35. All ADA codes except ortho. D0000-D7999 and D9000-D9999
2- X12: 23. ADA D0000-D0999. This includes DiagnosticXray.
3- X12: 24. ADA D4000
4- X12: 25. ADA D2000-D2699, and D2800-D2999.
5- X12: 26. ADA D3000
6- X12: 27. ADA D5900-D5999
7- X12: 36. Exclusive subcategory of restorative. D2700-D2799
8- X12: 37. ADA range?
9- X12: 38. ADA D8000-D8999
10- X12: 39. ADA D5000-D5899 (removable), and D6200-D6899 (fixed)
11- X12: 40. ADA D7000
12- X12: 41. ADA D1000
13- X12: 4. ADA D0200-D0399. So this is like an optional category which is otherwise considered to be diagnosic.
14- X12: 28. ADA D9000-D9999
Always attached to covcats, this describes the span of procedure codes to which the category applies.
Primary key.
FK to covcat.CovCatNum.
Lower range of the span. Does not need to be a valid code.
Upper range of the span. Does not need to be a valid code.
Other tables generally use the CptCode as their foreign key.
Primary key. .
Cpt code. Not allowed to edit this column once saved in the database.
Short Description provided by Cpt documentation.
Comma delimited list of years the Cpt code existed in that have been imported into this table.
One credit card along with any recurring charge information.
Primary key.
FK to patient.PatNum.
.
Postal code.
Token for X-Charge. Alphanumeric, upper and lower case, about 15 char long. Passed into Xcharge instead of the actual card number.
Credit Card Number. Will be stored masked: XXXXXXXXXXXX1234.
Only month and year are used, the day will usually be 1.
The order that multiple cards will show. Zero-based. First one will be default.
Amount set for recurring charges.
Start date for recurring charges.
Stop date for recurring charges.
Any notes about the credit card or account goes here.
FK to payplan.PayPlanNum.
Token for PayConnect. PayConnect returns a token and token expiration, when requested by the merchant's system, to be used instead
of actual credit card number in subsequent transactions.
Expiration for the PayConnect token. Used with the PayConnect token instead of the actual credit card number and expiration.
What procedures will go on this card as a recurring charge. Comma delimited list of ProcCodes.
Enum:CreditCardSource Indicates which application made this credit card and token.
0 - Storing the actual credit card number. Not recommended.
1 - Local installation of X-Charge
2 - Credit card created via X-Web (an eService)
3 - PayConnect web service (from within OD).
FK to clinic.ClinicNum. The clinic where this card was added. Each clinic could have a different AuthKey and different
AuthKeys could generate overlapping tokens.
For internal use only.
Primary key.
FK to patient.PatNum. The customer seeking a reference.
FK to patient.PatNum. The chosen reference. This is the customer who was given as a reference to the new customer.
Date the reference was chosen.
Notes specific to this particular reference entry, mostly for a special reference situation.
One to one relation with the patient table representing each customer as a reference.
Primary key.
FK to patient.PatNum.
Most recent date the reference was used, loosely kept updated.
Notes specific to this customer as a reference.
Set to true if this customer was a bad reference.
Vaccines administered. Other tables generally use the CvxCode as their foreign key.
Primary key. .
Cvx code. Not allowed to edit this column once saved in the database.
Short Description provided by Cvx documentation.
Not currently in use. Might not need this column. If we use this in the future, then convert from string to bool. 1 if the code is an active code, 0 if the code is inactive.
A table just used by the dashboard to store historical AR because it never changes and it takes too long (1 second for each of the 12 dates) to compute on the fly. One entry per month going back at least 12 months. This table gets automatically filled the first time that the dashboard is used. The most recent month also gets added by using the dashboard.
Primary key.
This date will always be the last day of a month.
Bal_0_30+Bal_31_60+Bal_61_90+BalOver90 for all patients. This should also exactly equal BalTotal for all patients with positive amounts. Negative BalTotals are credits, not A/R.
Sum of all InsEst for all patients for the month.
Each DashboardLayout can include multiple DashboardCell(s). DashboardLayout and DashboardCell work in conjunction to form the dashboard layout.
PK.
FK to DashboardLayout.DashboardLayoutNum. This foreign key object will include the 0 based DashboardTabOrder, which is used to place this DashboardCell.
The row to which this DashboardCell belongs. 0 based.
The column to which this DashboardCell belongs. 0 based.
Determines what type of control will be docked in this cell.
Typically a serialized string that the control will accept in order to change view attributes.
Not used yet. Timestamp at which the cached data behind this cell was last retrieved.
Not used yet. Cached data behind this cell.
Not used yet. Frequency at which the cached data behind this cell should be retrieved.
Each tab in the dashboard has a corresponding DashboardLayout. DashboardLayout and DashboardCell work in conjunction to form the dashboard layout.
PK.
FK to userod.UserNum.
FK to usergroup.UserGroupNum.
Text shown in the tab header.
Orders the tabs in the tab control. 0 based.
Number of rows for this DashboardLayout. Min value of 1.
Number of columns for this DashboardLayout. Min value of 1.
Groups multiple DashboardLayout(s) together.
The info in the definition table is used by other tables extensively. Almost every table in the database links to definition. Almost all links to this table will be to a DefNum. Using the DefNum, you can find any of the other fields of interest, usually the ItemName. Make sure to look at the Defs class to see how the definitions are used. Loaded into memory ahead of time for speed. Some types of info such as operatories started out life in this table, but then got moved to their own table when more complexity was needed.
Primary key.
Enum:DefCat
Definition Category. Go to the definition setup window in the program to see how each of these categories is used.
0- Colors to display in Account module.
1- Adjustment types.
2- Appointment confirmed types.
3- Procedure quick add list for appointments.
4- Billing types.
5- Not used.
6- Not used.
7- Not used.
8- Medical notes for quick paste.
9- No longer used
10- Payment types.
11- Procedure code categories.
12- Progress note colors.
13- Statuses for recall, unscheduled, and next appointments.
14- Service notes for quick paste.
15- Discount types.
16- Diagnosis types.
17- Colors to display in the Appointments module.
18- Image categories.
19- Quick add notes for the ApptPhoneNotes, which is getting phased out.
20- Treatment plan priority names.
21- Miscellaneous color options.
22- Colors for the graphical tooth chart.
23- Categories for the Contact list.
24- Categories for Letter Merge.
25- Types of Schedule Blockouts.
26- Categories of procedure buttons in Chart module
27- Types of commlog entries.
28- Categories of Supplies
29- Types of unearned income used in accrual accounting.
30- Prognosis types.
31- Custom Tracking, statuses such as 'review', 'hold', 'riskmanage', etc.
32- PayType for claims such as 'Check', 'EFT', etc.
33- Categories of priorities for tasks.
34- Categories for fee override colors.
35- Provider specialties. General, Hygienist, Pediatric, Primary Care Physician, etc.
36- Reason why a claim proc was rejected. This must be set on each individual claim proc.
37- Procedure quick charge list for patient accounts.
38- Insurance verification status such as 'Verified', 'Unverified', 'Pending Verification'.
39- Regions that clinics can be assigned to.
Order that each item shows on various lists. 0-indexed.
Each category is a little different. This field is usually the common name of the item.
This field can be used to store extra info about the item.
Some categories include a color option.
If hidden, the item will not show on any list, but can still be referenced.
When some objects are deleted, we sometimes need a way to track them for synching purposes. Other objects already have fields for IsHidden or PatStatus which track deletions just fine. Those types of objects will not use this table.
Primary key.
Foreign key to a number of different tables, depending on which type it is.
Enum:DeletedObjectType
0
1 - A schedule object. Only provider schedules are tracked for deletion.
2 - When a recall row is deleted, this records the PatNum for which it was deleted.
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Deprecated
Updated any time the row is altered in any way.
A deposit slip. Contains multiple insurance and patient checks.
Primary key.
The date of the deposit.
User editable. Usually includes name on the account and account number. Possibly the bank name as well.
Total amount of the deposit. User not allowed to directly edit.
Short description to help identify the deposit.
Spell check custom dictionary, shared by the whole office.
Primary key.
No space or punctuation allowed.
Each row is one disease that one patient has. Now called a problem in the UI. Must have a DiseaseDefNum.
Primary key.
FK to patient.PatNum
FK to diseasedef.DiseaseDefNum. The disease description is in that table.
Any note about this disease that is specific to this patient.
The last date and time this row was altered. Not user editable. Will be set to NOW by OD if this patient gets an OnlinePassword assigned.
Enum:ProblemStatus Active=0, Resolved=1, Inactive=2.
0=Active, 1=Resolved, 2=Inactive
0
1
2
Date that the disease was diagnosed. Can be minval if unknown.
Date that the disease was set resolved or inactive. Will be minval if still active. ProbStatus should be used to determine if it is active or not.
FK to snomed.SnomedCode. Used in EHR CCD export/import only. Must be one of the following SNOMED codes:
Problem/Concern (55607006 or blank), Finding (404684003), Complaint (409586006), Dignosis (282291009), Condition (64572001), FunctionalLimitation (248536006), Symptom (418799008).
Enum:FunctionalStatus Used to export EHR CCD functional status and/or cognitive status information only.
Used in EHR to export patient functional and cognitive statuses on CCD documents.
0 - Default value. If not using EHR, then each diseasedef will use this value.
1 - This clinical statement contains details of an evaluation or assessment of a patient’s cognitive status. The evaluation may include assessment of a patient's mood, memory, and ability to make decisions. The statement will include, if present, supporting caregivers, non-medical devices, and the time period for which the evaluation and assessment were performed.
2 - A cognitive status problem observation is a clinical statement that describes a patient's cognitive condition, findings or symptoms. Examples of cognitive problem observations are inability to recall, amnesia, dementia, and aggressive behavior. A cognitive problem observation is a finding or medical condition. This is different from a cognitive result observation, which is a response to a question that provides insight to the patient's cognitive status. It reflects findings that provide information about a medical condition, while a result observation reflects responses to questions in a cognitive test or those that provide information about a person's judgement, comprehension ability, and response speed.
3 - This clinical statement represents details of an evaluation or assessment of a patient’s functional status. The evaluation may include assessment of a patient's language, vision, hearing, activities of daily living, behavior, general function, mobility and self-care status. The statement will include, if present, supporting caregivers, non-medical devices, and the time period for which the evaluation and assessment were performed.
4 - A functional status problem observation is a clinical statement that represents a patient’s functional perfomance and ability.
A list of diseases that can be assigned to patients. Cannot be deleted if in use by any patients.
Primary key.
.
0-based. The order that the diseases will show in various lists.
If hidden, the disease will still show on any patient that it was previously attached to, but it will not be available for future patients.
The last date and time this row was altered. Not user editable.
FK to icd9.Icd9Code. Example: 250.00 for diabetes. User not allowed to enter any string anymore, must pick one from the Icd9Code table. Some may exist in the databases without linking to a valid Icd9Code table entry if the ConvertDatabase could not find the user typed string in the list of valid Icd9Codes.
FK to snomed.SnomedCode. Example: 230572002 for diabetic neuropathy. User not allowed to enter any string anymore, must pick from the Snomed table. Some may exist in the databases without linking to a valid Snomed table entry if the ConvertDatabase could find the user typed string in the list of valid SnomedCodes.
FK to icd10.Icd10Code. Example: E10.1 for 'Type 1 diabetes mellitus with ketoacidosis'. User not allowed to enter any string anymore, must pick one from the Icd10Code table.
Allows customization of which fields display in various lists and grids. For now, the only grid is ProgressNotes. Will also eventually let users set column widths and translate titles. For now, the selections are the same for all computers.
Primary key.
This is the internal name that OD uses to identify the field within this category. This will be the default description if the user doesn't specify an alternate.
Order to display in the grid or list. Every entry must have a unique itemorder.
Optional alternate description to display for field. Can be in another language. For the ortho category, this is the 'key', since InternalName is blank.
For grid columns, this lets user override the column width. Especially useful for foreign languages.
Enum:DisplayFieldCategory If category is 0, then this is attached to a ChartView.
0- This indicates progress notes.
1
2- Family module.
3
4
5
6
7
8
9
10- Account module patient information
11
12
13
14
FK to chartview.ChartViewNum. 0 if attached to a category.
Newline delimited string which contains the selectable options in combo box dropdowns. Specifically for the Ortho chart.
One item is needed for each field on a claimform.
Primary key.
.
.
.
Enum: DisplayReportCategory. 0 - ProdInc; 1 - Daily, 2 - Monthly, 3 - Lists, 4 - PublicHealth, 5 - ArizonaPrimaryCare.
.
A dental supply or office supply item that has been dispensed.
Primary key.
FK to supply.SupplyNum
FK to provider.ProvNum
Quantity given out.
Notes on the dispensed supply.
Represents a single document in the images module.
Primary key.
Description of the document.
Date/time created.
FK to definition.DefNum. Categories for documents.
FK to patient.PatNum. The document will be located in the patient folder of this patient.
The name of the file. Does not include any directory info.
Enum:ImageType eg. document, radiograph, photo, file
The type of image for images module.
0- Includes scanned documents and screenshots.
1
2
3- For instance a Word document or a spreadsheet. Not an image.
4- For xray mount sets.
True if flipped horizontally. A vertical flip would be stored as a horizontal flip plus a 180 rotation.
Only allowed 0,90,180, and 270.
Incomplete. An optional list of tooth numbers separated by commas. The tooth numbers will be in American format and must be processed for display. When displayed, dashes will be used for sequences of 3 or more tooth numbers.
.
True if the signature is in Topaz format rather than OD format.
The encrypted and bound signature in base64 format. The signature is bound to the byte sequence of the original image.
Crop rectangle X in original image pixel coordinates. May be negative.
Crop rectangle Y in original image pixel coordinates. May be negative.
Crop rectangle Width in original image pixel coordinates. May be zero if no cropping. May be greater than original image width.
Crop rectangle Height in original image pixel coordinates. May be zero if no cropping. May be greater than original image height.
The lower value of the "windowing" (contrast/brightness) for radiographs. Default is 0. Max is 255.
The upper value of the "windowing" (contrast/brightness) for radiographs. Default is 0(no windowing). Max is 255.
FK to mountitem.MountItemNum. If set, then this image will only show on a mount, not in the main tree. If set to 0, then no mount item is associated with this document.
Date/time last altered.
The raw file data encoded as base64. Only used if there is no AtoZ folder.
Thumbnail encoded as base64. Only present if not using AtoZ folder. 100x100 pixels, jpg, takes around 5.5k.
For storing docs/images in database. This table is for the various miscellaneous documents that are not in the normal patient subfolders.
Primary key.
Date created.
The name the file would have if it was not in the database. Does not include any directory info.
DocumentMisc rows that store the contents of the UpdateFiles folder will set this column to an "item order".
Due to severe limitations with sending large amounts of data all in one query we are going to store the UpdateFiles over several rows.
The FileName column will store the order of which the UpdateFiles need to go back into when we try to reconstruct it.
Enum:DocumentMiscType Corresponds to the same subfolder within AtoZ folder. eg. UpdateFiles
More types will be added to correspond to most of the subfolders inside the AtoZ folder. But no point adding them until we implement.
0- There will just be zero or one row of this type. It will contain a zipped archive.
1- Entries with this doc type hold segments of the UpdateFiles RawBase64 zip contents that will be pieced back together later.
Storing the entire Update Files contents into one row was exceeding MySQL max_allowed_packet limitations so this new type is required.
Each row of this type will contain ~1MB of RawBase64 data.
The raw file data encoded as base64.
Manufacturer of a vaccine.
Primary key.
.
An abbreviation of the manufacturer name.
And other kinds of units. We will only prefill this list with units needed for the tests. Users would have to manually add any other units.
Primary key.
Example ml, capitalization not critical. Usually entered as lowercase except for L.
Example milliliter.
A message that will show on certain patient statements when printing bills. Criteria must be met in order for the dunning message to show.
Primary key.
The actual dunning message that will go on the patient bill.
FK to definition.DefNum.
Program forces only 0,30,60,or 90.
Enum:YN Set Y to only show if insurance is pending.
Unknown,Yes, or No.
0
1
2
A message that will be copied to the NoteBold field of the Statement.
An override for the default email subject.
An override for the default email body. Limit in db: 16M char.
The number of days before an account reaches AgeAccount to include this dunning message on statements.
Example: If DaysInAdvance=3 and AgeAccount=90, an account that is 87 days old when bills are generated will include this message.
Keeps track of account details of e-statements per clinic.
Primary key.
FK to clinic.ClinicNum
The account number for the e-statement client.
The user name for this particular account.
The password for this particular account.
EHR education resource. Only one of the 3 FK fields will be used at a time (DiseaseDefNum, MedicationNum, or LabResultID). The other two will be blank. Displays a clickable URL if the patient meets certain criteria.
Primary key.
FK to diseasedef.DiseaseDefNum. This now also handles ICD9s and Snomeds via the entry in DiseaseDef.
FK to medication.MedicationNum.
FK to labresult.TestID.
Used for display in the grid.
String, example <43. Must start with < or > followed by int. Only used if FK LabResultID is used.
.
FK to ehrmeasureevent.CodeValueResult when ehrmeasureevent.EventType=EhrMeasureEventType.TobaccoUseAssessed (8).
Used in EHR only. Stores an entry indicating whether the office has accepted or denied the amendment. Amendments can be verbal or written requests to add information to the patient's record. The provider can either scan / import the document or create a detailed description that indicates what was verbally requested or where the document can be found.
Primary key.
FK to patient.PatNum
Enum:YN Y=accepted, N=denied, U=requested.
Unknown,Yes, or No.
0
1
2
Description or user-defined location of the amendment. Max length 2000.
Enum:AmendmentSource Patient, Provider, Organization, Other. Required.
Source Enumeration
0
1
2
3
User-defined name of the amendment source. For example, a patient name or organization name. Max length 2000.
The file is stored in the A-Z folder in 'EhrAmendments' folder. This field stores the name of the file. The files are named automatically based on Date/time along with EhrAmendmentNum for uniqueness. This meets the requirement of "appending" to the patient's record.
The raw file data encoded as base64. Only used if there is no AtoZ folder. This meets the requirement of "appending" to the patient's record.
Date and time of the amendment request.
Date and time of the amendment acceptance or denial. If there is a date here, then the IsAccepted will be set.
Date and time of the file being appended to the amendment or a link provided.
An EHR appointment observation. Needed for syndromic surveillance messaging. Each syndromic message requires at least one observation.
Primary key.
FK to appointment.AptNum. There can be an unlimited number of observations per appointment.
Used in HL7 OBX-3 for syndromic surveillance.
Enum:EhrAptObsType . Used in HL7 OBX-2 for syndromic surveillance. Identifies the data type for the observation value in ValReported.
0 - This should only be used with EhrAptObsIdentifier.TreatFacilityLocation.
1
2
3
4
The value of the observation. The value format must match the ValType. This field could be text, a datetime, a code, etc.. Used in HL7 OBX-5 for syndromic surveillance.
Used in HL7 OBX-6 for syndromic surveillance when ValType is Numeric (otherwise left blank).
When ValType is Coded, then this contains the code system corresponding to the code in ValReported. When ValType is not Coded, then this field should be blank.
Allowed values are LOINC,SNOMEDCT,ICD9,ICD10.
Primary key.
FK to patient.PatNum.
Snomed code describing the type of educational instruction provided. Limited to terms descending from the Snomed 409073007 (Education Hierarchy).
Instructions provided to the patient.
This field does not help much with care plan instructions, but will be more helpful for other types of care plans if we expand in the future (for example, planned procedures). We also saw examples where this date was included in the human readable part of a CCD, but not in the machine readable part.
For EHR module, lab request that contains all required fields for HL7 Lab Reporting Interface (LRI).
Primary key.
FK to patient.PatNum. PID-3.1
Always RE unless importing from outside sources.
Placer order number assigned to this lab order, usually assigned by the dental office. Not the same as EhrLabNum, but similar. OBR.2.1 and ORC.2.1.
Usually empty, only used if PlacerOrderNum+PlacerUniversalID cannot uniquely identify the lab order. OBR.2.2 and ORC.2.2.
Usually OID root that uniquely identifies the context that makes PlacerOrderNum globally unique. May be GUID if importing from other sources. OBR.2.3 and ORC.2.3.
Always "ISO", unless importing from other sources. OBR.2.4 and ORC.2.4
Filler order number assigned to this lab order, usually assigned by the laboratory. Not the same as EhrLabNum, but similar. OBR.3.1 and ORC.3.1.
Usually empty, only used if FillerOrderNum+FillerUniversalID cannot uniquely identify the lab order. OBR.3.2 and ORC.3.2.
Usually OID root that uniquely identifies the context that makes FillerOrderNum globally unique. May be GUID if importing from other sources. OBR.3.2 and ORC.3.3.
Always "ISO", unless importing from other sources. OBR.3.4 and ORC.3.4
[0..1] May be empty. Placer group number assigned to this lab order, usually assigned by the dental office. ORC.4.1.
[0..1] Usually empty, only used if PlacerGroupNum+PlacerUniversalID cannot uniquely identify the Group Num. ORC.4.2.
[0..1] Usually OID root that uniquely identifies the context that makes PlacerGroupNum globally unique. May be GUID if importing from other sources. ORC.4.3.
[0..1] Always "ISO", unless importing from other sources. ORC.4.4
May be provnum or NPI num or any other num, when combined with OrderingProviderIdAssigningAuthority should uniquely identify the provider. ORC.12.1
ORC.12.2
ORC.12.3
Middle names or initials therof. ORC.12.4
Example: JR or III. ORC.12.5
Example: DR, Not MD, MD would be stored in an optional field that was not implemented called OrderingProviderDegree. ORC.12.6
Usually empty, "The value of [this field] reflects a local code that represents the combination of [the next two fields]." ORC.12.9.1
ISO compliant OID that represents the organization that assigned the unique provider ID. ORC.12.9.2
Always "ISO", unless importing from outside source. ORC.12.9.3
Describes the type of name used. ORC.12.10
Must be value from HL70203 code set, see note at bottom of EhrLab.cs for usage. ORC.12.13
Enumerates the OBR segments within a single message starting with 1. OBR.1
OBR.4.1
Description of UsiId. OBR.4.2
CodeSystem that UsiId came from. OBR.4.3
OBR.4.4
Description of UsiIdAlt. OBR.4.5
CodeSystem that UsiId came from. OBR.4.6
Optional text that describes the original text used to encode the values above. OBR.4.9
Stored as string in the format YYYY[MM[DD[HH[MM[SS]]]]] where bracketed values are optional. When time is not known will be valued "0000". OBR.7.1
May be empty. Stored as string in the format YYYY[MM[DD[HH[MM[SS]]]]] where bracketed values are optional. OBR.8.1
OBR.11
Date Time that the result was stored or last updated. Stored in the format YYYYMMDDHHmmss. Required to be accurate to the second. OBR.22.1
OBR.25
OBR.26.1.1
Description of ParentObservationId. OBR.26.1.2
CodeSystem that ParentObservationId came from. OBR.26.1.3
OBR.26.1.4
Description of ParentObservationIdAlt. OBR.26.1.5
CodeSystem that ParentObservationIdAlt came from. OBR.26.1.6
Optional text that describes the original text used to encode the values above. OBR.26.1.9
OBR.26.2
Placer order number assigned to this lab order, usually assigned by the dental office. Not the same as EhrLabNum, but similar. OBR.29.1.1.
Usually empty, only used if PlacerOrderNum+PlacerUniversalID cannot uniquely identify the lab order. OBR.29.1.2
Usually OID root that uniquely identifies the context that makes PlacerOrderNum globally unique. May be GUID if importing from other sources. OBR.29.1.3
Always "ISO", unless importing from other sources. OBR.29.1.4
Filler order number assigned to this lab order, usually assigned by the laboratory. Not the same as EhrLabNum, but similar. OBR.29.2.1
Usually empty, only used if FillerOrderNum+FillerUniversalID cannot uniquely identify the lab order. OBR.29.2.2
Usually OID root that uniquely identifies the context that makes FillerOrderNum globally unique. May be GUID if importing from other sources. OBR.29.2.3
Always "ISO", unless importing from other sources. OBR.29.2.4
"Film with patient." Technically a coded value from HL70507. Stored as a bool instead of 7 seperate columns. OBR.49.* is used to set both ListEhrLabResultsHandlingF and ListEhrLabResultsHandlingN. OBR.49.*
"Notify provider when ready." Technically a coded value from HL70507. Stored as a bool instead of 7 seperate columns. OBR.49.* is used to set both ListEhrLabResultsHandlingF and ListEhrLabResultsHandlingN. OBR.49.*
Enumerates the TQ1 segments within a single message starting with 1. TQ1.1
Stored as string in the format YYYY[MM[DD[HH[MM[SS]]]]] where bracketed values are optional. TQ1.7
Stored as string in the format YYYY[MM[DD[HH[MM[SS]]]]] where bracketed values are optional. TQ1.8
This gets set when a provider is logged in with a valid EHR key and then creates a lab.
The PID Segment from the HL7 message used to generate or update the lab order.
For EHR module, lab request that contains all required fields for HL7 Lab Reporting Interface (LRI). OBR.13.*
Primary key.
FK to EhrLab.EhrLabNum.
OBR.13.*.1
Description of ClinicalInfoId. OBR.13.*.2
CodeSystem that ClinicalInfoId came from. OBR.13.*.3
OBR.13.*.4
Description of ClinicalInfoIdAlt. OBR.13.*.5
CodeSystem that ClinicalInfoId came from. OBR.13.*.6
Optional text that describes the original text used to encode the values above. OBR.13.*.7
Used to link images to an EHR lab.
Primary key.
FK to ehrlab.EhrLabNum.
FK to document.DocNum. Will be -1 to indicate that lab is expecting image results.
For EHR module, May either be a note attached to an EhrLab or an EhrLabResult. NTE.*
Primary key.
FK to EhrLab.EhrLabNum. Should never be zero.
FK to EhrLabResult.EhrLabResult. May be 0 if this is a Lab Note, will be valued if this is an Ehr Lab Result Note.
For EHR module, lab result that contains all required fields for HL7 Lab Reporting Interface (LRI). OBX
Primary key.
FK to EhrLab.EhrLabNum.
Enumerates the OBX segments within a single message starting with 1. OBX.1
This field identifies the data type used for ObservationValue (OBX-5). OBX.2
"LOINC shall be used as the standard coding system for this field if an appropriate LOINC code exists. Appropriate status is defined in the LOINC Manual Section 11.2 Classification of LOINC Term Status. If a local coding system is in use, a local code should also be sent to help with identification of coding issues. When no valid LOINC exists the local code may be the only code sent. When populating this field with values, this guide does not give preference to the triplet in which the standard (LOINC) code should appear." OBX.3.1
Description of ObservationIdentifierId. OBX.3.2
CodeSystem that ObservationIdentifierId came from. Should be "LN". OBX.3.3
Probably a LoincCode or empty. OBX.3.4
Description of ObservationIdentifierIdAlt. OBX.3.5
CodeSystem that ObservationIdentifierId came from. Should be "LN" or empty. OBX.3.6
Optional text that describes the original text used to encode the values above. OBX.3.7
OBX.4
OBX.5.1
Description of ObservationValueCodedElementId. OBX.5.2
CodeSystem that ObservationValueCodedElementId came from. OBX.5.3
OBX.5.4
Description of ObservationValueCodedElementIdAlt. OBX.5.5
CodeSystem that ObservationValueCodedElementId came from. OBX.5.6
CWE only. Optional text that describes the original text used to encode the values above. OBX.5.7
Stored as string in the formatYYYY[MM[DD]] for DT and YYYYMMDDHHMMSS for TS. Note: this is the lab result value, not the DT the test was performed. OBX.5.1
Note: this is the lab result value, not the time the test was performed. OBX.5.1
OBX.5.1
OBX.5.2
OBX.5.3
OBX.5.4
OBX.5.1
OBX.5.1
"UCUM (Unified Code for Units of Measure) will be evaluated during the pilot for potential subsequent inclusion. As part of the pilot test, for dimensionless units the UCUM representation could be {string}, e.g., for titer the pilot might use {titer} to test feasibility. When sending units of measure as text, they must be placed in the correct component of OBX-6 (CWE_CRE.9)." OBX.6.1
Description of UnitsId. OBX.6.2
CodeSystem that UnitsId came from. Should be "UCUM". OBX.6.3
OBX.6.4
Description of UnitsIdAlt. OBX.6.5
CodeSystem that UnitsId came from. OBX.6.6
Optional text that describes the original text used to encode the values above. OBX.6.7
"Guidance: It is not appropriate to send the reference range for a result in an associated NTE segment. It would be appropriate to send additional information clarifying the reference range in an NTE associated with this OBX-" OBX.7
Comma Delimited list of Abnormal Flags using HL70078 enum values. OBX.8.*
Coded status of result. OBX.11
Stored as string in the format YYYYMMDD[HH[MM[SS]]]. "For specimen based test, if it is valued it must be the same as SPM-17.
If SPM-17 is present and relates to the same observation, then OBX-14 must be within the DR range." OBX.14.1
Stored as string in the format YYYYMMDD[HH[MM[SS]]]. "Be as precise as appropriate and available." OBX.19.1
OBX.23.1
OBX.23.6.1
The Assigning Authority component is used to identify the system, application, organization, etc. that assigned the ID in component 10. OBX.23.6.2
Should always be "ISO", unless importing. OBX.23.6.3
OBX.23.7
OBX.23.10
OBX.24.1.1
OBX.24.2
OBX.24.3
USPS Alpha State Codes. OBX.24.4
OBX.24.5
Should be the three letter Alpha Code derived from ISO 3166 alpha-3 code set. http://www.nationsonline.org/oneworld/country_code_list.htm OBX.24.6
OBX.24.7
Should be based on FIPS 6-4. We are just importing the string as is. OBX.24.8
May be provnum or NPI num or any other num, when combined with MedicalDirectorIdAssigningAuthority should uniquely identify the provider. OBX.25.1
OBX.25.2
OBX.25.3
Middle names or initials therof. OBX.25.4
Example: JR or III. OBX.25.5
Example: DR, Not MD, MD would be stored in an optional field that was not implemented called MedicalDirectorDegree. OBX.25.6
Usually empty, "The value of [this field] reflects a local code that represents the combination of [the next two fields]." OBX.25.9.1
ISO compliant OID that represents the organization that assigned the unique provider ID. OBX.25.9.2
Always "ISO", unless importing from outside source. OBX.25.9.3
Describes the type of name used. OBX.25.10
Must be value from HL70203 code set, see note at bottom of EhrLab.cs for usage. OBX.25.13
For EHR module, copy results to... that contains all required fields for HL7 Lab Reporting Interface (LRI).
Primary key.
FK to EhrLab.EhrLabNum.
May be provnum or NPI num or any other num, when combined with CopyToIdAssigningAuthority should uniquely identify the provider. OBR.28.1
OBR.28.2
OBR.28.3
Middle names or initials therof. OBR.28.4
Example: JR or III. OBR.28.5
Example: DR, Not MD, MD would be stored in an optional field that was not implemented called CopyToDegree. OBR.28.6
Usually empty, "The value of [this field] reflects a local code that represents the combination of [the next two fields]." OBR.28.9.1
ISO compliant OID that represents the organization that assigned the unique provider ID. OBR.28.9.2
Always "ISO", unless importing from outside source. OBR.28.9.3
Describes the type of name used. OBR.28.10
Must be value from HL70203 code set, see note at bottom of EhrLab.cs for usage. OBR.28.13
For EHR module, the specimen upon which the lab orders were/are to be performed on. NTE.*
Primary key.
FK to EhrLab.EhrLabNum. May be 0.
Enumerates the SPM segments within a single message starting with 1. SPM.1
SPM.2
Description of SpecimenTypeId. SPM.3
CodeSystem that SpecimenTypeId came from. SPM.4
SPM.5
Description of SpecimenTypeIdAlt. SPM.6
CodeSystem that SpecimenTypeId came from. SPM.7
Optional text that describes the original text used to encode the values above. SPM.8
Stored as string in the format YYYYMMDD[HH[MM[SS]]] where bracketed values are optional. When time is not known will be valued "0000". SPM.17.1.1
May be empty. Stored as string in the format YYYYMMDD[HH[MM[SS]]] where bracketed values are optional. SPM.17.2.1
For EHR module, the specimen upon which the lab orders were/are to be performed on. SPM.24
Primary key.
FK to EhrLabSpecimen.EhrLabSpecimenNum.
SPM.24.1
Description of SpecimenConditionId. SPM.24.2
CodeSystem that SpecimenConditionId came from. SPM.24.3
SPM.24.4
Description of SpecimenConditionIdAlt. SPM.24.5
CodeSystem that SpecimenConditionId came from. SPM.24.6
Optional text that describes the original text used to encode the values above. SPM.24.7
For EHR module, the specimen upon which the lab orders were/are to be performed on. (May Repeat) SPM.21
Primary key.
FK to EhrLab.EhrLabNum. May be 0.
SPM.21.1
Description of SpecimenRejectReasonId. SPM.21.2
CodeSystem that SpecimenRejectReasonId came from. SPM.21.3
SPM.21.4
Description of SpecimenRejectReasonIdAlt. SPM.21.5
CodeSystem that SpecimenRejectReasonId came from. SPM.21.6
Optional text that describes the original text used to encode the values above. SPM.21.7
For EHR module, automate measure calculation.
Primary key.
Enum:EhrMeasureType
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19- Summary of care record for transition or referral.
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
0-100, -1 indicates not entered yet.
0-100, -1 indicates not entered yet.
Stores events for EHR that are needed for reporting purposes.
Primary key.
Date and time of measure event.
Enum:EhrMeasureEventType .
0
1
2
3
4, For one office visit.
5
6
7 - When Summary of Care is provided in one of the following ways: Printed, exported, or sent to the patient portal (for referrals To doctors).
8
9
10
11
12
13
14 - When a Summary of Care is provided to a doctor electronically in one of the following ways: Exported (we assume they send another way), or a Direct message is sent with Summary of Care attached.
15
16
17
18
19
20
21
22
FK to patient.PatNum
Used to provide extra information about a measure event. Not typically used.
The code for this event. Example: TobaccoUseAssessed can be one of three LOINC codes: 11366-2 History of tobacco use Narrative, 68535-4 Have you used tobacco in the last 30 days, and 68536-2 Have you used smokeless tobacco product in the last 30 days.
The code system name for the event code. Examples: LOINC, SNOMEDCT.
The code for this event result. Example: A TobaccoUseAssessed event type could result in a finding of SNOMED code 8517006 - Ex-smoker (finding). There are 54 allowed tobacco user/non-user codes, and the user is allowed to select from any SNOMED code if they wish, for a TobaccoUseAssessed event.
The code system for this event result. Example: SNOMEDCT,
A foreign key to a table associated with the EventType. 0 indicates not in use. Used to properly count denominators for specific measure types.
How eager a tobacco user is to quit using tobacco. Scale of 1-10.
The date the patient started using tobacco.
For EHR module, these are all the items 'not performed' on patients. Each row will link to the ehrcode table to retrieve relevant data. To join this table to the ehrcode table you must join on CodeValue and CodeSystem. Some items will have associated reasons attached to specify why it was not performed. Those reasons will also be defined in the ehrcode table, so it may be necessary to join with that table again for the data relevant to the reason.
Primary key.
FK to patient.PatNum.
FK to provider.ProvNum.
FK to ehrcode.CodeValue. This code may not exist in the ehrcode table, it may have been chosen from a bigger list of available codes. In that case, this will be a FK to a specific code system table identified by the CodeSystem column. The code for this item from one of the code systems supported. Examples: 90656 or 442333005.
FK to codesystem.CodeSystemName. The code system name for this code. Possible values are: CPT, CVX, LOINC, SNOMEDCT.
FK to ehrcode.CodeValue. This code may not exist in the ehrcode table, it may have been chosen from a bigger list of available codes. In that case, this will be a FK to a specific code system table identified by the CodeSystem column. The code for the reason the item was not performed from one of the code systems supported. Examples: 182856006 or 419808006.
FK to codesystem.CodeSystemName. The code system name for this code. Possible value is: SNOMEDCT.
Relevant notes for this not performed item. Just in case users want it, does not get reported in EHR quality measure reporting. Max length 4000.
The date and time this item was created. Can be edited to the date and time the item actually occurred.
Patient information needed for EHR. 1:1 relation to patient table. They are stored here because we want to try to keep the size of the patient table a bit smaller.
FK to patient.PatNum. Also the primary key for this table. Always one to one relationship with patient table. A new patient might not have an entry here until needed.
Mother's maiden first name. Exported in HL7 PID-6 for immunization messages.
Mother's maiden last name. Exported in HL7 PID-6 for immunization messages.
Enum:YN Indicates whether or not the patient wants to share their vaccination information with other EHRs. Used in immunization export.
Unknown,Yes, or No.
0
1
2
The abbreviation for the state for the patient's MedicaidID.
Displayed in patient information window, used to validate the length of the MedicaidID.
Used to store and track Ehr Provider Keys. There can be multiple EhrProvKeys per provider.
Primary key.
FK to patient.PatNum. Only used by HQ for generating keys for customers. Will always be 0 for non-HQ users.
The provider LName.
The provider FName.
The key assigned to the provider
Usually 1. Can be less, like .5 or .25 to indicate possible discount is justified.
Any notes that the tech wishes to include regarding this situation.
Required when generating a new provider key. It is used to determine annual EHR eligibility. Format will always be YY.
Also used by OD customer support to store and track Ehr Quarterly Keys for customers.
Primary key.
Example 11
Example 2
The customer must have this exact practice name entered in practice setup.
The calculated key value, tied to year, quarter, and practice name.
FK to patient.PatNum. Always zero for customer databases. When used by OD customer support, this is the customer num.
Any notes that the tech wishes to include regarding this situation.
Can also be a CCR. Received CCDs/CCRs are stored both here and in emailattach. Sent CCDs are not saved here, but are only stored in emailattach. To display a saved Ccd, it is combined with an internal stylesheet.
Primary key.
FK to patient.PatNum.
Date that this Ccd was received.
The xml content of the received text file.
FK to emailattach.EmailAttachNum. The Direct email attachment where the CCD xml message came from. Needed to sync PatNum with the email PatNum if the PatNum is changed on the email.
CDS Triggers when referenced in UI. Used for CDS automation. May later be expanded to replace "automation."
Primary key.
Short description to describe the trigger.
Age, Gender. Can be multiple age entries but only one gender entry as coma delimited values. Example: " age,>18 age,<=55 gender,male"
List of loinc codes padded with spaces.
Examples: Height,>=72 Weight<,100 BMI= (BP currently not implemented.)
The reccomended course of action for this intervention.
Bibliographic information, not a URL.
Requires One, OneOfEachCategory, TwoOrMore, or All for trigger to match.
Corresponds to the electid table in the database. Helps with entering elecronic/payor id's as well as keeping track of the specific carrier requirements. Only used by the X12 format.
Primary key.
aka Electronic ID. A simple string.
Used when doing a search.
True if medicaid. Then, the billing and treating providers will have their Medicaid ID's attached.
Integers separated by commas. Each long represents a ProviderSupplementalID type that is required by this insurance. Usually only used for BCBS or other carriers that require supplemental provider id's. Even if we don't put the supplemental types in here, the user can still add them. This just helps by doing an additional check for known required types.
Any comments. Usually includes enrollment requirements and descriptions of how to use the provider id's supplied by the carrier because they might call them by different names.
Stores all the connection info for one email address. Linked to clinic by clinic.EmailAddressNum. Sends email based on patient's clinic.
Primary key.
For example smtp.gmail.com
.
Password associated with this email address. Encrypted when stored in the database and decrypted before using.
Usually 587, sometimes 25 or 465.
.
The email address of the sender as it should appear to the recipient.
For example pop.gmail.com
Usually 110, sometimes 995.
FK to userod.UserNum. Associates a user with this email address. A user may only have one email address associated with them.
Can be 0 if no user is associated with this email address.
Keeps track of one file attached to an email. Multiple files can be attached to an email using this method.
Primary key.
FK to emailmessage.EmailMessageNum. 0 if EmailTemplateNum is set, otherwise must have a value.
The name of the file that shows on the email. For example: tooth2.jpg.
The actual file is stored in the A-Z folder in EmailAttachments. This field stores the name of the file. The files are named automatically based on Date/time along with a random number. This ensures that they will be sequential as well as unique.
FK to emailtemplate.EmailTemplateNum. 0 if EmailMessageNum is set, otherwise must have a value.
A manually created autograph that can be inserted at the bottom of an outgoing email.
Primary key.
Description of the autograph. This is what the user sees when picking an autograph.
Email address(es) that this autograph is associated with. An autograph can be associated with multiple addresses.
The actual text of the autograph.
Stores both sent and received emails, as well as saved emails which are still in composition.
Primary key.
FK to patient.PatNum. The patient whom is sending this message. May be sent by a guarantor on behalf of a dependent.
Either a single email address or a comma-delimited list of addresses.
For web mail messages, this will not be an email address. Instead, it will be the name of the corresponding patient or provider.
Valid email address. For web mail messages, this will not be an email address. Instead, it will be the name of the corresponding patient or provider.
Subject line.
Body of the email
Date and time the message was sent. Automated at the UI level.
Enum:EmailSentOrReceived Neither, Received, Read, WebMailReceived, WebMailRecdRead, WebMailSent, WebMailSentRead, SentDirect, ReceivedEncrypted, ReceivedDirect, ReadDirect, AckDirectProcessed, AckDirectNotSent
0=Neither, 1=Sent, 2=Received, 3=Read, 4=WebMailReceived, 5=WebMailRecdRead, 6=WebMailSent, 7=WebMailSentRead, 8=SentDirect, 9=ReceivedEncrypted, 10=ReceivedDirect, 11=ReadDirect, 12=AckDirectProcessed, 13=AckDirectNotSent
0 Unsent
1 For regular email only.
2 For regular email only. Shows in Inbox. Once it's attached to a patient it will also show in Chart module.
3 For received regular email only. Has been read. Shows in Inbox. Once it's attached to a patient it will also show in Chart module.
4 WebMail received from patient portal. Shows in OD Inbox and in pt Chart module. Also shows in PP as a sent and unread WebMail msg.
5 WebMail received from patient portal that has been marked read. Shows in the OD Inbox and in pt Chart module. Also shows in PP as a sent and read WebMail.
6 Webmail sent from provider to patient. Shows in Chart module and also shows in PP as a received and unread WebMail msg.
7 Webmail sent from provider to patient and read by patient. Shows in Chart module and also shows in PP as a received and read WebMail msg.
8 Sent and encrypted using Direct. Required for counting messages in EHR modules g.1 and g.2, Automated Measure Calculation.
9 Received email matches application/pkcs7-mime mime type, but could not be decrypted. Shows in Inbox. The user can decrypt from FormEmailMessageEdit. If the user has the correct private key, then the status will change to Read.
10 Received email matches application/pkcs7-mime mime type and has been decrypted. Shows in Inbox. Once it's attached to a patient it will also show in Chart module. When viewing inside of FormEmailMessageEdit, the XML body of the message shows as xhtml instead of raw. Still need to work on supporting collapsing and expanding, as required for meaningful use in 2014.
11 For received direct messages. Has been read. Shows in Inbox. Once it's attached to a patient it will also show in Chart module. When viewing inside of FormEmailMessageEdit, the XML body of the message shows as xhtml.
12 Message Delivery Notification (MDN) processed. Always outgoing. Indicates to sender that a Direct message was received and decrypted, but not necessarily displayed for the user. Does not show in patient Chart. Attached to the same patient as the incoming email which caused the MDN to be sent.
13 Message Delivery Notification (MDN) created and saved to db, but not sent yet. Does not show in patient Chart. Attached to the same patient as the incoming email which caused the MDN to be created.
This status is used to try resending MDNs if they fail to send. The MDN is saved to the db so the unset MDNs can be found easily, and also because MDNs are hard to rebuild again later.
Copied from the EmailAddress.EmailUsername field when a message is received into the inbox.
Similar to the ToAddress, except the ToAddress could contain multiple recipient addresses
or group email address instead. The recipient address helps match the an email to a particular EmailAddress.
For incomming email only. The raw email contents for encrypted email or email which we had trouble parsing.
For unencrypted (clear text) email, this will be similar to the raw email except the attachments will be dissolved to prevent db bloating.
Can be used for debugging if there are any issues parsing the content.
This will bloat the database a little bit, but we need it for now to ensure our inbox is working in real world scenarios.
Might be blank for a few emails downloaded immediately after the email inbox feature was created.
FK to provider.ProvNum. The provider to whom this message was sent or from whom this message was sent. Only used when EmailSentOrReceived is WebMailReceived, WebMailRecdRead, WebMailSent, or WebMailSentRead. Will be 0 if not a web mail message.
FK to patient.PatNum. Represents the patient to whom this email message is addressed, or from whom it is being sent on behalf of. If guarantor is sending on behalf of self then this field will match PatNum field.
Single address or comma-delimited list of addresses. User may enter multiple email addresses for visible carbon copies.
Single email address or comma-delimited list of addresses. User may enter multiple email addresses for blind carbon copies.
Enum:HideInFlags None=0,EmailInbox=1. Indicates which places in the program that should not show this email message.
0 - None
1 - Hide email from inbox view
Used to track which email messages have been downloaded into the inbox for a particular recipient address.
Not linked to the email message itself because no link is needed.
If we decide to add a foreign key to a EmailMessage later, we should consider what do to when an email message is deleted (set the foreign key to 0 perhaps).
Primary key.
The unique id for the associated EmailMessage.
Copied from the EmailAddress.EmailUsername field when a message is received into the inbox.
Similar to the ToAddress of the EmailMessage, except the ToAddress could contain multiple recipient addresses
or group email address instead. The recipient address helps match the EmailMessageUid to a particular EmailAddress.
A template email which can be used as the basis for a new email.
Primary key.
Default subject line.
Body of the email
Different than Subject. The description of the email template. This is what the user sees in the list.
An employee at the dental office.
Primary key.
Employee's last name.
First name.
Middle initial or name.
If hidden, the employee will not show on the list.
This is just text used to quickly display the clockstatus. eg Working,Break,Lunch,Home, etc.
The phone extension for the employee. e.g. 101,102,etc. This field is only visible for user editing if the pref DockPhonePanelShow is true (1).
Used to store the payroll identification number used to generate payroll reports. ADP uses six digit number between 000051 and 999999.
Most insurance plans are organized by employer. This table keeps track of the list of employers. The address fields were added at one point, but I don't know why they don't show in the program in order to edit. Nobody has noticed their absence even though it's been a few years, so for now we are just using the EmpName and not the address.
Primary key.
Name of the employer.
.
Second line of address.
.
2 char in the US.
.
Includes any punctuation.
Mostly used for EHR. This rigorously records encounters using rich automation, so that reporting can be easy and meaningful. Encounters can also be tracked separately using billable procedures. In contrast, encounters in this table are not billable. There can be multiple encounters at one appointment because there can be different types.
Primary key.
FK to patient.PatNum.
FK to provider.ProvNum.
FK to ehrcode.CodeValue. This code may not exist in the ehrcode table, it may have been chosen from a bigger list of available codes. In that case, this will be a FK to a specific code system table identified by the CodeSystem column. The code for this item from one of the code systems supported. Examples: 185349003 or 406547006.
FK to codesystem.CodeSystemName. This will determine which specific code system table the CodeValue is a FK to. We only allow the following CodeSystems in this table: CDT, CPT, HCPCS, and SNOMEDCT.
Max length 2000.
Date the encounter occurred
One file attached to an eob (claimpayment). Multiple files can be attached to an eob using this method. Order shown will be based on date/time scanned.
Primary key.
FK to claimpayment.ClaimPaymentNum
Date/time created.
The file is stored in the A-Z folder in 'EOBs' folder. This field stores the name of the file. The files are named automatically based on Date/time along with EobAttachNum for uniqueness.
The raw file data encoded as base64. Only used if there is no AtoZ folder.
Used for property tax tracking.
Primary key.
Short description, need not be very unique.
Must be unique among all pieces of equipment. Auto-generated 3 char alpha numeric gives 1.5M unique serial numbers. Zero never part of autogenerated serial number.
Limit 2 char.
Date when this corporation obtained the equipment. Always has a valid value.
Normally 01-01-0001 if equipment still in possession. Once sold, a date will be present.
.
.
Freeform text.
Security uses this date to lock older entries from accidental deletion. Date, no time.
FK to provider.ProvNum. Only filled in if equipment has been checked out, otherwise 0.
Only used when equipment has been checked out.
Only used when equipment has been checked out. Defaults to same day as check out.
Any notes regarding the equipment checked out.
Status of the equipment.
Primary key.
FK to patient.PatNum.
Holds up to 16MB.
Automatically updated by MySQL every time a row is added or changed.
FK to provider.ProvNum. The provider that the prescription request was sent by or on behalf of.
Communication item from OD Cloud to workstation.
Primary key.
Service which this signal applies to. Defined by eServiceCodes.
Category defined by ReasonCodeCategories. Can be zero if no grouping is necessary per a given service. Stored as an int for forward compatibility.
The reason for the eServiceSignal. This code is used to determine what actions to take and how to process this message.
It is a function of ReasonCategory. It will most likely be defined by an enum that lives on HQ-only closed source.
.
Human readable description of what this signal means, or a message for the user.
Time signal was sent.
Used to store serialized data that can be used for processing this signal.
After a message has been processed or acknowledged this is set true. Not currently used for heartbeat or service status signals.
One electronic transaction. Typically, one claim or response. Or one benefit request or response. Is constantly being expanded to include more types of transactions with clearinghouses. Also stores printing of paper claims. Sometimes stores a copy of what was sent.
Primary key.
The date and time of the transaction.
FK to clearinghouse.ClearinghouseNum . Can be 0 if no clearinghouse was involved.
Enum:EtransType
The _CA of some types should get stripped off when displaying to users.
0 X12-837. Should we differenitate between different kinds of 837s and 4010 vs 5010?
1 claim
2 Canada. Type 01
3 Renaissance
4 Canada. Type 11
5 Canada. Type 21
6 Canada. Type 08
7 Canada. Type 18. V02 type 10.
8 Canada. Type 02
9 Canada. Type 03
10 Canada. Type 04
11 Canada. Type 05
12 Canada. Type 06
13 Canada. Type 07
14 Canada. Type 12
15 Canada. Type 13
16 Canada. Type 23
17 Canada. Type 14
18 Canada. Type 24
19 Canada. Type 16
20 Canada. Type 15
21 Ack from clearinghouse. X12-997.
22 X12-277. Unsolicited claim status notification.
23 Text report from clearinghouse in human readable format.
24 X12-270.
25 X12-271
26 When a Canadian message is sent, and an error comes back instead of a message. This stores information about the error. The etrans with this type is attached it to the original etrans as an ack.
27 X12-835. Electronic Remittance Advice (ERA). Also known an an electronic EOB.
28 Ack from clearinghouse. X12-999.
29 Simple and generic ack from clearinghouse which is used to replace 997s, 999s, or 277s.
FK to claim.ClaimNum if a claim. Otherwise 0. Warning. Original claim might have been deleted. But if Canadian claim was successfully sent, then deletion will be blocked.
For Canada. Unique for every transaction sent. Increments by one until 999999, then resets to 1.
For Canada. Separate counter for each carrier. Increments by one until 99999, then resets to 1.
For Canada. If this claim includes secondary, then this is the counter for the secondary carrier.
FK to carrier.CarrierNum.
FK to carrier.CarrierNum Only used if secondary insurance info is provided on a claim. Necessary for Canada.
FK to patient.PatNum This is useful in case the original claim has been deleted. Now, we can still tell who the patient was.
Maxes out at 999, then loops back to 1. This is not a good key, but is a restriction of (canadian?). So dates must also be used to isolate the correct BatchNumber key. Specific to one clearinghouse. Only used with e-claims. Claim will have BatchNumber, and 997 will have matching BatchNumber. (In X12 lingo, it's a functional group number)
A=Accepted, R=Rejected, blank if not able to parse, Recd=Received (835s only). More options will be added later. The incoming 997 or 999 sets this flag automatically. To find the 997 or 999, look for a matching BatchNumber with a similar date, since both the claims and the 997 or 999 will both have the same batch number. The 997 or 999 does not have this flag set on itself.
For sent e-claims, within each batch (functional group), each carrier gets it's own transaction set. Since 997s and 999s acknowledge transaction sets rather than batches, we need to keep track of which transaction set each claim is part of as well as which batch it's part of. This field can't be set as part of 997 or 999, because one 997 or 999 refers to multiple trans sets.
Typical uses include indicating that the report was printed, the claim was resent, reason for rejection, etc. For a 270, this contains the automatically generated short summary of the response. The response could include the reason for failure, or it could be a short summary of the 271.
FK to etransmessagetext.EtransMessageTextNum. Can be 0 if there is no message text. Multiple Etrans objects can refer to the same message text, very common in a batch.
FK to etrans.EtransNum. Only has a non-zero value if there exists an ack etrans, like a 997, 999, 277ack, 271, 835, or ackError. There can be only one ack for any given etrans, but one ack can apply to multiple etran's that were sent as one batch. 999 FK can be replaced by 277ack FK, and then by 835 FK. This column does triple duty.
FK to insplan.PlanNum. Used if EtransType.BenefitInquiry270 and BenefitResponse271 and Eligibility_CA.
FK to inssub.InsSubNum. Used if EtransType.BenefitInquiry270 and BenefitResponse271 and Eligibility_CA.
X12 ST02 Transaction Set Identifier for an 835. Specifies the unique transaction id within the 835 that this etrans record corresponds to. This column will always be set for 835s imported in version 14.3 or greater. For 835s imported in version 14.2, this column will alway be blank. If blank, and there is more than one transaction id within the 835, then FormEtrans835PickEob will show and allow the user to select the desired EOB from a list. The X12 guide states that there is only one transaction (EOB) allowed per 835, but ClaimConnect returns multiple transactions (EOBs) within a single 835 and other clearinghouses probably do as well. When an 835 is imported, it is examined to determine the number of transactions within it. One etrans entry is created for each EOB within the 835. We may have a similar issue with multiple transactions within 277s as well, but we have not seen any evidence yet. Our current 277 implementation expects a single transaction, just as the X12 standard specifies.
Only used if the CarrierNum is 0. If CarrierNum is not 0, the name associated to CarrierNum will override
CarrierNameRaw in the FormClaimsSend history grid. Added for 835s so that customer databases are not cluttered with dummy carriers and
so there is no extra processing time when FormClaimsSend is loading. Size is 60 bytes to match 835 carrier name length.
Only used if the PatNum is 0. If PatNum is not 0, the name associated to PatNum will override PatientNameRaw
in the FormClaimsSend history grid. Added for 835s so that there is no extra processing time when FormClaimsSend is loading,
and so text representing the patient count can be used instead of an actual patient name. Size is 133 bytes to match X12 specs for
last name (60), first name (35), middle name (25), suffix (10), and spaces in between (3).
Each row is big. The entire X12 message text is stored here, since it can be the same for multiple etrans objects, and since the messages can be so big.
Primary key.
The entire message text, including carriage returns.
An evaluation is for one student and is copied from an EvaluationDef.
Primary key.
FK to provider.ProvNum.
FK to provider.ProvNum.
FK to schoolcourse.SchoolCourseNum. For example to PEDO 732.
Copied from evaluation def. Not editable.
Date of the evaluation.
FK to gradingscale.GradingScaleNum. The overall grading scale for this evaluation. Copied from EvaluationDef. Criteria will not all necessarily have the same scale.
OverallGradeNumber is calculated as described below. Once the nearest number on the scale is found, the corresponding gradescaleitem.GradeShowing is used here.
Always recalculated as each individual criterion is changed, so no risk of getting out of synch. Only considers criteria on the evaluation that use the same grading scale as the evaluation itself. It's an average of all those criteria. When averaging, the result will almost never exactly equal one of the numbers in the scale, so the nearest one must be found and used here. For example, if the average is 3.6 on a 4 point scale, this will show 4. Percentages will be rounded to the nearest whole number. This is the value that will be returned in reports and also used in calculations of the student's grade for the term.
Any note that the instructor wishes to place at the bottom of this evaluation.
One row on an evaluation.
Primary key.
FK to evaluation.EvaluationNum
Description that is displayed for the criterion.
This row will show in bold and will not have a grade attached to it.
FK to gradingscale.GradingScaleNum. The grading scale used for this criterion. Having this here allows the instructor to edit saved grades and also allows the evaluation overall grade to consider whether to include this criterion in the calculation.
Copied from gradingscaleitem.GradeShowing. Required. For example A, B, C, D, F, or 1-10, pass, fail, 89, etc. Except for percentages, must come from pick list.
Copied from gradingscaleitem.GradeNumber. Required. For example A=4, A-=3.8, pass=1, percentages stored as 89, etc. Except for percentages, must come from pick list.
A note about why this student received this particular grade on this criterion.
Copied from item order of def. Defines the order that all the criteria show on the evaluation. User not allowed to change here, only in the def.
For ScaleType=Points, sets the maximum value of points for this criterion.
Rows on an evaluation def. The individual items that will be graded. Criterion Defs
Primary key.
FK to evaluationdef.EvaluationDefNum.
Description that is displayed for the criterion.
This row will show in bold and will not have a grade attached to it.
FK to gradingscale.GradingScaleNum. The grading scale used for this criterion. As a user builds an evaluationDef, each criterion should default to the GradingScaleNum of the EvaluationDef, and then the user can change if needed. The individual criteria do not have to be the same scale as the evaluation.
Defines the order that all the criteria show on the evaluation. Copied to ItemOrder of actual criterion.
For ScaleType=Points, sets the maximum value of points for this criterion.
An evaluation def is the entire form that the instructor sets up ahead of time. Actual evaluations for students are copied from these 'templates', so an evaluation def can be altered or deleted without damaging any student record. Evaluation defs are usually not specific to instructors, but if different instructors want different evaluation forms, they can use the description column to differentiate. For example, the description can include the instructor's name or even the year. But most commonly, the same evaluation will be used from year to year. There should be a duplicate function to make a copy an entire evaluation def and then allow user to alter the SchoolCourseNum.
Primary key.
FK to schoolcourse.SchoolCourseNum. For example to PEDO 732.
Description of this evaluation form.
FK to gradingscale.GradingScaleNum. The default grading scale for this evaluation. Each criterion will typically use the same scale, but that is not required.
For EHR, this lets us record medical problems for family members. These family members will usually not be in our database, and they are just recorded by relationship.
Primary key.
FK to patient.PatNum.
Enum:FamilyRelationship
0
1
2
FK to diseasedef.DiseaseDefNum, which will have a SnoMed associated with it.
Name of the family member.
There is one entry in this table for each fee for a single procedurecode. So if there are 5 different fees stored for one procedurecode, then there will be five entries here.
Primary key.
The amount usually charged. If an amount is unknown, then the entire Fee entry is deleted from the database.
The absence of a fee is shown in the user interface as a blank entry.
For clinic and/or provider fees, amount can be set to -1 which indicates that their fee should be blank and not use the default fee.
Do not use.
FK to feesched.FeeSchedNum.
Not used.
Not used.
FK to procedurecode.CodeNum.
FK to clinic.ClinicNum. (Used if localization of fees for a feesched is enabled)
FK to provider.ProvNum. (Used if localization of fees for a feesched is enabled)
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Fee schedule names used to be in the definition table, but now they have their own table. We are about to have many many more fee schedules as we start automating allowed fees.
Primary key.
The name of the fee schedule.
Enum:FeeScheduleType
0
1
2, Formerly named "Allowed"
Unlike with the old definition table, this ItemOrder is not as critical in the caching of data. The item order is only for fee schedules of the same type.
True if the fee schedule is hidden. Can't delete fee schedules or change their type once created.
True if the fee schedule is used globally and linked to the HQ. (Localization of the fees are not allowed)
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
One form or questionnaire filled out by a patient. Each patient can have multiple forms.
Primary key.
FK to patient.PatNum.
The date and time that this questionnaire was filled out.
Used in Evaluations. Describes a scale to be used in grading. Freeform scales are not allowed. Percentage scales are handled a little differently than the other scales.
Primary key.
For example, A-F or Pass/Fail.
Enum:EnumScaleType Used to determine method of assigning grades. PickList will be the only type that has GradingScaleItems.
Used in GradingScale to determine how grades are assigned.
0- User-Defined list of possible grades. Grade is calculated as an average.
1- Percentage Scale 0-100. Grade is calculated as an average.
2- Allows point values for grades. Grade is calculated as a sum of all points out of points possible.
Only used when GradingScale.ScaleType=PickList, not Percentage or Points. The specific grades allowed on a scale. Contains both the GradeShowing and the equivalent number. There are no FKs to these items. The values are all copied from here into student records as they are used.
Primary key.
FK to gradingscale.GradingScaleNum
For example A, B, C, D, F. Optional. If not specified, it shows the number.
For example A=4, A-=3.8, pass=1, etc. Required. Enforced to be equal to or less than GradingScale.MaxPointsPoss.
Optional additional info about what this particular grade means. Just used as guidance and does not get copied to the individual student record.
Every user group has certain permissions. This defines a permission for a group. The absense of permission would cause that row to be deleted from this table.
Primary key.
Only granted permission if newer than this date. Can be Minimum (01-01-0001) to always grant permission.
Can be 0 to always grant permission. Otherwise, only granted permission if item is newer than the given number of days. 1 would mean only if entered today.
FK to usergroup.UserGroupNum. The user group for which this permission is granted. If not authorized, then this groupPermission will have been deleted.
Enum:Permissions
A hard-coded list of permissions which may be granted to usergroups.
0
1
2
3
4
5
6
7
8. Currently covers a wide variety of setup functions.
9
10. Uses date restrictions. Covers editing AND deleting of completed procs. Deleting non-completed procs is covered by ProcDelete.
11
12
13
14. Uses date restrictions.
15
16. Uses date restrictions.
17
18. Uses date restrictions.
19
20. Not used anymore.
21 Not used anymore.
22
23. Includes setting procedures complete.
24. At least one user must have this permission.
25.
26
27
28
29
30
31. Uses date restrictions.
32. Uses date restrictions.
33
34
35
36
37. Uses date restrictions. Edit Batch Insurance Payment.
38. Uses date restrictions.
39
40. Uses date restrictions.
41. Uses date restrictions. All other equipment functions are covered by .Setup.
42. Uses date restrictions. Also used in audit trail to log web form importing.
43. Uses date restrictions.
44. Uses date restrictions.
45. Uses date restrictions.
46. Shows the fee textbox in the proc edit window.
47
48
49. Uses date restrictions. This only applies to non-completed procs. Deletion of completed procs is covered by ProcComplEdit.
50 - Only used at OD HQ. No user interface.
51- Allows user to edit all providers. This is not fine-grained enough for extremely large organizations such as dental schools, so other permissions are being added as well.
52
53
54
55
56
57
58
59
60
61
62
63
64- There is no user interface in the security window for this permission. It is only used for tracking. FK to CodeNum.
65- There is no user interface in the security window for this permission. It is only used for tracking. Only tracks changes to carriername, not any other carrier info. FK to PlanNum for tracking.
66- (Was named TaskEdit prior to version 14.2.39) When editing an existing task: delete the task, edit original description, or double click on note rows. Even if you don't have the permission, you can still edit your own task description (but not the notes) as long as it's in your inbox and as long as nobody but you has added any notes.
67- Add or delete lists and list columns..
68- There is no user interface in the security window for this permission. It is only used for tracking. Tracks copying of patient information. Required by EHR.
69- There is no user interface in the security window for this permission. It is only used for tracking. Tracks printing of patient information. Required by EHR.
70- There is no user interface in the security window for this permission. It is only used for tracking. Tracks viewing of patient medical information.
71- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and editing of patient problems.
72- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and edting of patient medications.
73- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and editing of patient allergies.
74- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and editing of patient family health history.
75- There is no user interface in the security window for this permission. It is only used for tracking. Patient Portal access of patient information. Required by EHR.
76
77- Assign this permission to a staff person who will administer setting up and editing Dental School Students in the system.
78- Assign this permission to an instructor who will be allowed to assign Grades to Dental School Students as well as manage classes assigned to them.
79- Uses date restrictions. Has a unique audit trail so that users can track specific ortho chart edits. FK to OrthoChartNum.
80- There is no user interface in the security window for this permission. It is only used for tracking. Mainly used for ortho clinics.
81- Assign this permission to a staff person who will edit evaluations in case of an emergency. This is not meant to be a permanent permission given to a group.
82- There is no user interface in the security window for this permission. It is only used for tracking.
83- There is no user interface in the security window for this permission. It is only used for tracking.
84- Allows user to edit other users' tasks.
85- Allows user to send unsecured email
86- Allows user to send webmail
87- Allows user to run command queries. Command queries are any non-SELECT queries for any non-temporary table.
88- Security permission for assignment of benefits.
89- Audit trail for images and documents in the image module. There is no user interface in the security window for this permission because it is only used for tracking.
90- Allows editing of all measure events. Also used to track changes made to events.
91- Allows users to edit settings in the eServices Setup window. Also causes the Listener Service monitor thread to start upon logging in.
92- There is no user interface in the security window for this permission. It is only used for tracking. Tracks editing of fee schedule properties.
93- Allows user to edit and delete provider specific fees overrides.
94- Allows user to merge patients.
95- Only used in Claim History Status Edit
96- Allows user to edit a completed appointment.
97- Audit trail for deleting webmail messages. There is no user interface in the security window for this permission.
98- Audit trail for saving a patient with required fields missing. There is no user interface in the security window for this
permission.
99- Allows user to merge referrals.
100- There is no user interface in the security window for this permission. It is only used for tracking.
Currently only used for tracking automatically changing the IsCpoe flag on procedures. Can be enhanced to do more in the future.
There is only one place where we could have automatically changed IsCpoe without a corresponding log of a different permission.
That place is in the OnClosing of the Procedure Edit window. We update this flag even when the user Cancels out of it.
101- Allows user to use the provider merge tool.
102- Allows user to use the medication merge tool.
103- Allow users to use the Quick Add tool in the Account module.
104- Allow users to send claims.
105- Allow users to create new task lists.
106 - Audit when a new patient is added.
107- Allows changing the settings for graphical repots.
108 - Audit when a patient is edited. Currently only used in X12 834 insurance plan import.
109 - Audit when an insurance plan is created. Currently only used in X12 834 insurance plan import.
110 - Audit when an insurance plan is edited. Currently only used in X12 834 insurance plan import.
111 - Audit when an insurance subscriber is created. The naming convention of this permission was decided upon by Nathan and Derek
based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
112 - Audit when an insurance subscriber is edited. The naming convention of this permission was decided upon by Nathan and Derek
based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
113 - Audit when a patient is added to an insurance plan. The naming convention of this permission was decided upon by Nathan and
Derek based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
114 - Audit when a patient is dropped from an insurance plan. The naming convention of this permission was decided upon by Nathan and
Derek based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
115 - Allows users to be assigned Insurance Verifications.
116 - Allows users to bypass the global lock date to add paysplits.
117 - Uses date restrictions. Covers editing some fields of completed procs. Limited list includes treatment area, diagnosis,
add adjustment, Do Not Bill To Ins, Hide Graphics, Misc tab, Medical tab, E-claim note, and the Prosthesis Replacement group box.
118 - Uses date restrictions based on the SecDateEntry field as the claim date. Covers deleting a claim of any status
(Sent, Waiting to Send, Received, etc).
119 - Covers editing the Write Off and Write Off Override fields for claimprocs as well as deleting/creating claimprocs.
Uses date/days restriction based on the attached proc.DateEntryC; unless it's a total payment, then uses claimproc.SecDateEntry.Applies to all plan types (i.e. PPO, Category%, Capitation, etc).
Links patient to patient in a many to many database relationship. The two PatNums need not be in the same family, but will usually be.
The two PatNums could be in different families if the relationship was entered, then one of the patients in the relationship is moved to another family.
This table can also be used for other relationship types besides guardians. The table name is guardian because we only supported guardian relationships in the past,
and we did not want to risk breaking queries by changing the table or column names. User can specify any relationship as a guardian or not a guardian.
For example, a retired person might specify their brother or child as their guardian, or the user may want to record the brother of a patient as a non-guardian.
Primary key.
FK to patient.PatNum. If Relationship is "Mother", then this PatNum is the child of the mother.
FK to patient.PatNum. If Relationship is "Mother", then this is the PatNum of the mother.
Enum:GuardianRelationship .
0 - Added due to feature request. Needed for EHR.
1 - Added due to feature request. Needed for EHR.
2 - Added due to feature request.
3 - Added due to feature request.
4 - Added due to feature request.
5 - Added due to feature request.
6 - Added due to feature request.
7 - Added for EHR.
8 - Added for EHR.
9 - Added for EHR.
10 - Added for EHR. Also meets request #154.
11 - Added for EHR.
12 - Added for EHR. Also meets request #154.
13 - Added for EHR. Also meets request #154.
14 - Added for EHR.
15 - Added for EHR.
16 - Added for EHR.
17 - Added for EHR. Also meets request #154.
18 - Added for EHR.
19 - Added for EHR.
20 - Added for EHR.
21 - Added for EHR.
22 - Added for EHR.
True if this specifies a guardian relationship, or false if any other relationship.
When this flag is true, the relationship will show in the "Guardians" appointment view field and in the family module "Guardians" display field for the patient. This also grants PHI access in the patient portal to the specific patient designated via PatNumChild.
A code system used in EHR. Healhtcare Common Procedure Coding System. Another system used to describe procedure codes.
Primary key..
Examples: AQ, J1040
Short description. This is the HCPCS supplied abbreviated description.
.
Primary key.
Enum:ModeTxHL7 File, TcpIp.
0
1
2. Used for MedLab HL7 transmission, currently only LabCorp.
Used for File mode and for SFTP mode. For file mode, this is the folder for inbound HL7 messages.
For SFTP mode, this is the relative path from the SFTP root directory to the directory where the result messages can be found.
The root or home directory '.' can be included in the path but is not necessary. Examples: /./results or /results or results.
Only used for File mode
Only used for tcpip mode. Example: 1461
Only used for tcpip mode. Example: 192.168.0.23:1462
Only relevant for outgoing. Incoming field separators are defined in MSH. Default |.
Only relevant for outgoing. Incoming field separators are defined in MSH. Default ^.
Only relevant for outgoing. Incoming field separators are defined in MSH. Default ~.
Only relevant for outgoing. Incoming field separators are defined in MSH. Default \.
If this is set, then there will be no child tables. Internal types are fully defined within the C# code rather than in the database.
Stored in db as string, but used in OD as enum HL7InternalType. Example: eCWTight. This will always have a value because we always start with a copy of some internal type.
Example: 12.2.14. This will be empty if IsInternal. This records the version at which they made their copy. We might have made significant improvements since their copy.
.
The machine name of the computer where the OpenDentHL7 service for this def is running.
The name of the HL7 service for this def. Must begin with OpenDent...
Enum:HL7ShowDemographics Hide,Show,Change,ChangeAndAdd
Cannot see or change.
Can see, but not change.
Can change, but not add patients. Might get overwritten by next incoming message.
Can change and add patients. Might get overwritten by next incoming message.
Show Appointments module.
Show Account module
Send the quadrant in the tooth number component instead of the surface component of the FT1.26 field of the outgoing DFT messages. Only for eCW.
FK to definition.DefNum. Image category used by MedLab HL7 interfaces when storing PDFs received via inbound HL7 messages.
The username for logging into the Sftp server.
The password used with the SftpUsername to log into the Sftp server. This won't be displayed to the user but will be stored as plain text in the db.
The socket used to connect to the Sftp server for retrieving inbound HL7 messages. Currently only used by MedLabv2_3 interfaces.
This will be the address:port of the Sftp server to connect to for retrieving lab results. Example: server.address.com:20020.
For eCW HL7 interfaces only. False by default. When false, D codes sent in outbound DFT messages will be limited to 5 characters.
Any additional characters will be stripped off when generating the HL7 message. When true, D codes will not be truncated.
If true a message box will warn users if they try to send procedures from the chart module that are not attached to an
appointment.
Multiple fields per segment.
Primary key.
FK to HL7DefSegment.HL7DefSegmentNum
Position within the segment.
HL7 table Id, if applicable. Example: 0234. Example: 1234/2345. DataType will be ID.
The DataTypeHL7 enum will be unlinked from the db by storing as string in db. As it's loaded into OD, it will become an enum.
User will get to pick from a list of fields that we will maintain. Example: guar.nameLFM, prov.provIdName, or pat.addressCityStateZip. See below for the full list. This will be blank if this is a fixed text field.
User will need to insert fixed text for some fields. Either FixedText or FieldName will have a value, not both.
There is no field for MessageStructureHL7 (ADT_A01), because that will be inferred. Defined in HL7 specs, section 2.16.3.
Primary key.
FK to HL7Def.HL7DefNum
Stored in db as string, but used in OD as enum MessageTypeHL7. Example: ADT
Stored in db as string, but used in OD as enum EventTypeHL7. Example: A04, which is only used with ADT/ACK.
Enum:InOutHL7 Incoming, Outgoing
0
1
The only purpose of this column is to let you change the order in the HL7 Def windows. It's just for convenience.
text
Stored in db as string, but used in OD as enum MessageStructure. Example: ADT_A01, which is the structure used for event types A01, A04, A08, and A13.
multiple segments per message
Primary key.
FK to HL7DefMessage.HL7DefMessageNum
Since we don't enforce or automate, it can be 1-based or 0-based. For outgoing, this affects the message structure. For incoming, this is just for convenience and organization in the HL7 Def windows.
For example, a DFT can have multiple FT1 segments. This turns out to be a completely useless field, since we already know which ones can repeat.
If this is false, and an incoming message is missing this segment, then it gets logged as an error/failure. If this is true, then it will gracefully skip a missing incoming segment. Not used for outgoing.
Stored in db as string, but used in OD as enum SegmentNameHL7. Example: PID.
.
HL7 messages sent and received.
Primary key.
Enum:HL7MessageStatus Out/In are relative to Open Dental. This is in contrast to the names of the old ecw folders, which were relative to the other program. OutPending, OutSent, InReceived, InProcessed.
0
1
2-Tried to send, but there was a problem. Will keep trying.
3
4
The actual HL7 message in its entirity.
FK to appointment.AptNum. Many of the messages contain "Visit ID" which is equivalent to our AptNum.
Used to determine which messages are old so that they can be cleaned up.
FK to patient.PatNum.
Maximum size 2000 characters.
Keeps track of whether procedures have been sent in an HL7 message.
Primary key.
FK to hl7msg.HL7MsgNum.
FK to procedurelog.ProcNum.
Other tables generally use the ICD10Code string as their foreign key. It is implied that these are all ICD10CMs, although that may not be the case in the future.
Primary key. Also identical to "Order Number" column in ICD10 documentation.
ICD-10-CM or ICD-10-PCS code. Dots are included. Not allowed to edit this column once saved in the database.
Short Description provided by ICD10 documentation.
0 if the code is a “header” – not valid for submission on a UB04. 1 if the code is valid for submission on a UB04.
Other tables generally use the ICD9Code string as their foreign key. Currently synched to mobile server in a very inefficient manner. It is implied that these are all ICD9CMs, although that may not be the case in the future.
Primary key.
Not allowed to edit this column once saved in the database.
Description.
The last date and time this row was altered. Not user editable.
An optional field on insplan and claims. This lets user customize so that they can track insurance types.
Primary key.
Description of the insurance filing code.
Code for electronic claim.
Display order for this filing code within the UI. 0-indexed.
Stores the list of insurance filing code subtypes.
Primary key.
FK to insfilingcode.insfilingcodenum
The description of the insurance filing code subtype.
Subscribers can share insplans by using the InsSub table. The patplan table determines coverage for individual patients. InsPlans can also exist without any subscriber.
Primary key.
Optional
Optional. In Canada, this is called the Plan Number.
Note for this plan. Same for all subscribers.
FK to feesched.FeeSchedNum.
""=percentage(the default),"p"=ppo_percentage,"f"=flatCopay,"c"=capitation.
FK to claimform.ClaimFormNum. eg. "1" for ADA2002. For ADA2006, it varies by office.
0=no,1=yes. could later be extended if more alternates required
Fee billed on claim should be the UCR fee for the patient's provider.
FK to feesched.FeeSchedNum. Not usually used. This fee schedule holds only co-pays(patient portions). Only used for Capitation or for fixed copay plans.
FK to employer.EmployerNum.
FK to carrier.CarrierNum.
FK to feesched.FeeSchedNum. Not usually used. This fee schedule holds amounts allowed by carriers.
.
Only used in Canada. It's a suffix to the plan number (group number).
True if this is medical insurance rather than dental insurance. When creating a claim, this, along with pref.
FK to insfilingcode.InsFilingCodeNum. Used for e-claims. Also used for some complex reports in public health. The e-claim usage might become obsolete when PlanID implemented by HIPAA. Can be 0 to indicate none. Then 'CI' will go out on claims.
Canadian e-claim field. D11 and E07. Zero indicates empty. Mandatory value for Dentaide. Not used for all others. 2 digit.
If checked, the units Qty will show the base units assigned to a procedure on the claim form.
Set to true to not allow procedure code downgrade substitution on this insurance plan.
Set to true to hide it from the pick list and from the main list.
The month, 1 through 12 when the insurance plan renews. It will renew on the first of the month. To indicate calendar year, set renew month to 0.
FK to insfilingcodesubtype.InsFilingCodeSubtypeNum
Canadian C12. Single char, usually blank. If non-blank, then it's one of three kinds of Provincial Medical Plans. A=Newfoundland MCP Plan. V=Veteran's Affairs Plan. N=NIHB. N and V are not yet in use, so they will result in blank being sent instead. See Elig5.
Canadian C39. Required when CanadianPlanFlag is 'A'.
Canadian C40. Required when CanadianPlanFlag is 'A'.
BIN location number. Only used with EHR.
Enum:EnumCobRule 0=Basic, 1=Standard, 2=CarveOut.
0=Basic
1=Standard
2=CarveOut
FK to sop.SopCode. Examples: 121, 3115, etc. Acts as default for all patients using this insurance. When code is changed for an insplan, it should change automatically for patients having that primary insurance.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Is false if this plan needs to be verified.
Multiple subscribers can have the same insurance plan. But the patplan table is still what determines coverage for individual patients.
Primary key.
FK to insplan.PlanNum.
FK to patient.PatNum.
Date plan became effective.
Date plan was terminated
Release of information signature is on file.
Assignment of benefits signature is on file. For Canada, this handles Payee Code, F01. Option to pay other third party is not included.
Usually SSN, but can also be changed by user. No dashes. Not allowed to be blank.
User doesn't usually put these in. Only used when automatically requesting benefits, such as with Trojan. All the benefits get stored here in text form for later reference. Not at plan level because might be specific to subscriber. If blank, we try to display a benefitNote for another subscriber to the plan.
Use to store any other info that affects coverage.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Simpler than a payment plan. Does not affect running account balances. Allows override of finance charges. Affects the "pay now" on statements. Only one installmentplan is allowed for a family, attached to guarantor only. This is loosely enforced.
Primary key.
FK to patient.PatNum.
Date payment plan agreement was made.
Date of first payment.
Amount of monthly payment.
Annual Percentage Rate. e.g. 12.
Note
Primary key.
The date of the last successful verification.
FK to userod.UserNum. This is the assigned user for this verification.
Enum:VerifyTypes The type of verification.
0. This means FKey should be 0.
1. This means FKey will link to insplan.InsPlanNum
2. This means FKey will link to patplan.PatPlanNum
Foreign key to any table defined in the VerifyType Enumeration.
FK to definition.DefNum. Links to the category InsVerifyStatus
Note for this insurance verification.
The date of the last assignment of this verification.
Inherits from insverify. A historical copy of an insurance verification record.
Primary key.
FK to insverify.InsVerifyNum
The date of the last successful verification.
FK to userod.UserNum. This is the assigned user for this verification.
Enum:VerifyTypes The type of verification.
0. This means FKey should be 0.
1. This means FKey will link to insplan.InsPlanNum
2. This means FKey will link to patplan.PatPlanNum
Foreign key to any table defined in the VerifyType Enumeration.
FK to definition.DefNum. Links to the category InsVerifyStatus
Note for this insurance verification.
The date of the last assignment of this verification.
An intervention ordered or performed. Examples: smoking cessation and weightloss counseling. Links to a definition in the ehrcode table using the CodeValue and CodeSystem.
Primary key.
FK to patient.PatNum.
FK to provider.ProvNum.
FK to ehrcode.CodeValue. This code may not exist in the ehrcode table, it may have been chosen from a bigger list of available codes. In that case, this will be a FK to a specific code system table identified by the CodeSystem column. The code for this item from one of the code systems supported. Examples: V65.3 or 418995006.
FK to codesystem.CodeSystemName. The code system name for this code. Possible values are: CPT, HCPCS, ICD9CM, ICD10CM, and SNOMEDCT.
User-entered details about the intervention for this patient. Max length 4000.
The date of the intervention.
Enum:InterventionCodeSet AboveNormalWeight, BelowNormalWeight, TobaccoCessation, Nutrition, PhysicalActivity, Dialysis.
Value sets for interventions. This will limit the codes in FormInterventionEdit to a smaller list of codes and allow us to recommend codes to meet specific CQMs.
0 - Above Normal Weight Follow-up/Referrals where weight assessment may occur
1 - Below Normal Weight Follow-up/Referrals where weight assessment may occur
2 - Counseling for Nutrition
3 - Counseling for Physical Activity
4 - Tobacco Use Cessation Counseling
5 - Dialysis Education/Other Services Related to Dialysis
Indicates whether the intervention was offered/recommended to the patient and the patient declined the treatment/referral.
Used in accounting to represent a single credit or debit entry. There will always be at least 2 journal enties attached to every transaction. All transactions balance to 0.
Primary key.
FK to transaction.TransactionNum
FK to account.AccountNum
Always the same for all journal entries within one transaction.
Negative numbers never allowed.
Negative numbers never allowed.
.
A human-readable description of the splits. Used only for display purposes.
Any user-defined string. Usually a check number, but can also be D for deposit, Adj, etc.
FK to reconcile.ReconcileNum. 0 if not attached to a reconcile. Not allowed to alter amounts if attached.
A lab case.
Primary key.
FK to patient.PatNum.
FK to laboratory.LaboratoryNum. The lab that the case gets sent to. Required.
FK to appointment.AptNum. This is how a lab case is attached to a scheduled appointment. 1:1 relationship for now. Only one labcase per appointment, and (obviously) only one appointment per labcase. Labcase can exist without being attached to any appointments at all, making this zero.
FK to appointment.AptNum. This is how a lab case is attached to a planned appointment in addition to the scheduled appointment.
The due date that is put on the labslip. NOT when you really need the labcase back, which is usually a day or two later and is the date of the appointment this case is attached to.
When this lab case was created. User can edit.
Time that it actually went out to the lab.
Date/time received back from the lab. If this is filled, then the case is considered received.
Date/time that quality was checked. It is now completely ready for the patient.
FK to provider.ProvNum.
The text instructions for this labcase.
There is no UI built yet for this field. Plugins might be making use of this field.
A dental laboratory. Will be attached to lab cases.
Primary key.
Description of lab.
Freeform text includes punctuation.
Any notes. No practical limit to amount of text.
FK to sheetdef.SheetDefNum. Lab slips can be set for individual laboratories. If zero, then the default internal lab slip will be used instead of a custom lab slip.
.
.
.
.
.
.
One lab panel comes back from the lab with multiple lab results. Multiple panels can come back in one HL7 message. This table loosely corresponds to the OBR segment.
Primary key.
FK to patient.PatNum
The entire raw HL7 message. Can contain other labpanels in addition to this one.
Both name and address in a single field. OBR-20.
To be used for synch with web server.
OBR-13. Usually blank. Example: hemolyzed.
OBR-15. Usually blank. Example: LNA&Arterial Catheter&HL70070.
OBR-4-0, Service performed, id portion, LOINC. For example, 24331-1.
OBR-4-1, Service performed description. Example, Lipid Panel.
FK to medicalorder.MedicalOrderNum. Used to attach in imported lab panel to a lab order. Multiple panels may be attached to an order.
Medical labs, not dental labs. Multiple labresults are attached to a labpanel. Loosely corresponds to the OBX segment in HL7.
Primary key.
FK to labpanel.LabPanelNum.
OBX-14.
OBX-3-1, text portion.
To be used for synch with web server.
OBX-3-0, id portion, LOINC. For example, 10676-5.
OBX-5. Value always stored as a string because the type might vary in the future.
OBX-6 For example, mL. Was FK to drugunit.DrugUnitNum, but that would make reliable import problematic, so now it's just text.
OBX-7 For example, <200 or >=40.
Enum:LabAbnormalFlag 0-None, 1-Below, 2-Normal, 3-Above.
0-No value.
1-Below normal.
2-Normal.
3-Above high normal.
The amount of time it takes for a lab case to be processed at the lab. Used to compute due dates.
Primary key.
FK to laboratory.LaboratoryNum. The lab that this item is attached to.
The description of the service that the lab is performing.
The number of days that the lab publishes as the turnaround time for the service.
The actual number of days. Might be longer than DaysPublished due to travel time. This is what the actual calculations will be done on.
This is a list of phrases that need to be translated. The primary key is a combination of the ClassType and the English phrase. This table is currently filled dynmically at run time, but the plan is to fill it using a tool that parses the code.
Primary key.
No longer used.
A string representing the class where the translation is used. Maximum length is 25 characters.
The English version of the phrase, case sensitive.
As this gets more sophisticated, we will use this field to mark some phrases obsolete instead of just deleting them outright. That way, translators will still have access to them. For now, this is not used at all.
Will usually only contain translations for a single foreign language, although more are allowed. The primary key is a combination of the ClassType and the English phrase and the culture.
Primary key.
A string representing the class where the translation is used.
The English version of the phrase. Case sensitive.
The specific culture name. Almost always in 5 digit format like this: en-US.
The foreign translation. Remember we use Unicode-8, so this translation can be in any language, including Russian, Hebrew, and Chinese.
Comments for other translators for the foreign language.
These are templates that are used to send simple letters to patients.
Primary key.
Description of the Letter.
Text of the letter
Describes the templates for letter merges to Word.
Primary key.
Description of this letter.
The filename of the Word template. eg MyTemplate.doc.
The name of the data file. eg MyTemplate.txt.
FK to definition.DefNum.
When doing a lettermerge, a data file is created with certain fields. This is a list of those fields for each lettermerge.
Primary key.
FK to lettermerge.LetterMergeNum.
One of the preset available field names.
Logical Observation Identifiers Names and Codes (LOINC) used to identify both lab panels and lab results. Widths specified are from LOINC documentation and may not represent length of fields in the Open Dental Database.
Primary key. Internal use only.
#EULA REQUIRED# Also called LOINC_NUM in the official LOINCDB. Width-10. LOINC244 column 1.
#EULA REQUIRED# First Major axis:component or analyte. Width-255. LOINC244 column 2.
#EULA REQUIRED# Second major axis:property observed (e.g., mass vs. substance). Width-30. LOINC244 column 3.
#EULA REQUIRED# Third major axis:timing of the measurement (e.g., point in time vs 24 hours). Width-15. LOINC244 column 4.
#EULA REQUIRED# Fourth major axis:type of specimen or system (e.g., serum vs urine). Width-100 LOINC244. column 5.
#EULA REQUIRED# Fifth major axis:scale of measurement (e.g., qualitative vs. quantitative). Width-30. LOINC244 column 6.
#EULA REQUIRED# Sixth major axis:method of measurement. Width-50. LOINC244 column 7.
#EULA REQUIRED# Width-10. LOINC244 column 13.ACTIVE = Concept is active. Use at will.TRIAL = Concept is experimental in nature. Use with caution as the concept and associated attributes may change. DISCOURAGED = Concept is not recommended for current use. New mappings to this concept are discouraged; although existing may mappings may continue to be valid in context. Wherever possible, the superseding concept is indicated in the MAP_TO field in the MAP_TO table (see Table 28b) and should be used instead. DEPRECATED = Concept is deprecated. Concept should not be used, but it is retained in LOINC for historical purposes. Wherever possible, the superseding concept is indicated in the MAP_TO field (see Table 28b) and should be used both for new mappings and updating existing implementations..
#EULA REQUIRED# Introduced in version 2.07, this field is a concatenation of the fully specified LOINC name. The field width may change in a future release. Width 40. LOINC244 column 29.
1=Laboratory class; 2=Clinical class; 3=Claims attachments; 4=Surveys. LOINC244 column 16.
Y/N field that indicates that units are required when this LOINC is included as an OBX segment in a HIPAA attachment. LOINC244 column 26.
Defines term as order only, observation only, or both. A fourth category, Subset, is used for terms that are subsets of a panel but do not represent a package that is known to be orderable we have defined them only to make it easier to maintain panels or other sets within the LOINC construct. LOINC244 column 30.
A value in this field means that the content should be delivered in the named field/subfield of the HL7 message. When NULL, the data for this data element should be sent in an OBX segment with this LOINC code stored in OBX-3 and with the value in the OBX-5. Width 50. LOINC244 column 32.
External copyright holders copyright notice for this LOINC code. LOINC244 column 33. Colwidth=4000.
This field contains the LOINC term in a more readable format than the fully specified name. The long common names have been created via a table driven algorithmic process. Most abbreviations and acronyms that are used in the LOINC database have been fully spelled out in English. Width 255. LOINC244 column 35.
The Unified Code for Units of Measure (UCUM) is a code system intended to include all units of measures being contemporarily used in international science, engineering, and business. (www.unitsofmeasure.org ) This field contains example units of measures for this term expressed as UCUM units. Width 255. LOINC244 column 1.
Ranking of approximately 2000 common tests performed by laboratories in USA. LOINC244 column 45.
Ranking of approximately 300 common orders performed by laboratories in USA. LOINC244 column 46.
MapArea object will be placed on a MapAreaPanel and shown to give a physical layout of a location.
Primary key.
FK to Phone.Extension. Typically 0. Only used by HQ and when ItemType is set to Room.
X-position in the clinical map layout. Indicates how many feet the MapArea should be placed from the left edge.
Y-position in the clinical map layout. Indicates how many feet the MapArea should be placed from the top edge.
MapArea width measured in feet. Not allowed to be zero.
MapArea height measured in feet.
Any text that the user types in. Only used when ItemType is set to DisplayLabel. Limit 255 char.
Enum:MapItemType 0-Room,1-DisplayLabel
Indicate which type of MapArea we are dealing with.
0 - A MapAreaRoomControl object.
1 - A MapAreaDisplayLabelControl object.
Ehr. Lab and radiology orders. Medication orders are simply fields in medicationPat.
Primary key.
Enum:MedicalOrderType Laboratory=0,Radiology=1.
0- Laboratory
1- Radiology
FK to patient.PatNum
Date and time of order.
User will be required to type entire order out from scratch.
EHR requires Active/Discontinued status. 0=Active, 1=Discontinued.
FK to provider.ProvNum.
A list of medications, not attached to any particular patient. Not allowed to delete if in use by a patient. Not allowed to edit name once created due to possibility of damage to patient record.
Primary key.
Name of the medication. User can change this. If an RxCui is present, the RxNorm string can be pulled from the in-memory table for UI display in addition to the MedName.
FK to medication.MedicationNum. Cannot be zero.
If this is a generic drug, then the GenericNum will be the same as the MedicationNum.
Otherwise, if this is a brand drug, then the GenericNum will be a non-zero value corresponding to another medicaiton.
Notes.
The last date and time this row was altered. Not user editable.
RxNorm Code identifier. We should have used a string type. Used by EHR in CQM. But the queries should use medicationpat.RxCui, NOT this RxCui, because all medicationpats (meds and orders) coming back from NewCrop will not have a FK to this medication table. When this RxCui is modified by the user, then medicationpat.RxCui is automatically updated where medicationpat.MedicationNum matches this medication.
Links medications to patients. For ehr, some of these can be considered 'medication orders', but only if they contain a PatNote (instructions), a ProvNum, and a DateStart.
Primary key.
FK to patient.PatNum.
FK to medication.MedicationNum. If 0, implies that the medication order came from NewCrop or was a Manual Rx order. This was done to allow MU2 measures to be set by either creating a medication from the medical window, or by creating an manual prescription.
Medication notes specific to this patient.
The last date and time this row was altered. Not user editable. Will be set to NOW by OD if this patient gets an OnlinePassword assigned.
Date that the medication was started. Can be minval if unknown.
Date that the medication was stopped. Can be minval if unknown. If minval, then the medication is not "discontinued". If prior to today, then the medication is "discontinued". If today or a future date, then not discontinued yet.
FK to provider.ProvNum. Can be 0. Gets set to the patient's primary provider when adding a new med. If adding the med from EHR, gets set to the ProvNum of the logged-in user.
Only use when MedicationNum=0. For medication orders pulled back from NewCrop during synch.
For NewCrop medical orders, corresponds to the RxCui of the prescription (NewCrop only returns a value sometimes). Otherwise, this field is synched with the medication.RxCui field based on medication.MedicationNum. We should have used a string type. The only purpose of this field is so that when CCDs are created, we have structured data to put in the XML, not just plain text. Allergies exported in CCD do not look at this table, but only at the medication table. Medications require MedicationPat.RxCui or Medication.RxCui to be exported on CCD.
Only use when MedicationNum=0. For medication orders pulled back from NewCrop during synch. The NewCrop GUID which uniquely identifies the prescription corresponding to the medical order. Allows us to update existing NewCrop medical orders when refreshing prescriptions in the Chart (similar to how prescriptions are updated).
If NewCrop is used to prescribe a medication, a medication order is imported automatically into Open Dental. If a provider is logged in, then this is CPOE (Computerized Provider Order Entry), and this will be true. Or, if a provider is logged in and Rx entered through OD, it's also CPOE. If a staff person is logged in, and enters an Rx through NewCrop or OD, then this is non-CPOE, so false.
The EHRLab table is structured to tightly with the HL7 standard and should have names that more reflect how the user will
consume the data and for that reason for actual implementation we are using these medlab tables.
Medical lab observation order. This table is currently only used for LabCorp, but may be utilized by other third party lab
services in the future. These are the fields required for the LabCorp result report, used to link the order to the result(s),
specimen(s), place(s) of service, or for linking parent and child results.
This table contains data from the PID, ORC, OBR, and applicable NTE segments
Primary key.
MSH-2 - Sending Application. Used to identify the LabCorp Lab System sending the results.
Possible values for LabCorp (as of their v10.7 specs): '1100' - LabCorp Lab System, 'DIANON' - DIANON Systems,
'ADL' - Acupath Diagnostic Laboratories, 'EGL' - Esoterix Genetic Laboratories.
For backward compatibility only: 'CMBP', 'LITHOLINK', 'USLABS'
MSH-3 - Sending Facility. Identifies the LabCorp laboratory responsible for the client.
It could be a LabCorp assigned 'Responsible Lab Code' representing the responsible laboratory or it could be a CLIA number.
FK to patient.PatNum. PID.2 - External Patient ID. LabCorp report field "Client Alt. Pat ID".
FK to provider.ProvNum. Can be 0. Attempt to match ordering prov external IDs to internal provnum.
PID.3 - Lab Assigned Patient Id. LabCorp report field "Specimen Number". LabCorp assigned, alpha numeric specimen number.
PID.4 - Alternate Patient ID. LabCorp report field "Patient ID". Alternate patient ID.
PID.7.2/7.3/7.4 - Patient Age Years/Months/Days. LabCorp report field "Age (Y/M/D)". YYY/MM/DD format. Three chars for years,
2 each for months and days. Some tests require age for calculation of result. This will be the age at the time of the test, so we will use
the values in the message instead of re-calculating..
PID.18.1 - Account Number. LabCorp report field "Account Number". LabCorp Client ID, 8 digit account number.
PID.18.7 - Fasting. LabCorp report field "Fasting". Y, N, or blank.
A blank component will be stored as 0 - Unknown, the result report fasting field will be blank.
ORC.2.1 and OBR.2.1 - Unique Foreign Accession or Specimen ID. LabCorp report field "Client Accession (ACC)".
ID sent on the specimen container.
ORC.3.1 and OBR.3.1 - Internal (to LabCorp for example)/Filler Accession or Specimen ID.
LabCorp assigned specimen number, reused on a yearly basis.
OBR.4.1 - Observation Battery Identifier. Reflex result will have this value in OBR.29 to link the reflex to the parent.
OBR.4.2 - Observation Battery Text. LabCorp report field "Tests Ordered".
OBR.4.4 - Alternate Battery Identifier (LOINC). This is the LOINC code for the test performed.
When displaying the results, LabCorp requires OBR.4.2, the text name of the test to be displayed, not the LOINC code.
But we will store it so we can link to the LOINC code table for reporting purposes.
OBR.4.5 - Alternate Observation Battery Text (LOINC Description). The LOINC code description for the test performed.
We will display OBR.4.2 per LabCorp requirements, but we will store this description for reporting purposes.
OBR.7 - Observation/Specimen Collection Date/Time. LabCorp report field "Date & Time Collected".
yyyyMMddHHmm format in the message, no seconds. May be blank.
OBR.9 - Collection/Urine Volume (Quantity/Field Value). LabCorp report field "Total Volume".
The LabCorp document says this field is "Numeric Characters", but the HL7 documentation data type as CQ, which is a number with units
in the form of Quantity^Units. The Units component has subcomponents: ID&Text&Name of Coding System&Alt ID&Alt Text&
Name of Alt Coding System&Coding System Version ID&Alt Coding System Version ID&Original Text.
We will make this a string column and store the Quantity with the Units ID subcomponent if present.
The default unit of measurement is ML, so if the field is a number only we will add ML.
OBR.11 - Action Code. Blank for normal result, "G" for reflex result.
OBR.13.1 - Relevant Clinical Information. LabCorp report field "Additional Information". The report field will be filled with this
value from the first OBR record in the message. The message limits this field to 64 characters, the rest is truncated.
OBR.14 - Date/Time of Specimen Receipt in Lab. LabCorp report field "Date Entered". yyyyMMddHHmm format in the message, no seconds.
Date and time the order was entered in the Lab System.
ORC.12.1 and OBR.16.1 - Ordering Provider ID Number. LabCorp report field "NPI". ORC.12.* and OBR.16.* are repeatable, the eighth
component identifies the source of the ID in the first component. Component 8 possible values: "U"-UPIN,
"P"-Provider Number (Medicaid or Commercial Ins Provider ID), "N"-NPI (Required for third party billing), "L"-Local (Physician ID).
ORC.12.1 and OBR.16.1 - Ordering Provider ID Number. LabCorp report field "Physician ID". ORC.12.* and OBR.16.* are repeatable,
the eighth component identifies the source of the ID in the first component. Component 8 possible values: "U"-UPIN,
"P"-Provider Number (Medicaid or Commercial Ins Provider ID), "N"-NPI (Required for third party billing), "L"-Local (Physician ID).
ORC.12.2 and OBR.16.2 - Ordering Provider Last Name. LabCorp report field "Physician Name". Last, First.
ORC.12.3 and OBR.16.3 - Ordering Provider First Initial. LabCorp report field "Physician Name". Last, First.
OBR.18 - Alternate Unique Foreign Accession / Specimen ID. LabCorp report field "Control Number".
OBR.22 - Date/Time Observations Reported. LabCorp report field "Date & Time Reported". yyyyMMddHHmm format in the message, no secs.
Date and time the results were released from the Lab System.
OBR.25 - Order Result Status. LabCorp possible values: "F" - Final, "P" - Preliminary, "X" - Cancelled, "C" - Corrected.
OBR.26.1 - Link to Parent Result or Organism Link to Susceptibility.
A reflex test will have the parent's OBX.3.1 value here for linking.
OBR.29 - Link to Parent Order. A reflex test will have the value from OBR.4.1 of the original order in this field for linking.
NTE.3 - Comment Text, PID Level. The NTE segment is repeatable and the Comment Text component is limited to 78 characters. Multiple
NTE segments can be used for longer comments. All NTE segments at the PID level will be concatenated and stored in this one field.
NTE.3 - Comment Text, OBR level. The NTE segment is repeatable and the Comment Text component is limited to 78 characters. Multiple
NTE segments can be used for longer comments. All NTE segments at the OBR level will be concatenated and stored in this one field.
Not unique. More than one MedLab object can point to the same FileName, so deleting the MedLab object does not necessarily mean the
file can also be deleted. This is the filename of the original archived message that was processed to create this medlab object as well as
associated medlabresult, medlabspecimen, and medlabfacility obects. The files will be stored in the OpenDentImages folder in a sub-folder
called MedLabHL7. If a message is processed correctly it will be moved into the sub-folder MedLabHL7/Processed. Any message that remains in
the MedLabHL7 folder and aren't moved into the Processed folder failed at some point during processing. If the option to store images directly
in the database is chosen, this will be an empty field and there will not be the option to display the original HL7 message.
This is a relative file path from the ImageStore.GetPreferredAtoZpath(),
Example: "MedLabHL7/FileName.txt" OR "MedLabHL7/Processed/FileName.txt"
Use: string pathToFile=ODFileUtils.CombinePaths(ImageStore.GetPreferredAtoZpath(),FileName)
The PID Segment from the HL7 message used to generate this MedLab object.
Links a MedLab or a MedLabResult to a place of service. Either the MedLabNum OR the MedLabResultNum column will be populated, never
both, so this will link the facility to EITHER a MedLab OR a MedLabResult object.
Every MedLab and MedLabResult will have 1 to many laboratories attached.
Primary key.
FK to medlab.MedLabNum.
FK to medlabresult.MedLabResultNum.
FK to medlabfacility.MedLabFacilityNum.
Medical lab facility that performed the test procedure(s). Contains data from the ZPS segment. Each MedLab object can have one to
many places of service, each in a repetition of the ZPS segment. Each repetition will be its own row in this table.
Primary key.
ZPS.3 - Facility Name. Medical lab location name that performed the testing.
ZPS.4.1 - Facility Address.
ZPS.4.3 - Facility City.
ZPS.4.4 - Facility State or Province. Upper case state abbreviation.
ZPS.4.5 - Facility Zip or Postal Code.
ZPS.5 - Facility Phone Number.
ZPS.7.1 - Facility Director Title.
ZPS.7.2 - Facility Director Last Name.
ZPS.7.3 - Facility Director First Name.
Medical lab result. The EHRLabResult table is structured too tightly with the HL7 standard and should have names that more reflect how
the user will consume the data and for that reason for actual implementation we are using these medlab tables.
This table is currently only used for LabCorp, but may be utilized by other third party lab
services in the future. These fields are required for the LabCorp result report, used to link the result to an order,
or for linking a parent and child result. Contains data from the OBX, ZEF, and applicable NTE segments.
Primary key.
FK to medlab.medLabNum. Each MedLab object can have one or more results pointing to it.
OBX.3.1 - Observation Identifier. Reflex results will have the ObsID of the parent in OBR.26 for linking.
OBX.3.2 - Observation Text. LabCorp report field "TESTS". LabCorp test name.
OBX.3.4 - Alternate Identifier (LOINC). This is the LOINC code for the observation.
When displaying the results, LabCorp requires OBX.3.2, the text name of the test to be displayed, not the LOINC code.
But we will store it so we can link to the LOINC code table for reporting purposes.
OBX.3.5 - Alternate Observation Text (LOINC Description). The LOINC code description for the observation.
We will display OBX.3.2 per LabCorp requirements, but we will store this description for reporting purposes.
OBX.4 - Observation Sub ID. Used to aid in the identification of results with the same Observation ID (OBX.3) within a given OBR.
This value is used to tie the results to the same organism. The value in OBX.5.3 tells whether this OBX is the organism, observation, or
antibiotic and then the value in OBX.4 links them together as to whether this is for organism #1, organism #2, etc.
OBX.5.1 - Observation Value. LabCorp report field "RESULT".
Can be null if coded entries, prelims, canceled, or >21 chars and being returned as an attached NTE.
"TNP" will be reported for Test Not Performed. For value >21 chars in length: OBX.2 will be 'TX' for text,
OBX.5 will be NULL (empty field), and the value will be in attached NTEs.
Examples: Value less than 21 chars:
OBX|1|ST|001180^Potassium, Serum^L||K+ is >6.5 mEq/L.||3.5-5.5|A||N|F|19830527||200605040929|01|
Value >21 chars:
OBX|6|TX|001180^Potassium, Serum^L||||3.5-5.5|||N|C|19830527||200511071406|01|
NTE|1|L|Red cells observed in serum. Glucose may be falsely decreased.
NTE|2|L|Potassium may be falsely increased.
OBX.5.3 - Data Subtype. Used to identify the coding system. Required if Discrete Microbiology testing is ordered to identify
Microbiology Result Type. Example of use: If OBX.5.3 is ORM, then the observation sub ID in OBX.4 is used to associate the result with
a specific organism. OBX.4 might contain 1, 2, or 3 meaning the result is for organism #1, organism #2, or organism #3.
OBX.6.1 - Identifier. LabCorp report field "UNITS". Units of measure, if too large it will be in the NTE segment.
OBX.7 - Reference Ranges. LabCorp report field "REFERENCE INTERVAL". Only if applicable.
OBX.8 - Abnormal Flags. LabCorp report field "FLAG". Blank or null is normal. When this is displayed on the LabCorp report
it must be the human readable display name, so for example _gt (>) is displayed as "Panic High" and _lt (<) is "Panic Low".
OBX.11 - Observation Result Status.
OBX.14 - Date/Time of Observation. yyyyMMddHHmm format in the message, no seconds.
Date and time tech entered result into the Lab System.
OBX.15 - Producer ID (Producer’s Reference). LabCorp report field "LAB". ID of LabCorp Facility responsible for performing the
testing. The Lab Name is supplied in the ZPS segment.
FK to document.DocNum. ZEF.2 - Embedded File. Each result may have one or more ZEF segments for embedded files.
The base-64 text version of the PDF is sent in ZEF.2. If the file size exceeds 50k, then multiple segments will be sent with 50k blocks
of the text. When processing, we will concatenate all ZEF.2 fields, create the PDF document, store the file in the patient's image folder,
and create an entry in the document table. Then update this field with the pointer to the document table entry.
NTE.3 at the OBX level. The NTE segment is repeatable and the Comment Text component is limited to 78 characters. Multiple NTE
segments can be used for longer comments. All NTE segments at the OBX level will be concatenated and stored in this one field.
The EHRLabSpecimen table is structured to tightly with the HL7 standard and should have names that more reflect how the user will
consume the data and for that reason for actual implementation we are using these medlab tables.
Medical lab specimen. Contains data from the SPM segment. Each MedLab object can have 0 to many specimen segments.
Each segment will be its own row in this table.
Primary key.
FK to medlab.MedLabNum. Each MedLab object can have 0 to many specimens pointing to it.
SPM.2 - Specimen ID. Unique identifier for the specimen as referenced by the Placer application, the Filler application, or both.
The value sent in this field should be the identification value sent on the specimen container.
SPM.14 - Specimen Description. Additional information about the specimen.
SPM.17 - Specimen Collection Date/Time. yyyyMMddHHmm format in the message, no seconds. The date and time when the specimen was
acquired from the source. This is a DR - Date/Time Range data type, so it may have more than one component if a specimen was collected over
a period of time. The first component is the start date/time so we will make sure to only store SPM.17.1 in this field.
A mount shows in the images module just like other images in the tree. But it is just a container for images within it rather than an actual image itself.
Primary key.
FK to patient.PatNum
FK to definition.DefNum. Categories for documents.
The date at which the mount itself was created. Has no bearing on the creation date of the images the mount houses.
Used to provide a document description in the image module tree-view.
Enum:ImageType This is so that an image can be properly associated with the mount in the image module tree-view.
The type of image for images module.
0- Includes scanned documents and screenshots.
1
2
3- For instance a Word document or a spreadsheet. Not an image.
4- For xray mount sets.
To allow the user to enter specific information regarding the exam and tooth numbers, as well as points on interest in the xray images.
The static width of the mount, in pixels.
The static height of the mount, in pixels.
THIS TABLE IS NOT BEING USED. These can be freely deleted, renamed, moved, etc. without affecting any patient info. mountitemdef
Primary key.
.
The order that the mount defs will show in various lists.
Set to true if this is just xrays. If true, this prevents image from being scaled to fit inside the mount. If false (composite photographs for example) then the images will be scaled to fit inside the mount. Later, the basic appearance or background color might be set based on this flag as well.
The width of the mount, in pixels. For radiograph mounts, this could be very large. It must be large enough for the radiographs to fit in the mount without scaling. For photos, it should also be large so that the scaling won't be too noticeable. Shrinking to view or print will always produce nicer results than enlarging to view or print.
Height of the mount in pixels.
These are always attached to a mount and are constant. Should not be deleted, but rather updated if geometry changes. Documents are then attached to MountItems using Document.MountItemNum field.
Primary key.
FK to mount.MountNum.
The x position, in pixels, of the item on the mount.
The y position, in pixels, of the item on the mount.
The ordinal position of the item on the mount.
The scaled or unscaled width of the mount item in pixels.
The scaled or unscaled height of the mount item in pixels.
THIS TABLE IS NOT BEING USED. These are always attached to mountdefs. Can be deleted without any problems.
Primary key.
FK to mountdef.MountDefNum.
The x position, in pixels, of the item on the mount.
The y position, in pixels, of the item on the mount.
Ignored if mount IsRadiograph. For other mounts, the image will be scaled to fit within this space. Any cropping, rotating, etc, will all be defined in the original image itself.
Ignored if mount IsRadiograph. For other mounts, the image will be scaled to fit within this space. Any cropping, rotating, etc, will all be defined in the original image itself.
Primary key.
Internal data type to be associated with.
This should be a Primary Key to a Table Type defined by the IDType field. Example: If IDType==Patient, then this field should be a PatNum that is a FK to Patient.Patnum
The OID extension, when combined with rootExternal it uniquely identifies an object.
The OID root, when combined with IDExternal it uniquely identifies an object.
Primary key.
Internal data type to be associated with OIDRoot
This is the root OID for this data type, when combined with extension, uniquely identifies a single object.
Each row is a single operatory or column in the appts module.
Primary key
The full name to show in the column.
5 char or less. Not used much.
The order that this op column will show. Changing views only hides some ops; it does not change their order. Zero based.
Used instead of deleting to hide an op that is no longer used.
FK to provider.ProvNum. The dentist assigned to this op. If more than one dentist might be assigned to an op, then create a second op and use one for each dentist. If 0, then no dentist is assigned.
FK to provider.ProvNum. The hygienist assigned to this op. If 0, then no hygienist is assigned.
Set true if this is a hygiene operatory. The hygienist will then be considered the main provider for this op.
FK to clinic.ClinicNum. 0 if no clinic.
If true patients put into this operatory will have status set to prospective.
Operatories with IsWebSched set to true will be the ONLY operatories considered when searching for available time slots.
This table is only used by one customer. 1:1 relationship to procedurelog table.
Primary key.
FK to procedurelog.ProcNum
Enum:OrionDPC NotSpecified=0,None=1,_1A=2,_1B=3,_1C=4,_2=5,_3=6,_4=7,_5=8.
0- Not Specified
1- None
2- Treatment to be scheduled within 1 calendar day
3- Treatment to be scheduled within 30 calendar days
4- Treatment to be scheduled within 60 calendar days
5– Treatment to be scheduled within 120 calendar days
6– Treatment to be scheduled within 1 year
7– No further treatment is needed, no appointment needed
8– No appointment needed
System adds days to the diagnosis date based upon the DPC entered for that procedure. If DPC = none the system will return “No Schedule by Date”.
Default to current date. Provider shall have to ability to edit with a previous date, but not a future date.
Enum:OrionStatus None=0,TP=1,C=2,E=4,R=8,RO=16,CS=32,CR=64,CA-Tx=128,CA-ERPD=256,CA-P/D=512,S=1024,ST=2048,W=4096,A=8192
0- None. While a normal orion proc would never have this status2, it is still needed for flags in ChartViews. And it's also possible that a status2 slipped through the cracks and was not assigned, leaving it with this value.
1– Treatment planned
2– Completed
4– Existing prior to incarceration
8– Refused treatment
16– Referred out to specialist
32– Completed by specialist
64– Completed by registry
128- Cancelled, tx plan changed
256- Cancelled, eligible parole
512- Cancelled, parole/discharge
1024– Suspended, unacceptable plaque
2048- Stop clock, multi visit
4096– Watch
8192– Alternative
.
Indicates in the clinical note that effective communication was used for this encounter.
.
Enum:OrionDPC None=0,1A=1,1B=2,1C=3,2=4,3=5,4=6,5=7
0- Not Specified
1- None
2- Treatment to be scheduled within 1 calendar day
3- Treatment to be scheduled within 30 calendar days
4- Treatment to be scheduled within 60 calendar days
5– Treatment to be scheduled within 120 calendar days
6– Treatment to be scheduled within 1 year
7– No further treatment is needed, no appointment needed
8– No appointment needed
For the orthochart feature, each row in this table is one cell in that grid. An empty cell often corresponds to a missing db table row.
Primary key.
FK to patient.PatNum.
Date of service.
.
.
Links one orthocharttab to one displayfield. Allows for displayfields to be part of multiple orthocharttabs.
FK to orthocharttab.OrthoChartTabNum.
Overrides the displayfield ItemOrder, so that each display field can have a different order in each ortho chart tab.
Links one orthocharttab to one displayfield. Allows for displayfields to be part of multiple orthocharttabs.
Primary key.
Overrides the displayfield ItemOrder, so that each display field can have a different order in each ortho chart tab.
FK to orthocharttab.OrthoChartTabNum.
FK to displayfield.DisplayFieldNum.
These are custom fields added and managed by the user.
Primary key.
FK to patient.PatNum
FK to patfielddef.FieldName. The full name is shown here for ease of use when running queries. But the user is only allowed to change fieldNames in the patFieldDef setup window.
Any text that the user types in. For picklists, this will contain the picked text. For dates, this is stored as the user typed it, after validating that it could be parsed. So queries that involve dates won't work very well. If we want better handling of date fields, we should add a column to this table. Checkbox will either have a value of 1, or else the row will be deleted from the db. Currency is handled in a culture neutral way, just like other currency in the db.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
These are the definitions for the custom patient fields added and managed by the user.
Primary key.
The name of the field that the user will be allowed to fill in the patient info window.
Enum:PatFieldType Text=0,PickList=1,Date=2,Checkbox=3,Currency=4
0
1
2-Stored in db as entered, already localized. For example, it could be 2/04/11, 2/4/11, 2/4/2011, or any other variant. This makes it harder to create queries that filter by date, but easier to display dates as part of results.
3-If checked, value stored as "1". If unchecked, row deleted.
4-This seems to have been added without implementing. Not sure what will happen if someone tries to use it.
The text that contains pick list values.
One row for each patient. Includes deleted patients.
Primary key.
Last name.
First name.
Middle initial or name.
Preferred name, aka nickname.
Enum:PatientStatus
0
1
2
3
4
5
6- Not an actual patient yet.
Enum:PatientGender
Known as administrativeGender (HL7 OID of 2.16.840.1.113883.5.1) Male=M, Female=F, Unknown=Undifferentiated=UN.
0
1
2- Not a joke. Required by HIPAA for privacy. Required by ehr to track missing entries. EHR/HL7 known as undifferentiated (UN).
Enum:PatientPosition Marital status would probably be a better name for this column.
0
1
2
3
4
Age is not stored in the database. Age is always calculated as needed from birthdate.
In the US, this is 9 digits, no dashes. For all other countries, any punctuation or format is allowed.
.
Optional second address line.
.
2 Char in USA. Used to store province for Canadian users.
Postal code. For Canadian claims, it must be ANANAN. No validation gets done except there.
Home phone. Includes any punctuation
.
.
FK to patient.PatNum. Head of household.
Single char. Shows at upper right corner of appointments. Suggested use is A,B,or C to designate creditworthiness,
but it can actually be used for any purpose.
.
Dear __. This field does not include the "Dear" or a trailing comma. If this field is blank, then the typical salutation is
FName. Or, if a Preferred name is present, that is used instead of FName.
Current patient balance.(not family). Never subtracts insurance estimates.
FK to provider.ProvNum. The patient's primary provider. Required. The database maintenance tool ensures that every patient
always has this number set, so the program no longer has to handle 0.
FK to provider.ProvNum. Secondary provider (hygienist). Optional.
FK to feesched.FeeSchedNum. Fee schedule for this patient. Usually not used. If missing, the practice default fee schedule is
used. If patient has insurance, then the fee schedule for the insplan is used.
FK to definition.DefNum. Must have a value, or the patient will not show on some reports.
Name of folder where images will be stored. Not editable for now.
Address or phone note. Unlimited length in order to handle data from other programs during a conversion.
Family financial urgent note. Only stored with guarantor, and shared for family.
Individual patient note for Urgent medical.
Individual patient note for Appointment module note.
Single char. Nonstudent='N' or blank, Parttime='P', Fulltime='F'.
College name. If Canadian, then this is field C10 and must be filled if C9 (patient.CanadianEligibilityCode) is 1 and patient
is 18 or older.
Max 15 char. Used for reference to previous programs.
Optional. The Medicaid ID for this patient.
Aged balance from 0 to 30 days old. Aging numbers are for entire family. Only stored with guarantor.
Aged balance from 31 to 60 days old. Aging numbers are for entire family. Only stored with guarantor.
Aged balance from 61 to 90 days old. Aging numbers are for entire family. Only stored with guarantor.
Aged balance over 90 days old. Aging numbers are for entire family. Only stored with guarantor.
Insurance Estimate for entire family.
Total balance for entire family before insurance estimate. Not the same as the sum of the 4 aging balances because this can be
negative. Only stored with guarantor.
FK to employer.EmployerNum.
Not used since version 2.8.
FK to county.CountyName, although it will not crash if key absent.
Enum:PatientGrade Gradelevel.
Grade level used in public health.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Enum:TreatmentUrgency Used in public health screenings.
For public health. Unknown, NoProblems, NeedsCarE, or Urgent.
The date that the patient first visited the office. Automated.
FK to clinic.ClinicNum. Can be zero if not attached to a clinic or no clinics set up.
For now, an 'I' indicates that the patient has insurance. This is only used when displaying appointments.
It will later be expanded. User can't edit.
The Trophy bridge is inadequate, this attempts to make it usable for offices that have invested in Trophy hardware.
This simply indicates whether the 'done' box is checked in the chart module. Used to be handled as a -1 in the NextAptNum field,
but now that field is unsigned.
Set to true if patient needs to be premedicated for appointments, includes PAC, halcion, etc.
Only used in hospitals.
Enum:ContactMethod
0
1
2
3
4
5
6
7
8
Enum:ContactMethod
0
1
2
3
4
5
6
7
8
Enum:ContactMethod
0
1
2
3
4
5
6
7
8
.
.
We do not use this, but some users do, so here it is. 0=none. Otherwise, 1-7 for day.
The primary language of the patient. Typically eng (English), fra (French), spa (Spanish), or similar.
If it's a custom language, then it might look like Tahitian.
Used in hospitals. It can be before the first visit date. It typically gets set automatically by the hospital system.
Includes any punctuation. For example, Mr., Mrs., Miss, Dr., etc.
There is no selection mechanism yet for user; they must simply type it in.
Amount "due now" for all payment plans such that someone in this family is the payment plan guarantor.
This is the total of all payment plan charges past due (taking into account the PayPlansBillInAdvanceDays setting) subtract the amount
already paid for the payment plans. Only stored with family guarantor.
FK to site.SiteNum. Can be zero. Replaces the old GradeSchool field with a proper foreign key.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or
program updates. Not user editable.
FK to patient.PatNum. Can be zero. Person responsible for medical decisions rather than finances. Guarantor is still responsible
for finances. This is useful for nursing home residents. Part of public health.
C09. Eligibility Exception Code. A number between 1-4. 0 is not acceptable for e-claims.
1=FT student, 2=disabled, 3=disabled student, 4=code not applicable. Warning. 4 is a 0 if using CDAnet version 02.
This column should have been created as an int.
Number of minutes patient is asked to come early to appointments.
The hashed password for online access to patient portal for this patient. Blank if no password set yet.
Blank password indicates no online access.
Enum:ContactMethod Used for EHR.
0
1
2
3
4
5
6
7
8
FK to patient.PatNum. If this is the same as PatNum, then this is a SuperHead. If zero, then not part of a superfamily.
Synched for entire family. If family is part of a superfamily, then the guarantor for this family will show in the superfamily list in the
Family module for anyone else who is in the superfamily. Only a guarantor can be a superfamily head.
Enum:YN
Unknown,Yes, or No.
0
1
2
EHR smoking status as a SNOMED code. Will always be the most recent smoking status for the patient.
Country name. Only used by HQ to add country names to statements.
Needed for EHR syndromic surveillance messaging. Used in HL7 PID-29. Also for feature request #3040. Date and time because we
need precision to the minute in syndromic surveillence messging.
A number between 1 and 31 that is the day of month that repeat charges should be applied to this account.
Previously this was determined by the start date of the repeate charges.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
0 by default. If true, this guarantor should be included in superbilling statements.
Essentially more columns in the patient table. They are stored here because these fields can contain a lot of information, and we want to try to keep the size of the patient table a bit smaller.
FK to patient.PatNum. Also the primary key for this table. Always one to one relationship with patient table. A new patient might not have an entry here until needed.
Only one note per family stored with guarantor.
No longer used.
Medical Summary
Service notes
Complete current Medical History
Shows in the Chart module just below the graphical tooth chart.
Each patient may have multiple races. Used to represent a race or an ethnicity for a patient.
Primary key.
FK to patient.PatNum.
Enum:PatRace
This enum was not able to completely replace the old enum because we keep string representations of the old enums in certain places like sheets and HL7.
0 - Hidden for EHR.
1 - CDCREC:2054-5 Race
2 - CDCREC:1002-5 Race
3 - CDCREC:2028-9 Race
4 - Our hard-coded option for EHR reporting.
5 - CDCREC:2076-8 Race
6 - CDCREC:2135-2 Ethnicicty. If EHR is turned on, our UI will force this to be supplemental to a base 'race'.
7 - We had to keep this for backward compatibility. Hidden for EHR because it's explicitly not allowed.
8 - CDCREC:2131-1 Race.
9 - CDCREC:2106-3 Race
10 - CDCREC:2186-5 Ethnicity. We originally used the lack of Hispanic to indicate NonHispanic. Now we are going to explicitly store NonHispanic to make queries for ClinicalQualityMeasures easier.
11 - Our hard-coded option for EHR reporting.
FK to cdcrec.CdcrecCode. This code is mainly for Ehr reporting, but may also be used for other HL7 messages. Will be blank if they choose a race, like Aboriginal, that is not in the cdcrec code list. We will initially only use 8 of the cdcrec race codes, see enum below.
Each row represents the linking of one insplan to one patient for current coverage. Dropping a plan will delete the entry in this table. Deleting a plan will delete the actual insplan (if no dependencies).
Primary key
FK to patient.PatNum. The patient who currently has the insurance. Not the same as the subscriber.
Number like 1, 2, 3, etc. Represents primary ins, secondary ins, tertiary ins, etc. 0 is not used
For informational purposes only. For now, we lose the previous feature which let us set isPending without entering a plan. Now, you have to enter the plan in order to check this box.
Enum:Relat Remember that this may need to be changed in the Claim also, if already created.
Relationship to subscriber for insurance.
0
1
2
3
4
5
6
7
8
An optional patient ID which will override the insplan.SubscriberID on eclaims. For Canada, this holds the Dependent Code, C17 and E17, and in that use it doesn't override subscriber id, but instead supplements it.
FK to inssub.InsSubNum. Gives info about the subscriber.
A patient payment. Always has at least one split.
Primary key.
FK to definition.DefNum. This will be 0 if this is an income transfer to another provider.
The date that the payment displays on the patient account.
Amount of the payment. Must equal the sum of the splits.
Check number is optional.
Bank-branch for checks.
Any admin note. Not for patient to see. Length 4000.
Set to true to indicate that a payment is split. Just makes a few functions easier. Might be eliminated.
FK to patient.PatNum. The patient where the payment entry will show. But only the splits affect account balances. This has a value even if the 'payment' is actually an income transfer to another provider.
FK to clinic.ClinicNum. Can be 0. Copied from patient.ClinicNum when creating payment, but user can override. Not used in provider income transfers. Cannot be used in financial reporting when grouping by clinic, because payments may be split between clinics.
The date that this payment was entered. Not user editable.
FK to deposit.DepositNum. 0 if not attached to any deposits. Cash does not usually get attached to a deposit; only checks.
Text of printed receipt if the payment was done electronically. Allows reprinting if needed.
True if this was an automatically added recurring CC charge rather then one entered by the user. This was set to true for all historical entries before version 11.1, but will be accurate after that.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Enum:CreditCardSource Indicates the origin of the payment if the payment came from a credit card. Will be 'None' if this payment
did not use a credit card.
0 - Storing the actual credit card number. Not recommended.
1 - Local installation of X-Charge
2 - Credit card created via X-Web (an eService)
3 - PayConnect web service (from within OD).
Enum:ProcessStat Flags whether a payment came from online and needs to be processed.
0 - Payment made within the OD program.
1 - Payment made from the Patient Portal and has been processed within OD.
2 - Payment made from the Patient Portal and needs to be processed within OD.
Used to identify the source of payment for a given patient at a given point in time. As insurance is added and removed, rows should be either automatically inserted into this table, or the user should be prompted to specify what the new payor type is. The DateStart of one payor type is interpreted as the end date of the previous payor type. Example: Patient with no insurance may have payortype.SopCode=81 ("SelfPay"). Patient then adds Medicaid insurance and gets a second new PayorType entry with SopCode=2 (Medicaid).
Primary key.
FK to patient.PatNum.
Date of the beginning of new payor type. End date is the DateStart of the next payor type entry.
FK to sop.SopCode. Examples: 121, 3115, etc.
Max length 2000.
Used to view employee timecards. Timecard entries are not linked to a pay period. Instead, payperiods are setup, and the user can only view specific pay periods. So it feels like they are linked, but it's date based.
Primary key.
The first day of the payperiod
The last day of the payperiod. Inclusive, ignoring time of day.
The date that paychecks will be dated. A few days after the dateStop. Optional.
Each row represents one signed agreement to make payments.
Primary key
FK to patient.PatNum. The patient who had the treatment done.
FK to patient.PatNum. The person responsible for the payments. Does not need to be in the same family as the patient.
Date that the payment plan will display in the account.
Annual percentage rate. eg 18. This does not take into consideration any late payments, but only the percentage used to calculate the amortization schedule.
Generally used to archive the terms when the amortization schedule is created.
FK to insplan.PlanNum. Will be 0 if standard payment plan. But if this is being used to track expected insurance payments, then this will be the foreign key to insplan.PlanNum, and Guarantor will be 0.
The amount of the treatment that has already been completed. This should match the sum of the principal amounts for most situations. But if the procedures have not yet been completed, and the payment plan is to make any sense, then this number must be changed.
FK to inssub.InsSubNum. Will be 0 if standard payment plan. But if this is being used to track expected insurance payments, then this will be the foreign key to inssub.InsSubNum, and Guarantor will be 0.
Enum:PaymentSchedule How often payments are scheduled to be made.
0 - Pay 1 time every month.
1 - Pay 1 time every month on a certain day of the week.
2 - Pay every week per month.
3 - Pay every other week per times per month.
4 - Pay 4 times per year.
The number of payments that will be made to complete the payment plan.
Payment amount due per payment plan charge.
The amount paid toward the payment plan when it was first opened.
True if this payment plan is closed. Closed should not be edited.
One of the dated charges attached to a payment plan. This has nothing to do with payments, but rather just causes the amount due to increase on the date of the charge. The amount of the charge is the sum of the principal and the interest.
Primary key.
FK to payplan.PayPlanNum.
FK to patient.PatNum. The guarantor account that each charge will affect.
FK to patient.PatNum. The patient account that the principal gets removed from.
The date that the charge will show on the patient account. Any charge with a future date will not show on the account yet and will not affect the balance.
For Debits, this is the principal charge amount. For Credits (version 2 only), then this is the credit amount.
For Debits, this is the interest portion of this payment. Always 0 for Credits.
Any note about this particular payment plan charge
FK to provider.ProvNum. Since there is no ProvNum field at the payplan level, the provider must be the same for all payplancharges.
It's initially assigned as the patient priProv. Payments applied should be to this provnum,
although the current user interface does not help with this.
FK to clinic.ClinicNum. Since there is no ClincNum field at the payplan level, the clinic must be the same for all payplancharges. It's initially assigned using the patient clinic. Payments applied should be to this clinic, although the current user interface does not help with this.
Enum: The charge type of the payment plan. 0 - Debit, 1 - Credit. Only relevant for those on Payment Plan Version 2.
FK to procedurelog.ProcNum. The procedure that this payplancharge is attached to. Only applies to credits.
Always 0 for debits. Can be 0 for credits not attached to a procedure.
Always attached to a payment. Always affects exactly one patient account and one provider.
Primary key.
Amount of split.
FK to patient.PatNum.
Procedure date. Typically only used if tied to a procedure. In older versions (before 7.0), this was the date that showed on the account. Frequently the same as the date of the payment, but not necessarily. Not when the payment was made.
FK to payment.PayNum. Every paysplit must be linked to a payment.
No longer used.
No longer used
FK to provider.ProvNum.
FK to payplan.PayPlanNum. 0 if not attached to a payplan.
Date always in perfect synch with Payment date.
FK to procedurelog.ProcNum. 0 if not attached to a procedure.
Date this paysplit was created. User not allowed to edit.
FK to definition.DefNum. Usually 0 unless this is a special unearned split.
FK to clinic.ClinicNum. Can be 0. Need not match the ClinicNum of the Payment, because a payment can be split between clinics.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
FK to paysplit.SplitNum. Can be 0. Indicates that this paysplit is meant to counteract a prepayment paysplit.
One perio exam for one patient on one date. Has lots of periomeasures attached to it.
Primary key.
FK to patient.PatNum.
.
FK to provider.ProvNum.
One row can hold up to six measurements for one tooth, all of the same type. Always attached to a perioexam.
Primary key.
FK to perioexam.PerioExamNum.
Enum:PerioSequenceType eg probing, mobility, recession, etc.
In perio, the type of measurements for a given row.
0
1
2-AKA recession.
3-MucoGingivalJunction- the division between attached and unattached mucosa.
4
5-For the skiptooth type, set surf to none, and ToothValue to 1.
6. Sum of flags for bleeding(1), suppuration(2), plaque(4), and calculus(8).
7. But this type is never saved to the db. It is always calculated on the fly.
Valid values are 1-32. Every measurement must be associated with a tooth.
This is used when the measurement does not apply to a surface(mobility and skiptooth). Valid values for all surfaces are 0 through 19, or -1 to represent no measurement taken.
-1 represents no measurement. Values of 100+ represent negative values (only used for Gingival Margins). e.g. To use a value of 105, subtract it from 100. (100 - 105 = -5)
.
.
.
.
.
An individual pharmacy store.
Primary key.
NCPDPID assigned by NCPDP. Not used yet.
For now, it can just be a common description. Later, it might have to be an official designation.
Includes all punctuation.
Includes all punctuation.
.
Optional.
.
Two char, uppercase.
.
A freeform note for any info that is needed about the pharmacy, such as hours.
The last date and time this row was altered. Not user editable.
Only used internally by OpenDental, Inc. Not used by anyone else.
Primary key.
FK to patient.PatNum.
The actual phone number for the patient. Includes any punctuation. No leading 1 or plus, so almost always 10 digits.
Links one planned appointment to one patient. Allows multiple planned appointments per patient. Also see the PlannedIsDone field. A planned appointment is an appointment that will show in the Chart module and in the Planned appointment tracker. It will never show in the Appointments module. In other words, it is the suggested next appoinment rather than an appointment that has already been scheduled.
Primary key.
FK to patient.PatNum.
FK to appointment.AptNum.
One-indexed order of item in group of planned appts.
If an existing popup message gets changed, then an archive first gets created that's a copy of the original. This is so that we can track historical changes. When a new one gets created, all the archived popups will get automatically repointed to the new one. If you "delete" a popup, it actually archives that popup. All the other archives of that popup still point to the newly archived popup, but now there is no popup in that group with the IsArchived flag not set.
Primary key.
FK to patient.PatNum. If PopupLevel is Family/SuperFamily then this must be a guarantor/super family head.
The text of the popup.
If true, then the popup won't automatically show when a patient is selected. Kind of useless except for offices that want to still show historical popups.
Enum:EnumPopupLevel 0=Patient, 1=Family, 2=Superfamily. If Family, then this Popup will apply to the entire family and PatNum will the Guarantor PatNum. If Superfamily, then this popup will apply to the entire superfamily and PatNum will be the head of the superfamily. This column will need to be synched for all family actions where the guarantor changes.
0=Patient
1=Family
2=SuperFamily
FK to userod.UserNum.
The server time that this note was entered. Cannot be changed by user. Does not get changed automatically when level or isDisabled gets changed. If note itself changes, then a new popup is created along with a new DateTimeEntry. Current popup's edit date gets set to the previous entry's DateTimeEntry
Indicates that this is not the most current popup and that it is an archive. True for any archived or "deleted" popups.
This will be zero for current popups that show when a patient is selected. Archived popups will have a value which is the FK to its parent Popup. The parent popup could be the most recent popup or another archived popup. Will be zero for current and "deleted" popups.
Stores small bits of data for a wide variety of purposes. Any data that's too small to warrant its own table will usually end up here.
The text 'key' in the key/value pairing.
The stored value.
Primary key.
Documentation on usage and values of each pref. Mostly deprecated now in favor of using XML comments in the code.
One printer selection for one situation for one computer.
Primary key.
FK to computer.ComputerNum. This will be changed some day to refer to the computername, because it would make more sense as a key than a cryptic number.
Enum:PrintSituation One of about 10 different situations where printing takes place. If no printer object exists for a situation, then a default is used and a prompt is displayed.
0- Covers any printing situation not listed separately.
TP and perio
The name of the printer as set from the specified computer.
If true, then user will be prompted for printer. Otherwise, print directly with little user interaction.
An individual procedure code color range.
Primary key.
Procedure code range defined by user. Includes commas and dashes, but no spaces. The codes need not be valid since they are ranges.
Color that shows in appointments
Adds most recent completed date to ProcsColored
The 'buttons' to show in the Chart module. They must have items attached in order to do anything.
Primary key
The text to show on the button.
Order that they will show in the Chart module.
FK to definition.DefNum.
If no image, then the clob will be an empty string. In this case, the bitmap will be null when loaded from the database.
Attached to procbuttons. These tell the program what to do when a user clicks on a button. There are two types: proccodes or autocodes.
Primary key.
FK to procbutton.ProcButtonNum.
Do not use.
FK to autocode.AutoCodeNum. 0 if this is a procedure code.
FK to procedurecode.CodeNum. 0 if this is an autocode.
Used to customize quick buttons in the chart module.
Primary Key.
Description used for display.
FK to procedurecode.ProcCode.
Surfaces.
Zero based YPos, row number within panel.
Items within each row are sorted using item order. Smallest item order will be drawn on the left.
If true, this "button" will be displayed as a label.
Stores the default note and time increments for one procedure code for one provider. That way, an unlimited number of providers can each have different notes and times. These notes and times override the defaults which are part of the procedurecode table. So, for single provider offices, there will be no change to the current interface.
Primary Key.
FK to procedurecode.CodeNum.
FK to provider.ProvNum.
The note.
X's and /'s describe Dr's time and assistant's time in the same increments as the user has set.
A list setup ahead of time with all the procedure codes used by the office. Every procedurelog entry which is attached to a patient is also linked to this table.
Primary Key. This happened in version 4.8.7.
Was Primary key, but now CodeNum is primary key. Can hold dental codes, medical codes, custom codes, etc.
The main description.
Abbreviated description.
X's and /'s describe Dr's time and assistant's time in the same increments as the user has set.
FK to definition.DefNum. The category that this code will be found under in the search window. Has nothing to do with insurance categories.
Enum:TreatmentArea
Used in procedurecode setup to specify the treatment area for a procedure. This determines what fields are available when editing an appointment.
0-Same as 3 mouth.
1
2
3
4
5
6
7
If true, do not usually bill this procedure to insurance.
True if Crown,Bridge,Denture, or RPD. Forces user to enter Initial or Replacement and Date.
The default procedure note to copy when marking complete.
Identifies hygiene procedures so that the correct provider can be selected.
No longer used.
For Medicaid. There may be more later.
FK to procedurecode.ProcCode. The actual medical code that is being referenced must be setup first. Anytime a procedure it added, this medical code will also be added to that procedure. The user can change it in procedurelog.
Used by some offices even though no user interface built yet. SalesTaxPercentage has been added to the preference table to store the amount of sales tax to apply as an adjustment attached to a procedurelog entry.
Enum:ToothPaintingType
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
If set to anything but 0, then this will override the graphic color for all procedures of this code, regardless of the status.
When creating treatment plans, this description will be used instead of the technical description.
Only used in Canada. Set to true if this procedure code is only used as an adjunct to track the lab fee.
This is true if this procedure code existed before ADA code distribution changed at version 4.8, false otherwise.
Support for Base Units for a Code (like anesthesia). Should normally be zero.
FK to procedurecode.ProcCode. Used for posterior composites because insurance substitutes the amalgam code when figuring the coverage.
Enum:SubstitutionCondition Used so that posterior composites only substitute if tooth is molar. Ins usually pays for premolar composites.
Used for insurance substitutions conditions of procedurecodes. Mostly for posterior composites.
0
1
2
Last datetime that this row was inserted or updated.
Set to true if the procedure takes more than one appointment to complete.
11 digits or blank, enforced. For 837I
Gets copied to procedure.RevCode. For 837I
FK to provider.ProvNum. 0 for none. Otherwise, this provider will be used for this code instead of the normal provider.
For Canadian customers, tracks scaling insurance and periodontal scaling units for patients depending on coverage.
Set to true for radiology procedures. An EHR core measure uses this flag to help determine the denominator for rad orders.
Default note inserted to claim note when claim is created.
Database table is procedurelog. A procedure for a patient. Can be treatment planned or completed. Once it's completed, it gets tracked more closely be the security portion of the program. A procedure can NEVER be deleted. Status can just be changed to "deleted".
Primary key.
FK to patient.PatNum
FK to appointment.AptNum. Only allowed to attach proc to one appt(not counting planned appt)
No longer used.
Procedure date that will show in the account as the date performed. If just treatment planned, the date can be the date it was tp'd, or the date can be min val if we don't care. Also see ProcTime column.
Procedure fee.
Surfaces, or use "UL" etc for quadrant, "2" etc for sextant, "U","L" for arches. Sextants in the United States are: 1 (Upper Right), 2 (Upper Anterior), 3 (Upper Left), 4 (Lower Left), 5 (Lower Anterior), 6 (Lower Right). In Canada, Sextants are 03 through 08 (add 2 to the US sextant and prepend a zero).
May be blank, otherwise 1-32, 51-82, A-T, or AS-TS, 1 or 2 char. For Canadian users, using FDI nomenclature, we use 51 as a placeholder for supernumerary teeth, which is tooth number 99 according to CDHA standards (2/17/2014). Logic for this is handled in the tooth logic class.
May be blank, otherwise is series of toothnumbers separated by commas.
FK to definition.DefNum, which contains the text of the priority.
Enum:ProcStat TP=1,Complete=2,Existing Cur Prov=3,Existing Other Prov=4,Referred=5,Deleted=6,Condition=7.
Procedure Status.
1- Treatment Plan.
2- Complete.
3- Existing Current Provider.
4- Existing Other Provider.
5- Referred Out.
6- Deleted.
7- Condition.
8- Treatment Plan inactive.
FK to provider.ProvNum.
FK to definition.DefNum, which contains text of the Diagnosis.
FK to appointment.AptNum. Was called NextAptNum in older versions. Allows this procedure to be attached to a Planned appointment as well as a standard appointment.
Enum:PlaceOfService Only used in Public Health. Zero(Office) until procedure set complete. Then it's set to the value of the DefaultProcedurePlaceService preference.
0. CPT code 11
1. CPT code 12
2. CPT code 21
3. CPT code 22
4. CPT code 31
5. CPT code 33. In X12, a similar code AdultLivCareFac 35 is mentioned.
6. CPT code ?. We use 11 for office.
7. CPT code 15
8. CPT code 03
9. CPT code 26
10. CPT code 50
11. CPT code 71
12. CPT code 72
13. CPT code 23
14. CPT code 24
Single char. Blank=no, I=Initial, R=Replacement.
For a prosthesis Replacement, this is the original date.
This note goes out on e-claims. Not visible in Canada.
This is the date this procedure was entered or set complete. If not status C, then the value is ignored. This date is set automatically when Insert, but older data or converted data might not have this value set. It gets updated when set complete. User never allowed to edit. This will be enhanced later.
FK to clinic.ClinicNum. 0 if no clinic.
FK to procedurecode.ProcCode. Optional.
Simple text for ICD-9 code. Gets sent with medical claims.
Set true if this medical diagnostic code is the principal diagnosis for the visit. If no principal diagnosis is marked for any procedures on a medical e-claim, then it won't be allowed to be sent. If more than one is marked, then it will just use one at random.
FK to procedurelog.ProcNum. Only used in Canada. If not zero, then this proc is a lab fee and this indicates to which actual procedure the lab fee is attached. For ordinary use, they are treated like two separate procedures. It's only for insurance claims that we need to know which lab fee belongs to which procedure. Two lab fees may be attached to one procedure.
FK to definition.DefNum. Lets some users track charges for certain types of reports. For example, a Medicaid billing type could be assigned to a procedure, flagging it for inclusion in a report mandated by goverment. Would be more useful if it was automated to flow down based on insurance plan type, but that can be added later. Not visible if prefs.EasyHideMedicaid is true.
FK to definition.DefNum. Same as BillingTypeOne, but used when there is a secondary billing type to account for.
FK to procedurecode.CodeNum
Modifier for certain CPT codes.
Modifier for certain CPT codes.
Modifier for certain CPT codes.
Modifier for certain CPT codes.
NUBC Revenue Code for medical/inst billing. Used on UB04 and 837I.
Default is 1. Becomes Service Unit Count on institutional UB claimforms SV205. Becomes Service Unit Count on medical 1500 claimforms SV104. Becomes procedure count on dental claims SV306. Gets multiplied by fee in all accounting calculations.
Base units used for some billing codes. Default is 0. No UI for this field. It is only edited in the ProcedureCode window. The database maint tool changes BaseUnits of all procedures to match that of the procCode. Not sure yet what it's for.
Start time in military. No longer used, but not deleting just in case someone has critical information stored here.
Stop time in military. No longer used, but not deleting just in case someone has critical information stored here.
The date that the procedure was originally treatment planned. Does not change when marked complete.
FK to site.SiteNum.
Set to true to hide the chart graphics for this procedure. For example, a crown was done, but then tooth extracted.
F16, up to 5 char. One or more of the following: A=Repair of a prior service, B=Temporary placement, C=TMJ, E=Implant, L=Appliance lost, S=Appliance stolen, X=none of the above. Blank is equivalent to X for claim output, but one value will not be automatically converted to the other in this table. That will allow us to track user entry for procedurecode.IsProsth.
Used to be part of the ProcDate, but that was causing reporting issues.
Marks the time a procedure was finished.
Automatically updated by MySQL every time a row is added or changed.
FK to definition.DefNum, which contains text of the Prognosis.
Enum:EnumProcDrugUnit For 837I and UB04
0
1 - F2 on UB04.
2 - GR on UB04.
3 - GR on UB04.
4 - ML on UB04.
5 - UN on UB04.
Includes fractions. For 837I
Enum:ProcUnitQtyType For dental, the type is always sent electronically as MultiProcs. For institutional SV204, Days will be sent electronically if chosen, otherwise ServiceUnits will be sent. For medical SV103, MinutesAnesth will be sent electronically if chosen, otherwise ServiceUnits will be sent.
0-Only allowed on dental, and only option allowed on dental. This is also the default for all procs in our UI. For example, 4 PAs all on one line on the e-claim.
1-Only allowed on medical SV103.
2-Allowed on medical SV103 and institutional SV204. This is the default for both medical and inst when creating X12 claims, regardless of what is set on the proc.
3-Only allowed on institutional SV204.
FK to statement.StatementNum. Only used when the statement in an invoice.
If this flag is set, then the proc is locked down tight. No changes at all can be made except to append, sign, or invalidate. Invalidate really just sets the proc to status 'deleted'. An invalidated proc retains its IsLocked status. All locked procs will be status of C or D. Locked group notes will be status of EC or D.
A note that will show directly in the Account module. Also used for repeating charges. Helps distinguish between charges for the same proccode in the same month.
FK to repeatcharge.RepeatChargeNum. Used in repeating charges to determine which procedures belong to each repeating charge. If the
repeat charge that this RepeatChargeNum points to is deleted, this column will not be set to 0 so that a record will still exist that this
procedure came from a repeat charge.
Some procedures require a SNOMED code which indicates that site on the body at which this procedure was performed.
Simple text for ICD-9 code. Gets sent with medical claims.
Simple text for ICD-9 code. Gets sent with medical claims.
Simple text for ICD-9 code. Gets sent with medical claims.
FK to provider.ProvNum. Ordering provider override. Medical eclaims only. Defaults to zero. If set to zero, then the provider referenced by ProvNum (procedure treating provider) will go out on the eclaim instead.
Stores the dollar amount of the discount, not full price. E.g. for a 10% discount, Fee = $160 Discount = $16. This column is used by treatment planned procedures to create an adjustment when set complete. It should not be used as an accurate monetary discount value for completed procedures.
For prosthesis replacement procedures on 5010 eclaims only. If true, indicates that the DateOriginalProsth is an estimated date. Estimated dates are often used when the original prosthesis was performed by another doctor.
The ICD code version for all diagnosis codes on this procedure, including DiagnosisCode, DiagnosisCode2, DiagnosisCode3,
and DiagnosisCode4. Value of 9 for ICD-9, 10 for ICD-10, etc. Default value is 0. This value is copied from the DxIcdVersion preference
when a procedure is created. The user can also manually change the IcdVersion on individual procedures.
Procedures will be flagged as CPOE (Computerized Provider Order Entry) if this procedure was created by a provider.
If a provider views, edits, or has any interaction with this procedure after its creation, it will be flagged as IsCPOE.
Also, there will be a helpful window where providers can go to to "approve" non-CPOE procedures and mark them as CPOE to help meet EHR measures.
If a staff person is logged in and enters this procedure then this is non-CPOE, so false.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
The date the procedure was originally set complete. Will not be updated if the procedure is set incomplete and set complete again.
Links Procedures(groupnotes) to Procedures in a 1-n relationship.
Primary key.
FK to procedurelog.ProcNum.
FK to procedurelog.ProcNum.
A procedure note for one procedure. User does not have any direct control over this table at all. It's handled automatically. When user "edits" a procedure note, the program actually just adds another note. No note can EVER be edited or deleted.
Primary key.
FK to patient.PatNum
FK to procedurelog.ProcNum
The server time that this note was entered. Essentially a timestamp.
FK to userod.UserNum.
The actual note.
There are two kinds of signatures. Topaz signatures use hardware manufactured by that company, and the signature is created by their library. OD signatures work exactly the same way, but are only for on-screen signing.
The encrypted signature. A signature starts as a collection of vectors. The Topaz .sig file format is proprietary. The OD signature format looks like this: 45,68;48,70;49,72;0,0;55,88;etc. It's simply a sequence of points, separated by semicolons. 0,0 represents pen up. Then, a hash is created from the Note, concatenated directly with the userNum. For example, "This is a note3" gets turned into a hash of 2849283940385391 (16 bytes). The hash is used to encrypt the signature data string using symmetric encryption. Therefore, the actual signature cannot be retrieved from the database by ordinary means. Also, the signature info cannot even be retrieved by Open Dental at all unless it supplies the same hash as before, proving that the data has not changed since signed. If OD supplies the correct hash, then it will be able to extract the sequence of vectors which it will then use to display the signature. The OD sigs are not compressed, and the Topaz sigs are. But there is very little difference in their sizes. It would be very rare for a signature to be larger than 1000 bytes.
These are copies of procedures that are attached to treatment plans.
Primary key.
FK to treatplan.TreatPlanNum. The treatment plan to which this proc is attached.
FK to patient.PatNum.
FK to procedurelog.ProcNum. It is very common for the referenced procedure to be missing. This procNum is only here to compare and test the existence of the referenced procedure. If present, it will check to see whether the procedure is still status TP.
The order of this proc within its tp. This is set when the tp is first created and can't be changed. Drastically simplifies loading the tp.
FK to definition.DefNum which contains the text of the priority.
A simple string displaying the tooth number. If international tooth numbers are used, then this will be in international format already. For Canadian users, using FDI nomenclature, we use 51 as a placeholder for supernumerary teeth, which is tooth number 99 according to CDHA standards (2/17/2014). Logic for this is handled in the tooth logic class.
Tooth surfaces or area. This is already converted for international use. If arch or quad, then it will have U,LR, etc.
Not a foreign key. Simply display text. Can be changed by user at any time.
Description is originally copied from procedurecode.Descript, but user can change it.
The fee charged to the patient. Never gets automatically updated.
The amount primary insurance is expected to pay. Never gets automatically updated.
The amount secondary insurance is expected to pay. Never gets automatically updated.
The amount the patient is expected to pay. Never gets automatically updated.
The amount of discount. Used for PPOs and procedure level discounts.
Text from prognosis definition. Can be changed by user at any time.
Text from diagnosis definition. Can be changed by user at any time.
The ProcedureCode abbreviation. Can be changed by user at any time.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
Each row is a bridge to an outside program, frequently an imaging program. Most of the bridges are hard coded, and simply need to be enabled. But user can also add their own custom bridge.
Primary key.
Unique name for built-in program bridges. Not user-editable. enum ProgramName
Description that shows.
True if enabled.
The path of the executable to run or file to open.
Some programs will accept command line arguments.
Notes about this program link. Peculiarities, etc.
If this is a Plugin, then this is the filename of the dll. The dll must be located in the application directory.
If no image, then will be an empty string. In this case, the bitmap will be null when loaded from the database.
Must be a 22 x 22 image, and thus needs (width) x (height) x (depth) = 22 x 22 x 4 = 1936 bytes.
For custom program links only. Stores the template of a file to be generated when launching the program link.
For custom program links only. Stores the path of a file to be generated when launching the program link.
Some program links (bridges), have properties that need to be set. The property names are always hard coded. User can change the value. The property is usually retrieved based on its name.
Primary key.
FK to program.ProgramNum
The description or prompt for this property. Blank for workstation overrides of program path.
The value.
The human-readable name of the computer on the network (not the IP address). Only used when overriding program path. Blank for typical Program Properties.
FK to clinic.ClinicNum
A provider is usually a dentist or a hygienist. But a provider might also be a denturist, a dental student, or a dental hygiene student. A provider might also be a 'dummy', used only for billing purposes or for notes in the Appointments module. There is no limit to the number of providers that can be added.
Primary key.
Abbreviation. There was a limit of 5 char before version 5.4. The new limit is 255 char. This will allow more elegant solutions to various problems. Providers will no longer be referred to by FName and LName. Abbr is used as a human readable primary key.
Order that provider will show in lists. Was 1-based, now 0-based.
Last name.
First name.
Middle inital or name.
eg. DMD or DDS. Was 'title' in previous versions.
FK to feesched.FeeSchedNum.
FK to definition.DefNum.
or TIN. No punctuation
can include punctuation
.
True if hygienist.
Color that shows in appointments
If true, provider will not show on any lists
True if the SSN field is actually a Tax ID Num
No longer used since each state assigns a different ID. Use the providerident instead which allows you to assign a different BCBS ID for each Payor ID.
Signature on file.
.
Color that shows in appointments as outline when highlighted.
FK to schoolclass.SchoolClassNum Used in dental schools. Each student is a provider. This keeps track of which class they are in.
US NPI, and Canadian CDA provider number.
Canadian field required for e-claims. Assigned by CDA. It's OK to have multiple providers with the same OfficeNum. Max length should be 4.
.
FK to ??. Field used to set the Anesthesia Provider type. Used to filter the provider dropdowns on FormAnestheticRecord
If none of the supplied taxonomies works. This will show on claims.
For Canada. Set to true if CDA Net provider.
The name of this field is bad and will soon be changed to MedicalSoftID. This allows an ID field that can be used for HL7 synch with other software. Before this field was added, we were using prov abbreviation, which did not work well.
Provider medical State ID.
Default is false because most providers are persons. But some dummy providers used for practices or billing entities are not persons. This is needed on 837s.
The state abbreviation where the state license number in the StateLicense field is legally registered.
FK to EmailAddress.EmailAddressNum. Optional, can be 0.
Default is false because most providers will not be instructors. Used in Dental Schools
Used to determine which stage of MU the provider is shown. 0=Global preference(Default), 1=Stage 1, 2=Stage 2.
FK to provider.ProvNum
Custom ID used for reports or bridges only.
Enum:ProviderStatus
Status of the provider.
0
1
Tracks which providers have access to eRx based on NPI. Synchronized with HQ.
Primary key.
FK to patient.PatNum. Holder of registration key only for HQ record, in customer record this will be 0.
NPI of a provider from the provider table. May correspond to multiple records in the provider table.
Set to true if the provider with the given NationalProviderID has access to eRx.
True if HQ knows that the provider has completed the Identify Proofing (IDP) process and is allows access to eRx.
A provider can be enabled even when this is false if the provider is an existing provider before version 15.4 (a legacy provider).
Set to true if the NationalProviderID has been sent to HQ. Will be false in customer db until sent.
If true, this tells us that the IsEnabled and IsIdentityProofed flags are set according to HQ records.
Some insurance companies require special provider ID #s, and this table holds them.
Primary key.
FK to provider.ProvNum. An ID only applies to one provider.
FK to carrier.ElectID aka Electronic ID. An ID only applies to one insurance carrier.
Enum:ProviderSupplementalID
Used when submitting e-claims to some carriers who require extra provider identifiers. Usage varies by company. Only used as needed. SiteNumber is the only one that is still used on 5010s. The other 3 have been deprecated and replaced by NPI.
0
1
2
3
The number assigned by the ins carrier.
Each row is one Question for one patient. If a patient has never filled out a questionnaire, then they will have no rows in this table.
Primary key.
FK to patient.PatNum
The order that this question shows in the list.
The original question.
The answer to the question in text form.
FK to formpat.FormPatNum
Each row represents one question on the medical history questionnaire. Later, other questionnaires will be allowed, but for now, all questions are on one questionnaire for the patient. This table has no dependencies, since the question is copied when added to a patient record. Any row can be freely deleted or altered without any problems.
Primary key.
The question as presented to the patient.
The order that the Questions will show.
Enum:QuestionType
0=FreeformText, 1=YesNoUnknown. Allows for later adding other types, 3=picklist, 4, etc
0
1
Quick paste categories are used by the quick paste notes feature.
Primary key.
.
The order of this category within the list. 0-based.
Enum:QuickPasteType Each Category can be set to be the default category for multiple types of notes. Stored as integers separated by commas.
Used by QuickPasteCat to determine which category to default to when opening.
0 - None should never be used. It is simply used as a "default" when adding a new control. Searching for usage of "None" is an easy way to find spots where our pattern was not followed correctly.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Template for quick pasted note feature.
Primary key.
FK to quickpastecat.QuickPasteCatNum. Keeps track of which category this note is in.
The order of this note within it's category. 0-based.
The actual note. Can be multiple lines and possibly very long.
The abbreviation which will automatically substitute when preceded by a ?.
A patient can only have one recall object per type. The recall table stores a few dates that must be kept synchronized with other information in the database. This is difficult. Anytime one of the following items changes, things need to be synchronized: procedurecode.SetRecall, any procedurelog change for a patient (procs added, deleted, completed, status changed, date changed, etc), patient status changed. There are expected to be a few bugs in the synchronization logic, so anytime a patient's recall is opened, it will also update.
During synchronization, the program will frequently alter DateDueCalc, DateDue, and DatePrevious based on trigger procs. The system will also add and delete recalls as necessary. But it will not delete a recall unless all values are default and there is no useful information. When a user tries to delete a recall, they will only be successful if the trigger conditions do not apply. Otherwise, they will have to disable the recall instead.
Primary key.
FK to patient.PatNum.
Not editable. The calculated date due. Generated by the program and subject to change anytime the conditions change. It can be blank (0001-01-01) if no appropriate triggers.
This is the date that is actually used when doing reports for recall. It will usually be the same as DateDueCalc unless user has changed it. System will only update this field if it is the same as DateDueCalc. Otherwise, it will be left alone. Gets cleared along with DateDueCalc when resetting recall. When setting disabled, this field will also be cleared. This is the field to use if converting from another software.
Not editable. Previous date that procedures were done to trigger this recall. It is calculated and enforced automatically. If you want to affect this date, add a procedure to the chart with a status of C, EC, or EO.
The interval between recalls. The Interval struct combines years, months, weeks, and days into a single integer value.
FK to definition.DefNum, or 0 for none.
An administrative note for staff use.
If true, this recall type will be disabled (there's only one type right now). This is usually used rather than deleting the recall type from the patient because the program must enforce the trigger conditions for all patients.
Last datetime that this row was inserted or updated.
FK to recalltype.RecallTypeNum.
Default is 0. If a positive number is entered, then the family balance must be less in order for this recall to show in the recall list.
If a date is entered, then this recall will be disabled until that date.
This will only have a value if a recall is scheduled.
Links one procedurecode to one recalltype. The presence of this trigger is used when determining DatePrevious in the recall table.
Primary key.
FK to recalltype.RecallTypeNum
FK to procedurecode.CodeNum
All recalls are based on these recall types. Recall triggers are in their own table.
Primary key.
.
The interval between recalls. The Interval struct combines years, months, weeks, and days into a single integer value.
Stores the length of the appointment in /'s and X's. Used when scheduling the appointment.
Each / or X represents one unit in regards to the global 'Time Increments' appointment view setting.
This means that recall appointment lengths change along with the 'Time Increments' preference. /X/ could rep 15 mins, 30 mins, etc.
What procedures to put on the recall appointment. Comma delimited set of ProcCodes. (We may change this to CodeNums).
Used in the Accounting section. Each row represents one reconcile. Transactions will be attached to it.
Primary key.
FK to account.AccountNum
User enters starting balance here.
User enters ending balance here.
The date that the reconcile was performed.
If StartingBal + sum of entries selected = EndingBal, then user can lock. Unlock requires special permission, which nobody will have by default.
Attaches a referral to a patient.
Primary key.
FK to referral.ReferralNum.
FK to patient.PatNum.
Order to display in patient info. One-based. Will be automated more in future.
Date of referral.
true=from, false=to
Enum:ReferralToStatus 0=None,1=Declined,2=Scheduled,3=Consulted,4=InTreatment,5=Complete.
0=None,1=Declined,2=Scheduled,3=Consulted,4=InTreatment,5=Complete
0
1
2
3
4
5
Why the patient was referred out, or less commonly, the circumstances of the referral source.
Used to track ehr events. All outgoing referrals default to true. The incoming ones get a popup asking if it's a transition of care.
FK to procedurelog.ProcNum
.
FK to provider.ProvNum. Used when refering out a patient to track the reffering provider for EHR meaningfull use.
All info about a referral is stored with that referral even if a patient. That way, it's available for easy queries.
Primary key.
Last name.
First name.
Middle name or initial.
SSN or TIN, no punctuation. For Canada, this holds the referring provider CDA num for claims.
Specificies if SSN is real SSN.
FK to definition.DefNum.
State
Primary phone, restrictive, must only be 10 digits and only numbers.
.
.
.
.
Holds important info about the referral.
Additional phone no restrictions
Can't delete a referral, but can hide if not needed any more.
Set to true for referralls such as Yellow Pages.
i.e. DMD or DDS
.
FK to patient.PatNum for referrals that are patients.
NPI for the referral
FK to sheetdef.SheetDefNum. Referral slips can be set for individual referral sources. If zero, then the default internal referral slip will be used instead of a custom referral slip.
True if another dentist or physician. Cannot be a patient.
True if checkbox E-mail Trust for Direct is checked.
Keeps track of which product keys have been assigned to which customers. This datatype is only used if the program is being run from a distributor installation. A single customer is allowed to have more than one key, to accommodate for various circumstances, including having multiple physical business locations.
Primary Key.
FK to patient.PatNum. The customer to which this registration key applies.
The registration key as stored in the customer database.
Db note about the registration key. Specifically, the note must include information about the location to which this key pertains, since once at least one key must be assigned to each location to be legal.
This will help later with tracking for licensing.
This is used to completely disable a key. Might possibly even cripple the user's program. Usually only used if reassigning another key due to abuse or error. If no date specified, then this key is still valid.
This is used when the customer cancels monthly support. This still allows the customer to get downloads for bug fixes, but only up through a certain version. Our web server program will use this date to deduce which version they are allowed to have. Any version that was released as a beta before this date is allowed to be downloaded.
This is assigned automatically based on whether the registration key is a US version vs. a foreign version. The foreign version is not able to unlock the procedure codes. There are muliple layers of safeguards in place.
Deprecated.
We have given this customer a free version. Typically in India.
This customer is not using the software with live patient data, but only for testing and development purposes.
Typically 100, although it can be more for multilocation offices.
This is a customer of a reseller, so this customer will not have full access to all our services.
Ehr
Primary key.
Enum:EhrCriterion Problem,Medication,Allergy,Age,Gender,LabResult.
EhrCriterion: Problem,Medication,Allergy,Age,Gender,LabResult
0-DiseaseDef. Shows as 'problem' because it needs to be human readable.
1-Medication
2-AllergyDef
3-Age
4-Gender
5-LabResult
Foreign key to disease.DiseaseDefNum, medicationpat.MedicationNum, or allergy.AllergyDefNum. Will be 0 if Age, Gender, or LabResult are the trigger.
Only used if Age, Gender, or LabResult are the trigger. Examples: "<25"(must include < or >), "Male"/"Female", "INR" (the simple description of the lab test)
Text that will show as the reminder.
Each row represents one charge that will be added monthly.
Primary key
FK to patient.PatNum.
FK to procedurecode.ProcCode. The code that will be added to the account as a completed procedure.
The amount that will be charged. The amount from the procedurecode will not be used. This way, a repeating charge cannot be accidentally altered.
The date of the first charge if UseBillingCycleDays is not enabled. Charges will always be added on the same day of the month as the start date.
If UseBillingCycleDays is enabled, repeat charges will be applied on billing cycle day instead.
If more than one month goes by without applying repeating charges, then multiple procedures will be added.
The last date on which a charge is allowed. So if you want 12 charges, and the start date is 8/1/05, then the stop date should be 7/1/05, not 8/1/05. Can be blank (0001-01-01) to represent a perpetual repeating charge.
Any note for internal use.
Indicates that the note should be copied to the corresponding procedure billing note.
Set to true to have a claim automatically created for the patient with the procedure that is attached to this repeating charge.
Set to false to disable the repeating charge. This allows patients to have repeating charges in their history that are not active. Used mainly for repeating charges with notes that should not be deleted.
If replication is being used, then this stores information about each server. Each row is one server.
Primary key.
The description or name of the server. Optional.
Db admin sets this server_id server variable on each replication server. Allows us to know what server each workstation is connected to. In display, it's ordered by this value. Users are always forced to enter a value here.
The start of the key range for this server. 0 if no value entered yet.
The end of the key range for this server. 0 if no value entered yet.
The AtoZpath for this server. Optional.
If true, then this server cannot initiate an update. Typical for satellite servers.
The description or name of the comptuer that will monitor replication for this server.
For Dental Schools. Requirements needed in order to complete a course.
Primary key.
.
FK to schoolcourse.SchoolCourseNum. Never 0.
FK to schoolclass.SchoolClassNum. Never 0.
For Dental Schools. The purpose of this table changed significantly in version 4.5. This now only stores completed requirements. There can be multiple completed requirements of each ReqNeededNum. No need to synchronize any longer.
Primary key.
FK to reqneeded.ReqNeededNum.
.
FK to schoolcourse.SchoolCourseNum. Never 0.
FK to provider.ProvNum. The student. Never 0.
FK to appointment.AptNum.
FK to patient.PatNum
FK to provider.ProvNum
The date that the requirement was completed.
Each row represents a field that is required to be filled out.
Primary key.
Enum:RequiredFieldType . The area of the program that uses this field.
0 - Edit Patient Information window and Add Family window.
Enum:RequiredFieldName
When one of these conditions is true, the corresponding requiredfield will be triggered.
Primary key.
FK to requiredfield.RequiredFieldNum.
Enum:RequiredFieldName
Enum:ConditionOperator . The operator that is being applied to the ConditionType.
0: =
1: !=
2: >
3: <
4: >=
5: <=
The value that the condition is being compared against. Could be 18, Fulltime, Male, etc.
Enum:LogicalOperator 0-None,1-And,2-Or. This field is only used when comparing continuous values such as age or date.
0
1
2
Many-to-many relationship connecting Rx with DiseaseDef, AllergyDef, or Medication. Only one of those links may be specified in a single row; the other two will be 0.
Primary key.
FK to rxdef.RxDefNum. This alert is to be shown when user attempts to write an Rx for this RxDef.
FK to diseasedef.DiseaseDefNum. Only if DrugProblem interaction. This is compared against disease.DiseaseDefNum using PatNum. Drug-Problem (they call it Drug-Diagnosis) checking is also performed in NewCrop.
FK to allergydef.AllergyDefNum. Only if DrugAllergy interaction. Compared against allergy.AllergyDefNum using PatNum. Drug-Allergy checking is also perfomed in NewCrop.
FK to medication.MedicationNum. Only if DrugDrug interaction. This will be compared against medicationpat.MedicationNum using PatNum. Drug-Drug checking is also performed in NewCrop.
This is typically blank, so a default message will be displayed by OD. But if this contains a message, then this message will be used instead.
False by default. Set to true to flag the drug-drug or drug-allergy intervention as high significance.
Rx definitions. Can safely delete or alter, because they get copied to the rxPat table, not referenced.
Primary key.
The name of the drug.
Directions.
Amount to dispense.
Number of refills.
Notes about this drug. Will not be copied to the rxpat.
Is a controlled substance. This will affect the way it prints.
RxNorm Code identifier. Copied down into medicationpat.RxCui (medical order) when a prescription is written.
RxNorm created from a zip file.
Primary key.
RxNorm Concept universal ID. Throughout the program, this is actually used as the Primary Key of this table rather than the RxNormNum.
Multum code. Only used for crosscoding during import/export with electronic Rx program. User cannot see multum codes. Most of the rows in this table do not have an MmslCode and user searches ignore rows with an MmslCode.
Only used for RxNorms, not Multums.
One Rx for one patient. Copied from rxdef rather than linked to it.
Primary key.
FK to patient.PatNum.
Date of Rx.
Drug name. Example: PenVK 500 mg capsules. Example: Percocet 5/500 tablets.
Directions. Example: Take 2 tablets qid. (qid means 4 times a day)
Amount to dispense. Example: 12 (twelve)
Number of refills. Example: 3. Example: 1 per month.
FK to provider.ProvNum.
Notes specific to this Rx. Will not show on the printout. For staff use only.
FK to pharmacy.PharmacyNum.
Is a controlled substance. This will affect the way it prints.
The last date and time this row was altered. Not user editable.
Enum:RxSendStatus
0
1- This will never be used in production. It was only used for proof of concept when building EHR.
2
3
4
5
6
7
Deprecated. RxNorm Code identifier. Was used in FormRxSend for EHR 2011, but FormRxSend has been deleted. No longer in use anywhere. Still exists in db for now.
NCI Pharmaceutical Dosage Form code. Only used with ehr. For example, C48542 is the code for “Tablet dosing unit”. User enters code manually, and it's only used for Rx Send, which will be deprecated with 2014 cert. Guaranteed that nobody actually uses or cares about this field.
NewCrop returns this unique identifier to use for electronic Rx.
True for historic prescriptions which existed prior to version 15.4. The purpose of this column is to keep historic reports accurate.
One block of time. Either for practice, provider, employee, or blockout.
Primary key.
Date for this timeblock.
Start time for this timeblock.
Stop time for this timeblock.
Enum:ScheduleType 0=Practice,1=Provider,2=Blockout,3=Employee. Practice is used as a way to indicate holidays and as a way to put a
note in for the entire practice for one day. But whenever type is Practice, times will be ignored.
For schedule timeblocks.
0
1
2
3
FK to provider.ProvNum if a provider type.
FK to definition.DefNum if blockout. eg. HighProduction, RCT Only, Emerg.
This contains various types of text entered by the user.
Enum:SchedStatus enumeration 0=Open,1=Closed,2=Holiday. All blocks have a status of Open, but user doesn't see the status.
The "closed" status was previously used to override the defaults when the last timeblock was deleted. But it's nearly phased out now.
Still used by blockouts. Holidays are a special type of practice schedule item which do not have providers attached.
Used to differentiate between Practice SchedType Holidays and Notes.
Schedule status. Open=0,Closed=1,Holiday=2.
0
1
2
FK to employee.EmployeeNum.
Last datetime that this row was inserted or updated.
FK to clinic.ClinicNum if SchedType.Practice (holidays and practice notes) and applies to one clinic (operatories for one clinic). If
SchedType.Practice and this applies to all clinics, or if any other SchedType, ClinicNum will be 0. There won't be any scheduleop rows linking
this schedule to operatories when the type is SchedType.Practice. Instead, the linkage is implied based on the operatory.ClinicNum and applies
to all operatories for the clinic.
Links one schedule block to one operatory. So for a schedule block to show, it must be linked to one or more operatories.
Primary key.
FK to schedule.ScheduleNum.
FK to operatory.OperatoryNum.
Used in dental schools. eg. Dental 2009 or Hygiene 2007.
Primary key.
The year this class will graduate
Description of this class. eg Dental or Hygiene
Used in dental schools. eg OP 732 Operative Dentistry Clinic II.
Primary key.
Alphanumeric. eg PEDO 732.
eg: Pediatric Dentistry Clinic II
Used in public health. This screening table is meant to be general purpose. It is compliant with the popular Basic Screening Survey. It is also designed with minimal foreign keys and can be easily adapted to a tablet PC. This table can be used with only the screengroup table, but is more efficient if provider, school, and county tables are also available.
Primary key
Enum:PatientGender
Known as administrativeGender (HL7 OID of 2.16.840.1.113883.5.1) Male=M, Female=F, Unknown=Undifferentiated=UN.
0
1
2- Not a joke. Required by HIPAA for privacy. Required by ehr to track missing entries. EHR/HL7 known as undifferentiated (UN).
Enum:PatientRaceOld and ethnicity.
Deprecated, use patientrace table instead. Temporarily used for converting old patient races to patientrace entries and screening. Race and ethnicity for patient. Used by public health. The problem is that everyone seems to want different choices. If we give these choices their own table, then we also need to include mapping functions. These are currently used in ArizonaReports, HL7 w ECW, and EHR. Foreign users would like their own mappings.
0
1
2
3
4
5
6
7
8
9
10 - Required by EHR.
Enum:PatientGrade
Grade level used in public health.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Age of patient at the time the screening was done. Faster than recording birthdates.
Enum:TreatmentUrgency
For public health. Unknown, NoProblems, NeedsCarE, or Urgent.
Enum:YN Set to true if patient has cavities.
Unknown,Yes, or No.
0
1
2
Enum:YN Set to true if patient needs sealants.
Unknown,Yes, or No.
0
1
2
Enum:YN
Unknown,Yes, or No.
0
1
2
Enum:YN
Unknown,Yes, or No.
0
1
2
Enum:YN
Unknown,Yes, or No.
0
1
2
Enum:YN
Unknown,Yes, or No.
0
1
2
Optional
FK to screengroup.ScreenGroupNum.
The order of this item within its group.
.
FK to screenpat.ScreenPatNum.
FK to sheet.SheetNum
Used in public health. The database table only has 3 columns. There are 5 additional columns in C# that are not in the databae. These extra columns are used in the UI to organize input, and are transferred to the screen table as needed.
Primary key
Up to the user.
The date of the screening.
Required. Could be the name of the screener and not a provider necessarily.
FK to provider.ProvNum. ProvNAME is always entered, but ProvNum supplements it by letting user select from list.
When entering a provNum, the name will be filled in automatically.
Can be 0 if the provider is not in the list, but provName is required.
Enum:PlaceOfService Describes where the screening will take place.
0. CPT code 11
1. CPT code 12
2. CPT code 21
3. CPT code 22
4. CPT code 31
5. CPT code 33. In X12, a similar code AdultLivCareFac 35 is mentioned.
6. CPT code ?. We use 11 for office.
7. CPT code 15
8. CPT code 03
9. CPT code 26
10. CPT code 50
11. CPT code 71
12. CPT code 72
13. CPT code 23
14. CPT code 24
FK to county.CountyName, although it will not crash if key absent.
FK to site.Description, although it will not crash if key absent.
This allows users to set up a list of students prior to actually going to the school. It also serves to attach the exam sheet to the screening.
Primary key.
FK to patient.PatNum
FK to screengroup.ScreenGroupNum. Every screening is attached to a group (classroom)
Was never used. Was supposed to be FK to sheetdef.Sheet_DEF_Num, so not even named correctly.
Stores an ongoing record of database activity for security purposes. User not allowed to edit.
Primary key.
Enum:Permissions
A hard-coded list of permissions which may be granted to usergroups.
0
1
2
3
4
5
6
7
8. Currently covers a wide variety of setup functions.
9
10. Uses date restrictions. Covers editing AND deleting of completed procs. Deleting non-completed procs is covered by ProcDelete.
11
12
13
14. Uses date restrictions.
15
16. Uses date restrictions.
17
18. Uses date restrictions.
19
20. Not used anymore.
21 Not used anymore.
22
23. Includes setting procedures complete.
24. At least one user must have this permission.
25.
26
27
28
29
30
31. Uses date restrictions.
32. Uses date restrictions.
33
34
35
36
37. Uses date restrictions. Edit Batch Insurance Payment.
38. Uses date restrictions.
39
40. Uses date restrictions.
41. Uses date restrictions. All other equipment functions are covered by .Setup.
42. Uses date restrictions. Also used in audit trail to log web form importing.
43. Uses date restrictions.
44. Uses date restrictions.
45. Uses date restrictions.
46. Shows the fee textbox in the proc edit window.
47
48
49. Uses date restrictions. This only applies to non-completed procs. Deletion of completed procs is covered by ProcComplEdit.
50 - Only used at OD HQ. No user interface.
51- Allows user to edit all providers. This is not fine-grained enough for extremely large organizations such as dental schools, so other permissions are being added as well.
52
53
54
55
56
57
58
59
60
61
62
63
64- There is no user interface in the security window for this permission. It is only used for tracking. FK to CodeNum.
65- There is no user interface in the security window for this permission. It is only used for tracking. Only tracks changes to carriername, not any other carrier info. FK to PlanNum for tracking.
66- (Was named TaskEdit prior to version 14.2.39) When editing an existing task: delete the task, edit original description, or double click on note rows. Even if you don't have the permission, you can still edit your own task description (but not the notes) as long as it's in your inbox and as long as nobody but you has added any notes.
67- Add or delete lists and list columns..
68- There is no user interface in the security window for this permission. It is only used for tracking. Tracks copying of patient information. Required by EHR.
69- There is no user interface in the security window for this permission. It is only used for tracking. Tracks printing of patient information. Required by EHR.
70- There is no user interface in the security window for this permission. It is only used for tracking. Tracks viewing of patient medical information.
71- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and editing of patient problems.
72- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and edting of patient medications.
73- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and editing of patient allergies.
74- There is no user interface in the security window for this permission. It is only used for tracking. Tracks creation and editing of patient family health history.
75- There is no user interface in the security window for this permission. It is only used for tracking. Patient Portal access of patient information. Required by EHR.
76
77- Assign this permission to a staff person who will administer setting up and editing Dental School Students in the system.
78- Assign this permission to an instructor who will be allowed to assign Grades to Dental School Students as well as manage classes assigned to them.
79- Uses date restrictions. Has a unique audit trail so that users can track specific ortho chart edits. FK to OrthoChartNum.
80- There is no user interface in the security window for this permission. It is only used for tracking. Mainly used for ortho clinics.
81- Assign this permission to a staff person who will edit evaluations in case of an emergency. This is not meant to be a permanent permission given to a group.
82- There is no user interface in the security window for this permission. It is only used for tracking.
83- There is no user interface in the security window for this permission. It is only used for tracking.
84- Allows user to edit other users' tasks.
85- Allows user to send unsecured email
86- Allows user to send webmail
87- Allows user to run command queries. Command queries are any non-SELECT queries for any non-temporary table.
88- Security permission for assignment of benefits.
89- Audit trail for images and documents in the image module. There is no user interface in the security window for this permission because it is only used for tracking.
90- Allows editing of all measure events. Also used to track changes made to events.
91- Allows users to edit settings in the eServices Setup window. Also causes the Listener Service monitor thread to start upon logging in.
92- There is no user interface in the security window for this permission. It is only used for tracking. Tracks editing of fee schedule properties.
93- Allows user to edit and delete provider specific fees overrides.
94- Allows user to merge patients.
95- Only used in Claim History Status Edit
96- Allows user to edit a completed appointment.
97- Audit trail for deleting webmail messages. There is no user interface in the security window for this permission.
98- Audit trail for saving a patient with required fields missing. There is no user interface in the security window for this
permission.
99- Allows user to merge referrals.
100- There is no user interface in the security window for this permission. It is only used for tracking.
Currently only used for tracking automatically changing the IsCpoe flag on procedures. Can be enhanced to do more in the future.
There is only one place where we could have automatically changed IsCpoe without a corresponding log of a different permission.
That place is in the OnClosing of the Procedure Edit window. We update this flag even when the user Cancels out of it.
101- Allows user to use the provider merge tool.
102- Allows user to use the medication merge tool.
103- Allow users to use the Quick Add tool in the Account module.
104- Allow users to send claims.
105- Allow users to create new task lists.
106 - Audit when a new patient is added.
107- Allows changing the settings for graphical repots.
108 - Audit when a patient is edited. Currently only used in X12 834 insurance plan import.
109 - Audit when an insurance plan is created. Currently only used in X12 834 insurance plan import.
110 - Audit when an insurance plan is edited. Currently only used in X12 834 insurance plan import.
111 - Audit when an insurance subscriber is created. The naming convention of this permission was decided upon by Nathan and Derek
based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
112 - Audit when an insurance subscriber is edited. The naming convention of this permission was decided upon by Nathan and Derek
based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
113 - Audit when a patient is added to an insurance plan. The naming convention of this permission was decided upon by Nathan and
Derek based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
114 - Audit when a patient is dropped from an insurance plan. The naming convention of this permission was decided upon by Nathan and
Derek based on the following existing permissions: InsPlanChangeSubsc, InsPlanChangeCarrierName, InsPlanChangeAssign.
Currently only used in X12 834 insurance plan import.
115 - Allows users to be assigned Insurance Verifications.
116 - Allows users to bypass the global lock date to add paysplits.
117 - Uses date restrictions. Covers editing some fields of completed procs. Limited list includes treatment area, diagnosis,
add adjustment, Do Not Bill To Ins, Hide Graphics, Misc tab, Medical tab, E-claim note, and the Prosthesis Replacement group box.
118 - Uses date restrictions based on the SecDateEntry field as the claim date. Covers deleting a claim of any status
(Sent, Waiting to Send, Received, etc).
119 - Covers editing the Write Off and Write Off Override fields for claimprocs as well as deleting/creating claimprocs.
Uses date/days restriction based on the attached proc.DateEntryC; unless it's a total payment, then uses claimproc.SecDateEntry.Applies to all plan types (i.e. PPO, Category%, Capitation, etc).
FK to userod.UserNum
The date and time of the entry. It's value is set when inserting and can never change. Even if a user changes the date on their ocmputer, this remains accurate because it uses server time.
The description of exactly what was done. Varies by permission type.
FK to patient.PatNum. Can be 0 if not applicable.
.
A foreign key to a table associated with the PermType. 0 indicates not in use.
This is typically used for objects that have specific audit trails so that users can see all audit entries related to a particular object.
Every permission using FKey should be included and implmented in the CrudAuditPerms enum so that securitylog FKeys are note orphaned.
Additonaly, the tabletype will to have the [CrudTable(CrudAuditPerms=CrudAuditPerm._____] added with the new CrudAuditPerm you created.
For the patient portal, it is used to indicate logs created on behalf of other patients.
It's uses include: AptNum with PermType AppointmentCreate, AppointmentEdit, or AppointmentMove tracks all appointment logs for a particular
appointment.
CodeNum with PermType ProcFeeEdit currently only tracks fee changes.
PatNum with PermType PatientPortal represents an entry that a patient made on behalf of another patient.
The PatNum column will represent the patient who is taking the action.
PlanNum with PermType InsPlanChangeCarrierName tracks carrier name changes.
Enum:LogSources None, WebSched, InsPlanImport834, FHIR.
Known entities that create security logs.
0 - Open Dental and unknown entities.
1 - GWT Web Sched application.
2 - X12 834 Insurance Plan Import from the Manage Module.
3 - HL7 is an automated process which the user may not be aware of.
4 - Database maintenance. This process creates patients which are known to be missing,
but the user may not be aware that the fix involves patient recreation.
5 - FHIR is an automated process which the user may not be aware of.
6 - Patient Portal application.
Used in Claims for custom history edits.
Stores hashes of audit logs for detecting alteration. User not allowed to edit.
Primary key.
FK to securityLog.SecurityLogNum.
The SHA-256 hash of PermType, UserNum, LogDateTime, LogText, and PatNum, all concatenated together. This hash has length of 32 bytes encoded as base64. Used to detect if the entry has been altered outside of Open Dental.
One sheet for one patient.
Primary key.
Enum:SheetTypeEnum
Different types of sheets that can be used.
0-Requires SheetParameter for PatNum. Does not get saved to db.
1-Requires SheetParameter for CarrierNum. Does not get saved to db.
2-Requires SheetParameter for ReferralNum. Does not get saved to db.
3-Requires SheetParameters for PatNum,ReferralNum.
4-Requires SheetParameter for AptNum. Does not get saved to db.
5-Requires SheetParameter for RxNum.
6-Requires SheetParameter for PatNum.
7-Requires SheetParameter for PatNum.
8-Requires SheetParameters for PatNum,ReferralNum.
9-Requires SheetParameter for PatNum.
10-Requires SheetParameter for AptNum. Does not get saved to db.
11-Requires SheetParameter for PatNum.
12-Requires SheetParameter for PatNum, LabCaseNum.
13-Requires SheetParameter for PatNum.
14-Requires SheetParameter for DepositNum.
15-Requires SheetParameter for PatNum.
16-Requires SheetParameters for PatNum,MedLab,MedLabResult.
17-Requires SheetParameters for PatNum,TreatmentPlan.
18-Requires SheetParameter for ScreenNum.
Optional SheetParameter for PatNum if screening is associated to a patient.
FK to patient.PatNum. A saved sheet is always attached to a patient (except deposit slip). There are a few sheets that are so minor that they don't get saved, such as a Carrier label.
The date and time of the sheet as it will be displayed in the commlog.
The default fontSize for the sheet. The actual font must still be saved with each sheetField.
The default fontName for the sheet. The actual font must still be saved with each sheetField.
Width of each page in the sheet in pixels, 100 pixels per inch.
Height of each page in the sheet in pixels, 100 pixels per inch.
.
An internal note for the use of the office staff regarding the sheet. Not to be printed on the sheet in any way.
Copied from the SheetDef description.
The order that this sheet will show in the patient terminal for the patient to fill out. Or zero if not set.
True if this sheet was downloaded from the webforms service.
Forces old single page behavior, ignoring page breaks.
Indicates whether or not this sheet has been marked deleted.
A definition (template) for a sheet. Can be pulled from the database, or it can be internally defined.
Primary key.
The description of this sheetdef.
Enum:SheetTypeEnum
Different types of sheets that can be used.
0-Requires SheetParameter for PatNum. Does not get saved to db.
1-Requires SheetParameter for CarrierNum. Does not get saved to db.
2-Requires SheetParameter for ReferralNum. Does not get saved to db.
3-Requires SheetParameters for PatNum,ReferralNum.
4-Requires SheetParameter for AptNum. Does not get saved to db.
5-Requires SheetParameter for RxNum.
6-Requires SheetParameter for PatNum.
7-Requires SheetParameter for PatNum.
8-Requires SheetParameters for PatNum,ReferralNum.
9-Requires SheetParameter for PatNum.
10-Requires SheetParameter for AptNum. Does not get saved to db.
11-Requires SheetParameter for PatNum.
12-Requires SheetParameter for PatNum, LabCaseNum.
13-Requires SheetParameter for PatNum.
14-Requires SheetParameter for DepositNum.
15-Requires SheetParameter for PatNum.
16-Requires SheetParameters for PatNum,MedLab,MedLabResult.
17-Requires SheetParameters for PatNum,TreatmentPlan.
18-Requires SheetParameter for ScreenNum.
Optional SheetParameter for PatNum if screening is associated to a patient.
The default fontSize for the sheet. The actual font must still be saved with each sheetField.
The default fontName for the sheet. The actual font must still be saved with each sheetField.
Width of each page in the sheet in pixels, 100 pixels per inch.
Height of each page in the sheet in pixels, 100 pixels per inch.
Set to true to print landscape.
Amount of editable space. Actual size when filling sheet may be different.
If false, forces old single page behavior which ignores page breaks.
One field on a sheet.
Primary key.
FK to sheet.SheetNum.
Enum:SheetFieldType OutputText, InputField, StaticText,Parameter(only used for SheetField, not SheetFieldDef),Image,Drawing,Line,Rectangle,CheckBox,SigBox,PatImage.
0-Pulled from the database to be printed on the sheet. Or also possibly just generated at runtime even though not pulled from the database. User still allowed to change the output text as they are filling out the sheet so that it can different from what was initially generated.
1-A blank box that the user is supposed to fill in.
2-This is text that is defined as part of the sheet and will never change from sheet to sheet.
3-Stores a parameter other than the PatNum. Not meant to be seen on the sheet. Only used for SheetField, not SheetFieldDef.
4-Any image of any size, typically a background image for a form.
5-One sequence of dots that makes a line. Continuous without any breaks. Each time the pen is picked up, it creates a new field row in the database.
6-A simple line drawn from x,y to x+width,y+height. So for these types, we must allow width and height to be negative or zero.
7-A simple rectangle outline.
8-A clickable area on the screen. It's a form of input, so treated similarly to an InputField. The X will go from corner to corner of the rectangle specified. It can also behave like a radio button
9-A signature box, either Topaz pad or directly on the screen with stylus/mouse. The signature is encrypted based an a hash of all other field values in the entire sheet, excluding other SigBoxes. The order is critical.
10-An image specific to one patient.
11-Special: Currently only used for Toothgrid
12-Grid: Placable grids similar to ODGrids. Used primarily in statements.
13-ComboBox: Placeable combo box for selecting filled options.
14-ScreenChart: A tooth chart that is desiged for screenings.
Mostly for OutputText and InputField types. Each sheet typically has a main datatable type.OutputText: FieldName is usually the string representation of the database column for the main table. For other tables, it can be of the form table.Column. There may also be extra fields available that are not strictly pulled from the database. Extra fields will start with lowercase to indicate that they are not pure database fields. The list of available fields for each type in SheetFieldsAvailable. Users can pick from that list. InputField: are internally tied to actions to persist the data. So they are also hard coded and are available in SheetFieldsAvailable. Static images: this is the full file name including extension, but without path. Static images paths are reconstructed by looking in the AtoZ folder, SheetImages folder. PatImage: This is the DefNum for the document category. This is used in SheetFiller to find a document num, this is translated in FormSheetFillEdit to a human readable name. Example: 113 (if 113 is the defnum for photos). In FormSheetFillEdit, this will display as PatImg:photos.Parameter: the FieldName stores the name of the parameter.
For OutputText, this value is set before printing. This is the data obtained from the database and ready to print. For StaticText, this is copied from the sheetFieldDef, but in-line fields like [this] will have been filled. For an archived sheet retrieved from the database (all SheetField rows), this value will have been saved and will not be filled again automatically.Parameter fieldtype: this will store the value of the parameter.Drawing fieldtype: this will be the point data for the lines. The format would look similar to this: 45,68;48,70;49,72;0,0;55,88;etc. It's simply a sequence of points, separated by semicolons.CheckBox: it will either be an X or empty.SigBox: the first char will be 0 or 1 to indicate SigIsTopaz, and all subsequent chars will be the Signature itself.PatImage: Docnum or blank, FK to document.DocNum.ComboBox: The chosen option, semicolon, then a pipe delimited list of options such as: March;January|February|March|AprilScreenChart: Contains a semicolon delimited list of a single number followed by groups of comma separated surfaces.
The first digit represents what type of ScreenChart it is. 0 = Permanent, 1 = Primary
It may look like 0;S,P,N;S,S,S;... etc.
The fontSize for this field regardless of the default for the sheet. The actual font must be saved with each sheetField.
The fontName for this field regardless of the default for the sheet. The actual font must be saved with each sheetField.
.
In pixels.
In pixels.
The field will be constrained horizontally to this size. Not allowed to be zero.
The field will be constrained vertically to this size. Not allowed to be stored as 0. It's not allowed to be zero so that it will be visible on the designer. Set to 0 in memory by SheetUtil.CalculateHeights if image is innacessible for printing.
Enum:GrowthBehaviorEnum
For sheetFields
Not allowed to grow. Max size would be Height and Width.
Can grow down if needed, and will push nearby objects out of the way so that there is no overlap.
Can grow down, and will push down all objects on the sheet that are below it. Mostly used when drawing grids.
This is only used for checkboxes that you want to behave like radiobuttons. Set the FieldName the same for each Checkbox in the group. The FieldValue will likely be X for one of them and empty string for the others. Each of them will have a different RadioButtonValue. Whichever box has X, the RadioButtonValue for that box will be used when importing. This field is not used for "misc" radiobutton groups.
Name which identifies the group within which the radio button belongs. FieldName must be set to "misc" in order for the group to take effect.
Set to true if this field is required to have a value before the sheet is closed.
Tab stop order for all fields. Only checkboxes and input fields can have values other than 0.
Allows reporting on misc fields.
Text Alignment for text fields.
Text color, line color, rectangle color.
DateTime that a sheet was signed.
One field on a sheetDef.
Primary key.
FK to sheetdef.SheetDefNum.
Enum:SheetFieldType OutputText, InputField, StaticText,Parameter(only used for SheetField, not SheetFieldDef),Image,Drawing,Line,Rectangle,CheckBox,SigBox,PatImage.
0-Pulled from the database to be printed on the sheet. Or also possibly just generated at runtime even though not pulled from the database. User still allowed to change the output text as they are filling out the sheet so that it can different from what was initially generated.
1-A blank box that the user is supposed to fill in.
2-This is text that is defined as part of the sheet and will never change from sheet to sheet.
3-Stores a parameter other than the PatNum. Not meant to be seen on the sheet. Only used for SheetField, not SheetFieldDef.
4-Any image of any size, typically a background image for a form.
5-One sequence of dots that makes a line. Continuous without any breaks. Each time the pen is picked up, it creates a new field row in the database.
6-A simple line drawn from x,y to x+width,y+height. So for these types, we must allow width and height to be negative or zero.
7-A simple rectangle outline.
8-A clickable area on the screen. It's a form of input, so treated similarly to an InputField. The X will go from corner to corner of the rectangle specified. It can also behave like a radio button
9-A signature box, either Topaz pad or directly on the screen with stylus/mouse. The signature is encrypted based an a hash of all other field values in the entire sheet, excluding other SigBoxes. The order is critical.
10-An image specific to one patient.
11-Special: Currently only used for Toothgrid
12-Grid: Placable grids similar to ODGrids. Used primarily in statements.
13-ComboBox: Placeable combo box for selecting filled options.
14-ScreenChart: A tooth chart that is desiged for screenings.
FieldName is used differently for different FieldTypes.
For OutputText, each sheet typically has a main datatable type. For example statements correspond to the statment table. See SheetFieldsAvailable.GetList() for available values. If the output field exactly matches a column from the main table this will be the <ColumnName>. For example, "FName" on patient Forms. If the output field exactly matches a column from a different table this will be the <tablename>.<ColumnName>. For example, appt.Note on Routing Slips. If the output field is not a database column it must start with a lowercase letter. For example, "statementReceiptInvoice" on Statements.For InputField, these are hardcoded to correspond to DB fields, for example "FName" corresponsds to patient.FName. See SheetFieldsAvailable.GetList() for available values.For Image, this file name with extention, for example "image1.jpg". Some image names are handled specially, for example "Patient Info.gif". Images are stored in <imagefolder>\SheetImages\image1.jpg.For CheckBox, this groups checkboxes together so that only one per group can be checked.For PatImage, this is the name of the DocCategory.For Special, identifies the type of special field. Currently only ToothChart and ToothChartLegend.For Grid, this is the specific type of grid. See SheetUtil.GetDataTableForGridType() for values. For example "StatementPayPlan".For all other fieldtypes, FieldName is blank or irrelevant.
For StaticText, this text can include bracketed fields, like [nameLF].
For OutputText and InputField, this will be blank. For CheckBoxes, either X or blank. Even if the checkbox is set to behave like a radio button. For Pat Images, this is blank. The filename of a PatImage will later be stored in SheetField.FieldValue.For ComboBoxes, the chosen option, semicolon, then a pipe delimited list of options such as: March;January|February|March|AprilFor ScreenCharts, a semicolon delimited list of comma separated surfaces. It may look like S,P,N;S,S,S;... etc.
The fontSize for this field regardless of the default for the sheet. The actual font must be saved with each sheetField.
The fontName for this field regardless of the default for the sheet. The actual font must be saved with each sheetField.
.
In pixels.
In pixels.
The field will be constrained horizontally to this size. Not allowed to be zero.
The field will be constrained vertically to this size. Not allowed to be 0. It's not allowed to be zero so that it will be visible on the designer.
Enum:GrowthBehaviorEnum
For sheetFields
Not allowed to grow. Max size would be Height and Width.
Can grow down if needed, and will push nearby objects out of the way so that there is no overlap.
Can grow down, and will push down all objects on the sheet that are below it. Mostly used when drawing grids.
This is only used for checkboxes that you want to behave like radiobuttons. Set the FieldName the same for each Checkbox in the group. The FieldValue will likely be X for one of them and empty string for the others. Each of them will have a different RadioButtonValue. Whichever box has X, the RadioButtonValue for that box will be used when importing. This field is not used for "misc" radiobutton groups.
Name which identifies the group within which the radio button belongs. FieldName must be set to "misc" in order for the group to take effect.
Set to true if this field is required to have a value before the sheet is closed.
Tab stop order for all fields. One-based. Only checkboxes and input fields can have values other than 0.
Allows reporting on misc fields.
Text Alignment for text fields.
Used to determine if the field should be hidden when printing statements.
Text color, line color, rectangle color.
This defines the light buttons on the left of the main screen.
Primary key.
The text on the button
0-based index defines the order of the buttons.
0=none, or 1-9. The cell in the 3x3 tic-tac-toe main program icon that is to be synched with this button. It will light up or clear whenever this button lights or clears.
Blank for the default buttons. Or contains the computer name for the buttons that override the defaults.
This table stores references to the sequence of sounds and lights that should get sent out with a button push.
Primary key.
FK to sigbutdef.SigButDefNum A few elements are usually attached to a single button.
FK to sigelementdef.SigElementDefNum, which contains the actual sound or light.
These are the actual elements attached to each signal that is sent. They contain references to the sounds and lights that should result.
Primary key.
FK to sigelementdef.SigElementDefNum
FK to signalod.SignalNum.
This defines the items that will be available for clicking when composing a manual message. Also, these are referred to in the button definitions as a sequence of elements.
Primary key.
If this element should cause a button to light up, this would be the row. 0 means none.
If a light row is set, this is the color it will turn when triggered. Ack sets it back to white. Note that color and row can be in two separate elements of the same signal.
Enum:SignalElementType 0=User,1=Extra,2=Message.
0=User,1=Extra,2=Message.
0-To and From lists. Not tied in any way to the users that are part of security.
Typically used to insert "family" before "phone" signals.
Elements of this type show in the last column and trigger the message to be sent.
The text that shows for the element, like the user name or the two word message. No long text is stored here.
The sound to play for this element. Wav file stored in the database in string format until "played". If empty string, then no sound.
The order of this element within the list of the same type.
An actual signal that gets sent out as part of the messaging functionality.
Primary key.
Text version of 'user' this message was sent from, which can actually be any description of a group or individual.
Enum:InvalidType List of InvalidType long values separated by commas. Can be empty. When Date or Tasks are used, they are used all alone with no other flags present.
When the autorefresh message is sent to the other computers, this is the type.
0
1 Deprecated. Not used with any other flags
2 Deprecated. Inefficient. All flags combined except Date and Tasks.
3 Not used with any other flags. Used to just indicate added tasks, but now it indicates any change at all except those where a popup is needed. If we also want a popup, then use TaskPopup.
4
5
6 ApptViews, ApptViewItems, AppointmentRules, ProcApptColors.
7
8
9
10
11
12- Also includes payperiods.
13- Deprecated.
14
15- Both templates and addresses.
16
17
18
19- Userods, UserGroups, and GroupPermissions
20 - Also includes program properties.
21- Also includes Image Mounts
22- Also includes clinics.
23
24
25
26
27
28
29
30
31
32
33
34. This is used internally by OD, Inc with the phonenumber table and the phone server.
35. Signal/message defs
36
37. And ApptFields.
38
39
40. Includes ICD9s.
41
42
43
44
45
46
47
48
49
50. This is used internally by OD, Inc with the phone server to trigger the phone system to reload after changing which call groups users are in.
51
52. Includes DrugManufacturers and DrugUnits.
53. Includes all 4 HL7Def tables.
54
55. Caches the wiki master page and the wikiListHeaderWidths
56. SourceOfPayment
57. In-Memory table used for hard-coded codes and CQMs
58. Used to override appointment color. Might be used for other appointment attributes in the future.
59. Caches the medication list to stop from over-refreshing and causing slowness.
60. This is a special InvalidType which indicates a refresh, but also includes the data to be refreshed inside of the signalod.SigText field.
61
62. This is used internally by OD, refreshes the jobs windows in the Job Manager.
63. This is used internally by OD, refreshes the jobRoles
64. Caches the StateAbbrs used for helping prefill state fields and for state validations.
65
66
67
68. Replaces the deprecated "Date" invalid type for more granularity on invalid signals.
69
If IType=Date, then this is the affected date in the Appointments module.
Enum:SignalType Button, or Invalid.
The type of signal being sent.
0- Includes text messages.
1
This is used if the type is button and the user types in some text, or for type Invalid when ITypes equals InvalidType.SmsTextMsgReceivedUnreadCount. This is the typed portion and does not include any of the text that was on the buttons, or is the count of unread SMS messages. Button types of signals are displayed in their own separate list in addition to any light and sound that they may cause, whereas the SMS unread message count is shown in the dropdown portion of the Text button in the main toolbar.
The exact server time when this signal was entered into db. This does not need to be set by sender since it's handled automatically.
Text version of 'user' this message was sent to, which can actually be any description of a group or individual.
If this signal has been acknowledged, then this will contain the server date and time. This is how lights get turned off also.
FK to task.TaskNum. If IType=Tasks, then this is the taskNum that was added.
Usually identifies the object that was edited to cause the signal to be created.
Describes the type of object referenced by the FKey.
Generally used by mobile clinics to track the temporary locations where treatment is performed, such as schools, nursing homes, and community centers. Replaces the old school table.
Primary key.
.
Notes could include phone, contacts, etc.
Optional second address line.
2 Char in USA. Used to store province for Canadian users.
Postal code.
FK to provider.ProvNum. Default provider for the site.
Enum:PlaceOfService Describes where the site is located.
0. CPT code 11
1. CPT code 12
2. CPT code 21
3. CPT code 22
4. CPT code 31
5. CPT code 33. In X12, a similar code AdultLivCareFac 35 is mentioned.
6. CPT code ?. We use 11 for office.
7. CPT code 15
8. CPT code 03
9. CPT code 26
10. CPT code 50
11. CPT code 71
12. CPT code 72
13. CPT code 23
14. CPT code 24
A Mobile Originating SMS bound for the office. Will usually be a re-constructed message.
Primary key.
FK to patient.PatNum. Not sent from HQ.
FK to clinic.ClinicNum.
FK to commlog.CommlogNum. Not sent from HQ.
Contents of the message.
Date and time message was inserted into the DB. Not sent from HQ.
This is the Phone Number of the office that the mobile device sent a message to.
This is the PhoneNumber that this message was sent from.
Message part sequence number. For single part messages this should always be 1.
For messages that exist as multiple parts, due to staggered delivery of the parts, this will be a number between 1 and MsgTotal.
Total count of message parts for this single message identified by MsgRefID.
For single part messages this should always be 1.
Each part of a multipart message will have the same MsgRefID.
Enum:SmsFromStatus .
Status of an incoming message.
0
1
Words surrounded by spaces, flags should be all lower case. This allows simple querrying. Example: " junk recall " allows you to
write "WHERE Flags like "% junk %" without having to worry about commas. Also, adding and removing tags is easier. Example: Flags=Flags.Replace(" junk ","");
Messages are not deleted, they can only be hidden.
A phone number used to send and receive SMS.
When clinics is enabled all SmsPhones with clinic num 0 should be updated to have clinic num of the lowest numbered clinic.
When clinics are disabled, all SmsPhones with the lowest numbered clinic num should be re-associated to clinic number 0.
Primary key.
FK to clinic.ClinicNum.
String representation of the phone number in international format. Ex: 15035551234 This field should not contain any formatting characters.
Date and time this phone number became active.
Date and time this phone number became inactive. Once inactive, the phone is dead and cannot be reactivated. A new number will have to be purchased.
Used to indicate why this phone number was made inactive.
Country linked to this phone's clinic at the instant that this phone is created. Based on ISO31661.
Messages are only inserted into this table after they are accepted by ODHQ.
Primary key.
FK to patient.PatNum
GUID. Uniquely identifies this message and is used for tracking message status.
GUID. When sending batch messages, all messages will have the same batch GUID that should be the GUID of the first message within the batch.
This is the sending phone number in international format. Each office may have several different numbers that they use.
The phone number that this message was sent to. Must be kept in addition to the PatNum.
Set to true if this message should "jump the queue" and be sent asap.
Enum:SmsMessageSource This is used to identify where in the program this message originated from.
This helps us determine how to handle messages.
0. Should not be used.
1. This should be used for one-off messages that might be sent as direct communication with patient.
2. Used when sending single or batch recall SMS.
3. Used when sending single or batch reminder SMS.
4. Used when sending a test message from HQ. Customer will not be charged for this message.
5. Used when sending confirmations.
The contents of the message.
Enum:SmsDeliveryStatus Set by the Listener, tracks status of SMS.
None should never be used, the code should be re-written to not use it.
0. Should not be used.
1. After a message has been accepted at ODHQ. Before any feedback.
2. Delivered to customer, carrier replied with confirmation.
3. Delivered to customer, no confirmation of failure or delivery sent back from carrier.
4. Attempted delivery, failure message return after arriving at handset.
5. Attempted delivery, immediate failure confirmation received from carrier.
The count of parts that this message will be broken into when sent.
A single long message will be broken into several smaller 153 utf8 or 70 unicode character messages.
The amount charged to the customer. Total cost for this message always stored in US Dollars.
FK to clinic.ClinicNum. 0 when not using clinics.
Only used when SmsDeliveryStatus==Failed.
Time message was accepted at ODHQ.
Date time that the message was either successfully delivered or failed.
Messages are hidden, not deleted.
We do not import synonyms, only "Fully Specified Name records". Snomed for holding a large list of codes. Codes in use are copied into the DiseaseDef table. SNOMED CT maintained, owned and copyright International Health Terminology Standards Development Organisation (IHTSDO).
Primary key.
Used as FK by other tables. Also called the Concept ID. Not allowed to edit this column once saved in the database.
Also called "Term", "Name", or "Fully Specified Name". Not editable and doesn't change.
Source of Payment Typology. Used by EHR. Examples: Medicaid, MedicaidPPO, NoFee, etc. About 100 defined by govt. Other tables generally use the SopCode as their foreign key.
Primary key. .
Sop code. Not allowed to edit this column once saved in the database. Examples: 121, 3115, etc.
Description provided by Sop documentation. Examples: Medicare FFS, TRICARE Reserve Select
State abbreviations are always copied to patient records rather than linked.
Items in this list can be freely altered or deleted without harming patient data.
Primary key.
Full state name
Short state abbreviation (usually 2 digit)
The length that the Medicaid ID should be for this state. If 0, then the Medicaid length is not enforced for this state
Represents one statement for one family. Usually already sent, but could still be waiting to send.
Primary key.
FK to patient.PatNum. Typically the guarantor. Can also be the patient for walkout statements.
This will always be a valid and reasonable date regardless of whether it's actually been sent yet.
Typically 45 days before dateSent
Any date >= year 2200 is considered max val. We generally try to automate this value to be the same date as the statement rather than the max val. This is so that when payment plans are displayed, we can add approximately 10 days to effectively show the charge that will soon be due. Adding the 10 days is not done until display time.
Can include line breaks. This ordinary note will be in the standard font.
More important notes may go here. Font will be bold. Color and size of text will be customizable in setup.
Enum:StatementMode Mail, InPerson, Email, Electronic.
0
1
2
3
Set true to hide the credit card section, and the please pay box.
One patient on statement instead of entire family.
If entire family, then this determines whether they are all intermingled into one big grid, or whether they are all listed in separate grids.
True
FK to document.DocNum when a pdf has been archived.
Date/time last altered.
The only effect of this flag is to change the text at the top of a statement from "statement" to "receipt". It might later do more.
This flag is for marking a statement as Invoice. In this case, it must have procedures and/or adjustments attached.
Only used if IsInvoice=true. The first printout will not be a copy. Subsequent printouts will show "copy" on them.
Empty string by default. Only used to override BillingEmailSubject pref when emailing statements. Only set when statements are created from the Billing Options window. No UI for editing.
Empty string by default. Only used to override BillingEmailBodyText pref when emailing statements. Only set when statements are created from the Billing Options window. No UI for editing. Limit in db: 16M char.
FK to patient.PatNum. Typically zero unless a super family statement is desired.
Will be non-zero if the patient is associated with a super family and a super family statement is desired.
True for statements generated in version 16.1 or greater. Older statements did not store InsEst or BalTotal.
Insurance Estimate for entire family, taken from garantor at time of statement being sent/saved.
Total balance for entire family before insurance estimate.
Not the same as the sum of the 4 aging balances because this can be negative.
Enum:StmtType Statement, Receipt, Invoice, LimitedStatement.
The type of this statement. This will eventually replace IsReceipt and IsInvoice. Stored as EnumAsString.
Regular statement.
Contains information about specific procedures.
Primary key.
FK to statement.StatementNum.
FK to adjustment.AdjNum.
Primary key.
FK to statement.StatementNum.
FK to paysplit.PaySplitNum.
Primary key.
FK to statement.StatementNum.
FK to procedurelog.ProcNum.
A company that provides supplies for the office, typically dental supplies.
Primary key.
.
.
The customer ID that this office uses for transactions with the supplier
Full address to website. We might make it clickable.
The username used to log in to the supplier website.
The password to log in to the supplier website. Not encrypted or hidden in any way.
Any note regarding supplier. Could hold address, CC info, etc.
A dental supply or office supply item.
Primary key.
FK to supplier.SupplierNum
The catalog item number that the supplier uses to identify the supply.
The description can be similar to the catalog, but not required. Typically includes qty per box/case, etc.
FK to definition.DefNum. User can define their own categories for supplies.
The zero-based order of this supply within it's category.
The level that a fresh order should bring item back up to. Can include fractions. If this is 0, then it will be displayed as having this field blank rather than showing 0. This simply gives a cleaner look.
If hidden, then this supply item won't normally show in the main list.
The price per unit that the supplier charges for this supply. If this is 0.00, then no price will be displayed.
Scanned code from a reader.
Only used for dental schools. This is the typical quantity dispensed at the window.
Only used in dental schools. For example, 20 capsules composite per container.
Only used in dental schools. Description of the units when dispensing for use. For example: Capsule, cartridge, carpule, glove, or needle.
Quantity of the supply available.
A supply freeform typed in by a user.
Primary key.
.
.
One supply order to one supplier. Contains SupplyOrderItems.
Primary key.
FK to supplier.SupplierNum.
A date greater than 2200 (eg 2500), is considered a max date. A max date is used for an order that was started but has not yet been placed. This puts it at the end of the list where it belongs, but it will display as blank. Only one unplaced order is allowed per supplier.
.
The sum of all the amounts of each item on the order. If any of the item prices are zero, then it won't auto calculate this total. This will allow the user to manually put in the total without having it get deleted.
One item on one supply order. This table links supplies to orders as well as storing a small amount of additional info.
Primary key.
FK to supplyorder.supplyOrderNum.
FK to supply.SupplyNum.
How many were ordered.
Price per unit on this order.
A task is a single todo item.
Primary key.
FK to tasklist.TaskListNum. If 0, then it will show in the trunk of a section.
Only used if this task is assigned to a dated category. Children are NOT dated. Only dated if they should show in the trunk for a date category. They can also have a parent if they are in the main list as well.
FK to patient.PatNum or appointment.AptNum. Only used when ObjectType is not 0.
The description of this task. Might be very long.
Enum:TaskStatusEnum New,Viewed,Done. We may want to put an index on this column someday.
0
1
2
True if it is to show in the repeating section. There should be no date. All children and parents should also be set to IsRepeating=true.
Enum:TaskDateType None, Day, Week, Month. If IsRepeating, then setting to None effectively disables the repeating feature.
0
1
2
3
FK to task.TaskNum If this is derived from a repeating task, then this will hold the TaskNum of that task. It helps automate the adding and deleting of tasks. It might be deleted automatically if not are marked complete.
Enum:TaskObjectType 0=none,1=Patient,2=Appointment. More will be added later. If a type is selected, then the KeyNum will contain the primary key of the corresponding Patient or Appointment. Does not really have anything to do with the ObjectType of the parent tasklist, although they tend to match.
Used when attaching objects to tasks. These are the choices.
0
1
2
The date and time that this task was added. Used to sort the list by the order entered.
FK to userod.UserNum. The person who created the task.
The date and time that this task was marked "done".
FK to definition.DefNum. The priority for this task which is used when filling task lists. The placement of the task in the list is dependent on the item order of the definitions.
Represents one ancestor of one task. Each task will have at least one ancestor unless it is directly on a main trunk. An ancestor is defined as a tasklist that is higher in the heirarchy for the task, regardless of how many levels up it is. This allows us to mark task lists as having "new" tasks, and it allows us to quickly check for new tasks for a user on startup.
Primary key.
FK to task.TaskNum
FK to tasklist.TaskListNum
Inherits from task. A historical copy of a task. These are generated as a result of a task being edited. When creating for insertion it needs a passed in Task object.
Primary key.
FK to UserOd.UserNum Identifies the user that changed this task from this state, not the person who originally wrote it.
The date and time that this task was edited and added to the Hist table.
True if the note was changed when this historical copy was created.
FK to task.TaskNum
FK to tasklist.TaskListNum. If 0, then it will show in the trunk of a section.
Only used if this task is assigned to a dated category. Children are NOT dated. Only dated if they should show in the trunk for a date category. They can also have a parent if they are in the main list as well.
FK to patient.PatNum or appointment.AptNum. Only used when ObjectType is not 0.
The description of this task. Might be very long.
Enum:TaskStatusEnum New,Viewed,Done. We may want to put an index on this column someday.
0
1
2
True if it is to show in the repeating section. There should be no date. All children and parents should also be set to IsRepeating=true.
Enum:TaskDateType None, Day, Week, Month. If IsRepeating, then setting to None effectively disables the repeating feature.
0
1
2
3
FK to task.TaskNum If this is derived from a repeating task, then this will hold the TaskNum of that task. It helps automate the adding and deleting of tasks. It might be deleted automatically if not are marked complete.
Enum:TaskObjectType 0=none,1=Patient,2=Appointment. More will be added later. If a type is selected, then the KeyNum will contain the primary key of the corresponding Patient or Appointment. Does not really have anything to do with the ObjectType of the parent tasklist, although they tend to match.
Used when attaching objects to tasks. These are the choices.
0
1
2
The date and time that this task was added. Used to sort the list by the order entered.
FK to userod.UserNum. The person who created the task.
The date and time that this task was marked "done".
FK to definition.DefNum. The priority for this task which is used when filling task lists. The placement of the task in the list is dependent on the item order of the definitions.
A tasklist is like a folder system, where it can have child tasklists as well as tasks.
Primary key.
The description of this tasklist. Might be very long, but not usually.
FK to tasklist.TaskListNum The parent task list to which this task list is assigned. If zero, then this task list is on the main trunk of one of the sections.
Optional. Set to 0001-01-01 for no date. If a date is assigned, then this list will also be available from the date section.
True if it is to show in the repeating section. There should be no date. All children should also be set to IsRepeating=true.
Enum:TaskDateType None, Day, Week, Month. If IsRepeating, then setting to None effectively disables the repeating feature.
0
1
2
3
FK to tasklist.TaskListNum If this is derived from a repeating list, then this will hold the TaskListNum of that list. It helps automate the adding and deleting of lists. It might be deleted automatically if no tasks are marked complete.
Enum:TaskObjectType 0=none, 1=Patient, 2=Appointment. More will be added later. If a type is selected, then this list will be visible in the appropriate places for attaching the correct type of object. The type is not copied to a task when created. Tasks in this list do not have to be of the same type. You can only attach an object to a task, not a tasklist.
Used when attaching objects to tasks. These are the choices.
0
1
2
The date and time that this list was added. Used to sort the list by the order entered.
A tasknote is a note that may be added to a task. Many notes may be attached to a task. A user may only edit their own tasknotes within a task.
Primary key.
FK to task.TaskNum. The task this tasknote is attached to.
FK to userod.UserNum. The user who created this tasknote.
Date and time the note was created (editable).
Note. Text that the user wishes to show on the task.
A subscription of one user to either a tasklist or to a task.
Primary key.
FK to userod.UserNum
FK to tasklist.TaskListNum
When a task is created or a comment made, a series of these taskunread objects are created, one for each user who is subscribed to the tasklist. Duplicates are intelligently avoided. Rows are deleted once user reads the task.
Primary key.
FK to task.TaskNum.
FK to userod.UserNum.
Each row is one computer that currently acting as a terminal for new patient info input.
Primary key.
The name of the computer where the terminal is active.
Enum:TerminalStatusEnum No longer used. Instead, the PatNum field is used. Used to indicates at what point the patient was in the sequence. 0=standby, 1=PatientInfo, 2=Medical, 3=UpdateOnly. If status is 1, then nobody else on the network could open the patient edit window for that patient.
Indicates at what point the patient is in the sequence. 0=standby, 1=PatientInfo, 2=Medical, 3=UpdateOnly.
0
1
2
3. Only the patient info tab will be visible. This is just to let patient up date their address and phone number.
FK to patient.PatNum. The patient currently showing in the terminal. If 0, then terminal is in standby mode.
Used on employee timecards to make adjustments. Used to make the end-of-the week OT entries. Can be used instead of a clock event by admin so that a clock event doesn't have to be created.
Primary key.
FK to employee.EmployeeNum
The date and time that this entry will show on timecard.
The number of regular hours to adjust timecard by. Can be + or -.
Overtime hours. Usually +. Automatically combined with a - adj to RegHours. Another option is clockevent.OTimeHours.
.
Set to true if this adjustment was automatically made by the system. When the calc weekly OT tool is run, these types of adjustments are fair game for deletion. Other adjustments are preserved.
FK to clinic.ClinicNum. The clinic the TimeAdjust was entered at.
A rule for automation of timecard overtime. Can apply to one employee or all.
Primary key.
FK to employee.EmployeeNum. If zero, then this rule applies to all employees.
Typical example is 8:00. In California, any work after the first 8 hours is overtime.
Typical example is 16:00 to indicate that all time worked after 4pm for specific employees is at differential rate.
Typical example is 6:00 to indicate that all time worked before 6am for specific employees is at differential rate.
Each row represents one toolbar button to be placed on a toolbar and linked to a program.
Primary key.
FK to program.ProgramNum.
Enum:ToolBarsAvail The toolbar to show the button on.
0
1
2
3
4
5
6
7 Shows in the toolbar at the top that is common to all modules.
8 Shows in the main menu Reports submenu.
The text to show on the toolbar button.
Holds one recorded cell value for a tooth grid, which is a special kind of sheet field type that shows a grid with 32 rows and configurable columns. The entire grid is a single large sheet field.
Primary key.
FK to sheet.SheetFieldNum. Required.
FK to toothgridcol.ToothGridColNum. This tells which column it belongs in. Can't use the column name here because multiple columns could have the same name.
Cannot be empty. For a tooth-level cell, the only allowed value is X. If the cell is unchecked, then it won't even have a row in this table. For a surface level column, only valid surfaces can be entered:MOIDBFLV Enforced. FreeText columns can have any text up to 255 char.
Corresponds exactly to procedurelog.ToothNum. May be blank, otherwise 1-32, 51-82, A-T, or AS-TS, 1 or 2 char. Gets internationalized as being displayed.
Defines the columns present in a single completed tooth grid, which is a special kind of sheet field that shows a grid with 32 rows and configurable columns. The entire grid is a single large sheet field. This table defines how the grid is layed out on an actual sheet, pulled initially from a ToothGridDef. The data itself is recorded in ToothGridCell.
Primary key.
FK to sheet.SheetFieldNum. Required.
Pulled from the ToothGridDef. This can be a NameInternal , or it can be a NameShowing if it's a user-defined column.
Enum:ToothGridCellType 0=HardCoded, 1=Tooth, 2=Surface, 3=FreeText.
0=HardCoded, 1=Tooth, 2=Surface, 3=FreeText.
0
1
2
3
Order of the column to display. Every entry must have a unique itemorder.
.
FK to procedurecode.CodeNum. This allows data entered to flow into main program as actual completed or tp procedures.
Enum:ProcStat If these flow into main program, then this is the status that the new procs will have.
Procedure Status.
1- Treatment Plan.
2- Complete.
3- Existing Current Provider.
4- Existing Other Provider.
5- Referred Out.
6- Deleted.
7- Condition.
8- Treatment Plan inactive.
Defines the columns present in a tooth grid, which is a special kind of sheet field def that shows a grid with 32 rows and configurable columns. Can be edited without damaging any completed sheets.
Primary key.
This is the internal name that OD uses to identify the column. Blank if this is a user-defined column. We will keep a hard-coded list of available NameInternals in the code to pick from.
The user may override the internal name for display purposes. If this is a user-defined column, this is the only name, since there is no NameInternal.
Enum:ToothGridCellType 0=HardCoded, 1=Tooth, 2=Surface, 3=FreeText.
0=HardCoded, 1=Tooth, 2=Surface, 3=FreeText.
0
1
2
3
Order of the column to display. Every entry must have a unique itemorder.
.
FK to procedurecode.CodeNum. This allows data entered to flow into main program as actual completed or tp procedures.
Enum:ProcStat If these flow into main program, then this is the status that the new procs will have.
Procedure Status.
1- Treatment Plan.
2- Complete.
3- Existing Current Provider.
4- Existing Other Provider.
5- Referred Out.
6- Deleted.
7- Condition.
8- Treatment Plan inactive.
FK to sheetfielddef.SheetFieldDefNum
Used to track missing teeth, primary teeth, movements, and drawings.
Primary key.
FK to patient.PatNum
1-32 or A-Z. Supernumeraries not supported here yet.
Enum:ToothInitialType
0
1 - Also hides the number. This is now also allowed for primary teeth.
2 - Only used with 1-32. "sets" this tooth as a primary tooth. The result is that the primary tooth shows in addition to the perm, and that the letter shows in addition to the number. It also does a Shift0 -12 and some other handy movements. Even if this is set to true, there can be a separate entry for a missing primary tooth; this would be almost equivalent to not even setting the tooth as primary, but would also allow user to select the letter.
3
4
5
6
7
8
9 One segment of a drawing.
Shift in mm, or rotation / tipping in degrees.
Point data for a drawing segment. The format would look similar to this: 45,68;48,70;49,72;0,0;55,88;etc. It's simply a sequence of points, separated by semicolons. Only positive numbers are used. 0,0 is the upper left of the tooth chart at original size. Stored in pixels as originally drawn. If we ever change the tooth chart, we will have to also keep an old version as an alternate to display old drawings.
.
Used in the accounting section of the program. Each row is one transaction in the ledger, and must always have at least two splits. All splits must always add up to zero.
Primary key.
Not user editable. Server time.
FK to userod.UserNum.
FK to deposit.DepositNum. Will eventually be replaced by a source document table, and deposits will just be one of many types.
FK to payment.PayNum. Like DepositNum, it will eventually be replaced by a source document table, and payments will just be one of many types.
A treatment plan saved by a user. Does not include the default tp, which is just a list of procedurelog entries with a status of tp. A treatplan has many proctp's attached to it.
Primary key.
FK to patient.PatNum.
The date of the treatment plan
The heading that shows at the top of the treatment plan. Usually 'Proposed Treatment Plan'
A note specific to this treatment plan that shows at the bottom.
The encrypted and bound signature in base64 format. The signature is bound to the concatenation of the tp Note, DateTP, and to each proctp Descript and PatAmt.
True if the signature is in Topaz format rather than OD format.
FK to patient.PatNum. Can be 0. The patient responsible for approving the treatment. Public health field not visible to everyone else.
FK to document.DocNum. Can be 0. If signed, this is the pdf document of the TP at time of signing. See PrefName.TreatPlanSaveSignedToPdf
Determines the type of treatment plan this is.
FK to userod.UserNum. Set to the user logged in when the row was inserted at SecDateEntry date and time.
Timestamp automatically generated and user not allowed to change. The actual date of entry.
Automatically updated by MySQL every time a row is added or changed. Could be changed due to user editing, custom queries or program
updates. Not user editable with the UI.
A treatment plan saved by a user. Does not include the default tp, which is just a list of procedurelog entries with a status of tp. A treatplan has many proctp's attached to it.
Primary key.
FK to treatplan.TreatPlanNum.
FK to procedurelog.ProcNum.
FK to definition.DefNum, which contains the text of the priority. Identical to Procedure.Priority but used to allow different priorities
for the same procedure depending on which TP it is a part of.
Unified Code for Units of Measure. UCUM is not a stricly defined list of codes but is instead a language definition that allows for all units and derived units to be named. Examples: g (grams), g/L (grams per liter), g/L/s (grams per liter per second), g/L/s/s (grams per liter per second per second), etc... are all allowed units meaning there is an infinite number of units that can be defined using UCUM conventions. The codes stored in this table are merely a common subset that was readily available and premade.
Primary key.
Indexed. Also called concept code. Example: mol/mL
Also called Concept Name. Human readable form of the UCUM code. Example: Moles Per MilliLiter [Substance Concentration Units]
True if this unit of measure is or has ever been in use. Useful for assisting users to select common units.
Makes an entry every time Open Dental has successfully updated to a newer version.
New entries will always be for the newest version being used so that users can see a "history" of how long they used previous versions.
This will also help EHR customers when attesting or when they get audited.
Primary key.
DateTime that OD was updated to the Version.
The version that OD was updated to.
This linker table will enable users to be associated with multiple clinics.
Primary key.
FK to Userod.UserNum
FK to Clinic.ClinicNum
A group of users. Security permissions are determined by the usergroup of a user.
Primary key.
.
FK to usergroup.UserGroupNum. The user group num within the Central Manager database. Only editable via CEMT. Can change when CEMT syncs.
(User OD since "user" is a reserved word) Users are a completely separate entity from Providers and Employees even though they can be linked. A usernumber can never be changed, ensuring a permanent way to record database entries and leave an audit trail. A user can be a provider, employee, or neither.
Primary key.
.
The password hash, not the actual password. If no password has been entered, then this will be blank.
FK to usergroup.UserGroupNum. Every user belongs to exactly one user group. The usergroup determines the permissions.
FK to employee.EmployeeNum. Cannot be used if provnum is used. Used for timecards to block access by other users.
FK to clinic.ClinicNum. Default clinic for this user. It causes new patients to default to this clinic when entered by this user.
If 0, then user has no default clinic or default clinic is HQ if clinics are enabled.
FK to provider.ProvNum. Cannot be used if EmployeeNum is used. It is possible to have multiple userods attached to a single provider.
Set true to hide user from login list.
FK to tasklist.TaskListNum. 0 if no inbox setup yet. It is assumed that the TaskList is in the main trunk, but this is not strictly enforced. User can't delete an attached TaskList, but they could move it.
Defaults to 3 (regular user) unless specified. Helps populates the Anesthetist, Surgeon, Assistant and Circulator dropdowns properly on FormAnestheticRecord///
If set to true, the BlockSubsc button will start out pressed for this user.
Gets set to true if strong passwords are turned on, and this user changes their password to a strong password. We don't store actual passwords, so this flag is the only way to tell.
Only used when userod.ClinicNum is set to not be zero. Prevents user from having access to other clinics.
If set to true, the BlockInbox button will start out pressed for this user.
FK to userod.UserNum. The user num within the Central Manager database. Only editable via CEMT. Can change when CEMT syncs.
Keeps track of the last appointment view used on a per user basis. Users can have multiple rows in this table when using clinics.
Primary key.
FK to userod.UserNum.
FK to clinic.ClinicNum. 0 if clinics is not being used or if the user has not been assigned a clinic.
FK to apptview.ApptViewNum.
Primary key.
FK to userod.UserNum.
Foreign key to a table associated with FkeyType. Can be 0 if the user preference does not need a foreign key.
Specifies which flag is overridden for the specified definition, since an individual definition can have multiple flags.
Used to hold the override, which might be a simple primitive value, a comma separated list, or a complex document in xml.
A list of query favorites that users can run.
Primary key.
Description.
The name of the file to export to.
The text of the query.
A vaccine definition. Should not be altered once linked to VaccinePat.
Primary key.
RXA-5-1.
Name of vaccine. RXA-5-2.
FK to drugmanufacturer.DrugManufacturerNum.
Vaccine observation. There may be multiple vaccine observations for each vaccine.
Primary key.
FK to vaccinepat.VaccinePatNum.
Enum:VaccineObsType Coded, Dated, Numeric, Text, DateAndTime. Used in HL7 OBX-2.
Corresponds to HL7 table 0125.
0 - Code CE. Coded entry. (default)
1 - Code DT. Date (no time).
2 - Code NM. Numeric.
3 - Code ST. String.
4 - Code TS. Date and time.
Enum:VaccineObsIdentifier Identifies the observation question. Used in HL7 OBX-3.
Corresponds to HL7 value set NIP003 (http://hl7v2-iz-testing.nist.gov/mu-immunization/).
This code set is a subset of LOINC codes. Used in HL7 OBX-3.
0 - LOINC code 29768-9. Date vaccine information statement published:TmStp:Pt:Patient:Qn: (default)
1 - LOINC code 29769-7. Date vaccine information statement presented:TmStp:Pt:Patient:Qn:
2 - LOINC code 30944-3. Date of vaccination temporary contraindication and or precaution expiration:TmStp:Pt:Patient:Qn:
3 - LOINC code 30945-0. Vaccination contraindication and or precaution:Find:Pt:Patient:Nom:
4 - LOINC code 30946-8. Date vaccination contraindication and or precaution effective:TmStp:Pt:Patient:Qn:
5 - LOINC code 30956-7. Type:ID:Pt:Vaccine:Nom:
6 - LOINC code 30963-3. Funds vaccine purchased with:Find:Pt:Patient:Nom:
7 - LOINC code 30973-2. Dose number:Num:Pt:Patient:Qn:
8 - LOINC code 30979-9. Vaccines due next:Cmplx:Pt:Patient:Set:
9 - LOINC code 30980-7. Date vaccine due:TmStp:Pt:Patient:Qn:
10 - LOINC code 30981-5. Earliest date to give:TmStp:Pt:Patient:Qn:
11 - LOINC code 30982-3. Reason applied by forcast logic to project this vaccine:Find:Pt:Patient:Nom:
12 - LOINC code 31044-1. Reaction:Find:Pt:Patient:Nom:
13 - LOINC code 38890-0. Vaccine component type:ID:Pt:Vaccine:Nom:
14 - LOINC code 46249-9. Vaccination take-response type:Prid:Pt:Patient:Nom:
15 - LOINC code 46250-7. Vaccination take-response date:TmStp:Pt:Patient:Qn:
16 - LOINC code 59779-9. Immunization schedule used:Find:Pt:Patient:Nom:
17 - LOINC code 59780-7. Immunization series:Find:Pt:Patient:Nom:
18 - LOINC code 59781-5. Dose validity:Find:Pt:Patient:Ord:
19 - LOINC code 59782-3. Number of doses in primary immunization series:Num:Pt:Patient:Qn:
20 - LOINC code 59783-1. Status in immunization series:Find:Pt:Patient:Nom:
21 - LOINC code 59784-9. Disease with presumed immunity:Find:Pt:Patient:Nom:
22 - LOINC code 59785-6. Indication for Immunization:Find:Pt:Patient:Nom:
23 - LOINC code 64994-7. Vaccine fund pgm elig cat
24 - LOINC code 69764-9. Document type
The observation value. The type of the value depends on the ValType. Used in HL7 OBX-5.
Enum:VaccineObsValCodeSystem CVX, HL70064. The observation value code system when ValType is Coded. Used in HL7 OBX-5.
Used in HL7 OBX-5.
0 (default)
1
2
FK to vaccineobs.VaccineObsNum. All vaccineobs records with matching GroupId are in the same group. Set to 0 if this vaccine observation is not part of a group. Used in HL7 OBX-4.
Used in HL7 OBX-6.
Date of observation. Used in HL7 OBX-14.
Code from code set CDCPHINVS (this code system is not yet fully defined, so user has to enter manually). Used in HL7 OBX-17. Only required when IdentifyingCode is FundPgmEligCat.
A vaccine given to a patient on a date.
Primary key.
FK to vaccinedef.VaccineDefNum. Can be 0 if and only if CompletionStatus=NotAdministered, in which case CVX code is assumed to be 998 (not administered) and there is no manufacturer.
The datetime that the vaccine was administered.
Typically set to the same as DateTimeStart. User can change.
Size of the dose of the vaccine. 0 indicates unknown and gets converted to 999 on HL7 output.
FK to drugunit.DrugUnitNum. Unit of measurement of the AdministeredAmt. 0 represents null. When going out in HL7 RXA-7, the units must be valid UCUM or the export will be blocked.
Sometime in the future, we may want to convert this column to a string and name it "UcumCode". For now left alone for backwards compatibility.
Optional. Used in HL7 RXA-9.1.
FK to patient.PatNum.
Documentation sometimes required.
The city where the vaccine was filled. This can be different than the practice office city for historical vaccine information. Exported in HL7 ORC-3.
The state where the vaccine was filled. This can be different than the practice office state for historical vaccine infromation. Exported in HL7 ORC-3.
Exported in HL7 RXA-20. Corresponds to HL7 table 0322 (guide page 225).
Exported in HL7 RXA-9. Corresponds to CDC code set NIP001 (http://hl7v2-iz-testing.nist.gov/mu-immunization/).
FK to userod.UserNum. The user that the vaccine was entered by. May be 0 for vaccines added before this column was created. Exported in HL7 ORD-10.
FK to provider.ProvNum. The provider who ordered the vaccine. Exported in HL7 ORD-12.
FK to provider.ProvNum. The provider who administered the vaccine. Exported in HL7 RXA-10.
The date that the vaccine expires. Exported in HL7 RXA-16.
Exported in HL7 RXA-18. Corresponds to CDC code set NIP002 (http://hl7v2-iz-testing.nist.gov/mu-immunization/).
Exported in HL7 RXA-21. Corresponds to HL7 table 0323 (guide page 225).
Exported in HL7 RXR-1. Corresponds to HL7 table 0162 (guide page 200).
Exported in HL7 RXR-2. Corresponds to HL7 table 0163 (guide page 201).
For EHR module, one dated vital sign entry. BMI is calulated on demand based on height and weight and may be one of 4 ALOINC codes. 39156-5 "Body mass index (BMI) [Ratio]" is most applicable.
Primary key.
FK to patient.PatNum.
Height of patient in inches. Fractions might be needed some day. Allowed to be 0. Six possible LOINC codes, most applicable is 8302-2, "Body height".
Lbs. Allowed to be 0. Six possible LOINC codes, most applicable is 29463-7, "Body weight".
Units are mmHg (millimeters of mercury). Allowed to be 0. LOINC code 8480-6.
Units are mmHg (millimeters of mercury). Allowed to be 0. LOINC code 8462-4.
The date that the vitalsigns were taken.
For an abnormal BMI measurement this must be true in order to meet quality measurement.
If a BMI was not recorded, this must be true in order to meet quality measurement. For children, this is used as an IsPregnant flag, the only valid reason for not taking BMI on children.
For HasFollowupPlan or IsIneligible, this documents the specifics.
.
.
Used for CQMs. SNOMED CT code either Normal="", Overweight="238131007", or Underweight="248342006". Set when BMI is found to be "out of range", based on age groups. Should be calculated when vital sign is saved. Calculate based on age as of Jan 1 of the year vitals were taken. Not currently displayed to user.
FK to ehrcode.CodeValue. Also FK to LOINC.LoincCode. Used for CQMs. LOINC code used to describe the height exam performed. Examples: Body Height Measured=3137-7, Body Height Stated=3138-5, Body Height --pre surgery=8307-1. We will default to Body Height=8302-2, but user can choose another from the list of 6 allowed. Can be blank if BP only.
FK to ehrcode.CodeValue. Also FK to LOINC.LoincCode. Used for CQMs. LOINC code used to describe the weight exam performed. Examples: Body Weight Measured=3141-9, Body Weight Stated=3142-7, Body Weight --with clothes=8350-1. We will default to Body Weight=29463-7, but user can choose another from the list of 6 allowed. Can be blank if BP only.
FK to ehrcode.CodeValue. Also FK to LOINC.LoincCode. Used for CQMs. LOINC code used to describe the BMI percentile calculated. We will use LOINC 59576-9 - BMI Percentile Per age and gender. Can be blank if BP only.
FK to ehrnotperformed.EhrNotPerformedNum. This will link a vitalsign to the EhrNotPerformed object where the reason not performed will be stored. The linking will allow us to display the not performed reason directly in the vital sign window and will make CQM queries easier. Will be 0 if not linked to an EhrNotPerformed object.
FK to disease.DiseaseNum. This will link this vitalsign object to a pregnancy diagnosis for this patient. It will be 0 for non pregnant patients. The disease it is linked to will be inserted automatically based on the default value set. In order to change this code for this specific exam it will have to be changed in the problems list.
BMI percentile of patient, based on gender and age and the calculated BMI. We will use the CDC numbers to calculate percentile found here: (http://www.cdc.gov/nchs/data/series/sr_11/sr11_246.pdf).
Recorded pulse of the patient. Stored in beats per minute.
Keeps track of column widths in Wiki Lists.
Primary key.
Name of the list that this header belongs to. Tablename without the prefix.
Name of the column that this header belongs to.
Width in pixels of column.
Rows never edited, just added. Contains all historical versions of each list.
Primary key.
FK to userod.UserNum.
Will not be unique because there are multiple revisions per page.
The contents of the corresponding WikiListHeaderWidths row converted to a string in format ColName1,ColWidth1;ColName2,ColWidth2;... Database type text/varChar2(4000) (65K/4K)
The entire contents of the revision are stored as XML. Database type mediumtext/clob (16M,4G)
The DateTime from the original WikiPage object.
Rows never edited, just added, unless the wiki page is a draft. Contains only newest versions of each page and all drafts.
Primary key.
FK to userod.UserNum.
Must be unique. Any character is allowed except: \r, \n, and ". Needs to be tested, especially with apostrophes.
Automatically filled from the [[Keywords:]] tab in the PageContent field as page is being saved.
Content of page stored in "wiki markup language". This should never be updated, unless it is a draft. Medtext (16M)
The DateTime that the page was saved to the DB. User can't directly edit.
Signifies that the wiki page is a draft, and will only show in the Wiki Drafts form.
Rows never edited, just added. Contains all historical versions of each page as well.
Primary key.
FK to userod.UserNum.
Will not be unique because there are multiple revisions per page.
The entire contents of the revision are stored in "wiki markup language". This should never be updated. Medtext (16M)
The DateTime from the original WikiPage object.
This flag will only be set for the revision where the user marked it deleted, not the ones prior.
XCharge transactions that have been imported into OD. Used by reconcile tool. Keeps a history, but no references to these rows from other tables.
Primary key.
Usually "CCPurchase."
Amount.
Credit card entry method. Usually "Keyed".
FK to patient.PatNum.
Result: AP for approved, DECLINE for declined.
ClerkID. Open Dental username with a possible " R" at the end to indicate a recurring charge.
ResultCode: 000 for approved, 005 for declined.
Expiration is shown as a four digit number (string since it may contain leading zeros).
VISA, AMEX, MC, DISC etc.
Usually looks like 123456XXXXXX7890.
BatchNum.
ItemNum. Starts at 0001 for each batch.
Approval code. 6 characters. 72142Z for example.
TransactionDateTime. Is taken from the Date and Time columns in X-Charge.
Received as XML output from XWeb gateway. Not all fields are available for all method calls. This is a combination of all possible output fields.
The fields that are available are dependent on which method was called and the given result.
HPF (XWeb Hosted Payment Form) Payments and HPF CC Alias creations will each enter a row in this table. That row will be monitored by the eConnector and updated when the XWebResponseCode changes from Pending.
-- 1) Create the row and indicate the HPF/OTK.
-- 2) Poll the OTK (one-time key) until an XWebResponseCode is available. Update the row with information about the transaction.
DTG (XWeb Direct To Gateway) Will enter 1 row in this table.
-- 1) Make the DTG payment using a pre-authorized CC alias. Create row with information about the transaction.
Any fields prefixed with 'Gateaway output' come directly as XML output from the XWeb Gateway. All other fields are derived by OD.
The class instance will created by eConnector by deserializing an XML string as received from XWeb Gateway.
The fields names MUST NOT CHANGE for this reason. XML will not deserialize if the names do not match EXACTLY.
Primary key.
FK to patient.PatNum.
FK to provider.ProvNum.
FK to clinic.ClinicNum.
FK to payment.PaymentNum.
Timestamp at which this row was created. Auto generated on insert.
Timestamp at which this row was last updated. Will be updated each time the OTK status is polled and one final time when XWebResponseCode changes from Pending.
Inidicates which phase of the XWeb process this transaction is in. See class summary for details.
Gateaway output. Pre-defined responses generated by XWeb. Will be converted to strongly typed enum XWebResponseCode.
Strongly typed representation of ResponseCode. Initialized by XWebInputAbs.CreateGatewayResponse().
Gateaway output. Gives a more detailed description on the ResponseCode.
Gateaway output. This is the One Time Key that is used to launch the Hosted Payment Form.
The status of the OTK can be polled to determine if the end user has completed the HPF or if it has expired.
This URL will be generated as a result of the OTK. The URL can be browsed in an IFRAME to create a secure portal between a browser and the XWeb server.
Timestamp at which this HPF will expire. The end user will only be able to access the HPF before it has expired. This expiration is set explicitly when creating the HPF.
Gateaway output. Each transaction is given a reference for future use. This can be used to void the transaction.
Gateaway output. The type of transaction that was processed. Must be a string data type because it comes from the Gateway as a string.
Gateaway output. A credit transaction will return an alias which is now linked to the credit card which was used.
This alias can be used in the future to make DTG payments and circumvent the need for the secure HPF. Only applies when Credit (not Debit) data is submitted on the HPF.
Gateaway output. The card type used for this transaction.
"Credit" - for cards that support signature only.
"Debit/Credit" - for cards that support either PIN-entry or signature.
"Debit/ATM" - for cards that support PIN-entry only.
"FSA" - for Flexible Spending Accounts
Gateaway output. The card brand used for this transaction. Possible values include "Visa", "MasterCard", "Discover", "American Express", "Diners Club", "JCB", "PayPal".
Gateaway output. The industry standard abbreviation of the card brand.
Possible values include "VS", "MC", "DS", "AX", "DCIDISC", "JCB-DISC", "PP" (order respective to CardBrand above).
Gateaway output. Provides a masked format of the account number. The format will show the last 4 digits, the remainder will masked out with an asterisk character.
End user will be presented with a list of previously generated MaskedAcctNum(s) when making a payment. These are linked to an alias which can be used to make a DTG payment.
This ciccumvents the need to use the HPF.
Gateaway output. Amount of credit card and check transactions.
Gateaway output. A 6 digit authorization approval code.
Gateaway output. Response from the Card Security Code lookup. Only applies when Credit(not Debit) data is submitted on the HPF.
Gateaway output. An identification number assigned by the OpenEdge Gateway to the receipt.
Gateaway output. Provides the Expiration Date of the account being accessed. Format is yyMM from XWeb gateway. Will be converted to ExpirationDate.
Gateaway output. Indicates how the account number was entered by the end user. Always 'KEYED' in our case.
Gateaway output. The response from the processor. It is only returned on transactions that are processed by the processor (Auth, Sales and Settlements).
Gateaway output. This indicates the current open batch number.
Gateaway output. Net amount of Credit and Debit Card transactions in batch.
The expiration date of the credit card that was referenced in this transaction. DateTime representation of ExpDate. Initialized by XWebInputAbs.CreateGatewayResponse().
Debug information regarding this response. Can only be set by XWebResponses.ProcessOutstandingTransactions().
Will be entered as Payment.PayNote once payment transaction has completed.
Zipcodes are also known as postal codes. Zipcodes are always copied to patient records rather than linked. So items in this list can be freely altered or deleted without harming patient data.
Primary key.
The actual zipcode.
.
.
If true, then it will show in the dropdown list in the patient edit window.