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