public FhirResponse GetFhirResponse(Interaction interaction, object input)
        {
            ConditionalHeaderParameters parameters = ConvertInput(input);

            if (parameters == null)
            {
                return(null);
            }

            bool?matchTags         = parameters.IfNoneMatchTags.Any() ? parameters.IfNoneMatchTags.Any(t => t == ETag.Create(interaction.Key.VersionId).Tag) : (bool?)null;
            bool?matchModifiedDate = parameters.IfModifiedSince.HasValue
                ? parameters.IfModifiedSince.Value < interaction.Resource.Meta.LastUpdated
                : (bool?)null;

            if (!matchTags.HasValue && !matchModifiedDate.HasValue)
            {
                return(null);
            }

            if ((matchTags ?? true) && (matchModifiedDate ?? true))
            {
                return(Respond.WithCode(HttpStatusCode.NotModified));
            }

            return(null);
        }
示例#2
0
        public ActionResult <FhirResponse> Read(string type, string id)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);
            Key key = Key.Create(type, id);

            return(new ActionResult <FhirResponse>(_fhirService.Read(key, parameters)));
        }
示例#3
0
        public async Task <FhirResponse> Read(string type, string id)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);
            Key key = Key.Create(type, id);

            return(await _fhirService.ReadAsync(key, parameters));
        }
示例#4
0
        public FhirResponse Read(string type, string id)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);
            Key          key      = Key.Create(type, id);
            FhirResponse response = _fhirService.Read(key, parameters);

            return(response);
        }
示例#5
0
        public FhirResponse Read(IKey key, ConditionalHeaderParameters parameters = null)
        {
            ValidateKey(key);

            Entry entry = GetFeature <IResourceStorageService>().Get(key);

            return(responseFactory.GetFhirResponse(entry, key, parameters));
        }
示例#6
0
        public async Task <ActionResult <FhirResponse> > Read(string type, string id)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);
            Key key      = Key.Create(type, id);
            var response = await _fhirService.ReadAsync(key, parameters).ConfigureAwait(false);

            return(new ActionResult <FhirResponse>(response));
        }
示例#7
0
        public FhirResponse Read(Key key, ConditionalHeaderParameters parameters = null)
        {
            _log.ServiceMethodCalled("read");

            ValidateKey(key);

            return(responseFactory.GetFhirResponse(key, parameters));
        }
示例#8
0
        public ServerFhirResponse Read(IKey key, ConditionalHeaderParameters parameters = null)
        {
            //ValidateKey(key);
            DomainResource patient = fhirClient.Read <DomainResource>(key.ToRelativeUri().ToString());

            FhirResponseFactory responseFactory = new FhirResponseFactory();
            Entry entry = Entry.Create(Bundle.HTTPVerb.GET, key, patient);

            return(responseFactory.GetFhirResponse(entry, key, parameters));
        }
        public ActionResult <FhirResponse> VRead(string type, string id, string versionId)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);

            var fhirParams = Key.Create(type, id, versionId);

            var queryHandlerFactory = this._provider.GetService(typeof(QueryHandlerFactory)) as QueryHandlerFactory;

            var handler = queryHandlerFactory.GetHandler(nameof(Read));

            return(handler.Handle(fhirParams));
        }
        public async Task <ActionResult <FhirResponse> > Read(string type, string id)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);

            var fhirParams = Key.Create(type, id);

            var queryHandlerFactory = this._provider.GetService(typeof(QueryHandlerFactory)) as QueryHandlerFactory;

            var handler = queryHandlerFactory.GetHandler(nameof(Read));

            return(await new TaskFactory().StartNew(() => handler.Handle(fhirParams)));
        }
        public async Task <ActionResult <List <SynapseResource> > > GetObservation(string personId)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);

            var queryHandlerFactory = this._provider.GetService(typeof(SynapseDataQueryHandlerFactory)) as SynapseDataQueryHandlerFactory;

            var handler = queryHandlerFactory.GetHandler("custom_observation_read");

            var handlerTask = new TaskFactory().StartNew(() =>
            {
                var synResourceData = handler.Handle(personId);
                return(synResourceData.SynapseResources);
            });

            return(await handlerTask);
        }
        public ActionResult <FhirResponse> ReadAsyncV2(string type, string id)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);

            var fhirParams = Key.Create(type, id);

            var queryHandlerFactory = this._provider.GetService(typeof(QueryHandlerFactory)) as QueryHandlerFactory;

            var handler = queryHandlerFactory.GetHandler("Read");

            return(handler.Handle(fhirParams));

            //var handlerTask = new TaskFactory().StartNew(() => handler.Handle(fhirParams));

            //return await handlerTask;
        }
        public async Task <ActionResult <List <SynapseResource> > > GetObservation(string personId)
        {
            ConditionalHeaderParameters parameters = new ConditionalHeaderParameters(Request);

            var queryHandlerFactory = this._provider.GetService(typeof(SynapseDataQueryHandlerFactory)) as SynapseDataQueryHandlerFactory;

            var handler = queryHandlerFactory.GetHandler("custom_observation_read");

            var handlerTask = new TaskFactory().StartNew(() =>
            {
                var synResourceData = handler.Handle(personId);
                return(synResourceData.SynapseResources);

                //var obsRoot = new List<ObservationRoot>() {
                //    new ObservationRoot {
                //        ObservationEvent = new ObservationEventDTO { Encounter_Id = "121212121" },
                //        Observations = new List<ObservationDTO> {new ObservationDTO { Observationevent_Id="1112121213"} }
                //    },
                //     new ObservationRoot {
                //        ObservationEvent = new ObservationEventDTO { Encounter_Id = "333333" },
                //        Observations = new List<ObservationDTO> {new ObservationDTO { Observationevent_Id="3333333344"} }
                //    }

                //};
                //var sn = new List<SynapseResource>();
                //obsRoot.Each(o => sn.Add(o));
                //return sn;

                //return new ObservationRoot
                //{
                //    ObservationEvent = new ObservationEventDTO { Encounter_Id = "121212121" },
                //    Observations = new List<ObservationDTO> { new ObservationDTO { Observationevent_Id = "1112121213" } }
                //};
            });

            return(await handlerTask);
        }