private void ProcessResult(IFHIRParam fhirParam, ResourceData resourceData, List <dynamic> searchResults)
        {
            var mainEntityInResult = searchResults.FirstOrDefault();

            if (mainEntityInResult == null)
            {
                return;
            }

            dynamic mainEntity;

            if (mainEntityInResult is System.Collections.IEnumerable)
            {
                mainEntity = mainEntityInResult[0];
            }
            else
            {
                mainEntity = mainEntityInResult;
            }

            var resourceEntityType = fhirParam.TypeName.GetHL7ModelType();

            var dataType = TypeExtensions.ConvertToListOrType(resourceEntityType, mainEntity);

            var data = this._mapper.Map(mainEntity, mainEntity.GetType(), dataType);

            AppendWithSubsequentData(resourceEntityType, data, searchResults);

            resourceData.Resource = data;
        }
Ejemplo n.º 2
0
        public override ResourceData Handle(IFHIRParam fhirParam)
        {
            this._fhirParam = fhirParam;

            base.OnNoSearchResults = () => NoResultsHandler(fhirParam);

            return(base.Handle(fhirParam));
        }
        public virtual ResourceData Handle(IFHIRParam fhirParam)
        {
            string searchEntityIdentifier = GetSarchEntityIdentifier();

            List <SynapseSearchTerm> synapseSearchTerms = GetSynapseSearchTerms();

            var resourceData = new ResourceData(fhirParam);

            var searchResults = this._genericSearchRepo.Search(searchEntityIdentifier, synapseSearchTerms);

            if (searchResults.IsNull() || (searchResults.IsCollectionValid() && searchResults[0] == null))
            {
                return(OnNoSearchResults?.Invoke());
            }

            ProcessResult(fhirParam, resourceData, searchResults);

            OnPostSuccessfullProcess?.Invoke(resourceData);

            return(resourceData);
        }
Ejemplo n.º 4
0
        private ResourceData NoResultsHandler(IFHIRParam fhirParam)
        {
            var resourceData = new ResourceData(fhirParam);

            var storeCoreEncounter = CheckInEntityStore(fhirParam);

            if (storeCoreEncounter == null || storeCoreEncounter.EncounterId == null)
            {
                return(resourceData);
            }

            if (storeCoreEncounter.Recordstatus == 2) // Encounter in Deleted State
            {
                resourceData.Resource    = null;
                resourceData.DeletedDate = storeCoreEncounter.Createddate;
                resourceData.IsDeleted   = true;

                return(resourceData);
            }

            return(resourceData);
        }
Ejemplo n.º 5
0
 private entitystore_CoreEncounter1 CheckInEntityStore(IFHIRParam fhirParam)
 {
     return(_coreEncounterRepo.ItemsAsReadOnly.Where(e => e.EncounterId == fhirParam.ResourceId).OrderByDescending(x => x.Sequenceid).FirstOrDefault());
 }
Ejemplo n.º 6
0
 public ResourceData(IFHIRParam fHIRParam)
 {
     this.fHIRParam = fHIRParam;
 }
Ejemplo n.º 7
0
 public ResourceData Handle(IFHIRParam fhirParam, Resource resource)
 {
     throw new NotImplementedException();
 }
 private entitystore_CorePerson1 CheckInEntityStore(IFHIRParam fhirParam)
 {
     return(_storeCorePersonRepo.ItemsAsReadOnly.Where(p => p.PersonId == fhirParam.ResourceId).OrderByDescending(x => x.Sequenceid).FirstOrDefault());
 }