Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public void AddPatientQueryResponse(AdrMessage adrMessage)
        {
            // Generate response trigger
            Hl7Trigger trigger = new Hl7Trigger(TransactionNameEnum.RAD_UNKNOWN);

            trigger.Trigger = adrMessage;

            // Add a response trigger to the DssOrderFiller server
            AddResponseTriggerToActor(ActorTypeEnum.DssOrderFiller, trigger);
        }
Ejemplo n.º 3
0
        private AdrMessage GetMatchingResponse(System.String patientId)
        {
            AdrMessage hl7ResponseMessage = null;

            foreach (BaseTrigger baseTrigger in _responseList)
            {
                if (baseTrigger is Hl7Trigger)
                {
                    Hl7Trigger hl7Trigger          = (Hl7Trigger)baseTrigger;
                    AdrMessage lHl7ResponseMessage = (AdrMessage)hl7Trigger.Trigger;

                    if (lHl7ResponseMessage.PID[3] == patientId)
                    {
                        hl7ResponseMessage = lHl7ResponseMessage;
                        break;
                    }
                }
            }

            return(hl7ResponseMessage);
        }