public virtual void TestFormatPhysicalQuantityValidWithTranslations() { CodedTypeR2 <Code> translation1 = new CodedTypeR2 <Code>(); translation1.Code = Ca.Infoway.Messagebuilder.Domainvalue.Payload.AdministrativeGender.MALE; CodedTypeR2 <Code> translation2 = new CodedTypeR2 <Code>(); translation2.Code = Ca.Infoway.Messagebuilder.Domainvalue.Controlact.ActStatus.ACTIVE; string quantity = "33.45"; Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = CeRxDomainTestValues.ENZYME_UNIT_MICROMOLES_MINUTE_PER_LITRE; PhysicalQuantity physicalQuantity = new PhysicalQuantity(); physicalQuantity.Quantity = new BigDecimal(quantity); physicalQuantity.Unit = unit; physicalQuantity.Translation.Add(translation1); physicalQuantity.Translation.Add(translation2); IDictionary <string, string> result = new PqR2PropertyFormatterTest.TestablePqR2PropertyFormatter().GetAttributeNameValuePairsForTest (CreateContext("PQ"), physicalQuantity, null); Assert.AreEqual(2, result.Count, "map size"); Assert.IsTrue(result.ContainsKey("value"), "key as expected"); Assert.AreEqual(quantity, result.SafeGet("value"), "value"); Assert.IsTrue(result.ContainsKey("unit"), "unit key as expected"); Assert.AreEqual(unit.CodeValue, result.SafeGet("unit"), "unit"); string xml = new PqR2PropertyFormatterTest.TestablePqR2PropertyFormatter().Format(CreateContext("PQ"), new PQImpl(physicalQuantity ), 0); AssertXml("should see translations", "<name unit=\"U/L\" value=\"33.45\"><translation code=\"M\" codeSystem=\"2.16.840.1.113883.5.1\" displayName=\"Male\"/><translation code=\"active\" codeSystem=\"2.16.840.1.113883.5.14\" displayName=\"Active\"/></name>" , xml); }
/// <exception cref="Ca.Infoway.Messagebuilder.Marshalling.HL7.XmlToModelTransformationException"></exception> protected override PhysicalQuantity ParseNonNullNode(ParseContext context, XmlNode node, BareANY bareAny, Type expectedReturnType , XmlToModelResult xmlToModelResult) { XmlElement element = (XmlElement)node; BigDecimal value = this.pqValidationUtils.ValidateValueR2(element.GetAttribute("value"), context.GetVersion(), context.Type , false, element, null, xmlToModelResult); string unitAsString = element.GetAttribute("unit"); Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = null; if (StringUtils.IsNotBlank(unitAsString)) { unit = this.pqValidationUtils.ValidateUnits(context.Type, unitAsString, element, null, xmlToModelResult, true); } // TM - MBR-285: units default to "1" if not specified; however, this part of the schemas will be ignored PhysicalQuantity physicalQuantity = (value != null || unit != null) ? new PhysicalQuantity(value, unit) : null; if (physicalQuantity != null) { HandleTranslations(element, physicalQuantity, context, xmlToModelResult); } this.sxcmHelper.HandleOperator((XmlElement)node, context, xmlToModelResult, (ANYMetaData)bareAny); // this is not the usual way of doing things; this is to make validation easier ((BareANYImpl)bareAny).BareValue = physicalQuantity; return(physicalQuantity); }
public virtual void TestFormatValidPhysicalQuantity() { string quantity = "33.45"; Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = CeRxDomainTestValues.ENZYME_UNIT_MICROMOLES_MINUTE_PER_LITRE; PhysicalQuantity physicalQuantity = new PhysicalQuantity(); physicalQuantity.Quantity = new BigDecimal(quantity); physicalQuantity.Unit = unit; PQ rawPq = new PQImpl(physicalQuantity); string result = new PqR2PropertyFormatterTest.TestablePqR2PropertyFormatter().Format(CreateContext("PQ"), rawPq, 0); string expectedResult = "<name unit=\"U/L\" value=\"33.45\"/>"; Assert.AreEqual(expectedResult, result.Trim(), "output"); }
public virtual void TestFormatPhysicalQuantityValid() { string quantity = "33.45"; Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = CeRxDomainTestValues.ENZYME_UNIT_MICROMOLES_MINUTE_PER_LITRE; PhysicalQuantity physicalQuantity = new PhysicalQuantity(); physicalQuantity.Quantity = new BigDecimal(quantity); physicalQuantity.Unit = unit; IDictionary <string, string> result = new PqR2PropertyFormatterTest.TestablePqR2PropertyFormatter().GetAttributeNameValuePairsForTest (CreateContext("PQ"), physicalQuantity, null); Assert.AreEqual(2, result.Count, "map size"); Assert.IsTrue(result.ContainsKey("value"), "key as expected"); Assert.AreEqual(quantity, result.SafeGet("value"), "value"); Assert.IsTrue(result.ContainsKey("unit"), "unit key as expected"); Assert.AreEqual(unit.CodeValue, result.SafeGet("unit"), "unit"); }
public virtual void TestFormatValidPhysicalQuantityWithOperatorNotAllowed() { string quantity = "33.45"; Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = CeRxDomainTestValues.ENZYME_UNIT_MICROMOLES_MINUTE_PER_LITRE; PhysicalQuantity physicalQuantity = new PhysicalQuantity(); physicalQuantity.Quantity = new BigDecimal(quantity); physicalQuantity.Unit = unit; PQ rawPq = new PQImpl(physicalQuantity); rawPq.Operator = SetOperator.PERIODIC_HULL; string result = new PqR2PropertyFormatterTest.TestablePqR2PropertyFormatter().Format(CreateContext("PQ"), rawPq, 0); string expectedResult = "<name unit=\"U/L\" value=\"33.45\"/>"; Assert.AreEqual(expectedResult, result.Trim(), "output"); Assert.IsFalse(this.result.IsValid()); Assert.AreEqual(1, this.result.GetHl7Errors().Count); }
public virtual void TestFormatPhysicalQuantityValidWithOriginalText() { string quantity = "33.45"; Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = CeRxDomainTestValues.ENZYME_UNIT_MICROMOLES_MINUTE_PER_LITRE; PhysicalQuantity physicalQuantity = new PhysicalQuantity(); physicalQuantity.Quantity = new BigDecimal(quantity); physicalQuantity.Unit = unit; PQ rawPq = new PQImpl(); rawPq.OriginalText = "some original text"; rawPq.Value = physicalQuantity; string result = new PqPropertyFormatterTest.TestablePqPropertyFormatter().Format(CreateContext("PQ.BASIC"), rawPq, 0); string expectedResult = "<name unit=\"U/L\" value=\"33.45\">" + SystemUtils.LINE_SEPARATOR + " <originalText>some original text</originalText>" + SystemUtils.LINE_SEPARATOR + "</name>" + SystemUtils.LINE_SEPARATOR; Assert.AreEqual(expectedResult, result, "output"); }
public virtual void TestFormatPhysicalQuantityValid() { string quantity = "33.45"; Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit = Ca.Infoway.Messagebuilder.Domainvalue.Basic.UnitsOfMeasureCaseSensitive .MILLILITRE; PhysicalQuantity physicalQuantity = new PhysicalQuantity(); physicalQuantity.Quantity = new BigDecimal(quantity); physicalQuantity.Unit = unit; IDictionary <string, string> result = new PqPropertyFormatter().GetAttributeNameValuePairs(CreateContext(), physicalQuantity ); Assert.AreEqual(2, result.Count, "map size"); Assert.IsTrue(result.ContainsKey("value"), "key as expected"); Assert.AreEqual(quantity, result.SafeGet("value"), "value"); Assert.IsTrue(result.ContainsKey("unit"), "unit key as expected"); Assert.AreEqual(unit.CodeValue, result.SafeGet("unit"), "unit"); }
private PhysicalQuantity CreateQuantity(string quantity, Ca.Infoway.Messagebuilder.Domainvalue.UnitsOfMeasureCaseSensitive unit) { return(new PhysicalQuantity(new BigDecimal(quantity), unit)); }