private Hl7.Fhir.Model.Extension GetAntigenStatus(Hl7.Fhir.Model.Immunization fhirImmunization) { foreach (Hl7.Fhir.Model.Extension extension in fhirImmunization.Extension) { if (extension.Url.EndsWith("#immunization/antigenstatus")) { return(extension); } } return(null); }
private int GetDoseNumber(Hl7.Fhir.Model.Immunization fhirImmunization) { Hl7.Fhir.Model.Extension antigenStatus = GetAntigenStatus(fhirImmunization); foreach (Hl7.Fhir.Model.Extension extension in antigenStatus.Extension) { if (extension.Url.EndsWith("doseNumber")) { return(int.Parse(extension.Value.ToString())); } } return(0); }
private Immunization GetImmunization(Hl7.Fhir.Model.Bundle bundle) { Hl7.Fhir.Model.Immunization fhirImmunization = GetFhirImmunization(bundle); Hl7.Fhir.Model.Patient fhirPatient = GetFhirPatient(bundle); return(new Immunization { RecordIdentifier = fhirImmunization.Id, Patient = GetPatient(fhirPatient), LotNumber = fhirImmunization.LotNumber, DoseNumber = GetDoseNumber(fhirImmunization), CountryOfVaccination = "CA", VaccinationDate = DateTime.Parse(fhirImmunization.Date).ToString("yyyy-MM-dd") }); }
private Hl7.Fhir.Model.Immunization GenerateImmunization(Model.Request.RegistrarInmunizationRequest request) { var patient = GeneratePatient(request); var location = GenerateLocation(request); var vaccineCode = GenerateVaccineCode(request); var immu = new Hl7.Fhir.Model.Immunization(); //immu.Meta = new Hl7.Fhir.Model.Meta(); //immu.Meta.Profile = new string[] { "http://fhir.msal.gov.ar/StructureDefinition/NomivacImmunization" }; immu.Contained = new List <Hl7.Fhir.Model.Resource> { patient, location }; immu.Status = Hl7.Fhir.Model.Immunization.ImmunizationStatusCodes.Completed; immu.VaccineCode = vaccineCode; immu.Patient = new Hl7.Fhir.Model.ResourceReference { Reference = "#Patient-01" }; immu.Occurrence = new Hl7.Fhir.Model.FhirDateTime { Value = request.AplicacionVacunaFecha.ToString("yyyy-MM-dd") }; immu.PrimarySource = true; immu.Location = new Hl7.Fhir.Model.ResourceReference { Reference = "#Location-01" }; immu.LotNumber = request.VacunaLote; if (request.VacunaFechaVencimiento.HasValue) { immu.ExpirationDate = request.VacunaFechaVencimiento.Value.ToString("yyyy-MM-dd"); } immu.ProtocolApplied.Add(GenerateProtocolApplied(request)); return(immu); }
public async Task <IEnumerable <Immunization> > GetImmunizations(string patientId, string accessToken = null) { IList <Immunization> immunizations = new List <Immunization>(); MedicalLogResponse response = await _medicalLogClient.GetMedicalLogAsync(new Guid(patientId)); FhirJsonParser fjp = new(); Hl7.Fhir.Model.Bundle bundle = fjp.Parse <Hl7.Fhir.Model.Bundle>(response.FhirBundle); if (bundle != null) { Hl7.Fhir.Model.Patient fhirPatient = GetFhirPatient(bundle); Hl7.Fhir.Model.Bundle subBundle = GetFhirSubBundle(bundle); if (subBundle != null) { foreach (Hl7.Fhir.Model.Bundle.EntryComponent ec in subBundle.Entry) { if (ec?.Resource is Hl7.Fhir.Model.Immunization) { Hl7.Fhir.Model.Immunization fhirImmunization = ec.Resource as Hl7.Fhir.Model.Immunization; Immunization immunization = new Immunization { RecordIdentifier = patientId + "_" + fhirImmunization.Id, Patient = GetPatient(fhirPatient), LotNumber = fhirImmunization.LotNumber, DoseNumber = GetDoseNumber(fhirImmunization), CountryOfVaccination = "CA", VaccinationDate = DateTime.Parse(fhirImmunization.Date).ToString("yyyy-MM-dd"), Vaccine = GetVaccine(), Facility = fhirImmunization.Location.Display }; immunizations.Add(immunization); } } } } return(immunizations); }