コード例 #1
0
        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 :(
            }
        }
コード例 #2
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 :(
            }
        }
コード例 #3
0
        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 :(
            }
        }
コード例 #4
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 :(
            }
        }
コード例 #5
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 :(
            }
        }