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 :( } }
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 :( } }
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 :( } }
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 :( } }