From 4cf14c8a12c24732e7d4159109b7c1924eead6f9 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:26:29 +0000 Subject: [PATCH 1/6] [fern-generated] Update SDK Generated by Fern CLI Version: unknown Generators: - fernapi/fern-python-sdk: 5.14.13 --- .fern/metadata.json | 4 ++-- pyproject.toml | 5 +---- src/phenoml/core/client_wrapper.py | 4 ++-- src/phenoml/fhir_provider/types/provider.py | 1 + 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.fern/metadata.json b/.fern/metadata.json index 4f8e7ba..16f8a67 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -8,10 +8,10 @@ "enabled": true } }, - "originGitCommit": "788cec0a9a7651caf2b106634631d487dfa16704", + "originGitCommit": "64f369254225bd6c2d4c58d87f59165d7e8e8dc9", "originGitCommitIsDirty": true, "invokedBy": "ci", "requestedVersion": "AUTO", "ciProvider": "unknown", - "sdkVersion": "16.1.0" + "sdkVersion": "0.0.0.dev0" } \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 4809f58..cc86d42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "phenoml" -version = "16.1.0" +version = "0.0.0.dev0" description = "" readme = "README.md" authors = [] @@ -31,9 +31,6 @@ classifiers = [ packages = [ { include = "phenoml", from = "src"} ] -include = [ - { path = "src/phenoml/openapi/openapi.json", format = ["sdist", "wheel"] } -] [tool.poetry.urls] Repository = 'https://github.com/phenoml/phenoml-python-sdk' diff --git a/src/phenoml/core/client_wrapper.py b/src/phenoml/core/client_wrapper.py index c3d922c..3421d69 100644 --- a/src/phenoml/core/client_wrapper.py +++ b/src/phenoml/core/client_wrapper.py @@ -29,12 +29,12 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "phenoml/16.1.0", + "User-Agent": "phenoml/0.0.0.dev0", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "phenoml", - "X-Fern-SDK-Version": "16.1.0", + "X-Fern-SDK-Version": "0.0.0.dev0", **(self.get_custom_headers() or {}), } token = self._get_token() diff --git a/src/phenoml/fhir_provider/types/provider.py b/src/phenoml/fhir_provider/types/provider.py index fc9f238..ebd6e4b 100644 --- a/src/phenoml/fhir_provider/types/provider.py +++ b/src/phenoml/fhir_provider/types/provider.py @@ -4,6 +4,7 @@ Provider = typing.Union[ typing.Literal[ + "aidbox", "athenahealth", "canvas", "cerner", From 2776754676b601a182a7be00d8229f5fdd19c7dc Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:26:45 +0000 Subject: [PATCH 2/6] [fern-autoversion] feat: add "aidbox" provider, visit_occurrence_id fields, and operator_concept_id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Expand the SDK with new FHIR provider support, additional OMOP row fields, and updated MappingEntry/Summary semantics that align with the 16.1.0 API spec commit. Key changes: - Add `"aidbox"` to the `Provider` union literal type, enabling Aidbox as a supported FHIR provider - Add optional `visit_occurrence_id` field to `ConditionOccurrenceRow`, `DrugExposureRow`, `ProcedureOccurrenceRow`, `MeasurementRow`, and `ObservationRow` - Add optional `operator_concept_id` field to `MeasurementRow` carrying the OMOP "Meas Value Operator" concept for comparator-qualified numeric values - Update `MappingEntry.target_code` description: now populated for `ALREADY_STANDARD` and `MAPPED` rows (the standard concept's own code), omitted only for `UNMAPPED` - Clarify `Summary` field descriptions to reflect per-concept (not per-coding) counting semantics - Update code examples and OpenAPI spec to reflect `target_code` presence on `ALREADY_STANDARD` mappings 🌿 Generated with Fern --- .fern/metadata.json | 2 +- .fern/replay.lock | 2 +- changelog.md | 10 ++++++++++ pyproject.toml | 2 +- src/phenoml/core/client_wrapper.py | 4 ++-- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.fern/metadata.json b/.fern/metadata.json index 16f8a67..e4684b3 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -13,5 +13,5 @@ "invokedBy": "ci", "requestedVersion": "AUTO", "ciProvider": "unknown", - "sdkVersion": "0.0.0.dev0" + "sdkVersion": "16.2.0" } \ No newline at end of file diff --git a/.fern/replay.lock b/.fern/replay.lock index b189dba..1457eb5 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -75,7 +75,7 @@ patches: [tool.poetry] name = "phenoml" - version = "0.0.0.dev0" + version = "16.2.0" description = "" readme = "README.md" authors = [] diff --git a/changelog.md b/changelog.md index d0f5002..c6052f1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,13 @@ +## [16.2.0] - 2026-06-15 +### Added +- **`Provider`** — `"aidbox"` is now a supported FHIR provider value in the `Provider` union type. +- **`ConditionOccurrenceRow.visit_occurrence_id`**, **`DrugExposureRow.visit_occurrence_id`**, **`ProcedureOccurrenceRow.visit_occurrence_id`**, **`MeasurementRow.visit_occurrence_id`**, and **`ObservationRow.visit_occurrence_id`** — new optional field linking each clinical OMOP row back to its `visit_occurrence` row. +- **`MeasurementRow.operator_concept_id`** — new optional field carrying the OMOP "Meas Value Operator" standard concept (`<`, `<=`, `>`, `>=`) parsed from a FHIR `valueQuantity.comparator` or numeric-string value; `0` when no operator is present. + +### Changed +- **`MappingEntry.target_code`** — field semantics updated: now populated for `ALREADY_STANDARD` and `MAPPED` rows (the standard concept's own code) in addition to `UNCHECKED` suggestions; omitted only for `UNMAPPED` rows. +- **`Summary`** field descriptions clarified to reflect that each coded resource is counted once per resolved concept, not once per coding. + ## [16.1.0] - 2026-06-15 ### Added - **`ConditionOccurrenceRow.visit_occurrence_id`**, **`DrugExposureRow.visit_occurrence_id`**, **`MeasurementRow.visit_occurrence_id`**, **`ObservationRow.visit_occurrence_id`**, and **`ProcedureOccurrenceRow.visit_occurrence_id`** — new optional field linking each clinical OMOP row back to its `visit_occurrence` row. diff --git a/pyproject.toml b/pyproject.toml index cc86d42..0671e95 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ dynamic = ["version"] [tool.poetry] name = "phenoml" -version = "0.0.0.dev0" +version = "16.2.0" description = "" readme = "README.md" authors = [] diff --git a/src/phenoml/core/client_wrapper.py b/src/phenoml/core/client_wrapper.py index 3421d69..be50d73 100644 --- a/src/phenoml/core/client_wrapper.py +++ b/src/phenoml/core/client_wrapper.py @@ -29,12 +29,12 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "phenoml/0.0.0.dev0", + "User-Agent": "phenoml/16.2.0", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", "X-Fern-SDK-Name": "phenoml", - "X-Fern-SDK-Version": "0.0.0.dev0", + "X-Fern-SDK-Version": "16.2.0", **(self.get_custom_headers() or {}), } token = self._get_token() From bff739153b5e2bd6623f931fb2b2c151e4193bf9 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:26:47 +0000 Subject: [PATCH 3/6] [fern-replay] Applied customizations Patches applied (1): - patch-6516695e: Release 15.0.2: restore bundled openapi.json packaging (#169) --- .fern/replay.lock | 23 +++++++++++++++++++---- pyproject.toml | 3 +++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.fern/replay.lock b/.fern/replay.lock index 1457eb5..82f4932 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -42,21 +42,36 @@ generations: cli_version: unknown generator_versions: fernapi/fern-python-sdk: 5.14.13 -current_generation: fa9f5062718873625449782553bed61043532b1c + - commit_sha: 4cf14c8a12c24732e7d4159109b7c1924eead6f9 + tree_hash: 38bbea63c9e1fb1c115453218edc43bbd3949ab3 + timestamp: 2026-06-15T17:26:29.740Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 5.14.13 +current_generation: 4cf14c8a12c24732e7d4159109b7c1924eead6f9 patches: - id: patch-6516695e - content_hash: sha256:29d85120d58e5f06a344be0c1228262bb29c8c57591581d8a56b6d3eabe65d75 + content_hash: sha256:1a93e1a7e6b3f07650c46f3379e78be242474b6423f44e65a5ac0dfda4dce424 original_commit: 6516695ecaba47ae4bcc8119acca86a1113adeeb original_message: "Release 15.0.2: restore bundled openapi.json packaging (#169)" original_author: Gavin Sharp - base_generation: 6999ce50b7572e832a149b02ae50a4bfcd5f99f0 + base_generation: 4cf14c8a12c24732e7d4159109b7c1924eead6f9 files: - pyproject.toml patch_content: | diff --git a/pyproject.toml b/pyproject.toml - index cc86d42..79689b9 100644 + index cc86d42..6e5fdf7 100644 --- a/pyproject.toml +++ b/pyproject.toml + @@ -4,7 +4,7 @@ dynamic = ["version"] + + [tool.poetry] + name = "phenoml" + -version = "0.0.0.dev0" + +version = "16.2.0" + description = "" + readme = "README.md" + authors = [] @@ -31,6 +31,9 @@ classifiers = [ packages = [ { include = "phenoml", from = "src"} diff --git a/pyproject.toml b/pyproject.toml index 0671e95..6e5fdf7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,9 @@ classifiers = [ packages = [ { include = "phenoml", from = "src"} ] +include = [ + { path = "src/phenoml/openapi/openapi.json", format = ["sdist", "wheel"] } +] [tool.poetry.urls] Repository = 'https://github.com/phenoml/phenoml-python-sdk' From 1d36acb0b4064c5b4a941492f260f94080475757 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 17:27:10 +0000 Subject: [PATCH 4/6] chore: sync OpenAPI spec + code-examples for 64f369254225bd6c2d4c58d87f59165d7e8e8dc9 --- code-examples.json | 5 +++-- src/phenoml/openapi/openapi.json | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/code-examples.json b/code-examples.json index 06e65f8..081309b 100644 --- a/code-examples.json +++ b/code-examples.json @@ -2,8 +2,8 @@ "metadata": { "language": "python", "packageName": "phenoml", - "sdkVersion": "16.1.0", - "specCommit": "788cec0a9a7651caf2b106634631d487dfa16704", + "sdkVersion": "16.2.0", + "specCommit": "64f369254225bd6c2d4c58d87f59165d7e8e8dc9", "generatorName": "fernapi/fern-python-sdk" }, "renderRules": { @@ -2196,6 +2196,7 @@ "kind": "enum", "required": true, "enumValues": [ + "aidbox", "athenahealth", "canvas", "cerner", diff --git a/src/phenoml/openapi/openapi.json b/src/phenoml/openapi/openapi.json index 3924b6b..3882086 100644 --- a/src/phenoml/openapi/openapi.json +++ b/src/phenoml/openapi/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.0.3", "info": { "title": "Phenoml API", - "version": "788cec0a9a7651caf2b106634631d487dfa16704" + "version": "64f369254225bd6c2d4c58d87f59165d7e8e8dc9" }, "x-services": [ { @@ -9323,6 +9323,7 @@ "type": "string", "description": "Type of FHIR server provider.\n\nThe \"sandbox\" provider type is managed internally and cannot be created via API.\nIt is used on shared instances.\n", "enum": [ + "aidbox", "athenahealth", "canvas", "cerner", From be79251f6a1d3f445dee2434abc1abe7156526d4 Mon Sep 17 00:00:00 2001 From: Gavin Sharp Date: Mon, 15 Jun 2026 15:23:47 -0400 Subject: [PATCH 5/6] docs(changelog): scope this release to the aidbox provider addition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fern's auto-changelog re-listed already-shipped fhir2omop changes (already on main and published) as new — its changelog diff base was stale. The only real change in this release is the new "aidbox" Provider value. Co-Authored-By: Claude Opus 4.8 --- changelog.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/changelog.md b/changelog.md index c6052f1..6f61323 100644 --- a/changelog.md +++ b/changelog.md @@ -1,12 +1,6 @@ ## [16.2.0] - 2026-06-15 ### Added - **`Provider`** — `"aidbox"` is now a supported FHIR provider value in the `Provider` union type. -- **`ConditionOccurrenceRow.visit_occurrence_id`**, **`DrugExposureRow.visit_occurrence_id`**, **`ProcedureOccurrenceRow.visit_occurrence_id`**, **`MeasurementRow.visit_occurrence_id`**, and **`ObservationRow.visit_occurrence_id`** — new optional field linking each clinical OMOP row back to its `visit_occurrence` row. -- **`MeasurementRow.operator_concept_id`** — new optional field carrying the OMOP "Meas Value Operator" standard concept (`<`, `<=`, `>`, `>=`) parsed from a FHIR `valueQuantity.comparator` or numeric-string value; `0` when no operator is present. - -### Changed -- **`MappingEntry.target_code`** — field semantics updated: now populated for `ALREADY_STANDARD` and `MAPPED` rows (the standard concept's own code) in addition to `UNCHECKED` suggestions; omitted only for `UNMAPPED` rows. -- **`Summary`** field descriptions clarified to reflect that each coded resource is counted once per resolved concept, not once per coding. ## [16.1.0] - 2026-06-15 ### Added From a0433e74115f7026529e393a3b57e91d3ea7f181 Mon Sep 17 00:00:00 2001 From: Gavin Sharp Date: Mon, 15 Jun 2026 15:24:56 -0400 Subject: [PATCH 6/6] fix(replay): version-clean the bundled-openapi patch (keeps next regen clean) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #186 itself merged clean (no conflict — #185's surgery held), but the regen re-captured theirs_snapshot at 16.2.0, which would re-conflict on the next bump. Version-clean it (theirs->0.0.0.dev0, include-only patch, hash 29d85120). Lock-only. Co-Authored-By: Claude Opus 4.8 --- .fern/replay.lock | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.fern/replay.lock b/.fern/replay.lock index 82f4932..aa2c39d 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -51,7 +51,7 @@ generations: current_generation: 4cf14c8a12c24732e7d4159109b7c1924eead6f9 patches: - id: patch-6516695e - content_hash: sha256:1a93e1a7e6b3f07650c46f3379e78be242474b6423f44e65a5ac0dfda4dce424 + content_hash: sha256:29d85120d58e5f06a344be0c1228262bb29c8c57591581d8a56b6d3eabe65d75 original_commit: 6516695ecaba47ae4bcc8119acca86a1113adeeb original_message: "Release 15.0.2: restore bundled openapi.json packaging (#169)" original_author: Gavin Sharp @@ -60,18 +60,9 @@ patches: - pyproject.toml patch_content: | diff --git a/pyproject.toml b/pyproject.toml - index cc86d42..6e5fdf7 100644 + index cc86d42..79689b9 100644 --- a/pyproject.toml +++ b/pyproject.toml - @@ -4,7 +4,7 @@ dynamic = ["version"] - - [tool.poetry] - name = "phenoml" - -version = "0.0.0.dev0" - +version = "16.2.0" - description = "" - readme = "README.md" - authors = [] @@ -31,6 +31,9 @@ classifiers = [ packages = [ { include = "phenoml", from = "src"} @@ -90,7 +81,7 @@ patches: [tool.poetry] name = "phenoml" - version = "16.2.0" + version = "0.0.0.dev0" description = "" readme = "README.md" authors = []