Read about OpenEMR's Response to the COVID-19 Pandemic at

Advanced Billing UB04/CMS-1450/837I Claims. This will release in version 5.0.1

I have been working on the UB04 form integration in billing manager. As of today I have the same functionality as the 1500 (pdf download with both form and print to pre-printed batch) completed with just needing to finish populating the templates claim array.
I’ve developed this in such a way as to allow editing the form before sending but can’t decide how to implement. Currently I am leaning towards allowing the form to be generated from encounters but maybe a better place is to add a button to each claim in billing manager. So hopefully some here will will have some thoughts.
I will have a demo on my test server in a day or two to look at but for now if anyone has a pre-printed CMS-1450 who would be so kind as to measure the margins for me, it would help me setting up print defaults and testing.

Usage note: To use this module a dependency needs to be added see
GitHub - openemr/wkhtmltopdf-openemr: Dependencies for wkhtmltopdf support in OpenEMR

1 Like

I’ve put UB04 up on my test server( not completed but close) for any whom may like to see how I envision the form and integration into billing manager. I’ve also started restyling billing manager. Test server is at: with username:admin pass:nopass. Patient Jason Binder has some claims set up PID:30. They may not make sense but gives an idea. @brady.miller I also made some headway on Hearing and PFT if interested. Binder’s last encounter has some examples.

Very much interested in feedback and thanks.

edit: Currently works best on Firefox. I.E Edge has minor issues.


Hi @sjpadgett ,

Just tried it out. Neat on direct editing of the form in billing module. It doesn’t look like the billing items are populating the form, but I am guessing that is in the pipeline.

And oh my goodness, you have some nice forms in there :slight_smile:


really nice demo @sjpadgett! agree with Brady’s comments

Thanks for taking time to give me feedback @brady.miller and @stephenwaite. Not having any negative feedback I suppose I’ll go ahead and open a PR in next couple days. Current plan is to implement in a couple stages with first being to finish the restyle of billing manager to mainly style out the depreciated table attributes and try to bring up to html5 and psr2. With that commit will also commit dependencies and setup in globals billing. Follow on commit will be the completed population of claim on form. I am modeling the claim on Medicare as payer. Somewhere in there I want to be able to persist form edits to somewhat emulate misc_billing in encounter, except global.
I haven’t any current plans to do X12 for now because time is running out for me to get portal ready for next release.
Comments and suggestions are always appreciated.

@brady.miller Finished billing manager restyle and integration of ub04 into OpenEMR proper. Only thing left is to finish populating forms claim array.
Thought I’d give folks a chance to look on server and comment before opening PR to get restyled billing manager in codebase.

@sjpadgett ,

Looks good to me. Note we just brought in a megacommit(touch basically every php script) into codebase recently as we are converting codebase to psr2 . When you post your code on PR, don’t worry about trying to incorporating into most recent codebase (rec. posting your code based on codebase prior to the mega-commit; I’m happy to take on the task of then getting it into the most updated codebase via some rather complicated git magic: Surfing projects through recent mega-commit for psr2 styling changes of entire codebase · Issue #933 · openemr/openemr · GitHub )

looking forward to seeing the code


@brady.miller I was able to muddle my way through it and am current as of yesterday, thanks though because if it blew up on me, your plan was my plan:). So the old adage that you can’t teach old dog’s new tricks is indeed, not always TRUE…Ugh! I mean, not true:)

1 Like

I’m close to opening PR for UB04 but could use some feedback. First I allow user to edit claim to add/change missing claim information not collected elsewhere in OpenEMR. I would like to collect as much of missing data as possible where it should be collected, problem is, where and what. For instance what modifications need to be done to fee sheet or visit encounters, primary admit diagnosis and inpatient/outpatient as examples.
Also I intend to allow individual payer templates of claim form to be saved for specific required blocks by payer so that they persist for future claims. What blocks tend to change from payer to payer would be helpful.

You may view the current state of project on my test server.


Also looking for preference on whether the edit form should pop up or open in new tab and should user be allowed to have more than one edit open at a time. Perhaps both with option for preference in Global s.

Still hoping somebody might have access to a CMS-1450/UB04 printed form that could measure the margins so I don’t have to order forms for testing.
@stephenwaite I believe you have been doing some work in billing. Do you have any thoughts while I’m touching billing?

