ItemIdInfo RESTFUL linking

Topics: ACORD XML 2.x, Resources, REST
Coordinator
Mar 5, 2016 at 7:17 PM
Edited Mar 5, 2016 at 7:17 PM
Below I have included links to samples for ItemIdInfo represented in JSON on XML. In this discussion is there anything else we need this aggregate to accomplish.

JSON ItemIdInfo
XML ItemIdInfo
Coordinator
Mar 11, 2016 at 7:45 PM
Edited Mar 11, 2016 at 7:47 PM
XML SUMMIT Item ID Info Brainstorm
<ItemIdInfo>
<!-- Agency/Broker/MGA ID -->
       <AgencyId/> 
        <!-- Insurer/UnderwritingCo ID -->
       <InsurerId/>
       <!-- Auto generated GUID -->                                         
        <SystemId/> 
       <!-- other unique ids can be stored here -->
       <OtherIdentifier> 
              <OtherIdTypeCd CodeListRef=""/>
              <OtherId/>
       </OtherIdentifier>
                        
       <!-- used for requestor info and audit trail.  -->  <!—This has to be renamed because there is already an audit info 
       <AuditInfo> 
              <SequenceNumber />
              <UpdatedByUser /> 
              <UpdatedBySystem /> 
              <UpdatedDtTime /> 
              </AuditInfo>
              <!-- period for which the resource should remain active -->
              <ActivationTerm>
              <EffectiveDtTime /> 
              <ExpirationDtTime /> 
       </ActivationTerm>
       <!-- may have to move this above ItemIdInfo to be first aggregate in parent based on HAL principles -->
       <Links> 
               <Self>http://rest/insureds/50123</Self >
               <Vehicle>http://rest/insureds/vehicles/156948</Vehicle >
              <Address>http://rest/insureds/addresses/70123</Address >
              <Policy>http://rest/insureds/policies/12898</Policy>
              <Policy>http://rest/insureds/policies/12898</Policy>
               <Account>http://rest/insureds/accounts/1496</Account>                                                      
              <!-- can also be used for search results -->
              <Last>http://rest/insureds/50122</Last>
               <Next>http://rest/insureds/50124</Next>                                                                                     
        </Links>        
       <!-- need something to indicate available actions -->                      
       <Actions>
              <ActionCd CodeListRef="" />                                         
        </Actions>
</ItemIdInfo>
Coordinator
Mar 11, 2016 at 7:49 PM
I believe I started this topic during the resource discussion and provided a list of new elements in the blog and see a few in here but most notably missing are EffectiveDtTime and ExpirationDtTime which are critical to Change processing (not just Policy Change). Counting on TransactionEffectiveDt to be present may work for certain traditional messages but we've found that point-in-time cases need this info.

Here's the list of ItemIdInfo extensions I believe I provided. Some of these may be considered unique to Berkley but we make use of all of them:
   <xsd:element ref="UpdatedByUser" minOccurs="0"/>
   <xsd:element ref="UpdatedBySystemId" minOccurs="0"/>
   <xsd:element ref="UpdatedBySystemCd" minOccurs="0"/>
   <xsd:element ref="UpdatedDtTime" minOccurs="0"/>
   <xsd:element ref="ac:EffectiveDtTime" minOccurs="0"/>
   <xsd:element ref="ac:ExpirationDtTime" minOccurs="0"/>
   <xsd:element ref="OtherInsurerId" minOccurs="0"/>
   <xsd:element ref="VersionNumber" minOccurs="0"/>
   <xsd:element ref="SequenceNumber" minOccurs="0"/>
   <xsd:element ref="ParentInsurerId" minOccurs="0"/>
   <xsd:element ref="ParentSystemId" minOccurs="0"/>
