Skip to content

Feat/add endpoints for uploading adverse actions for licenses and privileges #769

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from 49 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
27111e4
Add data model for Adverse Actions
landonshumway-ia Apr 24, 2025
af665d4
Add tests for adverse actions
landonshumway-ia Apr 24, 2025
b6c482a
Add encumbrance endpoint infrastructure for privilege/license
jusdino Apr 4, 2025
ffa86eb
Formatting/linter
landonshumway-ia Apr 24, 2025
6421deb
WIP - add encumbrance tests
landonshumway-ia Apr 24, 2025
2aa8216
WIP - add test data classes
landonshumway-ia Apr 24, 2025
6772d46
WIP - add remaining test classes
landonshumway-ia Apr 24, 2025
b404d54
Fix typo in request body
landonshumway-ia Apr 25, 2025
8b8b85b
remove test classes
landonshumway-ia Apr 25, 2025
0bf8c10
Implement license/privilege encumbrance with data classes
landonshumway-ia Apr 25, 2025
c70fefe
formatting
landonshumway-ia Apr 25, 2025
e9984d5
linter
landonshumway-ia Apr 25, 2025
88b056f
Add tests to verify privilege encumbrance updates
landonshumway-ia Apr 25, 2025
54d0ff5
Add tests to verify license encumbrance updates
landonshumway-ia Apr 25, 2025
10a8f88
Formatting - remove TODOs
landonshumway-ia Apr 25, 2025
cab6487
Fix contract for loading data classes
landonshumway-ia Apr 25, 2025
c41ae9a
WIP - reach parity with existing static JSON comparison
landonshumway-ia Apr 25, 2025
50dd502
Returning adverse actions in the provider details
landonshumway-ia Apr 28, 2025
77c1bfb
Add data class for military affiliation
landonshumway-ia Apr 28, 2025
51ed2be
Add snapshot for adverse action
landonshumway-ia Apr 28, 2025
297e096
add home jurisdiction selection data class
landonshumway-ia Apr 28, 2025
d71eb95
formatter/linter
landonshumway-ia Apr 28, 2025
243a053
validate license types at load/dump time
landonshumway-ia Apr 28, 2025
f01a1bb
lint check
landonshumway-ia Apr 28, 2025
b85aea7
update api spec/postman collection to latest
landonshumway-ia Apr 29, 2025
e3d79a1
PR feedback - coderabbit comments
landonshumway-ia Apr 29, 2025
72e5b26
PR feedback
landonshumway-ia Apr 29, 2025
bade27c
PR feedback - duplicate comment
landonshumway-ia Apr 29, 2025
26f75e3
Simplify interface for data classes
landonshumway-ia Apr 29, 2025
39ff805
PR feedback - comments
landonshumway-ia Apr 29, 2025
6cfdfd3
PR feedback
landonshumway-ia Apr 29, 2025
f27ba6a
PR feedback - remove unused method
landonshumway-ia Apr 29, 2025
2f239ac
PR feedback - comment
landonshumway-ia Apr 29, 2025
520e3a7
PR feedback - use data class consistently
landonshumway-ia Apr 29, 2025
98a7d4b
formatter
landonshumway-ia Apr 29, 2025
8777a6f
PR feedback
landonshumway-ia Apr 30, 2025
6490c84
PR feedback - refactor data class properties as camel case
landonshumway-ia Apr 30, 2025
a769765
PR feedback - remove blocksFuturePrivileges field from record
landonshumway-ia Apr 30, 2025
756f232
remove unused import
landonshumway-ia Apr 30, 2025
3006b58
Rename field to effectiveStartDate for consistency w/lift field
landonshumway-ia Apr 30, 2025
7cd8618
Add encumberedStatus to status calculations
landonshumway-ia Apr 30, 2025
14c4ce8
Only allow state admins to encumber records
landonshumway-ia May 1, 2025
77e6384
Setting license and privilege encumbrance status
landonshumway-ia May 1, 2025
48b16ff
update method docs to match behavior
landonshumway-ia May 1, 2025
5936647
formatter
landonshumway-ia May 1, 2025
8036ca0
update test snapshot from rebase
landonshumway-ia May 1, 2025
e964fca
Remove unneeded enum
landonshumway-ia May 1, 2025
0cdbfff
put encumberedStatus on provider record for priv encumbrance
landonshumway-ia May 2, 2025
d2ccb2c
PR feedback
landonshumway-ia May 2, 2025
8a123c8
Setting license status to inactive if encumbered
landonshumway-ia May 2, 2025
dd7c908
CodeRabbit feedback - use enum
landonshumway-ia May 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
253 changes: 232 additions & 21 deletions backend/compact-connect/docs/api-specification/latest-oas30.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"openapi": "3.0.1",
"info": {
"title": "LicenseApi",
"version": "2025-04-21T18:51:13Z"
"version": "2025-04-28T20:50:55Z"
},
"servers": [
{
Expand Down Expand Up @@ -411,6 +411,97 @@
]
}
},
"/v1/compacts/{compact}/providers/{providerId}/licenses/jurisdiction/{jurisdiction}/licenseType/{licenseType}/encumbrance": {
"post": {
"parameters": [
{
"name": "Authorization",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "compact",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "providerId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "jurisdiction",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "licenseType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SandboLicen62Uj6JPFczem"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SandboLicen2XGMfkiyQuog"
}
}
}
}
},
"security": [
{
"SandboxAPIStackLicenseApiStaffPoolsAuthorizerD744D6FB": [
"aslp/admin",
"ne/aslp.admin",
"oh/aslp.admin",
"ky/aslp.admin",
"octp/admin",
"ne/octp.admin",
"oh/octp.admin",
"ar/octp.admin",
"ms/octp.admin",
"la/octp.admin",
"al/octp.admin",
"ky/octp.admin",
"coun/admin",
"fl/coun.admin",
"ne/coun.admin",
"oh/coun.admin",
"ky/coun.admin"
]
}
]
}
},
"/v1/compacts/{compact}/providers/{providerId}/privileges/jurisdiction/{jurisdiction}/licenseType/{licenseType}/deactivate": {
"post": {
"parameters": [
Expand Down Expand Up @@ -502,6 +593,97 @@
]
}
},
"/v1/compacts/{compact}/providers/{providerId}/privileges/jurisdiction/{jurisdiction}/licenseType/{licenseType}/encumbrance": {
"post": {
"parameters": [
{
"name": "Authorization",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "compact",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "providerId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "jurisdiction",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "licenseType",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SandboLicenFzKiEdNIK5oF"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SandboLicen2XGMfkiyQuog"
}
}
}
}
},
"security": [
{
"SandboxAPIStackLicenseApiStaffPoolsAuthorizerD744D6FB": [
"aslp/admin",
"ne/aslp.admin",
"oh/aslp.admin",
"ky/aslp.admin",
"octp/admin",
"ne/octp.admin",
"oh/octp.admin",
"ar/octp.admin",
"ms/octp.admin",
"la/octp.admin",
"al/octp.admin",
"ky/octp.admin",
"coun/admin",
"fl/coun.admin",
"ne/coun.admin",
"oh/coun.admin",
"ky/coun.admin"
]
}
]
}
},
"/v1/compacts/{compact}/providers/{providerId}/ssn": {
"get": {
"parameters": [
Expand Down Expand Up @@ -1718,6 +1900,9 @@
}
},
"SandboLiceno4bc0FEXEiqd": {
"required": [
"deactivationNote"
],
"type": "object",
"properties": {
"deactivationNote": {
Expand Down Expand Up @@ -4066,6 +4251,29 @@
}
}
},
"SandboLicen62Uj6JPFczem": {
"required": [
"blocksFuturePrivileges",
"clinicalPrivilegeActionCategory",
"encumbranceEffectiveDate"
],
"type": "object",
"properties": {
"encumbranceEffectiveDate": {
"type": "string",
"description": "The effective date of the encumbrance"
},
"blocksFuturePrivileges": {
"type": "boolean",
"description": "Whether this encumbrance blocks future privileges"
},
"clinicalPrivilegeActionCategory": {
"type": "string",
"description": "The category of clinical privilege action"
}
},
"additionalProperties": false
},
"SandboLicen5sjWzLjzC0Me": {
"required": [
"affiliationType",
Expand Down Expand Up @@ -4414,30 +4622,10 @@
"jurisdictionName",
"jurisprudenceRequirements",
"postalAbbreviation",
"privilegeFees",
"type"
],
"type": "object",
"properties": {
"privilegeFees": {
"type": "array",
"description": "The fees for the privileges",
"items": {
"required": [
"amount",
"licenseTypeAbbreviation"
],
"type": "object",
"properties": {
"amount": {
"type": "number"
},
"licenseTypeAbbreviation": {
"type": "string"
}
}
}
},
"militaryDiscount": {
"required": [
"active",
Expand Down Expand Up @@ -5089,6 +5277,29 @@
},
"additionalProperties": false
},
"SandboLicenFzKiEdNIK5oF": {
"required": [
"blocksFuturePrivileges",
"clinicalPrivilegeActionCategory",
"encumbranceEffectiveDate"
],
"type": "object",
"properties": {
"encumbranceEffectiveDate": {
"type": "string",
"description": "The effective date of the encumbrance"
},
"blocksFuturePrivileges": {
"type": "boolean",
"description": "Whether this encumbrance blocks future privileges"
},
"clinicalPrivilegeActionCategory": {
"type": "string",
"description": "The category of clinical privilege action"
}
},
"additionalProperties": false
},
"SandboLicenCAt3nUfAzyDS": {
"required": [
"pagination"
Expand Down
Loading