Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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));
        }