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; }
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); }
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); }
private entitystore_CoreEncounter1 CheckInEntityStore(IFHIRParam fhirParam) { return(_coreEncounterRepo.ItemsAsReadOnly.Where(e => e.EncounterId == fhirParam.ResourceId).OrderByDescending(x => x.Sequenceid).FirstOrDefault()); }
public ResourceData(IFHIRParam fHIRParam) { this.fHIRParam = fHIRParam; }
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()); }