public void WhenBasicTransactionSubmitted_AllActionsExecuted() { // Create observation so that we can do the update and create in a transaction var updateResource = _fhirClient.Create(_resource); updateResource.Comment = "This is an updated resource"; var transaction = new TransactionBuilder(_fhirClient.Endpoint) .Create(_resource) .Update(updateResource.Id, updateResource); var bundle = transaction.ToBundle(); bundle.Type = Bundle.BundleType.Transaction; BundleHelper.CleanEntryRequestUrls(bundle, _fhirClient.Endpoint); var transactionResult = _fhirClient.Transaction(bundle); Assert.NotNull(transactionResult); Assert.Equal(2, transactionResult.Entry.Count); var createResult = transactionResult.Entry[0]; AssertHelper.CheckStatusCode(HttpStatusCode.Created, createResult.Response.Status); var updateResult = transactionResult.Entry[1]; AssertHelper.CheckStatusCode(HttpStatusCode.OK, updateResult.Response.Status); AssertHelper.CheckStatusCode(HttpStatusCode.OK, _fhirClient.LastResult.Status); }
public void WhenBatchSubmitted_AllActionsExecuted() { // Create observations so that we can do the update, read, and delete in the batch var updateResource = _fhirClient.Create(_resource); var readResource = _fhirClient.Create(_resource); var deleteResource = _fhirClient.Create(_resource); updateResource.Comment = "This is an updated resource"; var transaction = new TransactionBuilder(_fhirClient.Endpoint) .Create(_resource) .Read("Observation", readResource.Id) .Delete("Observation", deleteResource.Id) .Update(updateResource.Id, updateResource); var bundle = transaction.ToBundle(); bundle.Type = Bundle.BundleType.Batch; BundleHelper.CleanEntryRequestUrls(bundle, _fhirClient.Endpoint); var batchResult = _fhirClient.Transaction(bundle); Assert.NotNull(batchResult); Assert.NotNull(batchResult.Entry); Assert.Equal(4, batchResult.Entry.Count); var createResult = batchResult.Entry[0]; AssertHelper.CheckStatusCode(HttpStatusCode.Created, createResult.Response.Status); var readResult = batchResult.Entry[1]; AssertHelper.CheckStatusCode(HttpStatusCode.OK, readResult.Response.Status); var deleteResult = batchResult.Entry[2]; AssertHelper.CheckDeleteStatusCode(deleteResult.Response.Status); var updateResult = batchResult.Entry[3]; AssertHelper.CheckStatusCode(HttpStatusCode.OK, updateResult.Response.Status); AssertHelper.CheckStatusCode(HttpStatusCode.OK, _fhirClient.LastResult.Status); }
private static void Main(string[] args) { var endpoint = new Uri("http://localhost/Spark/fhir"); var client = new FhirClient(endpoint); string json = File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "transaction.json")); var bundle = new FhirJsonParser().Parse <Bundle>(json); var resultBundle = client.Transaction(bundle); Console.ReadLine(); }
public static Bundle CreateSaveBundle(Patient patient, Condition condition) { Bundle bundle = new Bundle(); Bundle responseBundle = new Bundle(); bundle.Type = Bundle.BundleType.Transaction; bundle.Entry = new List <Bundle.EntryComponent>() { new Bundle.EntryComponent() { Resource = patient, Request = new Bundle.RequestComponent() { Method = Bundle.HTTPVerb.POST } }, new Bundle.EntryComponent() { Resource = condition, Request = new Bundle.RequestComponent() { Method = Bundle.HTTPVerb.POST } } }; try { LogToFile("Created bundle with patient and condition using POCO: "); var xml = FhirSerializer.SerializeResourceToXml(bundle); LogToFile(XDocument.Parse(xml).ToString()); FhirClient fhirClient = new FhirClient(FhirClientEndPoint); responseBundle = fhirClient.Transaction(bundle); LogToFile("Response bundle for patient and condition: "); var resultXml = FhirSerializer.SerializeResourceToXml(responseBundle); LogToFile(XDocument.Parse(resultXml).ToString()); } catch (Exception ex) { LogToFile(ex.ToString()); } return(responseBundle); }