001package ca.cdr.api.pub.hl7v2.common.abstraction;
002
003/*-
004 * #%L
005 * Smile CDR - CDR
006 * %%
007 * Copyright (C) 2016 - 2024 Smile CDR, Inc.
008 * %%
009 * All rights reserved.
010 * #L%
011 */
012
013import ca.uhn.hl7v2.HL7Exception;
014import ca.uhn.hl7v2.model.AbstractMessage;
015
016/**
017 * Wraps a HL7 V2 message to an abstraction with relevant segments and groups
018 */
019public class WrapperFactory {
020        private WrapperFactory() {}
021
022        private static final EventMessageFactory ourEventMessageFactory = new EventMessageFactory();
023        private static final OrderMessageFactory ourOrderMessageFactory = new OrderMessageFactory();
024        private static final PatientMessageFactory ourPatientMessageFactory = new PatientMessageFactory();
025        private static final VisitMessageFactory ourVisitMessageFactory = new VisitMessageFactory();
026
027        public static IEventMessage asEventMessage(AbstractMessage theMessage) {
028                return ourEventMessageFactory.asEventMessage(theMessage);
029        }
030
031        public static IOrderMessage asOrderMessage(AbstractMessage theMessage) throws HL7Exception {
032                return ourOrderMessageFactory.asOrderMessage(theMessage);
033        }
034
035        public static IPatientMessage asPatientMessage(AbstractMessage theMessage) throws HL7Exception {
036                return ourPatientMessageFactory.asPatientMessage(theMessage);
037        }
038
039        public static IVisitMessage asVisitMessage(AbstractMessage theMessage) throws HL7Exception {
040                return ourVisitMessageFactory.asVisitMessage(theMessage);
041        }
042}