public static void handleProcessingForORU(List <WebserviceObject> wsObjects, List <WebservicePropertySet> webserviceProperties, HL7Message hl7Message, List <MessageGroupInstance> messageGroupInstances, List <MessageGroup> messageGroups, Application app, Message message) { string serviceMessage = BLANK; // make SEL exam object WSShieldsApps.Exam exam = new WSShieldsApps.Exam(); WSShieldsApps.Location location = new WSShieldsApps.Location(); WSShieldsApps.Patient patient = new WSShieldsApps.Patient(); WSShieldsApps.Organization organization = new WSShieldsApps.Organization(); WSShieldsApps.Doctor referring = new WSShieldsApps.Doctor(); // make SEL report object WSShieldsApps.Report report = new WSShieldsApps.Report(); WSShieldsApps.Doctor radiologist = new WSShieldsApps.Doctor(); // for each object - for each property set for that object - handle accordingly wsObjects.ForEach(delegate(WebserviceObject wsObject) { List <WebservicePropertySet> wsProperties = ConfigurationUtility.GetIncomingWebservicePropertySets(wsObject, webserviceProperties); if (app.name == RSERVER) { if (ShieldsExpressLinkDAO.LOCATION == wsObject.name) { location = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Location>( ShieldsExpressLinkUtility.ObjectType.Location, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.PATIENT == wsObject.name) { patient = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Patient>( ShieldsExpressLinkUtility.ObjectType.Patient, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.ORGANIZATION == wsObject.name) { organization = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Organization>( ShieldsExpressLinkUtility.ObjectType.Organization, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.EXAM == wsObject.name) { exam = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Exam>( ShieldsExpressLinkUtility.ObjectType.Exam, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.REFERRING == wsObject.name) { referring = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Doctor>( ShieldsExpressLinkUtility.ObjectType.Referring, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.REPORT == wsObject.name) { report = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Report>( ShieldsExpressLinkUtility.ObjectType.Report, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.RADIOLOGIST == wsObject.name) { radiologist = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Doctor>( ShieldsExpressLinkUtility.ObjectType.Radiologist, hl7Message, messageGroupInstances, messageGroups, wsProperties); // set as radiologist radiologist.Type = RADIOLOGIST_TYPE; radiologist.EnterpriseId = ENTERPRISE_IDENTITY; } } }); // set exam object exam.Location = location; exam.Doctor = referring; exam.Organization = organization; exam.Patient = patient; // make a new exam object WSShieldsApps.Exam exam2Object = new WSShieldsApps.Exam(); // pass the accession so we don't override exam2Object.AccessionNo = exam.AccessionNo; // get the updated exam id only exam.ExamId = ShieldsExpressLinkDAO.GetExamByAccessionNo(exam2Object).ExamId; // handle radiologist serviceMessage += ShieldsExpressLinkDAO.PutDoctor(radiologist); // handle exam serviceMessage += ShieldsExpressLinkDAO.PutExam(exam); // report needs exam id associated to it report.ExamId = exam.ExamId; // report needs radiologist id associated to it report.RadiologistId = radiologist.DoctorId; // handle orignal report serviceMessage += ShieldsExpressLinkDAO.PostReport(report); // handle addendum text only if (ShieldsExpressLinkUtility.isReportAddendum(hl7Message)) { // for each report text starting at "2" (1 == orignal report) get all addendums after for (int reportIteration = 2, n = ShieldsExpressLinkUtility.getNumberOfReportEntries(hl7Message); reportIteration <= n; reportIteration++) { // set the addendum flag report.IsAddendum = true; // re-define report text and observation date report.ReportText = ShieldsExpressLinkUtility.getAddendumReportText(hl7Message, report, reportIteration); // handle inserting of addendum report serviceMessage += ShieldsExpressLinkDAO.PostReport(report, reportIteration); } } // message for the service handleAckForService(hl7Message, message, serviceMessage); // message log handler handleMessageLog(message); }
public static void handleProcessingForORM(List <WebserviceObject> wsObjects, List <WebservicePropertySet> webserviceProperties, HL7Message hl7Message, List <MessageGroupInstance> messageGroupInstances, List <MessageGroup> messageGroups, Application app, Message message) { string serviceMessage = BLANK; // make SEL exam object WSShieldsApps.Exam exam = new WSShieldsApps.Exam(); WSShieldsApps.Location location = new WSShieldsApps.Location(); WSShieldsApps.Patient patient = new WSShieldsApps.Patient(); WSShieldsApps.Organization organization = new WSShieldsApps.Organization(); WSShieldsApps.Doctor referring = new WSShieldsApps.Doctor(); // for each object - for each property set for that object - handle accordingly wsObjects.ForEach(delegate(WebserviceObject wsObject) { List <WebservicePropertySet> wsProperties = ConfigurationUtility.GetIncomingWebservicePropertySets(wsObject, webserviceProperties); if (app.name == RSERVER) { if (ShieldsExpressLinkDAO.LOCATION == wsObject.name) { location = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Location>( ShieldsExpressLinkUtility.ObjectType.Location, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.PATIENT == wsObject.name) { patient = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Patient>( ShieldsExpressLinkUtility.ObjectType.Patient, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.ORGANIZATION == wsObject.name) { organization = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Organization>( ShieldsExpressLinkUtility.ObjectType.Organization, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.EXAM == wsObject.name) { exam = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Exam>( ShieldsExpressLinkUtility.ObjectType.Exam, hl7Message, messageGroupInstances, messageGroups, wsProperties); } else if (ShieldsExpressLinkDAO.REFERRING == wsObject.name) { referring = ShieldsExpressLinkUtility.getShieldsAppObject <WSShieldsApps.Doctor>( ShieldsExpressLinkUtility.ObjectType.Referring, hl7Message, messageGroupInstances, messageGroups, wsProperties); } } }); // exam object exam.Location = location; exam.Doctor = referring; exam.Organization = organization; exam.Patient = patient; // insert exam serviceMessage += ShieldsExpressLinkDAO.PutExam(exam); // message for the service handleAckForService(hl7Message, message, serviceMessage); // message log handler handleMessageLog(message); }