From c18f0d80b165db60e311e1a67b9cfe2a5522636d Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 21:45:49 +0000 Subject: [PATCH 1/2] [fern-generated] Update SDK Generated by Fern CLI Version: unknown Generators: - fernapi/fern-java-sdk: 4.9.2 --- .fern/metadata.json | 8 +- build.gradle | 4 +- .../com/phenoml/api/core/ClientOptions.java | 4 +- .../fhir2omop/types/CareSiteRow.java | 240 ++++++++++ .../types/ConditionOccurrenceRow.java | 26 ++ .../resources/fhir2omop/types/DeathRow.java | 266 +++++++++++ .../fhir2omop/types/DrugExposureRow.java | 26 ++ .../fhir2omop/types/LocationRow.java | 396 ++++++++++++++++ .../fhir2omop/types/MeasurementRow.java | 26 ++ .../fhir2omop/types/ObservationPeriodRow.java | 214 +++++++++ .../fhir2omop/types/ObservationRow.java | 26 ++ .../resources/fhir2omop/types/OmopTables.java | 132 +++++- .../resources/fhir2omop/types/PersonRow.java | 26 ++ .../types/ProcedureOccurrenceRow.java | 26 ++ .../fhir2omop/types/ProviderRow.java | 422 ++++++++++++++++++ .../fhir2omop/types/VisitOccurrenceRow.java | 52 +++ ...Fhir2OmopWireTest_testCreate_response.json | 15 + 17 files changed, 1900 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/phenoml/api/resources/fhir2omop/types/CareSiteRow.java create mode 100644 src/main/java/com/phenoml/api/resources/fhir2omop/types/DeathRow.java create mode 100644 src/main/java/com/phenoml/api/resources/fhir2omop/types/LocationRow.java create mode 100644 src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationPeriodRow.java create mode 100644 src/main/java/com/phenoml/api/resources/fhir2omop/types/ProviderRow.java diff --git a/.fern/metadata.json b/.fern/metadata.json index df860bb..d26be09 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -1,5 +1,5 @@ { - "cliVersion": "5.50.4", + "cliVersion": "5.50.5", "generatorName": "fernapi/fern-java-sdk", "generatorVersion": "4.9.2", "generatorConfig": { @@ -10,10 +10,10 @@ "enable-wire-tests": true, "publish-to": "central" }, - "originGitCommit": "e2c477c4583f8f9e7d0d1a5b5591c1aa8cabef10", + "originGitCommit": "7b0a1643f56f1ba4ead44e0a90a5547a31fa6831", "originGitCommitIsDirty": true, "invokedBy": "ci", "requestedVersion": "AUTO", "ciProvider": "unknown", - "sdkVersion": "17.7.0" -} + "sdkVersion": "0.0.0-fern-placeholder" +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index c80eee6..e9f35ce 100644 --- a/build.gradle +++ b/build.gradle @@ -48,7 +48,7 @@ java { group = 'com.phenoml.maven' -version = '17.7.0' +version = '0.0.0-fern-placeholder' jar { dependsOn(":generatePomFileForMavenPublication") @@ -79,7 +79,7 @@ publishing { maven(MavenPublication) { groupId = 'com.phenoml.maven' artifactId = 'phenoml-java-sdk' - version = '17.7.0' + version = '0.0.0-fern-placeholder' from components.java pom { name = 'phenoml' diff --git a/src/main/java/com/phenoml/api/core/ClientOptions.java b/src/main/java/com/phenoml/api/core/ClientOptions.java index 882d3b8..b1f15e2 100644 --- a/src/main/java/com/phenoml/api/core/ClientOptions.java +++ b/src/main/java/com/phenoml/api/core/ClientOptions.java @@ -38,10 +38,10 @@ private ClientOptions( this.headers.putAll(headers); this.headers.putAll(new HashMap() { { - put("User-Agent", "com.phenoml.maven:phenoml-java-sdk/17.7.0"); + put("User-Agent", "com.phenoml.maven:phenoml-java-sdk/0.0.0-fern-placeholder"); put("X-Fern-Language", "JAVA"); put("X-Fern-SDK-Name", "com.phenoml.fern:api-sdk"); - put("X-Fern-SDK-Version", "17.7.0"); + put("X-Fern-SDK-Version", "0.0.0-fern-placeholder"); } }); this.headerSuppliers = headerSuppliers; diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/CareSiteRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/CareSiteRow.java new file mode 100644 index 0000000..95e1369 --- /dev/null +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/CareSiteRow.java @@ -0,0 +1,240 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.phenoml.api.resources.fhir2omop.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.phenoml.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = CareSiteRow.Builder.class) +public final class CareSiteRow { + private final Optional careSiteId; + + private final Optional careSiteName; + + private final Optional placeOfServiceConceptId; + + private final Optional locationId; + + private final Optional careSiteSourceValue; + + private final Optional placeOfServiceSourceValue; + + private final Map additionalProperties; + + private CareSiteRow( + Optional careSiteId, + Optional careSiteName, + Optional placeOfServiceConceptId, + Optional locationId, + Optional careSiteSourceValue, + Optional placeOfServiceSourceValue, + Map additionalProperties) { + this.careSiteId = careSiteId; + this.careSiteName = careSiteName; + this.placeOfServiceConceptId = placeOfServiceConceptId; + this.locationId = locationId; + this.careSiteSourceValue = careSiteSourceValue; + this.placeOfServiceSourceValue = placeOfServiceSourceValue; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("care_site_id") + public Optional getCareSiteId() { + return careSiteId; + } + + @JsonProperty("care_site_name") + public Optional getCareSiteName() { + return careSiteName; + } + + @JsonProperty("place_of_service_concept_id") + public Optional getPlaceOfServiceConceptId() { + return placeOfServiceConceptId; + } + + @JsonProperty("location_id") + public Optional getLocationId() { + return locationId; + } + + @JsonProperty("care_site_source_value") + public Optional getCareSiteSourceValue() { + return careSiteSourceValue; + } + + @JsonProperty("place_of_service_source_value") + public Optional getPlaceOfServiceSourceValue() { + return placeOfServiceSourceValue; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof CareSiteRow && equalTo((CareSiteRow) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(CareSiteRow other) { + return careSiteId.equals(other.careSiteId) + && careSiteName.equals(other.careSiteName) + && placeOfServiceConceptId.equals(other.placeOfServiceConceptId) + && locationId.equals(other.locationId) + && careSiteSourceValue.equals(other.careSiteSourceValue) + && placeOfServiceSourceValue.equals(other.placeOfServiceSourceValue); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.careSiteId, + this.careSiteName, + this.placeOfServiceConceptId, + this.locationId, + this.careSiteSourceValue, + this.placeOfServiceSourceValue); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional careSiteId = Optional.empty(); + + private Optional careSiteName = Optional.empty(); + + private Optional placeOfServiceConceptId = Optional.empty(); + + private Optional locationId = Optional.empty(); + + private Optional careSiteSourceValue = Optional.empty(); + + private Optional placeOfServiceSourceValue = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(CareSiteRow other) { + careSiteId(other.getCareSiteId()); + careSiteName(other.getCareSiteName()); + placeOfServiceConceptId(other.getPlaceOfServiceConceptId()); + locationId(other.getLocationId()); + careSiteSourceValue(other.getCareSiteSourceValue()); + placeOfServiceSourceValue(other.getPlaceOfServiceSourceValue()); + return this; + } + + @JsonSetter(value = "care_site_id", nulls = Nulls.SKIP) + public Builder careSiteId(Optional careSiteId) { + this.careSiteId = careSiteId; + return this; + } + + public Builder careSiteId(Long careSiteId) { + this.careSiteId = Optional.ofNullable(careSiteId); + return this; + } + + @JsonSetter(value = "care_site_name", nulls = Nulls.SKIP) + public Builder careSiteName(Optional careSiteName) { + this.careSiteName = careSiteName; + return this; + } + + public Builder careSiteName(String careSiteName) { + this.careSiteName = Optional.ofNullable(careSiteName); + return this; + } + + @JsonSetter(value = "place_of_service_concept_id", nulls = Nulls.SKIP) + public Builder placeOfServiceConceptId(Optional placeOfServiceConceptId) { + this.placeOfServiceConceptId = placeOfServiceConceptId; + return this; + } + + public Builder placeOfServiceConceptId(Long placeOfServiceConceptId) { + this.placeOfServiceConceptId = Optional.ofNullable(placeOfServiceConceptId); + return this; + } + + @JsonSetter(value = "location_id", nulls = Nulls.SKIP) + public Builder locationId(Optional locationId) { + this.locationId = locationId; + return this; + } + + public Builder locationId(Long locationId) { + this.locationId = Optional.ofNullable(locationId); + return this; + } + + @JsonSetter(value = "care_site_source_value", nulls = Nulls.SKIP) + public Builder careSiteSourceValue(Optional careSiteSourceValue) { + this.careSiteSourceValue = careSiteSourceValue; + return this; + } + + public Builder careSiteSourceValue(String careSiteSourceValue) { + this.careSiteSourceValue = Optional.ofNullable(careSiteSourceValue); + return this; + } + + @JsonSetter(value = "place_of_service_source_value", nulls = Nulls.SKIP) + public Builder placeOfServiceSourceValue(Optional placeOfServiceSourceValue) { + this.placeOfServiceSourceValue = placeOfServiceSourceValue; + return this; + } + + public Builder placeOfServiceSourceValue(String placeOfServiceSourceValue) { + this.placeOfServiceSourceValue = Optional.ofNullable(placeOfServiceSourceValue); + return this; + } + + public CareSiteRow build() { + return new CareSiteRow( + careSiteId, + careSiteName, + placeOfServiceConceptId, + locationId, + careSiteSourceValue, + placeOfServiceSourceValue, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ConditionOccurrenceRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ConditionOccurrenceRow.java index babf04b..2a6cce5 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ConditionOccurrenceRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ConditionOccurrenceRow.java @@ -36,6 +36,8 @@ public final class ConditionOccurrenceRow { private final Optional visitOccurrenceId; + private final Optional providerId; + private final Optional conditionSourceValue; private final Optional conditionSourceConceptId; @@ -53,6 +55,7 @@ private ConditionOccurrenceRow( Optional conditionEndDate, Optional conditionTypeConceptId, Optional visitOccurrenceId, + Optional providerId, Optional conditionSourceValue, Optional conditionSourceConceptId, Optional conditionStatusSourceValue, @@ -65,6 +68,7 @@ private ConditionOccurrenceRow( this.conditionEndDate = conditionEndDate; this.conditionTypeConceptId = conditionTypeConceptId; this.visitOccurrenceId = visitOccurrenceId; + this.providerId = providerId; this.conditionSourceValue = conditionSourceValue; this.conditionSourceConceptId = conditionSourceConceptId; this.conditionStatusSourceValue = conditionStatusSourceValue; @@ -111,6 +115,11 @@ public Optional getVisitOccurrenceId() { return visitOccurrenceId; } + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + @JsonProperty("condition_source_value") public Optional getConditionSourceValue() { return conditionSourceValue; @@ -146,6 +155,7 @@ private boolean equalTo(ConditionOccurrenceRow other) { && conditionEndDate.equals(other.conditionEndDate) && conditionTypeConceptId.equals(other.conditionTypeConceptId) && visitOccurrenceId.equals(other.visitOccurrenceId) + && providerId.equals(other.providerId) && conditionSourceValue.equals(other.conditionSourceValue) && conditionSourceConceptId.equals(other.conditionSourceConceptId) && conditionStatusSourceValue.equals(other.conditionStatusSourceValue); @@ -162,6 +172,7 @@ public int hashCode() { this.conditionEndDate, this.conditionTypeConceptId, this.visitOccurrenceId, + this.providerId, this.conditionSourceValue, this.conditionSourceConceptId, this.conditionStatusSourceValue); @@ -194,6 +205,8 @@ public static final class Builder { private Optional visitOccurrenceId = Optional.empty(); + private Optional providerId = Optional.empty(); + private Optional conditionSourceValue = Optional.empty(); private Optional conditionSourceConceptId = Optional.empty(); @@ -214,6 +227,7 @@ public Builder from(ConditionOccurrenceRow other) { conditionEndDate(other.getConditionEndDate()); conditionTypeConceptId(other.getConditionTypeConceptId()); visitOccurrenceId(other.getVisitOccurrenceId()); + providerId(other.getProviderId()); conditionSourceValue(other.getConditionSourceValue()); conditionSourceConceptId(other.getConditionSourceConceptId()); conditionStatusSourceValue(other.getConditionStatusSourceValue()); @@ -308,6 +322,17 @@ public Builder visitOccurrenceId(Long visitOccurrenceId) { return this; } + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + @JsonSetter(value = "condition_source_value", nulls = Nulls.SKIP) public Builder conditionSourceValue(Optional conditionSourceValue) { this.conditionSourceValue = conditionSourceValue; @@ -351,6 +376,7 @@ public ConditionOccurrenceRow build() { conditionEndDate, conditionTypeConceptId, visitOccurrenceId, + providerId, conditionSourceValue, conditionSourceConceptId, conditionStatusSourceValue, diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/DeathRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/DeathRow.java new file mode 100644 index 0000000..4dcbfef --- /dev/null +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/DeathRow.java @@ -0,0 +1,266 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.phenoml.api.resources.fhir2omop.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.phenoml.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = DeathRow.Builder.class) +public final class DeathRow { + private final Optional personId; + + private final Optional deathDate; + + private final Optional deathDatetime; + + private final Optional deathTypeConceptId; + + private final Optional causeConceptId; + + private final Optional causeSourceValue; + + private final Optional causeSourceConceptId; + + private final Map additionalProperties; + + private DeathRow( + Optional personId, + Optional deathDate, + Optional deathDatetime, + Optional deathTypeConceptId, + Optional causeConceptId, + Optional causeSourceValue, + Optional causeSourceConceptId, + Map additionalProperties) { + this.personId = personId; + this.deathDate = deathDate; + this.deathDatetime = deathDatetime; + this.deathTypeConceptId = deathTypeConceptId; + this.causeConceptId = causeConceptId; + this.causeSourceValue = causeSourceValue; + this.causeSourceConceptId = causeSourceConceptId; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("person_id") + public Optional getPersonId() { + return personId; + } + + @JsonProperty("death_date") + public Optional getDeathDate() { + return deathDate; + } + + @JsonProperty("death_datetime") + public Optional getDeathDatetime() { + return deathDatetime; + } + + @JsonProperty("death_type_concept_id") + public Optional getDeathTypeConceptId() { + return deathTypeConceptId; + } + + @JsonProperty("cause_concept_id") + public Optional getCauseConceptId() { + return causeConceptId; + } + + @JsonProperty("cause_source_value") + public Optional getCauseSourceValue() { + return causeSourceValue; + } + + @JsonProperty("cause_source_concept_id") + public Optional getCauseSourceConceptId() { + return causeSourceConceptId; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof DeathRow && equalTo((DeathRow) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(DeathRow other) { + return personId.equals(other.personId) + && deathDate.equals(other.deathDate) + && deathDatetime.equals(other.deathDatetime) + && deathTypeConceptId.equals(other.deathTypeConceptId) + && causeConceptId.equals(other.causeConceptId) + && causeSourceValue.equals(other.causeSourceValue) + && causeSourceConceptId.equals(other.causeSourceConceptId); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.personId, + this.deathDate, + this.deathDatetime, + this.deathTypeConceptId, + this.causeConceptId, + this.causeSourceValue, + this.causeSourceConceptId); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional personId = Optional.empty(); + + private Optional deathDate = Optional.empty(); + + private Optional deathDatetime = Optional.empty(); + + private Optional deathTypeConceptId = Optional.empty(); + + private Optional causeConceptId = Optional.empty(); + + private Optional causeSourceValue = Optional.empty(); + + private Optional causeSourceConceptId = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(DeathRow other) { + personId(other.getPersonId()); + deathDate(other.getDeathDate()); + deathDatetime(other.getDeathDatetime()); + deathTypeConceptId(other.getDeathTypeConceptId()); + causeConceptId(other.getCauseConceptId()); + causeSourceValue(other.getCauseSourceValue()); + causeSourceConceptId(other.getCauseSourceConceptId()); + return this; + } + + @JsonSetter(value = "person_id", nulls = Nulls.SKIP) + public Builder personId(Optional personId) { + this.personId = personId; + return this; + } + + public Builder personId(Long personId) { + this.personId = Optional.ofNullable(personId); + return this; + } + + @JsonSetter(value = "death_date", nulls = Nulls.SKIP) + public Builder deathDate(Optional deathDate) { + this.deathDate = deathDate; + return this; + } + + public Builder deathDate(String deathDate) { + this.deathDate = Optional.ofNullable(deathDate); + return this; + } + + @JsonSetter(value = "death_datetime", nulls = Nulls.SKIP) + public Builder deathDatetime(Optional deathDatetime) { + this.deathDatetime = deathDatetime; + return this; + } + + public Builder deathDatetime(String deathDatetime) { + this.deathDatetime = Optional.ofNullable(deathDatetime); + return this; + } + + @JsonSetter(value = "death_type_concept_id", nulls = Nulls.SKIP) + public Builder deathTypeConceptId(Optional deathTypeConceptId) { + this.deathTypeConceptId = deathTypeConceptId; + return this; + } + + public Builder deathTypeConceptId(Long deathTypeConceptId) { + this.deathTypeConceptId = Optional.ofNullable(deathTypeConceptId); + return this; + } + + @JsonSetter(value = "cause_concept_id", nulls = Nulls.SKIP) + public Builder causeConceptId(Optional causeConceptId) { + this.causeConceptId = causeConceptId; + return this; + } + + public Builder causeConceptId(Long causeConceptId) { + this.causeConceptId = Optional.ofNullable(causeConceptId); + return this; + } + + @JsonSetter(value = "cause_source_value", nulls = Nulls.SKIP) + public Builder causeSourceValue(Optional causeSourceValue) { + this.causeSourceValue = causeSourceValue; + return this; + } + + public Builder causeSourceValue(String causeSourceValue) { + this.causeSourceValue = Optional.ofNullable(causeSourceValue); + return this; + } + + @JsonSetter(value = "cause_source_concept_id", nulls = Nulls.SKIP) + public Builder causeSourceConceptId(Optional causeSourceConceptId) { + this.causeSourceConceptId = causeSourceConceptId; + return this; + } + + public Builder causeSourceConceptId(Long causeSourceConceptId) { + this.causeSourceConceptId = Optional.ofNullable(causeSourceConceptId); + return this; + } + + public DeathRow build() { + return new DeathRow( + personId, + deathDate, + deathDatetime, + deathTypeConceptId, + causeConceptId, + causeSourceValue, + causeSourceConceptId, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/DrugExposureRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/DrugExposureRow.java index c82620c..679b68b 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/DrugExposureRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/DrugExposureRow.java @@ -40,6 +40,8 @@ public final class DrugExposureRow { private final Optional visitOccurrenceId; + private final Optional providerId; + private final Optional drugSourceValue; private final Optional drugSourceConceptId; @@ -57,6 +59,7 @@ private DrugExposureRow( Optional stopReason, Optional sig, Optional visitOccurrenceId, + Optional providerId, Optional drugSourceValue, Optional drugSourceConceptId, Map additionalProperties) { @@ -70,6 +73,7 @@ private DrugExposureRow( this.stopReason = stopReason; this.sig = sig; this.visitOccurrenceId = visitOccurrenceId; + this.providerId = providerId; this.drugSourceValue = drugSourceValue; this.drugSourceConceptId = drugSourceConceptId; this.additionalProperties = additionalProperties; @@ -125,6 +129,11 @@ public Optional getVisitOccurrenceId() { return visitOccurrenceId; } + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + @JsonProperty("drug_source_value") public Optional getDrugSourceValue() { return drugSourceValue; @@ -157,6 +166,7 @@ private boolean equalTo(DrugExposureRow other) { && stopReason.equals(other.stopReason) && sig.equals(other.sig) && visitOccurrenceId.equals(other.visitOccurrenceId) + && providerId.equals(other.providerId) && drugSourceValue.equals(other.drugSourceValue) && drugSourceConceptId.equals(other.drugSourceConceptId); } @@ -174,6 +184,7 @@ public int hashCode() { this.stopReason, this.sig, this.visitOccurrenceId, + this.providerId, this.drugSourceValue, this.drugSourceConceptId); } @@ -209,6 +220,8 @@ public static final class Builder { private Optional visitOccurrenceId = Optional.empty(); + private Optional providerId = Optional.empty(); + private Optional drugSourceValue = Optional.empty(); private Optional drugSourceConceptId = Optional.empty(); @@ -229,6 +242,7 @@ public Builder from(DrugExposureRow other) { stopReason(other.getStopReason()); sig(other.getSig()); visitOccurrenceId(other.getVisitOccurrenceId()); + providerId(other.getProviderId()); drugSourceValue(other.getDrugSourceValue()); drugSourceConceptId(other.getDrugSourceConceptId()); return this; @@ -344,6 +358,17 @@ public Builder visitOccurrenceId(Long visitOccurrenceId) { return this; } + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + @JsonSetter(value = "drug_source_value", nulls = Nulls.SKIP) public Builder drugSourceValue(Optional drugSourceValue) { this.drugSourceValue = drugSourceValue; @@ -378,6 +403,7 @@ public DrugExposureRow build() { stopReason, sig, visitOccurrenceId, + providerId, drugSourceValue, drugSourceConceptId, additionalProperties); diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/LocationRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/LocationRow.java new file mode 100644 index 0000000..cb96ad3 --- /dev/null +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/LocationRow.java @@ -0,0 +1,396 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.phenoml.api.resources.fhir2omop.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.phenoml.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = LocationRow.Builder.class) +public final class LocationRow { + private final Optional locationId; + + private final Optional address1; + + private final Optional address2; + + private final Optional city; + + private final Optional state; + + private final Optional zip; + + private final Optional county; + + private final Optional locationSourceValue; + + private final Optional countryConceptId; + + private final Optional countrySourceValue; + + private final Optional latitude; + + private final Optional longitude; + + private final Map additionalProperties; + + private LocationRow( + Optional locationId, + Optional address1, + Optional address2, + Optional city, + Optional state, + Optional zip, + Optional county, + Optional locationSourceValue, + Optional countryConceptId, + Optional countrySourceValue, + Optional latitude, + Optional longitude, + Map additionalProperties) { + this.locationId = locationId; + this.address1 = address1; + this.address2 = address2; + this.city = city; + this.state = state; + this.zip = zip; + this.county = county; + this.locationSourceValue = locationSourceValue; + this.countryConceptId = countryConceptId; + this.countrySourceValue = countrySourceValue; + this.latitude = latitude; + this.longitude = longitude; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("location_id") + public Optional getLocationId() { + return locationId; + } + + @JsonProperty("address_1") + public Optional getAddress1() { + return address1; + } + + @JsonProperty("address_2") + public Optional getAddress2() { + return address2; + } + + @JsonProperty("city") + public Optional getCity() { + return city; + } + + @JsonProperty("state") + public Optional getState() { + return state; + } + + @JsonProperty("zip") + public Optional getZip() { + return zip; + } + + @JsonProperty("county") + public Optional getCounty() { + return county; + } + + @JsonProperty("location_source_value") + public Optional getLocationSourceValue() { + return locationSourceValue; + } + + @JsonProperty("country_concept_id") + public Optional getCountryConceptId() { + return countryConceptId; + } + + @JsonProperty("country_source_value") + public Optional getCountrySourceValue() { + return countrySourceValue; + } + + @JsonProperty("latitude") + public Optional getLatitude() { + return latitude; + } + + @JsonProperty("longitude") + public Optional getLongitude() { + return longitude; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof LocationRow && equalTo((LocationRow) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(LocationRow other) { + return locationId.equals(other.locationId) + && address1.equals(other.address1) + && address2.equals(other.address2) + && city.equals(other.city) + && state.equals(other.state) + && zip.equals(other.zip) + && county.equals(other.county) + && locationSourceValue.equals(other.locationSourceValue) + && countryConceptId.equals(other.countryConceptId) + && countrySourceValue.equals(other.countrySourceValue) + && latitude.equals(other.latitude) + && longitude.equals(other.longitude); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.locationId, + this.address1, + this.address2, + this.city, + this.state, + this.zip, + this.county, + this.locationSourceValue, + this.countryConceptId, + this.countrySourceValue, + this.latitude, + this.longitude); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional locationId = Optional.empty(); + + private Optional address1 = Optional.empty(); + + private Optional address2 = Optional.empty(); + + private Optional city = Optional.empty(); + + private Optional state = Optional.empty(); + + private Optional zip = Optional.empty(); + + private Optional county = Optional.empty(); + + private Optional locationSourceValue = Optional.empty(); + + private Optional countryConceptId = Optional.empty(); + + private Optional countrySourceValue = Optional.empty(); + + private Optional latitude = Optional.empty(); + + private Optional longitude = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(LocationRow other) { + locationId(other.getLocationId()); + address1(other.getAddress1()); + address2(other.getAddress2()); + city(other.getCity()); + state(other.getState()); + zip(other.getZip()); + county(other.getCounty()); + locationSourceValue(other.getLocationSourceValue()); + countryConceptId(other.getCountryConceptId()); + countrySourceValue(other.getCountrySourceValue()); + latitude(other.getLatitude()); + longitude(other.getLongitude()); + return this; + } + + @JsonSetter(value = "location_id", nulls = Nulls.SKIP) + public Builder locationId(Optional locationId) { + this.locationId = locationId; + return this; + } + + public Builder locationId(Long locationId) { + this.locationId = Optional.ofNullable(locationId); + return this; + } + + @JsonSetter(value = "address_1", nulls = Nulls.SKIP) + public Builder address1(Optional address1) { + this.address1 = address1; + return this; + } + + public Builder address1(String address1) { + this.address1 = Optional.ofNullable(address1); + return this; + } + + @JsonSetter(value = "address_2", nulls = Nulls.SKIP) + public Builder address2(Optional address2) { + this.address2 = address2; + return this; + } + + public Builder address2(String address2) { + this.address2 = Optional.ofNullable(address2); + return this; + } + + @JsonSetter(value = "city", nulls = Nulls.SKIP) + public Builder city(Optional city) { + this.city = city; + return this; + } + + public Builder city(String city) { + this.city = Optional.ofNullable(city); + return this; + } + + @JsonSetter(value = "state", nulls = Nulls.SKIP) + public Builder state(Optional state) { + this.state = state; + return this; + } + + public Builder state(String state) { + this.state = Optional.ofNullable(state); + return this; + } + + @JsonSetter(value = "zip", nulls = Nulls.SKIP) + public Builder zip(Optional zip) { + this.zip = zip; + return this; + } + + public Builder zip(String zip) { + this.zip = Optional.ofNullable(zip); + return this; + } + + @JsonSetter(value = "county", nulls = Nulls.SKIP) + public Builder county(Optional county) { + this.county = county; + return this; + } + + public Builder county(String county) { + this.county = Optional.ofNullable(county); + return this; + } + + @JsonSetter(value = "location_source_value", nulls = Nulls.SKIP) + public Builder locationSourceValue(Optional locationSourceValue) { + this.locationSourceValue = locationSourceValue; + return this; + } + + public Builder locationSourceValue(String locationSourceValue) { + this.locationSourceValue = Optional.ofNullable(locationSourceValue); + return this; + } + + @JsonSetter(value = "country_concept_id", nulls = Nulls.SKIP) + public Builder countryConceptId(Optional countryConceptId) { + this.countryConceptId = countryConceptId; + return this; + } + + public Builder countryConceptId(Long countryConceptId) { + this.countryConceptId = Optional.ofNullable(countryConceptId); + return this; + } + + @JsonSetter(value = "country_source_value", nulls = Nulls.SKIP) + public Builder countrySourceValue(Optional countrySourceValue) { + this.countrySourceValue = countrySourceValue; + return this; + } + + public Builder countrySourceValue(String countrySourceValue) { + this.countrySourceValue = Optional.ofNullable(countrySourceValue); + return this; + } + + @JsonSetter(value = "latitude", nulls = Nulls.SKIP) + public Builder latitude(Optional latitude) { + this.latitude = latitude; + return this; + } + + public Builder latitude(Double latitude) { + this.latitude = Optional.ofNullable(latitude); + return this; + } + + @JsonSetter(value = "longitude", nulls = Nulls.SKIP) + public Builder longitude(Optional longitude) { + this.longitude = longitude; + return this; + } + + public Builder longitude(Double longitude) { + this.longitude = Optional.ofNullable(longitude); + return this; + } + + public LocationRow build() { + return new LocationRow( + locationId, + address1, + address2, + city, + state, + zip, + county, + locationSourceValue, + countryConceptId, + countrySourceValue, + latitude, + longitude, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/MeasurementRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/MeasurementRow.java index ecbb2dd..8818fa3 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/MeasurementRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/MeasurementRow.java @@ -46,6 +46,8 @@ public final class MeasurementRow { private final Optional visitOccurrenceId; + private final Optional providerId; + private final Optional measurementSourceValue; private final Optional measurementSourceConceptId; @@ -70,6 +72,7 @@ private MeasurementRow( Optional rangeLow, Optional rangeHigh, Optional visitOccurrenceId, + Optional providerId, Optional measurementSourceValue, Optional measurementSourceConceptId, Optional unitSourceValue, @@ -88,6 +91,7 @@ private MeasurementRow( this.rangeLow = rangeLow; this.rangeHigh = rangeHigh; this.visitOccurrenceId = visitOccurrenceId; + this.providerId = providerId; this.measurementSourceValue = measurementSourceValue; this.measurementSourceConceptId = measurementSourceConceptId; this.unitSourceValue = unitSourceValue; @@ -163,6 +167,11 @@ public Optional getVisitOccurrenceId() { return visitOccurrenceId; } + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + @JsonProperty("measurement_source_value") public Optional getMeasurementSourceValue() { return measurementSourceValue; @@ -208,6 +217,7 @@ private boolean equalTo(MeasurementRow other) { && rangeLow.equals(other.rangeLow) && rangeHigh.equals(other.rangeHigh) && visitOccurrenceId.equals(other.visitOccurrenceId) + && providerId.equals(other.providerId) && measurementSourceValue.equals(other.measurementSourceValue) && measurementSourceConceptId.equals(other.measurementSourceConceptId) && unitSourceValue.equals(other.unitSourceValue) @@ -230,6 +240,7 @@ public int hashCode() { this.rangeLow, this.rangeHigh, this.visitOccurrenceId, + this.providerId, this.measurementSourceValue, this.measurementSourceConceptId, this.unitSourceValue, @@ -273,6 +284,8 @@ public static final class Builder { private Optional visitOccurrenceId = Optional.empty(); + private Optional providerId = Optional.empty(); + private Optional measurementSourceValue = Optional.empty(); private Optional measurementSourceConceptId = Optional.empty(); @@ -300,6 +313,7 @@ public Builder from(MeasurementRow other) { rangeLow(other.getRangeLow()); rangeHigh(other.getRangeHigh()); visitOccurrenceId(other.getVisitOccurrenceId()); + providerId(other.getProviderId()); measurementSourceValue(other.getMeasurementSourceValue()); measurementSourceConceptId(other.getMeasurementSourceConceptId()); unitSourceValue(other.getUnitSourceValue()); @@ -453,6 +467,17 @@ public Builder visitOccurrenceId(Long visitOccurrenceId) { return this; } + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + @JsonSetter(value = "measurement_source_value", nulls = Nulls.SKIP) public Builder measurementSourceValue(Optional measurementSourceValue) { this.measurementSourceValue = measurementSourceValue; @@ -512,6 +537,7 @@ public MeasurementRow build() { rangeLow, rangeHigh, visitOccurrenceId, + providerId, measurementSourceValue, measurementSourceConceptId, unitSourceValue, diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationPeriodRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationPeriodRow.java new file mode 100644 index 0000000..5536826 --- /dev/null +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationPeriodRow.java @@ -0,0 +1,214 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.phenoml.api.resources.fhir2omop.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.phenoml.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = ObservationPeriodRow.Builder.class) +public final class ObservationPeriodRow { + private final Optional observationPeriodId; + + private final Optional personId; + + private final Optional observationPeriodStartDate; + + private final Optional observationPeriodEndDate; + + private final Optional periodTypeConceptId; + + private final Map additionalProperties; + + private ObservationPeriodRow( + Optional observationPeriodId, + Optional personId, + Optional observationPeriodStartDate, + Optional observationPeriodEndDate, + Optional periodTypeConceptId, + Map additionalProperties) { + this.observationPeriodId = observationPeriodId; + this.personId = personId; + this.observationPeriodStartDate = observationPeriodStartDate; + this.observationPeriodEndDate = observationPeriodEndDate; + this.periodTypeConceptId = periodTypeConceptId; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("observation_period_id") + public Optional getObservationPeriodId() { + return observationPeriodId; + } + + @JsonProperty("person_id") + public Optional getPersonId() { + return personId; + } + + @JsonProperty("observation_period_start_date") + public Optional getObservationPeriodStartDate() { + return observationPeriodStartDate; + } + + @JsonProperty("observation_period_end_date") + public Optional getObservationPeriodEndDate() { + return observationPeriodEndDate; + } + + @JsonProperty("period_type_concept_id") + public Optional getPeriodTypeConceptId() { + return periodTypeConceptId; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ObservationPeriodRow && equalTo((ObservationPeriodRow) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ObservationPeriodRow other) { + return observationPeriodId.equals(other.observationPeriodId) + && personId.equals(other.personId) + && observationPeriodStartDate.equals(other.observationPeriodStartDate) + && observationPeriodEndDate.equals(other.observationPeriodEndDate) + && periodTypeConceptId.equals(other.periodTypeConceptId); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.observationPeriodId, + this.personId, + this.observationPeriodStartDate, + this.observationPeriodEndDate, + this.periodTypeConceptId); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional observationPeriodId = Optional.empty(); + + private Optional personId = Optional.empty(); + + private Optional observationPeriodStartDate = Optional.empty(); + + private Optional observationPeriodEndDate = Optional.empty(); + + private Optional periodTypeConceptId = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ObservationPeriodRow other) { + observationPeriodId(other.getObservationPeriodId()); + personId(other.getPersonId()); + observationPeriodStartDate(other.getObservationPeriodStartDate()); + observationPeriodEndDate(other.getObservationPeriodEndDate()); + periodTypeConceptId(other.getPeriodTypeConceptId()); + return this; + } + + @JsonSetter(value = "observation_period_id", nulls = Nulls.SKIP) + public Builder observationPeriodId(Optional observationPeriodId) { + this.observationPeriodId = observationPeriodId; + return this; + } + + public Builder observationPeriodId(Long observationPeriodId) { + this.observationPeriodId = Optional.ofNullable(observationPeriodId); + return this; + } + + @JsonSetter(value = "person_id", nulls = Nulls.SKIP) + public Builder personId(Optional personId) { + this.personId = personId; + return this; + } + + public Builder personId(Long personId) { + this.personId = Optional.ofNullable(personId); + return this; + } + + @JsonSetter(value = "observation_period_start_date", nulls = Nulls.SKIP) + public Builder observationPeriodStartDate(Optional observationPeriodStartDate) { + this.observationPeriodStartDate = observationPeriodStartDate; + return this; + } + + public Builder observationPeriodStartDate(String observationPeriodStartDate) { + this.observationPeriodStartDate = Optional.ofNullable(observationPeriodStartDate); + return this; + } + + @JsonSetter(value = "observation_period_end_date", nulls = Nulls.SKIP) + public Builder observationPeriodEndDate(Optional observationPeriodEndDate) { + this.observationPeriodEndDate = observationPeriodEndDate; + return this; + } + + public Builder observationPeriodEndDate(String observationPeriodEndDate) { + this.observationPeriodEndDate = Optional.ofNullable(observationPeriodEndDate); + return this; + } + + @JsonSetter(value = "period_type_concept_id", nulls = Nulls.SKIP) + public Builder periodTypeConceptId(Optional periodTypeConceptId) { + this.periodTypeConceptId = periodTypeConceptId; + return this; + } + + public Builder periodTypeConceptId(Long periodTypeConceptId) { + this.periodTypeConceptId = Optional.ofNullable(periodTypeConceptId); + return this; + } + + public ObservationPeriodRow build() { + return new ObservationPeriodRow( + observationPeriodId, + personId, + observationPeriodStartDate, + observationPeriodEndDate, + periodTypeConceptId, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationRow.java index 86f2408..8b17a9f 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ObservationRow.java @@ -42,6 +42,8 @@ public final class ObservationRow { private final Optional visitOccurrenceId; + private final Optional providerId; + private final Optional observationSourceValue; private final Optional observationSourceConceptId; @@ -64,6 +66,7 @@ private ObservationRow( Optional valueAsConceptId, Optional unitConceptId, Optional visitOccurrenceId, + Optional providerId, Optional observationSourceValue, Optional observationSourceConceptId, Optional unitSourceValue, @@ -80,6 +83,7 @@ private ObservationRow( this.valueAsConceptId = valueAsConceptId; this.unitConceptId = unitConceptId; this.visitOccurrenceId = visitOccurrenceId; + this.providerId = providerId; this.observationSourceValue = observationSourceValue; this.observationSourceConceptId = observationSourceConceptId; this.unitSourceValue = unitSourceValue; @@ -142,6 +146,11 @@ public Optional getVisitOccurrenceId() { return visitOccurrenceId; } + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + @JsonProperty("observation_source_value") public Optional getObservationSourceValue() { return observationSourceValue; @@ -185,6 +194,7 @@ private boolean equalTo(ObservationRow other) { && valueAsConceptId.equals(other.valueAsConceptId) && unitConceptId.equals(other.unitConceptId) && visitOccurrenceId.equals(other.visitOccurrenceId) + && providerId.equals(other.providerId) && observationSourceValue.equals(other.observationSourceValue) && observationSourceConceptId.equals(other.observationSourceConceptId) && unitSourceValue.equals(other.unitSourceValue) @@ -205,6 +215,7 @@ public int hashCode() { this.valueAsConceptId, this.unitConceptId, this.visitOccurrenceId, + this.providerId, this.observationSourceValue, this.observationSourceConceptId, this.unitSourceValue, @@ -244,6 +255,8 @@ public static final class Builder { private Optional visitOccurrenceId = Optional.empty(); + private Optional providerId = Optional.empty(); + private Optional observationSourceValue = Optional.empty(); private Optional observationSourceConceptId = Optional.empty(); @@ -269,6 +282,7 @@ public Builder from(ObservationRow other) { valueAsConceptId(other.getValueAsConceptId()); unitConceptId(other.getUnitConceptId()); visitOccurrenceId(other.getVisitOccurrenceId()); + providerId(other.getProviderId()); observationSourceValue(other.getObservationSourceValue()); observationSourceConceptId(other.getObservationSourceConceptId()); unitSourceValue(other.getUnitSourceValue()); @@ -397,6 +411,17 @@ public Builder visitOccurrenceId(Long visitOccurrenceId) { return this; } + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + @JsonSetter(value = "observation_source_value", nulls = Nulls.SKIP) public Builder observationSourceValue(Optional observationSourceValue) { this.observationSourceValue = observationSourceValue; @@ -454,6 +479,7 @@ public ObservationRow build() { valueAsConceptId, unitConceptId, visitOccurrenceId, + providerId, observationSourceValue, observationSourceConceptId, unitSourceValue, diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/OmopTables.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/OmopTables.java index a991bac..1cb5f55 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/OmopTables.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/OmopTables.java @@ -21,8 +21,18 @@ @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonDeserialize(builder = OmopTables.Builder.class) public final class OmopTables { + private final Optional> location; + + private final Optional> careSite; + + private final Optional> provider; + private final Optional> person; + private final Optional> death; + + private final Optional> observationPeriod; + private final Optional> visitOccurrence; private final Optional> conditionOccurrence; @@ -38,7 +48,12 @@ public final class OmopTables { private final Map additionalProperties; private OmopTables( + Optional> location, + Optional> careSite, + Optional> provider, Optional> person, + Optional> death, + Optional> observationPeriod, Optional> visitOccurrence, Optional> conditionOccurrence, Optional> drugExposure, @@ -46,7 +61,12 @@ private OmopTables( Optional> measurement, Optional> observation, Map additionalProperties) { + this.location = location; + this.careSite = careSite; + this.provider = provider; this.person = person; + this.death = death; + this.observationPeriod = observationPeriod; this.visitOccurrence = visitOccurrence; this.conditionOccurrence = conditionOccurrence; this.drugExposure = drugExposure; @@ -56,11 +76,36 @@ private OmopTables( this.additionalProperties = additionalProperties; } + @JsonProperty("location") + public Optional> getLocation() { + return location; + } + + @JsonProperty("care_site") + public Optional> getCareSite() { + return careSite; + } + + @JsonProperty("provider") + public Optional> getProvider() { + return provider; + } + @JsonProperty("person") public Optional> getPerson() { return person; } + @JsonProperty("death") + public Optional> getDeath() { + return death; + } + + @JsonProperty("observation_period") + public Optional> getObservationPeriod() { + return observationPeriod; + } + @JsonProperty("visit_occurrence") public Optional> getVisitOccurrence() { return visitOccurrence; @@ -103,7 +148,12 @@ public Map getAdditionalProperties() { } private boolean equalTo(OmopTables other) { - return person.equals(other.person) + return location.equals(other.location) + && careSite.equals(other.careSite) + && provider.equals(other.provider) + && person.equals(other.person) + && death.equals(other.death) + && observationPeriod.equals(other.observationPeriod) && visitOccurrence.equals(other.visitOccurrence) && conditionOccurrence.equals(other.conditionOccurrence) && drugExposure.equals(other.drugExposure) @@ -115,7 +165,12 @@ private boolean equalTo(OmopTables other) { @java.lang.Override public int hashCode() { return Objects.hash( + this.location, + this.careSite, + this.provider, this.person, + this.death, + this.observationPeriod, this.visitOccurrence, this.conditionOccurrence, this.drugExposure, @@ -135,8 +190,18 @@ public static Builder builder() { @JsonIgnoreProperties(ignoreUnknown = true) public static final class Builder { + private Optional> location = Optional.empty(); + + private Optional> careSite = Optional.empty(); + + private Optional> provider = Optional.empty(); + private Optional> person = Optional.empty(); + private Optional> death = Optional.empty(); + + private Optional> observationPeriod = Optional.empty(); + private Optional> visitOccurrence = Optional.empty(); private Optional> conditionOccurrence = Optional.empty(); @@ -155,7 +220,12 @@ public static final class Builder { private Builder() {} public Builder from(OmopTables other) { + location(other.getLocation()); + careSite(other.getCareSite()); + provider(other.getProvider()); person(other.getPerson()); + death(other.getDeath()); + observationPeriod(other.getObservationPeriod()); visitOccurrence(other.getVisitOccurrence()); conditionOccurrence(other.getConditionOccurrence()); drugExposure(other.getDrugExposure()); @@ -165,6 +235,39 @@ public Builder from(OmopTables other) { return this; } + @JsonSetter(value = "location", nulls = Nulls.SKIP) + public Builder location(Optional> location) { + this.location = location; + return this; + } + + public Builder location(List location) { + this.location = Optional.ofNullable(location); + return this; + } + + @JsonSetter(value = "care_site", nulls = Nulls.SKIP) + public Builder careSite(Optional> careSite) { + this.careSite = careSite; + return this; + } + + public Builder careSite(List careSite) { + this.careSite = Optional.ofNullable(careSite); + return this; + } + + @JsonSetter(value = "provider", nulls = Nulls.SKIP) + public Builder provider(Optional> provider) { + this.provider = provider; + return this; + } + + public Builder provider(List provider) { + this.provider = Optional.ofNullable(provider); + return this; + } + @JsonSetter(value = "person", nulls = Nulls.SKIP) public Builder person(Optional> person) { this.person = person; @@ -176,6 +279,28 @@ public Builder person(List person) { return this; } + @JsonSetter(value = "death", nulls = Nulls.SKIP) + public Builder death(Optional> death) { + this.death = death; + return this; + } + + public Builder death(List death) { + this.death = Optional.ofNullable(death); + return this; + } + + @JsonSetter(value = "observation_period", nulls = Nulls.SKIP) + public Builder observationPeriod(Optional> observationPeriod) { + this.observationPeriod = observationPeriod; + return this; + } + + public Builder observationPeriod(List observationPeriod) { + this.observationPeriod = Optional.ofNullable(observationPeriod); + return this; + } + @JsonSetter(value = "visit_occurrence", nulls = Nulls.SKIP) public Builder visitOccurrence(Optional> visitOccurrence) { this.visitOccurrence = visitOccurrence; @@ -244,7 +369,12 @@ public Builder observation(List observation) { public OmopTables build() { return new OmopTables( + location, + careSite, + provider, person, + death, + observationPeriod, visitOccurrence, conditionOccurrence, drugExposure, diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/PersonRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/PersonRow.java index 80fb11a..03c16a9 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/PersonRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/PersonRow.java @@ -36,6 +36,8 @@ public final class PersonRow { private final Optional ethnicityConceptId; + private final Optional locationId; + private final Optional personSourceValue; private final Optional genderSourceValue; @@ -55,6 +57,7 @@ private PersonRow( Optional birthDatetime, Optional raceConceptId, Optional ethnicityConceptId, + Optional locationId, Optional personSourceValue, Optional genderSourceValue, Optional raceSourceValue, @@ -68,6 +71,7 @@ private PersonRow( this.birthDatetime = birthDatetime; this.raceConceptId = raceConceptId; this.ethnicityConceptId = ethnicityConceptId; + this.locationId = locationId; this.personSourceValue = personSourceValue; this.genderSourceValue = genderSourceValue; this.raceSourceValue = raceSourceValue; @@ -115,6 +119,11 @@ public Optional getEthnicityConceptId() { return ethnicityConceptId; } + @JsonProperty("location_id") + public Optional getLocationId() { + return locationId; + } + @JsonProperty("person_source_value") public Optional getPersonSourceValue() { return personSourceValue; @@ -155,6 +164,7 @@ private boolean equalTo(PersonRow other) { && birthDatetime.equals(other.birthDatetime) && raceConceptId.equals(other.raceConceptId) && ethnicityConceptId.equals(other.ethnicityConceptId) + && locationId.equals(other.locationId) && personSourceValue.equals(other.personSourceValue) && genderSourceValue.equals(other.genderSourceValue) && raceSourceValue.equals(other.raceSourceValue) @@ -172,6 +182,7 @@ public int hashCode() { this.birthDatetime, this.raceConceptId, this.ethnicityConceptId, + this.locationId, this.personSourceValue, this.genderSourceValue, this.raceSourceValue, @@ -205,6 +216,8 @@ public static final class Builder { private Optional ethnicityConceptId = Optional.empty(); + private Optional locationId = Optional.empty(); + private Optional personSourceValue = Optional.empty(); private Optional genderSourceValue = Optional.empty(); @@ -227,6 +240,7 @@ public Builder from(PersonRow other) { birthDatetime(other.getBirthDatetime()); raceConceptId(other.getRaceConceptId()); ethnicityConceptId(other.getEthnicityConceptId()); + locationId(other.getLocationId()); personSourceValue(other.getPersonSourceValue()); genderSourceValue(other.getGenderSourceValue()); raceSourceValue(other.getRaceSourceValue()); @@ -322,6 +336,17 @@ public Builder ethnicityConceptId(Long ethnicityConceptId) { return this; } + @JsonSetter(value = "location_id", nulls = Nulls.SKIP) + public Builder locationId(Optional locationId) { + this.locationId = locationId; + return this; + } + + public Builder locationId(Long locationId) { + this.locationId = Optional.ofNullable(locationId); + return this; + } + @JsonSetter(value = "person_source_value", nulls = Nulls.SKIP) public Builder personSourceValue(Optional personSourceValue) { this.personSourceValue = personSourceValue; @@ -376,6 +401,7 @@ public PersonRow build() { birthDatetime, raceConceptId, ethnicityConceptId, + locationId, personSourceValue, genderSourceValue, raceSourceValue, diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProcedureOccurrenceRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProcedureOccurrenceRow.java index 48b7924..65e1ead 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProcedureOccurrenceRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProcedureOccurrenceRow.java @@ -34,6 +34,8 @@ public final class ProcedureOccurrenceRow { private final Optional visitOccurrenceId; + private final Optional providerId; + private final Optional procedureSourceValue; private final Optional procedureSourceConceptId; @@ -48,6 +50,7 @@ private ProcedureOccurrenceRow( Optional procedureDatetime, Optional procedureTypeConceptId, Optional visitOccurrenceId, + Optional providerId, Optional procedureSourceValue, Optional procedureSourceConceptId, Map additionalProperties) { @@ -58,6 +61,7 @@ private ProcedureOccurrenceRow( this.procedureDatetime = procedureDatetime; this.procedureTypeConceptId = procedureTypeConceptId; this.visitOccurrenceId = visitOccurrenceId; + this.providerId = providerId; this.procedureSourceValue = procedureSourceValue; this.procedureSourceConceptId = procedureSourceConceptId; this.additionalProperties = additionalProperties; @@ -98,6 +102,11 @@ public Optional getVisitOccurrenceId() { return visitOccurrenceId; } + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + @JsonProperty("procedure_source_value") public Optional getProcedureSourceValue() { return procedureSourceValue; @@ -127,6 +136,7 @@ private boolean equalTo(ProcedureOccurrenceRow other) { && procedureDatetime.equals(other.procedureDatetime) && procedureTypeConceptId.equals(other.procedureTypeConceptId) && visitOccurrenceId.equals(other.visitOccurrenceId) + && providerId.equals(other.providerId) && procedureSourceValue.equals(other.procedureSourceValue) && procedureSourceConceptId.equals(other.procedureSourceConceptId); } @@ -141,6 +151,7 @@ public int hashCode() { this.procedureDatetime, this.procedureTypeConceptId, this.visitOccurrenceId, + this.providerId, this.procedureSourceValue, this.procedureSourceConceptId); } @@ -170,6 +181,8 @@ public static final class Builder { private Optional visitOccurrenceId = Optional.empty(); + private Optional providerId = Optional.empty(); + private Optional procedureSourceValue = Optional.empty(); private Optional procedureSourceConceptId = Optional.empty(); @@ -187,6 +200,7 @@ public Builder from(ProcedureOccurrenceRow other) { procedureDatetime(other.getProcedureDatetime()); procedureTypeConceptId(other.getProcedureTypeConceptId()); visitOccurrenceId(other.getVisitOccurrenceId()); + providerId(other.getProviderId()); procedureSourceValue(other.getProcedureSourceValue()); procedureSourceConceptId(other.getProcedureSourceConceptId()); return this; @@ -269,6 +283,17 @@ public Builder visitOccurrenceId(Long visitOccurrenceId) { return this; } + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + @JsonSetter(value = "procedure_source_value", nulls = Nulls.SKIP) public Builder procedureSourceValue(Optional procedureSourceValue) { this.procedureSourceValue = procedureSourceValue; @@ -300,6 +325,7 @@ public ProcedureOccurrenceRow build() { procedureDatetime, procedureTypeConceptId, visitOccurrenceId, + providerId, procedureSourceValue, procedureSourceConceptId, additionalProperties); diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProviderRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProviderRow.java new file mode 100644 index 0000000..b685bff --- /dev/null +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/ProviderRow.java @@ -0,0 +1,422 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.phenoml.api.resources.fhir2omop.types; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.Nulls; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.phenoml.api.core.ObjectMappers; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = ProviderRow.Builder.class) +public final class ProviderRow { + private final Optional providerId; + + private final Optional providerName; + + private final Optional npi; + + private final Optional dea; + + private final Optional specialtyConceptId; + + private final Optional careSiteId; + + private final Optional yearOfBirth; + + private final Optional genderConceptId; + + private final Optional providerSourceValue; + + private final Optional specialtySourceValue; + + private final Optional specialtySourceConceptId; + + private final Optional genderSourceValue; + + private final Optional genderSourceConceptId; + + private final Map additionalProperties; + + private ProviderRow( + Optional providerId, + Optional providerName, + Optional npi, + Optional dea, + Optional specialtyConceptId, + Optional careSiteId, + Optional yearOfBirth, + Optional genderConceptId, + Optional providerSourceValue, + Optional specialtySourceValue, + Optional specialtySourceConceptId, + Optional genderSourceValue, + Optional genderSourceConceptId, + Map additionalProperties) { + this.providerId = providerId; + this.providerName = providerName; + this.npi = npi; + this.dea = dea; + this.specialtyConceptId = specialtyConceptId; + this.careSiteId = careSiteId; + this.yearOfBirth = yearOfBirth; + this.genderConceptId = genderConceptId; + this.providerSourceValue = providerSourceValue; + this.specialtySourceValue = specialtySourceValue; + this.specialtySourceConceptId = specialtySourceConceptId; + this.genderSourceValue = genderSourceValue; + this.genderSourceConceptId = genderSourceConceptId; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + + @JsonProperty("provider_name") + public Optional getProviderName() { + return providerName; + } + + @JsonProperty("npi") + public Optional getNpi() { + return npi; + } + + @JsonProperty("dea") + public Optional getDea() { + return dea; + } + + @JsonProperty("specialty_concept_id") + public Optional getSpecialtyConceptId() { + return specialtyConceptId; + } + + @JsonProperty("care_site_id") + public Optional getCareSiteId() { + return careSiteId; + } + + @JsonProperty("year_of_birth") + public Optional getYearOfBirth() { + return yearOfBirth; + } + + @JsonProperty("gender_concept_id") + public Optional getGenderConceptId() { + return genderConceptId; + } + + @JsonProperty("provider_source_value") + public Optional getProviderSourceValue() { + return providerSourceValue; + } + + @JsonProperty("specialty_source_value") + public Optional getSpecialtySourceValue() { + return specialtySourceValue; + } + + @JsonProperty("specialty_source_concept_id") + public Optional getSpecialtySourceConceptId() { + return specialtySourceConceptId; + } + + @JsonProperty("gender_source_value") + public Optional getGenderSourceValue() { + return genderSourceValue; + } + + @JsonProperty("gender_source_concept_id") + public Optional getGenderSourceConceptId() { + return genderSourceConceptId; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof ProviderRow && equalTo((ProviderRow) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(ProviderRow other) { + return providerId.equals(other.providerId) + && providerName.equals(other.providerName) + && npi.equals(other.npi) + && dea.equals(other.dea) + && specialtyConceptId.equals(other.specialtyConceptId) + && careSiteId.equals(other.careSiteId) + && yearOfBirth.equals(other.yearOfBirth) + && genderConceptId.equals(other.genderConceptId) + && providerSourceValue.equals(other.providerSourceValue) + && specialtySourceValue.equals(other.specialtySourceValue) + && specialtySourceConceptId.equals(other.specialtySourceConceptId) + && genderSourceValue.equals(other.genderSourceValue) + && genderSourceConceptId.equals(other.genderSourceConceptId); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.providerId, + this.providerName, + this.npi, + this.dea, + this.specialtyConceptId, + this.careSiteId, + this.yearOfBirth, + this.genderConceptId, + this.providerSourceValue, + this.specialtySourceValue, + this.specialtySourceConceptId, + this.genderSourceValue, + this.genderSourceConceptId); + } + + @java.lang.Override + public String toString() { + return ObjectMappers.stringify(this); + } + + public static Builder builder() { + return new Builder(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + public static final class Builder { + private Optional providerId = Optional.empty(); + + private Optional providerName = Optional.empty(); + + private Optional npi = Optional.empty(); + + private Optional dea = Optional.empty(); + + private Optional specialtyConceptId = Optional.empty(); + + private Optional careSiteId = Optional.empty(); + + private Optional yearOfBirth = Optional.empty(); + + private Optional genderConceptId = Optional.empty(); + + private Optional providerSourceValue = Optional.empty(); + + private Optional specialtySourceValue = Optional.empty(); + + private Optional specialtySourceConceptId = Optional.empty(); + + private Optional genderSourceValue = Optional.empty(); + + private Optional genderSourceConceptId = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(ProviderRow other) { + providerId(other.getProviderId()); + providerName(other.getProviderName()); + npi(other.getNpi()); + dea(other.getDea()); + specialtyConceptId(other.getSpecialtyConceptId()); + careSiteId(other.getCareSiteId()); + yearOfBirth(other.getYearOfBirth()); + genderConceptId(other.getGenderConceptId()); + providerSourceValue(other.getProviderSourceValue()); + specialtySourceValue(other.getSpecialtySourceValue()); + specialtySourceConceptId(other.getSpecialtySourceConceptId()); + genderSourceValue(other.getGenderSourceValue()); + genderSourceConceptId(other.getGenderSourceConceptId()); + return this; + } + + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + + @JsonSetter(value = "provider_name", nulls = Nulls.SKIP) + public Builder providerName(Optional providerName) { + this.providerName = providerName; + return this; + } + + public Builder providerName(String providerName) { + this.providerName = Optional.ofNullable(providerName); + return this; + } + + @JsonSetter(value = "npi", nulls = Nulls.SKIP) + public Builder npi(Optional npi) { + this.npi = npi; + return this; + } + + public Builder npi(String npi) { + this.npi = Optional.ofNullable(npi); + return this; + } + + @JsonSetter(value = "dea", nulls = Nulls.SKIP) + public Builder dea(Optional dea) { + this.dea = dea; + return this; + } + + public Builder dea(String dea) { + this.dea = Optional.ofNullable(dea); + return this; + } + + @JsonSetter(value = "specialty_concept_id", nulls = Nulls.SKIP) + public Builder specialtyConceptId(Optional specialtyConceptId) { + this.specialtyConceptId = specialtyConceptId; + return this; + } + + public Builder specialtyConceptId(Long specialtyConceptId) { + this.specialtyConceptId = Optional.ofNullable(specialtyConceptId); + return this; + } + + @JsonSetter(value = "care_site_id", nulls = Nulls.SKIP) + public Builder careSiteId(Optional careSiteId) { + this.careSiteId = careSiteId; + return this; + } + + public Builder careSiteId(Long careSiteId) { + this.careSiteId = Optional.ofNullable(careSiteId); + return this; + } + + @JsonSetter(value = "year_of_birth", nulls = Nulls.SKIP) + public Builder yearOfBirth(Optional yearOfBirth) { + this.yearOfBirth = yearOfBirth; + return this; + } + + public Builder yearOfBirth(Integer yearOfBirth) { + this.yearOfBirth = Optional.ofNullable(yearOfBirth); + return this; + } + + @JsonSetter(value = "gender_concept_id", nulls = Nulls.SKIP) + public Builder genderConceptId(Optional genderConceptId) { + this.genderConceptId = genderConceptId; + return this; + } + + public Builder genderConceptId(Long genderConceptId) { + this.genderConceptId = Optional.ofNullable(genderConceptId); + return this; + } + + @JsonSetter(value = "provider_source_value", nulls = Nulls.SKIP) + public Builder providerSourceValue(Optional providerSourceValue) { + this.providerSourceValue = providerSourceValue; + return this; + } + + public Builder providerSourceValue(String providerSourceValue) { + this.providerSourceValue = Optional.ofNullable(providerSourceValue); + return this; + } + + @JsonSetter(value = "specialty_source_value", nulls = Nulls.SKIP) + public Builder specialtySourceValue(Optional specialtySourceValue) { + this.specialtySourceValue = specialtySourceValue; + return this; + } + + public Builder specialtySourceValue(String specialtySourceValue) { + this.specialtySourceValue = Optional.ofNullable(specialtySourceValue); + return this; + } + + @JsonSetter(value = "specialty_source_concept_id", nulls = Nulls.SKIP) + public Builder specialtySourceConceptId(Optional specialtySourceConceptId) { + this.specialtySourceConceptId = specialtySourceConceptId; + return this; + } + + public Builder specialtySourceConceptId(Long specialtySourceConceptId) { + this.specialtySourceConceptId = Optional.ofNullable(specialtySourceConceptId); + return this; + } + + @JsonSetter(value = "gender_source_value", nulls = Nulls.SKIP) + public Builder genderSourceValue(Optional genderSourceValue) { + this.genderSourceValue = genderSourceValue; + return this; + } + + public Builder genderSourceValue(String genderSourceValue) { + this.genderSourceValue = Optional.ofNullable(genderSourceValue); + return this; + } + + @JsonSetter(value = "gender_source_concept_id", nulls = Nulls.SKIP) + public Builder genderSourceConceptId(Optional genderSourceConceptId) { + this.genderSourceConceptId = genderSourceConceptId; + return this; + } + + public Builder genderSourceConceptId(Long genderSourceConceptId) { + this.genderSourceConceptId = Optional.ofNullable(genderSourceConceptId); + return this; + } + + public ProviderRow build() { + return new ProviderRow( + providerId, + providerName, + npi, + dea, + specialtyConceptId, + careSiteId, + yearOfBirth, + genderConceptId, + providerSourceValue, + specialtySourceValue, + specialtySourceConceptId, + genderSourceValue, + genderSourceConceptId, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/phenoml/api/resources/fhir2omop/types/VisitOccurrenceRow.java b/src/main/java/com/phenoml/api/resources/fhir2omop/types/VisitOccurrenceRow.java index a46a047..7a31054 100644 --- a/src/main/java/com/phenoml/api/resources/fhir2omop/types/VisitOccurrenceRow.java +++ b/src/main/java/com/phenoml/api/resources/fhir2omop/types/VisitOccurrenceRow.java @@ -36,6 +36,10 @@ public final class VisitOccurrenceRow { private final Optional visitTypeConceptId; + private final Optional providerId; + + private final Optional careSiteId; + private final Optional visitSourceValue; private final Map additionalProperties; @@ -49,6 +53,8 @@ private VisitOccurrenceRow( Optional visitEndDate, Optional visitEndDatetime, Optional visitTypeConceptId, + Optional providerId, + Optional careSiteId, Optional visitSourceValue, Map additionalProperties) { this.visitOccurrenceId = visitOccurrenceId; @@ -59,6 +65,8 @@ private VisitOccurrenceRow( this.visitEndDate = visitEndDate; this.visitEndDatetime = visitEndDatetime; this.visitTypeConceptId = visitTypeConceptId; + this.providerId = providerId; + this.careSiteId = careSiteId; this.visitSourceValue = visitSourceValue; this.additionalProperties = additionalProperties; } @@ -103,6 +111,16 @@ public Optional getVisitTypeConceptId() { return visitTypeConceptId; } + @JsonProperty("provider_id") + public Optional getProviderId() { + return providerId; + } + + @JsonProperty("care_site_id") + public Optional getCareSiteId() { + return careSiteId; + } + @JsonProperty("visit_source_value") public Optional getVisitSourceValue() { return visitSourceValue; @@ -128,6 +146,8 @@ private boolean equalTo(VisitOccurrenceRow other) { && visitEndDate.equals(other.visitEndDate) && visitEndDatetime.equals(other.visitEndDatetime) && visitTypeConceptId.equals(other.visitTypeConceptId) + && providerId.equals(other.providerId) + && careSiteId.equals(other.careSiteId) && visitSourceValue.equals(other.visitSourceValue); } @@ -142,6 +162,8 @@ public int hashCode() { this.visitEndDate, this.visitEndDatetime, this.visitTypeConceptId, + this.providerId, + this.careSiteId, this.visitSourceValue); } @@ -172,6 +194,10 @@ public static final class Builder { private Optional visitTypeConceptId = Optional.empty(); + private Optional providerId = Optional.empty(); + + private Optional careSiteId = Optional.empty(); + private Optional visitSourceValue = Optional.empty(); @JsonAnySetter @@ -188,6 +214,8 @@ public Builder from(VisitOccurrenceRow other) { visitEndDate(other.getVisitEndDate()); visitEndDatetime(other.getVisitEndDatetime()); visitTypeConceptId(other.getVisitTypeConceptId()); + providerId(other.getProviderId()); + careSiteId(other.getCareSiteId()); visitSourceValue(other.getVisitSourceValue()); return this; } @@ -280,6 +308,28 @@ public Builder visitTypeConceptId(Long visitTypeConceptId) { return this; } + @JsonSetter(value = "provider_id", nulls = Nulls.SKIP) + public Builder providerId(Optional providerId) { + this.providerId = providerId; + return this; + } + + public Builder providerId(Long providerId) { + this.providerId = Optional.ofNullable(providerId); + return this; + } + + @JsonSetter(value = "care_site_id", nulls = Nulls.SKIP) + public Builder careSiteId(Optional careSiteId) { + this.careSiteId = careSiteId; + return this; + } + + public Builder careSiteId(Long careSiteId) { + this.careSiteId = Optional.ofNullable(careSiteId); + return this; + } + @JsonSetter(value = "visit_source_value", nulls = Nulls.SKIP) public Builder visitSourceValue(Optional visitSourceValue) { this.visitSourceValue = visitSourceValue; @@ -301,6 +351,8 @@ public VisitOccurrenceRow build() { visitEndDate, visitEndDatetime, visitTypeConceptId, + providerId, + careSiteId, visitSourceValue, additionalProperties); } diff --git a/src/test/resources/wire-tests/Fhir2OmopWireTest_testCreate_response.json b/src/test/resources/wire-tests/Fhir2OmopWireTest_testCreate_response.json index 5498547..c3c2322 100644 --- a/src/test/resources/wire-tests/Fhir2OmopWireTest_testCreate_response.json +++ b/src/test/resources/wire-tests/Fhir2OmopWireTest_testCreate_response.json @@ -2,6 +2,15 @@ "success": true, "message": "FHIR resources mapped to OMOP CDM v5.4", "tables": { + "location": [ + {} + ], + "care_site": [ + {} + ], + "provider": [ + {} + ], "person": [ { "person_id": 1, @@ -16,6 +25,12 @@ "gender_source_value": "female" } ], + "death": [ + {} + ], + "observation_period": [ + {} + ], "visit_occurrence": [ {} ], From 1baf5792392a33a8b9609a028de27e7a1f5b3a88 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 21:46:45 +0000 Subject: [PATCH 2/2] [fern-autoversion] feat: add FHIR2OMOP and Voice transcription service clients MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce two new service clients — `Fhir2OmopClient` / `AsyncFhir2OmopClient` and `VoiceClient` / `AsyncVoiceClient` — surfacing the FHIR-to-OMOP CDM mapping endpoint (`POST /fhir2omop/create`) and the audio transcription endpoint (`POST /transcribe`) respectively. Key changes: - Add `AsyncPhenomlClient.fhir2Omop()` and `AsyncPhenomlClient.voice()` accessor methods - Add `CreateOmopRequest`, `CreateOmopResponse`, and all supporting OMOP CDM row/mapping types - Add `TranscribeResponse` with a required `transcript` field for the voice service - Add `aidbox` as a supported `Provider` enum value in FHIR provider creation 🌿 Generated with Fern --- .fern/metadata.json | 2 +- build.gradle | 4 ++-- changelog.md | 8 ++++++++ src/main/java/com/phenoml/api/core/ClientOptions.java | 4 ++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.fern/metadata.json b/.fern/metadata.json index d26be09..f04eed5 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -15,5 +15,5 @@ "invokedBy": "ci", "requestedVersion": "AUTO", "ciProvider": "unknown", - "sdkVersion": "0.0.0-fern-placeholder" + "sdkVersion": "17.8.0" } \ No newline at end of file diff --git a/build.gradle b/build.gradle index e9f35ce..d70a962 100644 --- a/build.gradle +++ b/build.gradle @@ -48,7 +48,7 @@ java { group = 'com.phenoml.maven' -version = '0.0.0-fern-placeholder' +version = '17.8.0' jar { dependsOn(":generatePomFileForMavenPublication") @@ -79,7 +79,7 @@ publishing { maven(MavenPublication) { groupId = 'com.phenoml.maven' artifactId = 'phenoml-java-sdk' - version = '0.0.0-fern-placeholder' + version = '17.8.0' from components.java pom { name = 'phenoml' diff --git a/changelog.md b/changelog.md index f4c3a7f..458cd43 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,11 @@ +## [17.8.0] - 2026-06-23 +### Added +- **`Fhir2OmopClient` / `AsyncFhir2OmopClient`** — new service clients accessible via `PhenomlClient.fhir2Omop()` / `AsyncPhenomlClient.fhir2Omop()`, exposing a `create(CreateOmopRequest)` method that maps a FHIR R4 resource or Bundle into OMOP CDM v5.4 rows via `POST /fhir2omop/create`. +- **`VoiceClient` / `AsyncVoiceClient`** — new service clients accessible via `PhenomlClient.voice()` / `AsyncPhenomlClient.voice()`, exposing `transcribe(...)` methods that upload raw audio bytes (WAV, FLAC, MP3, OGG/WebM Opus) to `POST /transcribe` and return a `TranscribeResponse`. +- **OMOP CDM response types** — new model classes `OmopTables`, `PersonRow`, `VisitOccurrenceRow`, `ConditionOccurrenceRow`, `DrugExposureRow`, `ProcedureOccurrenceRow`, `MeasurementRow`, `ObservationRow`, `ObservationPeriodRow`, `DeathRow`, `LocationRow`, `CareSiteRow`, `ProviderRow`, `MappingEntry`, `DroppedResource`, and `Summary` represent the full OMOP CDM v5.4 output of the FHIR-to-OMOP conversion. +- **`ConflictError`** — new typed exception (HTTP 409) thrown by `RawChatClient.send(...)` and `RawChatClient.stream(...)` (sync and async) when a session already has an active turn. +- **`Provider.AIDBOX`** — `"aidbox"` is now a supported constant in the `Provider` enum, including a `Value.AIDBOX` entry and `Visitor.visitAidbox()` method. + ## [17.7.0] - 2026-06-23 ### Added - **`PhenomlClient.voice().voice().transcribe(...)`** — new sync method that uploads raw audio bytes (WAV, FLAC, MP3, or OGG/WebM Opus) to `POST /transcribe` and returns a `TranscribeResponse`, supporting up to ~5 minutes of audio per request. diff --git a/src/main/java/com/phenoml/api/core/ClientOptions.java b/src/main/java/com/phenoml/api/core/ClientOptions.java index b1f15e2..a47b068 100644 --- a/src/main/java/com/phenoml/api/core/ClientOptions.java +++ b/src/main/java/com/phenoml/api/core/ClientOptions.java @@ -38,10 +38,10 @@ private ClientOptions( this.headers.putAll(headers); this.headers.putAll(new HashMap() { { - put("User-Agent", "com.phenoml.maven:phenoml-java-sdk/0.0.0-fern-placeholder"); + put("User-Agent", "com.phenoml.maven:phenoml-java-sdk/17.8.0"); put("X-Fern-Language", "JAVA"); put("X-Fern-SDK-Name", "com.phenoml.fern:api-sdk"); - put("X-Fern-SDK-Version", "0.0.0-fern-placeholder"); + put("X-Fern-SDK-Version", "17.8.0"); } }); this.headerSuppliers = headerSuppliers;