Allscripts Vision User Reporting

A quick Powershell script I hacked together that will enumerate all Active Directory users, and build an XML file for an application I wrote that generates user reports for a specific application.

The output file format is similar to:

<quickreports>
  <report name=Organizational Unit>
  <database name=v001/>
  <usrlogin name=jdoe01/>
</report>
<quickreports>
$ErrorActionPreference= 'silentlycontinue'
$arr=@{}
foreach ($usr in Get-ADUser -Filter *  | select samaccountname) {
$user = get-aduser -identity $usr.samaccountname -ErrorAction SilentlyContinue
$userou = (($user.DistinguishedName -split =,2)[-1].split(,)[1] -split =,2)[-1]
$key = $userou
$value = $usr.samaccountname
if ($arr.ContainsKey($userou)) {
$arr[$userou] += $usr.samaccountname
} else {
$arr[$userou] = @()
$arr.add($key,$value)
}
}
$foo = <?xml version=1.0 encoding=utf-8?>`r`n
$foo += <quickreports>`r`n
$foo += foreach ($ou in $arr.keys) {
    write-output   <report name=$ou>`r`n
    foreach ($u in $arr[$ou]) {
                if ($u.contains(01)) {
                    write-output <database name=v001/>`r`n
                } elseif ($u.contains(04)) {
                    write-output <database name=v004/>`r`n
                } else {
                    write-output <database name=/>`r`n
                }
        write-output <usrlogin name=$u/>`r`n
}
    write-output </report>`r`n
}
$foo += </quickreports>
$foo | out-file quickreport.xml
# for some reason the outputted file was dumping 0x00 into the file.  Eventually
# I'll clean all this up and just write all the attributes and elements from up above
# but now is not the time as this is just a quick and dirty POC
$fn = quickreport.xml
$xmlDoc = [system.xml.xmldocument](get-content $fn)
$xmlDoc.save($fn)

Change Allscripts ProEHR HMScan Path

Follow the steps below against correct EHR database in SQL Management Studio if you want to change the pointers yourself.

  1. select * from HPSITE.SCAN_DOCUMENTPAGE
  2. Update the Document Page from the old Server to the new Server:
UPDATE HPSITE.SCAN_DOCUMENTPAGE
SET FILELOCATION = REPLACE(FILELOCATION,'\OLDserver\Hmscan','\NEWserver\hmscan')
  1. Update the Scan Job from the old Server to the new Server:
UPDATE HPSITE.SCAN_JOB
SET DIRECTORY= REPLACE(DIRECTORY,'\OLDserver\Hmscan','\NEWserver\hmscan')
  1. Update the Locations path for all locations in the Allscripts EHR Administration Module – Locations
    1. If moved just the HMScan folder, change the path for the HMScan ONLY in the:
      1. Temp Storage
      2. Mass Storage
      3. possibly Import Default
  2. Verify paths are now correct:
select * from HPSITE.SCAN_DOCUMENTPAGE
select * from HPSITE.SCAN_JOB
  1. Test by opening a patient, with an attached image. Go into Allscripts EHR and click on the ‘Pull a Chart’ icon (yellow).

Allscripts Project

Last week I worked on one of my projects for Allscripts Vision accounting to add a few enhancements.

The major enhancement was the ability to export a detailed report for all users to Excel and create a Pivot table with chart of users’ logins over the report’s timeline.

You can read more on my project page for this project.

Allscripts ProEHR 9.10.3 database table and column extended properties text:  ProEHR 9.10.3 – Table and Column Extended Properties

Misys Vision Encounter Templates

Misys Vision Encounter (Superbill) Templates

SQL Query:

select tmpname,tmpdesc from formtmphdr where allow_edit = 'N' and tmptype = 7
tmpname       tmpdesc
CODESCAN1S    MICROSCAN ENCOUNTER 1 (8 LPI - STYLE 2)
CODESCAN3S    MICROSCAN ENCOUNTER 3 (8 LPI - STYLE 2)
ENC09         MEDIC ENCOUNTER FORM #9
ENC09LASER    MEDIC #9 LASER ENCOUNT (60 LPP STYLE 3)
ENC10         MEDIC ENCOUNTER FORM #10
ENC10LABEL    MEDIC LABEL ENCOUNTER FORM #10 (STYLE 3)
ENC10LASER    MEDIC #10 LASER ENCOUNT (60 LPP STYLE 3)
ENC11         MEDIC ENCOUNTER FORM #11
ENC11LASER    MEDIC #11 LASER ENCOUNT (60LPP STYLE 1)
ENCVIS        VISION STANDARD ENCOUNTER
ENCVISLASE    MEDIC VISION LASER ENC (60LPP STYLE 2)
MICROSCAN3    MICROSCAN ENCOUNTER (3RD VERS) 2.14.4   

These are the non-editable templates. You must copy the template (tmpname) to a new template and modify the new template accordingly.