public async Task <ZqSignResponseBase> RegisterPersonAsync(RegisterPersonRequest request) { const string path = "personReg"; var response = await GetResponseAsync <ZqSignResponseBase, RegisterPersonRequest>(path, request); return(response); }
public async Task RegisterPersonTest() { var request = new RegisterPersonRequest { UserCode = DateTime.Now.ToFileTimeUtc().ToString(), Name = "无厘头", Mobile = "15011111111", IdCardNo = "321111198602212564" }; var response = await Service.RegisterPersonAsync(request); Assert.NotNull(response); Assert.Equal(ErrorCode.Success, response.Code); }
public async Task RegisterPersonExistedTest() { var request = new RegisterPersonRequest { UserCode = "2018091316200001", Name = "无厘头", Mobile = "15011111111", IdCardNo = "321111198602212564" }; var response = await Service.RegisterPersonAsync(request); Assert.NotNull(response); Assert.Equal(ErrorCode.UserCodeExisted, response.Code); }
public abstract Task <HttpStatus[][]> RegisterPerson(string token, RegisterPersonRequest registerPersonRequest);
/// <summary> /// Send visitor registered in rychlejsie or downloaded from eHealth to eHealth system /// /// Returns true if successful, False or Exception if not successful /// </summary> /// <param name="visitor"></param> /// <param name="placeProviderId"></param> /// <param name="placeProviderRepository"></param> /// <param name="configuration"></param> /// <returns></returns> public async Task <bool> SendResultToEHealth( Visitor visitor, string placeProviderId, IPlaceProviderRepository placeProviderRepository, IConfiguration configuration ) { await SendResultToEHealth(visitor); var data = await MakeSurePlaceProviderIsAuthenticated(placeProviderId, placeProviderRepository); if (visitor.PersonType == "foreign") { throw new Exception("Only residents supported right now"); } // session is valid if (string.IsNullOrEmpty(visitor.RC)) { throw new Exception("Error - invalid personal number"); } var check = await this.CheckPerson(data.LoginPayload.Session.Token, visitor.RC); if (check?.CfdId > 0) { // ok } else { if (configuration["AllowEHealthRegistration"] != "1") { return(false); } var personData = await RegisterPerson(data.LoginPayload.Session.Token, RegisterPersonRequest.FromVisitor(visitor, data.LoginPayload)); check = await this.CheckPerson(data.LoginPayload.Session.Token, visitor.RC); if (check?.CfdId > 0) { // ok } else { throw new Exception("Unable to process visitor in ehealth - not found in search"); } } var driveIn = await DriveInQueue(data.LoginPayload.Session.Token, DateTimeOffset.Now); var place = driveIn.Payload.OrderByDescending(p => p.DailyCapacity).FirstOrDefault(); var t = DateTimeOffset.Now.ToString("yyyy-MM-dd HH:mm:ss"); var input = new DriveInRequest() { DesignatedDriveinCity = place.City, DesignatedDriveinId = place.Id, DesignatedDriveinLatitude = place.Latitude, DesignatedDriveinLongitude = place.Longitude, DesignatedDriveinScheduledAt = t, DesignatedDriveinStreetName = place.StreetName, DesignatedDriveinStreetNumber = place.StreetNumber, DesignatedDriveinTitle = place.Title, DesignatedDriveinZipCode = place.ZipCode, MedicalAssessedAt = t, State = "SD", Triage = "2", }; var addPersonToPlace = await AddPersonToTestingPlace(data.LoginPayload.Session.Token, check.CfdId, input); if (addPersonToPlace != "1") { throw new Exception("Unexpected error returned while adding person to place"); } string result; switch (visitor.Result) { case TestResult.PositiveWaitingForCertificate: case TestResult.PositiveCertificateTaken: result = "POSITIVE"; break; case TestResult.NegativeWaitingForCertificate: case TestResult.NegativeCertificateTaken: case TestResult.NegativeCertificateTakenTypo: result = "NEGATIVE"; break; default: throw new Exception($"Unable to determine state: {visitor.Result}"); } var setResultRequest = new CovidMassTesting.Model.EZdravie.Request.SetResultRequest() { Id = 0, UserId = data.LoginPayload.User.Id, CovidFormDataId = check.CfdId, FinalResult = result, ScreeningFinalResult = result, SpecimenId = visitor.TestingSet, SpecimenCollectedAt = visitor.TestingTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), ScreeningEndedAt = visitor.TestResultTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? visitor.TestingTime.Value.ToString("yyyy-MM-dd HH:mm:ss"), }; var setResult = await SetTestResultToPerson(data.LoginPayload.Session.Token, setResultRequest); return(setResult[0][0].HttpStatusCode == 200); }
public override async Task <HttpStatus[][]> RegisterPerson(string token, RegisterPersonRequest registerPersonRequest) { var request = new RestSharp.RestRequest($"api/sp_v0/sp_covid_form_cc_iu", RestSharp.Method.POST, RestSharp.DataFormat.Json); request.AddHeader("Authorization", $"Bearer {token}"); //request.AddJsonBody(setResultRequest); //var body = Serialize(setResultRequest); //request.AddParameter("application/json", body, ParameterType.RequestBody); request.AddParameter("nUser_id", registerPersonRequest.nUser_id); request.AddParameter("vPass", registerPersonRequest.vPass); request.AddParameter("vState", registerPersonRequest.vState); request.AddParameter("nTriage", registerPersonRequest.nTriage); request.AddParameter("vFirst_name", registerPersonRequest.vFirst_name); request.AddParameter("vLast_name", registerPersonRequest.vLast_name); request.AddParameter("vBirth_number", registerPersonRequest.vBirth_number); request.AddParameter("vNationality", registerPersonRequest.vNationality); request.AddParameter("vPatient_localization", registerPersonRequest.vPatient_localization); request.AddParameter("vEmail", registerPersonRequest.vEmail); request.AddParameter("vPhone_number", registerPersonRequest.vPhone_number); request.AddParameter("vEmail_secondary", registerPersonRequest.vEmail_secondary); request.AddParameter("vPhone_number_secondary", registerPersonRequest.vPhone_number_secondary); request.AddParameter("vMunicipality", registerPersonRequest.vMunicipality); request.AddParameter("vStreet", registerPersonRequest.vStreet); request.AddParameter("vStreet_number", registerPersonRequest.vStreet_number); request.AddParameter("vPostal_code", registerPersonRequest.vPostal_code); request.AddParameter("vCountry", registerPersonRequest.vCountry); request.AddParameter("vAddress_note", registerPersonRequest.vAddress_note); request.AddParameter("vTemporary_municipality", registerPersonRequest.vTemporary_municipality); request.AddParameter("vTemporary_street", registerPersonRequest.vTemporary_street); request.AddParameter("vTemporary_street_number", registerPersonRequest.vTemporary_street_number); request.AddParameter("vTemporary_postal_code", registerPersonRequest.vTemporary_postal_code); request.AddParameter("vTemporary_country", registerPersonRequest.vTemporary_country); request.AddParameter("vTemporary_address_note", registerPersonRequest.vTemporary_address_note); request.AddParameter("nHas_high_temperature", registerPersonRequest.nHas_high_temperature); request.AddParameter("nHas_continuous_cough", registerPersonRequest.nHas_continuous_cough); request.AddParameter("nHas_fatigue", registerPersonRequest.nHas_fatigue); request.AddParameter("nHas_head_aches", registerPersonRequest.nHas_head_aches); request.AddParameter("nHas_hinge_ache", registerPersonRequest.nHas_hinge_ache); request.AddParameter("nHas_cold", registerPersonRequest.nHas_cold); request.AddParameter("nHas_thrown_up", registerPersonRequest.nHas_thrown_up); request.AddParameter("nHas_heart_palpitation", registerPersonRequest.nHas_heart_palpitation); request.AddParameter("nHas_diarrhea", registerPersonRequest.nHas_diarrhea); request.AddParameter("nHas_ague", registerPersonRequest.nHas_ague); request.AddParameter("nHas_mucus_cough", registerPersonRequest.nHas_mucus_cough); request.AddParameter("nHas_dyspnoea", registerPersonRequest.nHas_dyspnoea); request.AddParameter("nHas_come_from_abroad", registerPersonRequest.nHas_come_from_abroad); request.AddParameter("nHas_influenza_vaccination", registerPersonRequest.nHas_influenza_vaccination); request.AddParameter("nHas_clinical_symptoms", registerPersonRequest.nHas_clinical_symptoms); request.AddParameter("vInfluenza_vaccine_name", registerPersonRequest.vInfluenza_vaccine_name); request.AddParameter("dInfluenza_vaccine_date", registerPersonRequest.dInfluenza_vaccine_date); request.AddParameter("vOther_symptoms", registerPersonRequest.vOther_symptoms); request.AddParameter("dInfection_start", registerPersonRequest.dInfection_start); request.AddParameter("vDrugs_used", registerPersonRequest.vDrugs_used); request.AddParameter("vSimilar_disease_occurence", registerPersonRequest.vSimilar_disease_occurence); request.AddParameter("vTravel_history", registerPersonRequest.vTravel_history); request.AddParameter("nPersons_count_at_home", registerPersonRequest.nPersons_count_at_home); request.AddParameter("nHome_rooms_number", registerPersonRequest.nHome_rooms_number); request.AddParameter("nContagion_concern_reasons", registerPersonRequest.nContagion_concern_reasons); request.AddParameter("vQuarantine_reason", registerPersonRequest.vQuarantine_reason); request.AddParameter("dQuarantine_start", registerPersonRequest.dQuarantine_start); request.AddParameter("dQuarantine_end", registerPersonRequest.dQuarantine_end); request.AddParameter("vQuarantine_country", registerPersonRequest.vQuarantine_country); request.AddParameter("vQuarantine_address_note", registerPersonRequest.vQuarantine_address_note); request.AddParameter("vHealth_insurance_company", registerPersonRequest.vHealth_insurance_company); request.AddParameter("nLongitude", registerPersonRequest.nLongitude); request.AddParameter("nLatitude", registerPersonRequest.nLatitude); request.AddParameter("nShare_my_location", registerPersonRequest.nShare_my_location); request.AddParameter("nSend_data_to_my_gp", registerPersonRequest.nSend_data_to_my_gp); request.AddParameter("vGp_name", registerPersonRequest.vGp_name); request.AddParameter("vGp_email", registerPersonRequest.vGp_email); request.AddParameter("vCar_plate_number", registerPersonRequest.vCar_plate_number); request.AddParameter("nDesignated_drivein_id", registerPersonRequest.nDesignated_drivein_id); request.AddParameter("vDesignated_drivein_city", registerPersonRequest.vDesignated_drivein_city); request.AddParameter("vDesignated_drivein_street_name", registerPersonRequest.vDesignated_drivein_street_name); request.AddParameter("vDesignated_drivein_street_number", registerPersonRequest.vDesignated_drivein_street_number); request.AddParameter("vDesignated_drivein_zip_code", registerPersonRequest.vDesignated_drivein_zip_code); request.AddParameter("nDesignated_drivein_longitude", registerPersonRequest.nDesignated_drivein_longitude); request.AddParameter("nDesignated_drivein_latitude", registerPersonRequest.nDesignated_drivein_latitude); request.AddParameter("dDesignated_drivein_scheduled_at", registerPersonRequest.dDesignated_drivein_scheduled_at); request.AddParameter("dDrivein_entered_at", registerPersonRequest.dDrivein_entered_at); request.AddParameter("dDrivein_left_at", registerPersonRequest.dDrivein_left_at); request.AddParameter("nAssesor_person_id", registerPersonRequest.nAssesor_person_id); request.AddParameter("dOperator_assessed_at", registerPersonRequest.dOperator_assessed_at); request.AddParameter("dMedical_assessed_at", registerPersonRequest.dMedical_assessed_at); request.AddParameter("nIs_smoking", registerPersonRequest.nIs_smoking); request.AddParameter("dFever_started_at", registerPersonRequest.dFever_started_at); request.AddParameter("dFever_ended_at", registerPersonRequest.dFever_ended_at); request.AddParameter("nHas_lost_sense_of_smell", registerPersonRequest.nHas_lost_sense_of_smell); request.AddParameter("nHas_lost_sense_of_taste", registerPersonRequest.nHas_lost_sense_of_taste); request.AddParameter("nHas_pneumonia", registerPersonRequest.nHas_pneumonia); request.AddParameter("nHas_hypertension", registerPersonRequest.nHas_hypertension); request.AddParameter("nHas_cardiovascular_disease", registerPersonRequest.nHas_cardiovascular_disease); request.AddParameter("nHas_diabetes", registerPersonRequest.nHas_diabetes); request.AddParameter("nHas_oncological_disease", registerPersonRequest.nHas_oncological_disease); request.AddParameter("vPerson_identification_number", registerPersonRequest.vPerson_identification_number); request.AddParameter("nHas_severe_health_disability", registerPersonRequest.nHas_severe_health_disability); request.AddParameter("vHealth_disability_id_card", registerPersonRequest.vHealth_disability_id_card); request.AddParameter("nHas_disability_pension", registerPersonRequest.nHas_disability_pension); request.AddParameter("vIce_first_name", registerPersonRequest.vIce_first_name); request.AddParameter("vIce_last_name", registerPersonRequest.vIce_last_name); request.AddParameter("vIce_email", registerPersonRequest.vIce_email); request.AddParameter("vIce_phone", registerPersonRequest.vIce_phone); request.AddParameter("vEntered_by_first_name", registerPersonRequest.vEntered_by_first_name); request.AddParameter("vEntered_by_last_name", registerPersonRequest.vEntered_by_last_name); request.AddParameter("vEntered_by_email", registerPersonRequest.vEntered_by_email); request.AddParameter("vEntered_by_phone", registerPersonRequest.vEntered_by_phone); request.AddParameter("nQuarantine_center_id", registerPersonRequest.nQuarantine_center_id); request.AddParameter("dBirth_date", registerPersonRequest.dBirth_date); request.AddParameter("vGender", registerPersonRequest.vGender); request.AddParameter("nHas_planned_operation", registerPersonRequest.nHas_planned_operation); request.AddParameter("dOperation_planned_at", registerPersonRequest.dOperation_planned_at); request.AddParameter("nOperation_planned_in_subject_id", registerPersonRequest.nOperation_planned_in_subject_id); request.AddParameter("vOperation_planned_in_name", registerPersonRequest.vOperation_planned_in_name); request.AddParameter("vHas_come_from_country", registerPersonRequest.vHas_come_from_country); request.AddParameter("dEntry_from_abroad_planned_at", registerPersonRequest.dEntry_from_abroad_planned_at); request.AddParameter("vPersonal_id", registerPersonRequest.vPersonal_id); request.AddParameter("vQuarantine_municipality", registerPersonRequest.vQuarantine_municipality); request.AddParameter("vQuarantine_street", registerPersonRequest.vQuarantine_street); request.AddParameter("vQuarantine_street_number", registerPersonRequest.vQuarantine_street_number); request.AddParameter("vQuarantine_postal_code", registerPersonRequest.vQuarantine_postal_code); request.AddParameter("nHas_been_exposed", registerPersonRequest.nHas_been_exposed); request.AddParameter("nIs_mom_user", registerPersonRequest.nIs_mom_user); await Task.Delay(500); logger.LogInformation($"eHealth: Register person {registerPersonRequest.vBirth_number.GetSHA256Hash()}"); var response = await client.ExecuteAsync(request); if (!response.IsSuccessful) { throw new Exception(response.Content); } return(JsonConvert.DeserializeObject <Model.EZdravie.Payload.HttpStatus[][]>(response.Content, deserializeSettings)); }