Input
As a CTO of a healthcare software company you need to have this information.
This information should have automated collection
It should be perfectly possible to automatically collect all this information automatically from production interfaces.
Somewhere configuration files or databases exist with this information and so centralized collection should be possible and in this way the information kept up to date.
Example inventory table
| Client | Interface | Port In | Application In | Port / Host Out | Application Out | Protocol ACK Only |
|---|---|---|---|---|---|---|
| Client A | ADT | 5001 | Patient Registration | 6001 / emr01 | EMR | Yes |
| Client A | Orders | 5002 | CPOE | 7001 / lis01 | Laboratory System | Yes |
| Client B | Results | 5003 | LIS | 6002 / emr01 | EMR | No |
| Client B | Radiology | 5004 | EMR | 8001 / ris01 | RIS | Yes |
| Client C | Billing | 5005 | EMR | 1433 / sql01 | Billing System | N/A |
Can you give me a spreadsheet of the port numbers and hosts our interfaces are listening on?
This is typically a binary yes or no answer. The organization either has this information at scale or they do not.
It is something that should be known.
If they do not know the hosts that each interface is receiving data from, this poses a potential security risk—how can you be sure a system hasn't been compromised? At the very least, this information should be logged for security purposes.
What ports/hosts are we sending information to?
Again, this is very important. At scale, this information is critical and should be known organization-wide for support and business continuity purposes.
Is the data encrypted using TLS/SSL—yes or no?
Unfortunately, many legacy systems do not have this capability, but it should be documented.
Is the acknowledgement protocol just a simple protocol ACK, or is there more?
This is key—hopefully, it is the former, as that is much simpler. When an ACK simply signals that data has been received, it is a much easier problem to manage than if the ACK signals application errors.
The latter is fortunately rare, since most HL7 senders use the simple protocol ACK, as implementing more complexity is challenging.
I give a deeper explanation about the issues regarding protocol versus application acks here.