|
@@ -85,13 +85,12 @@ namespace ReportService.Service
|
|
|
var reportInfo = await _reportDBService.GetReportByCodeAsync(new GetReportByCodeDBRequest { ReportCode = request.ReportCode });
|
|
|
if (reportInfo.DiagnosisLabels.Contains("VAid"))
|
|
|
{
|
|
|
- var reportElments = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReportElementDTO>>(reportInfo.ReportDatasJson, new ReportElementDTOConverter());
|
|
|
- var newElements = await _remedicalService.GetReportElementByLanguageAsync(new GetReportElementByLanguageRequest
|
|
|
+ var newReportDatasJson = await _remedicalService.GetReportElementByLanguageAsync(new GetReportElementByLanguageRequest
|
|
|
{
|
|
|
- ReportElemets = reportElments,
|
|
|
+ ReportDatasJosn = reportInfo.ReportDatasJson,
|
|
|
Language = request.Language,
|
|
|
});
|
|
|
- reportInfo.ReportDatasJson = Newtonsoft.Json.JsonConvert.SerializeObject(newElements);
|
|
|
+ reportInfo.ReportDatasJson = newReportDatasJson;
|
|
|
}
|
|
|
return reportInfo;
|
|
|
}
|
|
@@ -1000,72 +999,6 @@ namespace ReportService.Service
|
|
|
}
|
|
|
return await _reportDBService.CopyThesaurusAsync(request.ThesaurusCode, string.Empty, userInfo.RootOrganizationCode);
|
|
|
}
|
|
|
-
|
|
|
- public class ReportElementDTOConverter : JsonCreationConverter<ReportElementDTO>
|
|
|
- {
|
|
|
- protected override ReportElementDTO Create(Type objectType, JObject jObject)
|
|
|
- {
|
|
|
- if (FieldExists("Value", jObject, out object value))
|
|
|
- {
|
|
|
- Console.WriteLine(value.GetType());
|
|
|
- if (value is JArray)
|
|
|
- {
|
|
|
- return new ReportElementArrayDTO();
|
|
|
- }
|
|
|
- }
|
|
|
- return new ReportElementStringDTO();
|
|
|
- }
|
|
|
-
|
|
|
- private bool FieldExists(string fieldName, JObject jObject, out object value)
|
|
|
- {
|
|
|
- value = jObject[fieldName];
|
|
|
- return jObject[fieldName] != null;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public abstract class JsonCreationConverter<T> : JsonConverter
|
|
|
- {
|
|
|
- /// <summary>
|
|
|
- /// Create an instance of objectType, based properties in the JSON object
|
|
|
- /// </summary>
|
|
|
- /// <param name="objectType">type of object expected</param>
|
|
|
- /// <param name="jObject">
|
|
|
- /// contents of JSON object that will be deserialized
|
|
|
- /// </param>
|
|
|
- /// <returns></returns>
|
|
|
- protected abstract T Create(Type objectType, JObject jObject);
|
|
|
-
|
|
|
- public override bool CanConvert(Type objectType)
|
|
|
- {
|
|
|
- return typeof(T).IsAssignableFrom(objectType);
|
|
|
- }
|
|
|
-
|
|
|
- public override bool CanWrite
|
|
|
- {
|
|
|
- get { return false; }
|
|
|
- }
|
|
|
-
|
|
|
- public override object ReadJson(JsonReader reader,
|
|
|
- Type objectType,
|
|
|
- object existingValue,
|
|
|
- JsonSerializer serializer)
|
|
|
- {
|
|
|
- // Load JObject from stream
|
|
|
- JObject jObject = JObject.Load(reader);
|
|
|
-
|
|
|
- // Create target object based on JObject
|
|
|
- T target = Create(objectType, jObject);
|
|
|
-
|
|
|
- // Populate the object properties
|
|
|
- serializer.Populate(jObject.CreateReader(), target);
|
|
|
-
|
|
|
- return target;
|
|
|
- }
|
|
|
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
|
- {
|
|
|
- throw new NotImplementedException();
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|