예제 #1
0
파일: Document.cs 프로젝트: TonyAbell/spark
        public void Write(Definition definition, string value)
        {
            if (definition.Argument != null)
                value = definition.Argument.GroomElement(value);

            Write(definition.ParamName, value);
        }
예제 #2
0
파일: Document.cs 프로젝트: TonyAbell/spark
 public void Write(Definition definition, IEnumerable<string> items)
 {
     if (items != null)
     {
         foreach (string item in items)
         {
             Write(definition, item);
         }
     }
 }
예제 #3
0
 public static Definition CreateDefinition(ModelInfo.SearchParamDefinition paramdef)
 {
     Definition definition = new Definition();
     definition.Argument = ArgumentFactory.Create(paramdef.Type);
     definition.Resource = paramdef.Resource;
     definition.ParamName = paramdef.Name;
     definition.Query = new ElementQuery(paramdef.Path);
     definition.ParamType = paramdef.Type;
     definition.Description = paramdef.Description;
     return definition;
 }
예제 #4
0
 public void Collect(Definition definition, CodeableConcept concept)
 {
     Write(definition.ParamName + "_text", concept.Text);
     if (concept.Coding != null)
     {
         foreach (Coding coding in concept.Coding)
         {
             Collect(definition, coding);
         }
     }
 }
예제 #5
0
 public void Collect(Definition definition, HumanName name)
 {
     Write(definition, name.Given);
     Write(definition, name.Prefix);
     Write(definition, name.Family);
     Write(definition, name.Suffix);
     //Write(definition, name.Use.ToString());
 }
예제 #6
0
 public void Collect(Definition definition, Address address)
 {
     Write(definition, address.City);
     Write(definition, address.Country);
     Write(definition, address.Line); // ienumerable
     Write(definition, address.State);
     Write(definition, address.Text);
     Write(definition, address.Use.ToString());
     Write(definition, address.Zip);
 }
예제 #7
0
 public void Collect(Definition definition, Contact contact)
 {
     Write(definition, Cast(contact.ValueElement));
 }
예제 #8
0
        public void Collect(Definition definition, Identifier identifier)
        {
            string system = (identifier.System != null) ? identifier.System.ToString() : null;
            string code = (identifier.Value != null) ? identifier.Value: null;

            BsonDocument value = new BsonDocument()
                {
                    { "system", system },
                    { "code", code },
                    // eigenlijk moet het ook een Display bevatten (om dat search daarop kan zoeken bij een token)
                };
            Write(definition.ParamName, value);
        }
예제 #9
0
        public void Collect(Definition definition, Coding coding)
        {
            string system = (coding.System != null) ? coding.System.ToString() : null;
            string code = ((coding.Code != null) && (coding.Code != null)) ? coding.Code : null;

            BsonDocument value = new BsonDocument()
                {
                    { "system", system },
                    { "code", code },
                    { "display", coding.Display }
                };
            Write(definition.ParamName, value);
        }
예제 #10
0
 public void Add(Definition definition)
 {
     this.definitions.Add(definition);
 }
예제 #11
0
 public void Collect(Definition definition, Enum item)
 {
     var coding = new Coding();
     coding.Code = getEnumLiteral(item);
     Collect(definition, coding);
 }
예제 #12
0
 public void Collect(Definition definition, List<FhirString> list)
 {
     foreach (FhirString fs in list)
     {
         Write(definition, Cast(fs));
     }
 }
예제 #13
0
파일: Document.cs 프로젝트: TonyAbell/spark
        public void Collect(Definition definition, Quantity quantity)
        {
            if (definition.ParamType != Conformance.SearchParamType.Quantity)
                return;
 
            Quantity q = quantity.Standardize();
            string system = (quantity.System != null) ? quantity.System.ToString() : null;
            
            BsonDocument block = new BsonDocument()
                {
                    { "system", system },
                    { "value", q.GetValueAsBson() },
                    { "decimals", q.GetDecimalSearchableValue() },
                    { "unit", q.Units }
                };
            Write(definition.ParamName, block); 
        }
예제 #14
0
 public void Replace(Definition definition)
 {
     definitions.RemoveAll(d => (d.Resource == definition.Resource) && (d.ParamName == definition.ParamName));
     definitions.Add(definition);
     // for manual correction
 }
예제 #15
0
        public void Collect(Definition definition, Period period)
        {
            string start = definition.Argument.GroomElement(period.Start);
            string end = definition.Argument.GroomElement(period.End);

            BsonDocument value = new BsonDocument()
                {
                    { "start", start },
                    { "end", end }
                };
            document.Write(definition.ParamName, value);
        }
예제 #16
0
 public void Collect(Definition definition, Quantity quantity)
 {
     switch (definition.ParamType)
     {
         case Conformance.SearchParamType.Quantity:
         {
             BsonDocument block = quantity.Indexed();
             Write(definition.ParamName, block);
             break;
         }
         case Conformance.SearchParamType.Date:
         {
             break;
         }
         default: return;
     }
 }
예제 #17
0
 public void InvokeCollect(Definition definition, object item)
 {
     if (item != null)
     {
         Type type = item.GetType();
         MethodInfo m = this.GetType().GetMethod("Collect", new Type[] { typeof(Definition), type });
         if (m != null)
         {
             var result = m.Invoke(this, new object[] { definition, item });
         }
         else
         {
             string result = null;
             m = this.GetType().GetMethod("Cast", new Type[] { type });
             if (m != null)
             {
                 var cast = m.Invoke(this, new object[] { item });
                 result = (string)cast;
             }
             else
             {
                 result = item.ToString();
                 ReportNotImplemented(item);
             }
             Write(definition, result);
         }
     }
     else
     {
         Write(definition, (string)null);
     }
 }
예제 #18
0
 public void Collect(Definition definition, Contact contact)
 {
     Write(definition, Cast(contact.ValueElement));
 }