public IList <Medication> parse(string message)
        {
            PipeParser parser  = new PipeParser();
            RTB_K13    rtb_k13 = (RTB_K13)parser.Parse(message);

            string responseStatus = rtb_k13.QAK.QueryResponseStatus.Value;

            if (String.Equals("NF", responseStatus, StringComparison.CurrentCultureIgnoreCase))
            {
                // TODO - see RxProfileDecoder.decode
                return(null);
            }

            if (!String.Equals("OK", responseStatus, StringComparison.CurrentCultureIgnoreCase))
            {
                throw new MdoException("Received processing error: " + message);
            }

            int recordCount         = Int32.Parse(rtb_k13.QAK.ThisPayload.Value);
            IList <Medication> meds = new List <Medication>();

            for (int i = 0; i < recordCount; i++)
            {
                RDT rdt = rtb_k13.ROW_DEFINITION.GetRDT(i);
                meds.Add(buildMedication(rdt));
            }

            return(meds);
        }
Example #2
0
        /// <summary>
        /// Returns  first repetition of RDT (Table Row Data) - creates it if necessary.
        /// </summary>
        ///
        /// <exception cref="Exception">    Thrown when an exception error condition occurs. </exception>
        ///
        /// <returns>   The rdt. </returns>

        public RDT GetRDT()
        {
            RDT ret = null;

            try {
                ret = (RDT)this.GetStructure("RDT");
            } catch (HL7Exception e) {
                HapiLogFactory.GetHapiLog(GetType()).Error("Unexpected error accessing data - this is probably a bug in the source code generator.", e);
                throw new System.Exception("An unexpected error ocurred", e);
            }
            return(ret);
        }
Example #3
0
        /// <summary> Returns  first repetition of RDT (Table Row Data) - creates it if necessary</summary>
        public virtual RDT getRDT()
        {
            RDT ret = null;

            try
            {
                ret = (RDT)this.get_Renamed("RDT");
            }
            catch (NuGenHL7Exception)
            {
                throw new Exception();
            }
            return(ret);
        }
        internal Medication buildMedication(RDT rdt)
        {
            Medication med = new Medication();

            med.OrderId    = HL7Helper.getString(rdt, 13, 0);
            med.Refills    = HL7Helper.getString(rdt, 11, 0);
            med.Quantity   = HL7Helper.getString(rdt, 9, 0);
            med.DaysSupply = HL7Helper.getString(rdt, 10, 0);

            med.IssueDate      = HL7Helper.getString(rdt, 4, 0);
            med.LastFillDate   = HL7Helper.getString(rdt, 5, 0);
            med.StartDate      = HL7Helper.getString(rdt, 6, 0);
            med.ExpirationDate = HL7Helper.getString(rdt, 7, 0);

            med.RxNumber = HL7Helper.getString(rdt, 1, 0);
            med.Id       = HL7Helper.getString(rdt, 2, 0);

            med.Provider = new Author();
            NHapi.Base.Model.IType provider = ((Varies)rdt.GetField(12, 0)).Data;
            if (provider is GenericComposite)
            {
                GenericComposite         gc         = (GenericComposite)provider;
                NHapi.Base.Model.IType[] components = gc.Components;
                med.Provider.Id   = ((Varies)components[0]).Data.ToString();
                med.Provider.Name = ((Varies)components[1]).Data.ToString() + ", " + ((Varies)components[2]).Data.ToString();
            }
            else
            {
                med.Provider.Id = provider.ToString();
            }

            med.Name   = HL7Helper.getString(rdt, 3, 0);
            med.Sig    = HL7Helper.getString(rdt, 20, 0);
            med.Detail = HL7Helper.getString(rdt, 19, 0);
            med.Status = HL7Helper.getString(rdt, 8, 0);

            return(med);
        }
Example #5
0
 ///<summary>
 ///Removes the given RDT
 ///</summary>
 public void RemoveRDT(RDT toRemove)
 {
     this.RemoveStructure("RDT", toRemove);
 }
