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); } } } }
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; }
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); }
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; }
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; }
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); }
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))); }
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)); }
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); } } } }
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; }
// 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; }