protected override void OnStart(string[] args)
        {
            string eventOutcomeIndicator = "0";

            try
            {
                _serviceHost = new ServiceHost(typeof(DocumentRegistryService));

                _serviceHost.Open();
            }
            catch
            {
                //Failure
                eventOutcomeIndicator = "8";
            }

            try
            {
                //Log ATNA - Registry Application Start Event
                ATNALogic atnaLogic = new ATNALogic();
                atnaLogic.ProcessEvent("REGISTRY-APP-START-ITI-20", ATNAEvent.XDSREGISTRY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REGISTRY);
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to mess up with XDSRegistry service sorry :(
            }
        }
        protected override void OnStop()
        {
            string eventOutcomeIndicator = "0";

            try
            {
                if (_serviceHost != null && _serviceHost.State != CommunicationState.Closed)
                {
                    _serviceHost.Close();
                }
            }
            catch
            {
                //Failure
                eventOutcomeIndicator = "8";
            }

            try
            {
                //Log ATNA - Registry Application Stop Event
                ATNALogic atnaLogic = new ATNALogic();
                atnaLogic.ProcessEvent("REGISTRY-APP-STOP-ITI-20", ATNAEvent.XDSREGISTRY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REGISTRY);
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to mess up with XDSRegistry service sorry :(
            }
        }
Esempio n. 3
0
        public void ProcessPatientRecordRevisedATNAEvent(string xdsPatientUID, string sourceUserID, string destinationUserID, string eventOutcomeIndicator)
        {
            try
            {
                //Log ATNA - Repository Event
                ATNALogic atnaLogic = new ATNALogic();
                AuditMessageConfiguration auditMsgConfig = null;

                auditMsgConfig = atnaLogic.GetAuditMessageConfigurationDetails("REGISTRY-PATIENT-RECORD-REVISED-ITI-44");

                if (auditMsgConfig != null)
                {
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$XDSPatientID$", xdsPatientUID);

                    //$ActiveParticipant.UserID.Source$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Source$", sourceUserID);

                    //$ActiveParticipant.UserID.Destination$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Destination$", destinationUserID);

                    atnaLogic.ProcessEvent(auditMsgConfig, ATNAEvent.XDSREGISTRY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REGISTRY);
                }
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to stop XDSRepository service sorry :(
            }
        }
        public void ProcessRetrieveDocumentSetATNAEvent(string documentEntryUUID, string sourceUserID, string destinationUserID, string eventOutcomeIndicator)
        {
            try
            {
                //Log ATNA - Repository Event
                ATNALogic atnaLogic = new ATNALogic();
                AuditMessageConfiguration auditMsgConfig = null;

                auditMsgConfig = atnaLogic.GetAuditMessageConfigurationDetails("REPOSITORY-RDS-EXPORT-ITI-43");

                if (auditMsgConfig != null)
                {
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$DocumentEntry.UUID$", documentEntryUUID);
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$Document.UUID$", ATNAEvent.XDSREPOSITORY_DOCUMENT_CLASSIFICATIONNODE_UUID);

                    //$ActiveParticipant.UserID.Source$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Source$", sourceUserID);

                    //$ActiveParticipant.UserID.Destination$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Destination$", destinationUserID);

                    atnaLogic.ProcessEvent(auditMsgConfig, ATNAEvent.XDSREPOSITORY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REPOSITORY);
                }
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to stop XDSRepository service sorry :(
            }
        }
        public void ProcessProvideAndRegisterATNAEvent(string submissionSetUniqueID, string sourceUserID, string destinationUserID, string eventOutcomeIndicator)
        {
            try
            {
                //Log ATNA - Repository Event
                ATNALogic atnaLogic = new ATNALogic();
                AuditMessageConfiguration auditMsgConfig = null;

                auditMsgConfig = atnaLogic.GetAuditMessageConfigurationDetails("REPOSITORY-P-AND-R-IMPORT-ITI-41");

                if (auditMsgConfig != null)
                {
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$SubmissionSet.UniqueID$", submissionSetUniqueID);
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$SubmissionSet.ClassificationNode.UUID$", ATNAEvent.XDSREPOSITORY_SUBMISSIONSET_CLASSIFICATIONNODE_UUID);

                    //$ActiveParticipant.UserID.Source$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Source$", sourceUserID);

                    //$ActiveParticipant.UserID.Destination$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Destination$", destinationUserID);

                    atnaLogic.ProcessEvent(auditMsgConfig, ATNAEvent.XDSREPOSITORY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REPOSITORY);
                }
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to stop XDSRepository service sorry :(
            }
        }
Esempio n. 6
0
        public void ProcessRegistryStoredQueryATNAEvent(string sourceUserID, string destinationUserID, string xdsPatientID, string adhocQueryElementXml, string eventOutcomeIndicator)
        {
            //adHocQueryElementXml = atnaParameterValues["$AdhocQuery$"];

            try
            {
                //Log ATNA - Repository Event
                ATNALogic atnaLogic = new ATNALogic();
                AuditMessageConfiguration auditMsgConfig = null;

                auditMsgConfig = atnaLogic.GetAuditMessageConfigurationDetails("REGISTRY-QUERY-ITI-18");

                if (auditMsgConfig != null)
                {
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$XDSPatient$", xdsPatientID);
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$SubmissionSet.ClassificationNode.UUID$", ATNAEvent.XDSREPOSITORY_SUBMISSIONSET_CLASSIFICATIONNODE_UUID);

                    //$ActiveParticipant.UserID.Source$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Source$", sourceUserID);

                    //$ActiveParticipant.UserID.Destination$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Destination$", destinationUserID);

                    //Assigns attribute value for $AdhocQuery$ parameter
                    //<ParticipantObjectIdentification ParticipantObjectID="$AdhocQuery$" ParticipantObjectTypeCode="2" ParticipantObjectTypeCodeRole="24">
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(auditMsgConfig.MessageValue);
                    XmlNode node = xmlDoc.SelectSingleNode(@"//*[local-name()='ParticipantObjectIdentification'][@ParticipantObjectID='$AdhocQuery$']");

                    if (node != null)
                    {
                        //Encoding encoding = Encoding.GetEncoding(adhocQueryElementXml);

                        //node.Attributes["ParticipantObjectID"].Value = adhocQueryElementXml;
                        node.Attributes["ParticipantObjectID"].Value = Convert.ToBase64String(Encoding.UTF8.GetBytes(adhocQueryElementXml));
                        auditMsgConfig.MessageValue = xmlDoc.OuterXml;
                    }

                    atnaLogic.ProcessEvent(auditMsgConfig, ATNAEvent.XDSREGISTRY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REGISTRY);
                }
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to stop XDSRepository service sorry :(
            }
        }
Esempio n. 7
0
        public void ProcessPatientDuplicatesResolvedATNAEvent(PatientDuplicateEntry patientDuplicateEntry, string sourceUserID, string destinationUserID, string eventOutcomeIndicator)
        {
            try
            {
                //Log ATNA - Repository Event
                ATNALogic atnaLogic = new ATNALogic();
                AuditMessageConfiguration auditMsgConfig  = null;
                PatientIdentityFeedRecord patientNotFound = null;

                if (patientDuplicateEntry != null)
                {
                    patientNotFound = patientDuplicateEntry.OldPatientList.Find(
                        delegate(PatientIdentityFeedRecord patFeedRecord)
                    {
                        if (patFeedRecord.ResultCode == PatientIdentityFeedResultCode.PATIENT_NOT_FOUND)
                        {
                            return(true);
                        }

                        return(false);
                    }
                        );

                    if (patientNotFound != null)
                    {
                        eventOutcomeIndicator = "8";
                    }
                }

                //Patient Add/Update ATNA Event
                auditMsgConfig = atnaLogic.GetAuditMessageConfigurationDetails("REGISTRY-PATIENT-RECORD-DUPLICATES-RESOLVED-UPDATE-ITI-44");

                if (auditMsgConfig != null)
                {
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$XDSPatientID$", patientDuplicateEntry.NewPatient.PatientUID);

                    //$ActiveParticipant.UserID.Source$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Source$", sourceUserID);

                    //$ActiveParticipant.UserID.Destination$
                    auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Destination$", destinationUserID);

                    //New Patient Add Event
                    atnaLogic.ProcessEvent(auditMsgConfig, ATNAEvent.XDSREGISTRY_TYPE, eventOutcomeIndicator, ATNAEvent.UDP_TAG_APPNAME_REGISTRY);
                }

                //Patient Delete ATNA Event
                auditMsgConfig = atnaLogic.GetAuditMessageConfigurationDetails("REGISTRY-PATIENT-RECORD-DUPLICATES-RESOLVED-DELETE-ITI-44");

                if ((auditMsgConfig != null) && (patientNotFound == null))
                {
                    //ATNA Log for all the deleted patient uids
                    for (int oldPatientCount = 0; oldPatientCount < patientDuplicateEntry.OldPatientList.Count; oldPatientCount++)
                    {
                        auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$XDSPatientID$", patientDuplicateEntry.OldPatientList[oldPatientCount].PatientUID);

                        //$ActiveParticipant.UserID.Destination$
                        auditMsgConfig = ATNALogic.SetParameterValue(auditMsgConfig, "$ActiveParticipant.UserID.Destination$", ATNAEvent.XDSREGISTRY_SERVICE_ADDRESS);

                        //Old Patient Delete Event
                        atnaLogic.ProcessEvent(auditMsgConfig, ATNAEvent.XDSREGISTRY_TYPE, "0", ATNAEvent.UDP_TAG_APPNAME_REGISTRY);
                    }
                }
            }
            catch
            {
                //Oops...ATNA event failed...probably UDP failure....can't afford to stop XDSRepository service sorry :(
            }
        }