示例#1
0
 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);
 }
示例#2
0
 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);
 }
示例#3
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")
     });
 }
示例#4
0
        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);
        }
示例#5
0
        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);
        }