Using Transformers

This topic describes the transformers and its mapping information.

The below table lists the transformers name, type, and its mapping information:

Table 1. List of Transformers
Name of Transformer Type Mapping
SendingApplication Mapper msg['MSH']['MSH.3']['MSH.3.1'].toString()
SendingFacility Mapper msg['MSH']['MSH.4']['MSH.4.1'].toString()
DateTimeOfMessage JavaScript

var datestring = DateUtil.convertDate("yyyyMMddHHmmss","MM/dd/yyyy HH:mm:ss", msg["MSH"]["MSH.7"]["MSH.7.1"].toString());

channelMap.put("DateTimeOfMessage", datestring);
PointOfCare Mapper msg['PV1']['PV1.3']['PV1.3.1'].toString()
Bed Mapper msg['PV1']['PV1.3']['PV1.3.3'].toString()
UniversalSerialIndetifier Mapper

try

{

var USI1 = msg['OBR']['OBR.4']['OBR.4.1'].toString();

var USI2 = msg['OBR']['OBR.4']['OBR.4.2'].toString();

var OBXForACK = msg['OBX'][4]['OBX.2']['OBX.2.1'].toString();

var AlarmAction = msg['OBX'][2]['OBX.5']['OBX.5.1'].toString();

var AcknowledgeFromMonitor = "";

if ( OBXForACK.toUpperCase() == 'CWE' ) //Coded With Exceptions

{

AcknowledgeFromMonitor = msg['OBX'][4]['OBX.5']['OBX.5.2'].toString();

if ( AcknowledgeFromMonitor.toUpperCase() == "ACKNOWLEDGED")

{

AlarmAction = "END";

}

}

if ( ( USI1.toUpperCase() == "ALARM") || ( USI2.toUpperCase() == "MDC_EVT_ALARM"))

{

// check the alarm end condition

if ( AlarmAction.toUpperCase() == "START" )

{

channelMap.put('UniversalServiceIdentifier', "Alarm-Start");

}

else if ( AlarmAction.toUpperCase() == "END" )

{

channelMap.put('UniversalServiceIdentifier', "Alarm-End");

}

}

}

catch(err)

{

channelMap.put('UniversalServiceIdentifier', "");

}
AlarmLevel Mapper msg['OBX'][5]['OBX.5']['OBX.5.1'].toString()
AlarmReason JavaScript

// Get the alarm event

var AlarmEvent = msg['OBX'][0]['OBX.5']['OBX.5.2'].toString();

// Get the observation

var Observation = msg['OBX'][1]['OBX.3']['OBX.3.2'].toString();

// Get the required alarm reason from global map

var RequiredAlarmReason = globalMap.get("RequiredAlarmReason");

// Get the required alarm reason expanded name from global map

var RequiredAlarmReason_Expansion = globalMap.get("RequiredAlarmReason_Expansion");

// Get the observation code from global map

var ObservationCode = globalMap.get("ObservationCode");

// Get the observation code expansion from global map

var ObservationCode_Expansion = globalMap.get("ObservationCode_Expansion");

//Variable to hold alarm reason

var AlarmReason = "";

if ( AlarmEvent == "MDC_EVT_LO_VAL_LT_LIM" )

{

var ArrIndex = ObservationCode.indexOf(Observation);

if ( ArrIndex >= 0 )

{

AlarmReason = "Low " + ObservationCode_Expansion[ArrIndex] ;

}

else

{

logger.info('Warning : Observation code not found in ObservationCode array.');

}

}

else if ( AlarmEvent == "MDC_EVT_HI_VAL_GT_LIM" )

{

var ArrIndex = ObservationCode.indexOf(Observation);

if ( ArrIndex >= 0 )

{

AlarmReason = "High " + ObservationCode_Expansion[ArrIndex] ;

}

else

{

logger.info('Warning : Observation code not found in ObservationCode array.');

}

}

else if ( AlarmEvent == "MNDRY_EVT_VAL_OUTSIDE_LIM")

{

var ArrIndex = ObservationCode.indexOf(Observation);

if ( ArrIndex >= 0 )

{

AlarmReason = "Outside limit " + ObservationCode_Expansion[ArrIndex] ;

}

else

{

logger.info('Warning : Observation code not found in ObservationCode array.');

}

}

//else if ( AlarmEvent == "MNDRY_EVT_PHYS_ALM_UNKNOWN_CHANNEL")

//{

//TBD

//}

else

{

var ArrIndex = RequiredAlarmReason.indexOf(AlarmEvent);

AlarmReason = RequiredAlarmReason_Expansion[ArrIndex];

}

channelMap.put('AlarmReason', AlarmReason);
Action JavaScript

try

{

var AlarmAction = msg['OBX'][2]['OBX.5']['OBX.5.1'].toString();

var OBXForACK = msg['OBX'][4]['OBX.2']['OBX.2.1'].toString();

var AcknowledgeFromMonitor = "";

if ( OBXForACK.toUpperCase() == 'CWE' ) //Coded With Exceptions

{

AcknowledgeFromMonitor = msg['OBX'][4]['OBX.5']['OBX.5.2'].toString();

if ( AcknowledgeFromMonitor.toUpperCase() == "ACKNOWLEDGED")

{

AlarmAction = "END";

logger.info('Alarm acknowledgement received from monitor.');

}

}

// check the alarm end condition

if ( AlarmAction.toUpperCase() == "END" )

{

channelMap.put('Action', 'Cancel');

}

else

{

channelMap.put('Action', '');

}

}

catch(err)

{

channelMap.put('Action', '');

logger.error("Alarm end action not found.");

}
Vital JavaScript

//variable to hold param value

var paramValue = "";

try

{

// check if there is any vital ( numeric )value

if ( msg['OBX'][1]['OBX.2']['OBX.2.1'].toString().toUpperCase() == "NM")

{

paramValue = " " +msg['OBX'][1]['OBX.5']['OBX.5.1'].toString();

}

channelMap.put('Vital', paramValue);

}

catch(err)

{

logger.error('Vital' + err.message);

}
Site JavaScript

var Site = "";

try

{

// Get site (sending facility)from the MSH segment

var MSHSendingFacility = msg['MSH']['MSH.4']['MSH.4.1'].toString();

//logger.info('MSHSendingFacility =>' + MSHSendingFacility);

if ( MSHSendingFacility != null && MSHSendingFacility.length > 0 )

{

Site = MSHSendingFacility.trim();

}

// Get site (sending facility)from the PV1 segment

var PV1SendingFacility = msg['PV1']['PV1.3']['PV1.3.4'].toString();

// Try to get site name from PV1 segment

if ( PV1SendingFacility != null && PV1SendingFacility.length > 0 )

{

Site = PV1SendingFacility.trim();

}

//logger.info('PV1SendingFacility =>' + Site);

channelMap.put('Site', Site);

}

catch(err)

{

logger.error('message' + err.message);

channelMap.put('Site', Site);

}