Exemplo n.º 1
0
        public void TestObservationLab()
        {
            var obs = new Observation();

            obs.Id.Add(new II().Init("2.16.840.1.113883.2.10.1.4.5", "E157300-466-1"));
            obs.Code.Code        = "369";
            obs.Code.CodeSystem  = "2.16.840.1.113883.2.10.1.1.3";
            obs.Code.DisplayName = "HEMATOCRITO";
            obs.Code.OriginalText.Reference.Value = "#a1";
            obs.StatusCode.Code     = "completed";
            obs.EffectiveTime.Value = "20061106171200";
            obs.Value.Add(new PQ()
            {
                Unit = "1", Value = 39
            });

            var referenceRange = obs.ReferenceRange.Append();
            var ivl            = new IVL_PQ();

            ivl.Init(low: new IVXB_PQ()
            {
                Unit = "%", Value = 37.0
            });
            referenceRange.ObservationRange.Value = ivl;

            referenceRange = obs.ReferenceRange.Append();
            ivl            = new IVL_PQ();
            ivl.Init(high: new IVXB_PQ()
            {
                Unit = "%", Value = 47.0
            });
            referenceRange.ObservationRange.Value = ivl;

            this.TestContext.WriteLine(obs.Xml);
        }
        //<referenceRange typeCode="REFV">
        //<observationRange classCode="OBS" moodCode="EVN.CRT">
        //<interpretationCode code="N"/>
        //<value xsi:type="IVL_PQ">
        //<low value="4.50" unit="10*6/mm3"/>
        //<high value="6.00" unit="10*6/mm3"/>
        //</value>
        //<lab:precondition typeCode="PRCN">
        //<lab:criterion classCode="COND">
        //<lab:code code="SEX"/>
        //<lab:value xsi:type="CD" code="M" codeSystem="2.16.840.1.113883.5.1"/>
        //</lab:criterion>
        //</lab:precondition>
        //</observationRange>
        //</referenceRange>

        public POCD_MT000040ReferenceRange ToPocd()
        {
            POCD_MT000040ReferenceRange returnVal = new POCD_MT000040ReferenceRange();

            // *** Create the observation range ***
            returnVal.observationRange = new POCD_MT000040ObservationRange()
            {
                classCode = "OBS",
                moodCode  = "EVN.CRT"
            };

            // *** Create interpretation code ***
            returnVal.observationRange.interpretationCode = new CE()
            {
                code = "N"
            };

            // *** Create working lists ***
            List <PQ> itemsList = new List <PQ>();
            List <ItemsChoiceType> itemNameList = new List <ItemsChoiceType>();

            // *** Create a value for the range ***
            IVL_PQ val = new IVL_PQ();

            // *** Add low and high values ***
            IVXB_PQ pq = new IVXB_PQ()
            {
                value = this.Low, unit = this.Units
            };

            itemsList.Add(pq);
            itemNameList.Add(ItemsChoiceType.low);

            pq = new IVXB_PQ()
            {
                value = this.High, unit = this.Units
            };
            itemsList.Add(pq);
            itemNameList.Add(ItemsChoiceType.high);

            val.Items            = itemsList.ToArray();
            val.ItemsElementName = itemNameList.ToArray();

            returnVal.observationRange.value = val;

            return(returnVal);
        }