/// <summary>This checks if a given type is a coded type.</summary> /// <remarks>This checks if a given type is a coded type. This also works for collection types (e.g. LIST is a coded type).</remarks> /// <param name="type"></param> /// <returns>whether the type is a coded type</returns> public static bool IsCodedType(string type) { if (StringUtils.IsBlank(type)) { return(false); } Hl7TypeName parsedType = Hl7TypeName.Parse(type); Hl7TypeName typeToCheck = parsedType; if (IsCollectionType(typeToCheck)) { IList <Hl7TypeName> parsedTypeParameters = parsedType.Parameters; if (parsedTypeParameters.Count == 1) { typeToCheck = parsedTypeParameters[0]; } } IList <Hl7TypeName> parameters = typeToCheck.Parameters; if (parameters.Count == 1) { typeToCheck = parameters[0]; } string rootType = typeToCheck.RootName; // FIXME - CDA - TM - SC (for R1) is not a coded type (though it likely should be modified to be one) return(Arrays.AsList("CD", "CV", "CE", "CO", "SC", "CS", "PQR").Contains(rootType)); }
public void ShouldStripWhitespace() { Hl7TypeName name = new Hl7TypeParser().Parse("SET<RTO<PQ, PQ>>"); NUnit.Framework.Assert.AreEqual("SET<RTO<PQ,PQ>>", ((String)name.ToString()), "name"); NUnit.Framework.Assert.AreEqual("SET", name.UnparameterizedName, "base"); NUnit.Framework.Assert.AreEqual(1, name.Parameters.Count, "parameter count"); Hl7TypeName parameter = name.Parameters[0]; NUnit.Framework.Assert.AreEqual("RTO", parameter.UnparameterizedName, "parameter name"); NUnit.Framework.Assert.AreEqual(2, parameter.Parameters.Count, "parameters of parameter count"); }
private static bool IsCollectionType(Hl7TypeName typeToCheck) { return(Arrays.AsList("LIST", "SET", "BAG", "COLLECTION").Contains(typeToCheck.RootName)); }