Ejemplo n.º 1
0
 internal void setVitalSignQualifierStrings(VitalSignSet set, string s, string qualifier)
 {
     string[] keys = new string[]
     {
         "TEMP", "PULSE", "BP", "RESP", "WT", "HT", "PAIN", "O2", "CG", "CVP", "BMI"
     };
     for (int i = 0; i < keys.Length; i++)
     {
         string value = getVitalSignQualifierItem(s, keys[i]);
         if (!String.IsNullOrEmpty(value))
         {
             VitalSign theSign = getSignFromSet(set, keys[i]);
             if (theSign == null)
             {
                 continue;
             }
             if (String.Equals(qualifier, "Units", StringComparison.CurrentCultureIgnoreCase))
             {
                 theSign.Units = value;
                 if (keys[i] == "BP")
                 {
                     theSign = set.getVitalSign(VitalSign.SYSTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Units = value;
                     }
                     theSign = set.getVitalSign(VitalSign.DIASTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Units = value;
                     }
                 }
             }
             else if (String.Equals(qualifier, "Qualifiers", StringComparison.CurrentCultureIgnoreCase))
             {
                 theSign.Qualifiers = value;
                 if (keys[i] == "BP")
                 {
                     theSign = set.getVitalSign(VitalSign.SYSTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Qualifiers = value;
                     }
                     theSign = set.getVitalSign(VitalSign.DIASTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Qualifiers = value;
                     }
                 }
             }
             else
             {
                 throw new Exception("Invalid qualifier: " + qualifier);
             }
         }
     }
 }
Ejemplo n.º 2
0
 public TaggedVitalSignSetArray(string tag, VitalSignSet mdo)
 {
     this.tag = tag;
     if (mdo == null)
     {
         this.count = 0;
         return;
     }
     this.sets    = new VitalSignSetTO[1];
     this.sets[0] = new VitalSignSetTO(mdo);
     this.count   = 1;
 }
Ejemplo n.º 3
0
 internal VitalSign getSignFromSet(VitalSignSet set, string key)
 {
     if (key == "TEMP")
     {
         return(set.getVitalSign(VitalSign.TEMPERATURE));
     }
     if (key == "PULSE")
     {
         return(set.getVitalSign(VitalSign.PULSE));
     }
     if (key == "RESP")
     {
         return(set.getVitalSign(VitalSign.RESPIRATION));
     }
     if (key == "BP")
     {
         return(set.getVitalSign(VitalSign.BLOOD_PRESSURE));
     }
     if (key == "WT")
     {
         return(set.getVitalSign(VitalSign.WEIGHT));
     }
     if (key == "HT")
     {
         return(set.getVitalSign(VitalSign.HEIGHT));
     }
     if (key == "PAIN")
     {
         return(set.getVitalSign(VitalSign.PAIN));
     }
     if (key == "O2")
     {
         return(set.getVitalSign(VitalSign.PULSE_OXYMETRY));
     }
     if (key == "CG")
     {
         return(set.getVitalSign(VitalSign.CIRCUMFERENCE_GIRTH));
     }
     if (key == "CVP")
     {
         return(set.getVitalSign(VitalSign.CENTRAL_VENOUS_PRESSURE));
     }
     if (key == "BMI")
     {
         return(set.getVitalSign(VitalSign.BODY_MASS_INDEX));
     }
     return(null);
 }
Ejemplo n.º 4
0
 public VitalSignSetTO(VitalSignSet mdo)
 {
     this.timestamp = mdo.Timestamp;
     if (mdo.Facility != null)
     {
         this.facility = new TaggedText(mdo.Facility.Id, mdo.Facility.Name);
     }
     if (mdo.Count != 0)
     {
         VitalSign[] mdoSigns = mdo.VitalSigns;
         this.vitalSigns = new VitalSignTO[mdoSigns.Length];
         for (int i = 0; i < mdoSigns.Length; i++)
         {
             this.vitalSigns[i] = new VitalSignTO(mdoSigns[i]);
         }
     }
     this.units      = mdo.Units;
     this.qualifiers = mdo.Qualifiers;
 }
