private void RemoveClinicalCaseSignedComment( ClinicalCaseSignedCommentDto dto, ClinicalCase clinicalCase, ClinicalCaseSignedComment clinicalCaseSignedComment) { clinicalCase.DeleteSignedComment(clinicalCaseSignedComment); }
private void AddSpecialInitiative(LookupValueDto specialInitiativeDto, ClinicalCase clinicalCase) { var specialInitiative = _mappingHelper.MapLookupField <SpecialInitiative> (specialInitiativeDto); var clinicalCaseSpecialInitiative = new ClinicalCaseSpecialInitiative(specialInitiative); clinicalCase.AddSpecialInitiative(clinicalCaseSpecialInitiative); }
/// <summary> /// Initializes a new instance of the <see cref="Visit"/> class. /// </summary> /// <param name="staff">The staff.</param> /// <param name="appointmentDateTimeRange">The appointment date time range.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="visitStatus">The visit status.</param> /// <param name="placeOfService">The place of service.</param> /// <param name="name">The name.</param> /// <param name="cptCode">The CPT code.</param> protected internal Visit(Staff staff, DateTimeRange appointmentDateTimeRange, ClinicalCase clinicalCase, VisitStatus visitStatus, Location placeOfService, string name, string cptCode) : base(staff, appointmentDateTimeRange) { Check.IsNotNull(clinicalCase, "Clinical case is required."); Check.IsNotNull(visitStatus, "Visit status is required."); Check.IsNotNull(placeOfService, "Location is required."); Check.IsNotNull(name, "Name is required."); Check.IsNotNull(cptCode, "CptCode is required."); if (visitStatus.WellKnownName != WellKnownNames.VisitModule.VisitStatus.Scheduled) { throw new ArgumentException("Visits must always be created as scheduled visits."); } _clinicalCase = clinicalCase; _visitStatus = visitStatus; _serviceLocation = placeOfService; _name = name; _cptCode = cptCode; _activities = new List <Activity> (); _problems = new List <VisitProblem> (); }
private Problem BuildProblem(ClinicalCase clinicalCase, CodedConcept problemCode) { var problem = new Problem(clinicalCase, problemCode); Session.SaveOrUpdate(problem); return(problem); }
private void AddPriorityPopulation(LookupValueDto priorityPopulationDto, ClinicalCase clinicalCase) { var priorityPopulation = _mappingHelper.MapLookupField <PriorityPopulation> (priorityPopulationDto); var clinicalCasePriorityPopulation = new ClinicalCasePriorityPopulation(priorityPopulation); clinicalCase.AddPriorityPopulation(clinicalCasePriorityPopulation); }
private ClinicalCase BuildClinicalCase(Patient patient, Location location, long clinicalCaseNumber) { var clinicalCase = new ClinicalCase(patient, new ClinicalCaseProfileBuilder().WithInitialLocation(location), clinicalCaseNumber); Session.SaveOrUpdate(clinicalCase); return(clinicalCase); }
/// <summary> /// Initializes a new instance of the <see cref="Visit"/> class. /// </summary> /// <param name="staff">The staff.</param> /// <param name="appointmentDateTimeRange">The appointment date time range.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="visitStatus">The visit status.</param> /// <param name="placeOfService">The place of service.</param> /// <param name="name">The name.</param> /// <param name="cptCode">The CPT code.</param> protected internal Visit(Staff staff, DateTimeRange appointmentDateTimeRange, ClinicalCase clinicalCase, VisitStatus visitStatus, Location placeOfService, string name, string cptCode ) : base(staff, appointmentDateTimeRange) { Check.IsNotNull ( clinicalCase, "Clinical case is required." ); Check.IsNotNull ( visitStatus, "Visit status is required." ); Check.IsNotNull ( placeOfService, "Location is required." ); Check.IsNotNull ( name, "Name is required." ); Check.IsNotNull ( cptCode, "CptCode is required." ); if ( visitStatus.WellKnownName != WellKnownNames.VisitModule.VisitStatus.Scheduled ) { throw new ArgumentException ( "Visits must always be created as scheduled visits." ); } _clinicalCase = clinicalCase; _visitStatus = visitStatus; _serviceLocation = placeOfService; _name = name; _cptCode = cptCode; _activities = new List<Activity> (); _problems = new List<VisitProblem> (); }
/// <summary> /// Processes the single aggregate. /// </summary> /// <param name="dto">The dto to process.</param> /// <param name="clinicalCase">The clinical case.</param> /// <returns>A <see cref="System.Boolean"/></returns> protected override bool ProcessSingleAggregate(ClinicalCaseAdmissionDto dto, ClinicalCase clinicalCase) { var admittedByStaff = dto.AdmittedByStaff != null?Session.Load <Staff> (dto.AdmittedByStaff.Key) : null; clinicalCase.Admit(new ClinicalCaseAdmission(dto.AdmissionDate, admittedByStaff, dto.AdmissionNote)); return(true); }
private void ChangeClinicalCaseSignedComment( ClinicalCaseSignedCommentDto dto, ClinicalCase clinicalCase, ClinicalCaseSignedComment clinicalCaseSignedComment) { RemoveClinicalCaseSignedComment(dto, clinicalCase, clinicalCaseSignedComment); AddClinicalCaseSignedComment(dto, clinicalCase); }
/// <summary> /// Creates the problem. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="problemCodeCodedConcept">The problem code coded concept.</param> /// <returns>A Problem.</returns> public Problem CreateProblem( ClinicalCase clinicalCase, CodedConcept problemCodeCodedConcept) { var problem = new Problem ( clinicalCase, problemCodeCodedConcept); _problemRepository.MakePersistent ( problem ); return problem; }
/// <summary> /// Processes the single aggregate. /// </summary> /// <param name="dto">The dto to process.</param> /// <param name="clinicalCase">The clinical case.</param> /// <returns>A <see cref="System.Boolean"/></returns> protected override bool ProcessSingleAggregate(ClinicalCaseProfileDto dto, ClinicalCase clinicalCase) { _mappingResult &= ReviseProfile(dto, clinicalCase); _mappingResult &= MapSignedComments(dto, clinicalCase); _mappingResult &= MapSpecialInitiatives(dto, clinicalCase); _mappingResult &= MapPriorityPopulations(dto, clinicalCase); return(_mappingResult); }
/// <summary> /// Processes the single aggregate. /// </summary> /// <param name="dto">The dto to process.</param> /// <param name="clinicalCase">The clinical case.</param> /// <returns>A <see cref="System.Boolean"/></returns> protected override bool ProcessSingleAggregate(ClinicalCaseStatusDto dto, ClinicalCase clinicalCase) { var clinicalCaseStatus = _mappingHelper.MapLookupField <ClinicalCaseStatus> (dto.ClinicalCaseStatus); clinicalCase.UpdateStatus(clinicalCaseStatus); clinicalCase.Close(new ClinicalCaseCloseInfo(dto.ClinicalCaseCloseDate, dto.ClinicalCaseClosingNote)); return(true); }
/// <summary> /// Creates the immunization. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>An immunization.</returns> public Immunization CreateImmunization(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { var activityType = _lookupValueRepository.GetLookupByWellKnownName <ActivityType>(WellKnownNames.VisitModule.ActivityType.Immunization); var immunization = new Immunization(clinicalCase, activityType, provenance, activityDateTimeRange); _immunizationRepository.MakePersistent(immunization); return(immunization); }
/// <summary> /// Initializes a new instance of the <see cref="Activity"/> class. /// </summary> /// <param name="visit">The visit.</param> /// <param name="activityType">Type of the activity.</param> protected internal Activity( Visit visit, ActivityType activityType ) { Check.IsNotNull ( visit, "Visit is required." ); Check.IsNotNull ( activityType, "Activity Type is required." ); _visit = visit; _clinicalCase = visit.ClinicalCase; _activityType = activityType; _activityDateTimeRange = visit.AppointmentDateTimeRange; }
/// <summary> /// Processes the single aggregate. /// </summary> /// <param name="dto">The dto to process.</param> /// <param name="clinicalCase">The clinical case.</param> /// <returns>A <see cref="System.Boolean"/></returns> protected override bool ProcessSingleAggregate(ClinicalCaseDischargeDto dto, ClinicalCase clinicalCase) { var dischargedByStaff = dto.DischargedByStaff != null?Session.Load <Staff> (dto.DischargedByStaff.Key) : null; var dischargeReason = _mappingHelper.MapLookupField <DischargeReason> (dto.DischargeReason); clinicalCase.Discharge(new ClinicalCaseDischarge(dto.DischargeDate, dto.DischargeNote, dischargeReason, dischargedByStaff)); return(true); }
/// <summary> /// Initializes a new instance of the <see cref="Problem"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="problemCodeCodedConcept">The problem code coded concept.</param> protected internal Problem( ClinicalCase clinicalCase, CodedConcept problemCodeCodedConcept ) { Check.IsNotNull ( clinicalCase, "Clinical case is required." ); Check.IsNotNull ( problemCodeCodedConcept, "Problem code coded concept is required." ); _clinicalCase = clinicalCase; _problemCodeCodedConcept = problemCodeCodedConcept; }
/// <summary> /// Creates the lab specimen. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>A LabSpecimen.</returns> public LabSpecimen CreateLabSpecimen(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { var type = _lookupValueRepository.GetLookupByWellKnownName <VisitModule.ActivityType>(ActivityType.LabSpecimen); var labSpecimen = new LabSpecimen(clinicalCase, type, provenance, activityDateTimeRange); _labSpecimenRepository.MakePersistent(labSpecimen); return(labSpecimen); }
/// <summary> /// Initializes a new instance of the <see cref="Activity"/> class. /// </summary> /// <param name="visit">The visit.</param> /// <param name="activityType">Type of the activity.</param> protected internal Activity(Visit visit, ActivityType activityType) { Check.IsNotNull(visit, "Visit is required."); Check.IsNotNull(activityType, "Activity Type is required."); _visit = visit; _clinicalCase = visit.ClinicalCase; _activityType = activityType; _activityDateTimeRange = visit.AppointmentDateTimeRange; }
/// <summary> /// Creates the vital sign. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>Vital Sign</returns> public VitalSign CreateVitalSign(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { var type = _lookupValueRepository.GetLookupByWellKnownName <ActivityType> (WellKnownNames.VisitModule.ActivityType.VitalSign); var vitalSign = new VitalSign(clinicalCase, type, provenance, activityDateTimeRange); _vitalSignRepository.MakePersistent(vitalSign); return(vitalSign); }
/// <summary> /// Initializes a new instance of the <see cref="Activity"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="activityType">Type of the activity.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> protected internal Activity(ClinicalCase clinicalCase, ActivityType activityType, Provenance provenance, DateTimeRange activityDateTimeRange) { Check.IsNotNull(clinicalCase, "Clinical Case is required."); Check.IsNotNull(provenance, "Provenance is required."); Check.IsNotNull(activityType, "Activity Type is required."); _clinicalCase = clinicalCase; _provenance = provenance; _activityType = activityType; _activityDateTimeRange = activityDateTimeRange; }
private bool MapSignedComments(ClinicalCaseProfileDto dto, ClinicalCase clinicalCase) { var result = new AggregateNodeCollectionMapper <ClinicalCaseSignedCommentDto, ClinicalCase, ClinicalCaseSignedComment> ( dto.SignedComments, clinicalCase, clinicalCase.SignedComments) .MapRemovedItem(RemoveClinicalCaseSignedComment) .MapAddedItem(AddClinicalCaseSignedComment) .MapChangedItem(ChangeClinicalCaseSignedComment) .Map(); return(result); }
/// <summary> /// Creates the visit. /// </summary> /// <param name="staff">The staff.</param> /// <param name="appointmentDateTimeRange">The appointment date time range.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="visitTemplate">The visit template.</param> /// <param name="serviceLocation">The service location.</param> /// <returns> /// A Visit. /// </returns> public Visit CreateVisit(Staff staff, DateTimeRange appointmentDateTimeRange, ClinicalCase clinicalCase, VisitTemplate visitTemplate, Location serviceLocation) { var visitStatus = _visitStatusRepository.GetByWellKnownName(WellKnownNames.VisitModule.VisitStatus.Scheduled); var visit = new Visit(staff, appointmentDateTimeRange, clinicalCase, visitStatus, serviceLocation, visitTemplate.Name, visitTemplate.CptCode); _visitRepository.MakePersistent(visit); return(visit); }
/// <summary> /// Creates the visit. /// </summary> /// <param name="staff">The staff.</param> /// <param name="appointmentDateTimeRange">The appointment date time range.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="visitTemplate">The visit template.</param> /// <param name="serviceLocation">The service location.</param> /// <returns> /// A Visit. /// </returns> public Visit CreateVisit(Staff staff, DateTimeRange appointmentDateTimeRange, ClinicalCase clinicalCase, VisitTemplate visitTemplate, Location serviceLocation ) { var visitStatus = _visitStatusRepository.GetByWellKnownName ( WellKnownNames.VisitModule.VisitStatus.Scheduled ); var visit = new Visit (staff, appointmentDateTimeRange, clinicalCase, visitStatus, serviceLocation, visitTemplate.Name, visitTemplate.CptCode ); _visitRepository.MakePersistent ( visit ); return visit; }
/// <summary> /// Initializes a new instance of the <see cref="ProgramEnrollment"/> class. /// </summary> /// <param name="programOffering">The program offering.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="enrollmentDate">The enrollment date.</param> /// <param name="enrollingStaff">The enrolling staff.</param> protected internal ProgramEnrollment(ProgramOffering programOffering, ClinicalCase clinicalCase, DateTime enrollmentDate, Staff enrollingStaff) : this() { Check.IsNotNull(programOffering, "Program Offering is required."); Check.IsNotNull(clinicalCase, "Clinical Case is required."); Check.IsNotNull(enrollmentDate, "Enrollment Date is required."); Check.IsNotNull(enrollingStaff, "Enrolling Staff is required."); _programOffering = programOffering; _clinicalCase = clinicalCase; _enrollmentDate = enrollmentDate; _enrollingStaff = enrollingStaff; }
/// <summary> /// Gets the HL7 message. /// </summary> /// <param name="keyValues">The key values.</param> /// <returns>A <see cref="System.String"/></returns> public string GetHl7Message(Dictionary <string, long> keyValues) { var problemKey = keyValues[HttpHandlerQueryStrings.ProblemKey]; var session = _sessionProvider.GetSession(); _messageLocalDateTime = DateTime.Now; _problem = session.Get <Problem> (keyValues[HttpHandlerQueryStrings.ProblemKey]); Check.IsNotNull(_problem, string.Format("Problem not found for key {0}.", problemKey)); // Derive a visit appointment date for a problem associated with multiple visits. // Return the first minimum Appointment.ScheduledStartDateTime and Visit.Key where the Problem.Key is found. var queryResult = session.CreateQuery( @"select min(v.AppointmentDateTimeRange.StartDateTime) as AppointmentStartDateTime, vp.Visit.Key as VisitKey from VisitProblem as vp join vp.Visit as v where vp.Problem.Key = :problemKey group by vp.Visit.Key") .SetParameter("problemKey", problemKey) .List(); _minimumVisitScheduledStartDateTime = ( DateTime )(( object[] )queryResult[0])[0]; _minimumVisitKey = ( long )(( object[] )queryResult[0])[1]; VerifyDerivedVisit(); _clinicalCase = _problem.ClinicalCase; _patient = _problem.ClinicalCase.Patient; var dto = new SyndromicSurveillanceDto { MshDto = GetMshDto(), PidDto = GetPidDto(), EVNDto = GetEvnDto(), PV1Dto = GetPv1Dto(), Observations = GetObservations(), PresentedProblems = GetPresentedProblems() }; var helper = IoC.CurrentContainer.Resolve <IMessageHelper <ADT_A01, SyndromicSurveillanceDto> > (); var factory = IoC.CurrentContainer.Resolve <MessageFactoryBase <ADT_A01, SyndromicSurveillanceDto> >(); AbstractMessage message; if (helper != null && factory != null) { message = factory.CreateMessage(dto); } else { throw new ArgumentException("HL7 message helper or factory instances were not created."); } return((new PipeParser()).Encode(message)); }
private bool MapSpecialInitiatives(ClinicalCaseProfileDto dto, ClinicalCase clinicalCase) { var specialInitiativeResult = new AggregateNodeLookupCollectionMapper <LookupValueDto, ClinicalCase, ClinicalCaseSpecialInitiative> ( dto.SpecialInitiatives, clinicalCase, clinicalCase.SpecialInitiatives) .MapAddedItem(AddSpecialInitiative) .MapRemovedItem( (specialInitiativeDto, localClinicalCase, specialInitiative) => localClinicalCase.RemoveSpecialInitiative(specialInitiative)) .FindCollectionEntity((pr, key) => clinicalCase.SpecialInitiatives.FirstOrDefault(r => r.SpecialInitiative.Key == key)) .Map(); return(specialInitiativeResult); }
private bool MapPriorityPopulations(ClinicalCaseProfileDto dto, ClinicalCase clinicalCase) { var priorityPopulationResult = new AggregateNodeLookupCollectionMapper <LookupValueDto, ClinicalCase, ClinicalCasePriorityPopulation> ( dto.PriorityPopulations, clinicalCase, clinicalCase.PriorityPopulations) .MapAddedItem(AddPriorityPopulation) .MapRemovedItem( (priorityPopulationDto, localClinicalCase, priorityPopulation) => localClinicalCase.RemovePriorityPopulation(priorityPopulation)) .FindCollectionEntity((pr, key) => clinicalCase.PriorityPopulations.FirstOrDefault(r => r.PriorityPopulation.Key == key)) .Map(); return(priorityPopulationResult); }
public void CreateClinicalCase_GivenValidArguments_Succeeds() { var clinicalCaseRepositoryMock = new Mock <IClinicalCaseRepository> (); var clinicalCaseFactory = new ClinicalCaseFactory( clinicalCaseRepositoryMock.Object); var patient = new Mock <Patient> (); var location = new Mock <Location> (); ClinicalCase clinicalCase = clinicalCaseFactory.CreateClinicalCase( patient.Object, new ClinicalCaseProfileBuilder().WithInitialLocation(location.Object)); Assert.IsNotNull(clinicalCase); }
/// <summary> /// Creates the clinical case. /// </summary> /// <param name="patient">The patient.</param> /// <param name="clinicalCaseProfile">The clinical case profile.</param> /// <returns>A ClinicalCase.</returns> public ClinicalCase CreateClinicalCase( Patient patient, ClinicalCaseProfile clinicalCaseProfile ) { Check.IsNotNull(patient, "Patient is required."); Check.IsNotNull(clinicalCaseProfile, "Clinical case profile is required."); long mostRecentCaseNumber = _clinicalCaseRepository.GetMostRecentCaseNumber ( patient.Key ); var clinicalCase = new ClinicalCase(patient, clinicalCaseProfile, mostRecentCaseNumber); _clinicalCaseRepository.MakePersistent ( clinicalCase ); return clinicalCase; }
private bool ReviseProfile(ClinicalCaseProfileDto dto, ClinicalCase clinicalCase) { var initialLocation = Session.Load <Location> (dto.InitialLocation.Key); var performedByStaff = dto.PerformedByStaff != null?Session.Load <Staff> (dto.PerformedByStaff.Key) : null; var referralType = _mappingHelper.MapLookupField <ReferralType> (dto.ReferralType); var initialContactMethod = _mappingHelper.MapLookupField <InitialContactMethod> (dto.InitialContactMethod); var profile = new ClinicalCaseProfileBuilder() .WithClinicalCaseStartDate(dto.ClinicalCaseStartDate) .WithInitialContactMethod(initialContactMethod) .WithInitialLocation(initialLocation) .WithPatientPresentingProblemNote(dto.PatientPresentingProblemNote) .WithPerformedByStaff(performedByStaff) .WithReferralType(referralType); clinicalCase.ReviseClinicalCaseProfile(profile); return(true); }
/// <summary> /// Creates the program enrollment. /// </summary> /// <param name="programOffering">The program offering.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="enrollmentDate">The enrollment date.</param> /// <param name="enrollingStaff">The enrolling staff.</param> /// <returns> /// A ProgramEnrollment. /// </returns> public ProgramEnrollment CreateProgramEnrollment(ProgramOffering programOffering, ClinicalCase clinicalCase, DateTime enrollmentDate, Staff enrollingStaff) { Check.IsNotNull(programOffering, "Program Offering is required."); Check.IsNotNull(clinicalCase, "Clinical Case is required."); Check.IsNotNull(enrollmentDate, "Enrollment Date is required."); Check.IsNotNull(enrollingStaff, "Enrolling Staff is required."); var newProgramEnrollment = new ProgramEnrollment ( programOffering, clinicalCase, enrollmentDate, enrollingStaff ); ProgramEnrollment createdProgramEnrollment = null; DomainRuleEngine.CreateRuleEngine ( newProgramEnrollment, "CreateProgramEnrollmentRuleSet" ) .WithContext ( enrollmentDate ) .WithContext ( enrollingStaff ) .Execute ( () => { _programEnrollmentRepository.MakePersistent(newProgramEnrollment); createdProgramEnrollment = newProgramEnrollment; }); return createdProgramEnrollment; }
private ClinicalCase BuildClinicalCase( Patient patient, Location location, long clinicalCaseNumber ) { var clinicalCase = new ClinicalCase ( patient, new ClinicalCaseProfileBuilder().WithInitialLocation(location), clinicalCaseNumber ); Session.SaveOrUpdate ( clinicalCase ); return clinicalCase; }
/// <summary> /// Creates the activity. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>An Activity.</returns> public Activity CreateActivity(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { return(CreateImmunization(clinicalCase, provenance, activityDateTimeRange)); }
private Problem BuildProblem( ClinicalCase clinicalCase, CodedConcept problemCode ) { var problem = new Problem ( clinicalCase, problemCode ); Session.SaveOrUpdate ( problem ); return problem; }
/// <summary> /// Creates the program enrollment. /// </summary> /// <param name="programOffering">The program offering.</param> /// <param name="clinicalCase">The clinical case.</param> /// <param name="enrollmentDate">The enrollment date.</param> /// <param name="enrollingStaff">The enrolling staff.</param> /// <returns> /// A ProgramEnrollment. /// </returns> public ProgramEnrollment CreateProgramEnrollment(ProgramOffering programOffering, ClinicalCase clinicalCase, DateTime enrollmentDate, Staff enrollingStaff) { Check.IsNotNull(programOffering, "Program Offering is required."); Check.IsNotNull(clinicalCase, "Clinical Case is required."); Check.IsNotNull(enrollmentDate, "Enrollment Date is required."); Check.IsNotNull(enrollingStaff, "Enrolling Staff is required."); var newProgramEnrollment = new ProgramEnrollment(programOffering, clinicalCase, enrollmentDate, enrollingStaff); ProgramEnrollment createdProgramEnrollment = null; DomainRuleEngine.CreateRuleEngine(newProgramEnrollment, "CreateProgramEnrollmentRuleSet") .WithContext(enrollmentDate) .WithContext(enrollingStaff) .Execute(() => { _programEnrollmentRepository.MakePersistent(newProgramEnrollment); createdProgramEnrollment = newProgramEnrollment; }); return(createdProgramEnrollment); }
private Visit BuildScheduledVisit( Staff staff, DateTimeRange appointmentDateTimeRange, ClinicalCase clinicalCase, Problem problem = null ) { var visitTemplate = new VisitTemplate ( SafeHarborAgency, "Initial Behavioral Health - Adult", "99204" ); Session.SaveOrUpdate ( visitTemplate ); var visit = new Visit ( staff, appointmentDateTimeRange, clinicalCase, ScheduledVisitStatus, SafeHarborLocation, visitTemplate.Name, visitTemplate.CptCode ); if ( problem != null ) { visit.AddProblem ( problem ); } Session.SaveOrUpdate ( visit ); return visit; }
/// <summary> /// Initializes a new instance of the <see cref="VitalSign"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="activityType">Type of the activity.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> protected internal VitalSign(ClinicalCase clinicalCase, ActivityType activityType, Provenance provenance, DateTimeRange activityDateTimeRange) : base(clinicalCase, activityType, provenance, activityDateTimeRange) { _bloodPressures = new List<BloodPressure> (); _heartRates = new List<HeartRate> (); }
/// <summary> /// Initializes a new instance of the <see cref="LabSpecimen"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="activityType">Type of the activity.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> protected internal LabSpecimen(ClinicalCase clinicalCase, ActivityType activityType, Provenance provenance, DateTimeRange activityDateTimeRange) : base(clinicalCase, activityType, provenance, activityDateTimeRange) { _labTests = new List<LabTest>(); }
/// <summary> /// Creates the immunization. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>An immunization.</returns> public Immunization CreateImmunization(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { var activityType = _lookupValueRepository.GetLookupByWellKnownName<ActivityType>(WellKnownNames.VisitModule.ActivityType.Immunization); var immunization = new Immunization(clinicalCase, activityType, provenance, activityDateTimeRange); _immunizationRepository.MakePersistent(immunization); return immunization; }
/// <summary> /// Initializes a new instance of the <see cref="VitalSign"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="activityType">Type of the activity.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> protected internal VitalSign(ClinicalCase clinicalCase, ActivityType activityType, Provenance provenance, DateTimeRange activityDateTimeRange) : base(clinicalCase, activityType, provenance, activityDateTimeRange) { _bloodPressures = new List <BloodPressure> (); _heartRates = new List <HeartRate> (); }
private Visit BuildCheckedInVisit( Staff staff, DateTimeRange appointmentDateTimeRange, ClinicalCase clinicalCase, Problem problem = null ) { Visit visit = BuildScheduledVisit ( staff, appointmentDateTimeRange, clinicalCase, problem ); visit.CheckIn ( new DateTime ( 2002, 3, 28, 9, 0, 0 ) ); Session.SaveOrUpdate ( visit ); return visit; }
/// <summary> /// Creates the activity. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns> /// An Activity. /// </returns> public Activity CreateActivity( ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange ) { return CreateVitalSign ( clinicalCase, provenance, activityDateTimeRange ); }
/// <summary> /// Creates the vital sign. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>Vital Sign</returns> public VitalSign CreateVitalSign( ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange ) { var type = _lookupValueRepository.GetLookupByWellKnownName<ActivityType> ( WellKnownNames.VisitModule.ActivityType.VitalSign ); var vitalSign = new VitalSign ( clinicalCase, type, provenance, activityDateTimeRange ); _vitalSignRepository.MakePersistent ( vitalSign ); return vitalSign; }
/// <summary> /// Gets the HL7 message. /// </summary> /// <param name="keyValues">The key values.</param> /// <returns>A <see cref="System.String"/></returns> public string GetHl7Message( Dictionary<string, long> keyValues ) { var problemKey = keyValues[HttpHandlerQueryStrings.ProblemKey]; var session = _sessionProvider.GetSession (); _messageLocalDateTime = DateTime.Now; _problem = session.Get<Problem> ( keyValues[HttpHandlerQueryStrings.ProblemKey] ); Check.IsNotNull ( _problem, string.Format ( "Problem not found for key {0}.", problemKey ) ); // Derive a visit appointment date for a problem associated with multiple visits. // Return the first minimum Appointment.ScheduledStartDateTime and Visit.Key where the Problem.Key is found. var queryResult = session.CreateQuery ( @"select min(v.AppointmentDateTimeRange.StartDateTime) as AppointmentStartDateTime, vp.Visit.Key as VisitKey from VisitProblem as vp join vp.Visit as v where vp.Problem.Key = :problemKey group by vp.Visit.Key" ) .SetParameter ( "problemKey", problemKey ) .List (); _minimumVisitScheduledStartDateTime = ( DateTime )( ( object[] )queryResult[0] )[0]; _minimumVisitKey = ( long )( ( object[] )queryResult[0] )[1]; VerifyDerivedVisit (); _clinicalCase = _problem.ClinicalCase; _patient = _problem.ClinicalCase.Patient; var dto = new SyndromicSurveillanceDto { MshDto = GetMshDto (), PidDto = GetPidDto (), EVNDto = GetEvnDto (), PV1Dto = GetPv1Dto (), Observations = GetObservations (), PresentedProblems = GetPresentedProblems () }; var helper = IoC.CurrentContainer.Resolve<IMessageHelper<ADT_A01, SyndromicSurveillanceDto>> (); var factory = IoC.CurrentContainer.Resolve<MessageFactoryBase<ADT_A01, SyndromicSurveillanceDto>>(); AbstractMessage message; if ( helper != null && factory != null ) { message = factory.CreateMessage ( dto ); } else { throw new ArgumentException ( "HL7 message helper or factory instances were not created." ); } return ( new PipeParser () ).Encode ( message ); }
/// <summary> /// Creates the activity. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>An Activity.</returns> public Activity CreateActivity(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { return CreateImmunization(clinicalCase, provenance, activityDateTimeRange); }
private void AddClinicalCaseSignedComment(ClinicalCaseSignedCommentDto dto, ClinicalCase clinicalCase) { var staff = Session.Load <Staff> (dto.Staff.Key); clinicalCase.AddSignedComment(new ClinicalCaseSignedComment(staff, DateTime.UtcNow, dto.SignedNote)); }
/// <summary> /// Destroys the clinical case. /// </summary> /// <param name="clinicalCase">The clinical case.</param> public void DestroyClinicalCase( ClinicalCase clinicalCase ) { _clinicalCaseRepository.MakeTransient ( clinicalCase ); }
/// <summary> /// Initializes a new instance of the <see cref="Immunization"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="activityType">Type of the activity.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> protected internal Immunization(ClinicalCase clinicalCase, ActivityType activityType, Provenance provenance, DateTimeRange activityDateTimeRange) : base(clinicalCase, activityType, provenance, activityDateTimeRange) { }
/// <summary> /// Initializes a new instance of the <see cref="LabSpecimen"/> class. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="activityType">Type of the activity.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> protected internal LabSpecimen(ClinicalCase clinicalCase, ActivityType activityType, Provenance provenance, DateTimeRange activityDateTimeRange) : base(clinicalCase, activityType, provenance, activityDateTimeRange) { _labTests = new List <LabTest>(); }
/// <summary> /// Creates the lab specimen. /// </summary> /// <param name="clinicalCase">The clinical case.</param> /// <param name="provenance">The provenance.</param> /// <param name="activityDateTimeRange">The activity date time range.</param> /// <returns>A LabSpecimen.</returns> public LabSpecimen CreateLabSpecimen(ClinicalCase clinicalCase, Provenance provenance, DateTimeRange activityDateTimeRange) { var type = _lookupValueRepository.GetLookupByWellKnownName<VisitModule.ActivityType>(ActivityType.LabSpecimen); var labSpecimen = new LabSpecimen(clinicalCase, type, provenance, activityDateTimeRange); _labSpecimenRepository.MakePersistent(labSpecimen); return labSpecimen; }