Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/main/java/net/datafaker/Faker.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import net.datafaker.providers.base.BaseProviders;
import net.datafaker.providers.entertainment.EntertainmentProviders;
import net.datafaker.providers.food.FoodProviders;
import net.datafaker.providers.healthcare.HealthcareProviders;
import net.datafaker.providers.sport.SportProviders;
import net.datafaker.providers.videogame.VideoGameProviders;
import net.datafaker.service.FakeValuesService;
Expand All @@ -13,7 +14,7 @@
import java.util.Locale;
import java.util.Random;

public class Faker extends BaseFaker implements BaseProviders, SportProviders, FoodProviders, EntertainmentProviders, VideoGameProviders {
public class Faker extends BaseFaker implements BaseProviders, SportProviders, FoodProviders, EntertainmentProviders, VideoGameProviders, HealthcareProviders {
public Faker() {
}

Expand Down
23 changes: 23 additions & 0 deletions src/main/java/net/datafaker/providers/base/Medical.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,20 @@

/**
* @since 0.8.0
* @deprecated since 2.3.0. This faker is deprecated due to migration
* to healthcare-specific aggregated into {@link net.datafaker.providers.healthcare.HealthcareFaker} fakers with similar methods.
*/
@Deprecated(since = "2.3.0", forRemoval = true)
Copy link
Collaborator

@snuyanzin snuyanzin Apr 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are going to remove it
what is the replacement for Medical#diseaseName and Medical#diagnosisCode?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will add it in next PR, cause it touches Disease which I mentioned.

public class Medical extends AbstractProvider<BaseProviders> {

protected Medical(BaseProviders faker) {
super(faker);
}

/**
* @deprecated since 2.3.0. Use {@link net.datafaker.providers.healthcare.Medication#drugName()} instead.
*/
@Deprecated(since = "2.3.0", forRemoval = true)
public String medicineName() {
return resolve("medical.medicine_name");
}
Expand All @@ -17,10 +24,18 @@ public String diseaseName() {
return resolve("medical.disease_name");
}

/**
* @deprecated since 2.3.0. Use {@link net.datafaker.providers.healthcare.CareProvider#hospitalName()} instead.
*/
@Deprecated(since = "2.3.0", forRemoval = true)
public String hospitalName() {
return resolve("medical.hospital_name");
}

/**
* @deprecated since 2.3.0. Use {@link net.datafaker.providers.healthcare.Observation#symptom()} instead
*/
@Deprecated(since = "2.3.0", forRemoval = true)
public String symptoms() {
return resolve("medical.symptoms");
}
Expand All @@ -30,11 +45,19 @@ public String diagnosisCode() {
return faker.regexify(regex);
}

/**
* @deprecated since 2.3.0. Use {@link net.datafaker.providers.healthcare.MedicalProcedure#icd10()} instead.
*/
@Deprecated(since = "2.3.0", forRemoval = true)
public String procedureCode() {
String regex = resolve("medical.procedure_code.icd10");
return faker.regexify(regex);
}

/**
* @deprecated since 2.3.0. Use {@link net.datafaker.providers.healthcare.CareProvider#medicalProfession()} instead.
*/
@Deprecated(since = "2.3.0", forRemoval = true)
public String medicalProfession() {
return resolve("medical.medical_professions");
}
Expand Down
20 changes: 20 additions & 0 deletions src/main/java/net/datafaker/providers/healthcare/CareProvider.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package net.datafaker.providers.healthcare;

import net.datafaker.providers.base.AbstractProvider;

/**
* @since 2.3.0
*/
public class CareProvider extends AbstractProvider<HealthcareProviders> {
protected CareProvider(HealthcareProviders faker) {
super(faker);
}

public String hospitalName() {
return resolve("healthcare.care_provider.hospital_name");
}

public String medicalProfession() {
return resolve("healthcare.care_provider.medical_profession");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package net.datafaker.providers.healthcare;

import net.datafaker.providers.base.BaseFaker;
import net.datafaker.service.FakeValuesService;
import net.datafaker.service.FakerContext;
import net.datafaker.service.RandomService;

import java.util.Locale;
import java.util.Random;

/**
* @since 2.3.0
*/
public class HealthcareFaker extends BaseFaker implements HealthcareProviders {
public HealthcareFaker() {
super();
}

public HealthcareFaker(Locale locale) {
super(locale);
}

public HealthcareFaker(Random random) {
super(random);
}

public HealthcareFaker(Locale locale, RandomService randomService) {
super(locale, randomService);
}

public HealthcareFaker(FakeValuesService fakeValuesService, FakerContext context) {
super(fakeValuesService, context);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package net.datafaker.providers.healthcare;

import net.datafaker.providers.base.ProviderRegistration;

/**
* @since 2.3.0
*/
public interface HealthcareProviders extends ProviderRegistration {

default CareProvider careProvider() {
return getProvider(CareProvider.class, CareProvider::new);
}

default Medication medication() {
return getProvider(Medication.class, Medication::new);
}

default MedicalProcedure medicalProcedure() {
return getProvider(MedicalProcedure.class, MedicalProcedure::new);
}

default Observation observation() {
return getProvider(Observation.class, Observation::new);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package net.datafaker.providers.healthcare;

import net.datafaker.providers.base.AbstractProvider;

/**
* @since 2.3.0
*/
public class MedicalProcedure extends AbstractProvider<HealthcareProviders> {
protected MedicalProcedure(HealthcareProviders faker) {
super(faker);
}

public String icd10() {
String regex = resolve("healthcare.medical_procedure.icd10");
return faker.regexify(regex);
}
}
16 changes: 16 additions & 0 deletions src/main/java/net/datafaker/providers/healthcare/Medication.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package net.datafaker.providers.healthcare;

import net.datafaker.providers.base.AbstractProvider;

/**
* @since 2.3.0
*/
public class Medication extends AbstractProvider<HealthcareProviders> {
protected Medication(HealthcareProviders faker) {
super(faker);
}

public String drugName() {
return resolve("healthcare.medication.drug_name");
}
}
16 changes: 16 additions & 0 deletions src/main/java/net/datafaker/providers/healthcare/Observation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package net.datafaker.providers.healthcare;

import net.datafaker.providers.base.AbstractProvider;

/**
* @since 2.3.0
*/
public class Observation extends AbstractProvider<HealthcareProviders> {
protected Observation(HealthcareProviders faker) {
super(faker);
}

public String symptom() {
return resolve("healthcare.observation.symptom");
}
}
7 changes: 6 additions & 1 deletion src/main/java/net/datafaker/service/files/EnFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,12 @@ public String getPath() {
new EnFile("world_of_warcraft.yml", "games"),
new EnFile("zelda.yml", "games"),

new EnFile("phone_number.yml", "cell_phone") // load phone number again with a different path
new EnFile("phone_number.yml", "cell_phone"), // load phone number again with a different path

new EnFile("care_provider.yml", "healthcare"),
new EnFile("medical_procedure.yml", "healthcare"),
new EnFile("medication.yml", "healthcare"),
new EnFile("observation.yml", "healthcare")
);

private static final List<EnFile> ALL_FILES;
Expand Down
Loading