Ejemplo n.º 5
0
 public TaggedVitalSignArrays(IndexedHashtable t)
 {
     if (t.Count == 0)
     {
         return;
     }
     arrays = new TaggedVitalSignArray[t.Count];
     for (int i = 0; i < t.Count; i++)
     {
         if (t.GetValue(i) == null)
         {
             arrays[i] = new TaggedVitalSignArray((string)t.GetKey(i));
         }
         else if (MdwsUtils.isException(t.GetValue(i)))
         {
             arrays[i] = new TaggedVitalSignArray((string)t.GetKey(i), (Exception)t.GetValue(i));
         }
         else if (t.GetValue(i).GetType().IsArray)
         {
             arrays[i] = new TaggedVitalSignArray((string)t.GetKey(i), (VitalSign[])t.GetValue(i));
         }
         else if (t.GetValue(i).GetType() == typeof(System.Collections.Hashtable))
         {
             IList <VitalSignSet> temp = ((System.Collections.Hashtable)t.GetValue(i))["vitals"] as IList <VitalSignSet>;
             if (temp == null || temp.Count == 0)
             {
                 arrays[i] = new TaggedVitalSignArray((string)t.GetKey(i));
             }
             else
             {
                 VitalSignSet[] ary = new VitalSignSet[temp.Count];
                 temp.CopyTo(ary, 0);
                 arrays[i] = new TaggedVitalSignArray((string)t.GetKey(i), ary);
             }
         }
         else
         {
             arrays[i] = new TaggedVitalSignArray((string)t.GetKey(i), (VitalSign)t.GetValue(i));
         }
     }
     count = t.Count;
 }
Ejemplo n.º 6
0
        public TaggedVitalSignSetArrays getVitalSigns()
        {
            TaggedVitalSignSetArrays result = new TaggedVitalSignSetArrays();

            if (!mySession.ConnectionSet.IsAuthorized)
            {
                result.fault = new FaultTO("Connections not ready for operation", "Need to login?");
            }
            if (result.fault != null)
            {
                return(result);
            }

            try
            {
                IndexedHashtable t = VitalSignSet.getVitalSigns(mySession.ConnectionSet);
                result = new TaggedVitalSignSetArrays(t);
            }
            catch (Exception e)
            {
                result.fault = new FaultTO(e);
            }
            return(result);
        }
Ejemplo n.º 7
0
        internal VitalSignSet[] toVitalSignsFromRdv(string response)
        {
            if (response == "")
            {
                return(null);
            }
            string[] lines = StringUtils.split(response, StringUtils.CRLF);
            lines = StringUtils.trimArray(lines);
            ArrayList    lst = new ArrayList();
            VitalSignSet rec = null;
            VitalSign    s   = null;

            for (int i = 0; i < lines.Length; i++)
            {
                string[] flds   = StringUtils.split(lines[i], StringUtils.CARET);
                int      fldnum = Convert.ToInt16(flds[0]);
                switch (fldnum)
                {
                case 1:
                    if (rec != null)
                    {
                        lst.Add(rec);
                    }
                    rec = new VitalSignSet();
                    string[] subflds = StringUtils.split(flds[1], StringUtils.SEMICOLON);
                    if (subflds.Length == 1)
                    {
                        rec.Facility = new SiteId("200", subflds[0]);
                    }
                    else
                    {
                        rec.Facility = new SiteId(subflds[1], subflds[0]);
                    }
                    break;

                case 2:
                    if (flds.Length == 2)
                    {
                        rec.Timestamp = VistaTimestamp.toUtcFromRdv(flds[1]);
                    }
                    break;

                case 3:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.TEMPERATURE);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.TEMPERATURE, s);
                    break;

                case 4:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.PULSE);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.PULSE, s);
                    break;

                case 5:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.RESPIRATION);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.RESPIRATION, s);
                    break;

                case 6:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.BLOOD_PRESSURE);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.BLOOD_PRESSURE, s);
                    break;

                case 7:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.HEIGHT);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.HEIGHT, s);
                    break;

                case 8:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.WEIGHT);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.WEIGHT, s);
                    break;

                case 9:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.PAIN);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.PAIN, s);
                    break;

                case 10:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.PULSE_OXYMETRY);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.PULSE_OXYMETRY, s);
                    break;

                case 11:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.CENTRAL_VENOUS_PRESSURE);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.CENTRAL_VENOUS_PRESSURE, s);
                    break;

                case 12:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.CIRCUMFERENCE_GIRTH);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.CIRCUMFERENCE_GIRTH, s);
                    break;

                case 15:
                    if (flds.Length == 2)
                    {
                        setVitalSignQualifierStrings(rec, flds[1], "Qualifiers");
                        rec.Qualifiers = flds[1];
                    }
                    break;

                case 16:
                    s      = new VitalSign();
                    s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.BODY_MASS_INDEX);
                    if (flds.Length == 2)
                    {
                        s.Value1 = flds[1];
                    }
                    rec.addVitalSign(VitalSign.BODY_MASS_INDEX, s);
                    break;

                case 17:
                    if (flds.Length == 2)
                    {
                        setVitalSignQualifierStrings(rec, flds[1], "Units");
                        rec.Units = flds[1];
                    }
                    break;

                default:
                    break;
                }
            }
            lst.Add(rec);
            return((VitalSignSet[])lst.ToArray(typeof(VitalSignSet)));
        }
