Serialized receiving reaches the Products API.
Serialization publishes a receiving event. Digital Twin stores a Cosmos inventory position, projects it to SQL, and serves it through existing endpoints.
Current state and work queue
The UI and APIs run, and serialized receiving reaches Cosmos and SQL. The remaining work is to carry the real tenant ID, consume live Formulary and location data, then replace the limited Products query.
Three statements are enough to understand where the project stands.
Serialization publishes a receiving event. Digital Twin stores a Cosmos inventory position, projects it to SQL, and serves it through existing endpoints.
Tenant ID, Formulary changes, location/category changes, non-serialized quantities, cycle-count corrections, and later movements are incomplete.
Tenant propagation, Formulary consumption, and location consumption unlock correct grouping, filtering, and location counts.
Stages 1 and 2 establish trustworthy data. Stages 3 and 4 deliver the user-facing reads. Stage 5 removes obsolete machinery.
Stop writing Guid.Empty. Carry the TenantConfig root
ID from the event through Cosmos and SQL.
Bring Formulary mappings, hierarchy, and physical container category into Digital Twin.
#315051 / NewAdd paging, search, correct location counts, and Dispensable/Non-dispensable filtering using detailed SQL tables.
#265915 / Active featureUse the same product identity, tenant, facility, and quantity rules as the Products list.
#265916 / Active feature
Delete FacilityFormularyAggregate only after the
replacement reads are correct and fast enough.
Source status, what Digital Twin does today, and whether work is already queued.
Serialization publishes receiving outcomes.
Cosmos and SQL writes work, but the event and Cosmos record lack
the TenantConfig root ID. SQL writes Guid.Empty as
the tenant ID.
Formulary publishes create, update, archive, 340B, and grouping changes.
No integrated consumer keeps local Formulary and NDC mappings current.
#315051 is New and needs architectural refinement.
Container Management publishes hierarchy and container-category changes.
The inspected integration baseline has no consumer that keeps location hierarchy and physical category current.
#315053 is Active. Its expected event contract needs verification.
The publisher is not complete.
No complete consumer or agreed quantity behavior.
#323919 covers publication only and is in Tech Grooming.
CycleCount publishes completion events.
No integrated consumer replaces expected container contents with the completed count.
Recalls publishes active and inactive recall targets.
No integrated consumer maintains the local recall target set.
#315054 is Sprint Ready, but its direct SQL design needs an explicit architecture decision.
Only a best-effort RxTransparent call was found.
No durable event removes or reclassifies the Digital Twin position.
No clear Digital Twin story was found.
No complete event or API path was found for putaway, restock, adjustment, or movement.
Received inventory cannot reliably move from a temporary virtual location into physical inventory.
Several task and alert features mention movement, but no clean end-to-end story was found.
These are product or architecture choices. More coding will not resolve them automatically.
The intended flow stores external changes in Cosmos before SQL. Formulary and recall stories currently write directly to SQL. Revise them or approve an explicit exception.
Work items alternate among Formulary item, GPI, and equivalency group. Choose one stable identifier for list rows, detail URLs, and cross-facility grouping.
Earlier work says one facility counts bins and multiple facilities count facilities. The active feature also contains language that always counts bins.
Define the exact rule for physical container categories and temporary virtual inventory. The backlog defines tabs, not the classification rule.
Product Details permits an NDC to be present with no reliable quantity. Decide how that affects Products totals, values, and category counts.
Products and Product Details require EDI-810 cost and value, but the current read model has no established path for that data.
Use the existing stories, but clean up overlaps and contract mismatches before pulling them.
Tenant, Formulary, location, recall, cycle count, and non-serialized publication work already exists.
#315053
has a child task referencing FacilityUpsertedEvent;
the integrated source publishes a wrapped
LocationHierarchyChanged message.
Virtual-bin tasks remain New under a removed story. Digital Twin design tasks remain New under a closed story. Do not schedule them without checking whether this analysis already satisfies them.
Expiration, PAR/restock, recall task generation, and data-platform publication are future capabilities, not prerequisites for replacing the Products query.
External changes are retained in Digital Twin before SQL, so SQL can be rebuilt and reads stay fast.
The visual brief is the entry point. These files contain the technical proof.