Kevin Schipani
Data Architect
Berkley Technology Services, LLC
Coordinator
Mar 11, 2016 at 7:52 PM
I’ve uploaded an example ItemIdInfo expansion with audit info some time ago that combines what I heard at the Summit with a couple additional things we’d like to see. I know we, Liberty, and Berkley all need/use this information and to me it makes perfect sense to be in the standard and as part of the 2.0 release. I’m talking about the audit type information in particular.
<ItemIdInfo id="BSC01010">
  <AgencyId>1118</AgencyId>
  <InsurerId>7777</InsurerId>
  <SystemId>6448F9A9-D5EE-4910-B276-4503FB9FF62E</SystemId>
  <OtherIdentifier>
    <OtherIdTypeCd>BSCQuoteId</OtherIdTypeCd>
    <OtherId>6448F9A9-D5EE-4910-B276-4503FB9FF62E</OtherId>
  </OtherIdentifier>
  <OtherIdentifier>
    <OtherIdTypeCd>BSCQuoteIterationId</OtherIdTypeCd>
    <OtherId>9120D643-0C88-44F8-B8BB-AABA122B0946</OtherId>
  </OtherIdentifier>
  <OtherIdentifier>
    <OtherIdTypeCd>InitiatingSystem</OtherIdTypeCd>
    <OtherId>WinRater</OtherId>
  </OtherIdentifier>
  <AuditInfo>
    <SequenceNumber>1</SequenceNumber>
    <CreatedByUserId>2218</CreatedByUserId>
    <CreatedDt>2016-02-01T14:57:02-05:00</CreatedDt>
    <UpdatedByUserId>54321</UpdatedByUserId>
    <UpdatedBySystemId>CoSystemABC</UpdatedBySystemId>
    <UpdatedDt>2016-02-05T08:27:12-05:00</UpdatedDt>
  </AuditInfo>
</ItemIdInfo>
Danny Blood
Boston Software
Coordinator
Mar 11, 2016 at 7:54 PM
I have created some documentation on <ItemIdInfo> please update it with any additional suggestions

https://acordpcxml2.codeplex.com/wikipage?title=%3CIdItemInfo%3E&referringTitle=Common%20Aggregates
Coordinator
Mar 11, 2016 at 7:56 PM
Edited Mar 11, 2016 at 8:00 PM
There's definitely a business need to update <ItemIdInfo> right now. For audit info, how about <PersistenceInfo> as a name?

Jamie Steward
Agencyport Software
Coordinator
Aug 2, 2016 at 2:45 PM
Edited Aug 2, 2016 at 2:54 PM
The new <SourceSystem> aggregate contains a lot of the metadata about who and where the resource was changed.

The <ItemIdInfo> tag already contains @SourceSystemRefs, but we need to know who made the change.

As such we are recommending that we add @SourcePartyRefs with a reference to the person making the change.

In addition we need to track versions of resources and how long that version is valid. The final proposed XML looks like this:
<ItemIdInfo SourceSystemRefs="S1" SourcePartyRefs="P1">
    <!-- Agency/Broker/MGA ID -->
    <AgencyId/>
    <!-- Insurer/UnderwritingCo ID -->
    <InsurerId/>
    <!-- Auto generated GUID -->
    <SystemId/>
    <!-- other unique ids can be stored here -->
    <OtherIdentifier>
        <OtherIdTypeCd/>
        <OtherId/>
    </OtherIdentifier>
    <!-- used to indicate version and effective period  -->
    <VersionNumber/>
    <EffectiveDtTime/>
    <ExpirationDtTime/>
</ItemIdInfo>
Coordinator
Aug 2, 2016 at 2:53 PM
Another new addition is the <Link> element.

This new aggregate will be the first thing you find in every resource.

The result is a much more navigable API with simple HTTP links between resources.

Here is a small sample of XML to illustrate the usage:
<Resource>
    <Link rel="self" href="/policy/4e068b48-798c-4df1-8d1d-ea2a90f4eb4c" title="Self" />
    <Link rel="next" href="/policy/4e068b48-798c-4df1-8d1d-ea2a345eb4d" title="Next" />
    <Link rel="last" href="/policy/4e068b48-798c-4df1-8d1d-ea2a90f4eb4c" title="Last" />
</Resource>
We still need to define the valid values for @rel, but the above structure will support HATEOS and HAL based interfaces.
Coordinator
Sep 20, 2016 at 9:29 PM
I have created a OPENAPI JSON Schema for the Link aggregate.

Link JSON SCHEMA
OpenAPI Specification