public FhirResponse History(IKey key, HistoryParameters parameters) { IResourceStorageService storageService = GetFeature <IResourceStorageService>(); if (storageService.Get(key) == null) { return(Respond.NotFound(key)); } IHistoryService historyExtension = this.GetFeature <IHistoryService>(); return(CreateSnapshotResponse(historyExtension.History(key, parameters))); }
private FhirResponse CreateSnapshotResponse(Snapshot snapshot, int pageIndex = 0) { IPagingService pagingExtension = this.FindExtension <IPagingService>(); IResourceStorageService resourceStorage = this.FindExtension <IResourceStorageService>(); if (pagingExtension == null) { Bundle bundle = new Bundle() { Type = snapshot.Type, Total = snapshot.Count }; bundle.Append(resourceStorage.Get(snapshot.Keys)); return(responseFactory.GetFhirResponse(bundle)); } else { Bundle bundle = pagingExtension.StartPagination(snapshot).GetPage(pageIndex); return(responseFactory.GetFhirResponse(bundle)); } }
public AsyncFhirService( IResourceStorageService storageService, IPagingService pagingService, ISearchService searchService, ITransactionService transactionService, ICapabilityStatementService capabilityStatementService, IHistoryStore historyService, IFhirResponseFactory responseFactory, ICompositeServiceListener serviceListener, IPatchService patchService) { _storageService = storageService; _pagingService = pagingService; _searchService = searchService; _transactionService = transactionService; _capabilityStatementService = capabilityStatementService; _historyService = historyService; _responseFactory = responseFactory; _serviceListener = serviceListener; _patchService = patchService; }