示例#1
0
        /// <summary>
        /// Loads collection of <see cref="DataModelMeasurement"/> defined in the database.
        /// </summary>
        public override void Load()
        {
            Mouse.OverrideCursor = Cursors.Wait;
            try
            {
                if (m_filterByInternal)
                {
                    m_measurements = DataModelMeasurement.Load(null, m_deviceID, true, m_includeInternal);
                }
                else
                {
                    m_measurements = MeasurementGroup.GetPossibleMeasurements(null, 0);
                }

                ItemsSource = m_measurements;
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null)
                {
                    Popup(ex.Message + Environment.NewLine + "Inner Exception: " + ex.InnerException.Message, "Load " + DataModelName + " Exception:", MessageBoxImage.Error);
                    CommonFunctions.LogException(null, "Load " + DataModelName, ex.InnerException);
                }
                else
                {
                    Popup(ex.Message, "Load " + DataModelName + " Exception:", MessageBoxImage.Error);
                    CommonFunctions.LogException(null, "Load " + DataModelName, ex);
                }
            }
            finally
            {
                Mouse.OverrideCursor = null;
            }
        }
示例#2
0
        private void ReloadMemberMeasurementsPager()
        {
            MeasurementGroup currentItem = m_dataContext.CurrentItem;

            MemberMeasurementsPager.FilterExpression = string.Format("SignalID IN (SELECT SignalID FROM MeasurementGroupMeasurement WHERE NodeID = '{0}' AND MeasurementGroupID = {1})", currentItem.NodeID.ToString().ToLower(), currentItem.ID);
            MemberMeasurementsPager.ReloadDataGrid();
        }
示例#3
0
        private static void HandleFinding(Dictionary <string, List <MeasurementGroup> > findings, DicomContentItem finding)
        {
            string sitename = "";

            foreach (var site in finding.Children())
            {
                if (site.Type != DicomValueType.Container)
                {
                    sitename = site.Dataset.GetCodeItem(DicomTag.ConceptCodeSequence).Meaning;
                    //Debug.WriteLine(sitename);
                }
                else
                {
                    var measurements = new List <Measurement>();
                    foreach (var rawmeasurement in site.Children())
                    {
                        Measurement measurement = GetMeasurementFromRaw(rawmeasurement);
                        measurements.Add(measurement);
                        //measurement.PrintDebug();
                    }
                    if (findings.ContainsKey(sitename))
                    {
                        findings[sitename].AddRange(MeasurementGroup.GroupMeasurements(measurements));
                    }
                    else
                    {
                        findings.Add(sitename, MeasurementGroup.GroupMeasurements(measurements));
                    }
                }
            }
        }
示例#4
0
        public void GivenTemplate_WhenCreateObservationGroups_ThenPeriodIntervalCorrectlyUsed_Test()
        {
            var valueProcessor   = Substitute.For <IFhirValueProcessor <IObservationData, DataType> >();
            var template         = Substitute.For <CodeValueFhirTemplate>().Mock(m => m.PeriodInterval.Returns(ObservationPeriodInterval.Single));
            var measurementGroup = new MeasurementGroup
            {
                Data = new List <Measurement>
                {
                    new Measurement {
                        OccurrenceTimeUtc = DateTime.UtcNow
                    },
                },
            };

            var processor = new CodeValueFhirTemplateProcessor(valueProcessor);

            var result = processor.CreateObservationGroups(template, measurementGroup);

            Assert.Single(result);

            _ = template.Received(1).PeriodInterval;
        }
示例#5
0
        protected virtual void ProcessNormalizedEvent(Measurement normalizedEvent, ILookupTemplate <IFhirTemplate> fhirTemplate, DeviceResult validationResult)
        {
            var measurementGroup = new MeasurementGroup
            {
                MeasureType   = normalizedEvent.Type,
                CorrelationId = normalizedEvent.CorrelationId,
                DeviceId      = normalizedEvent.DeviceId,
                EncounterId   = normalizedEvent.EncounterId,
                PatientId     = normalizedEvent.PatientId,
                Data          = new List <Measurement>()
                {
                    normalizedEvent
                },
            };

            try
            {
                // Convert Measurement to Observation Group
                var observationGroup = _fhirTemplateProcessor.CreateObservationGroups(fhirTemplate, measurementGroup).First();

                // Build HL7 Observation
                validationResult.Observations.Add(_fhirTemplateProcessor.CreateObservation(fhirTemplate, observationGroup));
            }
            catch (TemplateNotFoundException e)
            {
                validationResult.CaptureError(
                    $"No Fhir Template exists with the type name [{e.Message}]. Ensure that all Fhir Template type names match Device Mapping type names (including casing)",
                    ErrorLevel.ERROR,
                    ValidationCategory.FHIRTRANSFORMATION,
                    LineInfo.Default);
            }
            catch (Exception e)
            {
                validationResult.CaptureException(e, ValidationCategory.FHIRTRANSFORMATION);
            }
        }
示例#6
0
文件: Subscribers.cs 项目: xj0229/gsf
 // Attempt to get group name from group ID
 private string GetGroupName(int groupID)
 {
     return(MeasurementGroup.GetMeasurementGroup(null, groupID)?.Name ?? "Group");
 }