Ejemplo n.º 8
0
 internal VitalSignSet[] toVitalSignsFromRdv(string response)
 {
     if (response == "")
     {
         return null;
     }
     string[] lines = StringUtils.split(response, StringUtils.CRLF);
     lines = StringUtils.trimArray(lines);
     ArrayList lst = new ArrayList();
     VitalSignSet rec = null;
     VitalSign s = null;
     for (int i = 0; i < lines.Length; i++)
     {
         string[] flds = StringUtils.split(lines[i], StringUtils.CARET);
         int fldnum = Convert.ToInt16(flds[0]);
         switch (fldnum)
         {
             case 1:
                 if (rec != null)
                 {
                     lst.Add(rec);
                 }
                 rec = new VitalSignSet();
                 string[] subflds = StringUtils.split(flds[1], StringUtils.SEMICOLON);
                 if (subflds.Length == 1)
                 {
                     rec.Facility = new SiteId("200", subflds[0]);
                 }
                 else
                 {
                     rec.Facility = new SiteId(subflds[1], subflds[0]);
                 }
                 break;
             case 2:
                 if (flds.Length == 2)
                 {
                     rec.Timestamp = VistaTimestamp.toUtcFromRdv(flds[1]);
                 }
                 break;
             case 3:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.TEMPERATURE);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.TEMPERATURE, s);
                 break;
             case 4:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.PULSE);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.PULSE, s);
                 break;
             case 5:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.RESPIRATION);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.RESPIRATION, s);
                 break;
             case 6:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.BLOOD_PRESSURE);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.BLOOD_PRESSURE, s);
                 break;
             case 7:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.HEIGHT);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.HEIGHT, s);
                 break;
             case 8:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.WEIGHT);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.WEIGHT, s);
                 break;
             case 9:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.PAIN);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.PAIN, s);
                 break;
             case 10:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.PULSE_OXYMETRY);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.PULSE_OXYMETRY, s);
                 break;
             case 11:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.CENTRAL_VENOUS_PRESSURE);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.CENTRAL_VENOUS_PRESSURE, s);
                 break;
             case 12:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.CIRCUMFERENCE_GIRTH);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.CIRCUMFERENCE_GIRTH, s);
                 break;
             case 15:
                 if (flds.Length == 2)
                 {
                     setVitalSignQualifierStrings(rec, flds[1], "Qualifiers");
                     rec.Qualifiers = flds[1];
                 }
                 break;
             case 16:
                 s = new VitalSign();
                 s.Type = new ObservationType("", VitalSign.VITAL_SIGN, VitalSign.BODY_MASS_INDEX);
                 if (flds.Length == 2)
                 {
                     s.Value1 = flds[1];
                 }
                 rec.addVitalSign(VitalSign.BODY_MASS_INDEX, s);
                 break;
             case 17:
                 if (flds.Length == 2)
                 {
                     setVitalSignQualifierStrings(rec, flds[1], "Units");
                     rec.Units = flds[1];
                 }
                 break;
             default:
                 break;
         }
     }
     lst.Add(rec);
     return (VitalSignSet[])lst.ToArray(typeof(VitalSignSet));
 }