Example #6
0
        public async Task <ActionResult <DiveChartView> > Get(int mesurementid)
        {
            DiveChartView diveChartView = new DiveChartView
            {
                ListNDLPGD   = new List <NDLGD>(),
                NDLPG_Result = new NDLGD(),
                ListSIC      = new List <SIC>(),
                SIC_Result   = new SIC(),
                ListRDT      = new List <RDT>(),
                RDT_Result   = new RDT(),
                //IrdtList = new List<I_RepetitiveDiveTimetable>(),
                //MrdtList = new List<M_RepetitiveDiveTimetable>()
            };

            #region No Decompression Limits and Group Designation
            using var ndclconn = new SqlConnection("Data Source=BJS-SURFACE;Initial Catalog=DiveLogBook;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
            {
                //NDCL
                using var cmdndcl = new SqlCommand("dbo.usp_PADINDLPGD", ndclconn)
                      {
                          CommandType = CommandType.StoredProcedure
                      };

                ndclconn.Open();
                SqlDataReader ndclreader = await cmdndcl.ExecuteReaderAsync();

                if (ndclreader.HasRows)
                {
                    while (ndclreader.Read())
                    {
                        diveChartView.NDLPG_Result = new NDLGD
                        {
                            PressureGroup = (string)ndclreader.GetValue(0),
                            C35           = GetInt(ndclreader, 1),
                            C40           = GetInt(ndclreader, 2),
                            C50           = GetInt(ndclreader, 3),
                            C60           = GetInt(ndclreader, 4),
                            C70           = GetInt(ndclreader, 5),
                            C80           = GetInt(ndclreader, 6),
                            C90           = GetInt(ndclreader, 7),
                            C100          = GetInt(ndclreader, 8),
                            C110          = GetInt(ndclreader, 9),
                            C120          = GetInt(ndclreader, 10),
                            C130          = GetInt(ndclreader, 11),
                            C140          = GetInt(ndclreader, 12),
                        };
                        diveChartView.ListNDLPGD.Add(diveChartView.NDLPG_Result);
                    }
                }
            }
            #endregion

            #region Surface Interval Credit Table (all times in minutes)
            using var sicconn = new SqlConnection("Data Source=BJS-SURFACE;Initial Catalog=DiveLogBook;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
            {
                //SIC
                using var cmdsic = new SqlCommand("dbo.usp_PADISIC", sicconn)
                      {
                          CommandType = CommandType.StoredProcedure
                      };

                //cmdsic.Parameters.AddWithValue("@Mesurement", mesurementid);

                sicconn.Open();
                SqlDataReader sicreader = await cmdsic.ExecuteReaderAsync();

                if (sicreader.HasRows)
                {
                    while (sicreader.Read())
                    {
                        diveChartView.SIC_Result = new SIC()
                        {
                            StartingPressureGroup = (string)sicreader.GetValue(0),
                            A = GetInt(sicreader, 1),
                            B = GetInt(sicreader, 2),
                            C = GetInt(sicreader, 3),
                            D = GetInt(sicreader, 4),
                            E = GetInt(sicreader, 5),
                            F = GetInt(sicreader, 6),
                            G = GetInt(sicreader, 7),
                            H = GetInt(sicreader, 8),
                            I = GetInt(sicreader, 9),
                            J = GetInt(sicreader, 10),
                            K = GetInt(sicreader, 11),
                            L = GetInt(sicreader, 12),
                            M = GetInt(sicreader, 13),
                            N = GetInt(sicreader, 14),
                            O = GetInt(sicreader, 15),
                            P = GetInt(sicreader, 16),
                            Q = GetInt(sicreader, 17),
                            R = GetInt(sicreader, 18),
                            S = GetInt(sicreader, 19),
                            T = GetInt(sicreader, 20),
                            U = GetInt(sicreader, 21),
                            V = GetInt(sicreader, 22),
                            W = GetInt(sicreader, 23),
                            X = GetInt(sicreader, 24),
                            Y = GetInt(sicreader, 25),
                            Z = GetInt(sicreader, 26),
                        };
                        diveChartView.ListSIC.Add(diveChartView.SIC_Result);
                    }
                }
            };
            #endregion

            #region RepetitiveDiveTimetable

            if (mesurementid == 35)
            {
                List <I_RepetitiveDiveTimetable> iresult = new List <I_RepetitiveDiveTimetable>();

                iresult = await _divectx.I_RepetitiveDiveTimetable.ToListAsync();

                foreach (var item in iresult)
                {
                    RDT rdt = new RDT
                    {
                        ID       = item.Id,
                        Column_0 = item.Column_0,
                        Depth    = item.Depth,
                        Z        = item.Z,
                        Y        = item.Y,
                        X        = item.X,
                        W        = item.W,
                        V        = item.V,
                        U        = item.U,
                        T        = item.T,
                        S        = item.S,
                        R        = item.R,
                        Q        = item.Q,
                        P        = item.P,
                        O        = item.O,
                        N        = item.N,
                        M        = item.M,
                        L        = item.L,
                        K        = item.K,
                        J        = item.J,
                        I        = item.I,
                        H        = item.H,
                        G        = item.G,
                        F        = item.F,
                        E        = item.E,
                        D        = item.D,
                        C        = item.C,
                        B        = item.B,
                        A        = item.A,
                    };
                    diveChartView.ListRDT.Add(rdt);
                }
            }
            else
            {
                List <M_RepetitiveDiveTimetable> mresult = new List <M_RepetitiveDiveTimetable>();

                mresult = await _divectx.M_RepetitiveDiveTimetable.ToListAsync();

                foreach (var item in mresult)
                {
                    RDT rdt = new RDT
                    {
                        ID       = item.Id,
                        Column_0 = item.Column_0,
                        Depth    = item.Depth,
                        Z        = item.Z,
                        Y        = item.Y,
                        X        = item.X,
                        W        = item.W,
                        V        = item.V,
                        U        = item.U,
                        T        = item.T,
                        S        = item.S,
                        R        = item.R,
                        Q        = item.Q,
                        P        = item.P,
                        O        = item.O,
                        N        = item.N,
                        M        = item.M,
                        L        = item.L,
                        K        = item.K,
                        J        = item.J,
                        I        = item.I,
                        H        = item.H,
                        G        = item.G,
                        F        = item.F,
                        E        = item.E,
                        D        = item.D,
                        C        = item.C,
                        B        = item.B,
                        A        = item.A,
                    };
                    diveChartView.ListRDT.Add(rdt);
                }
            }
            #endregion

            return(Ok(diveChartView));
        }