2017 © Pedro Peláez
 

library mllp

PHP MLLP Server & Client. Based on ReaktPHP.

image

pharmaintelligence/mllp

PHP MLLP Server & Client. Based on ReaktPHP.

  • Sunday, January 25, 2015
  • by linde002
  • Repository
  • 1 Watchers
  • 2 Stars
  • 5,364 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 1 Versions
  • 4 % Grown

The README.md

MLLP

MLLP Server implementation in PHP built on reactphp. The MLLP Server listens to a TCP port. Accepts MLLP payloads, handles the unwrapping of the MLLP envelope and wrapping or the response., (*1)

Server

This distribution contains one abstract Server class that can be used to build upon and emits 4 events. Responses to clients should be send through the send() function., (*2)

Events

  1. connection : When a connection is made this event is emitted. Argument is the connection. Instance of ConnectionInterface
  2. data: When data is received this event is emitted. Event contains two arguments: $data the data received, stripped from it's MLLP envelope, and the connection which received the data, instance of ConnectionInterface
  3. send: When data is sent through the server this event is emitted. Event contains the unwrapped data.
  4. error: Whenever an error occurs on receiving data, unwrapping the MLLP envelope, or sending the data this event is emitted. Contains one argument: $errorMessage

Example implementation

```<?php, (*3)

use PharmaIntelligence\MLLP\Server; use PharmaIntelligence\HL7\Unserializer; use React\Socket\ConnectionInterface;, (*4)

class MyServer extends Server { // No added logic in this example }, (*5)

$loop = React\EventLoop\Factory::create(); $socket = new React\Socket\Server($loop); // Set up a React stream to STDOUT to log everything to the console. $logging = new React\Stream\Stream(STDOUT, $loop); $server = new MyServer($socket);, (*6)

// Log connection info $server->on('connection', function(ConnectionInterface $connection) use($logging) { $logging->write('Connection from: '.$connection->getRemoteAddress().PHP_EOL); });, (*7)

// Log error info $server->on('error', function($errorMessage) use($logging) { $logging->write('Error: '.$errorMessage.PHP_EOL); });, (*8)

// Log sent data $server->on('send', function($data) use($logging) { $logging->write('Sending: '.str_replace(chr(13), PHP_EOL, $data).PHP_EOL); });, (*9)

// Log received data $server->on('data', function($data) use($logging) { $logging->write('Received: '.str_replace(chr(13), PHP_EOL, $data).PHP_EOL); }); $server->on('data', function ($data, ConnectionInterface $connection) use($server) { // $data contains a HL7 Payload // Parse HL7 and create an ACK message $ack = 'AN_ACK_STRING'; $server->send($ack, $connection); $connection->end(); }); $socket->listen(23887);, (*10)

$loop->run(); ```, (*11)

The Versions

25/01 2015

dev-master

9999999-dev https://github.com/pharma-intelligence//MLLP/

PHP MLLP Server & Client. Based on ReaktPHP.

  Sources   Download

MIT

The Requires

 

hl7 mll