Ejemplo n.º 9
0
 internal void setVitalSignQualifierStrings(VitalSignSet set, string s, string qualifier)
 {
     string[] keys = new string[]
     {
         "TEMP","PULSE","BP","RESP","WT","HT","PAIN","O2","CG","CVP","BMI"
     };
     for (int i = 0; i < keys.Length; i++)
     {
         string value = getVitalSignQualifierItem(s, keys[i]);
         if (!String.IsNullOrEmpty(value))
         {
             VitalSign theSign = getSignFromSet(set, keys[i]);
             if (theSign == null)
             {
                 continue;
             }
             if (String.Equals(qualifier, "Units", StringComparison.CurrentCultureIgnoreCase))
             {
                 theSign.Units = value;
                 if (keys[i] == "BP")
                 {
                     theSign = set.getVitalSign(VitalSign.SYSTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Units = value;
                     }
                     theSign = set.getVitalSign(VitalSign.DIASTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Units = value;
                     }
                 }
             }
             else if (String.Equals(qualifier, "Qualifiers", StringComparison.CurrentCultureIgnoreCase))
             {
                 theSign.Qualifiers = value;
                 if (keys[i] == "BP")
                 {
                     theSign = set.getVitalSign(VitalSign.SYSTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Qualifiers = value;
                     }
                     theSign = set.getVitalSign(VitalSign.DIASTOLIC_BP);
                     if (theSign != null)
                     {
                         theSign.Qualifiers = value;
                     }
                 }
             }
             else
             {
                 throw new Exception("Invalid qualifier: " + qualifier);
             }
         }
     }
 }
Ejemplo n.º 10
0
 internal VitalSign getSignFromSet(VitalSignSet set, string key)
 {
     if (key == "TEMP")
     {
         return set.getVitalSign(VitalSign.TEMPERATURE);
     }
     if (key == "PULSE")
     {
         return set.getVitalSign(VitalSign.PULSE);
     }
     if (key == "RESP")
     {
         return set.getVitalSign(VitalSign.RESPIRATION);
     }
     if (key == "BP")
     {
         return set.getVitalSign(VitalSign.BLOOD_PRESSURE);
     }
     if (key == "WT")
     {
         return set.getVitalSign(VitalSign.WEIGHT);
     }
     if (key == "HT")
     {
         return set.getVitalSign(VitalSign.HEIGHT);
     }
     if (key == "PAIN")
     {
         return set.getVitalSign(VitalSign.PAIN);
     }
     if (key == "O2")
     {
         return set.getVitalSign(VitalSign.PULSE_OXYMETRY);
     }
     if (key == "CG")
     {
         return set.getVitalSign(VitalSign.CIRCUMFERENCE_GIRTH);
     }
     if (key == "CVP")
     {
         return set.getVitalSign(VitalSign.CENTRAL_VENOUS_PRESSURE);
     }
     if (key == "BMI")
     {
         return set.getVitalSign(VitalSign.BODY_MASS_INDEX);
     }
     return null;
 }
Ejemplo n.º 11
0
        // not finished - need to determin in domain objects are correct/consider migrating to standard
        internal IList<VitalSignSet> toVitalsFromXmlNode(XmlNode node)
        {
            IList<VitalSignSet> vitals = new List<VitalSignSet>();

            int total = verifyTopLevelNode(node);
            if (total == 0)
            {
                return vitals;
            }

            XmlNodeList vitalsNodes = node.SelectNodes("/vital");
            if (vitalsNodes == null || vitalsNodes.Count == 0)
            {
                return vitals;
            }

            foreach (XmlNode vitalNode in vitalsNodes)
            {
                XmlNodeList measurementNodes = vitalNode.SelectNodes("/measurements/measurement");
                if (measurementNodes == null || measurementNodes.Count == 0)
                {
                    continue;
                }
                VitalSignSet vitalsSet = new VitalSignSet();
                IList<VitalSign> vitalsSetVitals = new List<VitalSign>();

                foreach (XmlNode measurementNode in measurementNodes)
                {
                    VitalSign vital = new VitalSign();
                }
            }

            return vitals;
        }