/// <summary> /// Query message handler for the received Hl7 message - send a query response. /// </summary> /// <param name="hl7RequestMessage">Received HL7 message.</param> /// <returns>Hl7Message response.</returns> public override Hl7Message MessageHandler(Hl7Message hl7RequestMessage) { AdrMessage hl7ResponseMessage = new AdrMessage("A19"); if (hl7RequestMessage is QryMessage) { QryMessage qryMessage = (QryMessage)hl7RequestMessage; // Try to get the ADR message from those stored hl7ResponseMessage = GetMatchingResponse(qryMessage.QRD[8]); if (hl7ResponseMessage == null) { // return empty message hl7ResponseMessage = new AdrMessage("A19"); } // copy the QRD segment for (int i = 0; i < qryMessage.QRD.Count; i++) { hl7ResponseMessage.QRD[i] = qryMessage.QRD[i]; } } // fill in the MSA segment hl7ResponseMessage.MSA[1] = "AA"; hl7ResponseMessage.MSA[2] = hl7RequestMessage.MessageControlId; return(hl7ResponseMessage); }
public bool SendPatientQuery(QryMessage qryMessage) { // Generate trigger Hl7Trigger trigger = new Hl7Trigger(TransactionNameEnum.RAD_UNKNOWN); trigger.Trigger = qryMessage; // RAD-12 - trigger the AdtPatientRegistration return(TriggerActorInstances(ActorTypeEnum.AdtPatientRegistration, trigger, true)); }