Пример #1
0
        private void CreateLinksForCausalityReport(
            LinkedResourceBaseDto wrapper,
            Guid workFlowGuid,
            int pageNumber, int pageSize,
            int facilityId, CausalityCriteria causalityCriteria,
            bool hasNext, bool hasPrevious)
        {
            wrapper.Links.Add(
                new LinkDto(
                    _linkGeneratorService.CreateCausalityReportResourceUri(workFlowGuid, ResourceUriType.Current, pageNumber, pageSize, facilityId, causalityCriteria),
                    "self", "GET"));

            if (hasNext)
            {
                wrapper.Links.Add(
                    new LinkDto(
                        _linkGeneratorService.CreateCausalityReportResourceUri(workFlowGuid, ResourceUriType.NextPage, pageNumber, pageSize, facilityId, causalityCriteria),
                        "nextPage", "GET"));
            }

            if (hasPrevious)
            {
                wrapper.Links.Add(
                    new LinkDto(
                        _linkGeneratorService.CreateCausalityReportResourceUri(workFlowGuid, ResourceUriType.PreviousPage, pageNumber, pageSize, facilityId, causalityCriteria),
                        "previousPage", "GET"));
            }
        }
Пример #2
0
 public CausalityReportQuery(Guid workFlowGuid, int pageNumber, int pageSize, DateTime searchFrom, DateTime searchTo, int facilityId, CausalityCriteria causalityCriteria) : this()
 {
     WorkFlowGuid      = workFlowGuid;
     PageNumber        = pageNumber;
     PageSize          = pageSize;
     SearchFrom        = searchFrom;
     SearchTo          = searchTo;
     FacilityId        = facilityId;
     CausalityCriteria = causalityCriteria;
 }
Пример #3
0
        public string CreateCausalityReportResourceUri(Guid workFlowGuid,
                                                       ResourceUriType type,
                                                       int pageNumber,
                                                       int pageSize,
                                                       int facilityId,
                                                       CausalityCriteria causalityCriteria)
        {
            switch (type)
            {
            case ResourceUriType.PreviousPage:
                return(_linkGenerator.GetPathByName(_accessor.HttpContext, "GetCausalityReport",
                                                    new
                {
                    workFlowGuid,
                    pageNumber = pageNumber - 1,
                    pageSize = pageSize,
                    FacilityId = facilityId,
                    CausalityCriteria = causalityCriteria
                }));

            case ResourceUriType.NextPage:
                return(_linkGenerator.GetPathByName(_accessor.HttpContext, "GetCausalityReport",
                                                    new
                {
                    workFlowGuid,
                    pageNumber = pageNumber + 1,
                    pageSize = pageSize,
                    FacilityId = facilityId,
                    CausalityCriteria = causalityCriteria
                }));

            case ResourceUriType.Current:
            default:
                return(_linkGenerator.GetPathByName(_accessor.HttpContext, "GetCausalityReport",
                                                    new
                {
                    workFlowGuid,
                    pageNumber = pageNumber,
                    pageSize = pageSize,
                    FacilityId = facilityId,
                    CausalityCriteria = causalityCriteria
                }));
            }
        }
Пример #4
0
        public ICollection <CausalityNotSetList> GetCausalityNotSetItems(DateTime searchFrom, DateTime searchTo, CausalityConfigType causalityConfig, int facilityId, CausalityCriteria causalityCriteria)
        {
            string where = facilityId > 0 ? " AND pf.Facility_Id = " + facilityId.ToString() : "";
            switch (causalityConfig)
            {
            case CausalityConfigType.BothScales:
                where += (causalityCriteria == CausalityCriteria.CausalitySet) ? " AND rim.NaranjoCausality IS NOT NULL AND rim.WhoCausality IS NOT NULL " : " AND (rim.NaranjoCausality IS NULL OR rim.WhoCausality IS NULL) ";
                break;

            case CausalityConfigType.WHOScale:
                where += (causalityCriteria == CausalityCriteria.CausalitySet) ? " AND rim.WhoCausality IS NOT NULL " : " AND rim.WhoCausality IS NULL ";
                break;

            case CausalityConfigType.NaranjoScale:
                where += (causalityCriteria == CausalityCriteria.CausalitySet) ? " AND rim.NaranjoCausality IS NOT NULL " : " AND rim.NaranjoCausality IS NULL ";
                break;
            }

            string sql = string.Format(@"
                SELECT p.Id AS Patient_Id, p.FirstName, p.Surname, pce.SourceTerminologyMedDra AS AdverseEvent, pce.OnsetDate, rim.NaranjoCausality, rim.WhoCausality, rim.MedicationIdentifier, pce.[Istheadverseeventserious?] AS Serious 
                    FROM ReportInstance ri
		                INNER JOIN MetaPatientClinicalEvent pce ON ri.ContextGuid = pce.PatientClinicalEventGuid 
		                INNER JOIN Patient p on pce.Patient_Id = p.Id
                        INNER JOIN PatientFacility pf ON pf.Id = (select top 1 Id from PatientFacility ipf where ipf.Patient_Id = p.Id and ipf.EnrolledDate <= GETDATE() order by ipf.EnrolledDate desc, ipf.Id desc)
                        INNER JOIN ReportInstanceMedication rim ON ri.Id = rim.ReportInstance_Id 
                WHERE pce.OnsetDate BETWEEN '{0}' AND '{1}' 
	                AND p.Archived = 0 {2} 
                ORDER BY pce.OnsetDate asc ", searchFrom.ToString("yyyy-MM-dd"), searchTo.ToString("yyyy-MM-dd"), where);

            SqlParameter[] parameters = new SqlParameter[0];
            return(_unitOfWork.Repository <CausalityNotSetList>().ExecuteSql(sql, parameters));
        }