use of com.google.api.services.healthcare.v1.model.Message in project beam by apache.
the class HL7v2Message method toModel.
/**
* To model message.
*
* @return the message
*/
public Message toModel() {
Message out = new Message();
out.setName(this.getName());
out.setMessageType(this.getMessageType());
out.setSendTime(this.getSendTime());
out.setCreateTime(this.getCreateTime());
out.setData(this.getData());
out.setSendFacility(this.getSendFacility());
if (this.schematizedData != null) {
out.setSchematizedData(new SchematizedData().setData(this.schematizedData));
}
out.setLabels(this.labels);
return out;
}
use of com.google.api.services.healthcare.v1.model.Message in project pentaho-kettle by pentaho.
the class HL7MLLPAcknowledge method execute.
public Result execute(Result previousResult, int nr) {
Result result = previousResult;
try {
String serverName = environmentSubstitute(server);
int portNumber = Integer.parseInt(environmentSubstitute(port));
String variable = environmentSubstitute(variableName);
MLLPSocketCacheEntry entry = MLLPSocketCache.getInstance().getServerSocketStreamSource(serverName, portNumber);
MLLPTransport transport = entry.getTransport();
//
synchronized (transport) {
String message = getVariable(variable);
// Parse the message and extract the acknowledge message.
//
Parser parser = new GenericParser();
ValidationContext validationContext = new NoValidation();
parser.setValidationContext(validationContext);
Message msg = parser.parse(message);
Message ack = msg.generateACK();
String ackMessage = ack.encode();
String APPNAME = "PDI4";
if (ack instanceof ca.uhn.hl7v2.model.v21.message.ACK) {
ca.uhn.hl7v2.model.v21.message.ACK mod = (ca.uhn.hl7v2.model.v21.message.ACK) ack;
mod.getMSH().getSENDINGAPPLICATION().setValue(APPNAME);
mod.getMSH().getSENDINGFACILITY().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v22.message.ACK) {
ca.uhn.hl7v2.model.v22.message.ACK mod = (ca.uhn.hl7v2.model.v22.message.ACK) ack;
mod.getMSH().getSendingApplication().setValue(APPNAME);
mod.getMSH().getSendingFacility().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v23.message.ACK) {
ca.uhn.hl7v2.model.v23.message.ACK mod = (ca.uhn.hl7v2.model.v23.message.ACK) ack;
mod.getMSH().getSendingApplication().getNamespaceID().setValue(APPNAME);
mod.getMSH().getSendingFacility().getNamespaceID().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v231.message.ACK) {
ca.uhn.hl7v2.model.v231.message.ACK mod = (ca.uhn.hl7v2.model.v231.message.ACK) ack;
mod.getMSH().getSendingApplication().getNamespaceID().setValue(APPNAME);
mod.getMSH().getSendingFacility().getNamespaceID().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v24.message.ACK) {
ca.uhn.hl7v2.model.v24.message.ACK mod = (ca.uhn.hl7v2.model.v24.message.ACK) ack;
mod.getMSH().getSendingApplication().getNamespaceID().setValue(APPNAME);
mod.getMSH().getSendingFacility().getNamespaceID().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v25.message.ACK) {
ca.uhn.hl7v2.model.v25.message.ACK mod = (ca.uhn.hl7v2.model.v25.message.ACK) ack;
mod.getMSH().getSendingApplication().getNamespaceID().setValue(APPNAME);
mod.getMSH().getSendingFacility().getNamespaceID().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v251.message.ACK) {
ca.uhn.hl7v2.model.v251.message.ACK mod = (ca.uhn.hl7v2.model.v251.message.ACK) ack;
mod.getMSH().getSendingApplication().getNamespaceID().setValue(APPNAME);
mod.getMSH().getSendingFacility().getNamespaceID().setValue(APPNAME);
ackMessage = mod.encode();
} else if (ack instanceof ca.uhn.hl7v2.model.v26.message.ACK) {
ca.uhn.hl7v2.model.v26.message.ACK mod = (ca.uhn.hl7v2.model.v26.message.ACK) ack;
mod.getMSH().getSendingApplication().getNamespaceID().setValue(APPNAME);
mod.getMSH().getSendingFacility().getNamespaceID().setValue(APPNAME);
ackMessage = mod.encode();
} else {
logError("This job entry does not support the HL7 dialect used. Found ACK class: " + ack.getClass().getName());
}
Transportable transportable = new TransportableImpl(ackMessage);
transport.doSend(transportable);
}
// All went well..
//
result.setNrErrors(0);
result.setResult(true);
} catch (Exception e) {
log.logError(BaseMessages.getString(PKG, "HL7MLLPInput.Exception.UnexpectedError"), e);
result.setNrErrors(1);
result.setResult(false);
}
return result;
}
use of com.google.api.services.healthcare.v1.model.Message in project pentaho-kettle by pentaho.
the class HL7Input method processRow.
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
meta = (HL7InputMeta) smi;
data = (HL7InputData) sdi;
// get row, set busy!
Object[] r = getRow();
if (r == null) {
// no more input to be expected...
setOutputDone();
return false;
}
if (first) {
data.messageFieldIndex = getInputRowMeta().indexOfValue(meta.getMessageField());
if (data.messageFieldIndex < 0) {
throw new KettleException("Unable to find field [" + meta.getMessageField() + "] in the input fields.");
}
data.outputRowMeta = getInputRowMeta().clone();
meta.getFields(data.outputRowMeta, getStepname(), null, null, this, repository, metaStore);
data.parser = new GenericParser();
data.parser.setValidationContext(new NoValidation());
}
String messageString = getInputRowMeta().getString(r, data.messageFieldIndex);
try {
Message message = data.parser.parse(messageString);
List<HL7Value> values = HL7KettleParser.extractValues(message);
for (HL7Value value : values) {
Object[] output = RowDataUtil.createResizedCopy(r, data.outputRowMeta.size());
int outputIndex = getInputRowMeta().size();
output[outputIndex++] = value.getParentGroup();
output[outputIndex++] = value.getGroupName();
output[outputIndex++] = value.getVersion();
output[outputIndex++] = value.getStructureName();
output[outputIndex++] = value.getStructureNumber();
output[outputIndex++] = value.getFieldName();
output[outputIndex++] = value.getCoordinate();
output[outputIndex++] = value.getDataType();
output[outputIndex++] = value.getDescription();
output[outputIndex++] = value.getValue();
putRow(data.outputRowMeta, output);
}
} catch (Exception e) {
throw new KettleException("Error parsing message", e);
}
if (checkFeedback(getLinesWritten())) {
if (log.isBasic()) {
logBasic(BaseMessages.getString(PKG, "HL7Input.Log.LineNumber") + getLinesWritten());
}
}
return true;
}
use of com.google.api.services.healthcare.v1.model.Message in project pentaho-kettle by pentaho.
the class HL7MLLPInput method execute.
public Result execute(Result previousResult, int nr) {
Result result = previousResult;
try {
String serverName = environmentSubstitute(server);
int portNumber = Integer.parseInt(environmentSubstitute(port));
String messageVariable = environmentSubstitute(messageVariableName);
String messageTypeVariable = environmentSubstitute(messageTypeVariableName);
String versionVariable = environmentSubstitute(versionVariableName);
MLLPSocketCacheEntry entry = MLLPSocketCache.getInstance().getServerSocketStreamSource(serverName, portNumber);
if (entry.getJobListener() != null) {
parentJob.addJobListener(entry.getJobListener());
}
MLLPTransport transport = entry.getTransport();
//
synchronized (transport) {
Transportable transportable = transport.doReceive();
String message = transportable.getMessage();
logDetailed("Received message: " + message);
parentJob.setVariable(messageVariable, message);
// Parse the message and extract the control ID.
//
Parser parser = new GenericParser();
ValidationContext validationContext = new NoValidation();
parser.setValidationContext(validationContext);
Message msg = parser.parse(message);
Structure structure = msg.get("MSH");
String messageType = null;
String version = msg.getVersion();
if (structure instanceof ca.uhn.hl7v2.model.v21.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v21.segment.MSH) structure).getMESSAGETYPE().encode();
} else if (structure instanceof ca.uhn.hl7v2.model.v22.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v22.segment.MSH) structure).getMessageType().encode();
} else if (structure instanceof ca.uhn.hl7v2.model.v23.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v23.segment.MSH) structure).getMessageType().encode();
} else if (structure instanceof ca.uhn.hl7v2.model.v231.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v231.segment.MSH) structure).getMessageType().getMessageStructure().getValue();
} else if (structure instanceof ca.uhn.hl7v2.model.v24.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v24.segment.MSH) structure).getMessageType().getMessageStructure().getValue();
} else if (structure instanceof ca.uhn.hl7v2.model.v25.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v25.segment.MSH) structure).getMessageType().getMessageStructure().getValue();
} else if (structure instanceof ca.uhn.hl7v2.model.v251.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v251.segment.MSH) structure).getMessageType().getMessageStructure().getValue();
} else if (structure instanceof ca.uhn.hl7v2.model.v26.segment.MSH) {
messageType = ((ca.uhn.hl7v2.model.v26.segment.MSH) structure).getMessageType().getMessageStructure().getValue();
} else {
logError("This job entry does not support the HL7 dialect used. Found MSH class: " + structure.getClass().getName());
}
if (!Utils.isEmpty(messageTypeVariable)) {
parentJob.setVariable(messageTypeVariable, messageType);
}
if (!Utils.isEmpty(versionVariable)) {
parentJob.setVariable(versionVariable, version);
}
}
// All went well..
//
result.setNrErrors(0);
result.setResult(true);
} catch (Exception e) {
log.logError(BaseMessages.getString(PKG, "HL7MLLPInput.Exception.UnexpectedError"), e);
result.setNrErrors(1);
result.setResult(false);
}
return result;
}
use of com.google.api.services.healthcare.v1.model.Message in project streamsx.health by IBMStreams.
the class HapiMessageHandler method processMessage.
@Override
public Message processMessage(Message theMessage, Map<String, Object> arg1) throws ReceivingApplicationException, HL7Exception {
server.messageArrived(theMessage);
Message ack;
try {
// Always use the default parser to generate an ack
// HAPI seems to get into trouble if the ADT_AXX superstructure
// is used.
// Internally, when it tries to generate an ack message
// the super structure setting in the model class factory causes the ADT_AXX message
// to get created instead of the ACK getting created. This is to override the model
// class factory so that the proper class can be generated.
theMessage.setParser(ackParser);
ack = theMessage.generateACK();
return ack;
} catch (IOException e) {
TRACE.log(TraceLevel.ERROR, "Unable to generate ack message", e);
}
return theMessage;
}
Aggregations