Code Monkey home page Code Monkey logo

firely-net-sdk's Introduction

Build Status

IMPORTANT The 5.0 version of the SDK contains substantial changes to the way we have organized the NuGet packages and source code. Please read before installing this new 5.0 version.

Introduction

This is Firely's official support SDK for working with HL7 FHIR on the Microsoft .NET (dotnet) platform.

This SDK provides:

  • Class models for working with the FHIR data model using POCO's
  • Xml and Json parsers and serializers
  • A REST client for working with FHIR-compliant servers
  • Helper classes to work with the specification metadata, most notably StructureDefinition and generation of differentials
  • Validation of instances based on profiles
  • Evaluation FhirPath expressions

Release notes

Read the releases notes on firely-net-sdk/releases. You can find documentation about this SDK in the Firely docs site.

Getting Started

Before installing one of the NuGet packages (or clone the repo) it is important to understand that HL7 has published several updates of the FHIR specification, each with breaking changes - so you need to ensure you use the version that is right for you:

  • STU3 (published March 2017) is older, but still widely in use and fully supported by the SDK.
  • R4 (published January 2019) is in active use and fully supported by the SDK.
  • R4B (published May 2022) is in active use and fully supported by the SDK.
  • R5 (published March 26 2023) is the latest official release of the FHIR spec and is fully supported by the SDK.

Read the online documentation, and download the correct for your FHIR release. Depending on the version of FHIR you require, you'll find the relevant link to the package below. For most developers, just including this NuGet package is enough to get started.

Spec version Git branch NuGet
R5 https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.R5
R4B https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.R4B
R4 https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.R4
STU3 https://github.com/FirelyTeam/firely-net-sdk/tree/release/5.0.0 https://www.nuget.org/packages/Hl7.Fhir.STU3

Using a pre-release NuGet package

Every release of the SDK results in a NuGet package on the normal NuGet feed. However, each commit on our develop branch also results in a pre-release package. These are public too. So if you want to be brave and use a pre-release packages, you can do so by adding https://nuget.pkg.github.com/FirelyTeam/index.json to your NuGet sources:

  • Get a Personal Access token (PAT) from github.com with scope read:packages

  • Next open a console on your machine and run dotnet nuget add source --name github --username <USERNAME> --password <PAT> https://nuget.pkg.github.com/FirelyTeam/index.json

USERNAME: your username on GitHub PAT: your Personal access token with at least the scope read:packages

Upgrading

We spend a lot of effort trying to maintain compile compatibility (not binary compatibility) between minor releases of the SDK. We do, however, publish a new major version with breaking changes about once a year. The table below lists the breaking changes for each of the major upgrades.

SDK version Breaking changes
2.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-2.0
3.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-3.0
4.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-4.0
5.x https://github.com/FirelyTeam/firely-net-sdk/wiki/Breaking-changes-in-5.0

The SDK has been restructured for the 5.0 release. Please take note of the following changes if you are upgrading:

  • You should only reference the main package (Hl7.Fhir.<release>).
  • If you need the specification.zip (for validation, if you are using the ZipSource resolver), add Hl7.Fhir.Specification.Data.<release>.
  • The "old" Hl7.Fhir.Specification.<release> package is now a metapackage that will include these two packages.
  • You should not reference any other packages that existed pre-5.0 (Hl7.Fhir.ElementModel etc.)

The profile validator has been split off into its own repository. The NuGet packages for the validator that are compatible with the SDK 5.0 release can be found on NuGet.

Support

We actively monitor the issues coming in through the GitHub repository at https://github.com/FirelyTeam/firely-net-sdk/issues. You are welcome to register your bugs and feature suggestions there. For questions and broader discussions, we use the .NET FHIR Implementers chat on Zulip.

Contributing

We are welcoming contributions!

If you want to participate in this project, we're using Git Flow for our branch management. Please submit PRs with changes against the develop branche.

