Cardinal Health - NPWT Rentals - Architecture Updates F2F

Key Information

Register
Submit
The challenge is finished.

Challenge Overview

INTRODUCTION
This is the next in a series of challenges to rebuild ITI Order, the company’s primary internal and customer facing application.  In this challenge you'll be updating the architecture design to reflect the changes outlined below.

REQUIREMENTS 

ERD Fixes
1.    Complete the changes requested in the "ERD Updates.pdf" file. 
2.    Ensure all changes are cascaded to other artifacts. 

API Model Fixes
1.    Service Class Diagram
    a.    Remove all “Lookup” classes and replace with a class that follows the GenericService pattern (create/read/update/delete/searchbyattribute). All entity types should have an associated service class. 
        i.    For some entity types, in the short term, only the “get” method will be supported in this iteration of the application code. 
        ii.    In future admins will need to do create/update/delete, so methods should be defined for these also (throw method is not supported at this time) 
        iii.    Entities missing a “get” method include, but may not be limited to, the following: 
           1.    asset_revision
           2.    inventory_transfer_status
           3.    inventory_transfer_request_status
           4.    shipment_method 
           5.    user_status 
           6.    role
    b.    Remove LookupService implementer class; replace with similar pattern as GenericService implementer service(s). Each entity should get its own implementer service.  
    c.    Verify all “…Repository” services. Ensure that all updates to ERD and other service classes are reflected in these.
2.    REST API Class Diagram
    a.    All changes to Service Class Diagram should be reflected in the REST API Class Diagram and vice versa. (e.g. remove LookupController, replace with entity-specific controllers). 
3.    Exceptions Class tab
    a.    Rename “Exception” to “Business Exception”
    b.    Rename “Runtime Exception” to “System Exception”
4.    Entities Class Diagram
    a.    Remove Lookup entities; replace with IdentifiableEntity classes for all entities. 
    b.    Any entities added or removed from ERD need to be reflected in the Entities Class Diagram
5.    Main Update Interaction Sequence
    a.    Show where audit implementer service is invoked in an update sequence. Any change to an entity should be audited – any attribute – especially when values are overwritten (e.g. a status flag changes). This should also apply to any “delete” sequences.  
6.    Add a pattern diagram to show sample “create” interaction sequence. 
7.    Add a pattern diagram to show sample “delete” interaction sequence. 
8.    All updates to the ERD and UML should also be reflected in the swagger.yaml file. 
9.    For create & delete methods for “inventory transfer request” entity, there should be an aggregate method/service to handle inventory transfer requests that contain multiple line items. (Submitting a new Inventory Transfer Request needs to update to two different DB tables at the same time – inventory_transfer_request and items_requested. This method will ensure DB integrity is maintained in case one of the DB updates fails). 

SETUP
-- See the challenge forums for details on adding yourself to the
Cardinal Health GitLab group
-- All documents/designs that require updating can be found in the Architecture folder within the Resources repository


Final Submission Guidelines

Submit all updated architecture designs/documents as a .zip

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30055055