1 Like

nice @sjpadgett, pretty impressive options you’re considering

i tried downloading a sample ub04 and even got out the ruler but it didn’t seem to be very precise, like not an exact number of sixteenth of inches

we only specialize with hcfa so not sure what to suggest

I have looked at the downloaded forms and am pretty sure it gets me in ball park but depending on how form was saved and the scaling just can’t be certain. Could not find a detailed spec on the form itself so I guess Amazon get’s some more of my business:) Thanks tho

1 Like

@brady.miller Just put up a new version with the form edit in place and everything else except turning on x12. Practice->Insurance has a default template editor per payer but not sure what to do with it yet(simply can’t help myself) :slight_smile: Date and provider dialog’s are in place with a couple others ready to go(Bill Type etc).
Notice the edit buttons will reflect if claim has been review/edited with all versions archived.
Have a safe trip.


@sjpadgett ,
Very nifty; spent lots of time just clicking on the date and npi boxes and watching the widgets popup from a ub04 image :slight_smile:

I have put up my final version before I submit for peer review if anyone wants to look at. Be really nice if somebody that is familiar with x12 837 institutional could try to emulate a claim so I can see how submitted claim looks.

1 Like

hope to contribute with a test 837i this week, thanks @sjpadgett

1 Like

Well maybe not final! I put up the restyled Billing Manager so @robert.down maybe would want to look at so you may see results while reviewing styling code.
Unfortunately bootstrap tables do not lend well to page layouts and I had to strike a compromise between html tables and bootstrap (Should convert to grid but ran out of steam). I can add a container responsive div if we want the billing detail table(bottom) full screen but, I landed on entire form in one container. Just looks better to me. I also set up button groups for the three action areas(X12,HCFA and UB04). Consolidating these seemed reasonable.
Code is cleaned up and ready for PR hopefully tomorrow.

Hope you guys don’t mind that I looked at it considering I’m new to OpenEMR. I looked at “patient” Jason Binder DOS 7/22/17 and clicked edit on the UB04. I’m assuming that certain fields will auto populate (name, DOB, etc) but some other fields should have an optional default setting (ie box 4 should default to 831). I’m sure you’re aware that you will need a table for Revenue Codes. In box 6 the through dated auto populated to today and would not accept a change of another date. I noticed the Total did not auto calculate. The date field in box 74 needs 2 more characters for a full date. When I clicked on either PDF the claim did not show. After I clicked save, exited out of the claim, then went back in, the changes I made were gone.

I assume you have access to the NUBC standards for filling out a UB04? The newest standard came out 7/1/2017.

I liked see the whole form. I haven’t noticed yet but does OpenEMR have a CMS1500 viewer?

1 Like

@MFCmanager Not at all and I look for any suggestions. Concerning totals, the edited form does not total charges because charges come from the billing fee sheet so any changes there are up to the user as I don’t intervene.
I have made provisions for a default claim by payer which is set up in insurance company under Practice menu. Though I don’t do anything with it now it is intended to pre-populate those vendor specific blocks when claim is generated. I’m not sure if it is needed or not.
Depending on browser setup a pdf may or may not open automatic but will simply save it where you chose. This is Chromes default behavior and I.E can be troublesome but, I’ve tested the pdf yesterday on all browsers with no issues.
When generating pdf from the claim edit it should not mark claim as cleared or create a new version of the claim and I have not had an issue with claim edit persistence, however, if claim is generated using billing managers ubo4 (or x12) pdf and you select to clear the claim then the claim will need to be reopened and a new claim version is created and the previous claim version is archived thus losing edits.
Based on Medicare Claims Processing Manual rev2017 the date field is only 6 digits for a date format of mmddyy on paper claim but, x12 requires yyyymmdd which I allow for, not sure what I should do here.
I will add the revenue codes and your other concerns before I commit.
Thanks for your input.

1 Like

Just seems I’m working the wrong end of the line! I’m trying to do institutional billing w/o the core institutional support that leads to billing. So for revenue codes I think I will modify codes setup to allow adding the appropriate revenue code to the HCPCS code it belongs with.This way a fee schedule can be created for different charges per code and relieves the coder from deciding at claim time the revenue code. Or could put lookup in fee sheet!
Any thoughts?

1 Like