Note: Since the 5.0 release of the SDK, the branches for STU3 and newer have been combined in a single develop branch. This branch now contains the code for all FHIR releases from STU3 and up. We have also refactored all the common code out to projects within that branch, so the separate common repository (at https://github.com/FirelyTeam/firely-net-common) is no longer in use. This greatly simplifies management and creating PRs for these projects.

firely-net-sdk's People

Contributors

abelenthovenfurore avatar alexzautke avatar almostchristian avatar bnantz avatar brendankowitz avatar brianpos avatar cknaap avatar dependabot[bot] avatar duaneedwards avatar en-gstoian avatar eug48 avatar ewoutkramer avatar kasdejong avatar kennethmyhra avatar lodewijksioen avatar lstratman avatar marcovisserfurore avatar mharthoorn avatar michelemottini avatar mmsmits avatar oddbjornkvalsund avatar ricardopinedathen avatar rob5045 avatar sacha-br avatar tiloc avatar vadi2 avatar wardweistra avatar webersteffen avatar wmrutten avatar wsugarman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firely-net-sdk's Issues

json-edge-cases contains malformed JSON

I was reviewing the code in DSTU2 develop branch. RoundtripTest unit test failed with this error.

Converting json-edge-cases [.json->.xml]
Test method Hl7.Fhir.Tests.Serialization.RoundtripTest.FullRoundtripOfAllExamples threw exception:
System.FormatException: Cannot parse json: After parsing a value an unexpected character was encountered: :. Path '_active.['http://hl7.org/fhir/example-do-not-use#recordStatus'][0]', line 14, position 20.

I looked at the extracted JSON and confirmed the JSON improperly formed.

UPDATE: this may be a non-issue - I see a working copy of a replacement in the testdata folder that hasn't been added to the zip file yet. I replaced locally, but see the test failing in other places.

When searching for entry HTTP request uses wrong Accept header

When searching for entry by id (or by query):
var sparkFhirClient = new FhirClient("http://spark.furore.com/fhir");
sparkFhirClient.SearchById<Patient>(id);

request sent to server is with Headers:
User-Agent: .NET FhirClient for FHIR 0.4.0
Accept: application/xml+fhir;charset=utf-8
Host: spark.furore.com/fhir
Proxy-Connection: Keep-Alive
while returned response from server is with header application/atom+xml.

FhirClient.Continue has issues with parameterized "next" urls

Messing around with my .net client pointed at the HAPI test server, which returned the following for a "next" url in a bundle:
http://fhirtest.uhn.ca/base?_getpages=8bba8a5a-233f-4f00-8db4-a00418c806fd&_getpagesoffset=10&_count=10&_format=xml

If I call Continue on the bundle, FhirClient ends up with an error in makeAbsolute because the IsBaseOf check on whether "http://fhirtest.uhn.ca.base/" is a base of "http://fhirtest.uhn.ca/base?_getpages=8bba8a5a-233f-4f00-8db4-a00418c806fd&_getpagesoffset=10&_count=10&_format=xml" fails.

Is there a path from ER7 v2 HL7 content?

Hi Ewout,

I'm working on a new integration engine for healthcare (yet another one). Its here on GitHub. Obviously I will be having a lot of ER7 coded stuff coming in, and currently I translate that into XML. However, looking at various mapping solutions in JavaScript I kind of decided to go for working with JSON for this. Which made this project very interesting (thanks for the code).
But I just want to understand if there is a transformation path from ER7 encoded data to the current JSON model you have, and if so, what does that pipeline look like?

If not, any suggestions on how to go from ER7 to JSON in a standard fashion would be very much appreciated.

In any regard, I will add support for this initiative into the server soon.

Cheers,
Niclas

Generate Narrative

The server should at least make sure it's own OperationOutcome's carry Narrative

MSBuild integrated package restore still enabled for Hl7.Fhir.Specification.Tests project

Encounter the following error when attempting to build a fresh clone from GitHub:

Error 1 This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is C:\fhir-net-api\src.nuget\NuGet.targets. C:\fhir-net-api\src\Hl7.Fhir.Specification.Tests\Hl7.Fhir.Specification.Tests.csproj 218 5 Hl7.Fhir.Specification.Tests

Removal of the following block in the Hl7.Fhir.Specification.Tests.csproj file should resolve this issue:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" /> </Target>

It looks like there was an attempt on January 14th to remove MSBuild integrated package restore from the other projects in this repo - maybe this one was left out?

Element validation is recusive, can we make this optional?

The validation of an element by using 'Validator.TryValidateObject' (or another method on Validator) returns the ValidationResults directly linked to the validated element as well as the ValidationResults of the element's property values. In itself, this is useful functionality. However, especially for UI-oriented applications it would also be useful to have an option to return merely the ValidationResults directly related to the element and its immediate properties.

We have discussed this could be done by passing a switch in the ValidationContext.Items dictionary. Preferably, an extension is added in the API to the ValidationContext class, setting the switch in a more controllable way.

Resource Based History since parameter generation incorrect.

When calling the server with the following code:
DateTimeOffset? since = null;
if (_lastInboundCheck.HasValue)
since = new DateTimeOffset(_lastInboundCheck.Value);
Bundle questionnaires = fhirServer.TypeHistory(since, 100);

This generates this URL:
GET /fhir/Questionnaire/_history?_since=2014-06-23T09:44:39+00:00&_count=100
should be generating
GET /fhir/Questionnaire/_history?_since=2014-06-23T09:44:39Z&_count=100
Looks like its gets the timezone output incorrect.

Embedded Schemas

I'm using the FHIR Schemas (XSD and Schematron) to validate resources. Would it be possible to embed these files as resources in the API or FHIR assembly. This way I can guarantee that the schemas match the C# object representation.

DataContractAttribute or SerializableAttribute missing at Hl7.Fhir.Model.Base

System.Runtime.Serialization.InvalidDataContractException occurred
  _HResult=-2146233088
  _message=Type 'Hl7.Fhir.Model.Resource' cannot inherit from a type that is not marked with DataContractAttribute or SerializableAttribute.  Consider marking the base type 'Hl7.Fhir.Model.Base' with DataContractAttribute or SerializableAttribute, or removing them from the derived type.
  HResult=-2146233088
  IsTransient=false
  Message=Type 'Hl7.Fhir.Model.Resource' cannot inherit from a type that is not marked with DataContractAttribute or SerializableAttribute.  Consider marking the base type 'Hl7.Fhir.Model.Base' with DataContractAttribute or SerializableAttribute, or removing them from the derived type.
  Source=System.Runtime.Serialization
  StackTrace:
       at System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper..ctor(Type type)
  InnerException:

Parsing URI parameters to create Query resources

ParseQueryFromUriParameters does not really parse the parameters - it just creates a Query object containing the parameters 'as is'. This means that malformed parameters are not caught by ParseQueryFromUriParameters, that is somewhat undesirable.

Resource update requires absolute path in Resource Id field

I'm trying to get Resource from server and then update it.

Method 2 works as intended. Method 1 does not work on update, because Patient id is not an absolute path.
Error due to code in
BundleXmlParser.cs 157: var id = SerializationUtil.UriValueOrNull(entry.Element(XmlNs.XATOM + XATOM_ID));

Method 1:

[TestMethod]
public void TestSearchByPersonaCode()
{
  var client = new FhirClient("http://spark.furore.com/fhir");

  var pats =
    client.Search<Patient>(
      new[] { string.Format("identifier={0}|{1}", "http://esveikata.lt/Identifier/PersonalCode", "[value]") });
    var pat = pats.Entries.FirstOrDefault() as ResourceEntry<Patient>;
    client.Update<Patient>(pat);
}

Method 2:

[TestMethod]
public void TestRead()
{
  var client = new FhirClient("http://spark.furore.com/fhir");

  var pat = client.Read<Patient>("Patient/[value2]");
  client.Update<Patient>(pat);
}

Btw, I'm using DSTU1 version.

identifier.system contains a trailing forward slash

/// <summary>
///   new Uri() is creating a canonical uri.  This means that the identifier's
///   system contains a trailing forward slash.
/// </summary>
[TestMethod]
public void Uri_Canonical()
{
     var identifier = new Identifier("http://nhi.health.nz", "123");
     Assert.AreEqual("123", identifier.Value);
     Assert.AreEqual("http://nhi.health.nz", identifier.System);
}

The above fails with Expected:<http://nhi.health.nz (System.String)>. Actual:<http://nhi.health.nz/ (System.Uri)>.

Encountered an unknown resource 'feed'

When searching Patient by id:
var sparkFhirClient = new FhirClient("http://spark.furore.com/fhir");
sparkFhirClient.SearchById<Patient>(id);
FormatException was throw with message At line 1, pos 2: Encountered an unknown resource 'feed'

I have looked into this issue and found out, that Atom support was dropped. How could I search for entries without Atom support?

UCUM validation?

Hi,
Do you guys have a .NET UCUM validator? I saw that you had plans to make something like this....

SearchParamDefinition and "_"

Some resource properties (AllergyIntolerance sensitivityType) have been defined in c# with a trailing "_". I assume this is done to avoid name clash with contained class/enum.

The SearchParamDefinition Path for these special properties does not have the trailing "_".

Parsing an array with a single null element throws a null-ref exception

Parsing this gives a null-reference exception ("resourceType":"OperationOutcome","issue":[{"severity":"error","details":"NullReferenceException: Object reference not set to an instance of an object."},{"severity":"information","details":" at Hl7.Fhir.Serialization.ComplexTypeWriter.serializedIntoTwoProperties(PropertyMapping prop, Object instance) in c:\Git\fhir-net-api\src\Serialization\ComplexTypeWriter.cs:line 105\r\n at Hl7.Fhir.Serialization.ComplexTypeWriter.write(ClassMapping mapping, Object instance, PropertyMapping prop, SerializationMode mode):

{
"resourceType": "Profile",
"identifier": "oh1394156991825",
"name": "a new profile",
"publisher": "Orion Health",
"description": "xcv",
"status": "draft",
"experimental": true,
"date": "2014-03-07T14:49:51+13:00",
"requirements": "cxv",
"extensionDefn": [{
"code": "test1",
"contextType": "resource",
"context": [null],
"definition": {
"short": "should change - and again",
"formal": "",
"min": "0",
"max": "1",
"type": [{"code": "date"}],
"isModifier": false,
"binding": {
"name": "ValueSet1",
"referenceResource": {"reference": "http://spark.furore.com/fhir/ValueSet/3216371"}
}
},
"meta": {"profileName": "a new profile"}
}]
}

SearchParamType generated incorrectly

It looks like the C# ModelInfo.SearchParameters has the wrong SearchParamType for many entries. It appears that "Conformance.SearchParamType.Number" is specified when "Conformance.SearchParamType.Token" should be used. Check out the definition for Location.Type.

Debugging when FhirSerialiser throwing "An item with the same key has already been added."

I'm using the FhirSerializer.SerializeResource(entry.Resource, jsonwriter) to serialise a single DiagnosticReport with a single Observation, "contained" within it. I keep getting the error "An item with the same key has already been added.", but I can't figure out what is wrong.

It would be helpful to give a more meaningful exception to show which key is being duplicated? I guess it is just a standard .NET exception at the moment though.

The Hl7.Fhir.Api nuget does not include the PDB files so it is difficult to debug the code.

Any ideas? Thanks :)

FhirClient.update breaks when refresh=true if the server pointed at doesn't provide version information

I've played around with this some, what seems to be happening is:
If a FHIR server returns a location with history information (i.e. http://fhirtest.uhn.ca/base/Observation/4041/_history/4) after an update, everything works great.
If a FHIR server returns a location that doesn't have history information (i.e. http://fhirstorm.dyndns.org:8080/FhirStorm/fhir/Observation/1), this snippet (FhirClient.cs, 338)
if (reqId.VersionId != null)
updated.SelfLink = reqId;

prevents SelfLink from being set.
Later, when the refresh occurs, FhirClient.cs 351 says:
if (refresh) updated = Refresh(updated, versionSpecific: true);
which causes the read to happen on SelfLink, which is null, so an exception is thrown.

It seems like either SelfLink should be set regardless of the version information being present, or the update code should set versionSpecific based on whether the version information is present.

Field validation missing field reference

The validation of standard FHIR model classes returns results which do not include a reference to the field they apply to. The exact (c#) field name would be very beneficial here. There are two possible alternatives:

  1. the FHIR field name could be returned instead
  2. a PropertyInfo object could be returned for easy reflection access. This object includes the c# field name by default.

The XHtml primitive type is not used in the model anymore.

Before, Narrative.Div used the XHtml type to represent FHIR XHTML narrative. Now, this has become string. Either remove the XHtml type in its entirety or make Narrative.Div an XHtml type again (might lead to complications in the parser/serializer because Div as an inlined XmlNode value)

Atom deleted-entry

When validating against XSD, I get the following error on a Atom feed created by the serialiser.

The element 'deleted-entry' in namespace 'http://purl.org/atompub/tombstones/1.0' has invalid child element 'link' in namespace 'http://www.w3.org/2005/Atom'. List of possible elements expected: 'link' in namespace 'http://purl.org/atompub/tombstones/1.0'.

<deleted-entry ref="https://localhost/fhir/Patient/6b7fe168-c36a-4a49-a54f-b38b9ff647eb" 
             when="2014-05-19T09:50:51.6593675+12:00" 
             xmlns="http://purl.org/atompub/tombstones/1.0">
   <link rel="self" 
      href="https://localhost/fhir/Patient/6b7fe168-c36a-4a49-a54f-b38b9ff647eb/_history/2" 
      xmlns="http://www.w3.org/2005/Atom" />
 </deleted-entry>

Make it easier to retrieve a 'Contained' Resource

Say I have a 'Contained' Resource with an id (like <Valueset id="set1">) and it is referenced using '#' (<reference value="#set1"/>). I'd like to retrieve that referenced Resource with a simple function, instead of using syntax like questionnaire.Contained.First(o => o.Id == Reference.Substring(1)) (pseudocode)

FhirParser.ParseQueryFromUriParameters does not detect specific operators (<=, >=)

I'm implementing the search functionality on DiagnosticReport.date.

The Query specification suggests I can query with dates which are greater than or less than the date. Such as _DiagnosticReport/search?date>=2014/02/23 or _DiagnosticReport/search?date<=2014/05/27.

The new FhirParser.ParseQueryFromUriParameters only accepts a list of Tuples, which doesn't include any operator types (<=, >=, etc).

I might have misunderstood the Query object, but if not, it would be useful to have a new ParseQueryFromUriParameters method which accepted the full QueryString object.

Thanks.

Browsing forward in feed and then back to page 0 returns null

[8:12:45 PM] Angus Millar: I find the paging has a bug
[8:13:00 PM] Angus Millar: when you use this method
[8:13:15 PM] Angus Millar: Hl7.Fhir.Model.Bundle oReturnedBundle = Client.Continue(oBundle, PageDirection);
[8:14:13 PM] Angus Millar: as you walk forward through the pages all is fine and goig back is fine, but when you get to page zero "the first page" it returns null
[8:14:56 PM] Angus Millar: So that is go forward one page and then go back one page and you get null
[8:15:09 PM] Angus Millar: Sure we can look at next week
[8:19:34 PM] Angus Millar: 'Hl7.Fhir.Client.PageDirection.Last' works fine so I have to implement my own tracking to work around the bug

XML Serialisation of OperationOutcome

I'm getting a System.NullReferenceException when XML serialising an OperationOutcome. The basic code is:

var settings = new XmlWriterSettings 
            { 
                CloseOutput = true,
                Encoding = new UTF8Encoding(false),
                Indent = true,
                OmitXmlDeclaration = true
            };

            using (var writer = XmlWriter.Create(writeStream, settings))
            {
                FhirSerializer.SerializeResource((Resource)value, writer);
            }

And the stack trace (see the bottom for Fhir exception details). It looks like get_Inspector is not working.

Test Name:  GetWardByName
Test Outcome:   Failed
Result Message: 
Test method Orchestral.Blaze.Blog_2013_10_24.GetWardByName threw exception: 
System.AggregateException: One or more errors occurred. ---> System.NullReferenceException: Object reference not set to an instance of an object.
Result StandardOutput:  
Debug Trace:
vstest.executionengine.x86.exe Information: 0 : Request, Method=GET, Url=http://localhost/fhir/Location?name="Medical ICU"&type=urn:his/WRD, Message='http://localhost/fhir/Location?name="Medical ICU"&type=urn:his/WRD'
vstest.executionengine.x86.exe Information: 0 : Message='Location', Operation=DefaultHttpControllerSelector.SelectController
vstest.executionengine.x86.exe Information: 0 : Message='Orchestral.Blaze.Hint.LocationController', Operation=DefaultHttpControllerActivator.Create
vstest.executionengine.x86.exe Information: 0 : Message='Orchestral.Blaze.Hint.LocationController', Operation=HttpControllerDescriptor.CreateController
vstest.executionengine.x86.exe Information: 0 : Message='Selected action 'Search(Search filter)'', Operation=ApiControllerActionSelector.SelectAction
vstest.executionengine.x86.exe Error: 0 : Operation=LocationController.ExecuteAsync, Exception=System.ArgumentException: Integer query parameter value is not a valid integer
   at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__b.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Tracing.Tracers.HttpControllerTracer.<ExecuteAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Tracing.ITraceWriterExtensions.<TraceBeginEndAsyncCore>d__21`1.MoveNext()
vstest.executionengine.x86.exe Information: 0 : Message='Will use same 'FhirResourceXmlFormatter' formatter', Operation=FhirResourceXmlFormatter.GetPerRequestFormatterInstance
vstest.executionengine.x86.exe Information: 0 : Message='Selected formatter='FhirResourceXmlFormatter', content-type='application/fhir+xml; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate
vstest.executionengine.x86.exe Information: 0 : Response, Status=500 (InternalServerError), Method=GET, Url=http://localhost/fhir/Location?name="Medical ICU"&type=urn:his/WRD, Message='Content-type='application/fhir+xml; charset=utf-8', content-length=unknown'
vstest.executionengine.x86.exe Error: 0 : Operation=FhirResourceXmlFormatter.WriteToStream, Exception=System.NullReferenceException: Object reference not set to an instance of an object.
   at Hl7.Fhir.Introspection.PropertyMapping.Create(PropertyInfo prop, IEnumerable`1& referredTypes) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Introspection\PropertyMapping.cs:line 53
   at Hl7.Fhir.Introspection.PropertyMapping.Create(PropertyInfo prop) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Introspection\PropertyMapping.cs:line 36
   at Hl7.Fhir.Introspection.ClassMapping.inspectProperties(ClassMapping me) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Introspection\ClassMapping.cs:line 127
   at Hl7.Fhir.Introspection.ClassMapping.Create(Type type) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Introspection\ClassMapping.cs:line 107
   at Hl7.Fhir.Introspection.ModelInspector.ImportType(Type type) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Introspection\ModelInspector.cs:line 95
   at Hl7.Fhir.Introspection.ModelInspector.Import(Assembly assembly) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Introspection\ModelInspector.cs:line 51
   at Hl7.Fhir.Serialization.SerializationConfig.<createDefaultModelInspector>b__0() in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Serialization\SerializationConfig.cs:line 26
   at System.Lazy`1.CreateValue()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Lazy`1.get_Value()
   at Hl7.Fhir.Serialization.SerializationConfig.get_Inspector() in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Serialization\SerializationConfig.cs:line 36
   at Hl7.Fhir.Serialization.ResourceWriter..ctor(IFhirWriter writer) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Serialization\ResourceWriter.cs:line 23
   at Hl7.Fhir.Serialization.FhirSerializer.Serialize(Object instance, IFhirWriter writer) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Serialization\FhirSerializer.cs:line 48
   at Hl7.Fhir.Serialization.FhirSerializer.SerializeResource(Resource resource, XmlWriter writer) in c:\Projects\fhir-net-api-master\src\Hl7.Fhir.Serialization\Serialization\FhirSerializer.cs:line 129
   at Orchestral.Blaze.Http.FhirResourceXmlFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content) in c:\Projects\Hint\Blaze\Core\Http\FhirResourceXmlFormatter.cs:line 148
   at System.Web.Http.Tracing.Tracers.BufferedMediaTypeFormatterTracer.<>c__DisplayClass7.<WriteToStream>b__6()
   at System.Web.Http.Tracing.ITraceWriterExtensions.TraceBeginEnd(ITraceWriter traceWriter, HttpRequestMessage request, String category, TraceLevel level, String operatorName, String operationName, Action`1 beginTrace, Action execute, Action`1 endTrace, Action`1 errorTrace)


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.