Esempio n. 1
0
        /// <summary>
        /// Create a CD from the code value supplied
        /// </summary>
        public CD <T> CreateCD <T>(CodeValue codeValue, List <IResultDetail> dtls)
        {
            if (codeValue == null)
            {
                return(null); // return new CD<T>() { NullFlavor = MARC.Everest.DataTypes.NullFlavor.NoInformation };
            }
            // Attempt to create the CV
            CD <T> retVal = new CD <T>((T)Util.Convert <T>(codeValue.Code));


            // Fill in details
            if (m_terminologyService != null && (retVal.Code.IsAlternateCodeSpecified ||
                                                 typeof(T) == typeof(String)))
            {
                codeValue = m_terminologyService.FillInDetails(codeValue);
            }

            if (!String.IsNullOrEmpty(codeValue.CodeSystem))
            {
                retVal.CodeSystem = codeValue.CodeSystem;
            }
            retVal.CodeSystemVersion = codeValue.CodeSystemVersion;
            if (codeValue.DisplayName != null)
            {
                retVal.DisplayName = codeValue.DisplayName;
            }
            else if (codeValue.CodeSystem != null)
            {
                retVal.CodeSystemName = codeValue.CodeSystemName;
            }

            if (codeValue.OriginalText != null)
            {
                retVal.OriginalText = codeValue.OriginalText;
            }

            // Qualifiers
            if (codeValue.Qualifies != null)
            {
                retVal.Qualifier = new LIST <CR <T> >();
                foreach (var kv in codeValue.Qualifies)
                {
                    retVal.Qualifier.Add(new CR <T>()
                    {
                        Name  = CreateCV <T>(kv.Key, dtls),
                        Value = CreateCD <T>(kv.Value, dtls)
                    });
                }
            }


            return(retVal);
        }
Esempio n. 2
0
        /// <summary>
        /// Update a CE
        /// </summary>
        private void UpdateCE(CodeValue codeValue, NHapi.Model.V231.Datatype.CE ce)
        {
            ITerminologyService tservice = Context.GetService(typeof(ITerminologyService)) as ITerminologyService;

            codeValue = tservice.FillInDetails(codeValue);

            ce.Identifier.Value         = codeValue.Code;
            ce.NameOfCodingSystem.Value = codeValue.CodeSystemName;
        }
Esempio n. 3
0
        /// <summary>
        /// Convert a code
        /// </summary>
        internal CodeableConcept ConvertCode(CodeValue codeValue)
        {
            ITerminologyService itermSvc = ApplicationContext.CurrentContext.GetService(typeof(ITerminologyService)) as ITerminologyService;

            if (itermSvc != null)
            {
                codeValue = itermSvc.FillInDetails(codeValue);
            }

            // Attempt to lookup the OID
            var oid    = ApplicationContext.ConfigurationService.OidRegistrar.FindData(codeValue.CodeSystem);
            var retVal = new CodeableConcept();
            var coding = new Coding();

            // Code system
            if (oid == null)
            {
                coding.System = new Uri(String.Format("urn:oid:{0}", codeValue.CodeSystem));
            }
            else if (codeValue.CodeSystem == "urn:ietf:rfc:3986")
            {
                coding.System = new Uri(codeValue.CodeSystem);
            }
            else
            {
                coding.System = new Uri(oid.Ref != null ? oid.Ref.ToString() : string.Format("urn:oid:{0}", codeValue.CodeSystem));
            }

            // Display name
            coding.Display = codeValue.DisplayName;

            // Mnemonic
            coding.Code = new PrimitiveCode <string>(codeValue.Code);

            return(retVal);
        }